目录

Fish Shell 的简单使用和Oh-my-fish主题的展示

一、FIsh 的安装与简单配置

1
apt install fish
  • 设置为默认shell
1
2
3
4
5
# 完整的Linux系统请使用fish真实路径
chsh -s $(which fish)

# termux设为默认shell
chsh -s fish
  • 去除欢迎语
1
fish -c "set -U fish_greeting"
  • 定义一些命令到Fish配置文件
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
mkdir -p ~/.config/fish

# fish 的配置文件
cat > ~/.config/fish/config.fish <<EOF
alias apti='apt -y install'
alias aptr='apt -y remove'
alias apts='apt search'
alias aa='apt update -y ; apt upgrade -y ; apt autoremove -y'
alias lsa='ls -a'
alias ..='cd ..; ls -a'
alias ll='ls -al'
alias gitc='git clone'
alias gitp='git add . ; git commit -m auto-push ; git push ; echo push成功'
alias myip='curl ifconfig.me'
EOF
  • Fish的简单语法
1
2
3
4
5
# 定义变量
set t 123    # 相当于bash的 t=123

# 括号内执行
grep 1 (ls)    # 相当于bash的 grep 1 $(ls)
  • if语句。
1
2
3
4
5
6
7
if grep fish /etc/shells
    echo Found fish
else if grep bash /etc/shells
    echo Found bash
else
    echo Got nothing
end
  • switch语句。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
switch (uname)
case Linux
    echo Hi Tux!
case Darwin
    echo Hi Hexley!
case FreeBSD NetBSD DragonFly
    echo Hi Beastie!
case '*'
    echo Hi, stranger!
end
  • while循环。
1
2
3
while true
    echo "Loop forever"
end
  • for循环。
1
2
3
for file in *.txt
    cp $file $file.bak
end
  • Fish 的函数用来封装命令,或者为现有的命令起别名。
1
2
3
function ll
    ls -lhG $argv
end

上面代码定义了一个ll函数。命令行执行这个函数以后,就可以用ll命令替代ls -lhG。其中,变量$argv表示函数的参数。

下面是另一个例子。

1
2
3
function ls
    command ls -hG $argv
end

以上引用于阮一峰的 Fish shell 入门教程

二、Oh-my-fish 的安装与简单用法

1
curl -L https://get.oh-my.fish | fish
  • 简单使用
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 列出已安装的和可安装的主题
omf theme
# 安装 ays 主题
omf install ays
# 更换主题为已安装的 cbjohnson 主题
omf theme cbjohnson
# 检查 omf 是否有错误
omf doctor
# 卸载 omf
omf destroy
注意
文章最下方有所有主题的截图,完全是手工截图,真的是累啊

三、Fish 与 Oh-my-fish 的卸载与清理配置文件

注意
卸载 Fish之前建议先卸载 Oh-my-fish
  • 完全卸载Oh-my-fish
1
2
3
# fish 环境下运行以下命令
omf destroy
rm -r (find ~ -name omf)
  • 完全卸载fish
注意
卸载 Fish之前一定要修改当前默认shell不是fish
1
2
3
4
5
6
7
8
9
# 修改默认终端为bash
chsh -s $(which bash)    # Linux 系统
chsh -s bash             # Termux

# 完全卸载fish
# bash 环境下运行
apt purge -y fish
apt autoremove
rm -r $(find ~ -name fish)

四、Oh-my-fish 的所有主题截图

注意
以下是在WSL的Ubuntu20 下的效果,如果你也是,但凡我标注了Error的主题,请不要尝试
  • 我之前用的是ays主题,现在用的是numist主题

1 agnoster

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201104225326041.png

2 aight

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201104225733557.png

3 ays

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201104225837458.png

4 barracuda(termux专用)

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201104230006188.png

5 batman

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105101656281.png

6 beloglazov

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105101800049.png

7 bira

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105101841892.png

8 bobthefish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105101922909.png

9 bongnoster

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105102018047.png

10 boxfish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105102122508.png

11 budspencer

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105111228079.png

12 cbjohnson

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105114702600.png

13 chain

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105114808620.png

14 clearance

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105114915383.png

15 cmorrell

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105114956353.png

16 coffeeandcode

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105115130366.png

17 cor (emoji-clock Error)

18 cyan (math: Error)

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105115719566.png

19 dangerous ( [I] 提示)

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105120300589.png

20 default

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105121600036.png

21 dmorrell

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105121640503.png

22 doughsay

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105121732784.png

23 eclm

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105121814268.png

24 edan

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105121856890.png

25 eden

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105122040115.png

26 emoji-powerline

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105122346033.png

27 es

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105122426476.png

28 fishbone

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105122933273.png

29 fishface

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125026283.png

30 fishy-drupal

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125123438.png

31 fisk

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125202846.png

32 flash

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125242785.png

33 fox

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125332753.png

34 gentoo

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125552404.png

35 gianu

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125638369.png

36 gitstatus

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125719389.png

37 gnuykeaj

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125754433.png

38 godfather

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125830343.png

39 graystatus

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105125911664.png

40 harleen

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130008061.png

41 idan

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130109701.png

42 integral

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130155957.png

43 jacaetevha

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130246626.png

44 johanson

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130332372.png

45 kawasaki

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130412888.png

46 krisleech

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130450636.png

47 l

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130526541.png

48 lambda

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130615217.png

49 lavender

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105130653384.png

50 lolfish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105182028294.png

51 mars

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105182125815.png

52 mish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105182233084.png

53 mokou

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105182321281.png

54 mtahmed

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105182417277.png

55 nai

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105131743505.png

56 nelsonjchen

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105131827401.png

57 neolambda

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105131911614.png

58 numist

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105132003592.png

59 ocean

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105132050849.png

60 one

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105132145334.png

61 pastfish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105132233029.png

62 perryh

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105132307685.png

63 pie (Error)

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105132424126.png

64 plain (Error)

65 pure

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135142869.png

66 pygmalion

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135237394.png

67 random

  • 随机主题

68 randomrussel

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135411235.png

69 redfish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135456945.png

70 red-snapper

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135535867.png

71 rider

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135613195.png

72 robbyrussell

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135714997.png

73 sashimi

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135748723.png

74 scorphish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135830835.png

75 separation

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135910653.png

76 shellder

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105135941856.png

77 simple-ass-prompt

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140019391.png

78 simplevi

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140106754.png

79 slacker

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140142812.png

80 slavic-cat

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140218777.png

81 solarfish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140329202.png

82 spacefish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140405923.png

83 sushi

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140447245.png

84 syl20bnr

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140619004.png

85 taktoa

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140710721.png

86 technopagan (moonmoji Error)

87 toaster

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140852257.png

88 tomita

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105140948212.png

89 trout (有点慢,需要安装rbenv)

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105141240911.png

90 tweetjay

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105141425123.png

91 uggedal

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105141536723.png

92 will

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105141623356.png

93 wolf-theme

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105141738021.png

94 yimmy

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105141812505.png

95 zeit

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105141849079.png

96 zephyr

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105141926877.png

97 zish

  • https://cdn.jsdelivr.net/gh/rentianyu/media@main/img/blog/image-20201105142005719.png