小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Fish shell 入門教程

 書*金 2017-05-02

命令行是程序員的必備技能。圖形界面雖然好看,解決問題還是要靠命令行。

命令行由 Shell 提供。各種命令通過 Shell,傳遞給操作系統(tǒng)的內(nèi)核。學習命令行就是在學習 Shell。

Shell 有好幾種,目前最常用是 Bashzsh。但是,在我看來,它們都不如 Fish Shell 好用。

五年前,我第一次嘗試 Fish,感到很驚艷,一直用到現(xiàn)在。本文介紹 Fish 的主要特點,希望你也來嘗試它。

感謝優(yōu)達學城對本文提供贊助,結(jié)尾處有他們的課程推薦。

一、簡介

Fish 是'the friendly interactive shell'的簡稱,最大特點就是方便易用。很多其他 Shell 需要配置才有的功能,F(xiàn)ish 默認提供,不需要任何配置。

如果你想擁有一個方便好用的 Shell,又不想學習一大堆語法,或者花費很多時間配置,那么你一定要嘗試一下 Fish。

二、安裝

Ubuntu 和 Debian 的安裝方法。

$ sudo apt-get install fish

Mac 的安裝方法。

$ brew install fish

其他系統(tǒng)的安裝請參考官方網(wǎng)站。

三、啟動與幫助

安裝完成后,就可以啟動 Fish。

$ fish

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

使用過程中,如果需要幫助,可以輸入help命令。瀏覽器就會自動打開,顯示在線文檔。

$ help

四、彩色顯示

進入 Fish 以后,你注意到的第一件事,可能就是它默認彩色顯示。

# 無效命令為紅色$ mkd# 有效命令為藍色$ mkdir

有效路徑會有下劃線。

$ cat ~/somefi

上面代碼表示,存在以~/somefi開頭的路徑。如果沒有下劃線,你就知道這個路徑不存在。

五、自動建議

Fish 會自動在光標后面給出建議,表示可能的選項,顏色為灰色。

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

如果采納建議,可以按下Control + F。如果只采納一部分,可以按下Alt + →。

六、自動補全

輸入命令時,F(xiàn)ish 會自動顯示匹配的上一條歷史記錄。

$ git commit -m 'feat: first commit'

如果沒有匹配的歷史記錄,F(xiàn)ish 會猜測可能的結(jié)果,自動補全各種輸入。比如,輸入pyt再按下Tab,就會自動補全為python命令。

如果有多個可能的結(jié)果,F(xiàn)ish 會把它們都列出,還帶有簡要介紹。

$ vi[按下 Tab 鍵]vi (Executable link, 2.7MB)view (Vi IMproved, 一個程序員的文本編輯器)viewer.py (Executable, 967B)viewres (Graphical class browser for Xt)...and 12 more rows

這時,再按一次tab,就可以在這些命令之中選擇。

除了補全命令,F(xiàn)ish 還可以補全參數(shù)。比如,ls命令的-l參數(shù)后面按下Tab鍵,就會顯示可以連用的其他參數(shù)。

$ ls -l[按下 Tab 鍵]-l1 (List one file per line)-lA (Show hidden except . and ..) -la (Show hidden)-lB (Ignore files ending with ~)...and 16 more rows```

Fish 還可以自動補全 Git 分支。

$ git checkout master

七、易懂的語法

Fish 的語法非常自然,一眼就能看懂。

if語句。

if grep fish /etc/shells echo Found fishelse if grep bash /etc/shells echo Found bashelse echo Got nothingend

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.bakend

八、函數(shù)

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

function ll ls -lhG $argvend

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

下面是另一個例子。

function ls command ls -hG $argvend

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

九、提示符

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

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

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

02/06/13/home/tutorial >

十、配置

Fish 的配置文件是~/.config/fish/config.fish,每次 Fish 啟動,就會自動加載這個文件。

我們可以在這個文件里面寫入各種自定義函數(shù),它們會被自動加載。比如,上面的fish_prompt函數(shù)就可以寫在這個文件里面,這樣每次啟動 Fish,就會出現(xiàn)自定義的提示符。

Fish 還提供 Web 界面配置該文件。

$ fish_config

輸入上面的命令以后,瀏覽器就會自動打開本機的 8000 端口,用戶可以在網(wǎng)頁上對 Fish 進行配置,比如選擇提示符和配色主題。

(正文完)


下面是推廣時間。

最近,Angela Zhu 在她的公眾號發(fā)文《怎樣讓自己成為不可替代的程序員?》。

'前些日子,突發(fā)奇想,在我的小密圈里提了這樣一個問題:'未來,什么樣的程序員才是不可替代的?''

曹政回復了一篇《當我們追求不可替代......》。

'從我的歷史來說,我一直追尋的是讓自己可替代,不論是去盡可能培養(yǎng)年輕的接班人,還是外部延聘比我更出色的技術高手。如果沒有人可以接手我的系統(tǒng),我設計的平臺,我才會覺得緊張和不安。'

這個討論涉及了很多問題。

  • 個人如何保持競爭力
  • 公司如何選人
  • 如何留住人才

這些問題沒有標準答案。但是,有一點是肯定的:程序員必須勇于嘗試、開拓和創(chuàng)新,在挑戰(zhàn)和失敗面前不放棄。

優(yōu)達學城幫助你形成自己的競爭力。

《機器學習(納米學位)》課程的報名本周四(5月4日)截止,主講人是大名鼎鼎的 Sebastian Thrun,他是谷歌無人駕駛汽車項目的奠基人。感興趣的朋友不要錯過,如果試聽不滿意,一周內(nèi)全額退款。

優(yōu)達學城還有一門《機器學習入門課程》,重點講授編程基礎和數(shù)學基礎(線性代數(shù)、微積分和統(tǒng)計學),適合不知道如何入門的年輕朋友。

另外,還有《無人駕駛汽車》、《人工智能》《機器人工程師》等課程,大家也可以關注。

(完)

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多