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

рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ рдкрд░ рдПрдХ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред
рд▓реЙрдЧ рдЗрди рд╢реЗрд▓?
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред
рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рд╡рд╣ рдкрд╣рд▓рд╛ рд╢реЗрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╕реЗрд╢рди рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╕рдордп рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
bash
рдкрд░ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЖрдк рд▓реЙрдЧ рд╢реЗрд▓ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ -
--login
рдлреНрд▓реИрдЧ рдХреЛ рдЬреЛрдбрд╝рдХрд░:
рдмреИрд╢ - рдСрд▓рдЧрд┐рди
рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдмреИрд╢ рд╢реЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдЖрдзрд╛рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡?
рддрдм рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╢реЗрд▓ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрд╣
PS1
рдЪрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдпрд╣ рдХрдорд╛рдВрдб рдЗрдирдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ):
рдЕрдЧрд░ ["$ {PS1-}"]; рддреЛ
рдЧреВрдВрдЬ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡
рдЕрдиреНрдпрдерд╛
рдЧреВрдВрдЬ рдЧреИрд░-рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ
рдлрд╛рдИ
рдпрд╛ рджреЗрдЦреЗрдВ рдХрд┐
-i
рд╡рд┐рдХрд▓реНрдк bash рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╣рд╛рдЗрдлрд╝рди рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
$ рдЧреВрдВрдЬ $ -
рдпрджрд┐ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ
i
рд╣реИ, рддреЛ рд╢реЗрд▓ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╣реИред
рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ?
рдпрджрд┐ рдЖрдк рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ рд╣реИрдВ, рддреЛ bash
/etc/profile
рдлрд╛рдЗрд▓ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдЪрд▓рд╛рддрд╛ рд╣реИред
рдлрд┐рд░ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдореЗрдВ рдЗрди рддреАрди рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдЦреЛрдЬрддрд╛ рд╣реИ:
~ / .bash_profile
~ / .рдмрд╛рд╢_рд▓реЛрдЧрд┐рди
~ /ред рд▓рд╛рднрдХрд╛рд░реА
рдЬрдм рдпрд╣ рдПрдХ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЦреЛрд▓ рдореЗрдВ?
рдпрджрд┐ рдЖрдк рдПрдХ рд▓реЙрдЧрд┐рди (рдЧреИрд░-рд▓реЙрдЧрд┐рди рд╢реЗрд▓) рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рдореЗрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдХрд╛ рджреМрд░рд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдирд┐рдореНрди рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рд╡реЗ рдореМрдЬреВрдж рд╣реИрдВ:
/etc/bash.bashrc
~ / .bashrc
рдПрдХ рднреА рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ?
рдпрджрд┐ рдЖрдк рди рддреЛ рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдореЗрдВ рд╣реИрдВ рдФрд░ рди рд╣реА рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рдореЗрдВ, рддреЛ рдЖрдкрдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рднреНрд░рдо рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ (рдиреАрдЪреЗ рдХреНрд░реЛрди рдиреМрдХрд░рд┐рдпрд╛рдВ рджреЗрдЦреЗрдВ)ред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдмреИрд╢ рдЖрдкрдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ
BASH_ENV
рдЪрд░ рдХреЛ
BASH_ENV
рд╣реИ рдФрд░ рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд╣рд╛рдБ рд╕реВрдЪреАрдмрджреНрдз рд╣реИред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдФрд░ рдЕрдВрдЧреВрдареЗ рдХреЗ рдирд┐рдпрдо
рдХреНрд░реЙрди рдЬреЙрдмреНрд╕
95% рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореИрдВ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдмреИрд╢ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдбрд┐рдмрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрд░реЛрди рдиреМрдХрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИредрдЬрдм рдореИрдВ рдЗрд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд▓рд╛рдирдд рдХрд╛рд░реНрдп
рдареАрдХ рдХрд╛рдо
рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЙрдиреНрдЯреИрдм рдореЗрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ ред
рдЗрд╕рдХреЗ
рджреЛ рдХрд╛рд░рдг рд╣реИрдВ :
- рдХреНрд░реЛрди рдиреМрдХрд░рд┐рдпрд╛рдВ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИрдВред
- рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдХреНрд░реЛрди рдиреМрдХрд░рд┐рдпрд╛рдВ рд╢реЗрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВред
рдЖрдорддреМрд░ рдкрд░ рдЖрдк рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдпрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА
PATH
рдФрд░
alias
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рдХреНрд░реЛрди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ
PATH
рд╕реЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдБ рд╣реИ:
* * * * * PATH = $ {PATH}: / path / to / my / program / folder myprogram
рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд▓рд┐рдкрд┐рдпрд╛рдБ
рдПрдХ рдФрд░ рдЖрдо рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧрд▓рддреА рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
/etc/profile
~/.bashrc
рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрдм рдЖрдкрдХреЛ рдЗрди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рддреНрд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдирдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИрдВред
рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдбреЙрдХрдЯрд░ рдЫрд╡рд┐
рд╢реЗрд▓ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдбреЙрдХрд░ рдЫрд╡рд┐ рдмрдирд╛рдИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рд╢реЗрд▓ рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЪрд▓ рд░рд╣рд╛ рд╣реИ:
$ docker run -n bs -d imiell/bash_startup $ docker exec -ti bs bash
Dockerfile
рдпрд╣рд╛рдБ рд╣реИ ред
рд▓реЙрдЧрд┐рди рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рдФрд░ рд▓реЙрдЧрд┐рди рд╢реЗрд▓ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
$ bash --login
рдЪрд░
BASH_ENV
рдХреЗ рд╕реЗрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
$ env | grep BASH_ENV
/root/ascript
рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
crontab
рд╕рд╛рдзрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣рд░ рдорд┐рдирдЯ (
/root/ascript
) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
$ crontab -l $ cat /var/log/script.log