在哪里更换外壳?

在哪里更换外壳?

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。如果成功,它将被登录程序分叉。

但是,强烈建议您不要手动修改此文件。您应该尽可能使用chshor 。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 的完整路径。

参考:http://kb.iu.edu/data/benf.html

答案4

我尝试在运行 DSM 5.1 并运行 ash shell 的 Synology 设备上执行此操作。由于某种原因该chsh命令不可用。我不得不编辑该文件/etc/passwd,输入我想要的 shell 可执行文件的完整路径。

相关内容