开箱即用的 fish 安装和配置记录

ShadowC

| 本文阅读量: -

对比 zsh 和 fish,后者起步的配置简单,开箱即用的功能多,并且同等功能下性能也比较好,更适合断网环境下安装。综合来看可以用 fish (而非 zsh) 替换掉 bash,提供更好的用户体验。

安装 fish

  1. 通过包管理器安装
    • sudo apt-get install fish
    • sudo yum install fish
  2. 离线安装(以 centos 为例)
    1. 下载安装包
    2. (视情况而定)安装必须的包
      • 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
    3. 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 主题的展示 - 小贝塔

目前考虑使用的双行主题:

  1. lambda
  2. pygmalion
  3. scorphish
    • 注释了 fish_prompt.fish 中的第 163 行 _prompt_versions $blue $gray $green $orange $red,取消打印不需要的软件版本
  4. 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 的父进程不同,而使用不同的主题或者配置。