
俗話說工欲善其事,必先利其器。從本文開始,在分享技術文章的同時,打算加入一個新的主題,關於我的辦公(個人)電腦(生產力工具)的相關配置分享
希望能幫到大家~
1、關於電腦
如果你和我從事一樣的職業(such as a developers or about Linux),如果電腦是你的另一半,而且還在使用Windows的話,強烈建議嘗試使用類Unix系統,主要有以下三個途徑(來自我的親測經歷)
a、給自己的電腦安裝Deepin、Ubuntu等桌面版Linux操作系統,缺點是安裝操作系統后,相關應用的軟件包很少很難找
b、攢cuán一台配置稍好點的主機,安裝黑蘋果,缺點是驅動問題很難解決。就算安裝好了,一旦系統升級或因為某些原因導致諸多驅動不可用
c、攢zǎn錢換一台Mac,時至今日,Mac的價格其實也不貴,得益於其強大的操作系統、生態周邊以及應用商店,從我個人使用來看,帶給我的 “快樂” 比Windows不要太多
大四實習的那一年里,終於攢錢換上了夢寐以求的MBP,作為人生的第二台電腦,得到的那一刻無比興奮,可能這就是一個對電子產品無比熱愛的男孩的快樂吧~
我的電腦型號是MacBook Pro (15-inch, 2018)(A1990)
除此外還淘有一台Mac mini (Late 2012)
電腦細節我就不多做介紹了,回歸正題,還是講講如何優化電腦各種配置
2、終端介紹
作為一個長期使用終端(依賴患者)的 “工具” 人,擁有一個強大的終端工具是很有必要的,和linux操作系統的軟件包管理工具yum、deb、apt一樣,在Mac上用的最為普遍的是Homebrew,其次還有python的包管理工具pip,除了自帶的終端外,終端軟件可以選擇iTerm2、SecureCRT、Royal TSX、Termius等等,我用的較多的終端軟件是iTerm2和SecureCRT,關於包管理工具Homebrew及pip的安裝使用和終端軟件iTerm2的使用配置技巧這里也就不多介紹了,網絡上有很多很多文章供參考
3、終端工具推薦
到這里才是本文的正題,用上了方便的Homebrew以及配置酷炫的iTerm2后,可以借助以下增強工具來提高生產力,部分終端工具同樣可以安裝在服務器Linux操作系統上
3.1 fzf-模糊查找
fzf可以用來查找任何列表內容、文件、歷史命令、本機綁定的host、進程、Git分支、進程等。所有的命令行工具可以生成列表輸出的都可以再通過管道pipe到fzf上進行搜索和查找
安裝命令
brew install fzf
安裝完后還需要安裝鍵盤映射和模糊提示
$(brew --prefix)/opt/fzf/install
兩大用法:ctrl + t查找目錄下的條目、ctrl +r優化歷史記錄選擇
目前我使用最多的是利用其進行歷史記錄的模糊查找,比傳統的ctrl+r顯示效果更好,效果如下

3.2 autojump-快速跳轉
autojump提供了一種快速進行文件目錄導航的方式。其效果就是實現目錄間快速跳轉,想去哪個目錄直接j+ 目錄名(甚至不用輸全),不用頻繁的cd了
安裝命令
brew install autojump
修改 ~/.zshrc 文件,添加到plugins配置列表並在尾部追加如下內容,配置完后source生效
plugins=(
git
autojump
)
...
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh
用法很簡單,想要跳轉到哪個目錄下直接使用j + 目錄名跳轉,甚至可以模糊輸入,前提是有通過cd進入過這個目錄,例如從任何目錄跳轉進入到git-workspace目錄下
j git-workspace
或者模糊跳轉
j git
3.3 tmate-終端遠程
這個工具可以認為是終端版本teamviewer,在有網絡的情況下遠程終端連接並監視或操作
安裝命令
brew install tmate
使用方法,例如要從A機器遠程到B機器,在B機器上安裝並運行tmate啟動
# tmate
Tip: if you wish to use tmate only for remote access, run: tmate -F [0/0]
To see the following messages again, run in a tmate session: tmate show-messages
Press <q> or <ctrl-c> to continue
---------------------------------------------------------------------
Connecting to ssh.tmate.io...
Note: clear your terminal before sharing readonly access
web session read only: https://tmate.io/t/ro-xmVWpRRN6GGJrR4zWLMKrSt7T
ssh session read only: ssh ro-xmVWpRRN6GGJrR4zWLMKrSt7T@sfo2.tmate.io
web session: https://tmate.io/t/3PwVRseDmXpG74X43EQG9hBYq
ssh session: ssh 3PwVRseDmXpG74X43EQG9hBYq@sfo2.tmate.io
[tmate] ssh session: ssh 3PwVRseDmXpG74X43EQG9hBYq@sfo2.tmate.io
然后在A上就可以通過上面四種方式連接到B機器:web會話和ssh會話,分為只讀和讀寫兩種
具體原理可以查看官方文檔
3.4 hadolint-對Dockerfile語法檢查
Hadolint可以幫助進行Dockerfile語法檢查,實現的是Dockerfile linter,其實現依據來自於Docker官網推薦的Dockerfile最佳實踐
安裝命令
brew install hadolint
使用
hadolint node.Dockerfile
node.Dockerfile:21 DL3007 Using latest is prone to errors if the image will ever update. Pin the version explicitly to a release tag
# 提示說鏡像的tag使用latest不是最佳的,因為一旦鏡像升級,下次再拉取的latest鏡像可能就不是當前的版本了,應該明確具體的版本號
3.5 speedtest-測網速
speedtest是一個測網速的工具,其也有圖形化工具
安裝命令
brew tap teamookla/speedtest
brew update
brew install speedtest --force
使用
# speedtest
Speedtest by Ookla
Server: Beijing Unicom - Beijing (id = 5145)
ISP: China Unicom Beijing
Latency: 3.57 ms (0.88 ms jitter)
Download: 93.43 Mbps (data used: 44.5 MB)
Upload: 93.37 Mbps (data used: 42.2 MB)
Packet Loss: 0.0%
Result URL: https://www.speedtest.net/result/c/aa6513eb-a9b3-466b-8edd-92f73c59267f
此外還有一個用python腳本實現的,項目地址https://github.com/sivel/speedtest-cli,作用同樣是測試網速,將此腳本下載並放到本地的bin目錄下添加執行權限即可使用
# speedtest-cli
Retrieving speedtest.net configuration...
Testing from China Unicom Beijing (114.246.34.169)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Beijing Broadband Network (Beijing) [1.72 km]: 4.659 ms
Testing download speed................................................................................
Download: 93.27 Mbit/s
Testing upload speed................................................................................................
Upload: 93.64 Mbit/s
3.6 glances-實時監控
類似於mac自帶的活動監視器,以客戶端/服務器端模式運行,遠程監控可以通過終端、Web接口或API(XML-RPC和RESTful)來實現。除此之外,數據還可以導出至文件或外部數據庫中。
采用Python開發,並使用了外部庫來從目標系統收集數據。該工具基於開源架構實現,開發者可以根據自己的需求來增加新的插件或導出模塊,可以監控的信息如下
- CPU 使用率
- 內存使用情況
- 內核統計信息和運行隊列信息
- 磁盤 I/O 速度、傳輸和讀/寫比率
- 文件系統中的可用空間
- 磁盤適配器
- 網絡 I/O 速度、傳輸和讀/寫比率
- 頁面空間和頁面速度
- 消耗資源最多的進程
- 計算機信息和系統資源
安裝命令
brew install glances
效果如下

3.7 lrzsz-終端上傳下載
lrzsz是一款在linux里可代替ftp上傳和下載的程序,可以直接在終端進行文件上傳下載,其傳輸協議是ZModem協議
安裝命令
brew install lrzsz
在iTerm2上配置和使用lrzsz可以參考我之前的文章Mac下iTerm2配置lrzsz功能
3.8 neovim-增強版vim
neovim是一個增強版本的vim編輯器,其特性有異步任務和socket、內建terminal、26位真彩色支持、浮動窗口等
安裝命令
brew install neovim
在iTerm2上配置和使用可以參考Mac電腦iterm中配置neovim入門與實踐
4、小結
以上工具都極大提高了我日常工作和學習的效率,由於篇幅和時間關系,只列出了我對這些工具的常用用法,詳細內容可以參考工具開源地址
本文只推薦了一部分,后面有機會再繼續 ~
