如何更改服务器上的默认 shell?

问题描述 投票:0回答:2

我被分配了一个用于登录远程服务器的帐户,我想更改我的默认 shell。

我尝试了

chsh
命令,但它说:
chsh: "/public/home/{my_id}/bin/zsh" is not listed in /etc/shells.

linux shell remote-server
2个回答
3
投票

如果您没有在系统范围内安装 zsh 的权限,快速修复方法是将

exec ~/bin/zsh -l
附加到
~/.bash_profile
(如果 bash 是当前 shell),或当前登录 shell 的等效 rc 文件。

  • zsh -l
    将 zsh 作为登录 shell 启动。
  • exec COMMAND
    用 COMMAND 替换当前进程,因此您只需键入 exit(或按 ctrl+d)一次。
  • ~/.bash_profile
    当 bash 作为登录 shell 启动时执行,您仍然可以正常运行命令
    bash

根据

~/.bash_profile
(或同等内容)中的内容,您可能希望通过将
exec ~/bin/zsh -l
放在文件的开头(而不是末尾)来避免执行其其他内容,并将任何重要的内容复制/移植到 zsh等效,
$ZDOTDIR/.zprofile

我也可能会这样做

export SHELL="$HOME/bin/zsh"
,尽管我不确定将 SHELL 设置为与
/etc/passwd
中为您的用户指定的 shell、不在
/etc/shells
中的 shell 以及您家中的 shell 二进制文件不同的全部效果路径。


0
投票
  1. 首先检查你的Linux系统上所有可用的shell
cat /etc/shells
  1. 使用 chsh 命令行实用程序通过 -s 或 –shell 选项更改登录 shell,如下所示。
chsh --shell /bin/sh tecmint
© www.soinside.com 2019 - 2024. All rights reserved.