欧美激情aaaa_伊人久久久大香线蕉综合直播_日韩在线卡一卡二_亚洲成人人体

fishshell

比 bash 更好用的 shell

安裝

# Ubuntu 和 Debian 的安裝方法。
sudo apt-get install fish
# Mac 的安裝方法。
brew install fish

啟動(dòng)與幫助

由于 Fish 的語法與 Bash 有很大差異,Bash 腳本一般不兼容。因此,建議不要將 Fish 設(shè)為默認(rèn) Shell,而是每次手動(dòng)啟動(dòng)它。

# 安裝完成后,就可以啟動(dòng) Fish。
$ fish
# 使用過程中,如果需要幫助,可以輸入 help 命令
$ help

彩色顯示

# 無效命令為紅色
$ mkd
# 有效命令為藍(lán)色
$ mkdir
# 有效路徑會(huì)有下劃線。如果沒有下劃線,你就知道這個(gè)路徑不存在。
$ cat ~/somefi 

自動(dòng)建議

Fish 會(huì)自動(dòng)在光標(biāo)后面給出建議,表示可能的選項(xiàng),顏色為灰色。如果采納建議,可以按下 Control + F 。如果只采納一部分,可以按下 Alt + →

$ /bin/hostname # 命令建議
$ grep --ignore-case # 參數(shù)建議
$ ls node_modules # 路徑建議

自動(dòng)補(bǔ)全

輸入命令時(shí),Fish 會(huì)自動(dòng)顯示匹配的上一條歷史記錄。如果沒有匹配的歷史記錄,Fish 會(huì)猜測可能的結(jié)果,自動(dòng)補(bǔ)全各種輸入。比如,輸入 pyt 再按下 Tab ,就會(huì)自動(dòng)補(bǔ)全為 python 命令。

Fish 還可以自動(dòng)補(bǔ)全 Git 分支。

腳本語法

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 循環(huán)

while true
    echo "Loop forever"
end

for 循環(huán)

for file in *.txt
    cp $file $file.bak
end

函數(shù)

Fish 的函數(shù)用來封裝命令,或者為現(xiàn)有的命令起別名。

function ll
    ls -lhG $argv
end

上面代碼定義了一個(gè) ll 函數(shù)。命令行執(zhí)行這個(gè)函數(shù)以后,就可以用 ll 命令替代 ls -lhG。其中,變量 $argv 表示函數(shù)的參數(shù)。

function ls
    command ls -hG $argv
end

上面的代碼重新定義 ls 命令。注意,函數(shù)體內(nèi)的 ls 之前,要加上 command,否則會(huì)因?yàn)闊o限循環(huán)而報(bào)錯(cuò)。

提示符

fish_prompt 函數(shù)用于定義命令行提示符(prompt)。

function fish_prompt
  set_color purple
  date "+%m/%d/%y"
  set_color FF0
  echo (pwd) '>'
  set_color normal
end

執(zhí)行上面的函數(shù)以后,你的命令行提示符就會(huì)變成下面這樣。

02/06/13
/home/tutorial > 

配置

Fish 的配置文件是 ~/.config/fish/config.fish,每次 Fish 啟動(dòng),就會(huì)自動(dòng)加載這個(gè)文件。Fish 還提供 Web 界面配置該文件。

$ fish_config # 瀏覽器打開 Web 界面配置

Running Commands: 兼容 bash 等shell的命令執(zhí)行方式
Getting Help: help/man cmd -> browser/terminal
Syntax Highlighting: 實(shí)時(shí)檢查命令是否正確
Wildcards: 支持縮寫 * 遞歸 匹配
Pipes and Redirections: 使用 ^ 代表 stderr
Autosuggestions: 自動(dòng)建議, 可以使用 Ctrl-f / -> 來補(bǔ)全
Tab Completions: 更強(qiáng)大的 tab 補(bǔ)全
Variables: 使用 set 設(shè)置
Exit Status: 使用 echo $status 替代 $?
Exports (Shell Variables)
Lists: all variables in fish are really lists
Command Substitutions: 使用 (cmd) 來執(zhí)行命令, 而不是 反引號(hào)、$()
Combiners (And, Or, Not): 不支持使用符合來表示邏輯運(yùn)算
Functions:使用 $argv 替代 $1
Conditionals (If, Else, Switch) / Functions / Loops: 更人性化的寫法(參考 py)
Prompt: function fish_prompt 實(shí)現(xiàn)
Startup (Where's .bashrc?): ~/.config/fish/config.fish,更好的方式是 autoloading-function、universal-variables
Autoloading Functions: ~/.config/fish/functions/.
Universal Variables:a variable whose value is shared across all instances of fish

set name 'czl' # 設(shè)置變量,替代 name=czl
echo $name
echo $status # exit status,替代 $?
env # 環(huán)境變量
set -x MyVariable SomeValue # 替代 export
set -e MyVariable
set PATH $PATH /usr/local/bin # 使用 lists 記錄 PATH
set -U fish_user_paths /usr/local/bin $fish_user_paths # 永久生效
touch "testing_"(date +%s)".txt" # command subtitution,替代 `date +%s`
cp file.txt file.txt.bak; and echo 'back success'; or echo 'back fail' # combiner
functions # 列出 fish 下定義的函數(shù)

參考資料

欧美激情aaaa_伊人久久久大香线蕉综合直播_日韩在线卡一卡二_亚洲成人人体
韩日欧美一区| 国产精品日韩欧美大师| 欧美精品日韩www.p站| 精品二区视频| 免费在线成人av| 日韩视频在线观看免费| 欧美日韩综合另类| 欧美一级久久久久久久大片| 国产亚洲激情视频在线| 欧美影院一区| 在线精品高清中文字幕| 欧美视频你懂的| 久久久999精品免费| 亚洲欧洲中文日韩久久av乱码| 欧美日韩国产色站一区二区三区| 亚洲视频播放| 有坂深雪在线一区| 国产精品v日韩精品| 老司机精品视频网站| 亚洲五月婷婷| 悠悠资源网亚洲青| 欧美午夜精品一区| 免费h精品视频在线播放| 亚洲制服欧美中文字幕中文字幕| 亚洲国产精品成人| 国产情人节一区| 欧美日韩在线一区| 欧美成人黄色小视频| 久久国产乱子精品免费女| 一本一本久久a久久精品综合妖精| 国产一区日韩二区欧美三区| 欧美日韩一级黄| 欧美第一黄色网| 久久综合色婷婷| 久久精品国产v日韩v亚洲| 亚洲免费在线电影| 亚洲精品网址在线观看| 永久91嫩草亚洲精品人人| 欧美亚州韩日在线看免费版国语版| 老牛嫩草一区二区三区日本 | 久久综合给合| 午夜伦理片一区| 亚洲色图在线视频| 日韩视频第一页| 亚洲欧洲综合| 亚洲精品国产精品国自产在线| 国产日产精品一区二区三区四区的观看方式 | 亚洲国产精品一区二区尤物区| 国产精品老女人精品视频| 欧美黄色小视频| 久久亚洲高清| 久久久久成人精品| 性视频1819p久久| 一本久道久久久| 99av国产精品欲麻豆| 亚洲亚洲精品三区日韩精品在线视频| 国产精品美女久久久免费| 欧美久久久久久蜜桃| 欧美精品一区二区三| 久久野战av| 久久国产精品久久久久久| 午夜久久资源| 久久久久久久久久久久久女国产乱| 欧美一区二区精品| 久久精品一区二区三区四区| 久久精品男女| 免费黄网站欧美| 欧美日韩另类国产亚洲欧美一级| 欧美日韩高清在线| 欧美午夜一区二区| 国产欧美日韩一区二区三区在线观看| 国产精品区一区| 国产色产综合色产在线视频| 国产专区精品视频| 亚洲高清在线精品| 一区二区免费在线观看| 亚洲欧美激情视频| 久久天天狠狠| 欧美理论电影在线观看| 国产精品电影在线观看| 国产一区二区三区av电影| 1769国内精品视频在线播放| 亚洲最新在线视频| 性做久久久久久| 久久天堂av综合合色| 欧美日韩午夜在线| 国产一区二区三区的电影| 亚洲激情av在线| 欧美亚洲视频在线观看| 欧美福利电影在线观看| 国产乱肥老妇国产一区二| 亚洲国产成人在线播放| 亚洲欧美国内爽妇网| 欧美承认网站| 国产精品一二三四区| 亚洲欧洲日本专区| 久久福利影视| 国产精品v亚洲精品v日韩精品 | 国产精品免费网站在线观看| 国内精品久久久久久 | 91久久嫩草影院一区二区| 在线亚洲一区二区| 久久伊伊香蕉| 国产女人精品视频| 亚洲伦理中文字幕| 久久人人超碰| 国产精品亚洲欧美| 亚洲精品在线免费观看视频| 欧美一区二区免费| 欧美激情在线狂野欧美精品| 国产最新精品精品你懂的| 亚洲欧美另类久久久精品2019| 久久精品国产第一区二区三区最新章节 | 亚洲精品在线免费观看视频| 欧美一级日韩一级| 欧美三级免费| 99视频有精品| 欧美精品日韩一本| 亚洲第一视频网站| 久久久久久久久久久久久久一区| 国产精品日韩精品欧美精品| 一本色道婷婷久久欧美| 欧美激情第五页| 亚洲国产精品电影在线观看| 亚久久调教视频| 国产精品女主播一区二区三区| 一个色综合导航| 欧美日韩在线精品| 一区二区三区www| 欧美日韩一区二区三区免费看| 91久久久久久久久久久久久| 你懂的亚洲视频| 亚洲精品在线二区| 欧美午夜精品久久久久久超碰| 亚洲激情精品| 欧美久久一区| aa级大片欧美三级| 欧美人与性动交α欧美精品济南到| 亚洲国产视频一区| 欧美高清自拍一区| 亚洲精品视频一区| 欧美视频在线看| 午夜在线观看免费一区| 国产日本欧洲亚洲| 久久久久久电影| 亚洲电影av在线| 欧美精品高清视频| 中文欧美字幕免费| 国产欧美日韩亚洲一区二区三区| 欧美亚洲一区在线| 在线播放豆国产99亚洲| 欧美福利视频网站| 亚洲一区二区免费视频| 国产毛片精品视频| 老鸭窝毛片一区二区三区| 亚洲精品一区二区三区樱花| 欧美深夜福利| 久久激情中文| 亚洲日本一区二区三区| 国产精品久久久久三级| 久久久久久久999| 亚洲精品看片| 国产精品伊人日日| 久久夜色精品国产亚洲aⅴ| 亚洲全部视频| 国产日本欧洲亚洲| 欧美成人激情在线| 亚洲综合日韩在线| 亚洲国产裸拍裸体视频在线观看乱了中文 | 午夜一区二区三区在线观看 | 欧美日韩国产黄| 亚洲无线一线二线三线区别av| 国产精品久久网站| 久久综合久色欧美综合狠狠| 亚洲特级毛片| 亚洲第一黄色| 国产日韩精品一区二区三区在线| 男人天堂欧美日韩| 欧美在线观看视频在线| 日韩午夜在线观看视频| 国模大胆一区二区三区| 欧美天天影院| 欧美日本一区二区高清播放视频| 久久高清国产| 亚洲永久免费av| 亚洲免费av电影| 1024亚洲| 国产一区二区三区高清在线观看 | 欧美日韩美女一区二区| 久久久久九九九| 午夜精品免费在线| aa成人免费视频| 亚洲精品美女91| 亚洲国产成人精品女人久久久| 国产日韩一区二区三区在线播放| 欧美视频中文字幕在线| 欧美精品一区二区三| 麻豆久久婷婷| 久久久www成人免费无遮挡大片 | 午夜久久黄色|