zsh
例如,如果我想使用,而不是bash
,我应该在哪里为当前用户进行此更改?
答案1
usermod -s /bin/zsh <username>
请参阅 参考资料 了解man usermod
更多选项。
答案2
如果您无权访问该用户并拥有 root 权限,Chris Browne 的答案很有效。
如果您想更改当前用户的默认 shell,您还可以使用:
chsh -s /bin/ksh
更多信息
用户的登录 shell 在文件中定义(/etc/passwd
在 Debian 上)。该文件为每个用户都有一个条目,其中包含创建时输入的信息。
rahmu:x:1000:1000:My Nameisrahmu,,,:/home/rahmu:/bin/bash
anotheruser:x:1001:1001:,,,:/home/anotheruser:/bin/ksh
最后一列是登录 shell。如果成功,它将被登录程序分叉。
但是,强烈建议您不要手动修改此文件。您应该尽可能使用chsh
or 。usermod
答案3
您可以使用以下命令更改登录 shell chsh
。如前所述man chsh
,普通用户只能更改自己帐户的 shell,而 root 可以更改所有帐户的 shell。
/etc/shells
包含有效登录 shell 的路径名。该文件在chsh
调用时被查询。
使用说明chsh
根据您的 UNIX 风格而有所不同:
Linux:
chsh -s newshell
索拉里斯:
chsh newshell
惠普-UX
chsh username newshell
AIX
chsh
这将启动一个交互式会话,系统将提示您输入新 shell 的完整路径。
答案4
我尝试在运行 DSM 5.1 并运行 ash shell 的 Synology 设备上执行此操作。由于某种原因该chsh
命令不可用。我不得不编辑该文件/etc/passwd
,输入我想要的 shell 可执行文件的完整路径。