5 ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ Π½Π° старитС инструмСнти Π½Π° командния Ρ€Π΅Π΄ Π½Π° Linux

ΠšΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΠΎ-ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ Π·Π°Π΅Π΄Π½ΠΎ с ΠΏΠΎ-старитС инструмСнти Π½Π° командния Ρ€Π΅Π΄, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС забавляватС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΈ Π΄ΠΎΡ€ΠΈ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ производитСлността си.

5 ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ Π½Π° старитС инструмСнти Π½Π° командния Ρ€Π΅Π΄ Π½Π° Linux

Π’ Π½Π°ΡˆΠ°Ρ‚Π° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Linux/Unix Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ инструмСнти Π½Π° командния Ρ€Π΅Π΄ - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ du Π·Π° наблюдСниС Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° диска ΠΈ систСмнитС рСсурси. Някои ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ инструмСнти ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ ΠΎΡ‚ дълго Π²Ρ€Π΅ΠΌΠ΅. НапримСр, top сС появява ΠΏΡ€Π΅Π· 1984 Π³., Π° ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° du Π΄Π°Ρ‚ΠΈΡ€Π° ΠΎΡ‚ 1971 Π³.

ΠŸΡ€Π΅Π· Π³ΠΎΠ΄ΠΈΠ½ΠΈΡ‚Π΅ Ρ‚Π΅Π·ΠΈ инструмСнти бяха ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΈ прСнСсСни към Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ систСми, Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ цяло Π½Π΅ са сС ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡ΠΈΠ»ΠΈ Π΄Π°Π»Π΅Ρ‡ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ си вСрсии, тСхният външСн Π²ΠΈΠ΄ ΠΈ използваСмост ΡΡŠΡ‰ΠΎ Π½Π΅ са сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ.

Π’ΠΎΠ²Π° са страхотни инструмСнти, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ систСмни администратори сС нуТдаят. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° общността Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ инструмСнти, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ прСдимства. Някои ΠΎΡ‚ тях просто ΠΈΠΌΠ°Ρ‚ ΠΌΠΎΠ΄Π΅Ρ€Π΅Π½, красив интСрфСйс, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ подобряват използваСмостта. Π’ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€Π΅Π²ΠΎΠ΄ Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΠΏΠ΅Ρ‚ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ Π½Π° стандартнитС инструмСнти Π½Π° командния Ρ€Π΅Π΄ Π½Π° Linux.

1. ncdu срСщу du

ИзползванС Π½Π° NCurses диск (NCDU) Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° du, Π½ΠΎ с ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ интСрфСйс, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° curses. ncdu ΠΏΠΎΠΊΠ°Π·Π²Π° структурата Π½Π° дирСкторията, която Π·Π°Π΅ΠΌΠ° ΠΏΠΎ-голямата част ΠΎΡ‚ Π²Π°ΡˆΠ΅Ρ‚ΠΎ дисково пространство.

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 Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° процСси, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° top, Π½ΠΎ извън кутията осигурява приятно потрСбитСлско изТивяванС. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ htop ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΡŠΡ‰Π°Ρ‚Π° информация ΠΊΠ°Ρ‚ΠΎ top, Π½ΠΎ ΠΏΠΎ ΠΏΠΎ-Π²ΠΈΠ·ΡƒΠ°Π»Π΅Π½ ΠΈ Ρ†Π²Π΅Ρ‚Π΅Π½ Π½Π°Ρ‡ΠΈΠ½.

По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ htop ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

5 ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ Π½Π° старитС инструмСнти Π½Π° командния Ρ€Π΅Π΄ Π½Π° Linux
Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Π²ΡŠΡ€Ρ…Π°:

5 ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ Π½Π° старитС инструмСнти Π½Π° командния Ρ€Π΅Π΄ Π½Π° Linux
ОсвСн Ρ‚ΠΎΠ²Π° htop ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΠ±Ρ‰Π° информация Π·Π° систСмата Π² Π³ΠΎΡ€Π½Π°Ρ‚Π° част ΠΈ ΠΏΠ°Π½Π΅Π» Π·Π° изпълнСниС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ клавиши Π² Π΄ΠΎΠ»Π½Π°Ρ‚Π° част. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅, ΠΊΠ°Ρ‚ΠΎ натиснСтС F2, Π·Π° Π΄Π° ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ Π΅ΠΊΡ€Π°Π½Π° Π·Π° конфигурация. Π’ Настройки ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° промСнятС Ρ†Π²Π΅Ρ‚ΠΎΠ²Π΅Ρ‚Π΅, Π΄Π° добавятС ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ»ΠΈ Π΄Π° промСнятС ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Π½Π΅Π»Π° Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° постигнСтС ΠΏΠΎΠ΄ΠΎΠ±Π½Π° използваСмост, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ настройкитС Π½Π° Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡ‚Π΅ вСрсии Π½Π° top, htop прСдоставя ΡƒΠ΄ΠΎΠ±Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ-ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅Π½ ΠΈ ΠΏΠΎ-лСсСн Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅.

3. tldr срСщу Ρ‡ΠΎΠ²Π΅ΠΊ

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Ρ€Π΅Π΄ 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 ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π΄Ρ€ΡƒΠ³Π° статия, Π·Π° Π΄Π° Π³ΠΈ опишС. Π—Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ информация моля ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ сС страница Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° jq ΠΈΠ»ΠΈ към tldr.

5. fd срСщу find

fd Π΅ опростСна Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° Π½Π°ΠΌΠΈΡ€Π°Π½Π΅. Fd Π½Π΅ Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π΄Π° Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈ напълно: Ρ‚ΠΎΠΉ ΠΈΠΌΠ° Π½Π°ΠΉ-чСсто срСщанитС настройки, инсталирани ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, опрСдСлящи общия ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

НапримСр, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² дирСктория Π½Π° 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? Или сСдитС ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π° старитС? Но Π½Π°ΠΉ-вСроятно ΠΈΠΌΠ°Ρ‚Π΅ комбинация, Π½Π°Π»ΠΈ? Моля, сподСлСтС ΠΎΠΏΠΈΡ‚Π° си Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅.

ΠžΡ‚Π½ΠΎΡΠ½ΠΎ ΠΏΡ€Π°Π²Π°Ρ‚Π° Π½Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΠ°Ρ‚Π°

Много ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π²Π΅Ρ‡Π΅ са ΠΎΡ†Π΅Π½ΠΈΠ»ΠΈ прСдимствата Π΅ΠΏΠΈΡ‡Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ!
Π’ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ с процСсори AMD EPYC, чСстота Π½Π° ядрото Π½Π° процСсора Π΄ΠΎ 3.4 GHz. ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° конфигурация Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° сС забавляватС - 128 CPU ядра, 512 GB RAM, 4000 GB NVMe. ΠŸΠΎΠ±ΡŠΡ€Π·Π°ΠΉΡ‚Π΅ Π΄Π° ΠΏΠΎΡ€ΡŠΡ‡Π°Ρ‚Π΅!

5 ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ Π½Π° старитС инструмСнти Π½Π° командния Ρ€Π΅Π΄ Π½Π° Linux

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€