๊ฒ์์์ ์ด ํ์ด์ง๋ฅผ ์ฐพ์๋ค๋ฉด ์๋ง๋ bash ์คํ๊ณผ ๊ด๋ จ๋ ์ผ๋ถ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ ๊ฒ์ ๋๋ค.
์๋ง๋ ๊ทํ์ bash ํ๊ฒฝ์ด ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ง ์๊ณ ๊ทธ ์ด์ ๋ฅผ ์ดํดํ์ง ๋ชปํ ์๋ ์์ต๋๋ค. ์๋ํ ๋๊น์ง ๋ค์ํ bash ๋ถํ ํ์ผ์ด๋ ํ๋กํ ๋๋ ๋ชจ๋ ํ์ผ์ ๋ฌด์์๋ก ๋ฌด์ธ๊ฐ๋ฅผ ์ง์ด๋ฃ์์ ์ ์์ต๋๋ค.
์ด์จ๋ ์ด ๋ ธํธ์ ์์ ์ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก bash๋ฅผ ์์ํ๋ ์ ์ฐจ๋ฅผ ๊ฐ๋ฅํ ํ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๋ ๊ฒ์ ๋๋ค.
ะะธะฐะณัะฐะผะผะฐ
์ด ์์๋๋ bash๋ฅผ ์คํํ ๋์ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ์์ฝํฉ๋๋ค.
์ด์ ๊ฐ ๋ถ๋ถ์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ก๊ทธ์ธ ์?
๋จผ์ ๋ก๊ทธ์ธ ์์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
๋ก๊ทธ์ธ ์์ ๋ํํ ์ธ์
์ ๋ก๊ทธ์ธํ ๋ ์
๋ ฅํ๋ ์ฒซ ๋ฒ์งธ ์์
๋๋ค. ๋ก๊ทธ์ธ ์์๋ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๊ฐ ํ์ํ์ง ์์ต๋๋ค. ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ ๋ก๊ทธ์ธ ์
ธ์ ๊ฐ์ ๋ก ์์ํ ์ ์์ต๋๋ค. --login
๋ถ๋ฅผ ๋ bash
์ :
๋ฐฐ์ฌ --๋ก๊ทธ์ธ
๋ก๊ทธ์ธ ์์ bash ์์ ์ฒ์ ์์ํ ๋ ๊ธฐ๋ณธ ํ๊ฒฝ์ ์ค์ ํฉ๋๋ค.
์ธํฐ๋ ํฐ๋ธ?
๊ทธ๋ฐ ๋ค์ ์์ด ๋ํํ์ธ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
์ด๋ ๋ณ์์ ์กด์ฌ๋ก ํ์ธํ ์ ์์ต๋๋ค. PS1
(๋ช
๋ น ์
๋ ฅ ๊ธฐ๋ฅ์ ์ค์นํฉ๋๋ค):
if [ "${PS1-}" ]; ๊ทธ๋ฐ ๋ค์ ์์ฝ ๋ํํ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๋น๋ํํ fi๋ฅผ ์์ฝํฉ๋๋ค.
์๋๋ฉด ์ต์
์ด ์ค์ ๋์ด ์๋์ง ํ์ธํด๋ณด์ธ์ -i
, ํน์ ํ์ดํ ๋ณ์ ์ฌ์ฉ -
์๋ฅผ ๋ค์ด bash์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$์์ฝ$-
์ถ๋ ฅ์ ๊ธฐํธ๊ฐ ์๋ ๊ฒฝ์ฐ i
์ด๋ฉด ์์ ๋ํํ์
๋๋ค.
๋ก๊ทธ์ธ ์์์?
๋ก๊ทธ์ธ ์์ ์๋ค๋ฉด bash๋ ํ์ผ์ ์ฐพ์ต๋๋ค. /etc/profile
์กด์ฌํ๋ ๊ฒฝ์ฐ ์คํ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ค์ ์์๋ก ์ธ ํ์ผ ์ค ํ๋๋ฅผ ๊ฒ์ํฉ๋๋ค.
~/.bash_profile ~/.bash_login ~/.profile
ํ๋๋ฅผ ์ฐพ์ผ๋ฉด ์์ํ๊ณ ๋๋จธ์ง๋ ๊ฑด๋๋๋๋ค.
๋ํํ ์์์?
๋น๋ก๊ทธ์ธ ์์ ์๋ ๊ฒฝ์ฐ ์ด๋ฏธ ๋ก๊ทธ์ธ ์์ ์์๋ค๊ณ ๊ฐ์ ํ๊ณ ํ๊ฒฝ์ด ๊ตฌ์ฑ๋์ด ์์๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ ๋ค์ ๋ ํ์ผ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ ์์๋๋ก ์คํ๋ฉ๋๋ค.
/etc/bash.bashrc ~/.bashrc
์ต์ ์ด ์๋์?
๋ก๊ทธ์ธ ์ ธ์ด๋ ๋ํํ ์ ธ์ ์์ง ์์ ๊ฒฝ์ฐ ํ๊ฒฝ์ ์ค์ ๋ก ๋น์ด ์์ต๋๋ค. ์ด๋ก ์ธํด ๋ง์ ํผ๋์ด ๋ฐ์ํฉ๋๋ค(ํฌ๋ก ์์ ์ ๋ํด์๋ ์๋ ์ฐธ์กฐ).
์ด ๊ฒฝ์ฐ bash๋ ๋ณ์๋ฅผ ์ดํด๋ด
๋๋ค. BASH_ENV
ํ๊ฒฝ์ ์ ํํ๊ณ ๊ฑฐ๊ธฐ์ ์ง์ ๋ ํด๋น ํ์ผ์ ์์ฑํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ์ด๋ ค์๊ณผ ๊ฒฝํ ๋ฒ์น
ํฌ๋ก ์์
bash ์์์ ๋๋ฒ๊ทธํ๋ ์๊ฐ์ 95%๋ cron ์์ ์ด ์์๋๋ก ์คํ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด ๋น์ด๋จน์ ์๋ฌด ๋ช ๋ น์ค์์ ์คํํ๋ฉด ์ ๋๋ก ์๋ํ์ง๋ง crontab์์ ์คํํ๋ฉด ์คํจํฉ๋๋ค..
์ฌ๊ธฐ์ ๋ ๊ฐ์ง ์ด์ :
- Cron ์์ ์ ๋ํํ์ด ์๋๋๋ค.
- ๋ช ๋ น์ค ์คํฌ๋ฆฝํธ์ ๋ฌ๋ฆฌ cron ์์ ์ ์ ธ ํ๊ฒฝ์ ์์ํ์ง ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํ๊ฒฝ์ ๋ํํ ์
ธ์์ ์์๋๊ธฐ ๋๋ฌธ์ ์
ธ ์คํฌ๋ฆฝํธ๊ฐ ๋ํํ์ด ์๋๋ผ๋ ์ ์ ์ธ์ํ๊ฑฐ๋ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ์ด๋ ๋ชจ๋ ๊ฒ์ด PATH
ะธ alias
์์๋๋ก ๊ตฌ์ฑ๋์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํน์ ์ค์ ์ ์ค์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. PATH
๋ค์๊ณผ ๊ฐ์ ํฌ๋ก ์์
์ ๊ฒฝ์ฐ:
* * * * * PATH=${PATH}:/path/to/my/program/folder myprogram
์๋ก๋ฅผ ํธ์ถํ๋ ์คํฌ๋ฆฝํธ
๋ ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ ์คํฌ๋ฆฝํธ๊ฐ ์๋ก ํธ์ถํ๋๋ก ์ค์๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ์
๋๋ค. ์๋ฅผ ๋ค์ด, /etc/profile
ํธ์ํ๋ค ~/.bashrc
.
์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๋๊ตฐ๊ฐ๊ฐ ์ผ๋ถ ์ค๋ฅ๋ฅผ ์์ ํ๋ ค๊ณ ์๋ํ๋๋ฐ ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ผ ๋ ๋ฐ์ํฉ๋๋ค. ๋ถํํ๊ฒ๋ ์ด๋ฌํ ๋ค์ํ ์ ํ์ ์ธ์ ์ ๋ถ๋ฆฌํด์ผ ํ ๋ ์๋ก์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์๋๋ฐ์ค Docker ์ด๋ฏธ์ง
์ ธ ์คํ์ ์คํํ๊ธฐ ์ํด ๋ณด์ ํ๊ฒฝ์์ ์ ธ ์คํ์ ๋๋ฒ๊น ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ Docker ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์์ต๋๋ค.
์์ํ๋ค:
$ docker run -n bs -d imiell/bash_startup
$ docker exec -ti bs bash
Dockerfile์ด ์์นํฉ๋๋ค.
๊ฐ์ ๋ก ๋ก๊ทธ์ธํ๊ณ ๋ก๊ทธ์ธ ์ ธ์ ์๋ฎฌ๋ ์ด์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
$ bash --login
๋ณ์ ์ธํธ๋ฅผ ํ
์คํธํ๋ ค๋ฉด BASH_ENV
:
$ env | grep BASH_ENV
๋๋ฒ๊น
์ ์ํด crontab
๊ฐ๋จํ ์คํฌ๋ฆฝํธ๊ฐ XNUMX๋ถ๋ง๋ค ์คํ๋ฉ๋๋ค( /root/ascript
):
$ crontab -l
$ cat /var/log/script.log
์ถ์ฒ : habr.com