рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдБ

Shell рдХреНрдпрд╛ рд╣реИ?

рдЬрд╛рдиреЗрдВ рдХрд┐ Shell рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реАрдЦрдирд╛ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдФрд░ рдмрд╣реБ-рдЖрдпрд╛рдореА рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред
Wendy Gittleson
Wendy Gittleson

рдЕрдкрдирд╛ рдирд┐рдГрд╢реБрд▓реНрдХ рдЦрд╛рддрд╛ рдмрдирд╛рдПрдБ

рдЕрднреНрдпрд╛рд╕ рдФрд░ рдЯреНрд░реИрдХ рдЕрдкрдиреА рдкреНрд░рдЧрддрд┐ рдХреЛред

Google рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦреЗрдВрдЬрд╛рд░реА рд░рдЦрдХрд░, рдЖрдк рд╣рдорд╛рд░реА рдЙрдкрдпреЛрдЧ рдХреА рд╢рд░реНрддреЗрдВ, рд╣рдорд╛рд░реА рдЧреЛрдкрдиреАрдпрддрд╛ рдиреАрддрд┐ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рднреА рдХрд┐ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ USA рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред

рдХрдВрдкреНрдпреВрдЯрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧреНрд░рд╛рдлрд╝рд┐рдХ

рдпрджрд┐ рдЖрдк 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 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗрдВред┬а

Shell FAQ's

рдХрд░реНрдиреЗрд▓ рдХреНрдпрд╛ рд╣реИ?

рдХрд░реНрдиреЗрд▓ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рднрд╛рдЧ рд╣реИред рдХрд░реНрдиреЗрд▓ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рдореЗрдореЛрд░реА рдФрд░ рд╕рдордп рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓реНрд╕ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╕рдВрдЪрд╛рд░ рдФрд░ рдлрд╛рдЗрд▓-рд╕реНрдЯреЛрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред┬а

Shell рдХреНрдпрд╛ рд╣реИ?

Shell рдХрд░реНрдиреЗрд▓ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреАрдЪ рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред┬а

Shell рдХреЗ рдлрд╛рдпрджреЗ рдХреНрдпрд╛ рд╣реИрдВ?

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ shell рдХреБрд╢рд▓ рд╣реИ рдФрд░ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдИ рдЙрдмрд╛рдК рдХрд╛рдо рд╕рдВрднрд╛рд▓ рд▓реЗрддрд╛ рд╣реИ; рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, shells рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреА рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВред┬а

Shell рдХреЗ рдиреБрдХрд╕рд╛рди рдХреНрдпрд╛ рд╣реИрдВ?

рдПрдХ рдЫреЛрдЯреА-рд╕реА рдЧрд▓рддреА рднреА рдмрд╣реБрдд рдорд╣рдВрдЧреА рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдкрд╣рдЪрд╛рдирдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, shells рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдореНрд╕ рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рдЬрд╝реНрдпрд╛рджрд╛ рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд╣реАрдВ рд╣реИрдВред┬а

Unix рдФрд░ Linux рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?

Linux, Linus Torvalds рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ Unix рдХреНрд▓реЛрди рд╣реИред Linux рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдПрдХ рдХрд░реНрдиреЗрд▓ рд╣реИред рдЬрдмрдХрд┐ Unix рдореЗрдВ рдХрд░реНрдиреЗрд▓, shell рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред┬а

Linux рдФрд░ Unix рд╕рд┐рд╕реНрдЯрдореНрд╕ рдкрд░ рдЖрдо рддреМрд░ рдкрд░ рдХреМрди рд╕реЗ shells рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ?

Bash, рдпрд╛ Bourne Again shell, рд╕рдмрд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ shell рд╣реИ, рд▓реЗрдХрд┐рди Linux рдФрд░ Unix рджреЛрдиреЛрдВ command-lines, KornShells рдФрд░ TCSH рдХреЛ рднреА рд╕рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

Shell рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреНрдпрд╛ рд╣реИ?

рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдореЗрдВ, рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдорддрд▓рдм рд╢рдмреНрджреЛрдВ рдФрд░ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рд╕реЗ рд╣реИред Shell рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд╣реБрдд рдорд┐рд▓рддреА-рдЬреБрд▓рддреА рд╣реИ; рдпрд╣ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЗ рдХреНрд░рдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИред

рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреНрдпрд╛ рд╣реИ?

рдПрдХ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░, рдПрдХ-рдПрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдорд╢реАрди рдХреЛрдб рдореЗрдВ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯ рдХрд░рддрд╛ рд╣реИред┬а

рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреНрдпрд╛ рд╣реИ?

рдПрдХ рдХрдореНрдкрд╛рдЗрд▓рд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╢реАрди рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред┬а

рдЖрдк рдХрд┐рд╕реА shell рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ?

рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░реЗрдВ: chmod+x script-name-here.sh

рдлрд┐рд░ рдЗрд╕реЗ рдЪрд▓рд╛рдПрдБ: ./script-name-here.sh рдпрд╛ sh script-name-here.sh.

рд╡рд┐рд╖рдп