今天給大家推薦乙個github開源專案《the art of command line(命令列的藝術)》,這個開源專案雄踞了 github top 週榜,直接以 53972 star 登上榜首!以下是其中文版readme-zh.md內容,有需要的小夥伴趕緊去關注一波!
熟練使用命令列是一種常常被忽視,或被認為難以掌握的技能,但實際上,它會提高你作為工程師的靈活性以及生產力。本文是乙份我在 linux 上工作時,發現的一些命令列使用技巧的摘要。有些技巧非常基礎,而另一些則相當複雜,甚至晦澀難懂。這篇文章並不長,但當你能夠熟練掌握這裡列出的所有技巧時,你就學會了很多關於命令列的東西了。
這篇文章是許多作者和譯者共同的成果。 這裡的部分內容 首次 出現 於 quora, 但已經遷移到了 github,並由眾多高手做出了許多改進。 如果你在本文中發現了錯誤或者存在可以改善的地方,請貢獻你的乙份力量。
涵蓋範圍:
注意事項:
遇到問題的話,請嘗試使用 explainshell 去獲取相關命令、引數、管道等內容的解釋。
find . -name '*.py' | xargs grep some_functioncat hosts | xargs -i{} ssh root@{} hostname
set -euo pipefailtrap "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/hoststcpkeepalive=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-diruconv -f utf-8 -t utf-8 -x '::any-lower; ::any-nfd; [:nonspacing mark:] >; ::any-nfc; ' < input.txt > output.txt一些命令組合的例子:getfacl -r /some/path > permissions.txtsetfacl --restore=permissions.txt
sort a b | uniq > c # c 是 a 並 bsort a b | uniq -d > c # c 是 a 交 b
sort a b b | uniq -u > c # c 是 a - b
awk ' end ' myfilefind . -type f -lsegrep -o 'acct_id=[0-9]+' access.log | cut -d= -f2 | sort | uniq -c | sort -rnfunction 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...