最近新入了一台华为云小主机,远程Shell连接后发现默认shell非常难用,无法使用自动补全,命令行抬头也只有提示符,不显示工作路径。

输入echo $SHELL后输出/bin/sh。这表明我们当前用户的默认Shell环境是sh,而不是我们熟悉的bash。我们需要做的事情是将用户默认shell环境改为bash.

环境介绍

  • 操作系统:Debian Linux 11.1

  • 远程工具:Windows Terminal

解决方案

方法一:chsh命令

使用chsh命令修改当前用户shell环境。

$ chsh -s /bin/bash #将当前用户修改为bash
$ egrep 'username' /etc/passwd #查看当前环境是否修改完成
$ exit #退出后重连即可

搜集资料时还发现了其它方案,放在此处以供参考。

方法二:usermod

$ usermod -s /bin/bash username

方法三:临时修改

如果仅需要在当前会话下修改shell环境,仅需执行如下命令.

$ /bin/bash

知识扩展

chsh

chsh 命令是“change shell”的缩写,它在类Unix系统中用于更改用户的登录shell。/bin/bash 是Bash shell的路径,这是一种常用的命令行解释器,广泛用于各种Unix和Linux系统。常见选项如下:

  • -s :更换当前用户shell

  • -l :列出系统上可用的shell。

  • -u :显示更详细的用法信息。