ΠΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎ-ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΏΠΎ-ΡΡΠ°ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π±Π°Π²Π»ΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ Π΄ΠΎΡΠΈ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠΈ.
Π Π½Π°ΡΠ°ΡΠ° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Linux/Unix Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ du Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ. ΠΡΠΊΠΎΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΎΡ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, top ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° ΠΏΡΠ΅Π· 1984 Π³., Π° ΠΏΡΡΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° du Π΄Π°ΡΠΈΡΠ° ΠΎΡ 1971 Π³.
ΠΡΠ΅Π· Π³ΠΎΠ΄ΠΈΠ½ΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π±ΡΡ Π° ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈ ΠΏΡΠ΅Π½Π΅ΡΠ΅Π½ΠΈ ΠΊΡΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π½ΠΎ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ Π½Π΅ ΡΠ° ΡΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠΈΠ»ΠΈ Π΄Π°Π»Π΅Ρ ΠΎΡ ΠΏΡΡΠ²ΠΈΡΠ΅ ΡΠΈ Π²Π΅ΡΡΠΈΠΈ, ΡΠ΅Ρ Π½ΠΈΡΡ Π²ΡΠ½ΡΠ΅Π½ Π²ΠΈΠ΄ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π΅ΠΌΠΎΡΡ ΡΡΡΠΎ Π½Π΅ ΡΠ° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ.
Π’ΠΎΠ²Π° ΡΠ° ΡΡΡΠ°Ρ
ΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΠ»Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°. ΠΡΠΊΠΎΠΈ ΠΎΡ ΡΡΡ
ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ°Ρ ΠΌΠΎΠ΄Π΅ΡΠ΅Π½, ΠΊΡΠ°ΡΠΈΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΄ΠΎΠΊΠ°ΡΠΎ Π΄ΡΡΠ³ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π΅ΠΌΠΎΡΡΡΠ°. Π ΡΠΎΠ·ΠΈ ΠΏΡΠ΅Π²ΠΎΠ΄ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΏΠ΅Ρ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π½Π° Linux.
1. ncdu ΡΡΠ΅ΡΡ du
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° NCurses Π΄ΠΈΡΠΊ (
ncdu Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° Π΄ΠΈΡΠΊΠ° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅, ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------
96.7 GiB [##########] /libvirt
33.9 GiB [### ] /.crc
7.0 GiB [ ] /Projects
. 4.7 GiB [ ] /Downloads
. 3.9 GiB [ ] /.local
2.5 GiB [ ] /.minishift
2.4 GiB [ ] /.vagrant.d
. 1.9 GiB [ ] /.config
. 1.8 GiB [ ] /.cache
1.7 GiB [ ] /Videos
1.1 GiB [ ] /go
692.6 MiB [ ] /Documents
. 591.5 MiB [ ] /tmp
139.2 MiB [ ] /.var
104.4 MiB [ ] /.oh-my-zsh
82.0 MiB [ ] /scripts
55.8 MiB [ ] /.mozilla
54.6 MiB [ ] /.kube
41.8 MiB [ ] /.vim
31.5 MiB [ ] /.ansible
31.3 MiB [ ] /.gem
26.5 MiB [ ] /.VIM_UNDO_FILES
15.3 MiB [ ] /Personal
2.6 MiB [ ] .ansible_module_generated
1.4 MiB [ ] /backgrounds
944.0 KiB [ ] /Pictures
644.0 KiB [ ] .zsh_history
536.0 KiB [ ] /.ansible_async
Total disk usage: 159.4 GiB Apparent size: 280.8 GiB Items: 561540
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°Π²ΠΈΠ³ΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅Π· Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠΈΡΠ΅ ΡΡΡ ΡΡΡΠ΅Π»ΠΊΠΈ. ΠΠΊΠΎ Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ Enter, ncdu ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ·Π±ΡΠ°Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ:
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠΎΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π°Π΅ΠΌΠ°Ρ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π΄ΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΊΠ°ΡΠΎ Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠ° ΡΡΡ ΡΡΡΠ΅Π»ΠΊΠ° Π½Π°Π»ΡΠ²ΠΎ. Π‘ ncdu ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΡΡΠΈΠ²Π°ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠ° d. ΠΡΠΊΠ° ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½Π° Π·Π°Π³ΡΠ±Π° Π½Π° ΡΠ΅Π½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΎΠΏΡΠΈΡΡΠ° -r, Π·Π° Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π΄ΠΎΡΡΡΠΏ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅: ncdu -r.
ncdu Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Linux ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ dnf, Π·Π° Π΄Π° Π³ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π²ΡΠ² Fedora Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°:
$ sudo dnf install ncdu
2. htop ΡΡΠ΅ΡΡ top
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ htop ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ Π²ΡΡΡ
Π°:
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° htop ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΠ±ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π² Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ ΠΈ ΠΏΠ°Π½Π΅Π» Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π² Π΄ΠΎΠ»Π½Π°ΡΠ° ΡΠ°ΡΡ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅, ΠΊΠ°ΡΠΎ Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ F2, Π·Π° Π΄Π° ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ Π΅ΠΊΡΠ°Π½Π° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. Π ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ ΡΠ²Π΅ΡΠΎΠ²Π΅ΡΠ΅, Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈΠ»ΠΈ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ ΠΎΠΏΡΠΈΠΈΡΠ΅ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Π½Π΅Π»Π° Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π΅ΠΌΠΎΡΡ, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° top, htop ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ΄ΠΎΠ±Π½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ-ΠΏΡΠ°ΠΊΡΠΈΡΠ΅Π½ ΠΈ ΠΏΠΎ-Π»Π΅ΡΠ΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.
3. tldr ΡΡΠ΅ΡΡ ΡΠΎΠ²Π΅ΠΊ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄ tldr ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΠΏΡΠΎΡΡΠ΅Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Π΅ ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°
Π‘ΡΡΡΠ²Π° ΡΠΈ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ tldr Π½Π΅ Π΅ Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π» Π½Π° ΡΠΎΠ²Π΅ΠΊ. Π’ΠΎΠΉ Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ½ΠΈΡΡ ΠΈ Π½Π°ΠΉ-ΠΈΠ·ΡΠ΅ΡΠΏΠ°ΡΠ΅Π»Π½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΏΡΠ°Π²ΠΎΡΠ½Π° ΡΡΡΠ°Π½ΠΈΡΠ°. Π Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΎΠ±Π°ΡΠ΅ ΡΠΎΠ²Π΅ΠΊΡΡ Π΅ ΠΈΠ·Π»ΠΈΡΠ΅Π½. ΠΠΎΠ³Π°ΡΠΎ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ ΠΎΡ ΠΈΠ·ΡΠ΅ΡΠΏΠ°ΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π²ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° ΡΠΈ ΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ Π½Π΅ΠΉΠ½ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠΏΠΎΡΡΠ΅Π±ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, man ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° curl ΡΡΠ΄ΡΡΠΆΠ° ΠΏΠΎΡΡΠΈ 3000 ΡΠ΅Π΄Π°. Π‘ΡΡΠ°Π½ΠΈΡΠ°ΡΠ° tldr Π·Π° curl Π΅ Π΄ΡΠ»Π³Π° 40 ΡΠ΅Π΄Π°. ΠΠ΅Π³ΠΎΠ²ΠΈΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
$ tldr curl
# curl
Transfers data from or to a server.
Supports most protocols, including HTTP, FTP, and POP3.
More information: <https://curl.haxx.se>.
- Download the contents of an URL to a file:
curl http://example.com -o filename
- Download a file, saving the output under the filename indicated by the URL:
curl -O http://example.com/filename
- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:
curl -O -L -C - http://example.com/filename
- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):
curl -d 'name=bob' http://example.com/form
- Send a request with an extra header, using a custom HTTP method:
curl -H 'X-My-Header: 123' -X PUT http://example.com
- Send data in JSON format, specifying the appropriate content-type header:
curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234
... TRUNCATED OUTPUT
TLDR ΠΎΠ·Π½Π°ΡΠ°Π²Π° βΡΠ²ΡΡΠ΄Π΅ Π΄ΡΠ»ΡΠ³; Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΠ΅": ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅ΠΊΡΡΡΡ Π΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°Π½ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠ΅ΠΊΠΎΠΌΠ΅ΡΠ½Π°ΡΠ° ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½ΠΎΡΡ. ΠΠΌΠ΅ΡΠΎ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΎ Π·Π° ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Π·Π°ΡΠΎΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ, ΠΌΠ°ΠΊΠ°Ρ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ, ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ²ΡΡΠ΄Π΅ Π΄ΡΠ»Π³ΠΈ.
ΠΠ° Fedora tldr Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° dnf manager. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, Π·Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ. ΠΠΎ Python ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π½Π° Fedora ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΅Π·ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ ΠΈ ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈ Π·Π° ΠΎΡΠ»Π°ΠΉΠ½ Π΄ΠΎΡΡΡΠΏ.
4.jq ΡΡΠ΅ΡΡ sed/grep
jq Π΅ JSON ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄. Π’ΠΎΠΉ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° sed ΠΈΠ»ΠΈ grep, Π½ΠΎ Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ JSON Π΄Π°Π½Π½ΠΈ. ΠΠΊΠΎ ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° JSON Π² Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ, ΡΠΎΠ²Π° Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ Π·Π° Π²Π°Ρ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ Π½Π° jq ΠΏΡΠ΅Π΄ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ΅ΠΊΡΡ ΠΊΠ°ΡΠΎ grep ΠΈ sed Π΅, ΡΠ΅ ΡΠΎΠΉ ΡΠ°Π·Π±ΠΈΡΠ° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ JSON, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΈΠ·ΡΠ°Π·.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² ΡΠΎΠ·ΠΈ JSON ΡΠ°ΠΉΠ»:
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"labels": {
"app": "myapp"
},
"name": "myapp",
"namespace": "project1"
},
"spec": {
"containers": [
{
"command": [
"sleep",
"3000"
],
"image": "busybox",
"imagePullPolicy": "IfNotPresent",
"name": "busybox"
},
{
"name": "nginx",
"image": "nginx",
"resources": {},
"imagePullPolicy": "IfNotPresent"
}
],
"restartPolicy": "Never"
}
}
ΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ grep, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ·Π°:
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep Π²ΡΡΠ½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π΄ΡΠΌΠ°ΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° ΠΊΡΠΌ grep, Π·Π° Π΄Π° Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅, ΠΈ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅.
ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° jq, ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅:
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Π’Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ Π²ΠΈ Π΄Π°Π΄Π΅ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° Π΄Π²Π°ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°. ΠΠΊΠΎ ΡΡΡΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π²ΡΠΎΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ° Π½Π° ΠΌΠ°ΡΠΈΠ²Π° ΠΊΡΠΌ ΠΈΠ·ΡΠ°Π·Π°:
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Π’ΡΠΉ ΠΊΠ°ΡΠΎ jq Π·Π½Π°Π΅ Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅, ΡΠΎΠΉ Π΄Π°Π²Π° ΡΡΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π»Π΅ΠΊΠΎ. grep ΠΈ sed ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ.
jq ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π΄ΡΡΠ³Π° ΡΡΠ°ΡΠΈΡ, Π·Π° Π΄Π° Π³ΠΈ ΠΎΠΏΠΈΡΠ΅. ΠΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠ»Ρ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΡΠ΅
5. fd ΡΡΠ΅ΡΡ find
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π½Π° Git Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, fd Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° ΡΠΊΡΠΈΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° .git, ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ³Π½ΠΎΡΠΈΡΠ° Π·Π°ΠΌΠ΅ΡΡΠ²Π°ΡΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ ΠΎΡ ΡΠ°ΠΉΠ»Π° .gitignore. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΡΠΊΠΎΡΡΠ²Π° ΡΡΡΡΠ΅Π½Π΅ΡΠΎ, ΠΊΠ°ΡΠΎ Π²ΡΡΡΠ° ΠΏΠΎ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΏΡΠΈ ΠΏΡΡΠ²ΠΈΡ ΠΎΠΏΠΈΡ.
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ fd ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΡΡΠ΅Π½Π΅ Π±Π΅Π· Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π³Π»Π°Π²Π½ΠΈ ΠΈ ΠΌΠ°Π»ΠΊΠΈ Π±ΡΠΊΠ²ΠΈ Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ ΡΠ²Π΅ΡΠ΅Π½ ΠΈΠ·Ρ ΠΎΠ΄. Π‘ΡΡΠΎΡΠΎ ΡΡΡΡΠ΅Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° find ΠΈΠ·ΠΈΡΠΊΠ²Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ .md (ΠΈΠ»ΠΈ .MD) ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° Π½Π°ΠΌΠΈΡΠ°Π½Π΅ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
$ find . -iname "*.md"
ΠΠ° fd ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
$ fd .md
ΠΠΎ Π² Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ fd ΡΡΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠΊΡΠΈΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΠΏΡΠΈΡΡΠ° -H, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΎΠ²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΡΠΈ ΡΡΡΡΠ΅Π½Π΅.
fd Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Linux Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ. ΠΡΠ² Fedora ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
$ sudo dnf install fd-find
ΠΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ°Π·Π²Π°ΡΠ΅ ΠΎΡ Π½ΠΈΡΠΎ
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π»ΠΈ Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π½Π° Linux? ΠΠ»ΠΈ ΡΠ΅Π΄ΠΈΡΠ΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅? ΠΠΎ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ, Π½Π°Π»ΠΈ? ΠΠΎΠ»Ρ, ΡΠΏΠΎΠ΄Π΅Π»Π΅ΡΠ΅ ΠΎΠΏΠΈΡΠ° ΡΠΈ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅.
ΠΡΠ½ΠΎΡΠ½ΠΎ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΡΠ΅ΠΊΠ»Π°ΠΌΠ°ΡΠ°
ΠΠ½ΠΎΠ³ΠΎ ΠΎΡ Π½Π°ΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Π²Π΅ΡΠ΅ ΡΠ° ΠΎΡΠ΅Π½ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π΅ΠΏΠΈΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ!
Π’ΠΎ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com