第一步:yum安装fish shell
root用户下执行命令:
cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/shells:fish:release:2/CentOS_7/shells:fish:release:2.repo
yum install fish
第二步:修改os默认的shell
chsh -s /usr/bin/fish
第三步:语法
Fish 的语法非常自然,一眼就能看懂。
# 设置 ls 命令的别名
alias ll='ls -lshp';
alias treeex='tree --charset ansi --dirsfirst -F';
# PATH 中增加新的路径
set PATH $PATH ~/bin ~/.rvm/bin /Volumes/App/MacApp/Dev/android-sdk-macosx/tools /Volumes/App/MacApp/Dev/android-sdk-macosx/platform-tools /Volumes/App/MacApp/Dev/android-sdk-macosx/build-tools/25.0.3
# 增加 Android SDK 路径设置
set ANDROID_HOME /Volumes/App/MacApp/Dev/android-sdk-macosx
set EDITOR 'subl --wait'
if
语句。
if grep fish /etc/shells echo Found fish else if grep bash /etc/shells echo Found bash else echo Got nothing end
switch
语句。
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
循环。
while true echo "Loop forever" end
for
循环。
for file in *.txt
cp $file $file.bak
end
第四步:函数
Fish 的函数用来封装命令,或者为现有的命令起别名。
function ll ls -lhG $argv end
上面代码定义了一个ll
函数。命令行执行这个函数以后,就可以用ll
命令替代ls -lhG
。其中,变量$argv
表示函数的参数。
下面是另一个例子。
function ls command ls -hG $argv end
上面的代码重新定义ls
命令。注意,函数体内的ls
之前,要加上command
,否则会因为无限循环而报错。
第五步:配置
Fish 的配置文件是~/.config/fish/config.fish
,每次 Fish 启动,就会自动加载这个文件。
我们可以在这个文件里面写入各种自定义函数,它们会被自动加载。比如,上面的fish_prompt
函数就可以写在这个文件里面,这样每次启动 Fish,就会出现自定义的提示符。
Fish 还提供 Web 界面配置该文件。
$ fish_config
输入上面的命令以后,浏览器就会自动打开本机的 8000 端口,用户可以在网页上对 Fish 进行配置,比如选择提示符和配色主题。