ln -s /bin/zsh /bin/sh和ln -s zsh sh的区别
时间: 2023-07-11 10:00:53 浏览: 271
这两个命令的区别在于创建软链接的方式不同。
`ln -s /bin/zsh /bin/sh` 是在 `/bin` 目录下创建一个名为 `sh` 的软链接,它指向 `/bin/zsh`,也就是说,当你在终端里输入 `sh` 命令时,实际上执行的是 `/bin/zsh`。
而 `ln -s zsh sh` 是在当前目录下创建一个名为 `sh` 的软链接,它指向当前目录下的 `zsh` 文件(如果有的话),也就是说,当你在终端里输入 `sh` 命令时,实际上执行的是当前目录下的 `zsh` 文件。如果当前目录下没有 `zsh` 文件,那么这个软链接就是无效的。
所以,这两个命令的作用是不同的。第一个命令是将 `/bin/sh` 这个系统命令替换成 `/bin/zsh`,可以改变系统默认的 shell 解释器;而第二个命令只是在当前目录下创建一个名为 `sh` 的软链接,可能会影响当前目录下的脚本或命令。
相关问题
分析以下命令:# cd /bin # rm sh # ln -s /bin/zsh /bin/sh
这个命令的含义是:
1. `cd /bin`:切换到 `/bin` 目录;
2. `rm sh`:删除 `/bin/sh` 文件;
3. `ln -s /bin/zsh /bin/sh`:在 `/bin` 目录下创建一个名为 `sh` 的符号链接,链接到 `/bin/zsh` 文件。
这个命令的作用是把系统默认的 Shell 解释器从 `sh` 更改为 `zsh`。`sh` 是 Bourne Shell 的简称,是 Unix 系统默认的 Shell 解释器,而 `zsh` 是 Z Shell 的简称,是一个功能更强大的 Shell 解释器。通过删除 `/bin/sh` 文件并创建一个指向 `/bin/zsh` 的符号链接,就可以实现将系统默认的 Shell 解释器从 `sh` 更改为 `zsh`。
需要注意的是,修改系统文件可能会对系统安全性产生影响,所以在修改系统文件之前,请确保你知道自己在做什么,并备份好原文件。另外,一些系统工具和脚本可能依赖于 `sh` 解释器,如果你将其更改为 `zsh`,可能会导致这些工具和脚本无法正常运行。
改变 shell 链接 必须在 root 用户下完成 # cd /bin # rm sh # ln -s /bin/zsh /bin/sh
是的,您说的没错。要改变系统默认的 shell 链接,需要使用 root 用户权限,并且需要按照以下步骤进行操作:
1. 打开终端,登录 root 账户。
2. 切换到 /bin 目录,使用命令 cd /bin。
3. 删除原来的 sh 链接,使用命令 rm sh。
4. 创建一个新的 sh 链接,指向 zsh,使用命令 ln -s /bin/zsh /bin/sh。
注意,这个操作会将系统默认的 shell 改为 zsh,如果您不熟悉 zsh 的使用,可能会影响到您的系统使用。所以在操作之前,请确认您已经熟悉了 zsh 的使用,并且已经备份了重要的系统文件。
阅读全文