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

fishshell

比 bash 更好用的 shell

安裝

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

啟動與幫助

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

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

彩色顯示

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

自動建議

Fish 會自動在光標后面給出建議,表示可能的選項,顏色為灰色。如果采納建議,可以按下 Control + F 。如果只采納一部分,可以按下 Alt + →

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

自動補全

輸入命令時,Fish 會自動顯示匹配的上一條歷史記錄。如果沒有匹配的歷史記錄,Fish 會猜測可能的結果,自動補全各種輸入。比如,輸入 pyt 再按下 Tab ,就會自動補全為 python 命令。

Fish 還可以自動補全 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 循環

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_prompt 函數用于定義命令行提示符(prompt)。

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

執行上面的函數以后,你的命令行提示符就會變成下面這樣。

02/06/13
/home/tutorial > 

配置

Fish 的配置文件是 ~/.config/fish/config.fish,每次 Fish 啟動,就會自動加載這個文件。Fish 還提供 Web 界面配置該文件。

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

Running Commands: 兼容 bash 等shell的命令執行方式
Getting Help: help/man cmd -> browser/terminal
Syntax Highlighting: 實時檢查命令是否正確
Wildcards: 支持縮寫 * 遞歸 匹配
Pipes and Redirections: 使用 ^ 代表 stderr
Autosuggestions: 自動建議, 可以使用 Ctrl-f / -> 來補全
Tab Completions: 更強大的 tab 補全
Variables: 使用 set 設置
Exit Status: 使用 echo $status 替代 $?
Exports (Shell Variables)
Lists: all variables in fish are really lists
Command Substitutions: 使用 (cmd) 來執行命令, 而不是 反引號、$()
Combiners (And, Or, Not): 不支持使用符合來表示邏輯運算
Functions:使用 $argv 替代 $1
Conditionals (If, Else, Switch) / Functions / Loops: 更人性化的寫法(參考 py)
Prompt: function fish_prompt 實現
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' # 設置變量,替代 name=czl
echo $name
echo $status # exit status,替代 $?
env # 環境變量
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 下定義的函數

參考資料

欧美激情aaaa_伊人久久久大香线蕉综合直播_日韩在线卡一卡二_亚洲成人人体
日本怡春院一区二区| 中文av字幕一区| 色综合久久久久综合99| 久久综合色8888| 亚洲线精品一区二区三区八戒| 国产一区二区三区在线观看免费视频 | 久久久不卡影院| 极品少妇一区二区| 日韩精品中午字幕| 精品中文av资源站在线观看| 欧美一区二区三区白人| 午夜久久福利影院| 欧美二区乱c少妇| 亚洲欧美偷拍三级| 高清在线成人网| 国产精品女同一区二区三区| 成人免费高清在线| 中文字幕免费在线观看视频一区| 国产成人综合网| 国产精品五月天| 91同城在线观看| 亚洲高清免费观看高清完整版在线观看 | 国产一区在线看| 久久精品人人做人人综合 | 一区二区三区四区五区视频在线观看 | 国产精品久久午夜| 日本福利一区二区| 日本不卡的三区四区五区| 欧美电影免费观看高清完整版 | 午夜精品福利一区二区蜜股av| 欧美高清视频一二三区| 黄色资源网久久资源365| 欧美国产精品劲爆| 欧美日精品一区视频| 日韩成人免费在线| 2024国产精品| 色av综合在线| 国内欧美视频一区二区| 国产精品久久毛片av大全日韩| 色综合久久久久久久久| 欧美aaaaa成人免费观看视频| 亚洲精品在线观看网站| 成年人网站91| 日韩av一区二区三区| 国产精品高潮呻吟| 制服视频三区第一页精品| 国产乱码精品一品二品| 亚洲一区在线观看免费观看电影高清| 欧美裸体bbwbbwbbw| 丁香另类激情小说| 午夜伦欧美伦电影理论片| 久久久久久麻豆| 欧美三级视频在线观看| 国产精品影视网| 亚洲一区二区精品视频| 日本一区二区在线不卡| 欧美精品乱人伦久久久久久| 丁香五精品蜜臀久久久久99网站| 亚洲一区国产视频| 日韩一区二区三区四区| 99亚偷拍自图区亚洲| 看电视剧不卡顿的网站| 亚洲精品成人在线| 精品国产青草久久久久福利| 欧美日韩在线播| 色婷婷久久久综合中文字幕 | 26uuu色噜噜精品一区二区| 欧美日韩情趣电影| 97久久超碰国产精品| 国产夫妻精品视频| 国产综合久久久久影院| 麻豆国产欧美一区二区三区| 亚洲第一久久影院| 亚洲免费资源在线播放| 中文字幕日本不卡| 国产女人18毛片水真多成人如厕| 日韩欧美美女一区二区三区| 欧美人妖巨大在线| 日本久久精品电影| 91国偷自产一区二区三区观看| 成人av资源在线| 国产成人精品三级| 成人在线视频一区| 成人免费的视频| 99久久久免费精品国产一区二区| 国产成人免费视频网站| 国产成人午夜精品影院观看视频 | 亚洲欧美日本在线| 亚洲欧美激情小说另类| 国产精品日日摸夜夜摸av| 国产精品色一区二区三区| 精品久久一区二区三区| 欧美精品一区二区三区高清aⅴ | 国产一区二区三区久久悠悠色av| 国产一区二区三区四区五区入口 | 国产精品一二三区在线| 福利一区二区在线| 99久久99久久久精品齐齐| 91麻豆国产福利精品| 欧美在线视频日韩| 91麻豆精品国产91久久久久 | 日韩成人午夜精品| 国产一区二区毛片| 99久久99久久久精品齐齐| 91一区二区在线| 色狠狠色狠狠综合| 日韩午夜精品电影| 国产精品成人免费精品自在线观看| 国产精品免费久久久久| 亚洲九九爱视频| 亚洲18色成人| 国产美女av一区二区三区| 色综合网色综合| 欧美一区二区三区在线| 日本一区二区视频在线观看| 一区二区三区精品在线观看| 蜜臀99久久精品久久久久久软件| 国产美女av一区二区三区| 色综合久久久久综合体| 日韩欧美高清dvd碟片| 一区在线中文字幕| 日韩高清不卡一区二区三区| 国产成人一级电影| 88在线观看91蜜桃国自产| 国产色爱av资源综合区| 亚洲第一二三四区| 成人av资源站| 日韩手机在线导航| 亚洲一区成人在线| 成人夜色视频网站在线观看| 91精品久久久久久久99蜜桃| 国产精品高潮久久久久无| 久久er精品视频| 在线免费不卡电影| 国产精品无圣光一区二区| 美女一区二区久久| 欧洲中文字幕精品| 国产精品免费免费| 激情综合网激情| 欧美一区午夜视频在线观看 | 99久久精品国产精品久久| 久久先锋影音av鲁色资源| 亚洲成人免费观看| 色婷婷香蕉在线一区二区| 国产婷婷色一区二区三区| 玖玖九九国产精品| 欧美日韩亚洲国产综合| 中文字幕一区二区不卡| 国产成人无遮挡在线视频| 欧美大度的电影原声| 免费看日韩a级影片| 欧美区一区二区三区| 亚洲综合一区二区三区| 94色蜜桃网一区二区三区| 国产女同互慰高潮91漫画| 国产呦萝稀缺另类资源| 日韩区在线观看| 麻豆精品精品国产自在97香蕉| 欧美日韩国产精选| 亚洲午夜三级在线| 91福利社在线观看| 亚洲六月丁香色婷婷综合久久 | 精品综合免费视频观看| 欧美一二三四在线| 另类调教123区| wwww国产精品欧美| 国产一区二区三区黄视频| 久久精品网站免费观看| 成熟亚洲日本毛茸茸凸凹| 国产精品嫩草影院com| 成人aa视频在线观看| 中文字幕一区二区三区色视频| 91蜜桃在线观看| 一区二区三区**美女毛片| 欧美日韩国产美| 日本成人在线网站| 久久亚洲综合色一区二区三区 | 中文字幕乱码一区二区免费| 成人av资源在线观看| 中文字幕色av一区二区三区| 91网站视频在线观看| 亚洲国产成人va在线观看天堂| 欧美日韩国产综合一区二区| 日韩中文欧美在线| 久久久青草青青国产亚洲免观| 国产精品 日产精品 欧美精品| 日本一区二区电影| 欧美色倩网站大全免费| 奇米综合一区二区三区精品视频| 精品理论电影在线| 91亚洲男人天堂| 美女视频第一区二区三区免费观看网站| 欧美大片在线观看一区二区| 成人影视亚洲图片在线| 香港成人在线视频| 中文字幕 久热精品 视频在线 | 色婷婷国产精品久久包臀| 蜜臀精品久久久久久蜜臀| 国产精品久99| 欧美一区二区三区婷婷月色|