рд╕рд╛рдд рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдмреИрд╢ рдЪрд░

рдХрдо-рдЬреНрдЮрд╛рдд рдмреИрд╢ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдиреЛрдЯреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рдЖрдкрдХреЛ рд╕рд╛рдд рдЪрд░ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реЛрдЧреАред

1) PROMPT_COMMAND


рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реАрдШреНрд░ рд╕рдВрдХреЗрдд рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХреИрд╕реЗ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рд╣рд░ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рд╢реАрдШреНрд░рддрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдПрдХ рд╢реЗрд▓ рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЗрд╕реЗ рдПрдХ рдирдП рд╢реЗрд▓ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рддреНрд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:

 $ PROMPT_COMMAND='echo -n "writing the prompt at " && date' 

2) HISTTIMEFORMAT


рдпрджрд┐ рдЖрдк рдХрдВрд╕реЛрд▓ рдореЗрдВ history рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдХреЗ рддрд╣рдд рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрдорд╛рдВрдб рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓реЗрдЧреАред

 $ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T ' 

рдЬреИрд╕реЗ рд╣реА рдпрд╣ рдЪрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирдП рд░рд┐рдХреЙрд░реНрдб рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕рдордп рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 1871 I ran this at: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 I ran this at: 01/05/19 13:38:19 curl bbc.co.uk 1873 I ran this at: 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 I ran this at: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 I ran this at: 01/05/19 13:39:25 sudo su - 

рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдореИрди рдбреЗрдЯ рд╕реЗ рд╡рд░реНрдгреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

3) CDPATH


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

PATH рддрд░рд╣, CDPATH рд╡реИрд░рд┐рдПрдмрд▓ рдкрдереЛрдВ рдХреА рдПрдХ рдЕрд▓рдЧ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реВрдЪреА рд╣реИред рдЬрдм рдЖрдк cd рдХреЛ рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде (рдЬреЛ рдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмрд┐рдирд╛ рд╕реНрд▓реИрд╢ рдХреЗ рд╣реИ) рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢реЗрд▓ рдЖрдкрдХреЗ рд╕реНрдерд╛рдиреАрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрддрд╛ рд╣реИред CDPATH рдЙрди рд░рд╛рд╕реНрддреЛрдВ рдореЗрдВ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ рдЬреЛ рдЖрдкрдиреЗ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рджрд┐рдП рд╣реИрдВ рдЬрд╣рд╛рдБ рдЖрдк рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ CDPATH рд╕реНрдерд╛рдкрд┐рдд CDPATH :

 $ CDPATH=/:/lib 

рдФрд░ рдлрд┐рд░ рджрд░реНрдЬ рдХрд░реЗрдВ:

 $ cd /home $ cd tmp 

рддрдм рдЖрдк рд╣рдореЗрд╢рд╛ рдЬрд╣рд╛рдБ рднреА рд╣реЛрдВ, рдЖрдк рд╣рдореЗрд╢рд╛ /tmp рдореЗрдВ рд░рд╣реЗрдВрдЧреЗред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рд╕реВрдЪреА рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдп ( . ) рдлрд╝реЛрд▓реНрдбрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп tmp рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЙрд╕ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 $ cd /home $ mkdir tmp $ cd tmp $ pwd /tmp 

рдКрдкреНрд╕!

рдпрд╣ рдЙрд╕ рднреНрд░рдо рдХреЗ рд╕рдорд╛рди рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдерд╛ рдЬрдм рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рд╣реБрдЖ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд PATH рдЪрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ... рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕реЗ PATH рдЪрд░ рдореЗрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рдПрдХ рдирдХрд▓реА рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ рдЖрдкрдХреЛ рдзреЛрдЦрд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ:

 CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt 

4) SHLVL


рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ exit рдкрд░ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдмреИрд╢ рд╢реЗрд▓ рд╕реЗ рджреВрд╕рд░реЗ "рдкреИрд░реЗрдВрдЯ" рд╢реЗрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдХрдВрд╕реЛрд▓ рд╡рд┐рдВрдбреЛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛?

рдпрд╣ рдЪрд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рддрдиреА рдЧрд╣рд░рд╛рдИ рд╕реЗ рдмреИрд╢ рд╢реЗрд▓ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИрдВред рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ 1 рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ:

 $ echo $SHLVL 1 

рдлрд┐рд░, рдпрджрд┐ рдЖрдк рдПрдХ рдФрд░ рд╢реЗрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ:

 $ bash $ echo $SHLVL 2 

рдпрд╣ рдЙрди рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╛ рдЬрд╣рд╛рдБ рдЖрдк рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рд╣реИрдВ, рд╡рд╣рд╛рдБ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рд╣реИред

5) LINENO


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, LINENO рд╡реЗрд░рд┐рдПрдмрд▓ LINENO , рдЬреЛ рд╕рддреНрд░ рдХреА рддрд╛рд░реАрдЦ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЖрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ:

 $ bash $ echo $LINENO 1 $ echo $LINENO 2 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред echo DEBUG:$LINENO рдЬреИрд╕реА echo DEBUG:$LINENO , рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЬрд┐рд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣реИрдВ (рдпрд╛ рдирд╣реАрдВ)ред

6) REPLY


рдпрджрд┐, рдореЗрд░реА рддрд░рд╣, рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

 $ read input echo do something with $input 

рдпрд╣ рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдЪрд░ рдмрдирд╛рдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП:

 $ read echo do something with $REPLY 

рдпрд╣ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИред

7) TMOUT


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

рдпрджрд┐ рд╕реЗрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рднреАрддрд░ рдХреБрдЫ рднреА рджрд░реНрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╢реЗрд▓ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣реА рд╣реИ, рдпрд╣ sleep 1 && exit рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ sleep 1 && exit :

 $ TMOUT=1 

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


All Articles