首頁 > 科技週邊 > IT業界 > 75個ZSH命令,插件,別名和工具

75個ZSH命令,插件,別名和工具

Christopher Nolan
發布: 2025-02-15 10:08:13
原創
723 人瀏覽過

75 Zsh Commands, Plugins, Aliases and Tools

Zsh:75個命令、插件、別名和工具,助你提升終端效率

我每天大部分時間都在終端工作,而我選擇的 shell 是 Zsh——一個高度可定制的 Unix shell,擁有許多強大的功能。作為一個懶惰的開發者™,我一直在尋找減少輸入量並自動化所有任務的方法。幸運的是,Zsh 正是為此而生的。

在這篇文章中,我將分享 75 個命令、插件、別名和工具,希望能幫助你節省一些按鍵次數,提高日常工作的效率。

如果你還沒有在你的機器上安裝 Zsh,請查看這篇文章,我將向你展示如何快速上手。

關鍵要點

  • Zsh 是一個高度可定制的 Unix shell,非常適合尋求自動化任務並通過減少按鍵次數來提高生產力的開發者。
  • 本文提供了關於 75 個 Zsh 命令、插件、別名和工具的全面指南,包括實際應用和自定義技巧。
  • Zsh 的關鍵特性包括強大的命令行導航、條件執行以及高效地鏈接多個命令的能力。
  • Oh My Zsh,一個社區驅動的框架,通過提供數千個有用的函數、插件和主題來增強 Zsh,從而簡化你的工作流程。
  • 本文還重點介紹了別名和插件的使用,它們可以顯著加快常用任務的速度,並簡化 Zsh 中的複雜命令。

Zsh 的 15 個開箱即用功能

Zsh 與 Bash 共享許多方便的功能。以下功能並非 Zsh 獨有,但仍然值得了解。我鼓勵你開始使用命令行來執行以下列出的操作。起初,它可能看起來比使用 GUI 更費力,但一旦你掌握了竅門,你將永遠不會後悔。

  • 從文件系統的任何位置輸入 cd 將直接帶你回到你的主目錄。
  • 輸入 !! 將調出最後一個命令。如果命令失敗是因為需要管理員權限,這將非常方便。在這種情況下,你可以輸入 sudo !!
  • 你可以使用 && 來鏈接多個命令。例如,mkdir project && cd project && npm init -y
  • 使用 || 可以進行條件執行。例如,git commit -m "whatever..." || echo "Commit failed"
  • 使用 mkdir 命令的 -p 開關將允許你根據需要創建父目錄。使用花括號擴展可以減少重複。例如,mkdir -p articles/jim/sitepoint/article{1,2,3}
  • 在每個命令的基礎上設置環境變量,例如:NODE_DEBUG=myapp node index.js。或者,在每個會話的基礎上設置:export NODE_DEBUG=myapp。你可以通過輸入 echo $variable-name 來檢查它是否已設置。
  • 將一個命令的輸出管道傳輸到第二個命令。例如,cat /var/log/kern.log | less 使長的日誌易於閱讀,或者 history | grep ssh 搜索包含“ssh”的任何歷史記錄條目。
  • 你可以從終端在你的編輯器中打開文件。例如,nano ~/.zshrc (nano),subl ~/.zshrc (Sublime Text),code ~/.zshrc (VS Code)。如果文件不存在,當你按下編輯器中的“保存”時,它將被創建。
  • 導航是一項重要的技能。不要僅僅依賴你的箭頭鍵。例如,<kbd>Ctrl</kbd> <kbd>a</kbd> 將帶你到一行的開頭。
  • <kbd>Ctrl</kbd> <kbd>e</kbd> 將帶你到結尾。
  • 你可以使用 <kbd>Ctrl</kbd> <kbd>w</kbd> 刪除一個單詞(向後)。
  • <kbd>Ctrl</kbd> <kbd>u</kbd> 將刪除從光標到行首的所有內容。
  • <kbd>Ctrl</kbd> <kbd>k</kbd> 將清除從光標到行尾的所有內容。最後三個可以使用 <kbd>Ctrl</kbd> <kbd>y</kbd> 撤消。
  • 你可以使用 <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>c</kbd> 複製文本。這比右鍵單擊並選擇“複製”要優雅得多。
  • 相反,你可以使用 <kbd>Ctrl</kbd> <kbd>shift</kbd> <kbd>v</kbd> 粘貼複製的文本。

嘗試記住這些按鍵組合。你會驚訝於它們會有多麼頻繁地派上用場。

15 個自定義別名,提升你的生產力

別名是常規命令的終端快捷方式。你可以將它們添加到你的 ~/.zshrc 文件中,然後重新加載你的終端(使用 source ~/.zshrc)以使它們生效。

聲明(簡單)別名的語法如下:

<code>alias [alias-name]='[command]'</code>
登入後複製
登入後複製

別名非常適合常用命令、長命令或語法難以記住的命令。以下是一些我經常使用的別名:

  • 一個 myip 別名,它將你當前的公共 IP 地址打印到終端:alias myip='curl http://ipecho.net/plain; echo'

  • 一個 distro 別名,用於輸出有關你的 Linux 發行版的信息:alias distro='cat /etc/*-release'

  • 一個 reload 別名,因為我似乎總是記不住如何重新加載我的終端:alias reload='source ~/.zshrc'

  • 一個 undo-git-reset 別名:alias undo-git-reset-head="git reset 'HEAD@{1}'"。這將恢復運行 git reset HEAD~ 的效果。

  • 一個更新包列表的別名:alias sapu='sudo apt-get update'

  • 一個使用 sudo 重新運行上一個命令的別名:alias ffs='sudo !!'

  • 因為我很懶,所以我將 y 作為 yarn 命令的別名:alias y='yarn'。這意味著我可以克隆一個倉庫,然後只需輸入 <kbd>y</kbd> 即可引入所有依賴項。我從 Syntax 上的 Scott Tolinski 那裡學到了這個。

  • 我不常用,但這個別名會清除 node_modules 文件夾並刪除 package-lock.json 文件,然後重新安裝項目的依賴項:alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'。正如你可能知道的,yolo 代表 You Only Live Once。

  • 一個打開我的 .zshrc 文件進行編輯的別名:alias zshconfig='subl $HOME/.zshrc'

  • 一個更新 rbenv 可以安裝的 Ruby 版本列表的別名:alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'

  • 一個在你當前目錄啟動服務器的別名(不需要 npm 包):alias server='python -m SimpleHTTPServer 8000'

  • 你還可以創建一個別名,以便在瀏覽器中打開文檔:alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'

  • 一個全局別名,用於將命令的輸出管道傳輸到 less:alias -g L='| less'。你可以像這樣使用它:cat production.log L

  • 一個全局別名,用於將命令的輸出管道傳輸到 grep:alias -g G='| grep'。你可以像這樣使用它:history G ssh

  • 你還可以使用函數來創建別名。以下(取自此處)創建了一個添加、提交並將代碼推送到 GitHub 的別名:

    <code>alias [alias-name]='[command]'</code>
    登入後複製
    登入後複製

在線上有很多地方可以找到更多關於別名的想法。例如,這個 Hacker News 討論,或者這篇關於使用 Zsh 提高命令行生產力的文章。

使用 (Oh My) Zsh 可以完成的 15 件很酷的事情

Oh My Zsh 是一個社區驅動的框架,用於管理你的 Zsh 配置,並捆綁了數千個有用的函數、助手、插件和主題。如果你要將 Z shell 作為你的日常驅動程序,你應該 真的 安裝 Oh My Zsh。

以下是 Oh My Zsh 可以為你做的十五件有用的事情:

  • take 命令將創建一個新目錄 進入該目錄。 take my-project 替換 mkdir my-project && cd my-project
  • zsh_stats 將為你提供前 20 個命令及其運行次數的列表。
  • Oh My Zsh 簡化了你的文件系統導航。例如,..cd ... 的別名。
  • 同樣,... 將你向上移動兩個目錄,.... 向上移動三個,..... 向上移動四個。
  • 你可以在導航時省略 cd。例如,輸入 / 將直接帶你到你的文件系統根目錄。
  • 也支持部分匹配。例如,輸入 /h/j/De 並按下 <kbd>TAB</kbd>,然後 <kbd>Return</kbd>,將帶我到 /home/jim/Desktop/
  • rdrmdir 的別名,mdmkdir -p 的別名。
  • 你可以輸入 d 來列出終端會話中最後使用的目錄。
  • 然後,你可以使用 cd -n 導航到這些目錄中的任何一個,其中 n 是目錄編號。
  • Tab 補全是另一個很棒的功能。例如,輸入 ls - 並按下 <kbd>TAB</kbd> 將列出所有命令選項,以及對它們功能的有用描述。這也適用於 caprakesshkill
  • 輸入 alias 將列出你當前的所有別名。
  • 使用通配符(Zsh 功能),你可以列出具有特定擴展名的文件。例如,ls *.html 將列出當前目錄中的所有 HTML 文件。要包含子目錄,請更改為:ls **/*.html
  • 通配符限定符允許你使用標誌來選擇文件類型。例如,ls -l **/*(.x) 將查找當前目錄和所有子目錄中的所有可執行文件。
  • 你可以按修改日期搜索文件。例如,ls *(m-7) 將列出過去一周內修改的所有文件。
  • 你可以按大小搜索文件。例如,ls *(Lm 1) 將查找大小大於 1MB 的所有文件。

使用插件,獲得樂趣和收益

Oh My Zsh 附帶 大量 插件。你應該瀏覽這些插件,並投入一些時間學習那些可以幫助你工作流程的插件。

以下是我經常使用的三個插件,它們提供了大量方便的快捷方式和別名。

10 個漂亮的 Git 別名

git 插件提供了許多別名和一些有用的函數。為什麼不瀏覽這些並嘗試記住你最常用的十個呢?以下是我最常用的那些。

  1. ggit 的方便別名。這意味著你可以輸入諸如 g clone <whatever></whatever> 之類的內容,而不是 git clone <whatever></whatever>。可能只有兩個按鍵,但它們很快就會累積起來。
  2. gaagit add all 的別名。我一直都在使用這個。
  3. gbgit branch 的別名,它將列出當前倉庫中的所有分支,並顯示你當前所在的哪個分支。
  4. gcbgit checkout -b 的別名,這個命令允許你創建一個新的分支。
  5. gcmgit checkout master 的別名。這將你返回到主分支。
  6. gdcagit diff --cached 的別名。這允許你對已暫存以進行提交的任何文件進行差異比較。
  7. gfgit fetch 的別名。
  8. gmgit merge 的別名。
  9. gpgit push 的別名。要同步倉庫的分支,你可以執行:gf upstreamgm upstream/master,然後是 gp
  10. gloggit log --oneline --decorate --graph 的別名,它將為你提供一個漂亮的 git 分支圖。

10 個方便的 npm 別名

npm 插件提供了補全以及許多有用的別名。

  • npmgnpm install --global 的別名,你可以使用它在你的系統上全局安裝依賴項。例如,npmg nodemon
  • npmSnpm install --save 的別名,你可以使用它來安裝依賴項並將它們添加到你的 package.jsondependencies 部分。請注意,從 npm 5.0.0 開始,在運行 npm i <package></package> 時,這是默認值。
  • npmDnpm install --save-dev 的別名,你可以使用它來安裝依賴項並將它們添加到你的 package.jsondevDependencies 部分。
  • npmOnpm outdated 的別名,它將檢查註冊表以查看任何(或特定)已安裝的包當前是否已過期。
  • npmLnpm list 的別名,它將列出已安裝的包。
  • npmL0npm list --depth=0 的別名,它列出頂級包。這對於查看全局安裝了哪些模塊特別有用,而不會用巨大的依賴樹淹沒你的終端:npmL0 -g
  • npmstnpm run start 的別名,這是一個常用於啟動應用程序的 npm 腳本。
  • npmtnpm run test 的別名,正如你可能猜到的那樣,它用於運行你的測試。
  • npmRnpm run 的別名。它本身將列出項目的所有可用 npm 腳本,以及對它們功能的描述。與腳本名稱一起使用時,它將運行該腳本,例如,npmR build
  • npmInpm init 的別名。這將向你提出一些問題,然後根據你的答案創建一個 package.json。使用 -y 標誌來自動化此過程。例如,npmI -y

10 個節省時間的 Rails/Rake 別名

此插件增加了對 Ruby on Rails 框架和 Rake 程序的補全,以及一些用於日誌和環境變量的別名。

  • rcrails console 的別名,它允許你從 CLI 與你的 Rails 應用程序交互。
  • rdcrake db:create 的別名,它(除非設置了 RAILS_ENV)將為你的應用程序創建開發和測試數據庫。
  • rddrake db:drop 的別名,它將刪除你的應用程序的開發和測試數據庫。
  • rdmrake db:migrate 的別名,它將運行任何掛起的數據庫遷移。
  • rdsrake db:seed 的別名,它運行 db/seeds.rb 文件以使用數據填充你的開發數據庫。
  • rgenrails generate 的別名,它將生成樣板代碼。例如:rgen scaffold item name:string description:text
  • rgmrails generate migration 的別名,它將生成數據庫遷移。例如:rgm add_description_to_products description:string
  • rrrake routes 的別名,它列出應用程序的所有已定義路由。
  • rrgrake routes | grep 的別名,它允許你列出和過濾已定義的路由。例如,rrg user
  • rsrails server 的別名,它啟動 Rails 默認的 Web 服務器。

其他資源

上面列出的插件的主要工作是為常用命令提供別名。請注意,還有許多其他插件可以為你的 shell 添加其他功能。

以下是我最喜歡的四個:

  • sudo 允許你通過按兩次 <kbd>ESC</kbd> 來輕鬆地為當前或之前的命令添加 sudo 前綴。
  • autosuggestions 根據歷史記錄和補全內容在你鍵入時建議命令。如果建議的是你正在尋找的命令,請按 <kbd>→</kbd> 鍵接受它。一個真正的節省時間的工具!
  • command-not-found:如果 $PATH 中未識別命令,它將使用 Ubuntu 的 command-not-found 包來查找它或建議拼寫錯誤。
  • z 是一個方便的插件,它會構建你最常用和最近的文件夾列表(它稱之為“frecent”),並允許你使用一個命令跳轉到它們。

不要忘記,如果你在終端上花費大量時間,那麼讓它在視覺上更具吸引力是值得的。幸運的是,Oh My Zsh 附帶了許多主題供你選擇。我最喜歡的主題是 Agnoster。

你可以在我的文章《10 個 Zsh 提示和技巧:配置、自定義和用法》中了解更多關於主題的信息。

結論

就是這樣:75 個 Zsh 命令、插件、別名和工具。我希望你在學習過程中學到了一兩個技巧,並且我鼓勵你離開你的 GUI 並進入終端。它比看起來容易得多,並且是提高生產力的好方法。

如果我錯過了你最喜歡的插件或節省時間的別名/命令,請在 Twitter 上告訴我。

想從你的工具包中獲得更多收益嗎?請查看 Wiley 的《Visual Studio Code:Web 開發人員的端到端編輯和調試工具》。

關於 Zsh 命令、插件、別名和工具的常見問題

使用 Zsh 比使用其他 shell(如 Bash)有什麼好處?

Zsh,也稱為 Z shell,是一個強大的 shell,包含來自其他 shell(如 Bash、tcsh 和 ksh)的功能。它比這些 shell 提供了一些優勢。首先,Zsh 具有強大的自動完成功能,可以建議命令、文件名、選項甚至主機名。此功能可以顯著加快你的工作流程。其次,Zsh 支持共享命令歷史記錄,這允許你查看在另一個終端會話中鍵入的命令。第三,Zsh 允許你同時使用 Emacs 和 vi 編輯模式,這使得它對不同的用戶來說更加靈活。最後,Zsh 擁有一種強大的腳本語言,具有關聯數組和浮點運算等功能,這些功能在 Bash 中是不可用的。

如何自定義我的 Zsh 提示符?

Zsh 允許你使用 PROMPT 變量來自定義你的提示符。你可以在你的 .zshrc 文件中設置此變量。例如,如果你想在你的提示符中顯示當前目錄,你可以使用 %~ 參數。因此,你的 PROMPT 變量將如下所示:PROMPT='%~%# '。你還可以使用 %F{color} 參數向你的提示符添加顏色。例如,要使你的提示符為綠色,你可以使用:PROMPT='%F{green}%~%# %f'%f 將顏色重置為默認顏色。

如何在 Zsh 中使用別名?

Zsh 中的別名可以通過允許你為長命令或常用命令創建快捷方式來幫助你節省時間。你可以使用 alias 命令後跟別名和你要快捷的命令來創建一個別名。例如,要為 ls -l 命令創建一個別名,你可以使用:alias ll='ls -l'。你可以將此行添加到你的 .zshrc 文件中以使別名永久生效。

什麼是 Zsh 插件,如何使用它們?

Zsh 插件是為你的 Zsh shell 添加附加功能的腳本。它們可以幫助你自動化任務、添加新功能或自定義你的 shell。要使用 Zsh 插件,你首先需要安裝它。這通常涉及將插件的存儲庫克隆到你的 .oh-my-zsh/plugins 目錄中,然後將插件添加到你的 .zshrc 文件中的 plugins 數組中。安裝插件後,你就可以開始使用它的功能了。

如何從 Bash 切換到 Zsh?

從 Bash 切換到 Zsh 是一個簡單的過程。首先,你需要使用你的包管理器安裝 Zsh。例如,在 Ubuntu 上,你可以使用:sudo apt install zsh。安裝 Zsh 後,你可以使用 chsh 命令將其設置為你的默認 shell:chsh -s $(which zsh)。下次你打開終端時,它將使用 Zsh。

如何使用 Zsh 主題?

Zsh 主題允許你自定義 shell 的外觀。你可以更改配色方案、提示符佈局,甚至添加當前時間或 git 狀態等元素。要使用 Zsh 主題,你首先需要安裝它。這通常涉及將主題的存儲庫克隆到你的 .oh-my-zsh/themes 目錄中,然後將你的 .zshrc 文件中的 ZSH_THEME 變量設置為主題的名稱。安裝主題後,你可以通過獲取你的 .zshrc 文件來激活它:source ~/.zshrc

什麼是 Oh My Zsh,如何使用它?

Oh My Zsh 是一個社區驅動的框架,用於管理你的 Zsh 配置。它附帶了許多有用的函數、插件和主題。要使用 Oh My Zsh,你首先需要安裝它。這通常涉及下載安裝腳本並在你的終端中運行它。安裝 Oh My Zsh 後,你可以通過編輯你的 .zshrc 文件來開始自定義你的 shell。

如何使用 Zsh 函數?

Zsh 函數允許你將命令組合在一起並將其作為單個命令執行。你可以使用 function 關鍵字後跟函數名稱和命令塊來定義函數。例如,要創建一個打印“Hello, world!”的函數,你可以使用:function hello { echo "Hello, world!"; }。你可以通過鍵入函數名稱來調用此函數:hello

如何使用 Zsh 數組?

Zsh 支持索引數組和關聯數組。你可以使用 set 命令後跟數組名稱和元素來創建索引數組。例如,要創建一個顏色數組,你可以使用:set -A colors red green blue。你可以使用其索引訪問數組的元素:echo $colors[1]。要創建關聯數組,你可以使用 typeset 命令:typeset -A colors; colors[red]=#FF0000; colors[green]=#00FF00; colors[blue]=#0000FF;

如何使用 Zsh 循環?

Zsh 支持幾種類型的循環,包括 for、while 和 until 循環。 for 循環允許你為列表中的每個元素重複執行命令塊。例如,要打印從 1 到 5 的數字,你可以使用:for i in {1..5}; do echo $i; done。 while 循環允許你在條件為真時重複執行命令塊。例如,要打印從 1 到 5 的數字,你可以使用:i=1; while (( i < 6 )); do echo $i; i=$((i 1)); done。 until 循環允許你在條件為假時重複執行命令塊。例如,要打印從 1 到 5 的數字,你可以使用:i=1; until (( i > 5 )); do echo $i; i=$((i 1)); done

以上是75個ZSH命令,插件,別名和工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板