安装

curl -sSfLk -O https://github.com/BurntSushi/ripgrep/releases/download/11.0.2/ripgrep-11.0.2-x86_64-unknown-linux-musl.tar.gz
tar -xvf ripgrep-11.0.2-x86_64-unknown-linux-musl.tar.gz
sudo cp ripgrep-11.0.2-x86_64-unknown-linux-musl/rg /usr/local/bin/
rg -V

ripgrep

rg 'name' ./
# 搜索name为独立单词的内容(-w), 相当于<pattern>
rg -w 'name' ./
# 只打印包含匹配内容的文件名(-l)
rg -w 'name' ./ -l
# 只搜索cpp文件(-t), 可以用-T来不搜索某种类型文件
rg -w 'name' ./ -tcpp
# 正则搜索(-e)
rg -e "sa.*port" ./ -tcpp
# 显示匹配内容及上下各两行(-C), -A/-B类似
rg -e "sa.*port" ./ -tcpp -C2
# 显示不含"debug"的行(-v)
rg -v "debug" -tcpp ./
# 只显示匹配部分(-o)
rg -e "if.*debug" ./ -tcpp -o
# 忽略大小写(-i)
rg -ie "if.*debug" ./ -tcpp -o
# 把pattern当成常量字符(-F), 像.(){}*+不需要escape,如果要搜索的字符是以-开头,那么要用--来作为分隔符,或者用rg -e "-foo"
rg -F "i++)" ./ -tcpp
# 打印所有将被搜索的文件 --files
rg --files
# 输出内置识别文件类型
rg --type-list

fzf

https://github.com/junegunn/fzf/releases
https://github.com/sharkdp/fd
https://github.com/rupa/z

grep

grep -v
grep -E 'l\{2,\}' 2.txt
grep -E 'h(ell|a)o' test.txt
grep '[a-z]\{5,\}' test.txt
grep -xf a.txt b.txt  //查询a与b共同存在的行
grep -vxf b.txt a.txt //查询a的行不在b文件中面的,就是a比b多出来的行
grep -v '^h' test.txt //显示非以h开发的
grep -E '^(h|y)' test.txt //-E支持扩展正则,相当于egrep
grep -A 1 'hello' test.txt  //除了显示匹配到的行也显示它之后的一行
grep -B 1 'hello' test.txt  //除了显示匹配到的行也显示它之前的一行
grep -C 1 'hello' test.txt  //除了显示匹配到的行也显示它之前和之后的一行
grep -r "hello" xx //在xx文件夹查找
grep -c //统计匹配的行数
grep -n //显示行号、
grep -v '#' test.txt  取出所有未被注释的行
grep -v '^hello' test.txt //显示不以hello开头的行
egrep -v "(#|^$)" filename(文件名)
Example: grep -i 'hello world' menu.h main.c
递归查找某目录下的(  包含某字符串[字符串忽略大小写])所有文件,只输出文件名
grep -rli  "字符串" --include="*.cpp" --include="*.h"  "目录"
递归查找某目录下的(不包含某字符串[字符串忽略大小写])所有文件,只输出文件名
grep -rliv "字符串" --include="*.cpp" --include="*.h"  "目录"
递归查找当前目录下所有包含某字符串的文件,输出文件名、行号、该行内容
grep -r -Hn "字符串" #(或)# grep -r -Hn "字符串" ./
递归查找当前目录下所有包含某单词(CharacterString大小写敏感)的文件,输出文件名、行号、该行内容
grep -r -Hn -P '\bCharacterString\b'    # 搜索"正则表达式 元字符 metacharacter"查看详情
递归查找当前目录下所有包含某单词(Character的大小写不敏感)的文件,输出文件名、行号、该行内容
grep -r -Hn -P '\b(?i)Character(?-i)String\b'  # 搜索"正则表达式 模式修改符"查看详情
egrep -v "(#|^$)" filename(文件名)去空白行和注释
grep -Po '"'"access_token"'"\s*:\s*"\K([^"]*)'
ps -eo pid,cmd
ps aux
# USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
ps -ef
# UID        PID  PPID  C STIME TTY          TIME CMD
kill -9 `ps -ef | grep ssh |grep 8118  | grep -v grep |awk 'NR==1 {print $2}'`
kill -9 `ps -eo pid,cmd | grep ssh |grep 8118  | grep -v grep |awk 'NR==1 {print $1}'`
ps -eo pid,stat,pri,uid --sort uid
ps -eo pid,user,stat,args,rss --sort rss
ps axjf
ps aux
ps -ef
ps -lA

参考