Mac折腾手记之Zsh

作者: Fuoca 发布于 2020-08-26 更新于 2020-10-9 字数统计 3535字 阅读时长 ≈ 11分47秒

1.什么是Shell?

Shell本质就是一个工具箱,而它的作用呢,顾名思义就是包裹在操作系统内核外面的那层”壳“,这样就好理解为什么那些涉及底层的操作要用它了。Ken Thompson开发的sh是第一种Unix Shell,而各路大神都爱自己造工具,于是乎各种shell就出现了。作为业余程序猿学会怎么用,我就知足了。

2.为什么是Zsh?

Mac里自带的Shell很多,通过命令:cat /etc/shells
系统会显示:

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

这么多种Shell里面,我用过的就Bash和Zsh,前者是Mac和Linux的缺省配置,而后者功能更强大而且基本兼容前者。重要的是后者有一个非常出色的开源的插件包oh-my-zsh ,让Zsh原本繁琐的配置过程变得美好起来了。

3.安装与配置

3.1 Zsh的安装与配置

3.1.1 安装Zsh

如果全新安装,建议使用:brew install zsh

3.1.2 配置Zsh

Zsh替换Bash的方法:chsh -s /bin/zsh,重启终端后即为Zsh了。
注意:你之前如果使用过Bash,肯定修改了它的配置文件~/.bash_prorile。同样,现在使用Zsh,自己也有配置文件~/.zshrc,就需要将原来的配置拷贝过来。

经测试,安装 oh-my-zsh 可选择替换Bash,键入Y即可。

3.2 oh-my-zsh的安装与配置

3.2.1 安装oh-my-zsh

官方建议使用curl或者wget
使用curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

使用wget

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

使用fetch

sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

3.2.2 配置oh-my-zsh

oh-my-zsh的配置也是在~/.zshrc完成,很多具体设置结合功能在后面介绍。
这里单独讲一个好玩的设置ZSH_THEME,其实就是定义Zsh的主题配色。
缺省是:ZSH_THEME="robbyrussell"
可以把它设置为:ZSH_THEME="random",这样每次打开终端都会给你一个惊喜。

3.2.3安装 Powerline 字体

主题设置完成后,终端中却出现了乱码的字符:

乱码字符

这是由于我使用的 agnoster 主题中含有特殊字符,需要安装 Powerline  字体支持才能正常显示。打开终端,参考以下命令安装 Powerline 字体:

cd ~/Downloads && git clone https://github.com/powerline/fonts.git	#将 Powerline 字体文件下载到「下载」文件夹中
cd fonts && ./install.sh	#安装所有 Powerline 字体
cd && rm -rf ~/Downloads/fonts	#删除下载的字体文件

随后,我们按 ⌘, 打开终端偏好设置,在「描述文件 > 文本」中更改字体。

更改字体选项

在弹出的窗口中选择一款 Powerline 字体(所有可选项请参考 Powerline 的 GitHub 页面),调整一下字体大小即可。在这里我选择了 DejaVu Sans Mono for Powerline 字体(逮虾户!),大小设置为 14 磅。

我的字体设置

此时回到终端,发现表示文件目录的箭头已经可以正常显示了:

4 功能介绍

4.1 Zsh的缺省功能

Zsh的缺省功能就很强大,当然配置后会更加强大。

4.1.1 自动补全

Zsh的补全功能非常贴心,按TAB可以补全命令、路径还有参数。

4.1.2 杀进程

Bash杀进程需要先用ps aux | grep xxx查找进程的PID,然后才能用kill PID
Zsh可以直接就kill XXX后面按TAB ,这样简单很多。

kill zsh
# 按下TAB后
70183 jerryao zsh
71466 jerryao zsh

4.1.3 取别名

Zsh不仅可以设置通用别名来简化操作,比如:

alias cls='clear'
alias ll='ls -l'
alias la='ls -a'
alias vi='mvim'

牛逼的是你还可以用别名来针对文件类型设置对应的打开程序,比如:

alias -s gz='tar xzvf'
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xzvf'
alias -s py='mvim'
alias -s rb='mvim'
alias -s html='mvim'
alias -s js='mvim'
alias -s java='mvim'
alias -s txt='mvim'

4.1.4 历史记录

Zsh的history可以跨session,可以共享,这样就一进行历史记录的受限查询。比如,输入git,再按向上箭头,会搜索前面所有的git命令。

4.1.5 通配符搜索

l *.png查找当前目录下所有png文件,l **/*.png递归查找。

4.2 oh-my-zsh常用插件

Oh My Zsh 支持许多强大的插件,可以实现语法高亮、命令自动补全等功能。你可以执行以下命令查看自带的插件:

ls ~/.oh-my-zsh/plugins/

对于自带插件的功能及使用,你可以前往 Oh My Zsh 官方 Wiki  查看。

要启用某个插件,只需要用 vim ~/.zshrc 编辑 zsh 配置文件,定位到 plugins 一行,在括号中添加需要的插件名称,以空格分隔。保存退出后,别忘了执行  source ~/.zshrc 使配置立即生效。

修改 plugins 一行的配置启用插件

4.2.1 git

默认启用的插件,提供了各种 git 命令的缩写。其 官方说明  提供了所有缩写的参考。

4.2.2 z

自带插件,添加到配置文件中即可启用,可以帮助你快速跳转到访问过的文件夹。具体使用方法请自行 Google 或参考 GitHub 文档

4.2.3 zsh-syntax-highlighting

输入正确的常用命令会以绿色高亮显示,输入错误则会显示其他的颜色。使用以下命令安装:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

下载完成后,别忘了把 zsh-syntax-highlighting 添加到配置文件的 plugins 中,并执行 source ~/.zshrc 使配置生效。

4.2.4 zsh-autosuggestions

输入命令时,会用浅色字体给出建议的命令,按  即可自动补全。使用以下命令安装:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

下载完成后,别忘了把 zsh-autosuggestions 添加到配置文件的 plugins 中,并执行 source ~/.zshrc 使配置生效。

为了让提示的字体颜色正确显示,我们还需要执行:

echo "export TERM=xterm-256color" >> ~/.zshrc	#声明终端类型
echo "ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'" >> ~/.zshrc	#设置建议命令的文字颜色

你可以修改 fg= 后的数字来指定建议命令的文字颜色,数字与颜色的对应表请参考 这里

5.小结

至此,你已经完成了 Oh My Zsh 在 macOS 下的基本配置。现在你获得了一个更漂亮、更强大的终端,相信这能让你在终端下进行操作时事半功倍。

https://jianshu.com/p/0f55984efdc4

来源:FuocaのBlog,欢迎分享,欢迎评论,( QQ:3283906509 )
本站资源有的自互联网收集整理,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
Mac系统的访达Finder侧边栏目录的英文转中文
<< 上一篇 2020年7月27日 pm4:24
Mac删除默认的ABC输入法
下一篇 >> 2020年8月26日 am4:37

发表评论

  • 2用户数(个)
  • 18资源数(个)
  • 0本周更新(个)
  • 0今日更新(个)
  • 293稳定运行(天)

提供最优质的资源集合

立即查看 了解详情