宇宙第一 shell —— fish 入門
二逼青年用 bash,普通青年用 zsh,文藝青年用 fish。
安裝以及配置
Linux 和 OS X 基本都可以通過源來安裝,實在不行就下載原始碼編譯,不難的。
安裝好第一步是修改 OS 預設 shell:
chsh -s /usr/bin/fish
然後就可以直接使用了,就是這麼簡單。你不需要面對 zsh 浩如煙海的配置檔案,也不需要去 github clone 一個 “Oh My Zsh”。
當然如果你實在想配置,輸入 fish_config
命令會啟動 web 管理介面。
什麼?逼格太低,非要手動配置。OK, ~/.config/fish/config.fish
這就是 fish 的配置檔案,類似於 bash 的.bashrc
。
我喜歡配置三件東西:
-
問候語(配置
config.fish
):set fish_greeting 'Talk is cheap. Show me the code.'
-
命令列提示(在web介面配置,完成後會生成
~/.config/fish/functions/fish_prompt.fish
): -
設定接受建議(第三條優勢)的快捷鍵:
修改
fish_prompt.fish
,增加一條語句:bind \ej accept-autosuggestion
。同時按下alt和j將接受建議。
優勢
語法高亮
不存在的命令會顯示為紅色。
萬用字元
整合find
命令,遞迴搜尋神器。
智慧建議
當按下幾個字母后,fish
會有智慧建議,按下向右箭頭將接受建議。
Tab補全
如果補全項超過1個,會列出全部以供選擇。
變數
fish是通過set
來代替“=”對變數賦值的。
將某目錄加入到PATH
中也是用set
(配置config.sh
):
set PATH $PATH /home/mountain/shell
Exports
fish沒有export命令,需要用set -x來代替。如果需要擦除變數,就執行set -e。
列表
有些變數有多個值,例如$PATH
,fish
會把所有值組裝成一個列表,可以迭代或者通過下標訪問。
命令替換
用法很簡單,把命令放在括號裡即可。
語法糖
fish 的常用關鍵字(if、switch、function 等)比 bash 高階、實用很多,但是考慮到公司的生產環境根本不可能安裝 fish,導致指令碼無法移植,所以對於這部分只能忍痛放棄。
總結
這篇文章雖然字數不多,但是凝結了我不少心血,基本把官方文件全翻譯了一遍,然後提取了簡單實用的功能分享給大家,還有很多牛逼的功能限於我能力有限就不在這班門弄斧了。
相關文章
- Fish shell 入門教程
- shell入門--第一個shell指令碼指令碼
- shell入門
- shell入門系列
- fish shell 自動補全子命令
- Fish Shell 的使用特性和優勢
- Shell入門——shell特性、變數變數
- 手把手入門Fish-Redux開發flutter(中)ReduxFlutter
- 手把手入門Fish-Redux開發flutter(下)ReduxFlutter
- 手把手入門Fish-Redux開發flutter(上)ReduxFlutter
- linux新手入門――shell入門(轉)Linux
- shell入門基礎
- Shell從入門到精通
- Shell 程式設計入門程式設計
- shell程式設計入門程式設計
- 智慧且使用者友好的命令列 shell–Fish命令列
- fish:Linux中比bash或zsh更好用的ShellLinux
- shell一文入門通
- Shell 入門系列 (一): 變數變數
- Spring Shell入門介紹Spring
- csh shell程式設計入門程式設計
- aix_shell入門之一AI
- shell程式設計入門指南程式設計
- 如何在 Linux 中安裝、配置和使用 Fish Shell?Linux
- Shell程式設計入門例項程式設計
- shell入門基礎必備(轉)
- Flutter 入坑指南(dio +fish_redux)FlutterRedux
- Shell入門:掌握Linux,OS X,Unix的Shell環境Linux
- Shell 入門系列: 導航 (未完待續)
- 簡單的 Shell 指令碼入門教程指令碼
- scrapy入門教程3:scrapy的shell命令
- Linux入門---(三)Shell程式設計Linux程式設計
- 宇宙第一IDE是誰?IDE
- XGBoost入門系列第一講
- 1(1)FPGA入門第一關FPGA
- Linux基礎入門(一)初識ShellLinux
- shell入門基礎&常見命令及用法
- [轉自LINUXEDEN]shell入門絕佳!(三)Linux