我遇到了一个包含以下命令的 Bash 脚本:
$ mkdir -p /root/.ssh
我知道mkdir -p
是什么,但是“/root/”是什么?我以为 root 是“/”?
答案1
'
/
' 是文件系统的根。'
/root
' 是 root 用户的主目录。'
/root/.ssh
' 是一个隐藏目录,将保存 所使用的信息ssh
,例如公钥/私钥(注意: 使其.
隐藏)。
如果您想知道为什么它不/home/root
(像其他用户一样),这是因为 /home 通常是一个单独的分区(出于安全原因应该是),但如果该分区无法安装,它可能会抑制 root 用户登录的能力。这有点像您如何看待/sbin
和/usr/sbin
(或/bin
和/usr/bin
)在启动时安装和执行的二进制文件与用户安装/执行的二进制文件的情况。
答案2
“根”有多种不同的含义。
首先,它是“超级用户”的用户名,即计算机的管理员,有权执行字面上的操作任何事物与电脑。 (顺便说一句,他比 Windows 管理员拥有更大的权力,因为可以更改整个 Linux 操作系统,甚至可以编辑操作系统本身的源代码。)
接下来,root 是“文件夹”的名称,其中包含所有其他文件夹和文件在整个系统上。 (你说你是 Linux 菜鸟,所以我使用了“文件夹”这个词,这在 Windows 和 Mac OS X 中很常见。Linux 术语是“目录”,出于原因我不会在这里详细介绍。)根目录拼写/
但发音为“根目录”。如果您指的是某事里面根目录,你将其发音为“slash”。/home
根目录中的目录名称也是如此,发音为“slash home”。
“root”一词也可以表示“root 权限”,换句话说,就是允许您在系统上执行任何操作的系统权限。例句:“您必须运行安装程序根目录。” (虽然 ”...作为root”,指的是 root 用户,是更常用的说法。)
“root”一词也可以是动词,意思是“通常非法或违背制造商意图地获取 root 权限”。示例:“攻击者侵入了我的系统,我不得不重新安装。” “我厌倦了三星对我的手机施加的限制,所以我将其 root 了。”
适用于您所询问的上下文的“根”的定义需要一些准备。 (别担心,这并不难。)Linux 中的每个用户都有一个“主目录”。这是他们所有文件的存储位置,其他用户无法访问它们。既然root
是用户(超级用户),root
就有一个主目录。大多数用户的主目录位于/home
(例如,Jimmy 的主目录位于/home/jimmy
,发音为“slash homelash jimmy”),但出于良好的技术原因,root 用户的主目录需要位于根目录中。所以“根目录”指的是/
,而“root 用户的主目录”指的是/root
,发音为“slash root”。
不要因为一开始感到困惑而感到难过——root 有很多含义!甚至可能还有一些我错过了。
(关于为什么顶级目录被称为“根目录”的背景,请研究图论,图论中的“树”是什么,树的“根”是什么。这是推导这个词,以及为什么它被称为目录“树”,以及为什么文件的“路径”被称为“路径”,所有这些词和其他几个词都源自图论中的数学术语。)