命令列的藝術

2021-10-11 14:41:07 字數 2446 閱讀 9524

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-h2jyswmc-1607338793614)(

熟練使用命令列是一種常常被忽視,或被認為難以掌握的技能,但實際上,它會提高你作為工程師的靈活性以及生產力。本文是乙份我在 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 系統的技巧。

命令列的藝術

流暢地使用命令列是乙個常被忽略的技能,或被認為是神秘的奧義。但是,它會以明顯而微妙的方式改善你作為工程師的靈活度和生產力。這是我在 linux 上工作時發現的有用的命令列使用小竅門和筆記的精粹。有些小竅門是很基礎的,而有些是相當地特別 複雜 或者晦澀難懂。這篇文章不長,但是如果你可以使用 並記得這裡...

命令列的藝術

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

命令列藝術2

bin sh 傳統的 bin sh或者 bin bash用來指定直譯器 可以使用 usr bin env bash的改進版。這樣做的好處是,系統會自動在path環境變數中查詢你指定的程式 本例中的bash 相比第一種寫法,你應該盡量用這種寫法,因為程式的路徑是不確定的。這樣寫還有乙個好處,作業系統的...