Shell

預設系統外殼的職責是什麼?

  • January 7, 2017

據我了解,在 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,它應該不會以任何意想不到的方式影響系統,包括啟動。

這適用於所有腳本,這也是為什麼所有腳本都應該#!以指定要使用的解釋器開頭的原因。

引用自:https://unix.stackexchange.com/questions/335568