原標題:DevOps 資訊 | 是時候升級你的命令行了

cat 被用於打印文件內容。ccat 工具還提供像語法高亮顯示這樣的功能。在此基礎之上,bat 還支持 分頁, 行號和 git 集成。同時允許在輸出中搜索 (當輸出長於屏幕高度時) 。更多信息:https://github.com/sharkdp/bat

# Linux wget https://github.com/sharkdp/bat/releases/download/v0.6.1/bat-v0.6.1-x86_64-unknown-linux-gnu.tar.gz make install # Mac brew install bat # alias cat='bat'

ping 是一種非常有用的網絡工具。原理是向目標主機傳出一個ICMP echo@要求數據包,並等待接收 echo 回應數據包。程序會按時間和成功響應的次數估算丟失數據包率(丟包率)和數據包往返時間(網絡時延,Round-trip delay time)。不過默認的 ping 命令輸出比較乏味。prettyping 則提供了更友好、更美觀的輸出,包括彩色點圖表示網絡連通性。prettyping 基於 bash 和 awk 編寫能,夠兼容大部分操作系統 (例如 Linux, BSD, Mac OS X, …)。更多信息:https://denilson.sa.nom.br/prettyping/

curl -O https://raw.githubusercontent.com/denilsonsa/prettyping/master/prettyping chmod +x prettyping ./prettyping baiud.com alias ping='prettyping --nolegend'

在終端中使用 ctrl + r 組合鍵可以向後搜索歷史操作記錄( 儘管有點繁瑣 )。fzf 工具是對 ctrl + r 的增強。支持對終端操作歷史的模糊搜索, 預覽可能的匹配結果。除了歷史搜索之外, fzf 還可以預覽和打開文件。 更多信息:https://github.com/junegunn/fzf

# Linux git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install # Mac brew install fzf # alias alias preview="fzf --preview 'bat --color \"always\" {}'" # add support for ctrl+o to open selected file in VS Code export FZF_DEFAULT_OPTS="--bind='ctrl-o:execute(code {})+abor

top 是一個快速診斷系統性能的工具。值得一提的是 top for Mac 與 Linux 上的輸出不太一樣。htop 優化了頂部輸出格式,並支持大量的顏色, 鍵盤快鍵鍵和視圖, 幫助我們洞察進程行爲。更多信息:https://hisham.hm/htop/

htop 提供的鍵盤快捷鍵:

GIT 版本控制系統中使用 git diff 來顯示兩個版本之間差別(包括文件、元數據和改動等)。diff-so-fancy 是一個用 node.js 實現的命令行工具,提供更友好的輸出樣式和定製能力。更多信息:https://github.com/so-fancy/diff-so-fancy

# download wget https://raw.githubusercontent.com/so-fancy/diff-so-fancy/master/third_party/build_fatpack/diff-so-fancy chmod +x diff-so-fancy # npm npm install -g diff-so-fancy # 直接調用 git diff --color | diff-so-fancy

在 git diff 和 git show 中啓用 diff-so-fancy ,需要修改 gitconfig :

除了默認樣式優化,diff-so-fancy 還支持顏色和顯示項定製,例如:

fd 非常快。有意思的是 fd 與 bat 的作者是同一個人(David Peter)。更多信息:https://github.com/sharkdp/fd/

常用的命令行:

瞭解磁盤空間佔用情況是一項非常重要的工作。常用的命令是 du -sh (-sh 表示摘要、便於人工閱讀), 但我們經常需要挖掘目錄的空間佔用。ncdu 是一個替代選擇(完全基於 C 語言編寫,MIT 許可證)。ncdu 提供了一個交互式界面, 支持快速掃描哪些文件夾或文件佔用空間, 並且導航非常方便。更多信息:https://dev.yorhel.nl/ncdu

git clone git://g.blicky.net/ncdu.git/ # release wget https://dev.yorhel.nl/download/ncdu-1.13.tar.gz tar -xvf ncdu-1.13.tar.gz ./configure make make install # Usage ncdu path alias du="ncdu --color dark -rr -x --exclude .git --exclude node_modules" # 擴展選項 --color dark - use a colour scheme -rr - read-only mode (prevents delete and spawn shell) --exclude ignore directories I won't do anything about

幾乎每一個命令行工具都可以通過手工輸入 man 命令獲得幫助信息。TL;DR 項目("too long; didn't read")是一個由社區驅動的命令行文檔系統,以非常簡潔的方式提供命令行參數列表、使用說明和示例。更多信息:https://tldr.sh/

grep 無疑是一個強大的命令行工具, 但多年來它已被許多工具所取代,包括 ack 和 ag 。更多信息:[https://beyondgrep.com/]

curl https://beyondgrep.com/ack-2.24-single-file > ~/bin/ack && chmod 0755 ~/bin/ack

ack 和 ag 默認情況下使用正則表達式進行搜索,可以指定文件類型 —— 使用像 --js 或 --html 標誌搜索。ack 和 ag 工具都支持 grep 選項, 如 -B (表示輸出匹配行和其之後(after)的N行)。

ack 默認沒有支持 markdown 格式,可以在 .ackrc 文件定製:

jq 可以作爲 JSON 數據轉換工具。示例:更新節點依賴項 (分爲多行以便於可讀性)。 更多信息:https://stedolan.github.io/jq/

Linux 性能診斷:負載評估 Linux 性能診斷:快速檢查單 操作系統原理 | How Linux Works(一):啓動 操作系統原理 | How Linux Works(二):空間管理 操作系統原理 | How Linux Works(三):內存管理 操作系統原理 | How Linux Works(四):網絡管理

查看原文 >>
相關文章