chsh命令_Linux chsh命令:查看和修改当前登录的Shell
2023-06-13 09:11:58 时间
chsh 命令本身并不复杂,它的功能比较单一,就是负责查看(显示)和修改我们系统的登录 Shell。想修改登录 Shell,首先要知道我们的系统安装了哪些 Shell。这里有两种方法可以查看。
方法一:
[roc@roclinux ~]$ chsh -l /bin/sh /bin/bash /sbin/nologin /bin/zsh
方法二:
[roc@roclinux ~]$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/zsh
其实chsh -l命令本质上也是去查看 /etc/shells 文件。
查看当前正在使用的 Shell使用一个环境变量,就可以查看到当前正在使用的 Shell 啦:
[roc@roclinux ~]$ echo $SHELL /bin/bash
注意:SHELL一定要大写。可以看到,我们目前使用的 Shell 是 bash。
听说 zsh 不错,于是我们就通过在命令行执行 zsh 命令切换到了 zsh 环境。可是,为什么查看当前 Shell 类型仍然是 /bin/bash 呢?
[roc@roclinux ~]$ zsh [roc@roclinux]~% echo $SHELL /bin/bash [roc@roclinux]~%
请注意,我们虽然执行了 zsh,但是所谓 当前的 Shell 是一个大环境的概念,是针对一个已登录的用户而言的。而我们执行 zsh 只是启动了一个 zsh 的解释器程序而已,并没有改变大环境。如果想改变 当前的 Shell ,那么还是要求助于 chsh 才可以。
将 Shell 环境真正切换到 zsh[roc@roclinux ~]$ chsh -s /bin/zsh Changing shell for roc. Password: Shell changed.
使用 chsh 命令的-s选项就可以修改登录的 Shell 了。
如果我们这时候满怀欣喜地执行 echo $SHELL,就会发现然输出的仍是 /bin/bash。这是因为 chsh 改变的是我们登录 Shell 的配置,我们必须退出再重新登录 Shell,才可以完全投入到 zsh 的怀抱。
真是一波三折,退出并重新登录后,终于看到了我们想要的 /bin/zsh 了:
[roc@roclinux]~% echo $SHELL /bin/zshchsh -s 到底修改了哪里
chsh -s其实修改的就是 /etc/passwd 文件中和我们所登录的用户名相对应的那一行。现在我们来查看一下:
[roc@roclinux]~% cat /etc/passwd|grep ^roc roc:x:1001:1001::/home/roc:/bin/zsh
可以发现,输出内容的最后部分已经变成了 /bin/zsh 了。重启系统的时候,Linux 就会读取这一命令来启动新的 Shell。
好了,我们要恢复正常的工作环境,把 Shell 修改回我们熟悉的 /bin/bash 了:
[roc@roclinux]~% chsh -s /bin/bash Changing Shell for roc. Password: Shell changed.
21906.html
linux相关文章
- linux安装卸载软件的命令_shell命令卸载软件
- Linux卸载光盘:一步搞定(linux卸载光盘)
- 【中国制造引领下——Linux操作系统创新发展】(国产操作系统linux)
- Linux文件后缀名指南(linux文件的后缀名)
- Linux 地址获取网关信息教程(linux获取网关)
- Linux下查看文件夹的技巧(查看文件夹linux)
- 给Linux用户组设置新的权限(修改用户组linux)
- 探索Linux的七个运行级别(linux的7种运行级别)
- Linux下妙用命令:启动程序简单又快捷(linux命令启动程序)
- 快速上手:Linux环境配置命令指南(linux环境配置命令)
- 学会Linux下Sequence Command的魅力(linuxseq命令)
- 从零开始学习使用 Linux 中的w命令(-w命令linux)
- Linux命令模拟器:强大而又实用(linux命令模拟器)
- 命令退出top命令:Linux的解决方案(linux怎么退出top)
- Linux下删除用户的命令指南(linux删除用户的命令)
- Linux的分支:开放的新世界(linux的分支)
- 使用tar命令备份Linux服务器系统(tar备份linux系统)
- 『Linux内核编译入门:活学活用命令』(编译linux内核命令)
- 强制解除Linux: 迈出艰难的一步(强制卸载linux)
- Linux下安装软件的命令指南(linux下载软件的命令)
- 命令 测试Linux系统:从test命令开始(linux中test)
- Linux中断命令简介(linux中断命令)
- Linux中的神奇作用(在linux中的作用)