рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рдкреГрд╖реНрда рдЦреЛрдЬ рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрднрд╡рддрдГ рдмреИрд╢ рдЪрд▓рд╛рдиреЗ рдХреА рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╢рд╛рдпрдж рдЖрдкрдХрд╛ рдмреИрд╢ рд╡рд╛рддрд╛рд╡рд░рдг рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЖрдк рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпреЛрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдмреИрд╢ рдмреВрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рдЕрдЯрдХрд╛ рджрд┐рдпрд╛ рд╣реЛ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред
рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕ рдиреЛрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдмреИрд╢ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯ рд╕рдХреЗрдВред
╨Ф╨╕╨░╨│╤А╨░╨╝╨╝╨░
рдпрд╣ рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯ рдмреИрд╢ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджреЗрддрд╛ рд╣реИред
рдЖрдЗрдП рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рд▓реЙрдЧрд┐рди рд╢реИрд▓?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред
рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рд╡рд╣ рдкрд╣рд▓рд╛ рд╢реЗрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдХрд┐рд╕реА рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╕рдордп рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдк рдлрд╝реНрд▓реИрдЧ рдЬреЛрдбрд╝рдХрд░ рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ --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