据我了解,在Linux /bin/sh
(指/bin/dash
某些发行版)中是默认的系统shell。它运行(SysV)初始化脚本吗?还要别的吗?任何为什么不是root
用户 shell(/bin/bash
在 Debian 中根据/etc/passwd
)来执行这些任务?我问的原因是我读过LPIC-1学习指南说:
Linux 系统使用默认系统 shell 来运行系统 shell 脚本,通常在启动时运行。
我的印象是启动发生在root
用户下,因此root
使用用户 shell。
答案1
您可能希望这些脚本不依赖于任何用户(包括 root)的默认 shell。如果管理员更改了 root 的默认 shell,它不应该以任何意外的方式影响系统,包括启动。
所有脚本都是如此,这就是为什么所有脚本都应该以#!
指定要使用的解释器开头。