Fish Shell 的安装与基本配置
Finally, a command line shell for the 90s_
Fish Shell 是一款智能且用户友好的命令行界面,适用于 Linux、macOS 及其他类 Unix 系统。它以提高用户效率和改善命令行使用体验为目标,通过高级特性如自动建议、语法高亮和易于理解的脚本语言来实现这一点。
之前一直使用oh-my-zsh
,这个项目还是很棒的,不过这个项目越来越庞大导致现在启动有点慢了。我在网上看到有人也推荐zim
,不过我去了解一下还是放弃了,这个项目目前名叫zimfw不过是个新开的项目,因为之前的项目删库了。有点担心新项目未来也删库,索性直接用上已经被安利了很久的 FISH。
安装 Fish Shell
Ubuntu/Debian:
shellsudo apt-add-repository ppa:fish-shell/release-3 sudo apt update sudo apt install fish
macOS:
shellbrew install fish
其他系统:访问官方文档获取更多安装指南。
配置 fish 设为默认 shell
chsh -s /usr/bin/fish
reboot
提示
若总是报错chsh: PAM: Authentication failure
直接修改用户的配置
vim /etc/passwd/
查看系统当前使用的 shell
ubuntu% echo $SHELL
/usr/bin/fish
表明已经将 zsh 设置为默认 shell
可视化配置:fish_config
提示
如果是连接的远程服务器可能无法打开,这个时候可以在本地配置好后把prompt
复制到远程服务器上 ~/.config/fish/functions/fish_prompt.fish
- 个性化
配置 nano 的 tab 为现在更常见的 4 空格
nano ~/.nanorc
# .nanorc
set tabsize 4
配置 alias 在 Fish shell 中,你可以通过创建一个名为 rm 的函数来模拟 rm -i 的行为。这样,每次你运行 rm 时,它都会以交互模式运行,提示你确认是否真的要删除文件。
nano ~/.config/fish/config.fish
# .config/fish/config.fish
if status is-interactive
# Commands to run in interactive sessions can go here
function rm
command rm -i $argv
end
end
Fisher 安装
Fisher 是一个 Fish Shell 的包管理器,用于安装和管理第三方软件包。
A plugin manager for Fish—your friendly interactive shell. Snag fresh plugins!
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
插件推荐
由于 fish 自带了很多功能,属于开箱即用的状态所以也没啥推荐的(自动建议、语法高亮都自带了,其中 sudo 键位为ALT+s
),不过因为我习惯了 Z 插件,同时需要 nodejs 环境,所以安装了这两个。
nvm:
fisher install jorgebucaran/nvm.fish
z:
fisher install jethrokuan/z
结语
Fish Shell 和 Fisher 提供了丰富的扩展和自定义选项,通过这些工具,你可以极大地提升命令行的使用体验和效率。