рдкреБрд░рд╛рдиреЛ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ 5 рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ

рдкреБрд░рд╛рдиреЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд╕рд╛рдерд╕рд╛рдереИ рдердк рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рддрдкрд╛рдИрдВ рдердк рд░рдорд╛рдЗрд▓реЛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдЖрдлреНрдиреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдкреБрд░рд╛рдиреЛ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ 5 рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ

Linux/Unix рдорд╛ рд╣рд╛рдореНрд░реЛ рджреИрдирд┐рдХ рдХрд╛рд░реНрдпрдорд╛, рд╣рд╛рдореА рдзреЗрд░реИ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ - рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, du рдбрд┐рд╕реНрдХ рдкреНрд░рдпреЛрдЧ рд░ рдкреНрд░рдгрд╛рд▓реА рд╕реНрд░реЛрддрд╣рд░реВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдиред рдпреА рдордзреНрдпреЗ рдХреЗрд╣реА рдЙрдкрдХрд░рдгрд╣рд░реВ рд▓рд╛рдореЛ рд╕рдордпрджреЗрдЦрд┐ рдЫрдиреНред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рд╢реАрд░реНрд╖ 1984 рдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдпреЛ, рд░ du рдХреЛ рдкрд╣рд┐рд▓реЛ рд░рд┐рд▓реАрдЬ 1971 рдорд╛ рдлрд┐рд░реНрддрд╛ рднрдпреЛред

рд╡рд░реНрд╖реМрдВрдХреЛ рджреМрдбрд╛рди, рдпреА рдЙрдкрдХрд░рдгрд╣рд░реВ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкреЛрд░реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рддрд┐рдиреАрд╣рд░реВ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдмрд╛рдЯ рдЯрд╛рдврд╛ рд╕рд░реЗрдХрд╛ рдЫреИрдирдиреН, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрдирд┐ рдзреЗрд░реИ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫреИрдиред

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

1. ncdu vs du

NCurses рдбрд┐рд╕реНрдХ рдкреНрд░рдпреЛрдЧ (рдПрдирд╕реАрдбреБ) 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

рддрдкрд╛рдИрдВ рддреАрд░ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ рдорд╛рд░реНрдлрдд рдиреЗрднрд┐рдЧреЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЗрдиреНрдЯрд░ рдерд┐рдЪреНрдиреБрднрдпреЛ рднрдиреЗ, ncdu рд▓реЗ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдХрд╛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗрдЫ:

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

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

ncdu рдзреЗрд░реИ рд▓рд┐рдирдХреНрд╕ рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВ рд░ рд╡рд┐рддрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ Fedora рдорд╛ рд╕реАрдзрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрдгреНрдбрд╛рд░рд╣рд░реВрдмрд╛рдЯ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди dnf рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

$ sudo dnf install ncdu

2. htop рдмрдирд╛рдо рд╢реАрд░реНрд╖

Hop рд╢реАрд░реНрд╖ рдЬрд╕реНрддреИ рдПрдХ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджрд░реНрд╢рдХ рд╣реЛ, рддрд░ рдмрдХреНрд╕ рдмрд╛рд╣рд┐рд░ рдпреЛ рдПрдХ рд░рд╛рдореНрд░реЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, 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 рдХреЛ рдЕрд░реНрде "рдзреЗрд░реИ рд▓рд╛рдореЛ; рдкрдвреНрдиреБ рднрдПрди": рдЕрд░реНрдерд╛рддреН, рдХреЗрд╣рд┐ рдкрд╛рда рдпрд╕рдХреЛ рдЕрддреНрдпрдзрд┐рдХ verbosity рдХреЛ рдХрд╛рд░рдг рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдпреЛред рдирд╛рдо рдпрд╕ рдЙрдкрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫ рдХрд┐рдирднрдиреЗ рдореНрдпрд╛рди рдкреГрд╖реНрдард╣рд░реВ, рдЙрдкрдпреЛрдЧреА рд╣реБрдБрджрд╛, рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдзреЗрд░реИ рд▓рд╛рдореЛ рд╣реБрди рд╕рдХреНрдЫред

рдлреЗрдбреЛрд░рд╛рдХреЛ рд▓рд╛рдЧрд┐, 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 рдзреЗрд░реИ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рдЫред рдлреЗрдбреЛрд░рд╛рдорд╛ рдпрд╕рд▓рд╛рдИ рдпрд╕рд░реА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:

$ sudo dnf install fd-find

рддрдкрд╛рдИрд▓реЗ рдХреЗрд╣рд┐ рдкрдирд┐ рддреНрдпрд╛рдЧреНрдиреБ рдкрд░реНрджреИрди

рдХреЗ рддрдкрд╛рдЗрдБ рдирдпрд╛рдБ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ? рд╡рд╛ рдкреБрд░рд╛рдирд╛рдорд╛ рдорд╛рддреНрд░реИ рдмрд╕реНрдиреЗ ? рддрд░ рд╕рдореНрднрд╡рддрдГ рддрдкрд╛рдИрд╕рдБрдЧ рдХрдореНрдмреЛ рдЫ, рд╣реИрди? рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рдЖрдлреНрдиреЛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╡рд┐рдЬреНрдЮрд╛рдкрдирдХреЛ рдЕрдзрд┐рдХрд╛рд░рдорд╛

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

рдкреБрд░рд╛рдиреЛ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ 5 рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди