我通过 ssh 连接到服务器。
现在我想将 shell 设置为 bash,因为此时 shell 是 sh。
sudo /sbin/usermod -s /usr/bin/bash santi
我应该使用/bin/bash
还是/usr/bin/bash
不重要?
我通过 ssh 连接到服务器。
现在我想将 shell 设置为 bash,因为此时 shell 是 sh。
sudo /sbin/usermod -s /usr/bin/bash santi
我应该使用/bin/bash
还是/usr/bin/bash
不重要?
文件中列出了允许的 shell
/etc/shells
。chsh
从帐户运行santi
,无需 sudo。它会阻止您使用未经许可的 shell。管理员可以设置一个不允许的 shell,但这是个坏主意,除非你故意设置一个访问受限的用户帐户。一个原因是普通用户不能再更改了。另一个原因是发行版不断
/etc/shells
更新,因此升级不会阻止用户登录,但如果您使用管理员权限为帐户提供未经许可的 shell,那么您就有责任小心不要锁定该帐户出去。/bin/zsh 和 /usr/bin/zsh 有什么区别?
和
/bin/bash
都是/usr/bin/bash
Bash shell 可执行文件的有效路径。/bin/bash
和之间的差异/usr/bin/bash
是历史性的,取决于系统约定和配置。传统上,Bash 安装在
/bin
Unix 系统的路径中,一些现代的 Linux 发行版将它存储在/usr/bin
路径中。大多数系统创建从 /bin/bash 到 /usr/bin/bash 的符号链接,这意味着两条路径是等价的。/usr/bin
是大多数现代 Linux 发行版上用户级可执行文件的默认位置。此路径包含用户安装的可执行文件,通常直到引导过程的后期才会安装。/usr/bin/bash
是 bash 可执行文件的路径(如果它安装在此位置)。符号链接确保引用的遗留脚本和应用程序
/bin/bash
将继续正常工作,即使 Bash 可执行文件安装在/usr/bin
您可以在命令中使用
/bin/bash
或为用户设置 shell/usr/bin/bash
usermod
santi
两者都会正常工作。
zsh在/usr/bin里,也在/bin里,有什么区别?
/bin、/sbin、/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin 之间的区别
文件系统层次标准
/bin/bash 和 /usr/bin/bash 之间的区别
如果我使用“/bin/bash”或“/usr/bin/env bash”启动 bash,有什么区别?
bash
要确定系统上可执行文件的路径,您可以使用以下命令:您也可以列出系统上可用的 shell:
如果你想要一种交互式的方式来设置 shell:
希望这可以帮助 !
/bin/bash
如果 bash 在和中都可用/usr/bin/bash
(通常是因为/usr merge 的/bin
符号链接)没关系。两者都将在这个系统上工作/usr/bin
但是,我更愿意使用
/bin/bash
over/usr/bin/bash
,因为这是安装它的传统位置,如果在其他系统中运行它会更兼容(如果它不是手动步骤,而是包含在可能在多台机器上运行的脚本中,或者如果 bash 的位置是为了将它写在 shebang 上)