рд▓рдЧрднрдЧ рдПрдХ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ zsh рдПрдХ habr рдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрди рджреЛрдиреЛрдВ рд╡рд┐рд╖рдпреЛрдВ рдФрд░ рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ zsh рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рдЗрд╕реЗ рдПрдХ рдЙрдиреНрдирдд рдСрдЯреЛ- рдХрдореНрдкрд╛рд╕ рдХреЗ рд╕рд╛рде рдмреИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЙрд╕ рдПрдХ (рд╕реНрд╡рдд: рдкреВрд░реНрдг) рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреЗ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдпрд╣ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдЗрдВрджреНрд░рдзрдиреБрд╖ рдХреЗ рд╕рднреА рд░рдВрдЧреЛрдВ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдХреЛ рдХреИрд╕реЗ рдкреЗрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрд╛ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдПрдХ рдкреНрд░реЛрдо рдмрдирд╛рдпрд╛ рдЬрд╛рдПред рдореИрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ zsh рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдореБрдЦреНрдп рд╢реЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХрд╛ рдХрд╛рдо рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрдВрджрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЙрдкрдирд╛рдо
Zsh рдореЗрдВ, рд╡реЗ рдЪрд╛рд░ рд░реВрдкреЛрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ:
- рдорд╛рдирдХ ( -рдЖрд░ рдзреНрд╡рдЬ) - рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдмреИрд╢ рдореЗрдВ
- рдкреНрд░рддреНрдпрдп ( -s рдзреНрд╡рдЬ) - рдЖрдк рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ
- рд╡реИрд╢реНрд╡рд┐рдХ ( -рдЬреА рдзреНрд╡рдЬ) - рдорд╛рдирдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЦреЛрдЬ рдкреВрд░реА рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдЬрд╣рд╛рдВ рдХрдорд╛рдВрдб рд╣реЛ рд╕рдХрддреА рд╣реИ
- рд╣реИрд╢ - рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЙрдкрдирд╛рдореЛрдВ рдХреА рддрд░рд╣
рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реА рджреЛ рдкреНрд░рдЬрд╛рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд▓рд┐рдЦрд╛ред рдЕрдВрддрд┐рдо рджреЛ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВред
рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрдирд╛рдо
alias -gg="| grep" alias -gl="| less"
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛
cat where | grep what | less
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
cat where g what l
рдЙрджрд╛рд╣рд░рдг рдЕрддрд┐рд░рдВрдЬрд┐рдд рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрдкрдирд╛рдо рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдЪрд╛рд╣рд┐рдП)ред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдн рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдПрдХ рдЙрдкрдирд╛рдо рдмрдирд╛рддреЗ рд╕рдордп рдХрд┐рд╕реА рдзреНрд╡рдЬ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛, рдпрд╣ рдорд╛рдирдХ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рджреЛрдиреЛрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЭрдВрдбрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдЙрдкрдирд╛рдореЛрдВ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдмрдВрдж / рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
disable -a aliasname enable -a aliasname
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рдХрдорд╛рдВрдб рдЖрджреЗрд╢ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрд╕ рддрдХ рднреА рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред
\aliasname
рд╣реИрд╢
hash -d apl=/private/var/log/apache2 hash -d p1=/srv/www/project1/html
рдЕрдм, рд╣реИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
cd ~hashname
рдпрд╛ рднреА
~hashname
рдпрджрд┐ рдЖрдк
рд╕реНрд╡рддрдГ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдмреЗрд╢рдХ, рд╣реИрд╢ рдлрд╛рдЗрд▓ рдкрде рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
cat ~hashname/file cp ~hashname/file /path/somewhere
Avtokomplit
рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ zsh рдореЗрдВ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИред
рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдЯреАрдореЛрдВ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛рдП (рдФрд░ рдЕрдкрдиреА рдкреНрд░рд╢рдВрд╕рд╛ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ), zsh рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдореЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
zstyle ':completion:*:processes' command 'ps -ax' zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;32' zstyle ':completion:*:*:kill:*' menu yes select zstyle ':completion:*:kill:*' force-list always zstyle ':completion:*:processes-names' command 'ps -e -o comm=' zstyle ':completion:*:*:killall:*' menu yes select zstyle ':completion:*:killall:*' force-list always
рдпрд╣ рдХреЙрдиреНрдлрд┐рдбреЗрдВрд╕ рд╣рдореЗрдВ рдХрд┐рд▓ рдФрд░ рдХрд┐рдВрдбрд▓ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдмрдзрд╛рдИ рджреЗрдЧрд╛:
DevMan% killall F Finder ForkLift
DevMan% kill Sa 502 ?? 2:49.10 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_53261 823 ?? 14:29.44 /System/Library/StagedFrameworks/Safari/WebKit2.... 1509 ?? 4:28.21 /Applications/Xmarks for Safari.app...
рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдкреНрд░рд╢рдВрд╕рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдЖрдк рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдиреБрдХрд╕рд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХ рд▓рд╛рдн рдорд┐рд▓рддрд╛ рд╣реИред
hooky
рд╣реБрдХ рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ 3 рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
- chpwd - рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдирд╛рдо рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
- preexec - рдХрд┐рд╕реА рднреА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкреНрд░рд╛рдореНрдб - рдкреНрд░реЙрдо рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдЙрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рднреА рдХрдВрд╕реЛрд▓ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рд░рд┐рдмреВрдЯ / рд▓реЙрдЧрдЖрдЙрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдерд╛ред
рдореИрдВ рджреВрд╕рд░реА рдФрд░ рддреАрд╕рд░реА рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддреЗ рд╣реИрдВ: рдореИрдВрдиреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдирд╛ рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛, рдЬрдм рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗрдВрджреНрд░ рдкрд░ рддрддреНрдкрд░рддрд╛ рдХреА рд╕реВрдЪрдирд╛ рдЖ рдЬрд╛рдПрдЧреАред
рдЕрдВрдд рдореЗрдВ, рдереЛрдбрд╝рд╛ рдЬрд╛рджреВ рдХрд╛ рдЬрд╛рджреВ
ls *(.)
рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдПрдХ рдирдЧрдгреНрдп рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ zsh рд╕рдХреНрд╖рдо рдХреНрдпрд╛ рд╣реИред
рдореЙрдбреНрдпреВрд▓, рдЬреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ, рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реБрдП рдереЗред
рдПрдХ рд╢рд┐рдХреНрд╖рдг рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореВрд▓ рдорд╛рди рдФрд░ рдПрдХ рдЧрд╛рдЗрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ
рдпрджрд┐ рд╡рд┐рд╖рдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рдЬрд╛рд░реА рд░рдЦреЗрдВред
рд╕рднреА рдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!