在大多数 Linux 系统中,默认 shell 是 bash,但我们可以将其更改为任何其他 shell,例如 zsh、fish、sh 和任何其他 shell。在本文中,我们将展示如何将该默认 shell 更改为 Linux 系统中的任何其他 shell。要更改用户的shell,首先让我们找到当前的shell。我们可以通过多种方式更改 Linux 系统上任何用户的 shell。我们将看到三种更改用户外壳的方法。
查找您当前的外壳名称
在 Linux 系统中,有一个文件是 /etc/passwd。 /etc/passwd 文件存储用户帐户的基本信息,登录时需要这些信息。通过使用这个文件,我们可以识别当前用户登录的shell。
我们将使用以下命令在 /etc/file 中查看当前用户信息:
grep `whoami` /etc/passwd
在上图中我们可以看到用户nishant(当前用户)的主目录是/home/nishant,shell是/bin/sh
列出你在 Linux 中的 shell
现在要更改shell,首先我们需要查看系统上安装了哪些shell。我们可以使用以下命令检查已安装的 shell:
cat /etc/shells
这将显示所有 shell,如下所示:
在继续之前,首先了解谁可以更改用户外壳
- 用户可以将 shell 更改为 /etc/shells/ 中列出的任何其他 shell。
- root 帐户可用于更改任何其他用户登录 shell。
- 如果帐户具有受限的登录 shell,则只有 root 可以更改该用户的 shell。
将默认 sh shell 更改为 bash
使用 usermod 命令
usermod 是修改系统帐户文件的命令。 usemod 可以通过修改文件 /etc/passwd 来改变用户的 shell。 usermod 命令提供-s或–shell选项来更改用户的登录 shell。
在此示例中,我们将更改名为 nishant 的用户的 shell。我们将使用 usermod 命令将用户 nishant 的 shell 从/bin/sh更改为/bin/bash。
sudo usermod --shell /bin/bash nishant
使用 usermod 命令在 –shell 选项后提及 shell 和 usernmae。
现在您可以看到 shell 的使用发生了变化。在上面的命令中,将 nishant 替换为需要更改 shell 的用户名。
使用 chsh 实用程序
chsh 是更改用户登录 shell 的实用程序。 chsh 提供了 -s 选项来更改用户的 shell。此方法还会修改文件 /etc/passwd。使用以下命令通过 chsh 更改 shell:
chsh -s /bin/bash nishant
将用户 Shell 更改为 /etc/passwd 文件
正如我们在上述两种方法中看到的,usermod 命令和 chsh 实用程序修改 /etc/passwd 文件并更改用户 shell。我们也可以通过编辑 /etc/passwd 文件来手动执行此操作。只需更改 /etc/passwd 文件中的用户名和主目录后的 shell 并保存文件。
nano /etc/passwd