рдкреБрд░рд╛рдиреЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд╕рд╛рдерд╕рд╛рдереИ рдердк рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рддрдкрд╛рдИрдВ рдердк рд░рдорд╛рдЗрд▓реЛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдЖрдлреНрдиреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
Linux/Unix рдорд╛ рд╣рд╛рдореНрд░реЛ рджреИрдирд┐рдХ рдХрд╛рд░реНрдпрдорд╛, рд╣рд╛рдореА рдзреЗрд░реИ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ - рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, du рдбрд┐рд╕реНрдХ рдкреНрд░рдпреЛрдЧ рд░ рдкреНрд░рдгрд╛рд▓реА рд╕реНрд░реЛрддрд╣рд░реВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдиред рдпреА рдордзреНрдпреЗ рдХреЗрд╣реА рдЙрдкрдХрд░рдгрд╣рд░реВ рд▓рд╛рдореЛ рд╕рдордпрджреЗрдЦрд┐ рдЫрдиреНред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рд╢реАрд░реНрд╖ 1984 рдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдпреЛ, рд░ du рдХреЛ рдкрд╣рд┐рд▓реЛ рд░рд┐рд▓реАрдЬ 1971 рдорд╛ рдлрд┐рд░реНрддрд╛ рднрдпреЛред
рд╡рд░реНрд╖реМрдВрдХреЛ рджреМрдбрд╛рди, рдпреА рдЙрдкрдХрд░рдгрд╣рд░реВ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкреЛрд░реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рддрд┐рдиреАрд╣рд░реВ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкрд╣рд┐рд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдмрд╛рдЯ рдЯрд╛рдврд╛ рд╕рд░реЗрдХрд╛ рдЫреИрдирдиреН, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрдирд┐ рдзреЗрд░реИ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫреИрдиред
рдпреА рдЙрддреНрдХреГрд╖реНрдЯ рдЙрдкрдХрд░рдгрд╣рд░реВ рд╣реБрдиреН рдЬреБрди рдзреЗрд░реИ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреНрдЫред рдпрджреНрдпрдкрд┐, рд╕рдореБрджрд╛рдпрд▓реЗ рдердк рдлрд╛рдЗрджрд╛рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЙрдкрдХрд░рдгрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реЗрдХреЛ рдЫред рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреЗрд╣реАрд╕рдБрдЧ рдорд╛рддреНрд░ рдЖрдзреБрдирд┐рдХ, рд╕реБрдиреНрджрд░ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдЫ, рдЬрдмрдХрд┐ рдЕрд░реВрд▓реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдорд╛ рдзреЗрд░реИ рд╕реБрдзрд╛рд░ рдЧрд░реНрдЫрдиреНред рдпрд╕ рдЕрдиреБрд╡рд╛рджрдорд╛, рд╣рд╛рдореА рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдкрд╛рдБрдЪ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВред
1. ncdu vs 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
рддрдкрд╛рдИрдВ рддреАрд░ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рд╣рд░реВ рдорд╛рд░реНрдлрдд рдиреЗрднрд┐рдЧреЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЗрдиреНрдЯрд░ рдерд┐рдЪреНрдиреБрднрдпреЛ рднрдиреЗ, 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 рдмрдирд╛рдо рд╢реАрд░реНрд╖
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ htop рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
рд╢реАрд░реНрд╖ рд╡рд┐рдкрд░реАрдд:
рдердк рд░реВрдкрдорд╛, htop рд▓реЗ рд╢реАрд░реНрд╖рдорд╛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ, рд░ рддрд▓рдХреЛ рдкреНрд░рдХрд╛рд░реНрдп рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЖрджреЗрд╢рд╣рд░реВ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдирд▓ред рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕реНрдХреНрд░рд┐рди рдЦреЛрд▓реНрди F2 рдерд┐рдЪреЗрд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдорд╛, рддрдкрд╛рдИрдВ рд░рдЩрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдореЗрдЯреНрд░рд┐рдХрд╣рд░реВ рдердкреНрди рд╡рд╛ рд╣рдЯрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд╡рд╛ рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди рдкреНрдпрд╛рдирд▓ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдпрджреНрдпрдкрд┐ рддрдкрд╛рдЗрдБ рд╢реАрд░реНрд╖рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдЯреНрд╡реАрдХ рдЧрд░реЗрд░ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, htop рд▓реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдердк рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред
3. 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 рдорд╛ рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреН, рддрд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╡рд░реНрдгрди рдЧрд░реНрди рдЕрд░реНрдХреЛ рд▓реЗрдЦ рдЖрд╡рд╢реНрдпрдХ рдЫред рдердк рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд▓рд╛рдЧрд┐ рдХреГрдкрдпрд╛ рд╕рдореНрдкрд░реНрдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН
5. fd рдмрдирд╛рдо рдЦреЛрдЬ
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Git рднрдгреНрдбрд╛рд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдЦреЛрдЬреНрджрд╛, fd рд▓реЗ .git рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд▓рдЧрд╛рдпрдд рд▓реБрдХреЗрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рд░ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рд╣рд░реВ рд╕реНрд╡рдд: рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрджрдЫ, рд░ .gitignore рдлрд╛рдЗрд▓рдмрд╛рдЯ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдбрд╣рд░реВ рдкрдирд┐ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджрдЫред рд╕рдордЧреНрд░рдорд╛, рдпрд╕рд▓реЗ рдкрд╣рд┐рд▓реЛ рдкреНрд░рдпрд╛рд╕рдорд╛ рдердк рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдлрд░реНрдХрд╛рдПрд░ рдЦреЛрдЬрд╣рд░реВрд▓рд╛рдИ рдЧрддрд┐ рджрд┐рдиреНрдЫред
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, fd рд▓реЗ рд╣рд╛рд▓рдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд░рдЩ рдЖрдЙрдЯрдкреБрдЯрдХреЛ рд╕рд╛рде рдХреЗрд╕-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЦреЛрдЬ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫред рдЦреЛрдЬ рдХрдорд╛рдгреНрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдПрдЙрдЯреИ рдЦреЛрдЬрд▓рд╛рдИ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ рдердк рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рд╛рд▓рдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╕рдмреИ .md (рд╡рд╛ .MD) рдлрд╛рдЗрд▓рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдЦреЛрдЬреА рдЖрджреЗрд╢ рдпрд╕реНрддреЛ рд▓реЗрдЦреНрдиреБрд╣реБрдиреЗрдЫ:
$ find . -iname "*.md"
fd рдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
$ fd .md
рддрд░ рдХреЗрд╣реА рдЕрд╡рд╕реНрдерд╛рдорд╛, fd рд▓рд╛рдИ рдердк рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкрдирд┐ рдЪрд╛рд╣рд┐рдиреНрдЫ: рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рддрдкрд╛рдЗрдБ рд▓реБрдХреЗрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓реЗ -H рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ, рдпрджреНрдпрдкрд┐ рдпреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдЦреЛрдЬреА рдЧрд░реНрджрд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред
fd рдзреЗрд░реИ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рдЫред рдлреЗрдбреЛрд░рд╛рдорд╛ рдпрд╕рд▓рд╛рдИ рдпрд╕рд░реА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:
$ sudo dnf install fd-find
рддрдкрд╛рдИрд▓реЗ рдХреЗрд╣рд┐ рдкрдирд┐ рддреНрдпрд╛рдЧреНрдиреБ рдкрд░реНрджреИрди
рдХреЗ рддрдкрд╛рдЗрдБ рдирдпрд╛рдБ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ? рд╡рд╛ рдкреБрд░рд╛рдирд╛рдорд╛ рдорд╛рддреНрд░реИ рдмрд╕реНрдиреЗ ? рддрд░ рд╕рдореНрднрд╡рддрдГ рддрдкрд╛рдИрд╕рдБрдЧ рдХрдореНрдмреЛ рдЫ, рд╣реИрди? рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рдЖрдлреНрдиреЛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рд╡рд┐рдЬреНрдЮрд╛рдкрдирдХреЛ рдЕрдзрд┐рдХрд╛рд░рдорд╛
рд╣рд╛рдореНрд░рд╛ рдзреЗрд░реИ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдлрд╛рдЗрджрд╛рд╣рд░реВрдХреЛ рдкреНрд░рд╢рдВрд╕рд╛ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫрдиреН рдорд╣рд╛рдХрд╛рд╡реНрдп рд╕рд░реНрднрд░рд╣рд░реВ!
рдпреЛ
рд╕реНрд░реЛрдд: www.habr.com