来试试Fish Shell强大的自动补全、语法高亮和历史记录功能吧
你好!各位刚踏入Web开发世界的新手朋友,以及希望让日常编码更舒适一些的中级开发者们。你们有没有想过,每天使用的“终端”可以变得更方便呢?🤔
很多人初次接触的shell可能是“Bash”,但这次我们要介绍的是一个非常智能且易于使用的shell——“Fish Shell”。Fish是“Friendly Interactive SHell”(友好交互式Shell)的缩写,正如其名,它对我们用户非常友好。
在本文中,我们将从Fish的众多魅力中,特别挑选出“强大的自动补全”、“直观的语法高亮”和“智能的历史记录”这三点,让大家亲身体验它的厉害之处。无需任何复杂的设置!只需复制粘贴文中的代码,你就能感受到“哇,真方便!”。来吧,让我们一起探索Fish的世界,极大地提升你的终端操作效率!🚀
🐠 不用再记命令了?Fish超强大的“自动补全”功能
终端操作中最让人头疼的,莫过于“那个命令是啥来着?”“选项怎么拼?”这样,每次都要回忆或查找命令的麻烦。Fish的自动补全功能将让这些烦恼成为过去。
当你开始输入命令时,它会根据历史记录和上下文,以浅灰色预测并显示你可能要输入的命令。如果预测正确,只需按下 → (右箭头键) 或 Ctrl + F 即可完成输入!能惊人地减少打字量。
补全命令的子命令
例如,版本控制工具 `git` 有很多子命令(如 `commit`, `push`, `pull` 等)。只需输入 `git` 并按下空格键,Fish就会列出所有可用的子命令。
$ git
(输入以上内容后,会列出 'add', 'blame', 'branch', 'checkout' 等)
补全选项(标志)
命令的选项也常常被忘记。但有了Fish就没问题了。输入一个连字符 `-`,它就会列出该命令所有可用的选项并附带说明。你几乎不再需要用 `man` 命令去查询了。
$ ls -
(输入以上内容后,会显示 '-a' (all), '-l' (long format), '-t' (sort by time) 等选项及其说明)
补全文件和目录的路径
当然,文件和目录的路径补全功能也非常强大。使用 `cd` 等命令开始输入路径时,按下 Tab 键即可列出候选项。随着你输入更多字符,候选项范围会逐渐缩小。这还能防止输入错误,真是一举两得!
$ cd D/P/
(例如,想移动到 'Documents/Projects/' 目录时,即使像上面那样输入大写字母,Fish也能智能地补全)
🎨 一目了然!直观的“语法高亮”
黑底白字的界面……不仅有点单调,而且很难分清内容吧。Fish默认会根据语法(Syntax)为文本着色。这样一来,命令的对错和文件类型就能一目了然。
有效命令为蓝色
系统中存在的、可执行的命令会以蓝色显示。输入瞬间就能直观地确认“啊,这个命令能用”,让人很安心。
$ ls -l
('ls' 会显示为蓝色)
无效命令为红色
反之,不存在的命令或拼写错误会以红色显示。在执行前就能发现错误,可以防止不必要的报错。这真的非常方便!
$ lss -l
('ls' 的拼写错误 'lss' 会显示为红色)
按文件和目录类型区分颜色
命令的执行结果也是彩色的。例如,使用 `ls` 命令时,目录会以粗体蓝色显示,可执行文件为绿色,压缩文件为红色等,根据类型进行着色。想找的东西马上就能找到。
$ ls
(当前目录下的文件和文件夹会以不同颜色显示)
🕰️ 边输入边搜索!增量式的“历史记录”功能
“想再用一次刚才那个长长的命令……” 这种时候,你是不是还在狂按 ↑ (上箭头键)?用Fish的话,可以更潇洒地调用历史记录。
Fish的历史记录搜索是基于“增量搜索”的。只需输入命令的一部分,它就会提示最近的包含该字符串的历史记录。
边输入边搜索历史记录
例如,假设你过去执行过几次 `git commit` 命令。在提示符后输入 `git`,然后按一下 ↑ 键试试。这时,它不会只显示前一个命令,而是会只在以 `git` 开头的命令历史中进行回溯搜索。
$ git
(输入以上内容后按 ↑ 键,会显示过去以 'git' 开头的命令)
用关键词搜索整个历史记录
如果想搜索更早的历史记录,或者想通过命令中间的关键词来查找,`history search` 就很方便了。它会只列出历史记录中包含指定关键词的命令。
$ history search "commit"
(历史记录中包含 "commit" 字符串的命令会被列出)
🙋♀️ 遇到困难时的“帮助功能”
当你需要帮助时,Fish也同样友好。如果不知道某个命令怎么用,就试试 `help` 命令吧。
令人惊讶的是,Fish会在你的默认网页浏览器中自动打开许多命令的帮助页面(man page)。即使是不习惯在黑漆漆的窗口里阅读英文帮助文档的人,也可以在熟悉的浏览器中仔细阅读。
$ help ls
('ls' 命令的手册页会在网页浏览器的新标签页中打开)
⚠️ 使用Fish时的注意事项
到目前为止,我们介绍了很多Fish的优点,但有一点需要注意。那就是它和“Bash的语法差异”。
市面上许多shell脚本和配置示例仍然是基于Bash编写的。因此,从网上文章中找到的命令直接粘贴到Fish中,有时可能无法运行。
例如,设置环境变量的命令。在Bash中用 `export`,但在Fish中用 `set`。
在Bash中设置环境变量
# 这在Fish中会报错
$ export MY_VARIABLE="hello"
在Fish中设置环境变量
在Fish中,使用 '-x' 或 '--export' 选项来设置变量。
# 这才是Fish的正确写法
$ set -x MY_VARIABLE "hello"
一开始可能会有些不习惯,但Fish的语法更简单、更具一致性,习惯之后反而会觉得更容易理解。如果想执行Bash脚本,也可以通过 `bash -c "脚本内容"` 这样明确指定用Bash来执行。
总结
怎么样?以上只是Fish Shell强大功能的一小部分,但相信你已经能感受到它的便利之处了吧。
- 能极大减少打字量的自动补全功能
- 能防患于未然的语法高亮
- 能立刻找到想用命令的历史记录功能
所有这些功能,在安装后无需任何额外设置即可使用。仅仅是消除了日常中的这些小烦恼,就能极大地提升编码的乐趣和专注度。
请务必借此机会安装Fish Shell,开启你舒适的终端生活吧!