Zshell:一款好用到飞起的shell

萱蘇的运维日常 2024-04-03 11:32:11
什么是 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 <<-EOFautoload -U colors && colorsPS1="%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)

MethodCommandcurlsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"wgetsh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"fetchsh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

国内或者印度

MethodCommandcurlsh -c "$(curl -fsSL https://install.ohmyz.sh/)"wgetsh -c "$(wget -O- https://install.ohmyz.sh/)"fetchsh -c "$(fetch -o - https://install.ohmyz.sh/)"

安装 oh-my-zsh成功后,oh-my-zsh 会覆盖原来自定义提示。$HOME 目录下将会有一个名为.oh-my-zsh目录。

配置zsh

# 下载自动补齐、高亮插件cd .oh-my-zsh/pluginsgit clone https://github.com/zsh-users/zsh-syntax-highlighting.gitgit clone https://github.com/zsh-users/zsh-autosuggestions.git# vim ~/.zshrc# 添加插件plugins=(golang git zsh-autosuggestions fast-syntax-highlighting)setopt autocd# 添加原来的自定义配置autoload -U colors && colorsPS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$fg[pink]%}$%b"

重新打开一个新的窗口即可。

问题反馈

若对文中有任何的疑问,或者需要帮助可以通过以下方式进行反馈

直接进行评论或者单独私聊

发送邮件到:mr_xuansu@163.com

更多内容请关注微信公众号:萱蘇的运维日常

0 阅读:1