рдмреИрд╢ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╢реБрднрд╛рд░рдВрдн

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

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

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдиреЛрдЯ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ 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 

Source: https://habr.com/ru/post/hi452410/


All Articles