对比 zsh 和 fish,后者起步的配置简单,开箱即用的功能多,并且同等功能下性能也比较好,更适合断网环境下安装。综合来看可以用 fish (而非 zsh) 替换掉 bash,提供更好的用户体验。
安装 fish
- 通过包管理器安装
sudo apt-get install fish
sudo yum install fish
- 离线安装(以 centos 为例)
- 下载安装包
- (视情况而定)安装必须的包
sudo yum install pcre2-devel
- 解决
libpcre2-32.so.0()(64bit) is needed by fish-3.6.1-1.1.x86_64
问题
- 解决
sudo yum install python3
rpm -ivh fish-3.6.1-1.1.x86_64.rpm
配置 fish (via oh-my-fish)
安装 oh-my-fish
$ curl -L https://get.oh-my.fish | fish
配置主题
# 查看主题
$ omf theme
# 安装主题
$ omf install cbjohnson
主题可参考 Fish Shell 的简单使用和 Oh-my-fish 主题的展示 - 小贝塔
目前考虑使用的双行主题:
- lambda
- pygmalion
- scorphish
- 注释了 fish_prompt.fish 中的第 163 行
_prompt_versions $blue $gray $green $orange $red
,取消打印不需要的软件版本
- 注释了 fish_prompt.fish 中的第 163 行
- zish
启动配置
$ vim ~/.config/fish/config.fish
,增加下述内容(请按需添加)
# set env
set -x GOPATH /home/cheng/.local/gopath
set -x GOROOT /home/cheng/.local/goroot
set -x PATH $PATH:$GOPATH/bin:$GOROOT/bin
# set alias
alias lls '/usr/bin/ls'
alias ls '/usr/local/bin/gls'
alias ll 'ls --all -l'
alias la 'ls --all'
# execute commands
/home/cheng/.local/bin/start.sh
配置 fish(offline)
在可联网的机器上使用 omf install [theme]
命令安装主题,安装位置在 ~/.local/share/omf/themes/[theme-name]/functions/
下,将该目录下的文件复制到离线机器的某一个目录下,并在 启动配置 增加 source /path/to/config/file
命令即可。
附录
判断 fish 启动的路径
#linux/shell #linux/ps
$ ps -p (ps -p $fish_pid -o ppid=) -o cmd,pid,ppid
# 1
# CMD PID PPID
# /init 32241 1
# 2
# CMD PID PPID
# /home/cheng/.vscode-server/ 26028 25900
关注上述结果中的 CMD 字段,可以根据启动 fish 的父进程不同,而使用不同的主题或者配置。