์ ๋ํ ์ผ๋ จ์ ๋ฉ๋ชจ๋ฅผ ๊ณ์ํฉ๋๋ค.
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 cur bbc.co.uk 1873 ๋ด๊ฐ ์ด๊ฒ์ ์คํํ ์๊ฐ: : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 ๋ค์์์ ์คํํ์ต๋๋ค: 01/05/19 13:39:18 ์ปฌ -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
ํ์ฌ bash ์์์ ๋ค๋ฅธ "์์" ์๋ก ์ด๋ํฉ๋๊น, ์๋๋ฉด ์ฝ์ ์ฐฝ์ ์์ ํ ๋ซ์ต๋๊น?
์ด ๋ณ์๋ bash ์์ ์ผ๋ง๋ ๊น์ด ์ค์ฒฉ๋์ด ์๋์ง ์ถ์ ํฉ๋๋ค. ์ ํฐ๋ฏธ๋์ ์์ฑํ๋ฉด 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
์ถ์ฒ : habr.com