GitHub 五萬星登頂,命令列的藝術!

2021-09-24 05:43:27 字數 3169 閱讀 1613

今天給大家推薦乙個github開源專案《the art of command line(命令列的藝術)》,這個開源專案雄踞了 github top 週榜,直接以 53972 star 登上榜首!

以下是其中文版readme-zh.md內容,有需要的小夥伴趕緊去關注一波!

熟練使用命令列是一種常常被忽視,或被認為難以掌握的技能,但實際上,它會提高你作為工程師的靈活性以及生產力。本文是乙份我在 linux 上工作時,發現的一些命令列使用技巧的摘要。有些技巧非常基礎,而另一些則相當複雜,甚至晦澀難懂。這篇文章並不長,但當你能夠熟練掌握這裡列出的所有技巧時,你就學會了很多關於命令列的東西了。

這篇文章是許多作者和譯者共同的成果。 這裡的部分內容 首次 出現 於 quora, 但已經遷移到了 github,並由眾多高手做出了許多改進。 如果你在本文中發現了錯誤或者存在可以改善的地方,請貢獻你的乙份力量。

涵蓋範圍:

注意事項:

遇到問題的話,請嘗試使用 explainshell 去獲取相關命令、引數、管道等內容的解釋。

find . -name '*.py' | xargs grep some_function

cat hosts | xargs -i{} ssh root@{} hostname

set -euo pipefail

trap "echo 'error: script failed: see failed command above'" err

# do something in current dir

(cd /some/other/dir && other-command)

# continue in original dir

diff /etc/hosts
tcpkeepalive=yes

serveraliveinterval=15

serveralivecountmax=6

compression=yes

controlmaster auto

controlpath /tmp/%r@%h:%p

controlpersist yes

stat -c '%a %a %n' /etc/timezone

>>> 2+3

5

perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt
# 將檔案、目錄和內容全部重新命名 foo -> bar:

repren --full --preserve-case --from foo --to bar .

# 還原所有備份檔案 whatever.bak -> whatever:

repren --renames --from '(.*)\.bak' --to '\1' *.bak

# 用 rename 實現上述功能(若可用):

rename 's/\.bak$//' *.bak

mkdir empty && rsync -r --delete empty/ some-dir && rmdir some-dir
uconv -f utf-8 -t utf-8 -x '::any-lower; ::any-nfd; [:nonspacing mark:] >; ::any-nfc; ' < input.txt > output.txt

getfacl -r /some/path > permissions.txt

setfacl --restore=permissions.txt

一些命令組合的例子:

sort a b | uniq > c # c 是 a 並 b

sort a b | uniq -d > c # c 是 a 交 b

sort a b b | uniq -u > c # c 是 a - b

awk ' end ' myfile

find . -type f -ls

egrep -o 'acct_id=[0-9]+' access.log | cut -d= -f2 | sort | uniq -c | sort -rn

function taocl()

以下是僅限於 os x 系統的技巧。

以下是僅限於 windows 系統的技巧。

2、awesome-osx-command-line:乙份針對 os x 命令列的更深入的指南。

4、shellcheck:乙個靜態 shell 指令碼分析工具,本質上是 bash/sh/zsh 的 lint。

5、filenames and pathnames in shell:有關如何在 shell 指令碼裡正確處理檔名的細枝末節。

6、data science at the command line:用於資料科學的一些命令和工具,摘自同名書籍。

除去特別小的工作,你編寫的**應當方便他人閱讀。能力往往伴隨著責任,你有能力 在 bash 中玩一些奇技淫巧並不意味著你應該去做!;)

本文使用授權協議 creative commons attribution-sharealike 4.0 international license。

github命令列操作

首先做準備工作,安裝github客戶端git shell和github,github用於介面化操作,本次主要說一下如果用命令列操作,1.開啟git shell,進入本地專案庫,cd f gitdemo 這裡我的git本地倉庫為f盤的git,demo為我的專案位址。2.demo的怎麼來的?demo為g...

Linux命令列基礎 常用的命令列

符號 符號含義 使用者目錄 也稱作家目錄 根路徑,即整個系統 所在當前目錄 當前目錄的上一級目錄 提示可以輸入命令列了 回車 carriage return 執行輸入的命令列 絕對路徑 開頭的路徑就是絕對路徑,不是這種開頭的就是相對路徑。命令列命令列的英文全寫 中文含義 pwdprint worki...

git命令列 github工作流總結

檢視 本地分支 git branch 遠端分支 git branch r 推送 git push origin localbranch 拉取 git pull origin remotebranch 等價於git fetch origin remotebranch git merge orign r...