เชธเชพเชค เช…เชจเชชเซ‡เช•เซเชทเชฟเชค เชฌเซ‡เชถ เชšเชฒ

เชตเชฟเชถเซ‡ เชจเซ‹เช‚เชงเซ‹เชจเซ€ เชถเซเชฐเซ‡เชฃเซ€ เชšเชพเชฒเซ เชฐเชพเช–เชตเซ€ เช“เช›เชพ เชœเชพเชฃเซ€เชคเชพ เช•เชพเชฐเซเชฏเซ‹ bash, เชนเซเช‚ เชคเชฎเชจเซ‡ เชธเชพเชค เชšเชฒ เชฌเชคเชพเชตเซ€เชถ เชœเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชคเชฎเซ‡ เช•เชฆเชพเชš เชœเชพเชฃเชคเชพ เชจ เชนเซ‹เชต.

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 เชฎเซ‡เช‚ เช†เชจเซ‡ เช…เชนเซ€เช‚ เชšเชฒเชพเชตเซเชฏเซเช‚: 01/05/19 13:38:07 cat /etc/resolv.conf
1872 เชฎเซ‡เช‚ เช†เชจเซ‡ เช…เชนเซ€เช‚ เชšเชฒเชพเชตเซเชฏเซเช‚: 01/05/19 13:38:19 curl bbc.co.uk
1873 เชฎเซ‡เช‚ เช†เชจเซ‡ เช…เชนเซ€เช‚ เชšเชฒเชพเชตเซเชฏเซเช‚: 01/05/19 13:38:41 sudo vi /etc/resolv.conf
1874 เชฎเซ‡เช‚ เช†เชจเซ‡ เช…เชนเซ€เช‚ เชšเชฒเชพเชตเซเชฏเซเช‚: 01/05/19 13:39:18 curl -vvv bbc.co.uk
1876 โ€‹โ€‹เชฎเซ‡เช‚ เช†เชจเซ‡ เช…เชนเซ€เช‚ เชšเชฒเชพเชตเซเชฏเซเช‚: 01/05/19 13:39:25 sudo su -

เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฟเช‚เช— เชฎเชพเช‚เชฅเซ€ เช…เช•เซเชทเชฐเซ‹ เชธเชพเชฅเซ‡ เชฎเซ‡เชณ เช–เชพเชฏ เช›เซ‡ man date.

3) CDPATH

เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏ เชชเชฐ เชธเชฎเชฏ เชฌเชšเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เช†เชฆเซ‡เชถเซ‹ เชœเชพเชฐเซ€ เช•เชฐเซ‹ เชคเซ‡เชŸเชฒเซ€ เชธเชฐเชณเชคเชพเชฅเซ€ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เชฌเชฆเชฒเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเซ‡ เช† เชšเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เชœเซ‡เชตเซเช‚ PATH, เชšเชฒ CDPATH เชชเชพเชฅเชจเซ€ เช•เซ‹เชฒเซ‹เชจเชฅเซ€ เช…เชฒเช— เช•เชฐเซ‡เชฒเซ€ เชฏเชพเชฆเซ€ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹ เช›เซ‹ cd เชธเช‚เชฌเช‚เชงเชฟเชค เชชเชพเชฅ เชธเชพเชฅเซ‡ (เชเชŸเชฒเซ‡ โ€‹โ€‹โ€‹โ€‹เช•เซ‡ เช•เซ‹เชˆ เช…เช—เซเชฐเชฃเซ€ เชธเซเชฒเซ‡เชถ เชจเชฅเซ€), เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชถเซ‡เชฒ เชคเชฎเชพเชฐเชพ เชธเซเชฅเชพเชจเชฟเช• เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชฎเซ‡เชณ เช–เชพเชคเชพ เชจเชพเชฎเซ‹ เชฎเชพเชŸเซ‡ เชœเซเช เช›เซ‡. 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, เชœเซ‡ เช…เชคเซเชฏเชพเชฐ เชธเซเชงเซ€เชจเชพ เชธเชคเซเชฐเชฎเชพเช‚ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เชฅเชฏเซ‡เชฒเชพ เช†เชฆเซ‡เชถเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเซ€ เชœเชพเชฃ เช•เชฐเซ‡ เช›เซ‡:

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

เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹เชจเซ‡ เชกเชฟเชฌเช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช†เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เชฅเชพเชฏ เช›เซ‡. เชœเซ‡เชตเซ€ เชฐเซ‡เช–เชพเช“ เชฆเชพเช–เชฒ เช•เชฐเชตเซ€ echo DEBUG:$LINENO, เชคเชฎเซ‡ เชเชกเชชเชฅเซ€ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชคเชฎเซ‡ เชธเซเช•เซเชฐเชฟเชชเซเชŸเชฎเชพเช‚ เช•เซเชฏเชพเช‚ เช›เซ‹ (เช…เชฅเชตเชพ เชจเชนเซ€เช‚).

6) REPLY

เชœเซ‹, เชฎเชพเชฐเซ€ เชœเซ‡เชฎ, เชคเชฎเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช†เชจเชพ เชœเซ‡เชตเซ‹ เช•เซ‹เชก เชฒเช–เซ‹:

$ read input
echo do something with $input

เชคเซ‡ เช†เชถเซเชšเชฐเซเชฏเชœเชจเช• เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เชšเชฒ เชฌเชจเชพเชตเชตเชพ เชตเชฟเชถเซ‡ เชšเชฟเช‚เชคเชพ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€:

$ read
echo do something with $REPLY

เช† เชเช• เชœ เชตเชธเซเชคเซ เช•เชฐเซ‡ เช›เซ‡.

7) TMOUT

เชธเซเชฐเช•เซเชทเชพ เช•เชพเชฐเชฃเซ‹เชธเชฐ เชชเซเชฐเซ‹เชกเช•เซเชถเชจ เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เช–เซ‚เชฌ เชฒเชพเช‚เชฌเซ เชฐเชนเซ‡เชตเชพเชจเซเช‚ เชŸเชพเชณเชตเชพ เช…เชฅเชตเชพ เช–เซ‹เชŸเชพ เชŸเชฐเซเชฎเชฟเชจเชฒเชฎเชพเช‚ เช†เช•เชธเซเชฎเชฟเช• เชฐเซ€เชคเซ‡ เช•เช‚เชˆเช• เช–เชคเชฐเชจเชพเช• เชšเชฒเชพเชตเชตเชพเชจเซเช‚ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡, เช† เชตเซ‡เชฐเซ€เชเชฌเชฒเชจเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเซเช‚ เชฐเช•เซเชทเชฃ เชคเชฐเซ€เช•เซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡.

เชœเซ‹ เชธเซ‡เช•เช‚เชกเชจเซ€ เชธเซ‡เชŸ เชธเช‚เช–เซเชฏเชพ เชฎเชพเชŸเซ‡ เช•เช‚เชˆ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชจเชฅเซ€, เชคเซ‹ เชถเซ‡เชฒ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเซ€ เชœเชพเชฏ เช›เซ‡.

เชเชŸเชฒเซ‡ เช•เซ‡, เช† เชเช• เชตเชฟเช•เชฒเซเชช เช›เซ‡ sleep 1 && exit:

$ TMOUT=1

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹