📌  相关文章
📜  如何在 Linux 中更改默认 Shell

📅  最后修改于: 2021-10-28 03:02:38             🧑  作者: Mango

在大多数 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