統計最常用10個命令的指令碼

2022-08-23 10:45:09 字數 3307 閱讀 6444

某同學遇到個需求:

開發乙個指令碼

可以統計出最長用的10個命令

輸出有4列, 序號(1~10), 數量(大~小), 佔比(大~小), 命令

效果如下

改寫後的指令碼

#!/bin/bash

cat ~/.bash_history | awk '

end

for(k in list)

}' | sort -nrk 1 | head -n 10 | awk ''

history可以顯示所有的歷史命令, 直接在終端中輸入history命令即可

查詢最新的n條命令, 返回的是不重複的n條件, 重複的不計算在內

history -n

$ history -3

2543 whatis history

2544 history

2545* history 2

2546* history -n 2

2547* history -2

2548* history -10

2549* history -3

2550* history -10

2551* history -20

2552* history -3

2553 hisgory -3

雖然返回的數量超過了3, 但是標*的表示為重複命令, 不重複的有3條

使用者在終端中操作的命令, 在關閉終端時會自動儲存到檔案中, 一般是.bash_history檔案, 最多儲存1000條

可以通過環境變數修改儲存檔案與儲存的最大條數

histfile: 表示命令儲存的檔名, 可以通過export histfile=~/.cmd_file修改

histfilesize: 表示最大儲存的數量, 可以通過export histfilesize=2000修改

$ echo $histfile

/users/zhouweixin/.bash_history

$ echo $histfilesize

1000

查詢檔案的內容有許多命令, 功能描述如下表所述

命令功能

備註cat

cat(英文全拼:concatenate)命令用於連線檔案並列印到標準輸出裝置上(如terminal)

more

與cat功能相同, 區別在於可以一頁一頁的輸出, 空格翻頁

less

less 與 more 類似, 使用 less 可以隨意瀏覽檔案, 而且 less 在檢視之前不會載入整個檔案

head

head命令可用於檢視檔案的開頭部分的內容

tail

tail 命令可用於檢視檔案尾部的內容

指令碼中用到了管理命令|, 其功能是將左邊命令的輸出作為右邊命令的輸入

例如: 有乙個檔名為go.mod, 內容如下

)經過前面的了解我們知道命令cat go.mod可以把該檔案的內容列印到終端, 如下所示

)假如我們並不想列印所有的內容, 僅想列印包含indirect行的內容, 則可以利用管道|, 如下所示

github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect管道|把左側命令cat的輸出重定向作為右側命令grep的輸入(grep命令逐行判斷是否包含indirect內容)

類似連線多個命令符號有許多, 一定來看幾個

命令功能備註;

連線多個命令, 順序執行, 成功失敗互不影響

示例: mkdir mydir; cd mydir

>

輸出重定向, 將左側命令的輸出重定向到右側檔案

示例: cat a.txt > b.txt

<

輸入重定向, 將右側檔案的內容作為左側命令的輸入

&用於命令後, 表示後台執行命令

&&邏輯與, 只有左側命令為true, 右側命令才會執行

||邏輯或, 只有左側命令為false, 右側才會執行

awk 是一種處理文字檔案的語言,是乙個強大的文字分析工具。

之所以叫 awk 是因為其取了三位創始人 alfred aho,peter weinberger, 和 brian kernighan 的 family name 的首字元。

使用詳情可參考

linux awk 命令

sort命令用於將文字檔案內容加以排序, 以行為單位來排序

相關引數

統計本機最常用的10個命令

找出最常用的10條history命令的shell指令碼

history命令

linux下有趣的命令

linux sort命令

linux awk 命令

10個最常用的CSS className

很多做前端開發的在為頁面元素定class的時候經常會拿不定主意,導致隨意使用class,乙個好的class要能夠描述出某個特定元素的表現,在符合團隊開發流程 規範的情況下也要注意在工作中形成一套自己的風格,下面是我最經常使用的個人認為命名比較恰當和有一定作用的10個class。1.class fix...

10組最常用Git命令

10組最常用git命令 更多 一般來說,日常使用只要記住下圖6個命令,就可以了。但是熟練使用,恐怕要記住60 100個命令。下面是我整理的常用 git 命令清單。幾個專用名詞的譯名如下。workspace 工作區 index stage 暫存區 repository 倉庫區 或本地倉庫 remote...

Shell生產最常用的命令和指令碼 二

目錄 shell生產最常用的命令和指令碼 bin bash 位址hostname 123456 port 123456 username 123456 password 123456 datanode 1 2 3 dbname dspcbdb dsanddb dsiosdb dsiobdb dsan...