首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Z shell:一款好用到飞起的shell

什么是 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 "

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

问题反馈

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ON8Tsvbv6K9-0VoyJ66im8WA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券