рдпрджрд┐ рдЖрдк Microsoft, Apple, рдпрд╛ Linux рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (OS) рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рдиреЗ-рдЕрдирдЬрд╛рдиреЗ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реЛрдВред рджрд░рдЕрд╕рд▓, рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЕрдкрдирд╛ Linux OS рдмреВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рдЖрдк shells рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред┬а
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ, рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдСрдЯреЛрдореЗрд╢рди рдХреЗ рдЬрд╝рд░рд┐рдП рд╕рдордп рдмрдЪрд╛рдиреЗ рдФрд░ рджреЛрд╣рд░рд╛рд╡ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд░реЛрдЬрд╝рд╛рдирд╛ рдмреИрдХрдЕрдк рд▓реЗ рд╕рдХрддреА рд╣реИрдВ, рдкреИрдЪ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдирд┐рдпрдорд┐рдд рдСрдбрд┐рдЯ рдХрд░ рд╕рдХрддреА рд╣реИрдВред┬а
Shells рдЗрдВрд╕рд╛рдиреА рд╕рдордЭ рд╡рд╛рд▓реА рд╕рд╣рдЬ рдХрдорд╛рдВрдбреНрд╕ рдкрдврд╝рддреА рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдРрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рдмрджрд▓рддреА рд╣реИрдВ рдЬрд┐рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд╕рдордЭ рд╕рдХреЗред┬а
Shell рдХреНрдпрд╛ рд╣реИ?
Shell рдПрдХ рддрд░рд╣ рдХрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ Linux рдФрд░ Unix рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЬрд░рд┐рдП рдЕрдкрдиреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред Shells рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕реАрдзреЗ рдФрд░ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВред┬а
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЛрдИ рдПрдХрд▓ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╛рдХреГрддрд┐рдХ-рднрд╛рд╖рд╛ рдЬреИрд╕реА рдХрдорд╛рдВрдбреНрд╕ рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕реЗ рдмрд┐рдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реАрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рд░ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдмреЛрд▓реА рдПрдХ рднрд╛рд╖рд╛ рдорд╛рдиреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ shells рдореЗрдВ рдЕрдЪреНрдЫреА рдЦрд╛рд╕реА рдкреНрд░реИрдХреНрдЯрд┐рд╕ рд▓рдЧрддреА рд╣реИред┬а
рдСрдЯреЛрдореЗрд╢рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рд╣реИред Linux рдпрд╛ Unix рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ, DevOps рдФрд░ TechOps рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЛ рдХрдВрдбреАрд╢рдирд▓ рдФрд░ рд▓реВрдк рдХрдВрдЯреНрд░реЛрд▓ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рджреЗрддреА рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХреЗрдВред
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдирд╛рдо рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдиреА рдЬрд╛рддреАрдВред Sh, Bash (рд╕рдмрд╕реЗ рдЖрдо), csh, рдФрд░ tesh рд╕рднреА shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реИрдВред IBM рдХреЗ VM рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрдиреНрд╣реЗрдВ EXEC рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╡рд╣реАрдВ DOS рдореЗрдВ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдмреИрдЪ рдлрд╛рдЗрд▓реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред┬а
Shell рдХреЗ рджреЛ рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ: рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди shell рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХрд▓ shellред рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди shells рдХреЛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рд┐рд╕реНрдЯрдо рдорд╛рдирд╡-рдкрдардиреАрдп рдХрдорд╛рдВрдбреНрд╕ рдореЗрдВ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрд╕реА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЬрд░рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИред┬а
рдЧреНрд░рд╛рдлрд┐рдХрд▓ shells рдЗрдВрдЯрд░реИрдХреНрд╢рди рдФрд░ рдореВрд▓рднреВрдд рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ рдлрд╛рдЗрд▓ рдЦреЛрд▓рдирд╛, рдмрдВрдж рдХрд░рдирд╛ рдФрд░ рд╕рд╣реЗрдЬрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлреЗрд╕ (GUI) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред┬а
рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгрд╛рддреНрдордХ shell рдХрдорд╛рдВрдбреНрд╕ рджрд┐рдП рдЧрдП рд╣реИрдВ:┬а
рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдХрд┐рд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╣реИрдВ: pwd
рдореИрдиреБрдЕрд▓ рдореЗрдВ рдХреЛрдИ рдХрдорд╛рдВрдб рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП: man command┬а
рдХрд┐рд╕реА рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП: less file 1 рдпрд╛ more file 1┬а
Shells рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░
Bourne Shell
рдирд╛рдо рдЬрд┐рддрдирд╛ рд░реЛрдорд╛рдВрдЪрдХ рд▓рдЧрддрд╛ рд╣реИ, Bourne shell рдХрд╛ рдЬрд╛рд╕реВрд╕реЛрдВ рдпрд╛ рд╣рд╛рдИ-рд╕реНрдкреАрдб рдХрд╛рд░ рдЪреЗрдЬрд╝ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред Bourne shell, рдЬреЛ рджреВрд╕рд░рд╛ рд╕рдмрд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ Unix shell рд╣реИ, 1979 рдореЗрдВ Bell Labs рдХреЗ Stephen Bourne рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдкрдиреЗ рдкреВрд░реНрд╡рд╡рд░реНрддреА Thompson shell рдХреА рддрд░рд╣, Bourne рдХрд╛ executable рдлрд╝рд╛рдЗрд▓рдирд╛рдо sh рд╣реИред
Bourne shell Solaris OS рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ shell рд╣реИред рдЕрдкрдиреА рдЙрдореНрд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, Bourne shell рдЖрдЬ рднреА рдЕрдкрдиреА рдЧрддрд┐ рдФрд░ рдХреЙрдореНрдкреИрдХреНрдЯрдиреЗрд╕ рдХреЗ рдХрд╛рд░рдг рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, Bourne shell рдмрд╣реБрдд рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдкрдиреА command history рдпрд╛рдж рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ред рдЗрд╕рдореЗрдВ рд▓реЙрдЬрд┐рдХрд▓ рдФрд░ рдЕрд░рд┐рдердореЗрдЯрд┐рдХ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрд╛ рднреА рдЕрднрд╛рд╡ рд╣реИред┬а
Bourne рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдХрдорд╛рдВрдб рдлреБрд▓-рдкрд╛рде:┬а /bin/sh рдФрд░ /sbin/sh
рдиреЙрди-рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ:┬а $
рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ: #
command-line
C shell, рдлрд╝рд╛рдЗрд▓рдирд╛рдо csh, рдФрд░ рдЗрд╕рдХрд╛ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдлрд╝рд╛рдЗрд▓рдирд╛рдо tcsh, 70 рдХреЗ рджрд╢рдХ рдХреЗ рдЙрддреНрддрд░рд╛рд░реНрдз рдХрд╛ рдПрдХ рдФрд░ Unix shell рд╣реИред рдЗрд╕реЗ рдЙрд╕ рд╕рдордп рдХреИрд▓рд┐рдлрд╝реЛрд░реНрдирд┐рдпрд╛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп, рдмрд░реНрдХрд▓реЗ рдХреЗ рд╕реНрдирд╛рддрдХ рдЫрд╛рддреНрд░ Bill Joy рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ред┬а
Bourne shell рдХреЗ рд╡рд┐рдкрд░реАрдд, C shell рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╣реИ рдФрд░ command history рдФрд░ aliases рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред C shells рдореЗрдВ C-рдЬреИрд╕рд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдмрд┐рд▓реНрдЯ-рдЗрди рдЕрд░рд┐рдердореЗрдЯрд┐рдХ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
command-line рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:┬а
рдХрдорд╛рдВрдб рдлреБрд▓-рдкрд╛рде: ┬а/bin/csh
рдиреЙрди-рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрдиреЗрдо: %
рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯрдиреЗрдо: #
KornShell
KornShell, рдлрд╝рд╛рдЗрд▓рдирд╛рдо ksh, 1980 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ Bell Labs рдХреЗ David Korn рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред KornShell рдореЗрдВ C shell рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ, рдФрд░ рдпрд╣ Bourne shell рдХрд╛ рд╕реБрдкрд░-рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдмреИрдХрд╡рд░реНрдб-рдХрдореНрдкреИрдЯрд┐рдмрд▓ рд╣реИред┬а
KornShell, C-shell рд╕реЗ рддреЗрдЬрд╝ рдЪрд▓рддрд╛ рд╣реИред рдпрд╣ Bourne shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ C-рдЬреИрд╕реА arrays, functions рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ-рдореИрдиреАрдкреБрд▓реЗрд╢рди рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдореЗрдВ рдмрд┐рд▓реНрдЯ-рдЗрди рдЕрд░рд┐рдердореЗрдЯрд┐рдХ рд╣реИред┬а
KornShell рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдХрдорд╛рдВрдб рдлреБрд▓-рдкрд╛рде: /bin/ksh
рдиреЙрди-рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ: $
рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ: #
GNU Bourne-Again shell
GNU Bourne-Again, рдпрд╛ Bash, shell, Bourne shell рдХрд╛ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЗрд╕реЗ Brian Fox рдиреЗ GNU рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдерд╛ рдФрд░ 1989 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рди рдХреЗрд╡рд▓ Bourne shell рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕рдВрдЧрдд рд╣реИ, рдмрд▓реНрдХрд┐ KornShells рдФрд░ C shells рдХреА рдХрдИ рдмреЗрд╣рддрд░реАрди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рднреА рд▓реЗрддрд╛ рд╣реИред GNU Bourne-Again shell рдореЗрдВ рд╕рдВрдкрд╛рджрди рдФрд░ рдХрдорд╛рдВрдб рд░рд┐рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрд░реЛ рдХреАрдЬрд╝ рдСрдЯреЛрдореИрдЯрд┐рдХрд▓реА рдореИрдкреНрдб рд╣реЛрддреА рд╣реИрдВред┬а
GNU Bourne-Again рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдХрдорд╛рдВрдб рдлреБрд▓-рдкрд╛рде: /bin/bash
рдиреЙрди-рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░реЙрдореНрдкреНрдЯ: bash-x.xx$┬а
рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ: bash-x.xx#
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИ
рдпрд╣ рдЙрдкрдорд╛ рдереЛрдбрд╝реА рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХреЗ рд▓рд┐рдП рдСрдЯреЛрдлрд┐рд▓ рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВред рдХреАрдмреЛрд░реНрдб рдкрд░ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, shell рдПрдХрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдореЗрдВ рдХрдорд╛рдВрдбреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рд╛рдЗрд▓рдирд╛рдо рд╕реЗ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХреНрдЬреАрдХреНрдпреВрд╢рди, рдЯреЗрдХреНрд╕реНрдЯ рд░реИрдкрд┐рдВрдЧ рдФрд░ рдлрд╛рдЗрд▓ рдореИрдиреАрдкреБрд▓реЗрд╢рди рдХрд░рддреА рд╣реИрдВред┬а
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХрдИ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рдбрд┐рд╕реНрдХ рдЙрдкрдпреЛрдЧ рдЬреИрд╕реА рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ, рдмреИрдХрдЕрдк рд▓реЗрдирд╛, рдХрдорд╛рдВрдб рдЯреВрд▓ рдмрдирд╛рдирд╛, рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдирд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдХреЛ рдЖрдкрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛, рдмреИрдЪ рдкреВрд░реЗ рдХрд░рдирд╛ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
Shell рдХреЗ рдореБрдЦреНрдп рд╡рд┐рдХрд▓реНрдк
IBM рдХреЗ VM рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрдиреНрд╣реЗрдВ EXEC рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; DOS рдореЗрдВ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдмреИрдЪ рдлрд╛рдЗрд▓реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпреЗ рдЕрдм рднреА shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реА рд╣реИрдВред рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдБ, рдЬреИрд╕реЗ Javascript, Python, Perl рдФрд░ TCL рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдБ рд╣реИрдВред рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рдЕрдкрдиреА-рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рд╣рдо рдЖрдЧреЗ shells рдХреЗ рдлрд╛рдпрджреЗ-рдиреБрдХрд╕рд╛рди рдкрд░ рдЖрдПрдБрдЧреЗред┬а
Shell рдЗрддрдирд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрдпреЛрдВ рд╣реИ?
Shell рд▓рдЧрднрдЧ рд╣рд░ OS рдкрд░ рдЖрдо рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрд╢рд▓ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рдпрдорд┐рдд рдмреИрдХрдЕрдк рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдЗрд╕рдХреЗ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдкрдбрд╝реЗред┬а
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрджрд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реЛрддреА рдХреНрдпреЛрдВрдХрд┐ shell рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдХрдорд╛рдВрдбреНрд╕ рд╡рд╣реА рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдФрд░ рддреЗрдЬрд╝ рд╣реИ: рдпреЗ рдЬрд▓реНрджреА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдЗрдиреНрд╣реЗрдВ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред┬а
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреА рдХрдорд┐рдпрд╛рдБ рдХреНрдпрд╛ рд╣реИрдВ?
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реЛрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдкрд░ рдЙрдирдХрд╛ рдирд┐рджрд╛рди рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред Shells рдЬрдЯрд┐рд▓ рдпрд╛ рдмрдбрд╝реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рдЙрдирдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдзреАрдорд╛ рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, shells рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рджреЗрддреАрдВ, рдФрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдпрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдЦрд╛рдорд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред┬а
Shell рдХрдм рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛?
рдкрд╣рд▓реА shell рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1960 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ MIT рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реНрдЯрд╛рдл рд╕рджрд╕реНрдп Louis Pouzin рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред рдЙрдирдХреА рдкрд╣рд▓реА рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди RUNCOM рдереА, рдЬрд┐рд╕рдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХреЛ рдХреЙрдореНрдкрд╛рдЗрд▓рд┐рдВрдЧ, рдЕрдкрдбреЗрдЯрд┐рдВрдЧ, рд░реАрдиреЗрдорд┐рдВрдЧ рдФрд░ рдореВрд╡рд┐рдВрдЧ рдЬреИрд╕реЗ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдореБрдХреНрддрд┐ рджрд┐рд▓рд╛рдИред┬а
рд╣рд╛рд▓рд╛рдБрдХрд┐ Pouzin рдХрдВрдкреНрдпреВрдЯрд░ рднрд╛рд╖рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рдереЗ, рдпрд╛ рд╢рд╛рдпрдж рдЗрд╕реА рд╡рдЬрд╣ рд╕реЗ, рд╡реЗ рдорд╛рдирддреЗ рдереЗ рдХрд┐ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрдиреНрд╕ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рднрд╛рд╖рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред┬а
1960 рдХреЗ рджрд╢рдХ рдХреЗ рдордзреНрдп рддрдХ, Pouzin рдиреЗ рдмреНрд░рд┐рдЯрд┐рд╢ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ Christopher Strachey рдХреЗ рд╕рд╛рде рд╣рд╛рде рдорд┐рд▓рд╛рдпрд╛ред Strachey рдиреЗ рдПрдХ рдореИрдХреНрд░реЛ-рдЬрдирд░реЗрдЯрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬреЛ Pouzin рдХреА рдХрдорд╛рдВрдб рднрд╛рд╖рд╛ рдХрд╛ рдЖрдзрд╛рд░ рдмрдирд╛, рдЬреЛ рдЙрд╕ рд╕рдордп рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ Multics рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрд▓рддреА рдереАред┬а
Shell рдХреЛ рдЗрд╕рдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рдорд┐рд▓рд╛
Pouzin рдиреЗ рдЕрдкрдиреА рдирдИ рднрд╛рд╖рд╛ рдХрд╛ рдирд╛рдо тАЬshellтАЭ рд░рдЦрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдмрд╕реЗ рдмрд╛рд╣рд░реА рдкрд░рдд рд╣реИред┬а
Shell рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
Shells рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рдХрд┐ рд╡реЗ рдмреБрдирд┐рдпрд╛рджреА рд╣реИрдВред Shells рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред рдХрдорд╛рдВрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, shells рдлреЛрд░рдЧреНрд░рд╛рдЙрдВрдб рдпрд╛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред рдлреЛрд░рдЧреНрд░рд╛рдЙрдВрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрддреА рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред┬а
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд╕реНрдХреНрд░реАрди рдкрд░ рдирд╣реАрдВ рджрд┐рдЦрддреАрдВ рдФрд░ рдЧреИрд░-рдЕрдиреБрдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред рдХрд┐рд╕реА shell рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдРрдВрдкрд░рд╕реИрдВрдб (&) рдЬреЛрдбрд╝рдирд╛ рд╣реЛрддрд╛ рд╣реИред┬а
рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рдВрд╕
рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рдВрд╕ рд╕рд┐рд╕реНрдЯрдореНрд╕ рдХреЛ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрдорд╛рдВрдб рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рдЕрдВрд╢ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, * рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ) рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред ? рдПрдХрд▓ рдЕрдХреНрд╖рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, [example] рдХрд┐рд╕реА рднреА рдЕрдХреНрд╖рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (тАЬexampleтАЭ рд╕рд┐рд░реНрдл рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ) рдФрд░ [1-9] (рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг) shell рдХреЛ рджрд┐рдП рдЧрдП рд░реЗрдВрдЬ рдХреЗ рднреАрддрд░ рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИред┬а
рдХрдорд╛рдВрдб рдПрд▓рд┐рдпрд╛рд╕
Shell рдПрд▓рд┐рдпрд╛рд╕ рд╢реЙрд░реНрдЯрдХрдЯ рдХрдорд╛рдВрдбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред рдХреБрдЫ рдПрд▓рд┐рдпрд╛рд╕ рдПрдХ рд╢рдмреНрдж рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдПрдХ рд╣реА рдЕрдХреНрд╖рд░ рдХреЗред рдПрд▓рд┐рдпрд╛рд╕ рдХреА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ ┬╖alias рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред
рдХрдорд╛рдВрдб рд╣рд┐рд╕реНрдЯреНрд░реА
Shells рд╕рдордп рдФрд░ рдореЗрд╣рдирдд рдмрдЪрд╛рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рджреЗрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕рдХреА рдХрдорд╛рдВрдб рд╣рд┐рд╕реНрдЯреНрд░реА рд╣реИред рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, history рдХрдорд╛рдВрдб рдЙрд╕ рд╕рддреНрд░ рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╕рднреА рдХрдорд╛рдВрдбреНрд╕ рджрд┐рдЦрд╛рддреА рд╣реИред
рдлрд╝рд╛рдЗрд▓рдирд╛рдо рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рди
рдлрд╝рд╛рдЗрд▓рдирд╛рдо рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рди рдХреЛ тАЬglobbingтАЭ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдХрд┐рд╕реА рд╢рдмреНрдж рдореЗрдВ ?, *, рдпрд╛ [ рдЬреИрд╕реЗ рдЕрдХреНрд╖рд░ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рд╡рд╣ ~ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ shell рдЙрд╕ рд╢рдмреНрдж рдХреЛ рдПрдХ рдкреИрдЯрд░реНрди рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдЧреА рдФрд░ рдЙрд╕реЗ рдЙрд╕ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рд╛рдЗрд▓рдирд╛рдореЛрдВ рдХреА рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕реВрдЪреА рд╕реЗ рдмрджрд▓ рджреЗрдЧреАред┬а
рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ рд░реАрдбрд╛рдпрд░реЗрдХреНрд╢рди┬а
рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ (i/o) рд░реАрдбрд╛рдпрд░реЗрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдорд╛рдирдХ рдЗрдирдкреБрдЯ (stdin) рдФрд░ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ (stdout) рдХреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реНрдХреНрд░реАрди, рдХреАрдмреЛрд░реНрдб рдпрд╛ рдХрд┐рд╕реА рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред┬а
рдкрд╛рдЗрдкрд┐рдВрдЧ
Shell рдкрд╛рдЗрдкрд┐рдВрдЧ рд░реАрдбрд╛рдпрд░реЗрдХреНрд╢рди рдХрд╛ рдПрдХ рдФрд░ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдХрдорд╛рдВрдб/рдкреНрд░реЛрд╕реЗрд╕/рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рджреВрд╕рд░реЗ рдХрдорд╛рдВрдб/рдкреНрд░реЛрд╕реЗрд╕/рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХрдорд╛рдВрдбреНрд╕/рдкреНрд░реЛрд╕реЗрд╕реЗрд╕/рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛ рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрд┐рдирд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реНрдХреНрд░реАрди рдпрд╛ рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдЧреБрдЬрд╝рд░реЗ рд▓рдЧрд╛рддрд╛рд░ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИред┬а
Shell рд╡реЗрд░рд┐рдПрдмрд▓ рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рди
рдЬрдм shell рдХрд┐рд╕реА рдРрд╕реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рд╕реЗ рдорд┐рд▓рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдЕрдХреНрд╖рд░ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рдХреЛрдб рдХреЛ рдРрд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкрд╣рдЪрд╛рди рдпреЛрдЧреНрдп рд╣реЛред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рдВрд╕ рдпрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред┬а
рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рднреА рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рди рдирд╣реАрдВ рдкрддрд╛ рд╣реИрдВ, рддреЛ рд╡реЗ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рддрдХ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред┬а
Shells рдореЗрдВ рднрд┐рдиреНрдирддрд╛рдПрдБ
рдореБрдЦреНрдпрддрдГ рджреЛ рддрд░рд╣ рдХреЗ shells рд╣реИрдВ, тАЬshтАЭ рдФрд░ тАЬbashтАЭред рджреЛрдиреЛрдВ Unix рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рднреАрддрд░ рдЪрд▓рддреЗ рд╣реИрдВред Shell рдХрд┐рд╕реА рднреА shell рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рд╣реИред рдирд╛рдо рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ, bash (Bourne Again Shell) рдПрдХ рдЙрдиреНрдирдд рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд shell рд╣реИред┬а
Bash рдЕрдзрд┐рдХ рдлрд╝рдВрдХреНрд╢рдиреИрд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреЙрдм рдХрдВрдЯреНрд░реЛрд▓ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, sh рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдХрдорд╛рдВрдб рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред Sh рдХрдорд╛рдВрдб рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛; рдЗрд╕рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХрд┐рд╕реА рднреА shell рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИред┬а┬а
рд╕рд╛рд▓-рджрд░-рд╕рд╛рд▓ Shell рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИ
рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, shells рд╡рд┐рдХрд╕рд┐рдд рднреА рд╣реБрдП рд╣реИрдВ рдФрд░ рдХрд╛рдлреА рд╣рдж рддрдХ рд╡рд╣реА рднреА рдмрдиреЗ рд░рд╣реЗ рд╣реИрдВред Bourne shell рдореВрд▓ Thompson shell рд╕реЗ рдЖрдЧреЗ рдХрд╛ рдмрдбрд╝рд╛ рдХрджрдо рдерд╛, рд▓реЗрдХрд┐рди рдХрдИ рдореВрд▓рднреВрдд рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЕрдм рднреА рдмрдиреЗ рд╣реБрдП рд╣реИрдВред рдмреЗрд╢рдХ, рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рд╣рдорд╛рд░реА рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ рджреЛрдиреЛрдВ рдмрджрд▓ рдЪреБрдХреА рд╣реИрдВред┬а
рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЬрд┐рддрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рдЙрддрдиреЗ shells рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди рдмреБрдирд┐рдпрд╛рджреА рддреМрд░ рдкрд░ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ shells рд╣реИрдВ тАУ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрдиреНрд╕ рдпрд╛ Bourneред рдмрд╛рдХреА рд╕рдм рдПрдХ рдмреЛрд▓реА рд╣реИ, рдЕрд▓рдЧ рднрд╛рд╖рд╛ рдирд╣реАрдВред┬а
Unix shells
Unix shells рдореВрд▓ рд╣реИрдВ рдФрд░ рдЕрдм рднреА рдордЬрд╝рдмреВрддреА рд╕реЗ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред Unix shells, Unix рдФрд░ Unix-рд╕рдВрдмрдВрдзрд┐рдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдореНрд╕, рдЬреИрд╕реЗ Mac, рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред┬а┬а
command-lines
command-lines (csh) рд╕рдмрд╕реЗ рдЖрдо Unix shells рд╣реИрдВред command-lines рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХрд╛рдо рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ aliases, cdpath, рдЬреЙрдм рдХрдВрдЯреНрд░реЛрд▓, рдкрд╛рде рд╣реИрд╢рд┐рдВрдЧ, рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реНрдЯреИрдХреНрд╕ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпреЗ рд╕рдВрдкрд╛рджрди рдФрд░ рд╣рд┐рд╕реНрдЯреНрд░реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рднреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
Tenex command-line
Tenex command-line (tcsh) рдХреЛ Caregia Melo University рдХреЗ Ken Greer рдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред┬а Tenex рдХреЛ рдореВрд▓ command-line рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмреЗрд╣рддрд░ рдорд╛рдирд╛ рдЧрдпрд╛ред рдореВрд▓ C рдХреЗ рд╡рд┐рдкрд░реАрдд, Tenex рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдПрдбрд┐рдЯрд┐рдВрдЧ рдФрд░ рдХрдореНрдкреНрд▓реАрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред 1981 рдореЗрдВ, tsch csh рдХреЗ рд╕рд╛рде рдорд░реНрдЬ рд╣реЛ рдЧрдпрд╛ред┬а
Korn shells
Korn shells (ksh) рдПрдХ рдФрд░ Unix shell рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ C рдФрд░ Bourne shells рдХреЗ рдмреАрдЪ рдПрдХ рддрд░рд╣ рдХрд╛ рд╕рдордЭреМрддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЗ рд╕рд╛рде рдмреИрдХрд╡рд░реНрдб рдХрдореНрдкреИрдЯрд┐рдмрд▓ рд╣реИред Korn shell 1980 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ Bell Labs рдХреЗ David Korn рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред┬а
Bourne again shells
Bourne Again shell (Bash) рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ Unix shell рд╣реИ рдЬрд┐рд╕реЗ 1990 рдХреЗ рджрд╢рдХ рдХреЗ рдЙрддреНрддрд░рд╛рд░реНрдз рдореЗрдВ Brian Fox рдиреЗ GNU рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП Bourne shell рдХреЗ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред┬а
Exotic shells
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпреЗ рд╕рднреА C рдпрд╛ Bourne shells рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдиреЗ рд╕реИрдХрдбрд╝реЛрдВ, рдпрджрд┐ рд╣рдЬрд╝рд╛рд░реЛрдВ рдирд╣реАрдВ , рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреЛрд▓рд┐рдпрд╛рдБ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рд╣реИрдВред рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдорд╣рдЬрд╝ рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдПред┬а
Shell рдХреМрди рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ?
рд▓рдЧрднрдЧ рд╣рд░ рдХрдВрдкреНрдпреВрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ shell рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░реНрд╕, DevOps рдкреЗрд╢реЗрд╡рд░реЛрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдФрд░ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрджреЗрдордВрдж рд╣реИрдВред Shells рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ, рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ, рдбреЗрдЯрд╛ рдХрд╛ рдмреИрдХрдЕрдк рдпрд╛ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред┬а
Shell рдХреЗ рдЙрджрд╛рд╣рд░рдг
Shells рдЙрддрдиреЗ рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдпрд╛ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рддрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд╛рд╣реЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг bash рдЕрднрд┐рд╡рд╛рджрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: echo тАЬhello $USERтАЭ, рдЬрдмрдХрд┐ рдЬрдЯрд┐рд▓ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рдЧрднрдЧ рдЕрд╕реАрдорд┐рдд рд╣реИрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:┬а
рдЙрджрд╛рд╣рд░рдг 1: bash рдореЗрдВ while рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ bash рдореЗрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдПрдбрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред рдпрд╣рд╛рдБ рд╣рдо vi рдПрдбрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
┬а
$ vi example.sh
┬а
рдпрд╣ example.sh рдирд╛рдо рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдбрд┐рдЯрд░ рдЦреЛрд▓рддрд╛ рд╣реИ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'i' рдХреБрдВрдЬреА рджрдмрд╛рдПрдБ:
#!/bin/bash
valid = true
count = 1
while [ $valid ]
do
echo $count
if [ $count -eq 10 ] ;
then
break
fi
(( count++ ))
done рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╕реЗрд╡ рдХрд░рдиреЗ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП escape рджрдмрд╛рдПрдБ рдФрд░ рдлрд┐рд░ ':wq' рд▓рд┐рдЦреЗрдВред┬а рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП bash example.sh┬а рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЙрджрд╛рд╣рд░рдг 2:┬а рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдЗрдирдкреБрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛
┬а
vi рдПрдбрд┐рдЯрд░ рдореЗрдВ рдПрдХ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:┬а$vi example2.sh
┬а
рдПрдбрд┐рдЯрд░ рдореЗрдВ рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВ:
#!/bin/bash
echo "Enter first number"
read x
echo "Enter second number"
read y
(( sum= x+ y))
echo "The result of addition = $sum " рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП bash example2.sh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
┬а
рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА shell рдХрдорд╛рдВрдбреНрд╕ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рджреЗрдЦреЗрдВ:
Useful Shell Commands ред
Shell рдХреЗ рд╕рд╛рде рдХрд░рд┐рдпрд░
рдХрд░рд┐рдпрд░ рдкрд╛рде рдХреА рдмрдЬрд╛рдп, shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЛ рдПрдХ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреЗ рдФрдЬрд╝рд╛рд░реЛрдВ рдХреЗ рднрдВрдбрд╛рд░ рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рдЯреВрд▓ рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВред рд╣рд░ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░реЛрдлреЗрд╢рдирд▓реНрд╕ рдХреЛ рдХрдИ рднрд╛рд╖рд╛рдПрдБ рдЬрд╛рдирдиреА рдЪрд╛рд╣рд┐рдП (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП), рдФрд░ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЙрдиреНрд╣реЗрдВ рдЗрди рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред┬а
рдлрд┐рд░ рднреА, рдХреБрдЫ рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рдРрд╕реЗ рд░реЛрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд╕рдд рд╡реЗрддрди рд▓рдЧрднрдЧ $78,000 рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдП рддреЛ, shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдЬреИрд╕реЗ рд░реЛрд▓реНрд╕ рдХреА рдиреАрдВрд╡ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдЫрд╣ рдЕрдВрдХреЛрдВ рддрдХ рдХреЗ рд╡реЗрддрди рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред┬а
рдирд┐рд╖реНрдХрд░реНрд╖
Shell рд╣рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдЧреБрдВрдереА рд╣реБрдИ рдбреЛрд░ рдХреА рддрд░рд╣ рд╣реИред рдЬрдЯрд┐рд▓ рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕рд╣рдЬ рд╢реЙрд░реНрдЯрд╣реИрдВрдбреНрд╕ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред Shell рдХреЛ рд╕рдордЭрдирд╛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдЗрдВрдЬреАрдирд┐рдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╣рдо рдХреМрд╢рд▓ рд╣реИред DataCamp рдХреЗ Introduction to Shell рдХреЛрд░реНрд╕ рдореЗрдВ shell рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВред┬а
рдпрджрд┐ рдЖрдк Microsoft, Apple, рдпрд╛ Linux рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (OS) рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╛рдиреЗ-рдЕрдирдЬрд╛рдиреЗ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реЛрдВред рджрд░рдЕрд╕рд▓, рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЕрдкрдирд╛ Linux OS рдмреВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рдЖрдк shells рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред┬а
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ, рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдСрдЯреЛрдореЗрд╢рди рдХреЗ рдЬрд╝рд░рд┐рдП рд╕рдордп рдмрдЪрд╛рдиреЗ рдФрд░ рджреЛрд╣рд░рд╛рд╡ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд░реЛрдЬрд╝рд╛рдирд╛ рдмреИрдХрдЕрдк рд▓реЗ рд╕рдХрддреА рд╣реИрдВ, рдкреИрдЪ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдирд┐рдпрдорд┐рдд рдСрдбрд┐рдЯ рдХрд░ рд╕рдХрддреА рд╣реИрдВред┬а
Shells рдЗрдВрд╕рд╛рдиреА рд╕рдордЭ рд╡рд╛рд▓реА рд╕рд╣рдЬ рдХрдорд╛рдВрдбреНрд╕ рдкрдврд╝рддреА рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдРрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рдмрджрд▓рддреА рд╣реИрдВ рдЬрд┐рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд╕рдордЭ рд╕рдХреЗред┬а
Shell рдХреНрдпрд╛ рд╣реИ?
Shell рдПрдХ рддрд░рд╣ рдХрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ Linux рдФрд░ Unix рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЬрд░рд┐рдП рдЕрдкрдиреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред Shells рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕реАрдзреЗ рдФрд░ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВред┬а
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЛрдИ рдПрдХрд▓ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╛рдХреГрддрд┐рдХ-рднрд╛рд╖рд╛ рдЬреИрд╕реА рдХрдорд╛рдВрдбреНрд╕ рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕реЗ рдмрд┐рдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реАрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рд░ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдмреЛрд▓реА рдПрдХ рднрд╛рд╖рд╛ рдорд╛рдиреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ shells рдореЗрдВ рдЕрдЪреНрдЫреА рдЦрд╛рд╕реА рдкреНрд░реИрдХреНрдЯрд┐рд╕ рд▓рдЧрддреА рд╣реИред┬а
рдСрдЯреЛрдореЗрд╢рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рд╣реИред Linux рдпрд╛ Unix рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ, DevOps рдФрд░ TechOps рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЛ рдХрдВрдбреАрд╢рдирд▓ рдФрд░ рд▓реВрдк рдХрдВрдЯреНрд░реЛрд▓ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рджреЗрддреА рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рджреЛрд╣рд░рд╛ рд╕рдХреЗрдВред
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдирд╛рдо рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдиреА рдЬрд╛рддреАрдВред
Sh,Bash (рд╕рдмрд╕реЗ рдЖрдо),csh,рдФрд░ tesh рд╕рднреА shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реИрдВред IBM рдХреЗ VM рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрдиреНрд╣реЗрдВ EXEC рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╡рд╣реАрдВ DOS рдореЗрдВ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдмреИрдЪ рдлрд╛рдЗрд▓реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред┬аShell рдХреЗ рджреЛ рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ: рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди shell рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХрд▓ shellред рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди shells рдХреЛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рд┐рд╕реНрдЯрдо рдорд╛рдирд╡-рдкрдардиреАрдп рдХрдорд╛рдВрдбреНрд╕ рдореЗрдВ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрд╕реА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЬрд░рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИред┬а
рдЧреНрд░рд╛рдлрд┐рдХрд▓ shells рдЗрдВрдЯрд░реИрдХреНрд╢рди рдФрд░ рдореВрд▓рднреВрдд рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ рдлрд╛рдЗрд▓ рдЦреЛрд▓рдирд╛, рдмрдВрдж рдХрд░рдирд╛ рдФрд░ рд╕рд╣реЗрдЬрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлреЗрд╕ (GUI) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред┬а
рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгрд╛рддреНрдордХ shell рдХрдорд╛рдВрдбреНрд╕ рджрд┐рдП рдЧрдП рд╣реИрдВ:┬а
рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдХрд┐рд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╣реИрдВ:
pwdрдореИрдиреБрдЕрд▓ рдореЗрдВ рдХреЛрдИ рдХрдорд╛рдВрдб рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП:
man command┬ардХрд┐рд╕реА рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
less file 1рдпрд╛more file 1┬аShells рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░
Bourne Shell
рдирд╛рдо рдЬрд┐рддрдирд╛ рд░реЛрдорд╛рдВрдЪрдХ рд▓рдЧрддрд╛ рд╣реИ, Bourne shell рдХрд╛ рдЬрд╛рд╕реВрд╕реЛрдВ рдпрд╛ рд╣рд╛рдИ-рд╕реНрдкреАрдб рдХрд╛рд░ рдЪреЗрдЬрд╝ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред Bourne shell, рдЬреЛ рджреВрд╕рд░рд╛ рд╕рдмрд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ Unix shell рд╣реИ, 1979 рдореЗрдВ Bell Labs рдХреЗ Stephen Bourne рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдкрдиреЗ рдкреВрд░реНрд╡рд╡рд░реНрддреА Thompson shell рдХреА рддрд░рд╣, Bourne рдХрд╛ executable рдлрд╝рд╛рдЗрд▓рдирд╛рдо
shрд╣реИредBourne shell Solaris OS рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ shell рд╣реИред рдЕрдкрдиреА рдЙрдореНрд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, Bourne shell рдЖрдЬ рднреА рдЕрдкрдиреА рдЧрддрд┐ рдФрд░ рдХреЙрдореНрдкреИрдХреНрдЯрдиреЗрд╕ рдХреЗ рдХрд╛рд░рдг рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, Bourne shell рдмрд╣реБрдд рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдкрдиреА
command historyрдпрд╛рдж рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ред рдЗрд╕рдореЗрдВ рд▓реЙрдЬрд┐рдХрд▓ рдФрд░ рдЕрд░рд┐рдердореЗрдЯрд┐рдХ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрд╛ рднреА рдЕрднрд╛рд╡ рд╣реИред┬аBourne рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
/bin/shрдФрд░/sbin/sh$#command-line
C shell, рдлрд╝рд╛рдЗрд▓рдирд╛рдо
csh, рдФрд░ рдЗрд╕рдХрд╛ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдлрд╝рд╛рдЗрд▓рдирд╛рдоtcsh, 70 рдХреЗ рджрд╢рдХ рдХреЗ рдЙрддреНрддрд░рд╛рд░реНрдз рдХрд╛ рдПрдХ рдФрд░ Unix shell рд╣реИред рдЗрд╕реЗ рдЙрд╕ рд╕рдордп рдХреИрд▓рд┐рдлрд╝реЛрд░реНрдирд┐рдпрд╛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп, рдмрд░реНрдХрд▓реЗ рдХреЗ рд╕реНрдирд╛рддрдХ рдЫрд╛рддреНрд░ Bill Joy рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ред┬аBourne shell рдХреЗ рд╡рд┐рдкрд░реАрдд, C shell рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╣реИ рдФрд░
command historyрдФрд░aliasesрдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред C shells рдореЗрдВ C-рдЬреИрд╕рд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдмрд┐рд▓реНрдЯ-рдЗрди рдЕрд░рд┐рдердореЗрдЯрд┐рдХ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИредcommand-line рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:┬а
/bin/csh%#KornShell
KornShell, рдлрд╝рд╛рдЗрд▓рдирд╛рдо
ksh, 1980 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ Bell Labs рдХреЗ David Korn рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред KornShell рдореЗрдВ C shell рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ, рдФрд░ рдпрд╣ Bourne shell рдХрд╛ рд╕реБрдкрд░-рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдмреИрдХрд╡рд░реНрдб-рдХрдореНрдкреИрдЯрд┐рдмрд▓ рд╣реИред┬аKornShell, C-shell рд╕реЗ рддреЗрдЬрд╝ рдЪрд▓рддрд╛ рд╣реИред рдпрд╣ Bourne shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ C-рдЬреИрд╕реА arrays, functions рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ-рдореИрдиреАрдкреБрд▓реЗрд╢рди рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдореЗрдВ рдмрд┐рд▓реНрдЯ-рдЗрди рдЕрд░рд┐рдердореЗрдЯрд┐рдХ рд╣реИред┬а
KornShell рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
/bin/kshGNU Bourne-Again shell
GNU Bourne-Again, рдпрд╛ Bash, shell, Bourne shell рдХрд╛ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЗрд╕реЗ Brian Fox рдиреЗ GNU рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдерд╛ рдФрд░ 1989 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рди рдХреЗрд╡рд▓ Bourne shell рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕рдВрдЧрдд рд╣реИ, рдмрд▓реНрдХрд┐ KornShells рдФрд░ C shells рдХреА рдХрдИ рдмреЗрд╣рддрд░реАрди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рднреА рд▓реЗрддрд╛ рд╣реИред GNU Bourne-Again shell рдореЗрдВ рд╕рдВрдкрд╛рджрди рдФрд░ рдХрдорд╛рдВрдб рд░рд┐рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрд░реЛ рдХреАрдЬрд╝ рдСрдЯреЛрдореИрдЯрд┐рдХрд▓реА рдореИрдкреНрдб рд╣реЛрддреА рд╣реИрдВред┬а
GNU Bourne-Again рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
/bin/bashbash-x.xx$┬аbash-x.xx#Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИ
рдпрд╣ рдЙрдкрдорд╛ рдереЛрдбрд╝реА рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХреЗ рд▓рд┐рдП рдСрдЯреЛрдлрд┐рд▓ рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВред рдХреАрдмреЛрд░реНрдб рдкрд░ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, shell рдПрдХрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдореЗрдВ рдХрдорд╛рдВрдбреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рд╛рдЗрд▓рдирд╛рдо рд╕реЗ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХреНрдЬреАрдХреНрдпреВрд╢рди, рдЯреЗрдХреНрд╕реНрдЯ рд░реИрдкрд┐рдВрдЧ рдФрд░ рдлрд╛рдЗрд▓ рдореИрдиреАрдкреБрд▓реЗрд╢рди рдХрд░рддреА рд╣реИрдВред┬а
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХрдИ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рдбрд┐рд╕реНрдХ рдЙрдкрдпреЛрдЧ рдЬреИрд╕реА рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ, рдмреИрдХрдЕрдк рд▓реЗрдирд╛, рдХрдорд╛рдВрдб рдЯреВрд▓ рдмрдирд╛рдирд╛, рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдирд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдХреЛ рдЖрдкрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛, рдмреИрдЪ рдкреВрд░реЗ рдХрд░рдирд╛ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
Shell рдХреЗ рдореБрдЦреНрдп рд╡рд┐рдХрд▓реНрдк
IBM рдХреЗ VM рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрдиреНрд╣реЗрдВ EXEC рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; DOS рдореЗрдВ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдмреИрдЪ рдлрд╛рдЗрд▓реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпреЗ рдЕрдм рднреА shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реА рд╣реИрдВред рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдБ, рдЬреИрд╕реЗ Javascript, Python, Perl рдФрд░ TCL рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдБ рд╣реИрдВред рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рдЕрдкрдиреА-рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рд╣рдо рдЖрдЧреЗ shells рдХреЗ рдлрд╛рдпрджреЗ-рдиреБрдХрд╕рд╛рди рдкрд░ рдЖрдПрдБрдЧреЗред┬а
Shell рдЗрддрдирд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрдпреЛрдВ рд╣реИ?
Shell рд▓рдЧрднрдЧ рд╣рд░ OS рдкрд░ рдЖрдо рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрд╢рд▓ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рдпрдорд┐рдд рдмреИрдХрдЕрдк рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдЗрд╕рдХреЗ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдкрдбрд╝реЗред┬а
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрджрд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реЛрддреА рдХреНрдпреЛрдВрдХрд┐ shell рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдХрдорд╛рдВрдбреНрд╕ рд╡рд╣реА рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдФрд░ рддреЗрдЬрд╝ рд╣реИ: рдпреЗ рдЬрд▓реНрджреА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдЗрдиреНрд╣реЗрдВ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред┬а
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреА рдХрдорд┐рдпрд╛рдБ рдХреНрдпрд╛ рд╣реИрдВ?
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реЛрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдкрд░ рдЙрдирдХрд╛ рдирд┐рджрд╛рди рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред Shells рдЬрдЯрд┐рд▓ рдпрд╛ рдмрдбрд╝реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рдЙрдирдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдзреАрдорд╛ рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, shells рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдирд╣реАрдВ рджреЗрддреАрдВ, рдФрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдпрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдЦрд╛рдорд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред┬а
Shell рдХрдм рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛?
рдкрд╣рд▓реА shell рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1960 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ MIT рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реНрдЯрд╛рдл рд╕рджрд╕реНрдп Louis Pouzin рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред рдЙрдирдХреА рдкрд╣рд▓реА рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди
RUNCOMрдереА, рдЬрд┐рд╕рдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХреЛ рдХреЙрдореНрдкрд╛рдЗрд▓рд┐рдВрдЧ, рдЕрдкрдбреЗрдЯрд┐рдВрдЧ, рд░реАрдиреЗрдорд┐рдВрдЧ рдФрд░ рдореВрд╡рд┐рдВрдЧ рдЬреИрд╕реЗ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдореБрдХреНрддрд┐ рджрд┐рд▓рд╛рдИред┬ард╣рд╛рд▓рд╛рдБрдХрд┐ Pouzin рдХрдВрдкреНрдпреВрдЯрд░ рднрд╛рд╖рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рдереЗ, рдпрд╛ рд╢рд╛рдпрдж рдЗрд╕реА рд╡рдЬрд╣ рд╕реЗ, рд╡реЗ рдорд╛рдирддреЗ рдереЗ рдХрд┐ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрдиреНрд╕ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рднрд╛рд╖рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред┬а
1960 рдХреЗ рджрд╢рдХ рдХреЗ рдордзреНрдп рддрдХ, Pouzin рдиреЗ рдмреНрд░рд┐рдЯрд┐рд╢ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ Christopher Strachey рдХреЗ рд╕рд╛рде рд╣рд╛рде рдорд┐рд▓рд╛рдпрд╛ред Strachey рдиреЗ рдПрдХ рдореИрдХреНрд░реЛ-рдЬрдирд░реЗрдЯрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬреЛ Pouzin рдХреА рдХрдорд╛рдВрдб рднрд╛рд╖рд╛ рдХрд╛ рдЖрдзрд╛рд░ рдмрдирд╛, рдЬреЛ рдЙрд╕ рд╕рдордп рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ Multics рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрд▓рддреА рдереАред┬а
Shell рдХреЛ рдЗрд╕рдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рдорд┐рд▓рд╛
Pouzin рдиреЗ рдЕрдкрдиреА рдирдИ рднрд╛рд╖рд╛ рдХрд╛ рдирд╛рдо тАЬshellтАЭ рд░рдЦрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдмрд╕реЗ рдмрд╛рд╣рд░реА рдкрд░рдд рд╣реИред┬а
Shell рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
Shells рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рдХрд┐ рд╡реЗ рдмреБрдирд┐рдпрд╛рджреА рд╣реИрдВред Shells рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
Shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред рдХрдорд╛рдВрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, shells рдлреЛрд░рдЧреНрд░рд╛рдЙрдВрдб рдпрд╛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред рдлреЛрд░рдЧреНрд░рд╛рдЙрдВрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрддреА рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред┬а
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд╕реНрдХреНрд░реАрди рдкрд░ рдирд╣реАрдВ рджрд┐рдЦрддреАрдВ рдФрд░ рдЧреИрд░-рдЕрдиреБрдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓ рд╕рдХрддреА рд╣реИрдВред рдХрд┐рд╕реА shell рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдРрдВрдкрд░рд╕реИрдВрдб (&) рдЬреЛрдбрд╝рдирд╛ рд╣реЛрддрд╛ рд╣реИред┬а
рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рдВрд╕
рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рдВрд╕ рд╕рд┐рд╕реНрдЯрдореНрд╕ рдХреЛ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрдорд╛рдВрдб рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рдЕрдВрд╢ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
*рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ) рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред?рдПрдХрд▓ рдЕрдХреНрд╖рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ,[example]рдХрд┐рд╕реА рднреА рдЕрдХреНрд╖рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (тАЬexampleтАЭ рд╕рд┐рд░реНрдл рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ) рдФрд░[1-9](рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг) shell рдХреЛ рджрд┐рдП рдЧрдП рд░реЗрдВрдЬ рдХреЗ рднреАрддрд░ рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИред┬ардХрдорд╛рдВрдб рдПрд▓рд┐рдпрд╛рд╕
Shell рдПрд▓рд┐рдпрд╛рд╕ рд╢реЙрд░реНрдЯрдХрдЯ рдХрдорд╛рдВрдбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред рдХреБрдЫ рдПрд▓рд┐рдпрд╛рд╕ рдПрдХ рд╢рдмреНрдж рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдПрдХ рд╣реА рдЕрдХреНрд╖рд░ рдХреЗред рдПрд▓рд┐рдпрд╛рд╕ рдХреА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓
┬╖aliasрджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИредрдХрдорд╛рдВрдб рд╣рд┐рд╕реНрдЯреНрд░реА
Shells рд╕рдордп рдФрд░ рдореЗрд╣рдирдд рдмрдЪрд╛рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рджреЗрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕рдХреА рдХрдорд╛рдВрдб рд╣рд┐рд╕реНрдЯреНрд░реА рд╣реИред рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп,
historyрдХрдорд╛рдВрдб рдЙрд╕ рд╕рддреНрд░ рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╕рднреА рдХрдорд╛рдВрдбреНрд╕ рджрд┐рдЦрд╛рддреА рд╣реИредрдлрд╝рд╛рдЗрд▓рдирд╛рдо рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рди
рдлрд╝рд╛рдЗрд▓рдирд╛рдо рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рди рдХреЛ тАЬglobbingтАЭ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдХрд┐рд╕реА рд╢рдмреНрдж рдореЗрдВ
?,*, рдпрд╛[рдЬреИрд╕реЗ рдЕрдХреНрд╖рд░ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ рд╡рд╣~рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ shell рдЙрд╕ рд╢рдмреНрдж рдХреЛ рдПрдХ рдкреИрдЯрд░реНрди рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдЧреА рдФрд░ рдЙрд╕реЗ рдЙрд╕ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рд╛рдЗрд▓рдирд╛рдореЛрдВ рдХреА рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕реВрдЪреА рд╕реЗ рдмрджрд▓ рджреЗрдЧреАред┬ардЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ рд░реАрдбрд╛рдпрд░реЗрдХреНрд╢рди┬а
рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ (i/o) рд░реАрдбрд╛рдпрд░реЗрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдорд╛рдирдХ рдЗрдирдкреБрдЯ (stdin) рдФрд░ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ (stdout) рдХреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реНрдХреНрд░реАрди, рдХреАрдмреЛрд░реНрдб рдпрд╛ рдХрд┐рд╕реА рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред┬а
рдкрд╛рдЗрдкрд┐рдВрдЧ
Shell рдкрд╛рдЗрдкрд┐рдВрдЧ рд░реАрдбрд╛рдпрд░реЗрдХреНрд╢рди рдХрд╛ рдПрдХ рдФрд░ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдХрдорд╛рдВрдб/рдкреНрд░реЛрд╕реЗрд╕/рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рджреВрд╕рд░реЗ рдХрдорд╛рдВрдб/рдкреНрд░реЛрд╕реЗрд╕/рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХрдорд╛рдВрдбреНрд╕/рдкреНрд░реЛрд╕реЗрд╕реЗрд╕/рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛ рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрд┐рдирд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реНрдХреНрд░реАрди рдпрд╛ рдЕрд╕реНрдерд╛рдпреА рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдЧреБрдЬрд╝рд░реЗ рд▓рдЧрд╛рддрд╛рд░ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИред┬а
Shell рд╡реЗрд░рд┐рдПрдмрд▓ рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рди
рдЬрдм shell рдХрд┐рд╕реА рдРрд╕реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рд╕реЗ рдорд┐рд▓рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдЕрдХреНрд╖рд░ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рдХреЛрдб рдХреЛ рдРрд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкрд╣рдЪрд╛рди рдпреЛрдЧреНрдп рд╣реЛред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрд╢рдВрд╕ рдпрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред┬а
рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рднреА рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рди рдирд╣реАрдВ рдкрддрд╛ рд╣реИрдВ, рддреЛ рд╡реЗ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рддрдХ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред┬а
Shells рдореЗрдВ рднрд┐рдиреНрдирддрд╛рдПрдБ
рдореБрдЦреНрдпрддрдГ рджреЛ рддрд░рд╣ рдХреЗ shells рд╣реИрдВ, тАЬshтАЭ рдФрд░ тАЬbashтАЭред рджреЛрдиреЛрдВ Unix рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рднреАрддрд░ рдЪрд▓рддреЗ рд╣реИрдВред Shell рдХрд┐рд╕реА рднреА shell рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рд╣реИред рдирд╛рдо рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ, bash (Bourne Again Shell) рдПрдХ рдЙрдиреНрдирдд рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд shell рд╣реИред┬а
Bash рдЕрдзрд┐рдХ рдлрд╝рдВрдХреНрд╢рдиреИрд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреЙрдм рдХрдВрдЯреНрд░реЛрд▓ рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, sh рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдХрдорд╛рдВрдб рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред Sh рдХрдорд╛рдВрдб рд╣рд┐рд╕реНрдЯреНрд░реА рд╕рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛; рдЗрд╕рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХрд┐рд╕реА рднреА shell рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИред┬а┬а
рд╕рд╛рд▓-рджрд░-рд╕рд╛рд▓ Shell рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИ
рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, shells рд╡рд┐рдХрд╕рд┐рдд рднреА рд╣реБрдП рд╣реИрдВ рдФрд░ рдХрд╛рдлреА рд╣рдж рддрдХ рд╡рд╣реА рднреА рдмрдиреЗ рд░рд╣реЗ рд╣реИрдВред Bourne shell рдореВрд▓ Thompson shell рд╕реЗ рдЖрдЧреЗ рдХрд╛ рдмрдбрд╝рд╛ рдХрджрдо рдерд╛, рд▓реЗрдХрд┐рди рдХрдИ рдореВрд▓рднреВрдд рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЕрдм рднреА рдмрдиреЗ рд╣реБрдП рд╣реИрдВред рдмреЗрд╢рдХ, рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рд╣рдорд╛рд░реА рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ рджреЛрдиреЛрдВ рдмрджрд▓ рдЪреБрдХреА рд╣реИрдВред┬а
рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЬрд┐рддрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рдЙрддрдиреЗ shells рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ; рд▓реЗрдХрд┐рди рдмреБрдирд┐рдпрд╛рджреА рддреМрд░ рдкрд░ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ shells рд╣реИрдВ тАУ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрдиреНрд╕ рдпрд╛ Bourneред рдмрд╛рдХреА рд╕рдм рдПрдХ рдмреЛрд▓реА рд╣реИ, рдЕрд▓рдЧ рднрд╛рд╖рд╛ рдирд╣реАрдВред┬а
Unix shells
Unix shells рдореВрд▓ рд╣реИрдВ рдФрд░ рдЕрдм рднреА рдордЬрд╝рдмреВрддреА рд╕реЗ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред Unix shells, Unix рдФрд░ Unix-рд╕рдВрдмрдВрдзрд┐рдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдореНрд╕, рдЬреИрд╕реЗ Mac, рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред┬а┬а
command-lines
command-lines (csh) рд╕рдмрд╕реЗ рдЖрдо Unix shells рд╣реИрдВред command-lines рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдХрд╛рдо рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ aliases, cdpath, рдЬреЙрдм рдХрдВрдЯреНрд░реЛрд▓, рдкрд╛рде рд╣реИрд╢рд┐рдВрдЧ, рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реНрдЯреИрдХреНрд╕ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпреЗ рд╕рдВрдкрд╛рджрди рдФрд░ рд╣рд┐рд╕реНрдЯреНрд░реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рднреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
Tenex command-line
Tenex command-line (tcsh) рдХреЛ Caregia Melo University рдХреЗ Ken Greer рдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред┬а Tenex рдХреЛ рдореВрд▓ command-line рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмреЗрд╣рддрд░ рдорд╛рдирд╛ рдЧрдпрд╛ред рдореВрд▓ C рдХреЗ рд╡рд┐рдкрд░реАрдд, Tenex рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдПрдбрд┐рдЯрд┐рдВрдЧ рдФрд░ рдХрдореНрдкреНрд▓реАрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред 1981 рдореЗрдВ, tsch csh рдХреЗ рд╕рд╛рде рдорд░реНрдЬ рд╣реЛ рдЧрдпрд╛ред┬а
Korn shells
Korn shells (ksh) рдПрдХ рдФрд░ Unix shell рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ C рдФрд░ Bourne shells рдХреЗ рдмреАрдЪ рдПрдХ рддрд░рд╣ рдХрд╛ рд╕рдордЭреМрддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЗ рд╕рд╛рде рдмреИрдХрд╡рд░реНрдб рдХрдореНрдкреИрдЯрд┐рдмрд▓ рд╣реИред Korn shell 1980 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ Bell Labs рдХреЗ David Korn рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред┬а
Bourne again shells
Bourne Again shell (Bash) рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ Unix shell рд╣реИ рдЬрд┐рд╕реЗ 1990 рдХреЗ рджрд╢рдХ рдХреЗ рдЙрддреНрддрд░рд╛рд░реНрдз рдореЗрдВ Brian Fox рдиреЗ GNU рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП Bourne shell рдХреЗ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред┬а
Exotic shells
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпреЗ рд╕рднреА C рдпрд╛ Bourne shells рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдиреЗ рд╕реИрдХрдбрд╝реЛрдВ, рдпрджрд┐ рд╣рдЬрд╝рд╛рд░реЛрдВ рдирд╣реАрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреЛрд▓рд┐рдпрд╛рдБ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рд╣реИрдВред рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдорд╣рдЬрд╝ рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдПред┬а
Shell рдХреМрди рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ?
рд▓рдЧрднрдЧ рд╣рд░ рдХрдВрдкреНрдпреВрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ shell рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░реНрд╕, DevOps рдкреЗрд╢реЗрд╡рд░реЛрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдФрд░ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрджреЗрдордВрдж рд╣реИрдВред Shells рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ, рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ, рдбреЗрдЯрд╛ рдХрд╛ рдмреИрдХрдЕрдк рдпрд╛ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред┬а
Shell рдХреЗ рдЙрджрд╛рд╣рд░рдг
Shells рдЙрддрдиреЗ рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдпрд╛ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рддрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд╛рд╣реЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рдзрд╛рд░рдг bash рдЕрднрд┐рд╡рд╛рджрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
echo тАЬhello $USERтАЭ, рдЬрдмрдХрд┐ рдЬрдЯрд┐рд▓ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд▓рдЧрднрдЧ рдЕрд╕реАрдорд┐рдд рд╣реИрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:┬аbash рдореЗрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдПрдбрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред рдпрд╣рд╛рдБ рд╣рдо vi рдПрдбрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
$ vi example.shрдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'i' рдХреБрдВрдЬреА рджрдмрд╛рдПрдБ:
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП
bash example.sh┬ардХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ$vi example2.shbash example2.shрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВShell рдХреЗ рд╕рд╛рде рдХрд░рд┐рдпрд░
рдХрд░рд┐рдпрд░ рдкрд╛рде рдХреА рдмрдЬрд╛рдп, shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЛ рдПрдХ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреЗ рдФрдЬрд╝рд╛рд░реЛрдВ рдХреЗ рднрдВрдбрд╛рд░ рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рдЯреВрд▓ рдХреА рддрд░рд╣ рд╕рдордЭреЗрдВред рд╣рд░ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░реЛрдлреЗрд╢рдирд▓реНрд╕ рдХреЛ рдХрдИ рднрд╛рд╖рд╛рдПрдБ рдЬрд╛рдирдиреА рдЪрд╛рд╣рд┐рдП (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП), рдФрд░ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЙрдиреНрд╣реЗрдВ рдЗрди рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред┬а
рдлрд┐рд░ рднреА, рдХреБрдЫ рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рдРрд╕реЗ рд░реЛрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ shell рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд╕рдд рд╡реЗрддрди рд▓рдЧрднрдЧ $78,000 рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдП рддреЛ, shell рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдЬреИрд╕реЗ рд░реЛрд▓реНрд╕ рдХреА рдиреАрдВрд╡ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдЫрд╣ рдЕрдВрдХреЛрдВ рддрдХ рдХреЗ рд╡реЗрддрди рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред┬а
рдирд┐рд╖реНрдХрд░реНрд╖
Shell рд╣рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдЧреБрдВрдереА рд╣реБрдИ рдбреЛрд░ рдХреА рддрд░рд╣ рд╣реИред рдЬрдЯрд┐рд▓ рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕рд╣рдЬ рд╢реЙрд░реНрдЯрд╣реИрдВрдбреНрд╕ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред Shell рдХреЛ рд╕рдордЭрдирд╛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдЗрдВрдЬреАрдирд┐рдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╣рдо рдХреМрд╢рд▓ рд╣реИред DataCamp рдХреЗ Introduction to Shell рдХреЛрд░реНрд╕ рдореЗрдВ shell рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВред┬а