Shell
預設系統外殼的職責是什麼?
據我了解,在 Linux 中
/bin/sh
(在某些發行版中指向/bin/dash
)是預設的系統 shell。它是否執行(SysV)初始化腳本?還要別的嗎?為什麼不將root
使用者 shell(/bin/bash
在 Debian 中根據/etc/passwd
)用於這些任務?我問的原因是我閱讀了LPIC-1學習指南,它說:Linux 系統使用預設系統 shell 來執行系統 shell 腳本,通常在啟動時。
我的印像是啟動發生在
root
使用者下,因此使用了root
使用者外殼。
您可能希望這些腳本不依賴於任何使用者的預設 shell,包括 root。如果管理員更改了 root 的預設 shell,它應該不會以任何意想不到的方式影響系統,包括啟動。
這適用於所有腳本,這也是為什麼所有腳本都應該
#!
以指定要使用的解釋器開頭的原因。