什么是Fish Shell?一款连新手都会赞叹的用户友好型Shell 🐠
你是否对“黑屏”(也就是终端或控制台)感到畏惧?作为Web开发者,操作Git或执行构建任务时,总是免不了要输入命令,对吧?
“记不住命令……” “打字错误导致不停报错……” “配置太难,从入门到放弃……”
如果你有过这样的经历,那么一定要试试我们这次介绍的“Fish Shell”。Fish是“Friendly Interactive Shell”(友好交互式Shell)的缩写,正如其名,它是一款对新手极其友好的、超级易于使用的Shell。本文将不涉及深奥的理论,旨在让你通过复制粘贴来体验Fish的强大之处!
🚀 Fish Shell的过人之处!3个令人惊叹的亮点
Fish Shell有很多魅力,但我们特别为你介绍3个最能让新手感动的功能。
1. 像“预知未来”一样的“自动建议”功能
Fish Shell最大的亮点就是自动建议功能。它能记住你过去输入的命令,当你只输入几个字符时,它就会用浅灰色文字提示“你是不是想输入这个?”。如果建议正确,只需按下 → (右箭头)键或 Ctrl+F 即可完成输入。再也不用重新输入长长的命令了!
例如,假设你之前输入过 `git switch feature/new-design` 这个命令。下一次你只需输入 `git s`……
$ git switch feature/new-design
它就会像这样自动为你建议剩余的部分。仅凭这一个功能,就能保证你的终端操作效率得到飞跃性的提升!
2. 错误一目了然!“语法高亮”
命令输入错误是导致报错的一大原因。Fish Shell可以实时地用颜色区分你输入的命令是否有效。
例如,存在的命令 `git` 会以蓝色显示。
$ git
但是,如果你输入一个不存在的命令 `gitt`,它就会变成红色。这样你就可以在执行前发现“啊,我打错了!”
$ gitt
3. 无需配置文件!通过Web浏览器轻松定制
提到Shell的定制,你可能会想到编辑像 `~/.bashrc` 这样复杂的配置文件。有了Fish Shell,就完全不用担心了。请尝试执行以下命令:
$ fish_config
执行此命令后,浏览器会自动打开一个页面,你可以在上面一边预览效果,一边仅通过点击就能轻松定制颜色方案和提示符(等待输入命令的标志)的外观。即使是害怕黑屏的用户,也能直观地创建出自己喜欢的环境。
💻 先来动手试试!Fish Shell的基本操作
那么,让我们实际尝试一些Fish的命令吧。请将它们复制并粘贴到你的终端中,体验一下它的运作方式。
输出文字:`echo`
首先是基本的`echo`命令。它会将指定的字符串输出到屏幕上。这一点和其他Shell基本相同。
$ echo "Hello, Fish Shell!"
Hello, Fish Shell!
使用变量:`set`
在Fish Shell中处理变量需要使用 `set` 命令。我们不使用 `=`(等号),而是用空格分隔,这是Fish的风格。
$ set name "张伟"
要查看变量的内容,请在变量名前加上 `$` 并用 `echo` 输出。
$ echo $name
张伟
循环处理:`for` 循环
与其他Shell相比,Fish的`for`循环语法非常直观且易于阅读。
例如,让我们逐一显示从 `item-1` 到 `item-3` 的字符串。
$ for item in item-1 item-2 item-3
echo $item
end
item-1
item-2
item-3
你也可以使用命令的执行结果进行循环,例如 `(seq 1 3)`。这是一个生成从1到3的数字的命令。
$ for i in (seq 1 3)
echo "Number: $i"
end
Number: 1
Number: 2
Number: 3
创建简单函数:`function`
你可以将一系列常用命令组合成一个函数。这里,让我们创建一个名为 `hello` 的问候函数。
$ function hello
echo "Hello, $argv!"
end
这样,一个名为 `hello` 的新命令就创建好了。`$argv` 是一个特殊变量,用于接收传递给函数的参数(这里是名字)。
让我们马上执行一下刚创建的函数吧。
$ hello "World"
Hello, World!
💡 更进一步!高级用法
比别名更强大的缩写命令:`abbr`
`abbr`(abbreviation的缩写)可以让你将简短的关键词展开为长命令。它与别名(alias)类似,但`abbr`的特点是,在输入关键词后按空格键或回车键,它会立即展开为完整的命令。这使你可以在执行前确认将要运行的命令。
让我们为Web开发者常用的 `git checkout` 创建一个缩写 `gco`。
$ abbr --add gco "git checkout"
这样,当你在终端输入 `gco` 并按空格时,它就会瞬间转换为 `git checkout`。这大大减少了打字量,真的非常方便!
⚠️ 注意!与bash的区别
尽管Fish非常出色,但它与许多Linux和macOS系统中的标准`bash` Shell存在一些差异。在从其他网站复制粘贴命令时尤其需要注意。
1. AND (&&) 的写法
当需要连续执行多个命令时,bash使用 `&&`,而Fish使用 `; and`。
❌ 错误 (bash的写法)
$ mkdir new_dir && cd new_dir
✅ 正确 (Fish的写法)
$ mkdir new_dir; and cd new_dir
2. 环境变量的设置方法
设置环境变量(例如添加PATH)的方法也不同。Bash使用 `export`,而Fish则使用 `set` 命令并附带 `-x` (export) 选项。
❌ 错误 (bash的写法)
$ export MY_VARIABLE="some_value"
✅ 正确 (Fish的写法)
$ set -x MY_VARIABLE "some_value"
只要掌握了这些差异,在大多数情况下你就不会遇到什么麻烦了。
总结
你觉得怎么样?希望通过复制粘贴,你已经体验到了Fish Shell的魅力,特别是像“自动建议”和“语法高亮”这样友好的功能。
即使是以前对终端操作感到畏惧的人,在使用Fish Shell后也一定会觉得“想更多地使用它!”。当命令操作变得轻松愉快时,开发效率也会大大提升。
如果你在阅读本文后对Fish Shell产生了兴趣,请务必阅读下一篇文章,将它实际安装并应用到你的开发环境中吧!