Fish Shell Cheatsheet - Shell Config

用户友好的 Fish Shell 命令都在这里了,语法更简洁,自动补全开箱即用,按场景分类整理,快速上手。

SysOps·36 commands·Last updated 2026-07-21
Back to SysOps

变量与作用域 7

set name "John"
设置变量
echo $name
使用变量
set -x PATH /usr/local/bin $PATH
设置环境变量(导出)
set -U fish_user_paths /usr/local/bin $fish_user_paths
设置通用变量(持久化)
set -l local_var "value"
局部变量(仅当前函数)
set -g global_var "value"
全局变量
set -e name
删除变量

流程控制 5

if test -f file.txt\n echo "exists"\nend
条件判断(文件存在)
if test $count -gt 5\n echo "many"\nelse\n echo "few"\nend
if-else 分支
for file in *.txt\n echo $file\nend
遍历文件
while read -l line\n echo $line\nend < file.txt
逐行读取文件
switch $status\n case 0\n echo "success"\n case "*"\n echo "failed"\nend
多分支判断

函数与别名 7

function greet\n echo "Hello $argv"\nend
定义函数,$argv 接收参数
funcsave greet
保存函数到配置文件
functions
列出所有函数
functions greet
查看指定函数定义
alias cls="clear"
创建别名
abbr -a gco "git checkout"
创建命令缩写(输入后自动展开)
funced greet
交互式编辑函数

字符串与管道 6

string length "hello"
获取字符串长度
string split "," "a,b,c"
按分隔符分割字符串
string join ";" "a" "b" "c"
用分隔符连接字符串
string replace "old" "new" "hello old"
替换字符串
string match -r "^\d+" "123abc"
正则匹配
echo "data" | string upper
管道转大写

配置与主题 6

fish_config
Web 界面配置主题和提示符
fish_config theme choose Nord
命令行切换主题
set -U fish_greeting ""
取消欢迎语
fish_update_completions
更新补全脚本
cat ~/.config/fish/config.fish
查看配置文件
fisher install jorgebucaran/autopair.fish
用 fisher 安装插件

命令历史与快捷键 5

history
查看命令历史
history search "git"
搜索历史命令
history delete "rm -rf"
删除指定历史记录
Ctrl+R
增量搜索历史命令
Alt+← / Alt+→
按单词移动光标

💡 Tips

  • Fish 的 if/for/function/switch 用 end 结尾,不需要 fi/done/esac。
  • set -U 设置通用变量,持久化到配置文件,所有 Fish 会话共享。
  • Fish 开箱即用自动补全,按 Tab 即可,按 Alt+→ 接受建议。
  • fisher 是 Fish 的插件管理器:curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher。
  • abbr 比 alias 更轻量,输入缩写后按空格会自动展开为完整命令。
  • Fish 不兼容 POSIX Shell 语法,不能直接用 bash 脚本,但语法更直观。