解释这个命令

解释这个命令

前几天我发现了以下命令:

for i in 0 1 2 3 4 5 6 S ; do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d ; done

据了解,此命令将使用 for 循环在每个文件之间创建符号链接,但是我真正无法理解的是该数字中的 S,它应该做什么?

答案1

这些数字不是随机选择的,而是运行级别您的系统的。用于确定运行哪些初始化脚本的运行级别。它们现在大多已经过时了。如果您使用的是 Linux,则运行级别很可能S和1相同。您的文档可能非常旧,或者它们可能正在使用update-rc.d符号链接而不是手动创建符号链接。

因此,您的循环将迭代所有运行级别(1-6 和 S)。

答案2

for 循环中“in”之后的所有项目都是将在循环中分配给 $i 的字符串。该脚本将创建从 /etc/rc?.d 到 /etc/rc.d/rc?.d 的软链接。这可能是为了确保发行版之间某种兼容性而进行的一些黑客攻击。

S 有时用作运行级别 1 或单用户模式的同义词。https://en.wikipedia.org/wiki/Runlevel

相关内容