如何在 Linux / Unix 中将 Shell 更改为 Bash
Shell 只不过是一个为 Linux、MacOS 和类 Unix 操作系统提供纯文本用户界面(也称为“命令行界面”)的命令。Bash Shell 读取输入到终端的命令(例如 ls、date 和其他命令),然后运行它们。这是 Bash Shell 的主要功能。要将 Shell 更改为 Bash,请使用 chsh 命令。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 用户管理 |
先决条件 | chsh 命令 |
操作系统兼容性 | Alma • Alpine • Arch • CentOS • Debian • Fedora • Linux • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu • WSL |
预计阅读时间 | 3 分钟 |
如何找出用户的默认 shell?
键入以下命令,使用grep 命令和/etc/passwd文件
找出名为 vivek 的用户的默认 shell :
或者使用 ps 命令,如下所示::
示例输出:
$ grep -w '^vivek' /etc/passwd
vivek:x:1005:1005:,,,:/home/vivek:/bin/zsh
$ ps -p $$
PID TTY TIME CMD
14314 pts/9 00:00:00 zsh
或者运行以下 echo 命令:
您也可以按如下方式使用 getent 命令:输出:
$ echo "$0"
zsh
$ getent passwd vivek
vivek:x:1000:1000:vivek,,,:/home/vivek:/bin/zsh
以上所有输出都表明 Linux 操作系统中名为 vivek 的用户的 shell 是 zsh。有关更多信息,请参阅如何在 Linux 中列出用户。
如何查看我的系统上有哪些可用的 shell?
图 01:如何在 Linux 或 Unix 或 MacOS 上查找可用 shell 列表?
如何切换到 bash 或其他 shell?
在命令行中输入名称,然后按 Enter 键。在此示例中,要从任何 shell 切换到 bash,请输入:
$ bash
如何在 Linux 或类 Unix 系统上更改 shell?
您可以使用 chsh(“更改 shell”)命令更改默认 shell,如下所示。语法为:
您可以使用以下类型命令或名为“command”的内部 bash 命令找到 shell 的完整路径:
请注意,普通用户只能更改自己帐户的登录 shell。超级用户(root)可以使用以下语法更改任何帐户的登录 shell:
或者使用 su 命令而不是 sudo 命令:
$ chsh
$ chsh -s {shell-name-here}
$ sudo chsh -s {shell-name-here} {user-name-here}
$ chsh -s /bin/bash
$ chsh -s /bin/bash vivek
$ type -a bash
$ type -a zsh
$ type -a ksh
$ sudo chsh -s /bin/bash raj
$ su -
# chsh -s /bin/bash monika
总结
对登录 shell 的唯一限制是,shell 命令名称必须在/etc/shells文件中列出,除非调用者是超级用户/root 用户,然后可以添加任何值。具有受限登录 shell 的帐户不得更改其登录 shell。因此,不鼓励将 /bin/rsh 放在 /etc/shells 中,因为意外更改为受限 shell 将阻止用户将其登录 shell 更改回其原始值。使用 man 命令或 help 命令阅读以下手册页:
$ man chsh
$ chsh --help