Linux如何设置bash为默认shell

大部分情况下,Linux的默认shell是bash,但某些Linux发行版,例如Kali,默认的终端是zsh,本文以Kali为例,将Kali的默认shell从zsh改为bash。

其实Kali早期的shell也是bash,2020 版本之后:Kali团队将默认shell更改为zsh。zsh增加了很多功能,例如最直观的就是当你输入字母就会有补全提示,但这也给我带来很多困扰,尤其是我连接多个其他Linux终端的时候,服务器之间经常切换,就Kali用起来不一样,让我感到突兀,最严重的问题是我用了zsh之后,登录终端后,我的小键盘区按键无法使用,不知道什么情况,于是我决定将Kali的终端改成bash。

接下来我们首先使用命令来查看一下当前的shell,echo $SHELL ,这会查看使用哪个shell为默认shell。如下图所示:

第一种修改方式:命令行工具chsh

我目前的使用的用户是root,默认shell是zsh,我们首先用最简单的方式来修改root用户默认shell:

bash 复制代码
chsh -s /usr/bin/bash
  • chsh 是 "change shell" 的缩写,用于更改用户的默认登录 shell。
  • -s 是 chsh 的选项,表示指定新的 shell 路径。
  • /usr/bin/bash:这是bash的路径。

设置好之后,我们重启终端,就可以使用bash了。注意,这种方式只修改当前用户的默认shell,其他的用户不变。

第二种修改方式:修改/etc/passwd文件

第二种方式,非常规方式,直接修改/etc/passwd文件,注意,这个文件root才有更改权限。所以用root用户操作或者sudo命令执行。我这里是在虚拟机环境,所以我直接用root用户。

bash 复制代码
vim /etc/passwd

显示如下图所示:

这个文件记录着用户账户的基本信息,也包含每一个用户默认的shell,每一行用冒号分割成七个部分,每个部分的含义如下:

  1. 用户名:用户的登录名。
  2. 密码占位符:现代系统中通常是一个占位符(如 x),实际密码存储在 /etc/shadow 文件中。
  3. 用户 ID(UID):用户的唯一标识符。
  4. 组 ID(GID):用户所属主组的标识符。
  5. 用户信息:用户的描述性信息(如全名或联系方式)。
  6. 主目录:用户的主目录路径。
  7. 登录 shell:用户登录时使用的默认 shell。

这里面我们直接修改第一行root用户的第7项,将zsh改成bash。之后保存退出。

同样重新进入终端,我们就可以发现我们的shell变成了bash。

注意事项:

我们通过第二种方式也成功的更改了默认shell,其实这两种更改shell的原理是一样的,chsh命令也是通过修改系统配置文件/etc/passwd中对应用户的shell字段来实现shell的更改。相比之下,用第一种方式更为稳妥。另外还有一些注意点:

  1. chsh命令会验证用户指定的shell路径是否正确,并且该shell是否存在于系统中。如果输入错误,例如chsh -s /bin/lll,那么再次启动终端发现无法登录,所以当用chsh之后发现输出Warning,那么要重新设置成一个有效的路径。

    bash 复制代码
    chsh -s /bin/lll
    chsh: Warning: /bin/lll is an invalid shell
    chsh: Warning: /bin/lll does not exist
  2. Linux系统通常会维护一个/etc/shells文件,其中列出了所有有效的登录shell。所以在更改用户的登录shell之前,最好先检查/etc/shells文件以确保所选择的shell是被允许的。

相关推荐
墨风如雪4 小时前
甲骨文云(Oracle Cloud)最新注册防坑记录:被ABC了怎么办?
服务器
William Dawson5 小时前
2026软考中级系统集成项目管理工程师备考笔记
笔记·系统集成项目管理工程师
xingfujie5 小时前
运维实战攻略
运维
HHFQ5 小时前
在 systemd 场景下的 CPU 限制方式
linux
道清茗5 小时前
【RH294知识点汇总】第 9 章 《 自动执行 Linux 管理任务 》常见问题
linux·运维·服务器
山羊硬件Time5 小时前
自动化管理Linux的好工具:shell script
linux·嵌入式硬件·硬件工程师·基带工程·硬件开发
北方的流星6 小时前
华三路由器NAT配置
运维·网络·华三
wj3055853786 小时前
Codex + Git 开发环境配置指南(WSL版)
linux·运维·git
星马梦缘7 小时前
如何切换window-ubuntu双系统【方案二】
linux·运维·ubuntu
2501_927283587 小时前
荣联汇智助力天津艺虹打造“软硬一体”智慧工厂,全流程自动化引领印刷包装行业数智变革
大数据·运维·数据仓库·人工智能·低代码·自动化