Fish:一個友好的互動式 Shell

2020-04-03 21:43:00

你是否正在尋找 bash 的替代品?你是否在尋找更人性化的東西?不用再看了,因為你剛發現了 fish!

Fish(友好的互動式 shell)是一個智慧且使用者友好的命令列 shell,可在 Linux、MacOS 和其他作業系統上執行。可以將其用於終端的日常工作和指令碼編寫。用 fish 編寫的指令碼比相同的 bash 版本具有更少的神秘性。

Fish 的使用者友好功能

  • 建議:Fish 會提示你之前寫過的命令。當經常輸入相同命令時,這樣可以提高生產率。
  • 健全的指令碼能力:Fish 避免使用那些隱秘字元。這提供了更清晰和更友好的語法。
  • 基於手冊頁的補全:Fish 會根據命令的手冊頁自動補全引數。
  • 語法高亮:Fish 會高亮顯示命令語法以使其在視覺上友好。

安裝

Fedora 工作站

使用 dnf 命令安裝 fish:

$ sudo dnf install fish

安裝 util-linux-user 包,然後使用適當的引數執行 chsh(更改 shell 程式)命令,將 fish 設定為預設 shell 程式:

$ sudo dnf install util-linux-user$ chsh -s /usr/bin/fish

你需要登出然後重新登入,更改才能生效。

Fedora Silverblue

由於它不是 GUI 應用,因此你需要使用 rpm-ostree 將其加到層內。使用以下命令在 Fedora Silverblue 上安裝 fish:

$ rpm-ostree install fish

在 Fedora Silverblue 上,你需要重新啟動 PC 才能切換到新的 ostree 映象。

如果你想在 Fedora Silverblue 用 fish 作為主要 shell,最簡單的方法是更新 /etc/passwd 檔案。找到你的使用者,並將 /bin/bash 更改為 /usr/bin/fish

你需要 root 許可權來編輯 /etc/passwd 檔案。另外,你需要登出並重新登入才能使更改生效。

設定

fish 的使用者組態檔在 ~/.config/fish/config.fish。要更改所有使用者的設定,請編輯 /etc/fish/config.fish

使用者組態檔必須手動建立。安裝指令碼不會建立 ~/.config/fish/config.fish

以下是兩個個設定範例以及它們的 bash 等效項,以幫助你入門:

建立別名

  • ~/.bashrcalias ll='ls -lh'
  • ~/.config/fish/config.fish: alias ll='ls -lh'

設定環境變數

  • ~/.bashrcexport PATH=$PATH:~/bin
  • ~/.config/fish/config.fishset -gx PATH $PATH ~/bin

使用 fish 工作

將 fish 設定為預設 shell 程式後,命令提示字元將類似於下圖所示。如果尚未將 fish 設定為預設 shell,只需執行 fish 命令以在當前終端對談中啟動。

在你開始輸入命令時,你會注意到語法高亮顯示:

很酷,不是嗎?