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

什么是 Z shell ?

在这里插入图片描述

Z Shell(简称Zsh)和Bourne-Again SHell(简称Bash)都是Unix/Linux操作系统中的两种主要的Shell,它们都是用于与操作系统进行交互并执行命令的程序。虽然两者都属于shell范畴,但Zsh在设计和功能上是对Bash的一个扩展和增强。

Z Shell(Zsh)

  1. 增强的功能:Zsh基于Bash,并在此基础上增加了很多高级特性,比如更智能的命令补全系统,它可以自动补全命令及其参数,甚至包括函数、别名和历史记录中的命令片段。
  2. 高度可定制:Zsh允许用户深度定制其工作环境,例如,可通过Oh My Zsh这样的项目轻松配置和美化命令提示符、加载插件和主题。
  3. 语法糖:Zsh提供了更多的便利语法,例如内联通配符扩展、更灵活的变量替换规则以及一些额外的控制结构。
  4. 便捷性:Zsh在用户体验上有更多优化,比如自动纠正命令或路径的拼写错误。
  5. 配置文件:Zsh的主要配置文件是~/.zshrc,在登录shell中会读取.zprofile

本文主要介绍zsh的安装。

安装配置zsh

  1. 安装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即可。

  1. 配置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%{ f g [ r e d ] fg[red]%}[%{ fg[red]fg[yellow]%}%n%{ f g [ g r e e n ] fg[green]%}@%{ fg[green]fg[blue]%}%M %{ f g [ m a g e n t a ] fg[magenta]%}%~%{ fg[magenta]fg[red]%}]%{ f g [ p i n k ] fg[pink]%} 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)

MethodCommand
curlsh -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)"

国内或者印度

MethodCommand
curlsh -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/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 "

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

问题反馈

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

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

  • 发送邮件到:mr_xuansu@163.com

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

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值