Ag:比grep、ack更快的歸遞搜索文件內容 1:首先在linux創建個sh文件->ag.sh 2:在ag.sh裡面輸入如下內容並保存 #!/bin/bash set -x TEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX) cd ${TEMP_DIR} wget h ...
Ag:比grep、ack更快的歸遞搜索文件內容
1:首先在linux創建個sh文件->ag.sh
2:在ag.sh裡面輸入如下內容並保存
#!/bin/bash set -x TEMP_DIR=$(mktemp -d Leslie.Guan.XXXXXX) cd ${TEMP_DIR} wget https://github.com/ggreer/the_silver_searcher/archive/master.zip TAR_DIR=$(unzip *.zip) TAR_DIR=${TAR_DIR%%/*} TAR_DIR=${TAR_DIR##*:} cd ${TAR_DIR} apt-get install -y automake pkg-config libpcre3-dev zlib1g-dev liblzma-dev --force-yes ./build.sh && make install cd ../../ rm -rf ${TEMP_DIR} ag -V set +xView Code
3:執行./ag.sh就會去安裝了,完事後可以用ag "helloWord"命令去尋找所有文件中包含helloWord的文件併列出所在行數等。主要是帶有顏色。
Tig:字元模式下交互查看git項目,可以代替git命令
安裝
Ubuntu環境通過apt-get安裝tig
sudo apt-get update sudo apt-get install tigView Code
CentOS環境安裝通過yum安裝tig
sudo yum update sudo yum install tigView Code
Mac環境安裝通過brew安裝tig
brew update brew install tigView Code
使用
1、通過man查看tig命令
//CentOS、Ubuntu
man tig
//mac
man ls tig
2、tig中位置移動是vim命令
3、tig查看所有歷史修改
yanmin:360tmk yanmin$ tig
4、tig show查看某次commit的所有修改
tig show 65a05ee92c83a5827449d62be42322e1b2a58e39
5、tig filename查看某個文件所有歷史修改
yanmin:360tmk yanmin$ tig pom.xml
Mycli:mysql客戶端,支持語法高亮和命令補全,效果類似ipython,可以替代mysql命令
我用的是centos7,版本如果7以下可能會存在問題,比如自帶Python的原因。
安裝:
# yum -y install epel-release
# yum -y install python-pip
# yum install python-devel
清除緩存
# yum clean all
安裝mycli
# pip install mycli
中間如出現報錯按照指引完成即可
測試
輸入mysql命令即可進行補全
Jq:json文件處理以及格式化顯示,支持高亮,可以替換python –m json.tool
簡單介紹:JSON 數據的書寫格式是: 名稱/對象。 JSON的結構基於兩點,“名稱/值”的集合 ,在不同的語言中,它可以被理解為對象(object),記錄(record),結構(struct),字典(dictionary),哈希表(hash table),鍵列表(keyed list)等 。值的有序列表 多數語言中被理解為數組(array)。
JSON的基礎結構說明
對象是屬性、值的集合。一個對象開始與”{” ,結束於”}”。每一個屬性名和值間用”:”分隔。每個屬性間用”,”分隔。
值可以是字元串,數字,邏輯值,數組,對象,null。
數字:整數或浮點數
字元串:在雙引號中
邏輯符:true和false
數組:在方括弧中
對象:在花括弧中
null: 代表空
安裝:centos:#yum install jq
ubuntu:#apt-get install jq
格式:
jq [options] filter [files] **options:** --version:輸出jq的版本信息並退出 --slurp/-s:讀入整個輸入流到一個數組。 --raw-input/-R:不作為JSON解析,將每一行的文本作為字元串輸出到屏幕。 --null-input/ -n:不讀取任何輸入,過濾器運行使用null作為輸入。一般用作從頭構建JSON數據。 --compact-output /-c:使輸出緊湊,而不是把每一個JSON對象輸出在一行。 --colour-output / -C:打開顏色顯示 --monochrome-output / -M:關閉顏色顯示 --ascii-output /-a:指定輸出格式為ASCII -raw-output /-r :如果過濾的結果是一個字元串,那麼直接寫到標準輸出(去掉字元串的引號)View Code
filter
. : 預設輸出
.foo: 輸出指定屬性,foo代表屬性。
.[foo] :輸出指定數組元素。foo代表數組下標。
.[]:輸出指定數組中全部元素
, :指定多個屬性作為過濾條件時,用逗號分隔
| : 將指定的數組元素中的某個屬性作為過濾條件
View Code
files:示例文件 [{"hostCompany":"Beijing Autelan Technology","hostModel":"CS-VIC-2000-C","hostsn":"01010730b12014A00477","mac":"00:1F:64:CE:F3:8E","cpuModel":"MIPS 74Kc V4.12","cpuSN":"000000","memoryModel":"abcdefg","memorySN":"000000","boardSN":"01010730b12014A00477","networkCardMac":"00:1F:64:CE:F3:8F","lowFreModel":"AR9344","lowFreSN":"000000","hignFreModel":"AR9582","hignFreSN":"000000","gpsModel":"abcdefg","gpsSN":"000000","MEID_3g":"A000004E123ABD2","Company_3g":"ZTEMT INCORPORATED","modelOf3g":"MC271X","snOf3g":"A000004E123ABD2","iccid":"89860314400200885980","Operators":"CTCC","hardVersion":"1.20","firmwareVersion":"1.0.6.29"}]View Code
示例:
$ jq . apinfo.json [ { "firmwareVersion": "1.0.6.29", "hardVersion": "1.20", "Operators": "CTCC", "iccid": "DATA DATA", "snOf3g": "A000004E123ABD2", "modelOf3g": "MC271X", "Company_3g": "ZTEMT INCORPORATED", "MEID_3g": "A000004E123ABD2", "memorySN": "000000", "memoryModel": "abcdefg", "cpuSN": "000000", "cpuModel": "MIPS 74Kc V4.12", "mac": "00:1F:64:CE:F3:8E", "hostsn": "01010730b12014A00477", "hostModel": "CS-VIC-1999-C", "stCompany": "Beijing Autelan Technology", "boardSN": "01010730b12014A00477", "networkCardMac": "00:1F:64:CE:F3:8F", "lowFreModel": "AR9344", "lowFreSN": "000000", "hignFreModel": "AR9582", "hignFreSN": "000000", "gpsModel": "abcdefg", "gpsSN": "000000" } ] jq '.[]' apinfo.json { "firmwareVersion": "1.0.6.29", "hardVersion": "1.20", "Operators": "CTCC", "iccid": "DATA DATA", "snOf3g": "A000004E123ABD2", "modelOf3g": "MC271X", "Company_3g": "ZTEMT INCORPORATED", "MEID_3g": "A000004E123ABD2", "memorySN": "000000", "memoryModel": "abcdefg", "cpuSN": "000000", "cpuModel": "MIPS 74Kc V4.12", "mac": "00:1F:64:CE:F3:8E", "hostsn": "01010730b12014A00477", "hostModel": "CS-VIC-1999-C", "stCompany": "Beijing Autelan Technology", "boardSN": "01010730b12014A00477", "networkCardMac": "00:1F:64:CE:F3:8F", "lowFreModel": "AR9344", "lowFreSN": "000000", "hignFreModel": "AR9582", "hignFreSN": "000000", "gpsModel": "abcdefg", "gpsSN": "000000" }View Code
測試:
$ jq -r .[].mac apinfo.json 00:1F:64:CE:F3:8E $ jq -r '.[] | .mac' apinfo.json 00:1F:64:CE:F3:8E $ jq -r '.[] |.mac, .gpsSN' apinfo.json 00:1F:64:CE:F3:8E 000000 jq -r '.[].mac, .[].gpsSN' apinfo.json 00:1F:64:CE:F3:8E 000000View Code
Shellcheck:shell腳本靜態檢查工具,能夠識別語法錯誤和不規範的寫法。
安裝:
在ubuntu里直接apt install shellcheck
在centos里yum install -y epel-release
yum install -y shellcheck
查看某進程的網卡流量
yum install libpcap nethogs -y
另一種安裝方式:
yum install cabal-install
指令安裝目錄:~/.cabal/bin
cabal update
cabal install cabal
cabal install shellcheck
這樣就可以使用如下命令安裝
cabal install shellcheck
Fzf:命令行下模糊搜索工具,能夠互動式智能搜索並選取文件或者內容,配合終端ctrl+r歷史命令搜索
具體使用方法可參考如下
https://www.cnblogs.com/harriszh/p/7616966.html
講的很不錯,可以多學學
Pathpicker(fpp):在命令行輸出中自動識別目錄和文件,支持互動式,配合git非常好用
git diff HEAD-8 --stat| fpp
Htop:提供更美觀,更方便的進程監控工具,替代top命令
用F2編輯配置,用F9發送信號,用F3搜索進程,用F5切換,通過空格設置顏色標註進程條目
- -s 選項 : 按指定的列排序。例如,htop -s PID 命令會按 PID 列的大小排序來顯示。
- -u 選項 : 顯示指定的用戶的進程信息列表。例如,htop -u himanshu 命令會只顯示出用戶名為 himanshu 的相關進程。
- -d 選項 : 設置刷新的延遲時間。例如,htop -d 100 命令會使輸出在1秒後才會刷新(參數 -d 的單位是10微秒)。