前言
Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
实际上 Shell 是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell 有自己的编程语言用于对命令的编辑,它允许用户编写由 shell 命令组成的程序。Shell 编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的 Shell 程序与其他应用程序具有同样的效果
常见的 shell 包括:Bash 、Korn Shell 、C Shell、Z Shell 等。
What are the best UNIX shells - Slant
Zsh
传统的 bash 功能比较简陋,且不美观。下面基于 Ubuntu22.04 LTS 系统,安装 zsh,并使用 oh-my-zsh 对终端进行美化。Oh My Zsh 是基于 zsh 命令行的一个扩展工具集,提供了丰富的扩展功能。
环境配置
- 安装基本工具
|
|
- 设置默认终端为 zsh(注意:不要使用 sudo)
|
|
- 安装 oh-my-zsh
|
|
注意:同意使用 Oh-my-zsh 的配置模板覆盖已有的 .zshrc
- 从
.bashrc
中迁移配置(可选)
如果之前在使用bash
时自定义了一些环境变量、别名等,那么在切换到zsh
后,需要手动迁移这些自定义配置。
|
|
root
用户在执行sudo su
命令后,再运行上述代码查看、手动复制、粘贴自定义配置
配置主题
- 下载
haoomz
主题
|
|
- 编辑
~/.zshrc
文件,将ZSH_THEME
设为haoomz
。当然也可以设置为其他主题,例如lukerandall
、robbyrussell
|
|
- 查看内置主题(可选):可以在内置主题样式截图中查看所有 zsh 内置的主题样式和对应的主题名。这些内置主题已经放在 ~/.oh-my-zsh/themes 目录下,不需要再下载
|
|
- 下载最受欢迎的
powerlevel10k
主题(可选):根据 What’s the best theme for Oh My Zsh? 中的排名,以及自定义化、美观程度, powerlevel10k 主题是最受欢迎的
|
|
安装插件
oh-my-zsh
已经内置了 git
插件,内置插件可以在 ~/.oh-my-zsh/plugins
中查看,下面介绍一下常用插件,更多插件可以在 awesome-zsh-plugins 里查看
- 下载zsh-autosuggestions到本地的
~/.oh-my-zsh/custom/plugins
目录:一个命令提示插件,输入命令时,会自动推测可能需要输入的命令,按下->
或End
可以快速采用建议
|
|
- 下载zsh-syntax-highlighting到本地的
~/.oh-my-zsh/custom/plugins
目录:一个命令语法校验插件,在输入命令的过程中,若指令不合法,则指令显示为红色,若指令合法就会显示为绿色
|
|
oh-my-zsh
内置了z
插件。z
是一个文件夹快捷跳转插件,对于曾经跳转过的目录,只需要输入最终目标文件夹名称,就可以快速跳转,避免再输入长串路径,提高切换文件夹的效率oh-my-zsh
内置了extract
插件。extract
用于解压任何压缩文件,不必根据压缩文件的后缀名来记忆压缩软件。使用x
命令即可解压文件- oh-my-zsh 内置了
web-search
插件。web-search
可以在命令行中使用搜索引擎进行搜索。使用搜索引擎关键字+搜索内容
即可自动打开浏览器进行搜索 - 启用插件:修改
~/.zshrc
中的插件列表
|
|
Tips:部分插件需要参考插件介绍进行安装
- 应用配置文件
|
|
配置root(可选)
当配置好登陆用户的 zsh
后,如果使用sudo su
命令进入root
用户的终端,会发现还是默认的bash
。建议在root
用户的终端下,也安装on my zsh
,设置与普通用户不同的主题以便区分,插件可以使用一样的。 下面是一份root
用户的~/.zshrc
配置参考:
|
|
配置本地代理
在~/.zshrc
中添加:
|
|
这里假设本地代理的端口是7890
,使用clash
的Allow LAN
应用配置文件:
|
|
以后想在命令行使用代理时,只需要在终端中输入 proxy
命令,即可使用本地代理,使用结束后输入unproxy
命令即可取消使用代理
卸载 Oh My Zsh
|
|
更新 Oh My Zsh
|
|
Fish
zsh
整体加载性能并不是很快,同时需要依靠oh-my-zsh
的配置才能更优雅,而Fish
:
- 开箱即用,内置自动提示、语法高亮、自动补全、搜索历史等功能,无需添加额外插件
- 加载速度更高效
- 可视化的 Web 配置功能
Oh-My-Fish
可以进行更深入的配置- 可以使用人机界面数据完成制表页
Fish 全名friendly interactive shell
,友好的交互式 Shell
,对比 Bash
和 Z shell(zsh)
,Fish
更友好、交互性更强。
安装
- 参考官网步骤下载 Fish
|
|
- 查看当前 shell
|
|
- 查看操作系统中已存在的 shell
|
|
- 切换 shell 为 fish
|
|
- 若希望
root
模式下也可以使用该 shell,则可以在该命令后面加上root
关键字
|
|
功能
自动提示
- Fish 会通过显示灰色提示,提醒最近浏览历史、可能希望浏览的内容。如果命令有误,则会将命令设置为红色提醒
- 除了显示命令是否正确外,Fish 还可以显示所搜索的目录是否存在、拼写是否正确、括号是否匹配等
- 若觉得 Fish 的色彩显示并不美观,还可以自行配置美化。在 Fish官网 有详细的教程
文件和命令高亮
- Fish 会将文件设置为绿色,目录设置为蓝色(颜色设置也可以自行配置)
- 除了高亮当前目录下的文件与目录,还可以将命令高亮显示。比如输入“sudo apt”命令就会将“apt”进行高亮显示
生成数据制表页
- Fish 可以解析各种格式的工具手册页,假如不知道命令作用,可以通过输入“Tab”键获得提示
自动补全
- 输入命令时,Fish 会自动显示上一次使用该命令历史记录(如果还希望查看之前的历史,还可以通过按"up”向上键查看)
- 假如,并没有该命令历史记录,则会显示可能使用的命令
- 使用
Tab
键进行补全,假如有多种结果,则会都列出来并显示给出理由。当然,除了补全命令外,还可以补全参数以及 Git 分支
视化 Web 配置页面
- 这是 Fish 如此受欢迎的原因之一,可视化的操作为配置 Fish 提供很大的帮助
- 在 Fish shell 下输入
fish_config
命令即可进入可视化界面 - 在可视化 Web 页面下,可以设置主题颜色(包括自定义)、提示符样式、函数、变量、查看历史命令、快捷键、设置缩写
配置与美化
Fish 的配置文件位于~/.config/fish/config.fish
参考