diff --git a/README-np.md b/README-np.md new file mode 100644 index 0000000..d359c0c --- /dev/null +++ b/README-np.md @@ -0,0 +1,618 @@ +ЁЯМН +*[─Мe┼бtina](README-cs.md) тИЩ [Deutsch](README-de.md) тИЩ [╬Х╬╗╬╗╬╖╬╜╬╣╬║╬м](README-el.md) тИЩ [English](README.md) тИЩ [Espa├▒ol](README-es.md) тИЩ [Fran├зais](README-fr.md) тИЩ [Indonesia](README-id.md) тИЩ [Italiano](README-it.md) тИЩ [цЧецЬмшкЮ](README-ja.md) тИЩ [эХЬъ╡ньЦ┤](README-ko.md) тИЩ [polski](README-pl.md) тИЩ [Portugu├кs](README-pt.md) тИЩ [Rom├вn─Г](README-ro.md) тИЩ [╨а╤Г╤Б╤Б╨║╨╕╨╣](README-ru.md) тИЩ [Sloven┼б─Нina](README-sl.md) тИЩ [╨г╨║╤А╨░╤Ч╨╜╤Б╤М╨║╨░](README-uk.md) тИЩ [чоАф╜Уф╕нцЦЗ](README-zh.md) тИЩ [ч╣БщлФф╕нцЦЗ](README-zh-Hant.md)* + + +# рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдХреЛ рдХрд▓рд╛ + +*рдиреЛрдЯ: рдо рдпрд╕рд▓рд╛рдИ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЫреБ рд░ рдпрд╕рд▓рд╛рдИ рдердк рд╡реНрдпрд╛рдкрдХ рдЧрд╛рдЗрдбрдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрди рдирдпрд╛рдБ рд╕рд╣-рд▓реЗрдЦрдХ рдЦреЛрдЬреНрджреИрдЫреБред рдЬрдмрдХрд┐ рдпреЛ рдзреЗрд░реИ рд▓реЛрдХрдкреНрд░рд┐рдп рдЫ, рдпреЛ рдлрд░рд╛рдХрд┐рд▓реЛ рд░ рдЕрд▓рд┐ рдЧрд╣рд┐рд░реЛ рд╣реБрди рд╕рдХреНрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВ рд▓реЗрдЦреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рд░ рдпрд╕ рд╕рд╛рдордЧреНрд░реАрдорд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реБрдирдХреЛ рдирдЬрд┐рдХ рд╣реБрдиреБрд╣реБрдиреНрдЫ рд░ рдорджреНрджрдд рдЧрд░реНрди рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рдЗрдЪреНрдЫреБрдХ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдХреГрдкрдпрд╛ рдорд▓рд╛рдИ josh (0x40) holloway.com рдорд╛ рдПрдХ рдиреЛрдЯ рдЫреЛрдбреНрдиреБрд╣реЛрд╕реНред тАУ[jlevy](https://github.com/jlevy), [Holloway](https://www.holloway.com). рдзрдиреНрдпрд╡рд╛рдж!* + +- [рдореЗрдЯрд╛] (#рдореЗрдЯрд╛) +- [рдЖрдзрд╛рд░рднреВрдд](#рдЖрдзрд╛рд░рднреВрдд) +- [рджреИрдирд┐рдХ рдкреНрд░рдпреЛрдЧ] (#рджреИрдирд┐рдХ рдкреНрд░рдпреЛрдЧ) +- [рдлрд╛рдЗрд▓ рд░ рдбрд╛рдЯрд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджреИ](#рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ-рдлрд╛рдЗрд▓-рд░-рдбреЗрдЯрд╛) +- [рдкреНрд░рдгрд╛рд▓реА рдбрд┐рдмрдЧрд┐рдЩ] (#system-debugging) +- [рд╡рди-рд▓рд╛рдЗрдирд░] (#рд╡рди-рд▓рд╛рдЗрдирд░) +- [рдЕрд╕реНрдкрд╖реНрдЯ рддрд░ рдЙрдкрдпреЛрдЧреА] (#рдЕрд╕реНрдкрд╖реНрдЯ-рддрд░-рдЙрдкрдпреЛрдЧреА) +- [macOS рдорд╛рддреНрд░] (#macos-рдорд╛рддреНрд░) +- [Windows рдорд╛рддреНрд░] (#windows-only) +- [рдЕрдзрд┐рдХ рд╕реНрд░реЛрддрд╣рд░реВ] (#рдЕрдзрд┐рдХ-рд╕рдВрд╕рд╛рдзрдирд╣рд░реВ) +- [рдЕрд╕реНрд╡реАрдХрд░рдг] (#рдЕрд╕реНрд╡реАрдХрд░рдг) + + +![curl -s 'https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md' | egrep -o '`\w+`' | tr -d '`' | cowsay -W50](cowsay.png) + +рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ рдкреНрд░рд╡рд╛рд╣ рдПрдХ рд╕реАрдк рд╣реЛ рдЬреБрди рдкреНрд░рд╛рдп: рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдиреНрдЫ рд╡рд╛ рд░рд╣рд╕реНрдпрдордп рдорд╛рдирд┐рдиреНрдЫ, рддрд░ рдпрд╕рд▓реЗ рд╕реНрдкрд╖реНрдЯ рд░ рд╕реВрдХреНрд╖реНрдо рджреБрд╡реИ рддрд░рд┐рдХрд╛рдорд╛ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рдХреЛ рд░реВрдкрдорд╛ рддрдкрд╛рдИрдВрдХреЛ рд▓рдЪрд┐рд▓реЛрдкрди рд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрджрдЫред рдпреЛ рдХрдорд╛рдгреНрдб-рд▓рд╛рдЗрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдиреЛрдЯрд╣рд░реВ рд░ рд╕реБрдЭрд╛рд╡рд╣рд░реВрдХреЛ рдЪрдпрди рд╣реЛ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рд▓рд┐рдирдХреНрд╕рдорд╛ рдХрд╛рдо рдЧрд░реНрджрд╛ рдЙрдкрдпреЛрдЧреА рдкрд╛рдПрдХрд╛ рдЫреМрдВред рдХреЗрд╣реА рд╕реБрдЭрд╛рд╡рд╣рд░реВ рдкреНрд░рд╛рдердорд┐рдХ рдЫрдиреН, рд░ рдХреЗрд╣реА рдПрдХрджрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ, рдкрд░рд┐рд╖реНрдХреГрдд, рд╡рд╛ рдЕрд╕реНрдкрд╖реНрдЯ рдЫрдиреНред рдпреЛ рдкреГрд╖реНрда рд▓рд╛рдореЛ рдЫреИрди, рддрд░ рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╣рд╛рдБ рд╕рдмреИ рд╡рд╕реНрддреБрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░ рд╕рдореНрдЭрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдзреЗрд░реИ рдерд╛рд╣рд╛ рдЫред + +рдпреЛ рдХрд╛рдо [рдзреЗрд░реИ рд▓реЗрдЦрдХ рд░ рдЕрдиреБрд╡рд╛рджрдХрд╣рд░реВ](AUTHORS.md) рдХреЛ рдкрд░рд┐рдгрд╛рдо рд╣реЛред +рдпрд╕ рдордзреНрдпреЗ рдХреЗрд╣реА +[рдореВрд▓ рд░реВрдкрдорд╛](http://www.quora.com/What-are-some-lesser-known-but-useful-Unix-commands) +[рджреЗрдЦрд╛рдпреЛ](http://www.quora.com/What-are-the-most-useful-Swiss-army-knife-one-liners-on-Unix) +рдорд╛ [Quora](http://www.quora.com/What-are-some-time-saving-tips-that-every-Linux-user-should-know), +рддрд░ рдпреЛ рдкрдЫрд┐ GitHub рдорд╛ рд╕рд╛рд░рд┐рдпреЛ, рдЬрд╣рд╛рдБ рдореВрд▓ рд▓реЗрдЦрдХ рднрдиреНрджрд╛ рдзреЗрд░реИ рдкреНрд░рддрд┐рднрд╛рд╢рд╛рд▓реА рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рдзреЗрд░реИ рд╕реБрдзрд╛рд░рд╣рд░реВ рдЧрд░реЗрдХрд╛ рдЫрдиреНред +[**рдХреГрдкрдпрд╛ рдПрдЙрдЯрд╛ рдкреНрд░рд╢реНрди рдкреЗрд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН**](https://airtable.com/shrzMhx00YiIVAWJg) рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдкреНрд░рд╢реНрди рдЫ рднрдиреЗред [**рдХреГрдкрдпрд╛ рдпреЛрдЧрджрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН**](/CONTRIBUTING.md) рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рддреНрд░реБрдЯрд┐ рд╡рд╛ рдЕрдЭ рд░рд╛рдореНрд░реЛ рд╣реБрди рд╕рдХреНрдиреЗ рдХреЗрд╣реА рджреЗрдЦреНрдиреБрднрдпреЛ рднрдиреЗ! + +## рдореЗрдЯрд╛ + +рджрд╛рдпрд░рд╛: + +- рдпреЛ рдЧрд╛рдИрдб рджреБрдмреИ рд╢реБрд░реБрдЖрддреА рд░ рдЕрдиреБрднрд╡реА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛред рд▓рдХреНрд╖реНрдпрд╣рд░реВ рд╣реБрдиреН * рдЪреМрдбрд╛рдИ * (рд╕рдмреИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг), * рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ * (рд╕рдмреИрднрдиреНрджрд╛ рд╕рд╛рдорд╛рдиреНрдп рдХреЗрд╕рдХреЛ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рджрд┐рдиреБрд╣реЛрд╕реН), рд░ * рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ * (рдЕрддреНрдпрд╛рд╡рд╢реНрдпрдХ рдирднрдПрдХрд╛ рдЪреАрдЬрд╣рд░реВ рд╡реЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛ рддрдкрд╛рдИрдВрд▓реЗ рд╕рдЬрд┐рд▓реИ рдЕрдиреНрдпрддреНрд░ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ)ред рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдк рдХреЗрд╣рд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ рд╡рд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдорд╛ рд╕рдордп рдмрдЪрдд рдЧрд░реНрджрдЫред +- рдпреЛ "[macOS only](#macos-only)" рд░ "[Windows only](#windows-only)" рдЦрдгреНрдбрд╣рд░реВ рдмрд╛рд╣реЗрдХ, Linux рдХреЛ рд▓рд╛рдЧрд┐ рд▓реЗрдЦрд┐рдПрдХреЛ рд╣реЛред рдЕрдиреНрдп рдзреЗрд░реИ рд╡рд╕реНрддреБрд╣рд░реВ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреН рд╡рд╛ рдЕрдиреНрдп Unices рд╡рд╛ macOS (рд╡рд╛ рдкрдирд┐ Cygwin) рдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред +- рдлреЛрдХрд╕ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ Bash рдорд╛ рдЫ, рдпрджреНрдпрдкрд┐ рдзреЗрд░реИ рд╕реБрдЭрд╛рд╡рд╣рд░реВ рдЕрдиреНрдп рд╢реЗрд▓рд╣рд░реВрдорд╛ рд░ рд╕рд╛рдорд╛рдиреНрдп Bash рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдЩрдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреНред +- рдпрд╕рд▓реЗ рджреБрдмреИ "рдорд╛рдирдХ" рдпреБрдирд┐рдХреНрд╕ рдЖрджреЗрд╢рд╣рд░реВ рд╕рд╛рдереИ рд╡рд┐рд╢реЗрд╖ рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ - рдЬрдмрд╕рдореНрдо рддрд┐рдиреАрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢реАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫрдиреНред + +рдиреЛрдЯ: + +- рдпрд╕рд▓рд╛рдИ рдПрдХ рдкреГрд╖реНрдардорд╛ рд░рд╛рдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╕рд╛рдордЧреНрд░реАрд▓рд╛рдИ рд╕рдиреНрджрд░реНрднрджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдЫред рдПрдХрдкрдЯрдХ рддрдкрд╛рдИрдВрд▓реЗ Google рд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рд╡рд╛ рдЖрджреЗрд╢ рдерд╛рд╣рд╛ рдкрд╛рдЙрдиреБрднрдПрдкрдЫрд┐ рдЕрдиреНрдпрддреНрд░ рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реБрдиреБрд╣реБрдиреНрдЫред рдирдпрд╛рдБ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди `apt`, `yum`, `dnf`, `pacman`, `pip` рд╡рд╛ `brew` (рдЙрдкрдпреБрдХреНрдд рд░реВрдкрдорд╛) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред +- рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН [Explainshell](http://explainshell.com/) рдХрдорд╛рдиреНрдбрд╣рд░реВ, рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ, рдкрд╛рдЗрдкрд╣рд░реВ рдЗрддреНрдпрд╛рджрд┐рд▓реЗ рдХреЗ рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдЙрдкрдпреЛрдЧреА рдмреНрд░реЗрдХрдбрд╛рдЙрди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиред + +## рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛ + +- рдЖрдзрд╛рд░рднреВрдд рдмреНрдпрд╛рд╕ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред рд╡рд╛рд╕реНрддрд╡рдорд╛, `man bash` рдЯрд╛рдЗрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдХрдореНрддрд┐рдорд╛ рд╕рдореНрдкреВрд░реНрдг рдХреБрд░рд╛ рд╕реНрдХрд┐рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН; рдпрд╕рд▓рд╛рдИ рдкрдЫреНрдпрд╛рдЙрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдЫ рд░ рддреНрдпреЛ рд▓рд╛рдореЛ рдЫреИрдиред рд╡реИрдХрд▓реНрдкрд┐рдХ рд╢реЗрд▓рд╣рд░реВ рд░рд╛рдореНрд░реЛ рд╣реБрди рд╕рдХреНрдЫ, рддрд░ Bash рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд░ рд╕рдзреИрдВ рдЙрдкрд▓рдмреНрдз рдЫ (*рдорд╛рддреНрд░* zsh, рдорд╛рдЫрд╛, рдЗрддреНрдпрд╛рджрд┐ рд╕рд┐рдХреНрдиреЗ, рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рд▓реНрдпрд╛рдкрдЯрдкрдорд╛ рдкреНрд░рд▓реЛрднрдирдорд╛ рд░рд╣рдБрджрд╛, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрд╡рд╕реНрдерд┐рдд рд╕рд░реНрднрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЬрд╕реНрддрд╛ рдзреЗрд░реИ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛ рдкреНрд░рддрд┐рдмрдиреНрдз рд▓рдЧрд╛рдЙрдБрджрдЫ)ред + +- рдХрдореНрддрд┐рдорд╛ рдПрдХ рдкрд╛рда-рдЖрдзрд╛рд░рд┐рдд рд╕рдореНрдкрд╛рджрдХ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред `nano` рд╕рдореНрдкрд╛рджрдХ рдЖрдзрд╛рд░рднреВрдд рд╕рдореНрдкрд╛рджрди (рдЦреЛрд▓реНрдиреЗ, рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреЗ, рдмрдЪрдд рдЧрд░реНрдиреЗ, рдЦреЛрдЬреНрдиреЗ) рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд░рд▓ рдордзреНрдпреЗ рдПрдХ рд╣реЛред рдпрджреНрдпрдкрд┐, рдкрд╛рда рдЯрд░реНрдорд┐рдирд▓рдорд╛ рдкрд╛рд╡рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐, Vim (`vi`) рдХреЛ рдХреБрдиреИ рд╡рд┐рдХрд▓реНрдк рдЫреИрди, рд╕рд┐рдХреНрди рдЧрд╛рд╣реНрд░реЛ рддрд░ рдЖрджрд░рдгреАрдп, рдЫрд┐рдЯреЛ, рд░ рдкреВрд░реНрдг-рд╡рд┐рд╢реЗрд╖ рд╕рдореНрдкрд╛рджрдХред рдзреЗрд░реИ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рдХреНрд▓рд╛рд╕рд┐рдХ Emacs рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдареВрд▓рд╛ рд╕рдореНрдкрд╛рджрди рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред (рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рд╡рд┐рд╕реНрддреГрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛтАЛтАЛрдХрд╛рдо рдЧрд░реНрдиреЗ рдХреБрдиреИ рдкрдирд┐ рдЖрдзреБрдирд┐рдХ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рд╢реБрджреНрдз рдкрд╛рда-рдЖрдзрд╛рд░рд┐рдд рд╕рдореНрдкрд╛рджрдХ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдЫреИрди рд░ рдЖрдзреБрдирд┐рдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ IDE рд░ рдЙрдкрдХрд░рдгрд╣рд░реВрд╕рдБрдЧ рдкрдирд┐ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред) + +- рдХрд╛рдЧрдЬрд╛рдд рдЦреЛрдЬреНрджреИ: + - рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН рдХрд╕рд░реА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ `man` рд╕рдБрдЧ рдкрдвреНрдиреЗ (рдЬрд┐рдЬреНрдЮрд╛рд╕реБрдХрд╛ рд▓рд╛рдЧрд┐, `man man` рд▓реЗ рд╕реЗрдХреНрд╕рди рдирдореНрдмрд░рд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ 1 рд▓реЗ "рдирд┐рдпрдорд┐рдд" рдЖрджреЗрд╢рд╣рд░реВ, 5 рдлрд╛рдЗрд▓рд╣рд░реВ/рдХрдиреНрднреЗрдиреНрд╕рдирд╣рд░реВ, рд░ 8 рдкреНрд░рд╢рд╛рд╕рдирдХрд╛ рд▓рд╛рдЧрд┐ рд╣реБрдиреН)ред 'apropos' рдХреЛ рд╕рд╛рде рдореНрдпрд╛рди рдкреГрд╖реНрдард╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реНред + - рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН рдХрд┐ рдХреЗрд╣рд┐ рдЖрджреЗрд╢рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рд╣реЛрдЗрдирдиреН, рддрд░ Bash рдмрд┐рд▓реНрдЯрдЗрдирд╣рд░реВ рд╣реБрдиреН, рд░ рддрдкрд╛рдЗрдБ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ 'help' рд░ 'help -d' рдорд╛рд░реНрдлрдд рдорджреНрджрдд рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрдкрд╛рдИрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп, рд╢реЗрд▓ рдмрд┐рд▓реНрдЯрдЗрди рд╡рд╛ рдЙрдкрдирд╛рдо рд╣реЛ `рдкреНрд░рдХрд╛рд░ рдЖрджреЗрд╢` рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред + - `curl cheat.sh/command` рд▓реЗ рд╢реЗрд▓ рдХрдорд╛рдгреНрдб рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд╕рд╛рде рд╕рдВрдХреНрд╖рд┐рдкреНрдд "рдзреЛрдЦрд╛ рдкрд╛рдирд╛" рджрд┐рдиреЗрдЫред + +- `>` рд░ `<` рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЖрдЙрдЯрдкреБрдЯ рд░ рдЗрдирдкреБрдЯрдХреЛ рдкреБрди:рдирд┐рд░реНрджреЗрд╢рди рд░ `|` рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд╛рдЗрдкрд╣рд░реВ рдмрд╛рд░реЗ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН `>` рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрд▓ рдЕрдзрд┐рд▓реЗрдЦрди рдЧрд░реНрджрдЫ рд░ `>>` рдЬреЛрдбрд┐рдиреНрдЫред stdout рд░ stderr рдмрд╛рд░реЗ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред + +- рдлрд╛рдЗрд▓ рдЧреНрд▓реЛрдм рд╡рд┐рд╕реНрддрд╛рд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН `*` (рд░ рд╕рд╛рдпрдж `?` рд░ `[`...`]`) рд░ рдЙрджреНрдзрд░рдг рд░ рдбрдмрд▓ `"` рд░ рдПрдХрд▓ ``` рдЙрджреНрдзрд░рдгрд╣рд░реВ рдмреАрдЪрдХреЛ рднрд┐рдиреНрдирддрд╛ред (рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░рдорд╛ рдердк рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рддрд▓ред) + +- Bash рдХрд╛рд░реНрдп рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реЛрд╕реН: `&`, **ctrl-z**, **ctrl-c**, `jobs`, `fg`, `bg`, `kill`, рдЖрджрд┐ред + +- `ssh`, рд░ `ssh-agent`, `ssh-add`, рдЖрджрд┐ рдорд╛рд░реНрдлрдд рдкрд╛рд╕рд╡рд░реНрдбрд░рд╣рд┐рдд рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХрд╛ рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред +- рдЖрдзрд╛рд░рднреВрдд рдлрд╛рдЗрд▓ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди: `ls` рд░ `ls -l` (рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, `ls -l` рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдореНрднрдХреЛ рдЕрд░реНрде рдХреЗ рд╣реЛ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН), `рдХрдо`, `рд╣реЗрдб`, `рдкреБрдЪреНрдЫрд░` рд░ `рдкреБрдЪреНрдЫрд░-f` (рд╡рд╛ рдЕрдЭ рд░рд╛рдореНрд░реЛ, `рдХрдо +F`), `ln` рд░ `ln -s` (рд╣рд╛рд░реНрдб рдмрдирд╛рдо рд╕рдлреНрдЯ рд▓рд┐рдЩреНрдХрд╣рд░реВрдХреЛ рднрд┐рдиреНрдирддрд╛ рд░ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН), `chown`, `chmod`, `du` (рдбрд┐рд╕реНрдХрдХреЛ рджреНрд░реБрдд рд╕рд╛рд░рд╛рдВрд╢рдХреЛ рд▓рд╛рдЧрд┐) рдЙрдкрдпреЛрдЧ: `du -hs *`)ред рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирдХрд╛ рд▓рд╛рдЧрд┐, `df`, `mount`, `fdisk`, `mkfs`, `lsblk`ред рдПрдХ inode рдХреЗ рд╣реЛ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН (`ls -i` рд╡рд╛ `df -i`)ред + +- рдЖрдзрд╛рд░рднреВрдд рдиреЗрдЯрд╡рд░реНрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди: `ip` рд╡рд╛ `ifconfig`, `dig`, `traceroute`, `route`ред + +- рд╕рд┐рдХреНрдиреБрд╣реЛрд╕реН рд░ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЬрд╕реНрддреИ `git`ред + +- рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рд░рд╛рдореНрд░рд░реА рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН, рд░ `grep`/`egrep` рдорд╛ рд╡рд┐рднрд┐рдиреНрди рдЭрдгреНрдбрд╛рд╣рд░реВред `-i`, `-o`, `-v`, `-A`, `-B`, рд░ `-C` рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЬрд╛рдиреНрди рд▓рд╛рдпрдХ рдЫрдиреНред + +- рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди `apt-get`, `yum`, `dnf` рд╡рд╛ `pacman` (distro рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджреИ) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдХреНрдиреБрд╣реЛрд╕реНред рд░ рдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдИрд╕рдБрдЧ рдкрд╛рдЗрдерди-рдЖрдзрд╛рд░рд┐рдд рдХрдорд╛рдгреНрдб-рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди `pip` рдЫ (рдХреЗрд╣реА рддрд▓ `pip` рдорд╛рд░реНрдлрдд рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдЫ)ред + + +## рджреИрдирд┐рдХ рдкреНрд░рдпреЛрдЧ + +- Bash рдорд╛, **рдЯреНрдпрд╛рдм** рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рддрд░реНрдХрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рд╡рд╛ рд╕рдмреИ рдЙрдкрд▓рдмреНрдз рдЖрджреЗрд╢рд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрди рд░ **ctrl-r** рдЖрджреЗрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдорд╛рд░реНрдлрдд рдЦреЛрдЬреА рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ (рдерд┐рдЪреЗрдкрдЫрд┐, рдЦреЛрдЬ рдЧрд░реНрди рдЯрд╛рдЗрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЪрдХреНрд░рдорд╛ **ctrl-r** рдмрд╛рд░рдореНрдмрд╛рд░ рдерд┐рдЪреНрдиреБрд╣реЛрд╕реНред рдердк рдорд┐рд▓рд╛рдирд╣рд░реВ рдорд╛рд░реНрдлрдд, рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди **Enter** рдерд┐рдЪреНрдиреБрд╣реЛрд╕реН, рд╡рд╛ рд╕рдореНрдкрд╛рджрдирд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рд▓рдХреЛ рд▓рд╛рдЗрдирдорд╛ рдирддрд┐рдЬрд╛ рд░рд╛рдЦреНрди рджрд╛рдпрд╛рдБ рддреАрд░рдорд╛ рдерд┐рдЪреНрдиреБрд╣реЛрд╕реН)ред + +- Bash рдорд╛, рдЕрдиреНрддрд┐рдо рд╢рдмреНрдж рдореЗрдЯрд╛рдЙрди **ctrl-w** рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ **ctrl-u** рд╣рд╛рд▓рдХреЛ рдХрд░реНрд╕рд░рдмрд╛рдЯ рд▓рд╛рдЗрдирдХреЛ рд╕реБрд░реБрдорд╛ рд╕рд╛рдордЧреНрд░реА рдореЗрдЯрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ред рд╢рдмреНрджрджреНрд╡рд╛рд░рд╛ рд╕рд╛рд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ **alt-b** рд░ **alt-f** рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдХрд░реНрд╕рд░рд▓рд╛рдИ рд░реЗрдЦрд╛рдХреЛ рд╕реБрд░реБрдорд╛ рд╕рд╛рд░реНрди **ctrl-a**, **ctrl-e** рдХрд░реНрд╕рд░рд▓рд╛рдИ рд░реЗрдЦрд╛рдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рд╕рд╛рд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред , **ctrl-k** рд▓рд╛рдЗрдирдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдорд╛рд░реНрди, **ctrl-l** рд╕реНрдХреНрд░рд┐рди рдЦрд╛рд▓реА рдЧрд░реНрдиред Bash рдорд╛ рд╕рдмреИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ `man readline` рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдЫрдиреНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ **alt-** рдЕрдШрд┐рд▓реНрд▓реЛ рддрд░реНрдХрд╣рд░реВ рдорд╛рд░реНрдлрдд рдЪрдХреНрд░, рд░ **alt-**** рд▓реЗ рдЧреНрд▓реЛрдм рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджрдЫред + + +- рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдкрдорд╛, рдпрджрд┐ рддрдкрд╛рдЗрдБ vi-style рдХреБрдЮреНрдЬреА-рдмрд╛рдЗрдиреНрдбрд┐рдЩрд╣рд░реВ рдорди рдкрд░рд╛рдЙрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, `set -o vi` (рд░ `set -o emacs` рдпрд╕рд▓рд╛рдИ рдлрд┐рд░реНрддрд╛ рд░рд╛рдЦреНрди) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рд▓рд╛рдореЛ рдЖрджреЗрд╢рд╣рд░реВ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрдХреЛ рд╕рдореНрдкрд╛рджрдХ рд╕реЗрдЯ рдЧрд░реЗрдкрдЫрд┐ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ `EDITOR=vim` рдирд┐рд░реНрдпрд╛рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН), **ctrl-x** **ctrl-e** рд▓реЗ рдмрд╣реБ-рд▓рд╛рдЗрди рд╕рдореНрдкрд╛рджрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдореНрдкрд╛рджрдХрдорд╛ рд╣рд╛рд▓рдХреЛ рдЖрджреЗрд╢ рдЦреЛрд▓реНрдиреЗрдЫред рд╡рд╛ vi рд╢реИрд▓реАрдорд╛, **рдПрд╕реНрдХреЗрдк-v**ред + +- рд╣рд╛рд▓рдХрд╛ рдЖрджреЗрд╢рд╣рд░реВ рд╣реЗрд░реНрди, 'рдЗрддрд┐рд╣рд╛рд╕' рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдлреЗрд░рд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди `!n` (рдЬрд╣рд╛рдБ `n` рдХрдорд╛рдгреНрдб рдирдореНрдмрд░ рд╣реЛ) рд╕рдБрдЧ рдкрдЫреНрдпрд╛рдЙрдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреЗ рдзреЗрд░реИ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдорд╣рд░реВ рдкрдирд┐ рдЫрдиреН, рд╕рдмреИрднрдиреНрджрд╛ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫ `!$` рдЕрдиреНрддрд┐рдо рддрд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рд░ `!!` рдЕрдиреНрддрд┐рдо рдЖрджреЗрд╢рдХреЛ рд▓рд╛рдЧрд┐ (рдореНрдпрд╛рди рдкреГрд╖реНрдардорд╛ "рдЗрддрд┐рд╣рд╛рд╕ рд╡рд┐рд╕реНрддрд╛рд░" рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН)ред рдпрджреНрдпрдкрд┐, рдпреА рдкреНрд░рд╛рдпрдГ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ **ctrl-r** рд░ **alt-.** рд╕рдБрдЧ рдмрджрд▓рд┐рдиреНрдЫрдиреНред + +- `cd` рдХреЛ рд╕рд╛рде рдЖрдлреНрдиреЛ рдЧреГрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реНред `~` рдЙрдкрд╕рд░реНрдЧ (рдЬрд╕реНрддреИ `~/.bashrc`) рд╕рдБрдЧ рддрдкрд╛рдИрдБрдХреЛ рдЧреГрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдлрд╛рдЗрд▓рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред `sh` рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛ рдЧреГрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рд▓рд╛рдИ `$HOME` рднрдирд┐рдиреНрдЫред + +- рдЕрдШрд┐рд▓реНрд▓реЛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдлрд░реНрдХрди: `cd -`ред + +- рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЖрджреЗрд╢ рдЯрд╛рдЗрдк рдЧрд░реЗрд░ рдЖрдзрд╛ рдмрд╛рдЯреЛрдорд╛ рд╣реБрдиреБрд╣реБрдиреНрдЫ рддрд░ рдЖрдлреНрдиреЛ рд╡рд┐рдЪрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, **alt-#** рдорд╛ рдерд┐рдЪреНрдиреБрд╣реЛрд╕реН рд╕реБрд░реБрдорд╛ `#` рдердкреНрди рд░ рдпрд╕рд▓рд╛рдИ рдЯрд┐рдкреНрдкрдгреАрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╡рд╛ **ctrl-a**, ** рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред #**, **рдЗрдиреНрдЯрд░**)ред рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдЖрджреЗрд╢ рдЗрддрд┐рд╣рд╛рд╕ рдорд╛рд░реНрдлрдд рдкрдЫрд┐ рдлрд░реНрдХрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред + +- `xargs` (рд╡рд╛ `рд╕рдорд╛рдирд╛рдиреНрддрд░`) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпреЛ рдзреЗрд░реИ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЫред рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рддрд┐ рд░реЗрдЦрд╛ (`-L`) рд╕рд╛рдереИ рд╕рдорд╛рдирд╛рдиреНрддрд░ (`-P`) рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рдХрддрд┐ рд╡рд╕реНрддреБрд╣рд░реВ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрдиреБрд╣реБрдиреНрди рдХрд┐ рдпрд╕рд▓реЗ рд╕рд╣реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗ, рдкрд╣рд┐рд▓реЗ `xargs echo` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╕рд╛рдереИ, `-I{}` рдЙрдкрдпреЛрдЧреА рдЫред рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ: +``рдмрд╛рд╢ + рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реНред -рдирд╛рдо '*.py' | xargs grep some_function + рдмрд┐рд░рд╛рд▓реЛ рд╣реЛрд╕реНрдЯ | xargs -I{} ssh root@{} рд╣реЛрд╕реНрдЯрдирд╛рдо +``` + +- `pstree -p` рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░реВрдЦрдХреЛ рдПрдХ рдЙрдкрдпреЛрдЧреА рдкреНрд░рджрд░реНрд╢рди рд╣реЛред + +- рдирд╛рдорджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╡рд╛ рд╕рдВрдХреЗрдд рдЧрд░реНрди `pgrep` рд░ `pkill` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН (`-f` рдЙрдкрдпреЛрдЧреА рдЫ)ред + +- рддрдкрд╛рдИрд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдкрдард╛рдЙрди рд╕рдХреНрдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХреЗрддрд╣рд░реВ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд▓рдореНрдмрди рдЧрд░реНрди, `kill -STOP [pid]` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдкреВрд░реНрдг рд╕реВрдЪреАрдХреЛ рд▓рд╛рдЧрд┐, `man 7 рд╕рд┐рдЧреНрдирд▓` рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН + +- рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдзреИрдВрднрд░рд┐ рдЪрд▓рд┐рд░рд╣рди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ `nohup` рд╡рд╛ `disown` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдХреБрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ `netstat -lntp` рд╡рд╛ `ss -plat` (TCP рдХреЛ рд▓рд╛рдЧрд┐; UDP рдХреЛ рд▓рд╛рдЧрд┐ `-u` рдердкреНрдиреБрд╣реЛрд╕реН) рд╡рд╛ `lsof -iTCP -sTCP:LISTEN -P -n` (рдЬрд╕рд▓реЗ macOS рдорд╛ рдкрдирд┐ рдХрд╛рдо рдЧрд░реНрджрдЫ) рдорд╛рд░реНрдлрдд рд╕реБрдирд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреА рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред )ред + +- рдЦреБрд▓рд╛ рд╕рдХреЗрдЯ рд░ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ `lsof` рд░ `fuser` рдкрдирд┐ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред + +- рдкреНрд░рдгрд╛рд▓реА рдХрддрд┐ рд╕рдордпрджреЗрдЦрд┐ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ рдерд╛рд╣рд╛ рдкрд╛рдЙрди `рдЕрдкрдЯрд╛рдЗрдо` рд╡рд╛ `w` рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред + +- рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рдЖрджреЗрд╢рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рд░реНрдЯрдХрдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди `рдЙрдкрдирд╛рдо` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, `alias ll='ls -latr'` рд▓реЗ рдирдпрд╛рдБ рдЙрдкрдирд╛рдо `ll` рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫред + +- рдЙрдкрдирд╛рдорд╣рд░реВ, рд╢реЗрд▓ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ, рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬреБрди рддрдкрд╛рдЗрдБ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ `~/.bashrc` рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рд░ [рдпрд╕рдХреЛ рд╕реНрд░реЛрддрдХреЛ рд▓рд╛рдЧрд┐ рд▓рдЧрдЗрди рд╢реЗрд▓рд╣рд░реВ рдорд┐рд▓рд╛рдЙрдиреБрд╣реЛрд╕реН] (http://superuser.com/a/183980/7106)ред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рд╕реЗрдЯрдЕрдк рддрдкрд╛рдЗрдБрдХреЛ рд╕рдмреИ рд╢реЗрд▓ рд╕рддреНрд░рд╣рд░реВрдорд╛ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдиреЗрдЫред + +- рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рд╣рд░реВрдХреЛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рд░ рдЖрджреЗрд╢рд╣рд░реВ рдЬреБрди рддрдкрд╛рдИрдВ `~/.bash_profile` рдорд╛ рд▓рдЧрдЗрди рдЧрд░реНрджрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрдкрд░реНрдЫред рддрдкрд╛рдИрдВрд▓реЗ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рд▓рдЧрдЗрдирд╣рд░реВ рд░ `cron` рдХрд╛рд░реНрдпрд╣рд░реВрдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реБрдиреЗ рд╢реЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЫреБрдЯреНрдЯреИ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫред + +- рддрдкрд╛рдИрдВрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдЬрд╕реНрддреИ `.bashrc` рд░ `.bash_profile`) Git рд╕рдБрдЧ рд╡рд┐рднрд┐рдиреНрди рдХрдореНрдкреНрдпреБрдЯрд░рд╣рд░реВ рдмреАрдЪред + +- рдмреБрдЭреНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╣реЗрд░рдЪрд╛рд╣ рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬрдм рдЪрд░ рд░ рдлрд╛рдЗрд▓рдирд╛рдорд╣рд░реВрд▓реЗ рд╕реЗрддреЛ рдард╛рдЙрдБ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рддрдкрд╛рдИрдВрдХреЛ рдмрд╛рд╕ рдЪрд░рд╣рд░реВрд▓рд╛рдИ рдЙрджреНрдзрд░рдгрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдШреЗрд░реНрдиреБрд╣реЛрд╕реН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ред `"$FOO"`ред рдлрд╛рдЗрд▓рдирд╛рдорд╣рд░реВ рд╕реАрдорд╛рдВрдХрди рдЧрд░реНрди рд╢реВрдиреНрдп рд╡рд░реНрдгрд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реНрди `-реж` рд╡рд╛ `-рдкреНрд░рд┐рдиреНрдЯреж` рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджрд┐рдиреБрд╣реЛрд╕реН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ред `locate -0 pattern | xargs -0 ls -al` рд╡рд╛ `find / -print0 -type d | xargs -0 ls -al`ред рд▓реВрдкрдорд╛ рд╕реЗрддреЛ рд╕реНрдкреЗрд╕ рднрдПрдХреЛ рдлрд╛рдЗрд▓рдирд╛рдорд╣рд░реВрдорд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЧрд░реНрди, рдЖрдлреНрдиреЛ IFS рд▓рд╛рдИ `IFS=$'\n'` рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдорд╛рддреНрд░ рдирдпрд╛рдБ рд▓рд╛рдЗрдирдХреЛ рд░реВрдкрдорд╛ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред +- Bash рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛, рдбрд┐рдмрдЧрд┐рдЩ рдЖрдЙрдЯрдкреБрдЯрдХрд╛ рд▓рд╛рдЧрд┐ `set -x` (рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг `set -v`, рдЬрд╕рд▓реЗ рдХрдЪреНрдЪрд╛ рдЗрдирдкреБрдЯ рд▓рдЧ рдЧрд░реНрдЫ, рд╡рд┐рд╕реНрддрд╛рд░ рдирдЧрд░рд┐рдПрдХреЛ рдЪрд░ рд░ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ рд╕рд╣рд┐рдд) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдХрдбрд╛ рдореЛрдбрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрдмрд╕рдореНрдо рддрдкрд╛рдИрдВрд╕рдБрдЧ рдирдЧрд░реНрдиреЗ рд░рд╛рдореНрд░реЛ рдХрд╛рд░рдг рдЫ: рддреНрд░реБрдЯрд┐рд╣рд░реВрдорд╛ рдкрд░рд┐рддреНрдпрд╛рдЧ рдЧрд░реНрди `рд╕реЗрдЯ -e` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╢реВрдиреНрдп рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдиреЗ рдХреЛрдб)ред рд╕реЗрдЯ рдирдЧрд░рд┐рдПрдХреЛ рдЪрд░ рдкреНрд░рдпреЛрдЧрд╣рд░реВ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди `рд╕реЗрдЯ -u` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдкрд╛рдЗрдк рднрд┐рддреНрд░рдХрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рд░рджреНрдж рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ `рд╕реЗрдЯ -рдУ рдкрд╛рдЗрдкрдлреЗрд▓` рд▓рд╛рдИ рдкрдирд┐ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдпрджреНрдпрдкрд┐ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ рдпрд╕рд▓рд╛рдИ рдердк рдкрдвреНрдиреБрд╣реЛрд╕реН, рдХрд┐рдирдХрд┐ рдпреЛ рд╡рд┐рд╖рдп рдЕрд▓рд┐ рд╕реВрдХреНрд╖реНрдо рдЫ)ред рдердк рд╕рдВрд▓рдЧреНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, EXIT рд╡рд╛ ERR рдорд╛ `trap` рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдПрдЙрдЯрд╛ рдЙрдкрдпреЛрдЧреА рдмрд╛рдиреА рднрдиреЗрдХреЛ рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд░реБ рдЧрд░реНрдиреБ рд╣реЛ, рдЬрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗ рд░ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐рд╣рд░реВрдорд╛ рдкрд░рд┐рддреНрдпрд╛рдЧ рдЧрд░реНрдиреЗ рд░ рд╕рдиреНрджреЗрд╢ рдЫрд╛рдкреНрдиреЗ рдЫ: +``Bash + set -euo pipefail + рдЯреНрд░реНрдпрд╛рдк "рдЗрдХреЛ 'рддреНрд░реБрдЯрд┐: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд╕рдлрд▓ рднрдпреЛ: рдорд╛рдерд┐ рдЕрд╕рдлрд▓ рдЖрджреЗрд╢ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН'" ERR +``` + +- Bash рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛, subshells (рдХреЛрд╖реНрдардХрд╣рд░реВрд╕рдБрдЧ рд▓реЗрдЦрд┐рдПрдХреЛ) рд╕рдореВрд╣ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░рд┐рдХрд╛ рд╣реЛред рдПрдЙрдЯрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рдЕрд╕реНрдерд╛рдпреА рд░реВрдкрдорд╛ рдлрд░рдХ рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдорд╛ рд╕рд╛рд░реНрдиреБ рд╣реЛ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ред +``Bash + # рд╣рд╛рд▓рдХреЛ dir рдорд╛ рдХреЗрд╣рд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реН + (cd/some/other/dir && other-command) + # рдореВрд▓ dir рдорд╛ рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН +``` + +- Bash рдорд╛, рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВ рдЫрдиреНред рдПрдЙрдЯрд╛ рдЪрд░ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ: `${name:?error message}`ред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ Bash рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓рд╛рдИ рдПрдХрд▓ рддрд░реНрдХ рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗ, рдХреЗрд╡рд▓ `input_file=${1:?usage: $0 input_file}` рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред рдпрджрд┐ рдПрдХ рдЪрд▓ рдЦрд╛рд▓реА рдЫ рднрдиреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ: `${name:-default}`ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдердк (рд╡реИрдХрд▓реНрдкрд┐рдХ) рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдердкреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ `output_file=${2:-logfile}` рдЬрд╕реНрддреИ рдХреЗрд╣рд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ `$2` рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫ рд░ рдпрд╕рд░реА рдЦрд╛рд▓реА рдЫ рднрдиреЗ, `output_file` рд▓рд╛рдИ `logfile` рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдиреЗрдЫред рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╡рд┐рд╕реНрддрд╛рд░: `i=$(((i + 1) % 5 ))`ред рдЕрдиреБрдХреНрд░рдорд╣рд░реВ: `{1..10}`ред рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рдЯреНрд░рд┐рдорд┐рдЩ: `${var%suffix}` рд░ `${var#prefix}`ред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдпрджрд┐ `var=foo.pdf`, рддреНрдпрд╕рдкрдЫрд┐ `echo ${var%.pdf}.txt` рд▓реЗ `foo.txt` рдЫрд╛рдкреНрдЫред + +- `{`...`}` рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдмреНрд░реЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░рд▓реЗ рд╕рдорд╛рди рдкрд╛рда рдкреБрди: рдЯрд╛рдЗрдк рдЧрд░реНрди рд░ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдВрдпреЛрдЬрдирд▓рд╛рдИ рдХрдо рдЧрд░реНрди рд╕рдХреНрдЫред рдпреЛ `mv foo.{txt,pdf} some-dir` (рдЬрд╕рд▓реЗ рджреБрд╡реИ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд╛рд░реНрдЫ), `cp somefile{,.bak}` (рдЬрд╕рд▓реЗ `cp somefile somefile.bak` рдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реБрдиреНрдЫ) рд╡рд╛ `mkdir рдЬрд╕реНрддрд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛ рдЙрдкрдпреЛрдЧреА рдЫред -p test-{a,b,c}/subtest-{1,2,3}` (рдЬрд╕рд▓реЗ рд╕рдмреИ рд╕рдореНрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрдирд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджрдЫ рд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд░реВрдЦ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ)ред рдмреНрд░реЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрдп рд╡рд┐рд╕реНрддрд╛рд░ рдЕрдШрд┐ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдиреНрдЫред + +- рд╡рд┐рд╕реНрддрд╛рд░рдХреЛ рдХреНрд░рдо рд╣реЛ: рдмреНрд░реЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░; рдЯрд┐рд▓реНрдб рд╡рд┐рд╕реНрддрд╛рд░, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд░ рдЪрд░ рд╡рд┐рд╕реНрддрд╛рд░, рдЕрдВрдХрдЧрдгрд┐рдд рд╡рд┐рд╕реНрддрд╛рд░, рд░ рдЖрджреЗрд╢ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди (рдмрд╛рдпрд╛рдБ-рджреЗрдЦрд┐-рджрд╛рдпрд╛рдБ рдлреЗрд╕рдирдорд╛ рдЧрд░рд┐рдпреЛ); рд╢рдмреНрдж рд╡рд┐рднрд╛рдЬрди; рд░ рдлрд╛рдЗрд▓ рдирд╛рдо рд╡рд┐рд╕реНрддрд╛рд░ред (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, `{1..20}` рдЬрд╕реНрддреЛ рджрд╛рдпрд░рд╛рд▓рд╛рдИ `{$a..$b}` рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЪрд░рд╣рд░реВрд╕рдБрдЧ рд╡реНрдпрдХреНрдд рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛ `seq` рд╡рд╛ `for` loop рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЬрд╕реНрддреИ, `seq $a $b` рд╡рд╛ `рдХрд╛рд▓рд╛рдЧрд┐((i=a; i<=b; i++)); do ... ; рд╕рдХрд┐рдпреЛ`ред) + +- рдЖрджреЗрд╢рдХреЛ рдЖрдЙрдЯрдкреБрдЯрд▓рд╛рдИ `<(рдХреЗрд╣реА рдЖрджреЗрд╢)` (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рднрдирд┐рдиреНрдЫ) рдорд╛рд░реНрдлрдд рдлрд╛рдЗрд▓ рдЬрд╕реНрддреИ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕реНрдерд╛рдиреАрдп `/etc/hosts` рд▓рд╛рдИ рд░рд┐рдореЛрдЯрд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН: +```sh + diff /etc/hosts <(ssh somehost cat /etc/hosts) +``` + +- рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд▓реЗрдЦреНрджрд╛ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рд╕рдмреИ рдХреЛрдб рдШреБрдорд╛рдЙрд░реЛ рдХреЛрд╖реНрдардХрд╣рд░реВрдорд╛ рд░рд╛рдЦреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рдмрдиреНрдж рдЧрд░реНрдиреЗ рдХреЛрд╖реНрдардХ рд╣рд░рд╛рдЗрд░рд╣реЗрдХреЛ рдЫ рднрдиреЗ, рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рддреНрд░реБрдЯрд┐рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рддрдкрд╛рдИрдВрдХреЛ рд▓рд┐рдкрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдирдмрд╛рдЯ рд░реЛрдХрд┐рдиреЗрдЫред рддрдкрд╛рдИрдВрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реЗрдмрдмрд╛рдЯ рдбрд╛рдЙрдирд▓реЛрдб рд╣реБрдиреЗ рдмреЗрд▓рд╛рдорд╛ рдпрд╕рд▓реЗ рдЕрд░реНрде рд░рд╛рдЦреНрдЫ, рдХрд┐рдирдХрд┐ рдпрд╕рд▓реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░рд┐рдПрдХрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдирдмрд╛рдЯ рд░реЛрдХреНрдЫ: +``рдмрд╛рд╢ +{ + # рддрдкрд╛рдИрдВрдХреЛ рдХреЛрдб рдпрд╣рд╛рдБ рдЫ +} +``` + +- рдПрдЙрдЯрд╛ "рдпрд╣рд╛рдБ рдХрд╛рдЧрдЬрд╛рдд" рд▓реЗ [рдЗрдирдкреБрдЯрдХрд╛ рдзреЗрд░реИ рд▓рд╛рдЗрдирд╣рд░реВрдХреЛ рдкреБрди:рдирд┐рд░реНрджреЗрд╢рди] (https://www.tldp.org/LDP/abs/html/here-docs.html) рд▓рд╛рдИ рдлрд╛рдЗрд▓рдмрд╛рдЯ рдЬрд╕реНрддреИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ: +``` +рдмрд┐рд░рд╛рд▓реЛ <logfile 2>&1` рд╡рд╛ `some-command &>logfile`ред рдкреНрд░рд╛рдпрдГ, рдХрдорд╛рдгреНрдбрд▓реЗ рдЦреБрд▓рд╛ рдлрд╛рдЗрд▓ рд╣реНрдпрд╛рдиреНрдбрд▓рд▓рд╛рдИ рдорд╛рдирдХ рдЗрдирдкреБрдЯрдорд╛ рдирдЫреЛрдбреНрдиреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдпрд╕рд▓рд╛рдИ рддрдкрд╛рдИрдВ рднрд┐рддреНрд░ рднрдПрдХреЛ рдЯрд░реНрдорд┐рдирд▓рдорд╛ рдмрд╛рдБрдзреЗрд░, `>> 2+3 +5 +``` +## рдлрд╛рдЗрд▓ рд░ рдбрд╛рдЯрд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджреИ + +- рд╣рд╛рд▓рдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдирд╛рдорджреНрд╡рд╛рд░рд╛ рдлрд╛рдЗрд▓ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди, 'рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реНред -рдирд╛рдо '*something*'` (рд╡рд╛ рд╕рдорд╛рди)ред рдирд╛рдорджреНрд╡рд╛рд░рд╛ рдХрд╣реАрдВ рдкрдирд┐ рдлрд╛рдЗрд▓ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди, `locate something` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рддрд░ рджрд┐рдорд╛рдЧрдорд╛ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН `updatedb` рд▓реЗ рд╣рд╛рд▓рд╕рд╛рд▓реИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдЕрдиреБрдХреНрд░рдорд┐рдд рдирдЧрд░реЗрдХреЛ рд╣реБрдирд╕рдХреНрдЫ)ред + +- рд╕реНрд░реЛрдд рд╡рд╛ рдбреЗрдЯрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдорд╛рд░реНрдлрдд рд╕рд╛рдорд╛рдиреНрдп рдЦреЛрдЬрдХреЛ рд▓рд╛рдЧрд┐, рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЫрдиреН 'grep -r' рднрдиреНрджрд╛ рдмрдврд┐ рдЙрдиреНрдирдд рд╡рд╛ рдЫрд┐рдЯреЛ, (рдкреБрд░рд╛рдиреЛ рджреЗрдЦрд┐ рдирдпрд╛рдБ рд╕рдореНрдо) [`ack`](https://github.com/beyondgrep) рд╕рд╣рд┐рддред /ack2), [`ag`](https://github.com/ggreer/the_silver_searcher) ("рдж рд╕рд┐рд▓реНрд╡рд░ рдЦреЛрдЬрдХрд░реНрддрд╛"), рд░ [`rg`](https://github.com/BurntSushi/ripgrep) ( ripgrep)ред + +- HTML рд▓рд╛рдИ рдкрд╛рдардорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди: `lynx -dump -stdin` + +- рдорд╛рд░реНрдХрдбрд╛рдЙрди, HTML, рд░ рд╕рдмреИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдХрд╛рдЧрдЬрд╛рдд рд░реВрдкрд╛рдиреНрддрд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, [`pandoc`](http://pandoc.org/) рдХреЛрд╕рд┐рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХрд╛рдЧрдЬрд╛рддрд▓рд╛рдИ Word рдврд╛рдБрдЪрд╛рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди: `pandoc README.md --from markdown --to docx -o temp.docx` + +- рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ XML рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдиреБрдкрд░реНрдЫ рднрдиреЗ, `xmlstarlet` рдкреБрд░рд╛рдиреЛ рддрд░ рд░рд╛рдореНрд░реЛ рдЫред + +- JSON рдХрд╛ рд▓рд╛рдЧрд┐, [`jq`](http://stedolan.github.io/jq/) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐, [`jid`](https://github.com/simeji/jid) рд░ [`jiq`](https://github.com/fiatjaf/jiq) рдкрдирд┐ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред + +- YAML рдХреЛ рд▓рд╛рдЧрд┐, [`shyaml`](https://github.com/0k/shyaml) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- Excel рд╡рд╛ CSV рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, [csvkit](https://github.com/onyxfish/csvkit) рд▓реЗ `in2csv`, `csvcut`, `csvjoin`, `csvgrep`, рдЗрддреНрдпрд╛рджрд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред + +- Amazon S3 рдХреЛ рд▓рд╛рдЧрд┐, [`s3cmd`](https://github.com/s3tools/s3cmd) рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ рд░ [`s4cmd`](https://github.com/bloomreach/s4cmd) рдЫрд┐рдЯреЛ рдЫред Amazon рдХреЛ [`aws`](https://github.com/aws/aws-cli) рд░ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ [`saws`](https://github.com/donnemartin/saws) рдЕрдиреНрдп AWS-рд╕рдореНрдмрдиреНрдзрд┐рдд рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдЫред ред +- uniq рдХреЛ `-u` рд░ `-d` рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╕рд╣рд┐рдд `sort` рд░ `uniq` рдмрд╛рд░реЗ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН -- рддрд▓ рдПрдХ-рд▓рд╛рдЗрдирд░ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред `comm` рдкрдирд┐ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред + +- рдкрд╛рда рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрди `рдХрдЯ`, `рдкреЗрд╕реНрдЯ`, рд░ `рдЬреЛрдЗрди` рдмрд╛рд░реЗ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред рдзреЗрд░реИ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ `рдХрдЯ` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН рддрд░ `рдЬреЛрдЗрди` рдмрд┐рд░реНрд╕рдиреНрдЫрдиреНред + +- рдирдпрд╛рдБ рд░реЗрдЦрд╛рд╣рд░реВ (`-l`), рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ (`-m`), рд╢рдмреНрджрд╣рд░реВ (`-w`) рд░ рдмрд╛рдЗрдЯрд╣рд░реВ (`-c`) рдЧрдгрдирд╛ рдЧрд░реНрди `wc` рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред + +- stdin рдмрд╛рдЯ рдлрд╛рдЗрд▓рдорд╛ рд░ stdout рдорд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрди `tee` рдмрд╛рд░реЗ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН, рдЬрд╕реНрддреИ `ls -al | tee file.txt`ред + +- рд╕рдореВрд╣реАрдХрд░рдг, рд░рд┐рднрд░реНрд╕рд┐рдЩ рдлрд┐рд▓реНрдбрд╣рд░реВ, рд░ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЧрдгрдирд╛рд╣рд░реВ рд╕рд╣рд┐рдд рдердк рдЬрдЯрд┐рд▓ рдЧрдгрдирд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, [`datamash`](https://www.gnu.org/software/datamash/) рд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдерд╛рд╣рд╛ рдЫ рдХрд┐ рд▓реЛрдХреЗрд▓рд▓реЗ рдзреЗрд░реИ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВрд▓рд╛рдИ рд╕реВрдХреНрд╖реНрдо рддрд░рд┐рдХрд╛рдорд╛ рдЕрд╕рд░ рдЧрд░реНрдЫ, рдХреНрд░рдордмрджреНрдз рдХреНрд░рдо (рдХреЛрд▓реЗрд╕рди) рд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕рд╣рд┐рддред рдзреЗрд░реИ рдЬрд╕реЛ рд▓рд┐рдирдХреНрд╕ рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВрд▓реЗ 'LANG' рд╡рд╛ рдЕрдиреНрдп рд▓реЛрдХреЗрд▓ рдЪрд░рд╣рд░реВрд▓рд╛рдИ US рдЕрдВрдЧреНрд░реЗрдЬреА рдЬрд╕реНрддреИ рд╕реНрдерд╛рдиреАрдп рд╕реЗрдЯрд┐рдЩрдорд╛ рд╕реЗрдЯ рдЧрд░реНрдиреЗрдЫрдиреНред рддрд░ рд╕рдЪреЗрдд рд░рд╣рдиреБрд╣реЛрд╕реН рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдерд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ рдХреНрд░рдордмрджреНрдз рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗрдЫред рд░ рдерд╛рд╣рд╛ рдЫ i18n рджрд┐рдирдЪрд░реНрдпрд╛рд╣рд░реВ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди рд╡рд╛ рдЕрдиреНрдп рдЖрджреЗрд╢рд╣рд░реВ * рдзреЗрд░реИ рдкрдЯрдХ * рдврд┐рд▓реЛ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдЫред рдХреЗрд╣рд┐ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛ (рдЬрд╕реНрддреИ рддрд▓ рд╕реЗрдЯ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рд╡рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ) рддрдкрд╛рдИрдВ рдврд┐рд▓реЛ i18n рджрд┐рдирдЪрд░реНрдпрд╛рд╣рд░реВрд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ 'рдирд┐рд░реНрдпрд╛рдд LC_ALL=C' рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд░рдореНрдкрд░рд╛рдЧрдд рдмрд╛рдЗрдЯ-рдЖрдзрд╛рд░рд┐рдд рдХреНрд░рдордмрджреНрдз рдХреНрд░рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред + +- рддрдкрд╛рдИрд▓реЗ рдХреБрдиреИ рдЦрд╛рд╕ рдХрдорд╛рдгреНрдбрдХреЛ рд╡рд╛рддрд╛рд╡рд░рдгрд▓рд╛рдИ 'TZ=Pacific/Fiji date' рдорд╛ рдЬрд╕реНрддреИ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ рдпрд╕рдХреЛ рдЖрд╣реНрд╡рд╛рди рдЙрдкрд╕рд░реНрдЧ рд▓рдЧрд╛рдПрд░ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред + +- рд╕рд╛рдзрд╛рд░рдг рдбрд╛рдЯрд╛ munging рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд╛рд░рднреВрдд `awk` рд░ `sed` рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ [рд╡рди-рд▓рд╛рдЗрдирд░](#рд╡рди-рд▓рд╛рдЗрдирд░) рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред + +- рдард╛рдЙрдБрдорд╛ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕рдмреИ рдШрдЯрдирд╛рд╣рд░реВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди, рдПрдХ рд╡рд╛ рдмрдвреА рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛: +```sh + perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt +``` + +- рдмрд╣реБ рдлрд╛рдЗрд▓рд╣рд░реВ рдкреБрди: рдирд╛рдордХрд░рдг рдЧрд░реНрди рд░/рд╡рд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рднрд┐рддреНрд░ рдЦреЛрдЬреА рд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди, [`repren`](https://github.com/jlevy/repren) рдХреЛрд╕рд┐рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред (рдХреЗрд╣рд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛ `rename` рдЖрджреЗрд╢рд▓реЗ рдзреЗрд░реИ рдирд╛рдорд╣рд░реВ рдкреБрди: рдирд╛рдордХрд░рдг рдЧрд░реНрди рдкрдирд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рддрд░ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреБрд╣реЛрд╕реН рдХрд┐рдирдХрд┐ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдмреИ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгрд╣рд░реВрдорд╛ рд╕рдорд╛рди рдЫреИрдиред) +```sh + # рдлрд╛рдЗрд▓рдирд╛рдорд╣рд░реВ, рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВ, рд░ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВрдХреЛ рдкреВрд░реНрдг рдирд╛рдордХрд░рдг foo -> рдмрд╛рд░: + repren --full --preserve-case --from foo --to bar ред + # рдмреНрдпрд╛рдХрдЕрдк рдлрд╛рдЗрд▓рд╣рд░реВ рдкреБрди: рдкреНрд░рд╛рдкреНрддрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реН whatever.bak -> рдЬреЗ рднрдП рдкрдирд┐: + repren --names -- рдмрд╛рдЯ ' ( * * . рдмрд╛рдХ ' -- рдмрд╛рдЯ ' \ 1 ' * . рдмрд╛рдХ + # рдорд╛рдерд┐рдХреЛ рдЬрд╕реНрддреИ, рдкреБрди: рдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рдЫ рднрдиреЗ: + рдирд╛рдо рдмрджрд▓реНрдиреБрд╣реЛрд╕реН 's/\.bak$//' *.bak +``` + +- рдЬрд╕реНрддреИ рдореНрдпрд╛рди рдкреГрд╖реНрдард▓реЗ рднрдиреНрдЫ, `rsync` рд╕рд╛рдБрдЪреНрдЪреИ рдЫрд┐рдЯреЛ рд░ рдЕрд╕рд╛рдзрд╛рд░рдг рдмрд╣реБрдореБрдЦреА рдлрд╛рдЗрд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреЗ рдЙрдкрдХрд░рдг рд╣реЛред рдпреЛ рдореЗрд╢рд┐рдирд╣рд░реВ рдмреАрдЪ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рдЪрд┐рдд рдЫ рддрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рд╕рдорд╛рди рд░реВрдкрдорд╛ рдЙрдкрдпреЛрдЧреА рдЫред рдЬрдм рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, `scp` рдХреЛ рд╕рдЯреНрдЯрд╛ `rsync` рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдкреБрдирдГ рд╕реБрд░реБ рдирдЧрд░реА рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдгрдХреЛ рдкреБрди: рдкреНрд░рд╛рдкреНрддрд┐рд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпреЛ рдкрдирд┐ [рд╕рдмреИрднрдиреНрджрд╛ рдЫрд┐рдЯреЛ рддрд░рд┐рдХрд╛рд╣рд░реВ] (https://web.archive.org/web/20130929001850/http://linuxnote.net/jianingy/en/linux/a-fast-way-to-remove-huge-) рдордзреНрдпреЗ рдПрдХ рд╣реЛ number-of-files.html) рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдореЗрдЯрд╛рдЙрди: +```sh +mkdir рдЦрд╛рд▓реА рд░& rsync -r -- рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реН рдЦрд╛рд▓реА/ some-dir && rmdir some-dir +``` + +- рдлрд╛рдЗрд▓рд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрд╛ рдкреНрд░рдЧрддрд┐ рдирд┐рдЧрд░рд╛рдиреАрдХреЛ рд▓рд╛рдЧрд┐, [`pv`](http://www.ivarch.com/programs/pv.shtml), [`pycp`](https://github.com/dmerejkowsky/pycp) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред , [`pmonitor`](https://github.com/dspinellis/pmonitor), [`progress`](https://github.com/Xfennec/progress), `rsync --progress`, рд╡рд╛, рдмреНрд▓рдХрдХреЛ рд▓рд╛рдЧрд┐ -рд╕реНрддрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐, `dd рд╕реНрдерд┐рддрд┐=рдкреНрд░рдЧрддрд┐`ред + +- рд╢рдлрд▓ рдЧрд░реНрди рд╡рд╛ рдлрд╛рдЗрд▓рдмрд╛рдЯ рдЕрдирд┐рдпрдорд┐рдд рд░реЗрдЦрд╛рд╣рд░реВ рдЪрдпрди рдЧрд░реНрди `shuf` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- `sort` рдХреЛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред рд╕рдВрдЦреНрдпрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдорд╛рдирд╡-рдкрдардиреАрдп рд╕рдВрдЦреНрдпрд╛рд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ `-n`, рд╡рд╛ `-h` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдЬрд╕реНрддреИ `du -h` рдмрд╛рдЯ)ред рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН рдХрд┐ рдХрд╕рд░реА рдХреБрдЮреНрдЬреАрд╣рд░реВрд▓реЗ рдХрд╛рдо рдЧрд░реНрджрдЫ (`-t` рд░ `-k`)ред рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛, рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ `-k1,1` рд▓реЗрдЦреНрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫ рдХреЗрд╡рд▓ рдкрд╣рд┐рд▓реЛ рдлрд┐рд▓реНрдбрджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди; `-k1` рдХреЛ рдЕрд░реНрде рд╕рдореНрдкреВрд░реНрдг рд░реЗрдЦрд╛ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╕реНрдерд┐рд░ рдХреНрд░рдордмрджреНрдз (`sort-s`) рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдлрд┐рд▓реНрдб 2 рджреНрд╡рд╛рд░рд╛ рдкрд╣рд┐рд▓реЗ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди, рддреНрдпрд╕рдкрдЫрд┐ рджреЛрд╕реНрд░реЛ рдлрд┐рд▓реНрдб 1 рджреНрд╡рд╛рд░рд╛, рддрдкрд╛рдИрд▓реЗ `sort -k1,1 | рдХреНрд░рдордмрджреНрдз -s -k2,2`ред + +- рдпрджрд┐ рддрдкрд╛рдИрд▓рд╛рдИ рдмрд╛рд╢рдорд╛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ рдЯреНрдпрд╛рдм рд╢рд╛рдмреНрджрд┐рдХ рд▓реЗрдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ (рдЬрд╕реНрддреИ рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди -t рддрд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐), рдерд┐рдЪреНрдиреБрд╣реЛрд╕реН **ctrl-v** **[Tab]** рд╡рд╛ `$'\t' рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред ` (рдкрдЫрд┐рд▓реНрд▓реЛ рд░рд╛рдореНрд░реЛ рдЫ рдХрд┐рдирдХрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ / рдЯрд╛рдБрд╕реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ)ред + +- рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрдпрд╛рдЪрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рдорд╛рдирдХ рдЙрдкрдХрд░рдгрд╣рд░реВ `diff` рд░ `patch` рд╣реБрдиреНред рднрд┐рдиреНрдирддрд╛рдХреЛ рд╕рд╛рд░рд╛рдВрд╢ рддрдереНрдпрд╛рдЩреНрдХрдХрд╛ рд▓рд╛рдЧрд┐ `diffstat` рд░ рдЫреЗрдЙрдЫрд╛рдЙрдХреЛ рднрд┐рдиреНрдирддрд╛рдХрд╛ рд▓рд╛рдЧрд┐ `sdiff` рдкрдирд┐ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред рдиреЛрдЯ `diff -r` рд╕рдореНрдкреВрд░реНрдг рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрджрдЫред `diff -r tree1 tree2 | рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рд╕рд╛рд░рд╛рдВрд╢рдХреЛ рд▓рд╛рдЧрд┐ diffstat'ред рдлрд╛рдЗрд▓рд╣рд░реВ рддреБрд▓рдирд╛ рдЧрд░реНрди рд░ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди `vimdiff` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рд╕рд╛рдзрд╛рд░рдг рд╣реЗрдХреНрд╕ рдбрдореНрдкрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ `hd`, `hexdump` рд╡рд╛ `xxd` рд░ рдмрд╛рдЗрдирд░реА рд╕рдореНрдкрд╛рджрдирдХреЛ рд▓рд╛рдЧрд┐ `bvi`, `hexedit` рд╡рд╛ `biew` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрдирд┐, `рд╕реНрдЯреНрд░рд┐рдЩреНрд╕` (рдкреНрд▓рд╕ `рдЧреНрд░реЗрдк`, рдЗрддреНрдпрд╛рджрд┐) рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдкрд╛рдардХрд╛ рдмрд┐рдЯрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рджрд┐рдиреНрдЫред + +- рдмрд╛рдЗрдирд░реА рдбрд┐рдлрд╣рд░реВ (рдбреЗрд▓реНрдЯрд╛ рдХрдореНрдкреНрд░реЗрд╕рди) рдХреЛ рд▓рд╛рдЧрд┐, `xdelta3` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдкрд╛рда рд╕рдЩреНрдХреЗрддрдирд╣рд░реВ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди, `iconv` рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╡рд╛ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ `uconv`; рдпрд╕рд▓реЗ рдХреЗрд╣реА рдЙрдиреНрдирдд рдпреБрдирд┐рдХреЛрдб рдЪреАрдЬрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐: +```sh + # рд╣реЗрдХреНрд╕ рдХреЛрдбрд╣рд░реВ рд╡рд╛ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╛рдорд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ (рдбрд┐рдмрдЧрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА): + uconv -f utf-8 -t utf-8 -x ':: Any-Hex;' < input.txt + uconv -f utf-8 -t utf-8 -x '::Any-Name;' < input.txt + # рд▓реЛрдЕрд░рдХреЗрд╕ рд░ рд╕рдмреИ рдПрдХреНрд╕реЗрдиреНрдЯрд╣рд░реВ рд╣рдЯрд╛рдЙрдБрдЫ (рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реЗрд░ рд░ рдЫреЛрдбреЗрд░): + uconv -f utf-8 -t utf-8 -x ':: Any-lower; :: Any-NFD; [:рдмрд┐рдирд╛ рд╕реНрдкреЗрд╕рд┐рдЩ рдорд╛рд░реНрдХ:] >; :: Any-NFC;' output.txt +``` + +- рдлрд╛рдЗрд▓рд╣рд░реВрд▓рд╛рдИ рдЯреБрдХреНрд░рд╛рдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрди, `рд╕реНрдкреНрд▓рд┐рдЯ` (рдЖрдХрд╛рд░рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЧрд░реНрди) рд░ `csplit` (рдврд╛рдБрдЪрд╛рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЧрд░реНрди) рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред + +- рдорд┐рддрд┐ рд░ рд╕рдордп: рдЙрдкрдпреЛрдЧреА [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) рдврд╛рдБрдЪрд╛рдорд╛ рд╣рд╛рд▓рдХреЛ рдорд┐рддрд┐ рд░ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, `date -u +"%Y-%m-% рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред dT%H:%M:%SZ"` (рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ [рд╣реИ](https://stackoverflow.com/questions/7216358/date-command-on-os-x-doesnt-have-iso-8601-i- рд╡рд┐рдХрд▓реНрдк) [рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд](https://unix.stackexchange.com/questions/164826/date-command-iso-8601-option))ред рдорд┐рддрд┐ рд░ рд╕рдордп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрди, [`dateutils`] (http://www.fresse.org/dateutils/) рдмрд╛рдЯ `dateadd`, `datediff`, `strptime` рдЖрджрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рд╕рдВрдХреБрдЪрд┐рдд рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди `zless`, `zmore`, `zcat`, рд░ `zgrep` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдлрд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ `chattr` рдорд╛рд░реНрдлрдд рдорд┐рд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ рд░ рдлрд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рддрд▓реНрд▓реЛ-рд╕реНрддрд░рдХреЛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЖрдХрд╕реНрдорд┐рдХ рдлрд╛рдЗрд▓ рдореЗрдЯрд╛рдЙрдирдмрд╛рдЯ рдЬреЛрдЧрд╛рдЙрди рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЭрдгреНрдбрд╛: `sudo chattr +i /critical/directory/or/file` + +- рдлрд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рд╣рд░реВ рдмрдЪрдд рд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди `getfacl` рд░ `setfacl` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐: +```sh + getfacl -R /some/path> permissions.txt + setfacl --restore=permissions.txt +``` + +- рдЦрд╛рд▓реА рдлрд╛рдЗрд▓рд╣рд░реВ рджреНрд░реБрдд рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, `truncate` ([sparse file](https://en.wikipedia.org/wiki/Sparse_file) рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ), `fallocate` (ext4, xfs, btrfs рд░ ocfs2 рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА), `xfs_mkfile рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред ` (рд▓рдЧрднрдЧ рдХреБрдиреИ рдкрдирд┐ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА, xfsprogs рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдЖрдЙрдБрдЫ), `mkfile` (Solaris, Mac OS рдЬрд╕реНрддрд╛ Unix-рдЬрд╕реНрддреЛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐)ред + +## рдкреНрд░рдгрд╛рд▓реА рдбрд┐рдмрдЧрд┐рдЩ + +- рд╡реЗрдм рдбрд┐рдмрдЧрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐, `curl` рд░ `curl -I` рдЙрдкрдпреЛрдЧреА рдЫрдиреН, рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ `wget` рд╕рдордХрдХреНрд╖рд╣рд░реВ, рд╡рд╛ рдЕрдЭ рдЖрдзреБрдирд┐рдХ [`httpie`](https://github.com/jkbrzt/httpie)ред + +- рд╣рд╛рд▓рдХреЛ cpu/рдбрд┐рд╕реНрдХ рд╕реНрдерд┐рддрд┐ рдЬрд╛рдиреНрдирдХреЛ рд▓рд╛рдЧрд┐, рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрдкрдХрд░рдгрд╣рд░реВ `рд╢реАрд░реНрд╖` (рд╡рд╛ рд░рд╛рдореНрд░реЛ `htop`), `iostat`, рд░ `iotop` рд╣реБрдиреНред рдЖрдзрд╛рд░рднреВрдд CPU рд░ рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рддрд┐-рд╡рд┐рднрд╛рдЬрди рдбрд┐рд╕реНрдХ рддрдереНрдпрд╛рдЩреНрдХ рд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЕрдиреНрддрд░рджреГрд╖реНрдЯрд┐рдХреЛ рд▓рд╛рдЧрд┐ `iostat -mxz 15` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдиреЗрдЯрд╡рд░реНрдХ рдЬрдбрд╛рди рд╡рд┐рд╡рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, `netstat` рд░ `ss` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдЫ рднрдиреЗрд░ рджреНрд░реБрдд рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрдирдХреЛ рд▓рд╛рдЧрд┐, `dstat` рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рдЙрдкрдпреЛрдЧреА рдЫред рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, [`glances`](https://github.com/nicolargo/glances) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдореЗрдореЛрд░реА рд╕реНрдерд┐рддрд┐ рдЬрд╛рдиреНрдирдХреЛ рд▓рд╛рдЧрд┐, рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН рд░ `free` рд░ `vmstat` рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдмреБрдЭреНрдиреБрд╣реЛрд╕реНред рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛, "рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ" рдорд╛рдирд▓рд╛рдИ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рд▓реЗ рдлрд╛рдЗрд▓ рдХреНрдпрд╛рд╕рдХреЛ рд░реВрдкрдорд╛ рд░рд╛рдЦреЗрдХреЛ рдореЗрдореЛрд░реА рд╣реЛ, рддреНрдпрд╕реИрд▓реЗ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ "рдирд┐:рд╢реБрд▓реНрдХ" рдорд╛рдирдорд╛ рдЧрдгрдирд╛ рд╣реБрдиреНрдЫред + +- рдЬрд╛рднрд╛ рдкреНрд░рдгрд╛рд▓реА рдбрд┐рдмрдЧрд┐рдЩ рдорд╛рдЫрд╛рдХреЛ рдлрд░рдХ рдХреЗрддрд▓реА рд╣реЛ, рддрд░ Oracle рд░ рдХреЗрд╣реА рдЕрдиреНрдп JVM рдорд╛ рдПрдЙрдЯрд╛ рд╕рд╛рдзрд╛рд░рдг рдЯреНрд░рд┐рдХ рдпреЛ рд╣реЛ рдХрд┐ рддрдкрд╛рдЗрдБ `kill -3 ` рд░ рдкреВрд░реНрдг рд╕реНрдЯреНрдпрд╛рдХ рдЯреНрд░реЗрд╕ рд░ рд╣рд┐рдк рд╕рд╛рд░рд╛рдВрд╢ (рдкреБрд╕реНрддрд╛рдХреЛ рдлреЛрд╣реЛрд░ рд╕рдВрдХрд▓рди рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╕рд╣рд┐рдд, рдЬреБрди рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАрдореВрд▓рдХ рд╣реБрди рд╕рдХреНрдЫ) stderr/logs рдорд╛ рдбрдореНрдк рдЧрд░рд┐рдиреЗрдЫред JDK рдХреЛ `jps`, `jstat`, `jstack`, `jmap` рдЙрдкрдпреЛрдЧреА рдЫрдиреНред [SJK рдЙрдкрдХрд░рдгрд╣рд░реВ](https://github.com/aragozin/jvm-tools) рдЕрдЭ рдЙрдиреНрдирдд рдЫрдиреНред + +- рдиреЗрдЯрд╡рд░реНрдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди, рд░рд╛рдореНрд░реЛ рдЯреНрд░реЗрд╕рд░рд╛рдЙрдЯрдХреЛ рд░реВрдкрдорд╛ [`mtr`](http://www.bitwizard.nl/mtr/) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдбрд┐рд╕реНрдХ рднрд░рд┐рдПрдХреЛ рдХрд╛рд░рдг рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, [`ncdu`](https://dev.yorhel.nl/ncdu) рд▓реЗ `du -sh *` рдЬрд╕реНрддрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЖрджреЗрд╢рд╣рд░реВрдорд╛ рд╕рдордп рдмрдЪрдд рдЧрд░реНрдЫред + +- рдХреБрди рд╕рдХреЗрдЯ рд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдмреНрдпрд╛рдиреНрдбрд╡рд┐рде рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреА рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди, [`iftop`](http://www.ex-parrot.com/~pdw/iftop/) рд╡рд╛ [`nethogs`](https://github.com) рдХреЛрд╕рд┐рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред /raboof/nethogs)ред + +- 'ab' рдЙрдкрдХрд░рдг (Apache рд╕рдБрдЧ рдЖрдЙрдБрдЫ) рд╡реЗрдм рд╕рд░реНрднрд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирдХреЛ рджреНрд░реБрдд-рд░-рдлреЛрд╣реЛрд░ рдЬрд╛рдБрдЪрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рдЫред рдердк рдЬрдЯрд┐рд▓ рд▓реЛрдб рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐, `рд╕рд┐рдЬ` рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдердк рдЧрдореНрднреАрд░ рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рдмрдЧрд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐, [`wireshark`](https://wireshark.org/), [`tshark`](https://www.wireshark.org/docs/wsug_html_chunked/AppToolstshark.html), рд╡рд╛ [ `ngrep`](http://ngrep.sourceforge.net/)ред + +- 'strace' рд░ 'ltrace' рдмрд╛рд░реЗ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред рдпреЛ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫ рдпрджрд┐ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрд╕рдлрд▓, рд╣реНрдпрд╛рдЩреНрдЧ, рд╡рд╛ рдХреНрд░реНрдпрд╛рд╕ рднрдЗрд░рд╣реЗрдХреЛ рдЫ, рд░ рддрдкрд╛рдИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди рдХрд┐рди, рд╡рд╛ рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗред рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдЩ рд╡рд┐рдХрд▓реНрдк (`-c`), рд░ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ (`-p`) рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрд▓рд╣рд░реВ рд╣рд░рд╛рдЙрдирдмрд╛рдЯ рдмрдЪреНрди рдЯреНрд░реЗрд╕ рдЪрд╛рдЗрд▓реНрдб рд╡рд┐рдХрд▓реНрдк (`-f`) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдЖрджрд┐ рдЬрд╛рдБрдЪ рдЧрд░реНрди `ldd` рдмрд╛рд░реЗ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН тАФ рддрд░ [рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдХрд╣рд┐рд▓реНрдпреИ рдирдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН] (http://www.catonmat.net/blog/ldd-arbitrary-code-execution/)ред + +- 'gdb' рдХреЛ рд╕рд╛рде рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ рдпрд╕рдХреЛ рд╕реНрдЯреНрдпрд╛рдХ рдЯреНрд░реЗрд╕рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реНред + +- `/proc` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдбрд┐рдмрдЧ рдЧрд░реНрджрд╛ рдпреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдкрдорд╛ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ: `/proc/cpuinfo`, `/proc/meminfo`, `/proc/cmdline`, `/proc/xxx/cwd`, тАЛтАЛ`/proc/xxx/exe`, `/proc/xxx/fd/` , `/proc/xxx/smaps` (рдЬрд╣рд╛рдБ `xxx` рдкреНрд░рдХреНрд░рд┐рдпрд╛ id рд╡рд╛ pid рд╣реЛ)ред + +- рд╡рд┐рдЧрддрдорд╛ рдХрд┐рди рдХреЗрд╣реА рдЧрд▓рдд рднрдпреЛ рднрдиреНрдиреЗ рдбрд┐рдмрдЧ рдЧрд░реНрджрд╛, [`sar`](http://sebastien.godard.pagesperso-orange.fr/) рдзреЗрд░реИ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫред рдпрд╕рд▓реЗ CPU, рдореЗрдореЛрд░реА, рдиреЗрдЯрд╡рд░реНрдХ, рдЖрджрд┐рдорд╛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рджреЗрдЦрд╛рдЙрдБрдЫред + +- рдЧрд╣рд┐рд░реЛ рдкреНрд░рдгрд╛рд▓реА рд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐, `stap` ([SystemTap](https://sourceware.org/systemtap/wiki)), [`perf`](https://en.wikipedia.org/wiki/) рдорд╛ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред Perf_%28Linux%29), рд░ [`sysdig`](https://github.com/draios/sysdig)ред + +- рддрдкрд╛рдИрдВ `uname` рд╡рд╛ `uname -a` (рд╕рд╛рдорд╛рдиреНрдп Unix/kernel info) рд╡рд╛ `lsb_release -a` (Linux distro info) рдорд╛рд░реНрдлрдд рдХреБрди OS рдорд╛ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреА рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- 'dmesg' рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрдм рдХреБрдиреИ рдЪреАрдЬ рд╡рд╛рд╕реНрддрд╡рдореИ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реБрдиреНрдЫ (рдпреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд╛ рдЪрд╛рд▓рдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫ)ред + +- рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдлрд╛рдЗрд▓ рдореЗрдЯрд╛рдЙрдиреБрднрдпреЛ рд░ рдпрд╕рд▓реЗ `du` рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдбрд┐рд╕реНрдХ рдард╛рдЙрдБ рдЦрд╛рд▓реА рдЧрд░реНрджреИрди рднрдиреЗ, рдлрд╛рдЗрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧрдорд╛ рдЫ рдХрд┐ рдЫреИрди рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН: +'lsof | grep рд╣рдЯрд╛рдЗрдпреЛ | grep "filename-of-my-big-file"` + + +## рд╡рди-рд▓рд╛рдЗрдирд░ + +рдЖрджреЗрд╢рд╣рд░реВ рд╕рдБрдЧреИ рдЯреБрдХреНрд░рд╛ рдкрд╛рд░реНрдиреЗ рдХреЗрд╣реА рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ: + + +- рдпреЛ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдЙрдкрдпреЛрдЧреА рдЫ рдХрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди, рд╕рдВрдШ, рд░ рдкрд╛рда рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рднрд┐рдиреНрдирддрд╛ `sort`/`uniq` рдорд╛рд░реНрдлрдд рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдорд╛рдиреМрдВ `a` рд░ `b` рдкрд╛рда рдлрд╛рдЗрд▓рд╣рд░реВ рд╣реБрдиреН рдЬреБрди рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрджреНрд╡рд┐рддреАрдп рдЫрдиреНред рдпреЛ рдЫрд┐рдЯреЛ рдЫ, рд░ рдордирдорд╛рдиреА рдЖрдХрд╛рд░рдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ, рдзреЗрд░реИ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд╕рдореНрдоред (рдХреНрд░рдордмрджреНрдз рдЧрд░реНрди рдореЗрдореЛрд░реА рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдЫреИрди, рдпрджреНрдпрдкрд┐ рддрдкрд╛рдИрд▓реЗ `-T` рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрди рд╕рдХреНрдЫ рдпрджрд┐ `/tmp` рд╕рд╛рдиреЛ рд░реВрдЯ рд╡рд┐рднрд╛рдЬрдирдорд╛ рдЫред) рдорд╛рдерд┐рдХреЛ `LC_ALL` рд░ `рд╕рд░реНрдЯ`рдХреЛ `- рдмрд╛рд░реЗ рдиреЛрдЯ рдкрдирд┐ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред u` рд╡рд┐рдХрд▓реНрдк (рддрд▓ рд╕реНрдкрд╖реНрдЯрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЫреЛрдбрд┐рдпреЛ)ред +```sh + рдХреНрд░рдордмрджреНрдз a b | uniq > c # c рдПрдХ рд╕рдВрдШ рд╣реЛ + рдХреНрд░рдордмрджреНрдз a b | uniq -d > c # c рдПрдХ рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж b рд╣реЛ + рдХреНрд░рдордмрджреНрдз a b b | uniq -u > c # c рдлрд░рдХ a - b рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ +``` + +- рджреБрдИ JSON рдлрд╛рдИрд▓рд╣рд░реВ рдкреНрд░рд┐рдЯрд┐-рдкреНрд░рд┐рдиреНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕рд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдп рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН, рддреНрдпрд╕рдкрдЫрд┐ рд░рдЩ рд░ рдкрд░рд┐рдгрд╛рдо рдкреГрд╖реНрдарди рдЧрд░реНрдиреБрд╣реЛрд╕реН: +``` + diff <(jq --sort-keysред 0])[$RANDOM mod last()+1]" | + xmlstarlet unesc | fmt -80 | iconv -t US + } +``` + + +## рдЕрд╕реНрдкрд╖реНрдЯ рддрд░ рдЙрдкрдпреЛрдЧреА + +- `expr`: perform arithmetic or boolean operations or evaluate regular expressions + +- `m4`: simple macro processor + +- `yes`: print a string a lot + +- `cal`: nice calendar + +- `env`: run a command (useful in scripts) + +- `printenv`: print out environment variables (useful in debugging and scripts) + +- `look`: find English words (or lines in a file) beginning with a string + +- `cut`, `paste` and `join`: data manipulation + +- `fmt`: format text paragraphs + +- `pr`: format text into pages/columns + +- `fold`: wrap lines of text + +- `column`: format text fields into aligned, fixed-width columns or tables + +- `expand` and `unexpand`: convert between tabs and spaces + +- `nl`: add line numbers + +- `seq`: print numbers + +- `bc`: calculator + +- `factor`: factor integers + +- [`gpg`](https://gnupg.org/): encrypt and sign files + +- `toe`: table of terminfo entries + +- `nc`: network debugging and data transfer + +- `socat`: socket relay and tcp port forwarder (similar to `netcat`) + +- [`slurm`](https://github.com/mattthias/slurm): network traffic visualization + +- `dd`: moving data between files or devices + +- `file`: identify type of a file + +- `tree`: display directories and subdirectories as a nesting tree; like `ls` but recursive + +- `stat`: file info + +- `time`: execute and time a command + +- `timeout`: execute a command for specified amount of time and stop the process when the specified amount of time completes. + +- `lockfile`: create semaphore file that can only be removed by `rm -f` + +- `logrotate`: rotate, compress and mail logs. + +- `watch`: run a command repeatedly, showing results and/or highlighting changes + +- [`when-changed`](https://github.com/joh/when-changed): runs any command you specify whenever it sees file changed. See `inotifywait` and `entr` as well. + +- `tac`: print files in reverse + +- `comm`: compare sorted files line by line + +- `strings`: extract text from binary files + +- `tr`: character translation or manipulation + +- `iconv` or `uconv`: conversion for text encodings + +- `split` and `csplit`: splitting files + +- `sponge`: read all input before writing it, useful for reading from then writing to the same file, e.g., `grep -v something some-file | sponge some-file` + +- `units`: unit conversions and calculations; converts furlongs per fortnight to twips per blink (see also `/usr/share/units/definitions.units`) + +- `apg`: generates random passwords + +- `xz`: high-ratio file compression + +- `ldd`: dynamic library info + +- `nm`: symbols from object files + +- `ab` or [`wrk`](https://github.com/wg/wrk): benchmarking web servers + +- `strace`: system call debugging + +- [`mtr`](http://www.bitwizard.nl/mtr/): better traceroute for network debugging + +- `cssh`: visual concurrent shell + +- `rsync`: sync files and folders over SSH or in local file system + +- [`wireshark`](https://wireshark.org/) and [`tshark`](https://www.wireshark.org/docs/wsug_html_chunked/AppToolstshark.html): packet capture and network debugging + +- [`ngrep`](http://ngrep.sourceforge.net/): grep for the network layer + +- `host` and `dig`: DNS lookups + +- `lsof`: process file descriptor and socket info + +- `dstat`: useful system stats + +- [`glances`](https://github.com/nicolargo/glances): high level, multi-subsystem overview + +- `iostat`: Disk usage stats + +- `mpstat`: CPU usage stats + +- `vmstat`: Memory usage stats + +- `htop`: improved version of top + +- `last`: login history + +- `w`: who's logged on + +- `id`: user/group identity info + +- [`sar`](http://sebastien.godard.pagesperso-orange.fr/): historic system stats + +- [`iftop`](http://www.ex-parrot.com/~pdw/iftop/) or [`nethogs`](https://github.com/raboof/nethogs): network utilization by socket or process + +- `ss`: socket statistics + +- `dmesg`: boot and system error messages + +- `sysctl`: view and configure Linux kernel parameters at run time + +- `hdparm`: SATA/ATA disk manipulation/performance + +- `lsblk`: list block devices: a tree view of your disks and disk partitions + +- `lshw`, `lscpu`, `lspci`, `lsusb`, `dmidecode`: hardware information, including CPU, BIOS, RAID, graphics, devices, etc. + +- `lsmod` and `modinfo`: List and show details of kernel modules. + +- `fortune`, `ddate`, and `sl`: um, well, it depends on whether you consider steam locomotives and Zippy quotations "useful" + + +## macOS рдорд╛рддреНрд░ + +рдпреА рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ *рдорд╛рддреНрд░* macOS рдорд╛ рдЫрдиреНред + +- рдкреНрдпрд╛рдХреЗрдЬ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди `brew` (Homebrew) рд░/рд╡рд╛ `port` (MacPorts) рд╕рдБрдЧред рдпреА рдорд╛рдерд┐рдХрд╛ рдзреЗрд░реИ рдЖрджреЗрд╢рд╣рд░реВ macOS рдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред + +- рдХреБрдиреИ рдкрдирд┐ рдЖрджреЗрд╢рдХреЛ рдЖрдЙрдЯрдкреБрдЯрд▓рд╛рдИ рдбреЗрд╕реНрдХрдЯрдк рдПрдкрдорд╛ `pbcopy` рдХреЛ рд╕рд╛рде рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ `pbpaste` рдмрд╛рдЯ рдЗрдирдкреБрдЯ рдЯрд╛рдБрд╕реНрдиреБрд╣реЛрд╕реНред + +- macOS рдЯрд░реНрдорд┐рдирд▓рдорд╛ рд╡рд┐рдХрд▓реНрдк рдХреБрдЮреНрдЬреАрд▓рд╛рдИ alt рдХреБрдЮреНрдЬреА (рдЬрд╕реНрддреИ **alt-b**, **alt-f**, рдЖрджрд┐) рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ, рдкреНрд░рд╛рдердорд┐рдХрддрд╛рд╣рд░реВ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН -> рдкреНрд░реЛрдлрд╛рдЗрд▓рд╣рд░реВ -> рдХрд┐рдмреЛрд░реНрдбред рд░ "рдореЗрдЯрд╛ рдХреБрдЮреНрдЬреАрдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН" рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдбреЗрд╕реНрдХрдЯрдк рдПрдкрд╕рдБрдЧ рдлрд╛рдЗрд▓ рдЦреЛрд▓реНрдирдХреЛ рд▓рд╛рдЧрд┐, `open` рд╡рд╛ `open -a /Applications/Whatever.app` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рд╕реНрдкрдЯрд▓рд╛рдЗрдЯ: `mdfind` рдХреЛ рд╕рд╛рде рдлрд╛рдЗрд▓рд╣рд░реВ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН рд░ `mdls` рд╕рдБрдЧ рдореЗрдЯрд╛рдбрд╛рдЯрд╛ (рдЬрд╕реНрддреИ рдлреЛрдЯреЛ EXIF тАЛтАЛрдЬрд╛рдирдХрд╛рд░реА) рд╕реВрдЪреА рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рд╕рдЪреЗрдд рд░рд╣рдиреБрд╣реЛрд╕реН macOS BSD Unix рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ, рд░ рдзреЗрд░реИ рдЖрджреЗрд╢рд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ `ps`, `ls`, `tail`, `awk`, `sed`) Linux рдмрд╛рдЯ рдзреЗрд░реИ рд╕реВрдХреНрд╖реНрдо рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рдЫрдиреН, рдЬреБрди рдзреЗрд░реИ рд╣рджрд╕рдореНрдо рдкреНрд░рдгрд╛рд▓реА V рджреНрд╡рд╛рд░рд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдЫред - рд╢реИрд▓реА рдпреБрдирд┐рдХреНрд╕ рд░ GNU рдЙрдкрдХрд░рдгрд╣рд░реВред рддрдкрд╛рдЗрдБ рдкреНрд░рд╛рдп: "BSD рдЬрдирд░рд▓ рдХрдорд╛рдиреНрдб рдореНрдпрд╛рдиреБрдЕрд▓" рд╢реАрд░реНрд╖рдХ рднрдПрдХреЛ рдореНрдпрд╛рди рдкреГрд╖реНрдард▓рд╛рдИ рдзреНрдпрд╛рди рджрд┐рдПрд░ рдлрд░рдХ рдмрддрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдХреЗрд╣реА рдЕрд╡рд╕реНрдерд╛рдорд╛ GNU рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдкрдирд┐ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ (рдЬрд╕реНрддреИ GNU awk рд░ sed рдХреЛ рд▓рд╛рдЧрд┐ `gawk` рд░ `gsed`)ред рдпрджрд┐ рдХреНрд░рд╕-рдкреНрд▓реЗрдЯрдлрд░реНрдо рдмреНрдпрд╛рд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд▓реЗрдЦреНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕реНрддрд╛ рдЖрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкрд╛рдЗрдерди рд╡рд╛ `рдкрд░реНрд▓`рд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН) рд╡рд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- macOS рд░рд┐рд▓реАрдЬ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, `sw_vers` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +## рд╡рд┐рдиреНрдбреЛрдЬ рдорд╛рддреНрд░ + +рдпреА рд╡рд╕реНрддреБрд╣рд░реВ рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ *рдорд╛рддреНрд░* рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рдЫрдиреНред + +### рд╡рд┐рдиреНрдбреЛрдЬ рдЕрдиреНрддрд░реНрдЧрдд рдпреБрдирд┐рдХреНрд╕ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛рд╣рд░реВ + +- [Cygwin](https://cygwin.com/) рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрд░ рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯ рд╡рд┐рдиреНрдбреЛрдЬ рдЕрдиреНрддрд░реНрдЧрдд рдпреБрдирд┐рдХреНрд╕ рд╢реЗрд▓рдХреЛ рд╢рдХреНрддрд┐ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрд╕ рдХрд╛рдЧрдЬрд╛рддрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЪреАрдЬрд╣рд░реВ рдмрд╛рдХрд╕ рдмрд╛рд╣рд┐рд░ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫрдиреНред + +- Windows 10 рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ [Windows Subsystem for Linux (WSL)](https://msdn.microsoft.com/commandline/wsl/about) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬрд╕рд▓реЗ рдпреБрдирд┐рдХреНрд╕ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рдмрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред + +- рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ GNU рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдЙрдкрдХрд░рдгрд╣рд░реВ (рдЬрд╕реНрддреИ GCC) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, [MinGW](http://www.mingw.org/) рд░ рдпрд╕рдХреЛ [MSYS](http://www.mingw.org/) рд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН wiki/msys) рдкреНрдпрд╛рдХреЗрдЬ, рдЬрд╕рд▓реЗ bash, gawk, make рд░ grep рдЬрд╕реНрддрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред MSYS рд╕рдБрдЧ Cygwin рдХреЛ рддреБрд▓рдирд╛рдорд╛ рд╕рдмреИ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЫреИрдирдиреНред MinGW рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдпреБрдирд┐рдХреНрд╕ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдиреЗрдЯрд┐рдн рд╡рд┐рдиреНрдбреЛрдЬ рдкреЛрд░реНрдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЙрдкрдпреЛрдЧреА рдЫред + +- рд╡рд┐рдиреНрдбреЛрдЬ рдЕрдиреНрддрд░реНрдЧрдд рдпреБрдирд┐рдХреНрд╕ рд▓реБрдХ рд░ рдорд╣рд╕реБрд╕ рдЧрд░реНрдиреЗ рдЕрд░реНрдХреЛ рд╡рд┐рдХрд▓реНрдк [рдирдЧрдж] (https://github.com/dthree/cash) рд╣реЛред рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдпреЛ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдзреЗрд░реИ рдереЛрд░реИ рдпреБрдирд┐рдХреНрд╕ рдЖрджреЗрд╢рд╣рд░реВ рд░ рдЖрджреЗрд╢-рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЫрдиреНред + +### рдЙрдкрдпреЛрдЧреА рд╡рд┐рдиреНрдбреЛрдЬ рдХрдорд╛рдгреНрдб-рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВ + +- рддрдкрд╛рдИрдБрд▓реЗ 'wmic' рд╕рд┐рдХреЗрд░ рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдмрд╛рдЯ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдиреНрдбреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рди рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред + +- рдиреЗрдЯрд┐рдн рдХрдорд╛рдгреНрдб-рд▓рд╛рдЗрди рд╡рд┐рдиреНрдбреЛрдЬ рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рдЙрдкрдХрд░рдгрд╣рд░реВ рддрдкрд╛рдИрд▓реЗ рдЙрдкрдпреЛрдЧреА рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ `ping`, `ipconfig`, `tracert`, рд░ `netstat`ред + +- рддрдкрд╛рдИрдВ `Rundll32` рдЖрджреЗрд╢ рдмреЛрд▓рд╛рдПрд░ [рдзреЗрд░реИ рдЙрдкрдпреЛрдЧреА Windows рдХрд╛рд░реНрдпрд╣рд░реВ] (http://www.thewindowsclub.com/rundll32-shortcut-commands-windows) рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред + +### Cygwin рд╕реБрдЭрд╛рд╡ рд░ рдЪрд╛рд▓рд╣рд░реВ + +- Cygwin рдХреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХ рд╕рдВрдЧ рдЕрддрд┐рд░рд┐рдХреНрдд Unix рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдЖрдлреНрдиреЛ рдХрдорд╛рдгреНрдб-рд▓рд╛рдЗрди рд╡рд┐рдиреНрдбреЛрдХреЛ рд░реВрдкрдорд╛ `mintty` рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- `/dev/clipboard` рдорд╛рд░реНрдлрдд рд╡рд┐рдиреНрдбреЛрдЬ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН `cygstart` рдпрд╕рдХреЛ рджрд░реНрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдорд╛рд░реНрдлрдд рдПрдХ рдордирдорд╛рдиреА рдлрд╛рдЗрд▓ рдЦреЛрд▓реНрдиред + +- 'regtool' рдХреЛ рд╕рд╛рде рд╡рд┐рдиреНрдбреЛрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред + +- рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдПрдХ `C:\` Windows рдбреНрд░рд╛рдЗрдн рдкрде `/cygdrive/c` рд╣реБрдиреНрдЫ Cygwin рдЕрдиреНрддрд░реНрдЧрдд, рд░ рддреНрдпреЛ Cygwin рдХреЛ `/` рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ `C:\cygwin` рдЕрдиреНрддрд░реНрдЧрдд рджреЗрдЦрд┐рдиреНрдЫред рд╕рд╛рдЗрдЧрд╡рд┐рди рд░ рд╡рд┐рдиреНрдбреЛрдЬ-рд╢реИрд▓реА рдлрд╛рдЗрд▓ рдорд╛рд░реНрдЧрд╣рд░реВ рдмреАрдЪ `cygpath` рдХреЛ рд╕рд╛рде рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпреЛ рд╡рд┐рдиреНрдбреЛрдЬ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рдЖрд╣реНрд╡рд╛рди рдЧрд░реНрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдкрдпреЛрдЧреА рдЫред + +## рдердк рд╕реНрд░реЛрддрд╣рд░реВ + +- [awesome-shell](https://github.com/alebcay/awesome-shell): рд╢реЗрд▓ рдЙрдкрдХрд░рдг рд░ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдХреНрдпреБрд░реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рд╕реВрдЪреАред +- [awesome-osx-command-line](https://github.com/herrbischoff/awesome-osx-command-line): macOS рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдХреЛ рд▓рд╛рдЧрд┐ рдердк рдЧрд╣рд┐рд░реЛ рдЧрд╛рдЗрдбред +- рд░рд╛рдореНрд░реЛ рд╢реЗрд▓ рд▓рд┐рдкрд┐рд╣рд░реВ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ [рдХрдбрд╛ рдореЛрдб](http://redsymbol.net/articles/unofficial-bash-strict-mode/)ред +- [shellcheck](https://github.com/koalaman/shellcheck): рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдгред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, bash/sh/zsh рдХреЛ рд▓рд╛рдЧрд┐ lintред +- [рд╢реЗрд▓рдорд╛ рдлрд╛рдЗрд▓рдирд╛рдорд╣рд░реВ рд░ рдорд╛рд░реНрдЧрдирд╛рдорд╣рд░реВ](http://www.dwheeler.com/essays/filenames-in-shell.html): рд╢реЗрд▓ рд▓рд┐рдкрд┐рд╣рд░реВрдорд╛ рдлрд╛рдЗрд▓рдирд╛рдорд╣рд░реВ рдХрд╕рд░реА рд╕рд╣реА рд░реВрдкрдорд╛ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрдиреЗ рднрдиреНрдиреЗрдорд╛ рджреБрдЦрдж рдЬрдЯрд┐рд▓ рдХреБрд░рд╛ред +- [Data Science at the Command Line](http://datascienceatthecommandline.com/#tools): рдЙрд╣реА рдирд╛рдордХреЛ рдкреБрд╕реНрддрдХрдмрд╛рдЯ, рдбрд╛рдЯрд╛ рд╡рд┐рдЬреНрдЮрд╛рди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдердк рдЖрджреЗрд╢ рд░ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЙрдкрдпреЛрдЧреА + +## рдЕрд╕реНрд╡реАрдХрд░рдг + +рдзреЗрд░реИ рд╕рд╛рдирд╛ рдХрд╛рд░реНрдпрд╣рд░реВ рдмрд╛рд╣реЗрдХ, рдХреЛрдб рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рддрд╛рдХрд┐ рдЕрд░реВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкрдвреНрди рд╕рдХреВрдиреНред рд╢рдХреНрддрд┐рд╕рдБрдЧреИ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рдкрдирд┐ рдЖрдЙрдБрдЫ ред рдмрд╛рд╢рдорд╛ рддрдкрд╛рдИрд▓реЗ *рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ* рднрдиреНрдиреЗ рддрдереНрдпрдХреЛ рдорддрд▓рдм рддрдкрд╛рдИрд▓реЗ рдЧрд░реНрдиреБрдкрд░реНрдЫ рднрдиреНрдиреЗ рд╣реЛрдЗрди! ;) + + +## рд▓рд╛рдЗрд╕реЗрдиреНрд╕ + +[![рдХреНрд░рд┐рдПрдЯрд┐рдн рдХрдордиреНрд╕ рд▓рд╛рдЗрд╕реЗрдиреНрд╕](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/) + +рдпреЛ рдХрд╛рдо [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/) рдЕрдиреНрддрд░реНрдЧрдд рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рджрд┐рдЗрдПрдХреЛ рдЫред \ No newline at end of file