рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмреИрд╢ рдЪрд▓рд╛рдирд╛

рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рдкреГрд╖реНрда рдЦреЛрдЬ рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрднрд╡рддрдГ рдмреИрд╢ рдЪрд▓рд╛рдиреЗ рдХреА рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╢рд╛рдпрдж рдЖрдкрдХрд╛ рдмреИрд╢ рд╡рд╛рддрд╛рд╡рд░рдг рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЖрдк рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпреЛрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдмреИрд╢ рдмреВрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рдЕрдЯрдХрд╛ рджрд┐рдпрд╛ рд╣реЛ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред

рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕ рдиреЛрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдмреИрд╢ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯ рд╕рдХреЗрдВред

╨Ф╨╕╨░╨│╤А╨░╨╝╨╝╨░

рдпрд╣ рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯ рдмреИрд╢ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджреЗрддрд╛ рд╣реИред

рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмреИрд╢ рдЪрд▓рд╛рдирд╛

рдЖрдЗрдП рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рд▓реЙрдЧрд┐рди рд╢реИрд▓?

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рд╡рд╣ рдкрд╣рд▓рд╛ рд╢реЗрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдХрд┐рд╕реА рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╕рдордп рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдлрд╝реНрд▓реИрдЧ рдЬреЛрдбрд╝рдХрд░ рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ --login рдЬрдм рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ bash, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдмреИрд╢ - рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ

рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдмреИрд╢ рд╢реЗрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдмреЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡?

рдлрд┐рд░ рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╢реЗрд▓ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдЗрд╕реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ PS1 (рдпрд╣ рдХрдорд╛рдВрдб рдЗрдирдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ):

рдпрджрд┐ [ "${PS1-}" ]; рдлрд┐рд░ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдХреЛ рдЗрдХреЛ рдХрд░реЗрдВ рдЕрдиреНрдпрдерд╛ рдиреЙрди-рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдлрд╛рдИ рдХреЛ рдЗрдХреЛ рдХрд░реЗрдВ

рдпрд╛ рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВ -i, рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╣рд╛рдЗрдлрд╝рди рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ - рдмреИрд╢ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

$рдЧреВрдВрдЬ$-

рдпрджрд┐ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХреЛрдИ рдкреНрд░рддреАрдХ рд╣реИ i, рддреЛ рд╢реЗрд▓ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╣реИред

рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ?

рдпрджрд┐ рдЖрдк рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ рд╣реИрдВ, рддреЛ рдмреИрд╢ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ /etc/profile рдФрд░ рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ рддреЛ рдЪрд▓рддрд╛ рд╣реИред

рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдореЗрдВ рдЗрди рддреАрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЦреЛрдЬреЗрдВ:

~/.bash_profile ~/.bash_login ~/.profile

рдЬрдм рдЙрд╕реЗ рдПрдХ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЙрд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред

рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рдореЗрдВ?

рдпрджрд┐ рдЖрдк рдПрдХ рдЧреИрд░-рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ рд╣реИрдВ, рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛ред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдпрджрд┐ рд╡реЗ рдореМрдЬреВрдж рд╣реИрдВ:

/etc/bash.bashrc ~/.bashrc

рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ?

рдпрджрд┐ рдЖрдк рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдпрд╛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрд╛рд▓реА рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ рдмрд╣реБрдд рднреНрд░рдо рд╣реЛрддрд╛ рд╣реИ (рдХреНрд░реЙрди рдЬреЙрдмреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмреИрд╢ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ BASH_ENV рдЖрдкрдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рд╡рд╣рд╛рдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдФрд░ рдЕрдВрдЧреВрдареЗ рдХреЗ рдирд┐рдпрдо

рдХреНрд░реЙрди рдиреМрдХрд░рд┐рдпрд╛рдБ

95% рдмрд╛рд░ рдореИрдВ рдмреИрд╢ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЛ рдбрд┐рдмрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд░реЙрди рдЬреЙрдм рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рдХрд╛рдо рд╣реИ рдЬрдм рдореИрдВ рдЗрд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЗрд╕реЗ рдХреНрд░реЛрдВрдЯреИрдм рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ.

рдпрд╣рд╛рдВ рджреЛ рдХрд╛рд░рдг:

  • рдХреНрд░реЙрди рдЬреЙрдмреНрд╕ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИрдВред
  • рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХреНрд░реЙрди рдЬреЙрдмреНрд╕ рд╢реЗрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЖрдорддреМрд░ рдкрд░ рдЖрдк рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗ рдпрд╛ рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╕рдмрдХреБрдЫ PATH ╨╕ alias рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЕрдХреНрд╕рд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ PATH рдпрд╣рд╛рдВ рдЬреИрд╕реЗ рдХреНрд░реЙрди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП:

* * * * * рдкрде=${рдкрде}:/рдкрде/рд╕реЗ/рдореЗрд░рд╛/рдкреНрд░реЛрдЧреНрд░рд╛рдо/рдлрд╝реЛрд▓реНрдбрд░ рдореЗрд░рд╛рдкреНрд░реЛрдЧреНрд░рд╛рдо

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реА рд╣реИрдВ

рдПрдХ рдФрд░ рдЖрдо рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧрд▓рддреА рд╕реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, /etc/profile рдЖрд╡реЗрджрди рдХрд░реЛ ~/.bashrc.

рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдиреЗ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрдм рдЖрдкрдХреЛ рдЗрди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рддреНрд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдирдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред

рд╕реИрдВрдбрдмреЙрдХреНрд╕реНрдб рдбреЙрдХрд░ рдЫрд╡рд┐

рд╢реЗрд▓ рдЪрд▓рд╛рдиреЗ рдХреЗ рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдбреЙрдХрд░ рдЫрд╡рд┐ рдмрдирд╛рдИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╢реЗрд▓ рдЪрд▓рд╛рдиреЗ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╢реБрд░реВ рдХрд░рдирд╛:

$ docker run -n bs -d imiell/bash_startup
$ docker exec -ti bs bash

рдбреЙрдХрд░рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рдд рд╣реИ рдпрд╣рд╛рдВ.

рд▓реЙрдЧрд┐рди рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдФрд░ рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

$ bash --login

рдЪрд░реЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП BASH_ENV:

$ env | grep BASH_ENV

рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП crontab рд╣рд░ рдорд┐рдирдЯ (рдореЗрдВ) рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рдПрдЧреА /root/ascript):

$ crontab -l
$ cat /var/log/script.log

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ