更優雅地使用命令行

来源:https://www.cnblogs.com/xiaohuochai/archive/2020/01/08/12169113.html
-Advertisement-
Play Games

[1]CLI 一鍵呼入呼出 [2]zsh [3]別名配置 [4]homebrew [5]插件推薦 ...


zsh

工欲善其事,必先利其器,通過武裝自己的命令行工具,從而更優雅地使用命令行,可以使工作更加高效並且有趣。本文將以下幾個方面來介紹命令行的使用技巧和提效工具

CLI 一鍵呼入呼出

iterm2 是一款完全免費,為 MacOS 打造的終端工具,特色功能是可以開啟熱鍵視窗,達到一鍵呼入呼出的效果

效果如下:

iterm2

詳細設置如下:

1、首先,進行如下設置

preferences > Keys > HotKey > Create a Dedicated Hotkey Window...

iterm2_set01

2、接著,設置熱鍵,並選擇 Animate showing and hidingFloating window 這兩個選項

iterm2_set02

zsh

目前常用的 Linux 系統和 OS X 系統的預設 Shell 都是 bash。oh my zsh 是強化版的 Shell

如果是 Mac OS,預設應該自帶了 zsh 了,安裝之前可以確認一下

cat /etc/shells

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

通過如下命令,可以查看當前環境的 shell

echo $SHELL

可以使用如下的命令進行 shell 切換,要特別註意的是,切換 shell 後,重啟 CLI 才能生效

chsh -s /bin/bash # 切換bash
chsh -s /bin/zsh # 切換zsh

接下來,開始安裝 oh-my-zsh,要特別註意的是,不能使用官網的地址進行安裝,否則會提示

Failed to connect to raw.github.com port 443: Connection refused

而應該用如下的地址進行安裝

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安裝完成後,會提示是否將 zsh 設置為預設 shell,選擇 Y

Time to change your default shell to zsh:
Do you want to change your default shell to zsh? [Y/n] y
Changing the shell...
Changing shell for root.
Shell successfully changed to '/bin/zsh'.

         __                                     __
  ____  / /_     ____ ___  __  __   ____  _____/ /_
 / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \
/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / /
\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/
                        /____/                       ....is now installed!


Please look over the ~/.zshrc file to select plugins, themes, and options.

p.s. Follow us on https://twitter.com/ohmyzsh

p.p.s. Get stickers, shirts, and coffee mugs at https://shop.planetargon.com/collections/oh-my-zsh

下麵簡單介紹下 oh-my-zsh 的優點

1、主題提示信息從用戶名和主機名變成了當前目錄的名稱

2、按 tab 鍵補全,不僅可以補全命令,也可以補全選項、參數、文件等

3、跳轉路徑可省略 cd 命令,並可進行路徑的首字元匹配

c/k/k/t/c

按下 tab 鍵之後,會自動補全為如下路徑

code/ktsg/ktsg_new/trunk/config

4、當前所在目錄下直接輸入 d ,將會展示出歷史訪問目錄列表(最近20個),並且左側加了數字索引

$ d
0   ~/Desktop/md/blog
1   ~/Desktop/md
2   ~/Desktop
3   ~

別名配置

使用 git 別名配置,可以讓 git 體驗更簡單

可以通過 git config 命令來為命令 git branch 設置一個別名

$ git config --global alias.b branch

這意味著,當要輸入 git branch 時,只需要輸入 git b 就好了

更簡單的方式,是直接編輯 ~/.gitconfig 文件,可以達到相同的效果

[alias]
b = branch

但如果只想輸入 gb,就想實現 git branch 相同的效果,則需要使用 linux 的別名功能

實際上,zsh 已經預設設置了 git 的插件,文件路徑如下

.oh-my-zsh/plugins/git/git.plugin.zsh

下麵是一些常用的配置

alias g='git'
alias ga='git add'
alias gb='git branch'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gcam='git commit -a -m'
alias gcb='git checkout -b'
alias gcmsg='git commit -m'
alias gco='git checkout'
alias gd='git diff'
alias gl='git pull'
alias glog='git log --oneline --decorate --graph'
alias gloga='git log --oneline --decorate --graph --all'
alias gp='git push'
alias gsb='git status -sb'
alias gst='git status'

使用 gst 的效果如下

$ gst
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   html_backup.md
    new file:   t.html

homebrew

brew 又叫 homebrew,是 Mac 上的軟體包管理工具,可以在 Mac 中方便的安裝或者卸載軟體

下麵是 homebrew 的常用命令

brew install git # 安裝
brew uninstall wget # 卸載
brew list # 列出已安裝的軟體

插件推薦

下麵是一些插件推薦,插件安裝完成後,需要打開 ~/.zshrc,找到 plugins=,然後在裡面寫需要的插件名。只要修改了此文件,要使用 source ~/.zshrc 來更新配置

快速跳轉

autojump 插件實現了目錄間快速跳轉,想去哪個目錄直接 j + 目錄名,不用再頻繁的 cd

使用 autojump 命令,或使用短命令 j 來跳轉到指定目錄。要註意的是,只有打開過的目錄插件才會記錄。所以,使用時間越長,插件才越智能

j directoryName

zsh_02

安裝如下:

brew install autojump

然後在 .zshrc 文件中添加如下語句

[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh

命令提示

使用 zsh-autosuggestions 插件可以在輸入命令時提示自動補全(灰色部分),然後按鍵盤方向右鍵,即可補全

zsh_01

安裝如下:

cd ~/.oh-my-zsh/custom/plugins/
sudo git clone https://github.com/zsh-users/zsh-autosuggestions

語法高亮

使用 zsh-syntax-highlighting 插件,日常用的命令會高亮顯示,命令錯誤顯示紅色

zsh_03

安裝如下:

cd ~/.oh-my-zsh/custom/plugins/
sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git

命令更正

使用 thefuck 插件,可以用於命令糾正,輸入 fuck 後,可以糾正前一條輸錯的命令

the_fuck

安裝如下:

brew install thefuck

然後在 .zshrc 文件中添加如下語句

eval $(thefuck --alias)

搜索關鍵詞

使用 web-search 插件可以使用搜索引擎進行搜索,比如使用 googlestackoverflow

$ google oh-my-zsh # 使用 google 搜索 oh-my-zsh
$ stackoverflow oh-my-zsh # 使用 stackoverflow 搜索 oh-my-zsh

zsh_web_search

該插件不需要安裝,直接在 zshrc 文件中的 plugins 中添加即可

打開遠程倉庫

使用 git-open 插件,輸入 git open 就能夠在瀏覽器中打開一個倉庫的 github 頁面

git_open

安裝如下:

cd ~/.oh-my-zsh/custom/plugins/
sudo git clone https://github.com/paulirish/git-open.git $ZSH_CUSTOM/plugins/git-open

快捷搜索

fzf 插件是一個通用的命令行模糊搜索工具,依靠模糊的關鍵詞,可以快速定位文件

通過 code $(fzf) 命令可以進行文件搜索

fzf

安裝如下:

brew install fzf

翻譯

translate shell 是一款預設藉助谷歌翻譯來進行翻譯的命令行翻譯器

使用 trans 命令可以進行翻譯,加上 -sp選項(speak的簡寫)同時也可以發音

trans

安裝如下:

brew install translate-shell

插件配置

上面的插件安裝完成後,.zshrc 文件的插件部分的相關配置如下

plugins=(
    git
    web-search
    autojump
    zsh-syntax-highlighting
    zsh-autosuggestions
    git-open
    fzf
)

# autojump
[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh

# thefuck
eval $(thefuck --alias)

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...