什么是 Z shell ?
Z Shell(简称Zsh)和Bourne-Again SHell(简称Bash)都是Unix/Linux操作系统中的两种主要的Shell,它们都是用于与操作系统进行交互并执行命令的程序。虽然两者都属于shell范畴,但Zsh在设计和功能上是对Bash的一个扩展和增强。
Z Shell(Zsh):
增强的功能:Zsh基于Bash,并在此基础上增加了很多高级特性,比如更智能的命令补全系统,它可以自动补全命令及其参数,甚至包括函数、别名和历史记录中的命令片段。
高度可定制:Zsh允许用户深度定制其工作环境,例如,可通过Oh My Zsh这样的项目轻松配置和美化命令提示符、加载插件和主题。
语法糖:Zsh提供了更多的便利语法,例如内联通配符扩展、更灵活的变量替换规则以及一些额外的控制结构。
便捷性:Zsh在用户体验上有更多优化,比如自动纠正命令或路径的拼写错误。
配置文件:Zsh的主要配置文件是~/.zshrc,在登录shell中会读取.zprofile。
本文主要介绍zsh的安装。
安装配置zsh
安装zsh
# yum 安装 zsh
[root@huawei1 ~]# yum update -y
[root@huawei1 ~]# yum install zsh -y
# 设置 zsh 为默认shell
[root@huawei1 ~]# usermod -s /bin/zsh root
有些操作系统可能使用chsh -s /bin/zsh 将当前登录的用户shell设置为zsh,若要将其他用户shell设置为zsh,则只需加上username即可。
配置shell
zsh 相关配置文件
这些配置文件位置通常在 ~/、/etc/ 或者 /etc/zsh/ 目录下
zshrc:这是Zsh的主要配置文件,它会在每次启动一个新的交互式shell时被读取。在这个文件中,你可以设置环境变量、别名、函数、shell选项、主题以及其他个性化设置。例如,你可以在这里加载插件、自定义命令提示符和定义各种shell行为。
zshenv:这个文件在任何情况下都会被调用,无论是交互式shell还是非交互式shell。它用于设置全局环境变量和基本配置,通常用来做最小化的初始化设置,因为它会被所有的Zsh实例执行。
zprofile:在登录shell中会被读取一次,通常用于设置那些只应在登录shell中执行的命令或变量,比如设定PATH环境变量、加载全局别名等。
zlogin:与zprofile类似。
zlogout:当用户退出登录shell时,这个文件中的命令会被执行,通常用于清理环境、执行登出后的脚本任务等。
zshrc:系统级别的全局配置文件,影响所有用户。用户在个人的~/.zshrc中可以覆盖这些设置。
[root@huawei1 ~]# cat >> /etc/zshrc <<-EOF
autoload -U colors && colors
PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$fg[pink]%}$%b "
EOF
autoload -U colors && colors
autoload 是Zsh的一个特性,它允许在首次使用某个函数或命令时动态加载(而不是在启动shell时一次性加载所有功能)。这里的 -U 参数表示“更新”模式,即如果函数已经被定义过,仍然尝试重新加载。
colors 是一个启用Zsh内建色彩支持的函数,用于在提示符和其他输出中使用ANSI转义码来设置文本颜色和样式。
PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$fg[pink]%}$%b "
PS1 是Zsh的主提示符环境变量,用于定义命令行提示符的格式。
这段字符串描述了一个复杂的命令行提示符结构,其中包含了颜色和样式控制:
%B 开启粗体(Bold)样式
%{$fg[red]%} 设置前景色为红色
[ 开始括号,此处未显示颜色,但仍保持红色前景色
%{$fg[yellow]%}%n 将用户名(%n)显示为黄色
%{$fg[green]%}@ 符号 "@" 显示为绿色
%{$fg[blue]%}%M 主机名(%M)显示为蓝色
%{$fg[magenta]%}%~ 当前工作目录的简化形式(%~)显示为洋红色
%{$fg[red]%}] 结束括号,并恢复到红色前景色
%{$fg[pink]%}$ 表示命令提示符,通常是一个美元符号,这里显示为粉色
%b 关闭所有字形属性(如粗体、斜体等)
所以,整个提示符看起来大致类似于 红色[ 黄体用户名 绿色@ 蓝色主机名 洋红色路径 红色] 粉色$ 的格式,并且各个部分都有相应的颜色。这种提示符设计旨在帮助用户快速识别当前的工作环境和位置,增加了命令行界面的可视性和可读性。
修改前:
修改后:
安装框架oh-my-zsh
目前网络上有很多用于管理 zsh 配置的框架,像Oh-my-zsh、Prezto、Zinit 、Antigen等等。其中,Oh My Zsh 深受用户欢迎。它配备了许多默认功能,改善您的命令行体验,如自动完成、插件、主题、语法高亮、alias 别名、自定义提示和历史命令管理。
安装命令
通常访问(可访问github)
国内或者印度
安装 oh-my-zsh成功后,oh-my-zsh 会覆盖原来自定义提示。$HOME 目录下将会有一个名为 .oh-my-zsh 目录。
配置zsh
# 下载自动补齐、高亮插件
cd .oh-my-zsh/plugins
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
git clone https://github.com/zsh-users/zsh-autosuggestions.git
# vim ~/.zshrc
# 添加插件
plugins=(golang git zsh-autosuggestions fast-syntax-highlighting)
setopt autocd
# 添加原来的自定义配置
autoload -U colors && colors
PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$fg[pink]%}$%b "
重新打开一个新的窗口即可。
问题反馈
领取专属 10元无门槛券
私享最新 技术干货