精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

命令行的藝術(shù)

開發(fā) 后端 前端
流暢地使用命令行是一個(gè)常被忽略的技能,或被認(rèn)為是神秘的奧義。但是,它會(huì)以明顯而微妙的方式改善你作為工程師的靈活度和生產(chǎn)力。這是我在 Linux 上工作時(shí)發(fā)現(xiàn)的有用的命令行使用小竅門和筆記的精粹。

流暢地使用命令行是一個(gè)常被忽略的技能,或被認(rèn)為是神秘的奧義。但是,它會(huì)以明顯而微妙的方式改善你作為工程師的靈活度和生產(chǎn)力。這是我在 Linux 上工作時(shí)發(fā)現(xiàn)的有用的命令行使用小竅門和筆記的精粹。有些小竅門是很基礎(chǔ)的,而有些是相當(dāng)?shù)靥貏e、復(fù)雜、或者晦澀難懂。這篇文章不長(zhǎng),但是如果你可以使用 并記得這里的所有內(nèi)容,那么你就懂得很多了。

其中大部分最初出現(xiàn)在Quora上,但是考慮到興趣所在,似乎更應(yīng)該放到 Github 上,這里的人比我更能提出改進(jìn)建議。如果你看到一個(gè)錯(cuò)誤,或者更好的某種東西,請(qǐng)?zhí)峤粏栴}或 PR!(當(dāng)然,提交前請(qǐng)看看必讀小節(jié)和已有的 PR/Issue。)

命令行藝術(shù)

必讀

范圍:

  • 本文是針對(duì)初學(xué)者和專業(yè)人員的,選題目標(biāo)是覆蓋面廣(全都很重要)、有針對(duì)性(大多數(shù)情況下都給出具體實(shí)例)而簡(jiǎn)潔(避免不必要內(nèi)容以及你能在其它地方輕松找到的離題的內(nèi)容)。每個(gè)小竅門在某種情形下都很必需的,或者能比替代品大大節(jié)省時(shí)間。

  • 這是為 Linux 寫的。絕大部分條目都可以同樣應(yīng)用到 MacOS(或者甚至 Cygwin)。

  • 主要針對(duì)交互式 Bash,盡管大多數(shù)小竅門也可以應(yīng)用到其它 shell,以及常規(guī) Bash 腳本。

  • 包括了“標(biāo)準(zhǔn)的”UNIX 命令以及那些需要安裝的軟件包(它們很重要,值得安裝)。

注意:

  • 為了能在一篇文章內(nèi)展示盡量多的東西,一些具體的信息會(huì)被放到引用頁里。你可以使用 Google 來獲得進(jìn)一步的內(nèi)容。(如果需要的話,)你可以使用 apt-get/yum/dnf/pacman/pip/brew 來安裝這些新的程序。

  • 使用 Explainshell 來獲取命令、參數(shù)、管道等內(nèi)容的解釋。

基礎(chǔ)

  • 學(xué)習(xí)基本 Bash 技能。實(shí)際上,鍵入man bash,然后至少瀏覽一遍所有內(nèi)容;它很容易理解,沒那么長(zhǎng)。其它 shell 也不錯(cuò),但是 Bash 很強(qiáng)大,而且到處都可以找到(如果在你自己的筆記本上學(xué)習(xí) zsh、fish 之類,會(huì)在很多情形下受到限制,比如使用現(xiàn)存的服務(wù)器時(shí))。

  • 至少學(xué)好一種基于文本的編輯器。理想的一個(gè)是 Vim(vi),因?yàn)樵诮K端中編輯時(shí)隨時(shí)都能找到它(即使大多數(shù)時(shí)候你在使用 Emacs、一個(gè)大型的 IDE、或一個(gè)現(xiàn)代的時(shí)髦編輯器)。

  • 學(xué)習(xí)怎樣使用 man 來閱讀文檔(好奇的話,用 man man 來列出分區(qū)號(hào),比如 1 是常規(guī)命令,5 是文件描述,8 用于管理員)。用 apropos 找到幫助頁。了解哪些命令不是可執(zhí)行程序,而是 Bash 內(nèi)置的,你可以用 help 和 help -d 得到幫助。

  • 學(xué)習(xí)使用 > 和 < 來進(jìn)行輸出和輸入重定向,以及使用 | 來管道重定向,學(xué)習(xí)關(guān)于 stdout 和 stderr 的東西。

  • 學(xué)習(xí) *(也許還有 ? 和 {…} )文件通配擴(kuò)展和應(yīng)用,以及雙引號(hào) ” 和單引號(hào) ‘ 之間的區(qū)別。(更多內(nèi)容請(qǐng)參看下面關(guān)于變量擴(kuò)展部分)。

  • 熟悉 Bash 作業(yè)管理:&, ctrl-zctrl-c, jobs, fg, bg, kill 等等。

  • 掌握ssh,以及通過 ssh-agent,ssh-add 等進(jìn)行無密碼驗(yàn)證的基礎(chǔ)技能。

  • 基本的文件管理:ls 和 ls -l(特別是,知道ls -l各個(gè)列的意義),less, head, tail 和 tail -f(或者更好的less +F),ln 和 ln -s(知道硬鏈接和軟鏈接的區(qū)別,以及硬鏈接相對(duì)于軟鏈接的優(yōu)勢(shì)),chown,chmod,du(用于查看磁盤使用率的快速摘要:du -sk *)。文件系統(tǒng)管理:df, mount,fdisk,mkfs,lsblk。

  • 基本的網(wǎng)絡(luò)管理: ip 或 ifconfig,dig。

  • 熟知正則表達(dá)式,以及各種使用grep/egrep的選項(xiàng)。-i,-o,-A 和 -B 選項(xiàng)值得掌握。

  • 學(xué)會(huì)使用 apt-get,yum ,dnf 或 pacman(這取決于你的發(fā)行版)來查找并安裝軟件包。確保你可以用 pip 來安裝基于 Python 的命令行工具(下面的一些東西可以很容易地通過 pip 安裝)。

日常使用

  • 在Bash中,使用 tab 補(bǔ)完參數(shù),使用 ctrl-r 來搜索命令歷史。

  • 在Bash中,使用 ctrl-w 來刪除最后的單詞,使用 ctrl-u 來刪除整行,返回行首。使用 alt-balt-f 來逐詞移動(dòng),使用 ctrl-k 來清除到行尾的內(nèi)容,以及使用 ctrl-l 清屏。參見 man readline 來查看 Bash 中所有默認(rèn)的鍵盤綁定,有很多。例如,alt-. 可以循環(huán)顯示先前的參數(shù),而alt- 擴(kuò)展通配。

  • 另外,如果你喜歡 vi 風(fēng)格的鍵盤綁定,可以使用 set -o vi。

  • 要查看最近用過的命令,請(qǐng)使用 history 。 有許多縮寫形式,比如 !$(上次的參數(shù))和!!(上次的命令),雖然使用 ctrl-r 和 alt-. 更容易些。

  • 返回先前的工作目錄: cd -

  • 如果你命令輸入到一半,但是改變主意了,可以敲 alt-# 來添加一個(gè) # 到開頭,然后將該命令作為注釋輸入(或者使用快捷鍵 ctrl-a#enter 輸入)。然后,你可以在后面通過命令歷史來回到該命令。

  • 使用 xargs(或 parallel),它很強(qiáng)大。注意,你可以控制每行(-L)執(zhí)行多少個(gè)項(xiàng)目,以及并行執(zhí)行(-P)。如果你不確定它是否會(huì)做正確的事情,可以首先使用 xargs echo。同時(shí),使用 -I{} 也很方便。樣例:

      find . -name '*.py' | xargs grep some_function
      cat hosts | xargs -I{} ssh root@{} hostname

  • pstree -p 對(duì)于顯示進(jìn)程樹很有幫助。

  • 使用 pgrep 和 pkill 來按名稱查找進(jìn)程或給指定名稱的進(jìn)程發(fā)送信號(hào)(-f 很有幫助)。

  • 掌握各種可以發(fā)送給進(jìn)程的信號(hào)。例如,要掛起進(jìn)程,可以使用 kill -STOP [pid]。完整的列表可以查閱 man 7 signal。

  • 如果你想要一個(gè)后臺(tái)進(jìn)程一直保持運(yùn)行,使用 nohup 或 disown。

  • 通過 netstat -lntp 或 ss -plat 檢查哪些進(jìn)程在監(jiān)聽(用于 TCP,對(duì) UDP 使用 -u 替代 -t)。

  • lsof來查看打開的套接字和文件。

  • 在 Bash 腳本中,使用 set -x 調(diào)試腳本輸出。盡可能使用嚴(yán)格模式。使用 set -e 在遇到錯(cuò)誤時(shí)退出。也可以使用 set -o pipefail,對(duì)錯(cuò)誤進(jìn)行嚴(yán)格處理(雖然該話題有點(diǎn)微妙)。對(duì)于更復(fù)雜的腳本,也可以使用 trap。

  • 在 Bash 腳本中,子 shell(寫在括號(hào)中的)是組合命令的便利的方式。一個(gè)常見的例子是臨時(shí)移動(dòng)到一個(gè)不同的工作目錄,如:

      # 在當(dāng)前目錄做些事
      (cd /some/other/dir; other-command)
      # 繼續(xù)回到原目錄

  • 注意,在 Bash 中有大量的各種各樣的變量擴(kuò)展。檢查一個(gè)變量是否存在:${name:?error message}。例如,如果一個(gè)Bash腳本要求一個(gè)單一參數(shù),只需寫 input_file=${1:?usage: $0 input_file}。算術(shù)擴(kuò)展:i=$(( (i + 1) % 5 ))。序列: {1..10}。修剪字符串:${var%suffix} 和 ${var#prefix}。例如,if var=foo.pdf ,那么 echo ${var%.pdf}.txt 會(huì)輸出 foo.txt。

  • 命令的輸出可以通過 <(some command) 作為一個(gè)文件來處理。例如,將本地的 /etc/hosts 和遠(yuǎn)程的比較:

      diff /etc/hosts <(ssh somehost cat /etc/hosts)

  • 了解 Bash 中的“嵌入文檔”,就像在 cat <<EOF … 中。

  • 在 Bash 中,通過:some-command >logfile 2>&1 同時(shí)重定向標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤。通常,要確保某個(gè)命令不再為標(biāo)準(zhǔn)輸入打開文件句柄,而是將它捆綁到你所在的終端,添加 </dev/null 是個(gè)不錯(cuò)的做法。

  • man ascii 可以得到一個(gè)不錯(cuò)的ASCII表,帶有十六進(jìn)制和十進(jìn)制值兩種格式。對(duì)于常規(guī)編碼信息,man unicode,man utf-8 和 man latin1 將很有幫助。

  • 使用 screen 或 tmux 來復(fù)用屏幕,這對(duì)于遠(yuǎn)程 ssh 會(huì)話尤為有用,使用它們來分離并重連到會(huì)話。另一個(gè)只用于保持會(huì)話的最小可選方案是 dtach。

  • 在 ssh 中,知道如何使用 -L 或 -D(偶爾也用-R)來打開端口通道是很有用的,如從一臺(tái)遠(yuǎn)程服務(wù)器訪問網(wǎng)站時(shí)。

  • 為你的 ssh 配置進(jìn)行優(yōu)化很有用;例如,這個(gè) ~/.ssh/config 包含了可以避免在特定網(wǎng)絡(luò)環(huán)境中連接被斷掉的情況的設(shè)置、使用壓縮(這對(duì)于通過低帶寬連接使用 scp 很有用),以及使用一個(gè)本地控制文件來開啟到同一臺(tái)服務(wù)器的多通道:

      TCPKeepAlive=yes
      ServerAliveInterval=15
      ServerAliveCountMax=6
      Compression=yes
      ControlMaster auto
      ControlPath /tmp/%r@%h:%p
      ControlPersist yes

  • 其它一些與 ssh 相關(guān)的選項(xiàng)對(duì)會(huì)影響到安全,請(qǐng)小心開啟,如各個(gè)子網(wǎng)或主機(jī),或者在信任的網(wǎng)絡(luò)中:StrictHostKeyChecking=no, ForwardAgent=yes

  • 要獲得八進(jìn)制格式的文件的權(quán)限,這對(duì)于系統(tǒng)配置很有用而用 ls 又沒法查看,而且也很容易搞得一團(tuán)糟,可以使用像這樣的東西:

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

  • 對(duì)于從另一個(gè)命令的輸出結(jié)果中交互選擇值,可以使用percol

  • 對(duì)于基于另一個(gè)命令(如git)輸出的文件交互,可以使用fpp (路徑選擇器)。

  • 要為當(dāng)前目錄(及子目錄)中的所有文件構(gòu)建一個(gè)簡(jiǎn)單的 Web 服務(wù)器,讓網(wǎng)絡(luò)中的任何人都可以獲取,可以使用: python -m SimpleHTTPServer 7777 (使用端口 7777 和 Python 2)。

#p#

處理文件和數(shù)據(jù)

  • 要在當(dāng)前目錄中按名稱定位文件,find . -iname ‘*something*’(或者相類似的)。要按名稱查找任何地方的文件,使用 locate something(但請(qǐng)記住,updatedb 可能還沒有索引最近創(chuàng)建的文件)。

  • 對(duì)于源代碼或數(shù)據(jù)文件進(jìn)行的常規(guī)搜索(要比 grep -r 更高級(jí)),使用 ag。

  • 要將 HTML 轉(zhuǎn)成文本:lynx -dump -stdin。

  • 對(duì)于 Markdown、HTML,以及各種類型的文檔轉(zhuǎn)換,可以試試 pandoc。

  • 如果你必須處理 XML,xmlstarlet 雖然有點(diǎn)老舊,但是很好用。

  • 對(duì)于 JSON,使用jq。

  • 對(duì)于 Excel 或 CSV 文件,csvkit 提供了 in2csv,csvcut,csvjoin,csvgrep 等工具。

  • 對(duì)于亞馬遜 S3 ,s3cmd 會(huì)很方便,而 s4cmd 則更快速。亞馬遜的 aws 則是其它 AWS 相關(guān)任務(wù)的必備。

  • 掌握 sort 和 uniq,包括 uniq 的 -u 和 -d 選項(xiàng)——參見下面的單行程序。

  • 掌握 cut,paste 和 join,它們用于處理文本文件。很多人會(huì)使用 cut,但常常忘了 join。

  • 了解 tee,它會(huì)將 stdin 同時(shí)復(fù)制到一個(gè)文件和 stdout,如 ls -al | tee file.txt。

  • 知道 locale 會(huì)以微妙的方式對(duì)命令行工具產(chǎn)生大量的影響,包括排序的順序(整理)以及性能。大多數(shù)安裝好的 Linux 會(huì)設(shè)置 LANG 或其它 locale 環(huán)境變量為本地設(shè)置,比如像 US English。但是,你要明白,如果改變了本地環(huán)境,那么排序也將改變。而且 i18n 過程會(huì)讓排序或其它命令的運(yùn)行慢好多倍。在某些情形中(如像下面那樣的設(shè)置操作或唯一性操作),你可以安全地整個(gè)忽略緩慢的 i18n 過程,然后使用傳統(tǒng)的基于字節(jié)的排序順序 export LC_ALL=C。

  • 了解基本的改動(dòng)數(shù)據(jù)的 awk 和 sed 技能。例如,計(jì)算某個(gè)文本文件第三列所有數(shù)字的和:awk ‘{ x += $3 } END { print x }’。這可能比 Python 的同等操作要快3倍,而且要短3倍。

  • 在一個(gè)或多個(gè)文件中,替換所有出現(xiàn)在特定地方的某個(gè)字符串:

      perl -pi.bak -e 's/old-string/new-string/g' my-files-*.txt

  • 要立即根據(jù)某個(gè)模式對(duì)大量文件重命名,使用 rename。對(duì)于復(fù)雜的重命名,repren 可以幫助你達(dá)成。

      # 恢復(fù)備份文件 foo.bak -> foo:
      rename 's//.bak$//' *.bak
      # 完整的文件名、目錄名 foo -> bar:
      repren --full --preserve-case --from foo --to bar .

  • 使用 shuf 來從某個(gè)文件中打亂或隨機(jī)選擇行。

  • 了解 sort 的選項(xiàng)。知道這些鍵是怎么工作的(-t和-k)。特別是,注意你需要寫-k1,1來只通過第一個(gè)字段排序;-k1意味著根據(jù)整行排序。

  • 穩(wěn)定排序(sort -s)會(huì)很有用。例如,要首先按字段2排序,然后再按字段1排序,你可以使用 sort -k1,1 | sort -s -k2,2

  • 如果你曾經(jīng)需要在 Bash 命令行中寫一個(gè)水平制表符(如,用于 -t 參數(shù)的排序),按ctrl-v [Tab],或者寫$’/t’(后面的更好,因?yàn)槟憧梢詮?fù)制/粘貼)。

  • 對(duì)源代碼進(jìn)行補(bǔ)丁的標(biāo)準(zhǔn)工具是 diff 和 patch。 用 diffstat 來統(tǒng)計(jì) diff 情況。注意 diff -r 可以用于整個(gè)目錄,所以可以用 diff -r tree1 tree2 | diffstat 來統(tǒng)計(jì)(兩個(gè)目錄的)差異。

  • 對(duì)于二進(jìn)制文件,使用 hd 進(jìn)行簡(jiǎn)單十六進(jìn)制轉(zhuǎn)儲(chǔ),以及 bvi 用于二進(jìn)制編輯。

  • 還是用于二進(jìn)制文件,strings(加上 grep 等)可以讓你找出一點(diǎn)文本。

  • 對(duì)于二進(jìn)制文件的差異(delta 壓縮),可以使用 xdelta3。

  • 要轉(zhuǎn)換文本編碼,試試 iconv 吧,或者對(duì)于更高級(jí)的用途使用 uconv;它支持一些高級(jí)的 Unicode 的東西。例如,這個(gè)命令可以轉(zhuǎn)換為小寫并移除所有重音符號(hào)(通過擴(kuò)展和丟棄):

      uconv -f utf-8 -t utf-8 -x '::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] >; ::Any-NFC; ' < input.txt > output.txt

  • 要將文件分割成幾個(gè)部分,來看看 split(按大小分割)和 csplit(按格式分割)吧。

  • 使用 zless,zmore,zcat 和 zgrep 來操作壓縮文件。

系統(tǒng)調(diào)試

  • 對(duì)于 Web 調(diào)試,curl 和 curl -I 很方便靈活,或者也可以使用它們的同行 wget,或者更現(xiàn)代的 httpie。

  • 要了解磁盤、CPU、網(wǎng)絡(luò)的狀態(tài),使用 iostat,netstat,top(或更好的 htop)和(特別是)dstat。它們對(duì)于快速獲知系統(tǒng)中發(fā)生的狀況很好用。

  • 對(duì)于更深層次的系統(tǒng)總覽,可以使用 glances。它會(huì)在一個(gè)終端窗口中為你呈現(xiàn)幾個(gè)系統(tǒng)層次的統(tǒng)計(jì)數(shù)據(jù),對(duì)于快速檢查各個(gè)子系統(tǒng)很有幫助。

  • 要了解內(nèi)存狀態(tài),可以運(yùn)行 free 和 vmstat,看懂它們的輸出結(jié)果吧。特別是,要知道“cached”值是Linux內(nèi)核為文件緩存所占有的內(nèi)存,因此,要有效地統(tǒng)計(jì)“free”值。

  • Java 系統(tǒng)調(diào)試是一件截然不同的事,但是對(duì)于 Oracle 系統(tǒng)以及其它一些 JVM 而言,不過是一個(gè)簡(jiǎn)單的小把戲,你可以運(yùn)行 kill -3 <pid>,然后一個(gè)完整的堆棧追蹤和內(nèi)存堆的摘要(包括常規(guī)的垃圾收集細(xì)節(jié),這很有用)將被轉(zhuǎn)儲(chǔ)到stderr/logs。

  • 使用 mtr 作路由追蹤更好,可以識(shí)別網(wǎng)絡(luò)問題。

  • 對(duì)于查看磁盤滿載的原因,ncdu 會(huì)比常規(guī)命令如 du -sh * 更節(jié)省時(shí)間。

  • 要查找占用帶寬的套接字和進(jìn)程,試試 iftop 或 nethogs 吧。

  • (Apache附帶的)ab工具對(duì)于臨時(shí)應(yīng)急檢查網(wǎng)絡(luò)服務(wù)器性能很有幫助。對(duì)于更復(fù)雜的負(fù)載測(cè)試,可以試試 siege。

  • 對(duì)于更仔細(xì)的網(wǎng)絡(luò)調(diào)試,可以用 wireshark,tshark 或 ngrep。

  • 掌握 strace 和 ltrace。如果某個(gè)程序失敗、掛起或崩潰,而你又不知道原因,或者如果你想要獲得性能的大概信息,這些工具會(huì)很有幫助。注意,分析選項(xiàng)(-c)和使用 -p 關(guān)聯(lián)運(yùn)行進(jìn)程。

  • 掌握 ldd 來查看共享庫(kù)等。

  • 知道如何使用 gdb 來連接到一個(gè)運(yùn)行著的進(jìn)程并獲取其堆棧追蹤信息。

  • 使用 /proc。當(dāng)調(diào)試當(dāng)前的問題時(shí),它有時(shí)候出奇地有幫助。樣例:/proc/cpuinfo,/proc/xxx/cwd,/proc/xxx/exe,/proc/xxx/fd/,/proc/xxx/smaps。

  • 當(dāng)調(diào)試過去某個(gè)東西為何出錯(cuò)時(shí),sar 會(huì)非常有幫助。它顯示了 CPU、內(nèi)存、網(wǎng)絡(luò)等的歷史統(tǒng)計(jì)數(shù)據(jù)。

  • 對(duì)于更深層的系統(tǒng)和性能分析,看看 stap (SystemTap),perf) 和 sysdig 吧。

  • 確認(rèn)是正在使用的 Linux 發(fā)行版版本(支持大多數(shù)發(fā)行版):lsb_release -a。

  • 每當(dāng)某個(gè)東西的行為異常時(shí)(可能是硬件或者驅(qū)動(dòng)器問題),使用dmesg。

#p#

單行程序

這是將命令連成一行的一些樣例:

  • 有時(shí)候通過 sort/uniq 對(duì)文本文件做交集、并集和差集運(yùn)算時(shí),這個(gè)例子會(huì)相當(dāng)有幫助。假定 a 和 b 是已經(jīng)進(jìn)行了唯一性處理的文本文件。這會(huì)很快,而且可以處理任意大小的文件,總計(jì)可達(dá)數(shù)千兆字節(jié)。(Sort不受內(nèi)存限制,不過如果 /tmp 放在一個(gè)很小的根分區(qū)的話,你可能需要使用 -T 選項(xiàng)。)也可參見上面關(guān)于LC_ALL的注解和 -u 選項(xiàng)(參見下面例子更清晰)。

    sh cat a b | sort | uniq > c # c 是 a 和 b 的并集
    cat a b | sort | uniq -d > c # c 是 a 和 b 的交集
    cat a b b | sort | uniq -u > c # c 是 a 減去 b 的差集

  • 使用 grep . * 來可視化查看一個(gè)目錄中的所有文件的所有內(nèi)容,例如,對(duì)于放滿配置文件的目錄: /sys, /proc, /etc。

  • 對(duì)某個(gè)文本文件的第三列中所有數(shù)據(jù)進(jìn)行求和(該例子可能比同等功能的Python要快3倍,而且代碼也少于其3倍):

      awk '{ x += $3 } END { print x }' myfile

  • 如果想要查看某個(gè)文件樹的大小/日期,該例子就像一個(gè)遞歸ls -l,但是比ls -lR要更容易讀懂:

      find . -type f -ls

  • 只要可以,請(qǐng)使用 xargs 或 parallel。注意,你可以控制每行(-L)執(zhí)行多少個(gè)項(xiàng)目,以及并行執(zhí)行(-P)。如果你不確定它是否會(huì)做正確的事情,可以首先使用 xargs echo。同時(shí),使用 -I{} 也很方便。樣例:

      find . -name '*.py' | xargs grep some_function
      cat hosts | xargs -I{} ssh root@{} hostname

  • 比如說,你有一個(gè)文本文件,如 Web 服務(wù)器的日志,在某些行中出現(xiàn)了某個(gè)特定的值,如 URL 中出現(xiàn)的 acct_id 參數(shù)。如果你想要統(tǒng)計(jì)有多少個(gè) acct_id 的請(qǐng)求:

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

  • 運(yùn)行該函數(shù)來獲得來自本文的隨機(jī)提示(解析Markdown并從中提取某個(gè)項(xiàng)目):

    function taocl() {
        curl -s https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md |
          pandoc -f markdown -t html |
          xmlstarlet fo --html --dropdtd |
          xmlstarlet sel -t -v "(html/body/ul/li[count(p)>0])[$RANDOM mod last()+1]" |
          xmlstarlet unesc | fmt -80
      }

晦澀難懂,但卻有用

  • expr:實(shí)施算術(shù)或布林操作,或者求正則表達(dá)式的值

  • m4:簡(jiǎn)單的宏處理器

  • yes:大量打印一個(gè)字符串

  • cal:漂亮的日歷

  • env:(以特定的環(huán)境變量設(shè)置)運(yùn)行一個(gè)命令(腳本中很有用)

  • look:查找以某個(gè)字符串開頭的英文單詞(或文件中的行)

  • cut 和 paste 以及 join:數(shù)據(jù)處理

  • fmt:格式化文本段落

  • pr:格式化文本為頁/列

  • fold:文本折行

  • column:格式化文本為列或表

  • expand 和 unexpand:在制表符和空格間轉(zhuǎn)換

  • nl:添加行號(hào)

  • seq:打印數(shù)字

  • bc:計(jì)算器

  • factor:分解質(zhì)因子

  • gpg:加密并為文件簽名

  • toe:terminfo 條目表

  • nc:網(wǎng)絡(luò)調(diào)試和數(shù)據(jù)傳輸

  • socat:套接字中繼和 tcp 端口轉(zhuǎn)發(fā)(類似 netcat)

  • slurm:網(wǎng)絡(luò)流量可視化

  • dd:在文件或設(shè)備間移動(dòng)數(shù)據(jù)

  • file:識(shí)別文件類型

  • tree:以樹形顯示目錄及子目錄;類似 ls,但是是遞歸的。

  • stat:文件信息

  • tac:逆序打印文件

  • shuf:從文件中隨機(jī)選擇行

  • comm:逐行對(duì)比分類排序的文件

  • hd和bvi:轉(zhuǎn)儲(chǔ)或編輯二進(jìn)制文件

  • strings:從二進(jìn)制文件提取文本

  • tr:字符轉(zhuǎn)譯或處理

  • iconv或uconv:文本編碼轉(zhuǎn)換

  • split和csplit:分割文件

  • units:?jiǎn)挝晦D(zhuǎn)換和計(jì)算;將每雙周(fortnigh)一浪(浪,furlong,長(zhǎng)度單位,約201米)轉(zhuǎn)換為每瞬(blink)一緹 (緹,twip,一種和屏幕無關(guān)的長(zhǎng)度單位)(參見: /usr/share/units/definitions.units)(LCTT 譯注:這都是神馬單位啊!)

  • 7z:高比率文件壓縮

  • ldd:動(dòng)態(tài)庫(kù)信息

  • nm:目標(biāo)文件的符號(hào)

  • ab:Web 服務(wù)器基準(zhǔn)測(cè)試

  • strace:系統(tǒng)調(diào)用調(diào)試

  • mtr:用于網(wǎng)絡(luò)調(diào)試的更好的路由追蹤軟件

  • cssh:可視化并發(fā) shell

  • rsync:通過 SSH 同步文件和文件夾

  • wireshark 和 tshark:抓包和網(wǎng)絡(luò)調(diào)試

  • ngrep:從網(wǎng)絡(luò)層摘取信息

  • host 和 dig:DNS查詢

  • lsof:處理文件描述符和套接字信息

  • dstat:有用的系統(tǒng)統(tǒng)計(jì)數(shù)據(jù)

  • glances:高級(jí),多個(gè)子系統(tǒng)概覽

  • iostat:CPU和磁盤使用率統(tǒng)計(jì)

  • htop:top的改進(jìn)版

  • last:登錄歷史

  • w:誰登錄進(jìn)來了

  • id:用戶/組身份信息

  • sar:歷史系統(tǒng)統(tǒng)計(jì)數(shù)據(jù)

  • iftop或nethogs:按套接口或進(jìn)程的網(wǎng)絡(luò)使用率

  • ss:套接口統(tǒng)計(jì)數(shù)據(jù)

  • dmesg:?jiǎn)?dòng)和系統(tǒng)錯(cuò)誤信息

  • hdparm:SATA/ATA 磁盤操作/改善性能

  • lsb_release:Linux 發(fā)行版信息

  • lsblk:列出塊設(shè)備,以樹形展示你的磁盤和分區(qū)

  • lshw:硬件信息

  • fortune,ddate 和 sl:嗯,好吧,它取決于你是否認(rèn)為蒸汽機(jī)車和 Zippy 引用“有用”

更多資源

  • 超棒的shell: 一個(gè)shell工具和資源一覽表。

  • 嚴(yán)格模式 用于寫出更佳的shell腳本。

免責(zé)聲明

除了非常小的任務(wù)外,其它都寫出了代碼供大家閱讀。伴隨力量而來的是責(zé)任。事實(shí)是,你在Bash中做的,并不意味著是你所應(yīng)該做的!;)

 

 
責(zé)任編輯:王雪燕 來源: linux.cn
相關(guān)推薦

2017-05-25 10:32:40

命令linux系統(tǒng)

2020-03-13 10:18:43

GitHub 技術(shù)開源

2024-08-13 10:55:34

Linux命令行黃金法則

2020-12-11 06:44:16

命令行工具開發(fā)

2020-12-10 16:16:08

工具代碼開發(fā)

2011-01-18 19:11:26

Postfix命令行

2010-11-16 11:50:21

oracle命令行登錄

2012-02-08 16:37:36

ibmdw

2010-07-15 10:47:22

Perl命令行

2010-03-10 17:23:37

Python 命令行參

2010-07-20 14:18:22

Perl命令行

2020-12-06 08:00:46

scanimage命令行Linux

2023-06-09 07:45:29

Kuberneteskubectl

2009-12-24 14:51:39

Linux命令行

2010-07-15 09:37:47

Perl命令行

2019-07-23 13:45:38

LinuxFedora權(quán)限

2009-07-20 09:55:30

華為命令行解析華為認(rèn)證

2010-08-20 10:05:23

用戶命令

2010-09-01 14:23:54

Linux命令行開發(fā)

2010-11-24 15:33:59

mysql命令行參數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

美女视频免费一区| 欧美日韩午夜电影网| 久久综合久久久久88| 国产精品久久久av久久久| 欧美自拍偷拍网| 免费观看亚洲天堂| 狠狠做深爱婷婷久久综合一区 | 一区二区三区四区视频免费观看 | 一卡二卡三卡视频| 美州a亚洲一视本频v色道| 另类中文字幕网| 国内久久久精品| 青青青视频在线播放| 国产+成+人+亚洲欧洲在线| 欧美小视频在线| av磁力番号网| 国产色a在线| 成熟亚洲日本毛茸茸凸凹| 国产精品久久久久久久久免费 | 亚洲人成久久| www.久久久久| 人人人妻人人澡人人爽欧美一区| 日韩高清一区| 欧美日韩综合在线| 日韩av综合在线观看| 高h视频在线观看| 久久亚洲捆绑美女| 国产乱人伦精品一区二区| 中文在线资源天堂| 久久精品动漫| 久久免费国产视频| 日本青青草视频| 91久久电影| 国产亚洲视频在线| 亚洲av无码一区二区二三区| 综合视频一区| 日韩午夜激情av| 日韩欧美亚洲另类| 欧美高清免费| 欧美日韩你懂的| 超碰网在线观看| 日本乱码一区二区三区不卡| 亚洲国产日韩a在线播放性色| 亚洲成人动漫在线| 日本中文字幕伦在线观看| 久久久国产一区二区三区四区小说| 高清国产在线一区| 性一交一乱一乱一视频| 韩国一区二区视频| 国产美女高潮久久白浆| 欧美在线观看不卡| 性欧美videos另类喷潮| 欧美中文字幕在线播放| 亚洲精品视频在线观看免费视频| 极品裸体白嫩激情啪啪国产精品| 不卡中文字幕av| 麻豆天美蜜桃91| 天天综合网91| 色综合久久88| 日韩欧美一区二区一幕| 国产欧美二区| 国产97人人超碰caoprom| 精品不卡一区二区| 丝袜亚洲另类欧美| 国产精品日韩欧美| 国产精品欧美久久久久天天影视| 国产一区二区h| 99re在线国产| 五月婷婷免费视频| 91麻豆国产福利精品| 日韩视频专区| 黄视频在线观看网站| 亚洲视频一区二区免费在线观看 | 99热国产在线中文| 亚洲综合精品自拍| 1024av视频| 在线日韩影院| 欧美日韩在线播放一区| 三级黄色片免费看| av成人资源网| 精品视频在线观看日韩| www色com| 综合激情视频| 26uuu久久噜噜噜噜| www.五月婷婷.com| 国产精品一区二区x88av| 精品乱色一区二区中文字幕| youjizz在线播放| 亚洲欧美日韩中文字幕一区二区三区| 国产一区二区三区小说| 在线成人av观看| 欧美一区二区三区在线观看| 亚洲激情 欧美| 日韩电影二区| 午夜精品久久久久久久99热浪潮| 午夜精品免费观看| 国产成人鲁色资源国产91色综| 精品一区在线播放| 91.xxx.高清在线| 亚洲国产aⅴ成人精品无吗| 已婚少妇美妙人妻系列| 欧州一区二区三区| 亚洲欧洲成视频免费观看| 中文字幕电影av| 久久亚洲图片| 国产91亚洲精品一区二区三区| 牛牛热在线视频| 一区二区三区中文免费| 日韩一级片播放| 国内视频在线精品| 精品国产欧美一区二区三区成人| 日韩 欧美 综合| 国产在线国偷精品产拍免费yy| 久久久久一区二区三区| 中文字幕伦理免费在线视频| 色噜噜夜夜夜综合网| 亚洲午夜久久久久久久久| 欧美亚洲精品在线| 91精品国产精品| 精品人妻久久久久一区二区三区| 国产亚洲精品bt天堂精选| 亚洲精品久久久久久久蜜桃臀| 巨大黑人极品videos精品| 精品国偷自产国产一区| 黄视频网站免费看| 蜜桃一区二区三区在线| 欧美激情国产日韩| 高潮在线视频| 精品日产卡一卡二卡麻豆| 美女福利视频网| 丝袜脚交一区二区| 久久精品aaaaaa毛片| 婷婷色在线资源| 7777精品伊人久久久大香线蕉完整版| 微拍福利一区二区| 久久最新视频| 欧美日本亚洲| 在线人成日本视频| 亚洲国内高清视频| 日本熟妇成熟毛茸茸| 国产91在线观看丝袜| 老司机午夜网站| 精品一区二区三区免费看| 日韩中文字幕视频在线| 波多野结衣午夜| 国产色产综合色产在线视频 | 国产成人久久久久| 国产在线精品视频| 日本丰满大乳奶| 国产欧美视频在线| 不用播放器成人网| 亚洲高清在线观看视频| 亚洲综合丝袜美腿| www.四虎精品| 日韩一区二区免费看| 国外成人在线视频网站| 超级碰碰不卡在线视频| 亚洲精品在线免费播放| 久久精品国产亚洲av无码娇色| 国产福利不卡视频| 国产色一区二区三区| 国产精品美女在线观看直播| 91国语精品自产拍在线观看性色| 欧美一区,二区| 精品久久久久久| 成人免费看aa片| 青青草原综合久久大伊人精品优势| 日韩欧美在线电影| 国产视频一区二区在线播放| 欧美高清第一页| 亚洲 国产 欧美 日韩| 色先锋资源久久综合| 国产精品成人在线视频| 久久国内精品自在自线400部| 影音先锋在线亚洲| 成人午夜网址| 26uuu亚洲国产精品| 国产尤物视频在线| 欧美一区二区三区四区高清| 久久久久久久中文字幕| 91麻豆精品一区二区三区| 色哟哟精品视频| 综合日韩在线| 美女一区视频| 在线不卡一区| 国内揄拍国内精品少妇国语| 黄视频在线播放| 91精品国产欧美一区二区| 日韩福利片在线观看| 国产日韩欧美精品电影三级在线| 国产农村妇女精品久久| 国产精品一二| 日本一本草久p| 久久av超碰| 97视频资源在线观看| 亚洲美女久久精品| 欧美乱大交做爰xxxⅹ性3| 手机福利小视频在线播放| 欧美日韩国产综合一区二区 | 日本精品视频一区二区三区| 久久国产波多野结衣| 97久久久精品综合88久久| 亚洲综合欧美在线| 亚洲人体偷拍| 中文字幕日韩一区二区三区不卡| 久久久久观看| 91网站在线免费观看| 久久uomeier| 九九热精品视频| av在线资源站| 日韩经典中文字幕| 国产高清不卡视频| 欧美图区在线视频| 毛片基地在线观看| 亚洲电影一区二区| 神马久久精品综合| 国产亚洲成年网址在线观看| 老司机免费视频| 国产精一区二区三区| youjizzxxxx18| 国产精品视频久久一区| 日韩在线视频在线| 天天色天天射综合网| 先锋影音日韩| 亚洲人成亚洲精品| 国产一区二区免费电影| 欧洲大片精品免费永久看nba| 国产精品久久久久7777婷婷| 偷拍自拍在线看| 久久免费精品视频| 久久免费电影| 色综合久综合久久综合久鬼88| 色视频在线免费观看| 一区二区三区视频在线| 污污网站在线免费观看| 亚洲成人久久网| 亚洲伦理在线观看| 日韩精品一区国产麻豆| 国产精品-色哟哟| 欧美精品tushy高清| 中文字幕一区2区3区| 欧美在线视频你懂得| 人人妻人人爽人人澡人人精品| 欧美午夜视频一区二区| 黑人精品无码一区二区三区AV| 亚洲国产日韩一区二区| 中日韩精品视频在线观看| 欧美大片xxxx| 在线成人黄色| 日韩精品久久一区二区| 国产精品豆花视频| 成人av在线不卡| 亚洲黄色在线| 国产精品无码av在线播放| 午夜在线播放视频欧美| 91av在线免费播放| 美日韩一级片在线观看| 中文字幕视频三区| 国产精品影音先锋| 中文字幕天堂网| 91美女片黄在线观看91美女| 精品人妻一区二区三区香蕉 | 亚洲午夜精品久久久久久高潮| 久久久亚洲高清| 亚洲一区二区自偷自拍 | 日韩精品极品视频| 国产在线中文字幕| 色偷偷偷综合中文字幕;dd| 黄色小网站在线观看| 久久91亚洲精品中文字幕奶水| 岛国毛片av在线| 日韩免费观看网站| ww久久综合久中文字幕| 91高跟黑色丝袜呻吟在线观看| h视频久久久| 欧美中日韩免费视频| 日本不卡电影| 热久久最新网址| 色狮一区二区三区四区视频| 日韩在线第一区| 天天做天天爱综合| 久久av秘一区二区三区| 亚洲人成久久| 成人亚洲视频在线观看| 国产很黄免费观看久久| 日韩少妇一区二区| 久久久一区二区| 国产精品免费人成网站酒店 | 日日夜夜精品视频天天综合网| jizz大全欧美jizzcom| 国产制服丝袜一区| 9.1在线观看免费| 久久久噜噜噜久久中文字幕色伊伊 | 久久另类ts人妖一区二区| 成人网18免费网站| 日本高清不卡一区二区三| 亚洲激情中文在线| 波多野结衣综合网| 可以看av的网站久久看| www,av在线| 99免费精品视频| 男人操女人的视频网站| 狠狠久久亚洲欧美专区| 一区二区视频网站| 日韩av一卡二卡| 日韩毛片久久久| 久色乳综合思思在线视频| 黄色综合网址| 97免费高清电视剧观看| 久久av综合| 在线观看污视频| 亚洲资源av| 北京富婆泄欲对白| 国产精品你懂的| 亚洲精品77777| 日韩一区二区三区三四区视频在线观看 | 91九色视频导航| 国产一区二区三区不卡视频网站| 红桃一区二区三区| 日韩精品一区第一页| 粉嫩av懂色av蜜臀av分享| 《视频一区视频二区| 伊人手机在线视频| 日韩成人中文字幕| av毛片在线看| 国产精品青青在线观看爽香蕉| 97久久综合区小说区图片区| 亚洲人成人77777线观看| 久久久综合网| 中文在线观看免费视频| 国产精品久久久久久亚洲毛片| 日韩在线 中文字幕| 精品国产91亚洲一区二区三区婷婷| 国产在线69| 国产精品第三页| 美女视频亚洲色图| 国产无限制自拍| 国内精品久久久久影院一蜜桃| 波多野结衣影院| 精品国产精品三级精品av网址| 国产三级在线观看视频| 久久亚洲成人精品| 成人在线视频免费看| 日韩精品成人一区二区在线观看| 久久精品一区| 久久久久久久久免费看无码 | 亚洲国产精品日韩| 性欧美长视频| 欧美多人猛交狂配| 欧美午夜精品久久久久久人妖| 欧洲亚洲在线| 57pao国产成人免费| 久久a爱视频| 久久免费视频3| av影院午夜一区| 日日骚av一区二区| 亚洲欧美国产一本综合首页| 咪咪网在线视频| 日本一区二区不卡高清更新| 久久精品国产清高在天天线| 欧美另类69xxxx| 欧美视频在线一区二区三区 | 中文字幕 欧美激情| 在线亚洲男人天堂| 成人不卡视频| 欧美色欧美亚洲另类七区| 免费在线一区观看| 日本人亚洲人jjzzjjz| 宅男在线国产精品| av在线官网| 91精品在线看| 中文久久精品| 成人网站免费观看| 欧美亚洲精品一区| 欧美尤物美女在线| 99久re热视频这里只有精品6| 欧美日韩国产探花| 男女性杂交内射妇女bbwxz| 色视频成人在线观看免| 国产一级片在线播放| 国产成人免费av电影| 91九色精品国产一区二区| 免费不卡av网站| 色综合中文字幕| porn亚洲| 国产精品免费区二区三区观看| 99国产精品自拍| 人妻无码一区二区三区| 欧美乱妇15p| 黑人极品ⅴideos精品欧美棵| 欧美污视频久久久| 精品中文字幕一区二区小辣椒| 美女福利视频在线观看| 亚洲图片制服诱惑| 亚洲一区导航| 看av免费毛片手机播放| 欧美韩国日本不卡| 国产日韩精品suv| 国产精品精品视频| 一区二区不卡|