Linux命令:fish

fish 命令

基本介绍

fish(Friendly Interactive Shell) 是一款用户友好的 Unix shell,以其简洁的语法、自动建议、语法高亮和智能补全等特性而闻名。fish 采用不同于传统 shell 的语法设计,更加直观和易于学习,适合新手和高级用户使用。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

语法

fish[选项][脚本文件]

启动选项

选项说明
-c <command>执行指定的命令后退出
-i启动交互式 shell
-l作为登录 shell 启动
-n检查脚本语法但不执行
-v显示版本信息
--debug=<level>设置调试级别
--no-config不加载配置文件

常用内置命令

文件和目录操作

命令说明
cd <dir>切换目录
pwd显示当前目录
mkdir <dir>创建目录
rmdir <dir>删除空目录
rm <file>删除文件或目录
cp <src> <dst>复制文件
mv <src> <dst>移动或重命名文件

变量和环境

命令说明
set <var> <value>设置变量
set -x <var> <value>设置环境变量
set -e <var>删除变量
env显示环境变量
echo <text>输出文本
read <var>读取用户输入

流程控制

命令说明
if <condition>; ...; end条件判断
switch <value>; case <pattern>; ...; end多条件分支
for <var> in <list>; ...; end循环
while <condition>; ...; end条件循环
break跳出循环
continue继续下一次循环

函数和脚本

命令说明
function <name>; ...; end定义函数
function -e <name>删除函数
source <file>执行脚本文件
. <file>执行脚本文件(同 source)

作业控制

命令说明
&amp;后台执行命令
jobs显示后台作业
fg将后台作业调至前台
bg将前台作业放至后台

使用示例

1. 启动交互式 shell

fish

2. 执行单个命令

fish-c"echo 'Hello World'"

3. 执行脚本文件

fish script.fish

4. 作为登录 shell 启动

fish-l

5. 检查脚本语法

fish-nscript.fish

6. 设置变量

setname"John"echo$name

7. 设置环境变量

set-xPATH$PATH/usr/local/bin

8. 定义函数

functiongreetecho"Hello,$argv[1]!"end greet World

9. 条件判断

iftest-f/etc/passwdecho"File exists"end

10. 循环遍历

foriin123echo$iend

11. 自动建议

# 输入命令时会自动显示建议ls/u<Tab># 自动补全为 /usr/

12. 历史搜索

# 使用上下箭头浏览历史# 输入部分命令后按上下箭头搜索

配置文件

系统级配置

  • /etc/fish/config.fish- 全局 fish 配置
  • /etc/fish/conf.d/- 额外配置脚本目录

用户级配置

  • ~/.config/fish/config.fish- 用户 fish 配置
  • ~/.config/fish/functions/- 用户函数目录
  • ~/.config/fish/completions/- 用户补全配置目录

特殊变量

变量说明
$argv命令行参数数组
$argv[1]第一个参数
$status上一条命令的退出状态
$pwd当前工作目录
$USER当前用户名
$HOME用户主目录
$PATH命令搜索路径

高级特性

自动建议

fish 会根据命令历史自动显示建议,按右箭头或 Tab 键接受建议。

语法高亮

fish 提供实时语法高亮,包括命令、参数、路径、变量等的颜色区分。

智能补全

fish 的补全系统支持:

  • 命令名补全
  • 文件路径补全
  • 参数补全
  • 命令选项补全

Web 配置界面

fish 提供了一个 Web 界面用于配置:

fish_config

插件系统

fish 支持通过 Oh My Fish 等框架管理插件。

实用技巧

1. 安装 Oh My Fish

curl-Lhttps://get.oh-my.fish|fish

2. 设置默认 shell

chsh-s/usr/bin/fish

3. 查看命令历史

history

4. 搜索命令历史

# 输入部分命令后按上下箭头# 或使用 Ctrl+R

5. 目录跳转

cd~/Documentscd..# 返回上级目录cd-# 返回上一次所在目录

6. 管道和重定向

ls-la|grep".txt">output.txt

7. 后台执行

sleep10&amp;

与 bash 的区别

特性fishbash
语法简洁直观传统语法
自动建议内置支持不支持
语法高亮内置支持需要插件
数组原生支持有限支持
变量赋值set var valuevar=value
条件判断if test ...if [ ... ]
兼容性不完全兼容完全兼容

相关命令

命令说明
bashBourne-Again Shell
shBourne Shell
zshZ Shell
cshC Shell
tcshTENEX C Shell

注意事项

  1. 安装:部分系统需要先安装 fish(apt install fishdnf install fish
  2. 语法差异:fish 的语法与 bash 不同,需要学习新语法
  3. 兼容性:bash 脚本可能需要修改才能在 fish 中运行
  4. 配置文件:配置文件位于~/.config/fish/
  5. 插件管理:建议使用 Oh My Fish 管理插件

总结

fish是一款用户友好的 Unix shell,以其简洁的语法、自动建议和语法高亮等特性而闻名。它适合新手学习,也能满足高级用户的需求,通过配置和插件可以打造个性化的开发环境。