什么是zsh
Z shell是一个Linux用户很少使用的power-shell,这是由于大多数Linux产品安装,以及默认使用bash shell。几乎每一款Linux产品都包含有zsh,通常可以用apt-get、urpmi或yum进行安装。
Z shell(zsh[1])是 Linux 和类 Unix 系统中的一个命令解析器[2]。 它跟 sh (Bourne shell) 家族的其它解析器(如 bash 和 ksh)有着相似的特点,但它还提供了大量的高级特性以及强大的命令行编辑功能,如增强版 Tab 补全。
centos7默认情况下没安装zsh。
相比bash,zsh兼容bash,且有更灵活多样的配置、更强大的命令补全等,提供了更好的交互易用性;bash是绝大部分*nix系统的默认shell,是事实上的标准shell,我们通常所说的shell脚本其实指的是bash脚本,所以bash肯定是使用最广泛的主流shell,但若是你想要找一个既能兼容bash,又要比bash更强大的shell,那就只有zsh了。
zsh有什么用
什么是ZSH,为什么要使用它而不是Bash?
参考URL:http://www.howtoip.com/what-is-zsh-and-why-should-you-use-it-instead-of-bash/
- 自动cd:只需输入目录的名称即可
- 递归路径扩展:例如“/ u / lo / b”扩展为“/ usr / local / bin”
- 拼写更正和近似完成:如果您输入目录名称时出现轻微错误,ZSH将为您解决此问题
- 插件和主题支持: ZSH包含许多不同的插件框架
总结: 一般默认shell完全够用,看你个人需求决定是否使用zsh。
zsh安装和切换
centos7默认情况下没安装zsh。
Redhat系的Linux:yum install zsh
Debian系的Linux:sudo apt-get install zsh
查看shell列表
[root@VM_0_14_centos ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/bin/zsh
[root@VM_0_14_centos ~]#
切换shell为zsh
[root@VM_0_14_centos ~]# chsh -s /bin/zsh
Changing shell for root.
Shell changed.
[root@VM_0_14_centos ~]#
然后重新登录系统即可
登录后,查看当前shell
[root@VM_0_14_centos ~]# echo $SHELL
Oh-My-Zsh
官网:ohmyz.sh
官网: https://github.com/ohmyzsh/ohmyzsh
一方面zsh的可定制性非常强,另一方面也提高了使用门槛,因此zsh出现的早期,使用它的人并不多。后来,社区出现了很多zsh的颜色主题和插件项目,让我们可以快速上手;再后来还出现了 oh-my-zsh 这样的zsh主题和插件的集成项目,让zsh的使用门槛基本就消失了。
Oh-My-Zsh是ZSH最受欢迎的插件框架,它还附带了许多内置插件和主题。 还有一些其他插件框架,包括Antigen ,它是ZSH的完整软件包管理器,但是Oh-My-Zsh有很多内置的插件,并且工作得很好。
具体安装可以参考官网。这里简单提醒一下,安装oh-my-zsh之前需要的东西 如下:
它需要提前装好zsh, 检测有没有装zsh 使用命令 zsh --version
Prerequisites
A Unix-like operating system: macOS, Linux, BSD. On Windows: WSL is preferred, but cygwin or msys also mostly work.
Zsh should be installed (v4.3.9 or more recent). If not pre-installed (run zsh --version to confirm), check the following instructions here: Installing ZSH
curl or wget should be installed
git should be installed (recommended v1.7.2 or higher)
具体的安装命令:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
总结: Oh-My-Zsh是ZSH最受欢迎的插件框架,安装Oh-My-Zsh之前需要安装zsh,这是两个东西。
卸载zsh及oh-my-zsh
Centos7解决zsh卸载后导致无法登陆的问题
参考URL: https://code84.com/838311.html
cat /etc/shells
chsh -s /bin/bash
sudo apt-get --purge remove zsh
使用命令卸载zsh及其配置相关文件(卸载后重连终端可恢复至原始shell)
注意: 以上命令有坑,zsh卸载的不够彻底,/etc/passwd里的root账户使用的还是zsh,但是zsh已经卸载了,根本找不到,所以就一直登陆不进去,即使密码是正确的。
解决方法很简单,只需要能在不用账号密码登陆的前提下,修改 /etc/passwd 的内容就行。 把root登录默认shell改成 /bin/bash
$ cat /etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh