<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## Fish shell 入門教程 ##### 原文鏈接:http://www.ruanyifeng.com/blog/2017/05/fish_shell.html 命令行是程序員的必備技能。圖形界面雖然好看,解決問題還是要靠命令行。 命令行由 Shell 提供。各種命令通過 Shell,傳遞給操作系統的內核。學習命令行就是在學習 Shell。 Shell 有好幾種,目前最常用是 Bash 和 zsh。但是,在我看來,它們都不如 Fish Shell 好用。 ### 一、簡介 * * * * * Fish 是"the friendly interactive shell"的簡稱,最大特點就是方便易用。很多其他 Shell 需要配置才有的功能,Fish 默認提供,不需要任何配置。 如果你想擁有一個方便好用的 Shell,又不想學習一大堆語法,或者花費很多時間配置,那么你一定要嘗試一下 Fish。 ## 二、安裝 Ubuntu 和 Debian 的安裝方法。 > ~~~ > > $ sudo apt-get install fish > > ~~~ Mac 的安裝方法。 > ~~~ > > $ brew install fish > > ~~~ 其他系統的安裝請參考[官方網站](http://fishshell.com/#platform_tabs)。 ## 三、啟動與幫助 安裝完成后,就可以啟動 Fish。 > ~~~ > > $ fish > > ~~~ 由于 Fish 的語法與 Bash 有很大差異,Bash 腳本一般不兼容。因此,我建議不要將 Fish 設為默認 Shell,而是每次手動啟動它。 使用過程中,如果需要幫助,可以輸入`help`命令。瀏覽器就會自動打開,顯示在線文檔。 > ~~~ > > $ help > > ~~~ ## 四、彩色顯示 進入 Fish 以后,你注意到的第一件事,可能就是它默認彩色顯示。 > ~~~ > > # 無效命令為紅色 > $ mkd > > # 有效命令為藍色 > $ mkdir > > ~~~ 有效路徑會有下劃線。 > ~~~ > > $ cat ~/somefi > > ~~~ 上面代碼表示,存在以`~/somefi`開頭的路徑。如果沒有下劃線,你就知道這個路徑不存在。 ## 五、自動建議 Fish 會自動在光標后面給出建議,表示可能的選項,顏色為灰色。 > ~~~ > > # 命令建議 > $ /bin/hostname > > # 參數建議 > $ grep --ignore-case > > # 路徑建議 > $ ls node_modules > > ~~~ 如果采納建議,可以按下`→`或`Control + F`。如果只采納一部分,可以按下`Alt + →`。 ## 六、自動補全 輸入命令時,Fish 會自動顯示匹配的上一條歷史記錄。 > ~~~ > > $ git commit -m "feat: first commit" > > ~~~ 如果沒有匹配的歷史記錄,Fish 會猜測可能的結果,自動補全各種輸入。比如,輸入`pyt`再按下`Tab`,就會自動補全為`python`命令。 如果有多個可能的結果,Fish 會把它們都列出,還帶有簡要介紹。 > ~~~ > > $ 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`,就可以在這些命令之中選擇。 除了補全命令,Fish 還可以補全參數。比如,`ls`命令的`-l`參數后面按下`Tab`鍵,就會顯示可以連用的其他參數。 > ~~~ > > $ 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 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_prompt`函數就可以寫在這個文件里面,這樣每次啟動 Fish,就會出現自定義的提示符。 Fish 還提供 Web 界面配置該文件。 > ~~~ > > $ fish_config > > ~~~ 輸入上面的命令以后,瀏覽器就會自動打開本機的 8000 端口,用戶可以在網頁上對 Fish 進行配置,比如選擇提示符和配色主題。 ![](http://www.ruanyifeng.com/blogimg/asset/2017/bg2017050203.png) (正文完)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看