我在用的mac軟體 2

2021-06-16 22:25:55 字數 2472 閱讀 5606

繼續上篇介紹我的終端環境。這篇介紹zsh和z,其實這不侷限於os x,在所有的*nix系統中都是可用的。

zsh作為bash的替代品,自然很多人要問:why zsh? 在zsh workshop 有個長長的功能列表,用來回答這個問題。這裡講下我選擇zsh的原因,當然,也是介紹zsh強大的功能。

相容bash。這使得切換到zsh沒有任何成本。

os x預設的bash版本實在是太老了啊……

拼寫糾正。你總會不小心打錯命令。這時,zsh會進行自動拼寫糾正,如圖:

更強大的補全。

更智慧型的歷史命令。在用或者`方向上鍵`查詢歷史命令時,zsh支援限制查詢。比如,輸入`ls `然後再按方向上鍵,則只會查詢用過的ls命令。而此時使用``則會仍然按之前的方式查詢,忽略`ls`。

多個終端會話共享歷史記錄。經常有多個視窗,tab,tmux的多個session,panel。這些命令歷史不能共享實在是很糟糕的回憶。但是有了zsh之後,這些確實成了回憶了,所有的命令歷史都可以共享。

更智慧型的cd。首先你甚至不需要再輸入cd了,直接輸入路徑即可。第二,在你知道路徑的情況下,比如/usr/local/bin你可以輸入cd /u/l/b然後按進行補全快速輸入。這顯然不夠,zsh還支援路徑替換,如果你其實想進入的是/usr/local/bin,不再需要../了,直接在當前輸入cd bin share即可,則bin會替換為share。在之後我會介紹z和autojumper,目錄跳轉會更方便。

更強大的alias。zsh不僅支援普通的alias,例如:alias ls ='ls --color=auto'。zsh還支援字尾alias,即以什麼命令開啟特定的字尾名檔案。例如alias -s js=mvim,輸入hello.js,會以vim開啟該檔案,而不在需要vim hello.js

萬用字元搜尋。這也是我最愛的功能之一。之前講過由於命令補全少用了很多man命令,而這個功能讓我少用了很多find命令。 一般的萬用字元搜尋無非是ls -l *.log,如圖:

在zsh中可以做到遞迴的萬用字元搜尋。使用**/來遞迴搜尋,如圖

是不是在很多場景下可以取代find

以上都是我感覺遷移到zsh之後非常實用的功能。要想從頭開始了解和學習zsh,可以訪問a user』s guide to the z-shell。不過大家都很忙,從頭開始自己學習和配置會很累。所以現在說到zsh,不得不提的就是oh-my-zsh,oh-my-zsh是乙個開源的zsh配置管理框架,提供了大量實用的功能,主題等。現在基本都是標配了吧。如圖是我在用的預設zsh主題robbyrussell,如圖

可以發它能自動顯示當前所在的git分支以及當前本地狀態(黃色的小叉表示本地有更新未提交)。

當然zsh也不是完美無缺。在我使用過程中有兩點不是很舒服:

1. 自動糾正並不總是那麼智慧型。如圖:

2. 一些符號是zsh中保留的,使用需要轉義,如圖:

下面講下zsh和oh-my-zsh的安裝。

使用brew來安裝zsh

brew install zsh
設定zsh為預設

/etc/shells檔案末尾新增

/usr/local/bin/zsh
執行:

chsh -s /usr/local/bin/zsh
最後記得將~/.bash_prorile或者~/.profile等配置拷貝到~/.zshrc中。

安裝oh-my-zsh

自動安裝:

curl -l  | sh
可以選擇自己喜歡的主題。只需要修改~/.zshrc檔案中的zsh_theme即可。

z和autojump的功能類似,前者是簡單的shell指令碼實現,後者由python實現,功能都是可以方便自動匹配到你最多使用的目錄並跳轉。我在用的是z,如圖,我在根目錄輸入z github可以自動跳轉到我常用的notice501.github.com這個目錄,也就是本部落格的工程目錄。超級方便的工具。autojump用法類似,命令為j而不是z兩者的安裝方式:

z

而後將z.sh放入環境變數即可。

autojump

autojump可以直接使用brew安裝

我在用的mac軟體 1 終端環境之iTerm2

之前一直有朋友要我分享下在用的mac軟體,今天有空就來寫一下,可能不止於軟體,會有一些配置或者工具,或者叫環境更合適。有些可能一句話帶過,有些會詳細介紹。也不分類了,想到哪個就寫出來。如果已經寫的足夠長了,就會分幾篇來寫。iterm2 其實現在os x的terminal已經做的很好了,但是iterm...

我在用的Panabit策略設定

明確自己的業務要求,就能在panabit中清晰的設定策略.ip群組定義2個,1個用於不限制的,譬如我,1個用於自制力不強的同事。也可以按公司部門來劃分。只做了流量控制。同事每人給2mb下行流量,限制p2p的上行為400kb,沒限制前,p2p上行到了5mb之多。時間排程是控制星期一 星期六,星期天不控...

mac下我常用的一些軟體

在蘋果發布了mountain lion的開發者預覽版後,我就毫不猶豫的公升級了。剛開始的時候,用起來感覺還挺好的,跟ios融合的很好,我在手機上記錄的一些東西,在mountain lion中都能立即同步過來。更讓我期待的是,新加的通知功能很不錯,以後就可以把一些不太重要的訊息設定成不彈出來提示,有時...