当前位置: 首页 > web >正文

Linux Shell 切换

在 Linux 系统中,切换至 Bash Shell

在 Linux 系统中,切换至 Bash Shell 的方法如下:
临时切换到 Bash

直接在终端输入以下命令,启动一个新的 Bash 会话:
bash

退出时输入 exit 或按 Ctrl+D 返回原 Shell。
永久切换默认 Shell

使用 chsh 命令修改默认 Shell(需管理员权限或当前用户密码):
chsh -s /bin/bash

修改后需 重新登录终端 或重启系统生效。
验证当前 Shell

查看当前 Shell:

echo $SHELL

若输出 /bin/bash 则表示已切换成功。
检查 Bash 版本:

bash --version

其他注意事项

权限问题:若 chsh 提示权限不足,可尝试:

sudo chsh -s /bin/bash 用户名

可用 Shell 列表:查看系统支持的 Shell:

cat /etc/shells

确保 /bin/bash 在列表中。
恢复原 Shell

若需恢复为原 Shell(如 Zsh),运行:
chsh -s /bin/zsh

如有其他问题(如命令无效或 Shell 未安装),请提供具体错误信息以便进一步排查。


查看所有已安装的 Shell:

在 Linux 系统中,可以通过以下方法查看所有已安装的 Shell:
查看 /etc/shells 文件

该文件列出了系统支持的所有合法 Shell:
cat /etc/shells

示例输出:

/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/zsh
/bin/tcsh
/bin/csh

使用 chsh -l(部分系统支持)

chsh -l

功能与 cat /etc/shells 相同,但并非所有 Linux 发行版都支持此命令。
查看当前使用的 Shell

当前会话的 Shell:

echo $0  # 输出如 /bin/bash 或 bash

用户默认登录 Shell:

echo $SHELL  # 显示 /etc/passwd 中配置的默认 Shell

其他相关命令

通过 /etc/passwd 查看用户与 Shell 的关联:

grep "^$USER" /etc/passwd | cut -d: -f7

使用 ps 命令查看当前 Shell 进程:

ps -p  -o comm=

注意事项
/bin/sh 通常是 bash 或 dash 的符号链接,具体取决于系统。

若 /etc/shells 不存在,可能是系统未正确配置,需手动检查 /bin/ 或 /usr/bin/ 下的 Shell 可执行文件。

如需切换 Shell,可使用 chsh -s /path/to/shell(需重新登录生效)。


添加合法 shell

在 Linux 系统中,添加合法的 Shell 需要以下步骤:
查看当前可用的 Shell

首先,检查 /etc/shells 文件,查看系统已支持的 Shell:
cat /etc/shells

示例输出:

/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/zsh
/bin/tcsh
/bin/csh

安装新的 Shell

如果目标 Shell 不在 /etc/shells 中,需先安装。常见 Shell 的安装方法如下:

安装 Zsh
Debian/Ubuntu:

sudo apt update && sudo apt install zsh

RHEL/CentOS/Fedora:

sudo dnf install zsh  # 或 sudo yum install zsh

安装 Fish
Debian/Ubuntu:

sudo apt install fish

RHEL/CentOS:

sudo dnf install fish

其他 Shell(如 Ksh、Tcsh)
sudo apt install ksh tcsh # Debian/Ubuntu
sudo dnf install ksh tcsh # RHEL/CentOS

将 Shell 添加到 /etc/shells

安装后,需手动将 Shell 的路径添加到 /etc/shells 文件,使其成为合法登录 Shell:
echo “/bin/zsh” | sudo tee -a /etc/shells # 以 Zsh 为例

或直接编辑文件:
sudo nano /etc/shells

添加路径(如 /bin/zsh)后保存。
验证并切换 Shell

验证是否添加成功:

cat /etc/shells | grep zsh

切换用户默认 Shell:

chsh -s /bin/zsh  # 切换当前用户

sudo chsh -s /bin/zsh username # 切换其他用户

需重新登录生效。

注意事项
权限要求:修改 /etc/shells 需 root 权限。

路径正确性:确保添加的 Shell 路径真实存在(可通过 which zsh 检查)。

安全性:避免添加非标准或未经验证的 Shell,可能引发安全风险。

如需进一步调整(如限制用户登录),可参考 /sbin/nologin 的用法。

http://www.xdnf.cn/news/9211.html

相关文章:

  • Transformer 通关秘籍10:词向量运算:queen=king-man+wowem
  • 2025年5月6日 飞猪Java一面
  • 2025 年江西研究生数学建模竞赛题C题基于大雾背景视频学习的能见度回归建模完整思路 模型代码 结果 成品分享
  • 为(FramePack)的视频生成添加首尾帧功能
  • OpenGL Chan视频学习-11 Uniforms in OpenGL
  • 【洛谷P9303题解】AC- [CCC 2023 J5] CCC Word Hunt
  • 功耗仅4W!迷你服务器黑豹X2(Panther X2)卡刷、线刷刷入Armbian(ubuntu)系统教程
  • 鸿蒙OSUniApp 制作美观的文章列表展示组件#三方框架 #Uniapp
  • 11.12 LangGraph全局共享状态实战:200ms实现50+仓库AI协同,效率飙升!
  • vscode的Embedded IDE创建keil项目找不到源函数或者无法跳转
  • windows中Redis、MySQL 和 Elasticsearch启动并正确监听指定端口
  • 亚马逊服务器磁盘扩容一般操作
  • 基于springboot的校园商铺管理系统的设计与实现
  • 大型三甲医院更换HIS系统全流程分析与经验考察(下)
  • 【React】-组件中实现高性能鼠标跟随提示框的完整优化过程
  • AI赋能引爆短剧全球化风潮,腾讯云媒体处理助力短剧平台出海吸金
  • 中国免税品人工智能商城:引领免税品市场新潮流
  • transformer总结
  • 华为OD机试真题——斗地主之顺子(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • QAtomicInt原子变量的CAS(Compare And Swap)写法与优缺点
  • 通信算法之279:数据链/自组网通信设备--MIMO(2T2R)-OFDM系统系列--实际工程应用算法代码--2.OFDM参数设计及帧结构设计
  • 批量无人值守装机(使用cobbler批量安装windows)
  • 用提示词写程序(2),VSCODE+Claude3.5开发edge扩展插件
  • SuperMap GIS基础产品FAQ集锦(20250519)
  • vue + ant-design + xlsx 实现表格数据导出
  • AcrelEMS 3.0智慧能源管理平台:构建企业微电网数智化中枢
  • watchEffect
  • python神经网络学习小结2
  • python时间序列处理
  • 总结:进程和线程的联系和区别