เบเปเบฒเบเปเบฒเบเบเบปเบเบซเบเปเบฒเบเบตเปเปเบเบเบฒเบเบเบปเปเบเบซเบฒ, เบเปเบฒเบเบญเบฒเบเบเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเปเปเบเบเบฑเบเบซเบฒเบเบฒเบเบขเปเบฒเบเบเบฑเบเบเบฒเบเปเบฅเปเบ bash.
เบเบฒเบเบเบตเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก bash เบเบญเบเบเปเบฒเบเบเปเปเปเบเปเบเปเบฒเบเบปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบฅเบฐเบเปเบฒเบเบเปเปเปเบเบปเปเบฒเปเบเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบ. เบเปเบฒเบเบญเบฒเบเบเบฐเบเบดเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบขเบนเปเปเบเปเบเบฅเป bash boot เบเปเบฒเบเปเบซเบผเบทเปเบเบฃเปเบเบฅเปเบซเบผเบทเปเบเบฅเปเบเบฑเบเบซเบกเบปเบเปเบเบเบชเบธเปเบกเบเบปเบเบเปเบงเบฒเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบ.
เปเบเบเปเบฅเบฐเบเบตเปเบเบเปเปเบเบฒเบก, เบเบธเบเบเบญเบเบเบฑเบเบเบถเบเบเบตเปเปเบกเปเบเบเบฒเบเบเบฑเบเบงเบฒเบเบเบฑเปเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ bash เปเบเบปเปเบฒเบเบตเปเปเบเบฑเบเปเบเปเบเปเปเบเบทเปเบญเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฑเบเบซเบฒเบเปเบฒเบเป.
เปเบเบเบงเบฒเบ
เปเบเบเบเบฑเบเบเบฑเปเบเบเบญเบเบเบตเปเบชเบฐเบซเบผเบธเบเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเปเบงเบฅเบฒเปเบฅเปเบ bash.
เบเบฑเบโเบเบตเปโเปเบซเปโเปเบฎเบปเบฒโเบเบดเบเบฒเบฅเบฐเบเบฒโเปเบเบดเปเบโเปเบเปโเบฅเบฐโเบเบฒเบเบชเปเบงเบโเปเบซเปโเบฅเบฐเบญเบฝเบโเบเบงเปเบฒ.
เปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ Shell?
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเปเบฒเบ เบเบณ เปเบเบฑเบเบเปเบญเบเปเบฅเบทเบญเบเบงเปเบฒเบเปเบฒเบเบเบฐเบขเบนเปเปเบเบเบฐเปเบเบปเปเบฒเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบซเบผเบทเบเปเป.
Shell เปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเปเบกเปเบ shell เบเปเบฒเบญเบดเบเบเบตเปเบเปเบฒเบเปเบเบปเปเบฒเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบชเปเบฒเบฅเบฑเบเบเบญเบเบเบฐเบเบธเบกเบเบฒเบเปเบเปเบเบญเบ. เปเบเบฐเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบเปเปเบเปเบญเบเบเบฒเบเบเบทเปเบเบนเปเปเบเป เปเบฅเบฐเบฅเบฐเบซเบฑเบเบเปเบฒเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบฑเบ shell เปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบเบฒเบเปเบเบตเปเบกเบเบธเบ --login
เปเบกเบทเปเบญเปเบญเบตเปเบ bash
เบเบปเบงเบขเปเบฒเบ:
bash --เปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ
เปเบเบฐเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบเบฐเบเบฑเปเบเบเปเบฒเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบทเปเบเบเบฒเบเปเบกเบทเปเบญเบเปเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบฐ bash เบเปเบฒเบญเบดเบ.
เปเบเปเบเบญเบ?
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบเปเบฒเบเบปเบเบงเปเบฒ shell เปเบกเปเบเปเบเปเบเบญเบเบซเบผเบทเบเปเป.
เบเบตเปเบชเบฒเบกเบฒเบเบเบงเบเบชเบญเบเปเบเปเปเบเบเบเบฒเบเบกเบตเบเบปเบงเปเบ PS1
(เบกเบฑเบโเบเบดเบโเบเบฑเปเบโเบซเบเปเบฒโเบเบตเปโเบเบฒเบโเบเปเบญเบโเบเปเปโเบกเบนเบโเบเปเบฒโเบชเบฑเปเบโ)โ:
เบเปเบฒ [ "${PS1-}" ]; เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, echo interactive เบญเบทเปเบ echo non-interactive fi
เบซเบผเบทเปเบเบดเปเบเบงเปเบฒเบเบฒเบเปเบฅเบทเบญเบเปเบกเปเบเบเบทเบเบเปเบฒเบเบปเบ -i
, เปเบเบเปเบเปเบเบปเบงเปเบเบเบดเปเบชเบ hyphen -
เปเบ bash, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ:
$echo$-
เบเปเบฒเบกเบตเบชเบฑเบเบเบฒเบฅเบฑเบเบขเบนเปเปเบเบเบปเบเบเบฐเบฅเบดเบ i
, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบฐเปเบกเปเบเปเบเปเบเบญเบ.
เปเบ shell เปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ?
เบเปเบฒเบเปเบฒเบเบขเบนเปเปเบ shell เปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ bash เบเบญเบเบซเบฒเปเบเบฅเป /etc/profile
เปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบกเบฑเบเบกเบตเบขเบนเป.
เบเบฒเบเบเบฑเปเบเบเบญเบเบซเบฒเปเบเบฅเปเปเบเบเบถเปเบเปเบเบชเบฒเบกเปเบเบฅเปเบเบตเปเบเบฒเบกเบฅเปเบฒเบเบฑเบเบเปเปเปเบเบเบตเป:
~/.bash_profile ~/.bash_login ~/.profile
เปเบกเบทเปเบญเบเบปเบเบญเบฑเบเปเบถเปเบ, เบกเบฑเบเบเบฐเปเบฅเบตเปเบกเบกเบฑเบ เปเบฅเบฐเบเปเบฒเบกเบญเบฑเบเบญเบทเปเบ.
เปเบ shell เปเบเบเปเบเปเบเบญเบ?
เบเปเบฒเบเปเบฒเบเบขเบนเปเปเบ shell เบเบตเปเบเปเปเบกเบตเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ, เบกเบฑเบเบชเบปเบกเบกเบธเบเบงเปเบฒเบเปเบฒเบเปเบเปเบขเบนเปเปเบ shell เปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเปเบฅเปเบง, เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเปเบเบทเบเบเบฑเปเบเบเปเบฒเปเบฅเบฐเบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเบชเบทเบเบเบญเบ.
เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเปโ, เบชเบญเบโเปเบเบฅโเปโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโเปเบกเปเบโเบเบฐโเบเบดโเบเบฑเบโเบเบฒเบกโเบฅเปเบฒโเบเบฑเบโ, เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบงเบโเปเบเบปเบฒโเบกเบตโ:
/etc/bash.bashrc ~/.bashrc
เบเปเปเบกเบตเบเบฒเบเปเบฅเบทเบญเบ?
เบเปเบฒเบเปเบฒเบเบเปเปเบขเบนเปเปเบเบเบฑเบ login shell เบซเบผเบท shell interactive, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบญเบเบเปเบฒเบเปเบเปเบเบญเบเบเบฐเบซเบงเปเบฒเบเปเบเบปเปเบฒ. เบเบตเปเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ (เปเบเบดเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบเปเบฝเบงเบเบฑเบเบงเบฝเบ cron).
เปเบเบเปเบฅเบฐเบเบตเบเบตเป bash เปเบเบดเปเบเบเบปเบงเปเบ BASH_ENV
เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบญเบเบเปเบฒเบเปเบฅเบฐเบชเปเบฒเบเปเบเบฅเปเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเบขเบนเปเบเบตเปเบเบฑเปเบ.
เบเบงเบฒเบกเบซเบเบธเปเบเบเบฒเบเบเบปเปเบงเปเบเปเบฅเบฐเบเบปเบเบฅเบฐเบเบฝเบเบเบญเบ thumb
เบงเบฝเบ cron
95% เบเบญเบเปเบงเบฅเบฒเบเบตเปเบเปเบญเบ debug bash startup เบกเบฑเบเปเบกเปเบเบเปเบญเบเบงเปเบฒเบงเบฝเบ cron เบเปเปเปเบเปเปเบฎเบฑเบเบงเบฝเบเบเบฒเบกเบเบตเปเบเบฒเบเปเบงเป.
เบงเบฝเบเบเบฒเบเบญเบฑเบเบเบตเป เปเบฎเบฑเบเบงเบฝเบเปเบเปเบเบตเปเบกเบทเปเบญเบเปเบญเบเปเบฅเปเบเบกเบฑเบเบขเบนเปเปเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ, เปเบเปเบฅเบปเปเบกเปเบซเบฅเบงเปเบกเบทเปเบญเบเปเบญเบเปเบฅเปเบเบกเบฑเบเบขเบนเปเปเบ crontab.
เบกเบฑเบเปเบเบฑเบ เบชเบญเบเปเบซเบเบเบปเบ:
- เบงเบฝเบ Cron เบเปเปเบกเบตเบเบฒเบเปเบเปเบเบญเบ.
- เบเปเปเปเบซเบกเบทเบญเบเบเบฑเบเบชเบฐเบเบดเบเปเบเบงเบเปเบฒเบชเบฑเปเบ, เบงเบฝเบ cron เบเปเปเปเบเปเบชเบทเบเบเบญเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบญเบเปเบเบฐ.
เปเบเบเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเปเบฒเบเบเบฐเบเปเปเบชเบฑเบเปเบเบเปเบซเบฑเบ เบซเบผเบทเบชเบปเบเปเบเบงเปเบฒเบชเบฐเบเบฃเบดเบ Shell เบเปเปเปเบเปเปเบเปเบเบญเบเปเบเบทเปเบญเบเบเบฒเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเปเบชเบทเบเบเบญเบเบกเบฒเบเบฒเบ shell เบเบฒเบเปเบเปเบเบญเบ. เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบ PATH
ะธ alias
เบเบฑเปเบเบเปเบฒเบเบฒเบกเบเบตเปเปเบเบปเปเบฒเบเบฒเบเบซเบงเบฑเบ.
เบเบตเปเปเบกเปเบเปเบซเบเบเบปเบเบเบตเปเบงเปเบฒเบกเบฑเบเบกเบฑเบเบเบฐเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฒเบเบปเบเบชเบฐเปเบเบฒเบฐ PATH
เบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบ cron เบเบทเบเบตเปเบเบตเป:
* * * * * PATH=${PATH}:/path/to/my/program/folder myprogram
Scripts เปเบเบซเบฒเบเบฑเบเปเบฅเบฐเบเบฑเบ
เบเบฑเบเบซเบฒเบเบปเปเบงเปเบเบญเบตเบเบญเบฑเบเบซเบเบถเปเบเปเบกเปเบเปเบกเบทเปเบญ scripts เบเบทเบเบเบฑเปเบเบเปเบฒเบเบดเบเบเบฒเบเปเบเบทเปเบญเปเบเบซเบฒเบเบฑเบเปเบฅเบฐเบเบฑเบ. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ, /etc/profile
เบเปเบญเบธเบเบญเบเบเบฑเบ ~/.bashrc
.
เบเบตเปเบกเบฑเบเบเบฐเปเบเบตเบเบเบทเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบนเปเปเบเบเบนเปเบซเบเบถเปเบเบเบฐเบเบฒเบเบฒเบกเปเบเปเปเบเบเปเปเบเบดเบเบเบฒเบเบเบฒเบเบขเปเบฒเบเปเบฅเบฐเบเบธเบเบขเปเบฒเบเปเบเบดเปเบเบเบทเบงเปเบฒเปเบฎเบฑเบเบงเบฝเบ. เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบเบเบฐเปเบเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเบญเบเบเบญเบเบเบฐเบเบธเบก, เบเบฑเบเบซเบฒเปเบซเบกเปเปเบเบตเบเบเบทเปเบ.
เบฎเบนเบ Sandboxed Docker
เปเบเบทเปเบญเบเบปเบเบฅเบญเบเปเบฅเปเบ Shell, เบเปเบญเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ Docker เบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเบทเปเบญเปเบเปเบเบฑเบเบซเบฒเบเบฒเบเปเบฅเปเบ Shell เปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบเบญเบเปเบ.
เปเบเบตเบเบเบปเบง:
$ docker run -n bs -d imiell/bash_startup
$ docker exec -ti bs bash
Dockerfile เบเบฑเปเบเบขเบนเป
เปเบเบทเปเบญเบเบฑเบเบเบฑเบเปเบซเปเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ เปเบฅเบฐเบเบณเบฅเบญเบเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ:
$ bash --login
เปเบเบทเปเบญเบเบปเบเบชเบญเบเบเบธเบเบเบญเบเบเบปเบงเปเบ BASH_ENV
:
$ env | grep BASH_ENV
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเบเบฑเบ crontab
script เบเปเบฒเบเปเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเบเบธเบเปเบเบฒเบเบต (in /root/ascript
):
$ crontab -l
$ cat /var/log/script.log
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com