如何在Linux中更改Shell
时间:2020-03-05 15:26:05 来源:igfitidea点击:
本快速教程介绍了如何检查正在运行的shell程序,系统中可用的shell程序以及如何在Linux中更改默认shell程序。
我们可能已经知道,Linux和其他类似Unix的系统上有多个shell。
Bash是几乎所有Linux发行版中的默认shell,但是还有一些其他流行的shell,例如:
- ksh
- zsh
- fish
- csh
- dash
如何知道默认的shell?
要了解Linux系统中为我们设置的默认shell程序,可以检查SHELL环境变量。
通常,默认shell是bash,如下所示:
echo $SHELL /bin/bash
如何查看我们当前使用的shell?
没有任何一种方法可以100%准确地告诉我们所使用的shell。
我们可以尝试使用echo $0来显示如下输出:
echops -p $$ PID TTY TIME CMD 9625 pts/0 00:00:00 zshzsh
或者使用ps -p $$检查进程,如下所示:
# /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/dash /usr/bin/tmux /usr/bin/fish /bin/zsh /usr/bin/zsh
如何查看Linux系统上可用的所有shell?
文件/etc/shells中列出了Linux系统上可用的所有shell。
我们可以使用cat命令或者更少的命令来查看文件的内容。
zsh
如何更改shell以使用另一个shell?
如果我们要使用其他shell,只需输入其名称即可登录新shell。
例如,如果我们安装zsh并想使用它,则可以简单地使用:
chsh -s /usr/bin/fish
我们可以输入exit退出新shell并返回上一个shell。
如何永久更改Linux中的默认Shell?
假设我们非常喜欢Fishshell,并且希望将其用作默认shell,以便每次打开终端或者ssh进入系统时,都在使用它而不是默认bashshell。
Linux允许我们使用chsh命令更改默认Shell。
更改自己登录用户的默认Shell的最佳方法是使用/s选项指定/etc/shells文件中列出的Shell名称。
我们必须注销系统才能使更改生效,否则我们会认为运行chsh不会更改shell。
我们是否注意到我必须指定/etc/shells文件中列出的完整路径?
如果我使用了chsh -s fish,它将给我一个错误,例如“ chsh:fish是无效的shell”。