рдЬреБрдиреНрдпрд╛ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕рд╕рд╛рдареА 5 рдЖрдзреБрдирд┐рдХ рдкрд░реНрдпрд╛рдп

рдЬреБрдиреНрдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕рд╛рдзрдирд╛рдВрд╕рд╣ рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░реВрди, рддреБрдореНрд╣реА рдЕрдзрд┐рдХ рдордЬрд╛ рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреБрдордЪреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╕реБрдзрд╛рд░реВ рд╢рдХрддрд╛.

рдЬреБрдиреНрдпрд╛ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕рд╕рд╛рдареА 5 рдЖрдзреБрдирд┐рдХ рдкрд░реНрдпрд╛рдп

рд▓рд┐рдирдХреНрд╕/рдпреБрдирд┐рдХреНрд╕рд╡рд░реАрд▓ рдЖрдордЪреНрдпрд╛ рджреИрдирдВрджрд┐рди рдХрд╛рдорд╛рдд, рдЖрдореНрд╣реА рдЕрдиреЗрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рд╡рд╛рдкрд░рддреЛ - рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдбрд┐рд╕реНрдХ рд╡рд╛рдкрд░ рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА du. рдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рд╕рд╛рдзрдиреЗ рдмрд░реНрдпрд╛рдЪ рдХрд╛рд│рд╛рдкрд╛рд╕реВрди рдЖрд╣реЗрдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЯреЙрдк 1984 рдордзреНрдпреЗ рджрд┐рд╕реВ рд▓рд╛рдЧрд▓реЗ рдЖрдгрд┐ рдбреВрдЪреЗ рдкрд╣рд┐рд▓реЗ рд░рд┐рд▓реАрдЬ 1971 рдордзреНрдпреЗ рдЭрд╛рд▓реЗ.

рд╡рд░реНрд╖рд╛рдиреБрд╡рд░реНрд╖реЗ, рдпрд╛ рд╕рд╛рдзрдирд╛рдВрдЪреЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдгрд╛рд▓реАрдВрдордзреНрдпреЗ рдкреЛрд░реНрдЯ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рддреЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдкрд╛рд╕реВрди рдлрд╛рд░рд╕реЗ рдкреБрдвреЗ рдЧреЗрд▓реЗ рдирд╛рд╣реАрдд, рддреНрдпрд╛рдВрдЪреЗ рд╕реНрд╡рд░реВрдк рдЖрдгрд┐ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреЗрдЦреАрд▓ рдлрд╛рд░рд╢реА рдмрджрд▓рд▓реЗрд▓реА рдирд╛рд╣реА.

рд╣реА рдЙрддреНрддрдо рд╕рд╛рдзрдиреЗ рдЖрд╣реЗрдд рдЬреА рдЕрдиреЗрдХ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХрд╛рдВрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд. рддрдерд╛рдкрд┐, рд╕рдореБрджрд╛рдпрд╛рдиреЗ рдкрд░реНрдпрд╛рдпреА рд╕рд╛рдзрдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗрдд рдЬреА рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╛рдпрджреЗ рджреЗрддрд╛рдд. рддреНрдпрд╛рдВрдЪреНрдпрд╛рдкреИрдХреА рдХрд╛рд╣реАрдВрдордзреНрдпреЗ рдлрдХреНрдд рдЖрдзреБрдирд┐рдХ, рд╕реБрдВрджрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрд╣реЗ, рддрд░ рдХрд╛рд╣реАрдВрдЪрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрдзрд╛рд░рддреЛ. рдпрд╛ рднрд╛рд╖рд╛рдВрддрд░рд╛рдд, рдЖрдкрдг рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕рдЪреНрдпрд╛ рдкрд╛рдЪ рдкрд░реНрдпрд╛рдпрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓реВ.

1. ncdu vs du

NCurses рдбрд┐рд╕реНрдХ рд╡рд╛рдкрд░ (рдПрдирд╕реАрдбреАрдпреВ) рд╣реЗ du рд╕рд╛рд░рдЦреЗрдЪ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╢рд╛рдк рд▓рд╛рдпрдмреНрд░рд░реАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреА рдЗрдВрдЯрд░рдлреЗрд╕рд╕рд╣. 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

рддреБрдореНрд╣реА рдмрд╛рдг рдХреА рд╡рд╛рдкрд░реВрди рдиреЛрдВрджреАрдВрдордзреВрди рдиреЗрд╡реНрд╣рд┐рдЧреЗрдЯ рдХрд░реВ рд╢рдХрддрд╛. рддреБрдореНрд╣реА рдПрдВрдЯрд░ рджрд╛рдмрд▓реНрдпрд╛рд╕, ncdu рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдЪреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрд▓:

--- /home/rgerardi/libvirt ----------------------------------------------------
                         /..
   91.3 GiB [##########] /images
    5.3 GiB [          ] /media

рддреБрдореНрд╣реА рдпрд╛ рд╕рд╛рдзрдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХреЛрдгрддреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рдбрд┐рд╕реНрдХ рдЬрд╛рдЧрд╛ рдШреЗрдд рдЖрд╣реЗрдд рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рдбрд╛рд╡реА рдмрд╛рдг рдХреА рджрд╛рдмреВрди рддреБрдореНрд╣реА рдорд╛рдЧреАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЬрд╛рдК рд╢рдХрддрд╛. ncdu рд╕рд╣ рддреБрдореНрд╣реА d рдХреА рджрд╛рдмреВрди рдлрд╛рдЗрд▓реНрд╕ рд╣рдЯрд╡реВ рд╢рдХрддрд╛. рддреЗ рд╣рдЯрд╡рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдкреБрд╖реНрдЯреАрдХрд░рдгрд╛рд╕рд╛рдареА рд╡рд┐рдЪрд╛рд░рддреЗ. рдореМрд▓реНрдпрд╡рд╛рди рдлрд╛рдЗрд▓реНрд╕рдЪреЗ рдЕрдкрдШрд╛рддреА рдиреБрдХрд╕рд╛рди рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдбрд┐рд▓реАрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЕрдХреНрд╖рдо рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдХреЗрд╡рд│-рд╡рд╛рдЪрдиреАрдп рдкреНрд░рд╡реЗрд╢ рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА -r рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░рд╛: ncdu -r.

ncdu рдЕрдиреЗрдХ Linux рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЖрдгрд┐ рд╡рд┐рддрд░рдгрд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Fedora рд╡рд░ рдереЗрдЯ рдЕрдзрд┐рдХреГрдд рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬрдордзреВрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА dnf рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛:

$ sudo dnf install ncdu

2. htop рд╡рд┐ рдЯреЙрдк

рд╣реЙрдк рд╢реАрд░реНрд╖ рдкреНрд░рдорд╛рдгреЗрдЪ рдПрдХ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджрд░реНрд╢рдХ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рддреЛ рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдкреНрд░рджрд╛рди рдХрд░рддреЛ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, htop рд╢реАрд░реНрд╖ рд╕рд╛рд░рдЦреАрдЪ рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ, рдкрд░рдВрддреБ рдЕрдзрд┐рдХ рджреГрд╢реНрдпрдорд╛рди рдЖрдгрд┐ рд░рдВрдЧреАрдд рдорд╛рд░реНрдЧрд╛рдиреЗ.

рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ htop рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

рдЬреБрдиреНрдпрд╛ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕рд╕рд╛рдареА 5 рдЖрдзреБрдирд┐рдХ рдкрд░реНрдпрд╛рдп
рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рд╡рд┐рдкрд░реАрдд:

рдЬреБрдиреНрдпрд╛ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕рд╕рд╛рдареА 5 рдЖрдзреБрдирд┐рдХ рдкрд░реНрдпрд╛рдп
рдпрд╛рд╢рд┐рд╡рд╛рдп, htop рд╡рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрд▓рд╛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд┐рд╕реНрдЯреАрдордмрджреНрджрд▓ рд╡рд┐рд╣рдВрдЧрд╛рд╡рд▓реЛрдХрди рдорд╛рд╣рд┐рддреА рдЖрдгрд┐ рддрд│рд╛рд╢реА рдлрдВрдХреНрд╢рди рдХреА рд╡рд╛рдкрд░реВрди рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдкреЕрдиреЗрд▓ рджрд╛рдЦрд╡рддреЛ. рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реНрдХреНрд░реАрди рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА F2 рджрд╛рдмреВрди рддреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рд╢рдХрддрд╛. рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ, рддреБрдореНрд╣реА рд░рдВрдЧ рдмрджрд▓реВ рд╢рдХрддрд╛, рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЬреЛрдбреВ рдХрд┐рдВрд╡рд╛ рдХрд╛рдвреВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ рд╡рд┐рд╣рдВрдЧрд╛рд╡рд▓реЛрдХрди рдкреЕрдиреЗрд▓ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░реНрдпрд╛рдп рдмрджрд▓реВ рд╢рдХрддрд╛.

рдЬрд░реА рддреБрдореНрд╣реА рдЯреЙрдкрдЪреНрдпрд╛ рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ рдмрджрд▓ рдХрд░реВрди рд╕рдорд╛рди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддрд╛, htop рд╕реЛрдпреАрд╕реНрдХрд░ рдбреАрдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдЬреЗ рддреЗ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЖрдгрд┐ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕реБрд▓рдн рдХрд░рддреЗ.

3. tldr рд╡рд┐рд░реБрджреНрдз рдордиреБрд╖реНрдп

tldr рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХрдорд╛рдВрдбрдмрджреНрджрд▓ рд╕рд░рд▓реАрдХреГрдд рдорджрдд рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ, рдмрд╣реБрддреЗрдХ рдЙрджрд╛рд╣рд░рдгреЗ. рддреЛ рд╕рдорд╛рдЬрд╛рдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рд╣реЛрддрд╛ tldr рдкреГрд╖реНрдареЗ рдкреНрд░рдХрд▓реНрдк.

рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА tldr рд╣реА рдорд╛рдгрд╕рд╛рдЪреА рдмрджрд▓реА рдирд╛рд╣реА. рд╣реЗ рдЕрдЬреВрдирд╣реА рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рд╡реНрдпрд╛рдкрдХ рдореЕрди рдкреЗрдЬ рдЖрдЙрдЯрдкреБрдЯ рд╕рд╛рдзрди рдЖрд╣реЗ. рддрдерд╛рдкрд┐, рдХрд╛рд╣реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдорд╛рдгреВрд╕ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдорд╛рдВрдбрдмрджреНрджрд▓ рд╕рд░реНрд╡рд╕рдорд╛рд╡реЗрд╢рдХ рдорд╛рд╣рд┐рддреАрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ, рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдлрдХреНрдд рддреНрдпрд╛рдЪреЗ рдореВрд▓рднреВрдд рдЙрдкрдпреЛрдЧ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдд рдЖрд╣рд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХрд░реНрд▓ рдХрдорд╛рдВрдбрд╕рд╛рдареА рдореЕрди рдкреЗрдЬрдордзреНрдпреЗ рдЬрд╡рд│рдкрд╛рд╕ 3000 рдУрд│реА рдЖрд╣реЗрдд. рдХрд░реНрд▓рд╕рд╛рдареА tldr рдкреГрд╖реНрда 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 рдкрд╛рдпрдерди рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗ рд╣реЛрддреЗ. рдЖрдкрдг dnf рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╡рд╛рдкрд░реВрди рддреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛. рд╕рд╛рдорд╛рдиреНрдпрддрдГ, рдЯреВрд▓рд▓рд╛ рдСрдкрд░реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рдиреЗрдЯ рдкреНрд░рд╡реЗрд╢ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЛ. рдкрд░рдВрддреБ Fedora рдЪреЗ Python рдХреНрд▓рд╛рдпрдВрдЯ рд╣реА рдкреГрд╖реНрдареЗ рдСрдлрд▓рд╛рдЗрди рдкреНрд░рд╡реЗрд╢рд╛рд╕рд╛рдареА рдбрд╛рдЙрдирд▓реЛрдб рдЖрдгрд┐ рдХреЕрд╢реЗ рдХрд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ.

4.jq рд╡рд┐ sed/grep

jq рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирд╕рд╛рдареА JSON рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд╣реЗ. рд╣реЗ sed рдХрд┐рдВрд╡рд╛ grep рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╡рд┐рд╢реЗрд╖рддрдГ JSON рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. рдЬрд░ рддреБрдореНрд╣реА рдбреЗрд╡реНрд╣рд▓рдкрд░ рдХрд┐рдВрд╡рд╛ рд╕рд┐рд╕реНрдЯрдо рдЕреЕрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдЕрд╕рд╛рд▓ рдЬреЛ рджреИрдирдВрджрд┐рди рдХрд╛рдорд╛рдВрдордзреНрдпреЗ JSON рд╡рд╛рдкрд░рдд рдЕрд╕реЗрд▓, рддрд░ рд╣реЗ рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдзрди рдЖрд╣реЗ.

grep рдЖрдгрд┐ sed рд╕рд╛рд░рдЦреНрдпрд╛ рдорд╛рдирдХ рдордЬрдХреВрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд╛рдзрдирд╛рдВрд╡рд░ jq рдЪрд╛ рдореБрдЦреНрдп рдлрд╛рдпрджрд╛ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рддреЗ 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 рд╡рд┐ рд╢реЛрдз

fd рдлрд╛рдЗрдВрдб рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪрд╛ рдПрдХ рд╕реЛрдкрд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ. Fd рдкреВрд░реНрдгрдкрдгреЗ рдкреБрдирд░реНрд╕реНрдерд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╣реЗрддреВ рдирд╛рд╣реА: рдлрд╛рдпрд▓реАрдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯреАрдХреЛрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВрди, рддреНрдпрд╛рдд рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реА рд╕рд░реНрд╡рд╛рдд рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЖрд╣реЗрдд.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Git рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдбрд┐рд░реЗрдХреНрдЯреНрд░реАрдордзреНрдпреЗ рдлрд╛рдЗрд▓реНрд╕ рд╢реЛрдзрддрд╛рдирд╛, fd рдЖрдкреЛрдЖрдк .git рдбрд┐рд░реЗрдХреНрдЯреНрд░реАрд╕рд╣ рд▓рдкрд╡рд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рдЖрдгрд┐ рд╕рдмрдбрд┐рд░реЗрдХреНрдЯрд░реАрдЬ рд╡рдЧрд│рддреЗ рдЖрдгрд┐ .gitignore рдлрд╛рдЗрд▓рдордзреАрд▓ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдбреНрд╕рдХрдбреЗ рджреЗрдЦреАрд▓ рджреБрд░реНрд▓рдХреНрд╖ рдХрд░рддреЗ. рдПрдХреВрдгрдЪ, рдкрд╣рд┐рд▓реНрдпрд╛ рдкреНрд░рдпрддреНрдирд╛рдд рдЕрдзрд┐рдХ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкрд░рдд рдХрд░реВрди рддреЗ рд╢реЛрдзрд╛рдВрдирд╛ рдЧрддреА рджреЗрддреЗ.

рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, fd рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рд░рдВрдЧ рдЖрдЙрдЯрдкреБрдЯрд╕рд╣ рдХреЗрд╕-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╢реЛрдз рдХрд░рддреЗ. рдлрд╛рдЗрдВрдб рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рд╕рдорд╛рди рд╢реЛрдзрд╛рд╕рд╛рдареА рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирд╡рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рд╕рд░реНрд╡ .md (рдХрд┐рдВрд╡рд╛ .MD) рдлрд╛рдЗрд▓реНрд╕ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдлрд╛рдЗрдВрдб рдХрдорд╛рдВрдб рд▓рд┐рд╣рд╛:

$ find . -iname "*.md"

fd рд╕рд╛рдареА рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

$ fd .md

рдкрд░рдВрддреБ рдХрд╛рд╣реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, fd рд▓рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реНрдпрд╛рдп рджреЗрдЦреАрд▓ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддрд╛рдд: рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд▓рдкрд╡рд┐рд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рдЖрдгрд┐ рдбрд┐рд░реЗрдХреНрдЯрд░реА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛рдпрдЪреНрдпрд╛ рдЕрд╕рддреАрд▓, рддрд░ рддреБрдореНрд╣реА -H рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЬрд░реА рд╣реЗ рд╕рд╣рд╕рд╛ рд╢реЛрдзрддрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╕рддреЗ.

fd рдЕрдиреЗрдХ Linux рд╡рд┐рддрд░рдгрд╛рдВрд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ. Fedora рдордзреНрдпреЗ рддреЗ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ:

$ sudo dnf install fd-find

рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реАрд╣реА рд╕реЛрдбрд╛рдпрдЪреЗ рдирд╛рд╣реА

рддреБрдореНрд╣реА рдирд╡реАрди рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рд╡рд╛рдкрд░рдд рдЖрд╣рд╛рдд? рдХрд┐рдВрд╡рд╛ рддреБрдореНрд╣реА рдлрдХреНрдд рдЬреБрдиреНрдпрд╛рдВрд╡рд░рдЪ рдмрд╕рддрд╛? рдкрдг рдмрд╣реБрдзрд╛ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдХреЙрдореНрдмреЛ рдЖрд╣реЗ, рдмрд░реЛрдмрд░? рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рдЖрдкрд▓рд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рд╛.

рдЬрд╛рд╣рд┐рд░рд╛рддреАрдВрдЪреНрдпрд╛ рдЕрдзрд┐рдХрд╛рд░рд╛рдВрд╡рд░

рдЖрдордЪреНрдпрд╛ рдЕрдиреЗрдХ рдХреНрд▓рд╛рдпрдВрдЯрдиреЗ рдЖрдзреАрдЪ рдлрд╛рдпрджреНрдпрд╛рдВрдЪреЗ рдХреМрддреБрдХ рдХреЗрд▓реЗ рдЖрд╣реЗ рдорд╣рд╛рдХрд╛рд╡реНрдп рд╕рд░реНрд╡реНрд╣рд░!
рдпрд╛ AMD EPYC рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╣ рдЖрднрд╛рд╕реА рд╕рд░реНрд╡реНрд╣рд░, CPU рдХреЛрд░ рд╡рд╛рд░рдВрд╡рд╛рд░рддрд╛ 3.4 GHz рдкрд░реНрдпрдВрдд. рдХрдорд╛рд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдлреЛрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдИрд▓ - 128 CPU рдХреЛрд░, 512 GB RAM, 4000 GB NVMe. рдСрд░реНрдбрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрд╡рд░рд╛ рдХрд░рд╛!

рдЬреБрдиреНрдпрд╛ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕рд╕рд╛рдареА 5 рдЖрдзреБрдирд┐рдХ рдкрд░реНрдпрд╛рдп

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛