这任然是一篇读书笔记,以下内容来源《linux命令速查手册》这本书。
1、locate命令
用文件名或者文件名的部分来搜索文件在系统中的位置。locate不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb)。这个数据库包含本地所有文件爱你信息。linux创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatadb命令,手动更新数据库。
常用形式:
locate hello.txt //在当前目录下查找包含hello.txt字符的文件
locate hello //在当前目录下查找包含hello字符的文件
locate -i hello //在当前目录下不区分大小写的查找包含hello字符的文件
locate -n 4 hello //只显示前4条搜索结果
locate hello|less //搜索结果输出到分屏器less,每次只显示一屏
2、grep命令
grep全称:global search regular expression and print out the line --全面搜索正则表达式并把行打印出来。
常用形式:
grep hi hello.txt //在hello.txt中查找hi字符
grep ‘hi’ hello //跟上面结果一致
grep ‘hi‘ * //在当前目录下搜索hi,如果当前目录下有文件下,不会进入文件下内进行搜索
grep ‘hi‘ -R * //跟上条命令一样,只是会搜索到当前目录下的文件夹,也就是递归
grep ‘hi‘ -i * // -i选项 忽略字符串大小写
grep ‘hi‘ -w * //-w 选项 完整匹配字符串
grep ‘hi‘ -n * //-n选项 显示字符串在文件中的行号
ls -1|grep ‘hi‘ //在ls的输出结果中查找显示包含hi字符的项
grep -A 3 ‘hi‘ hello.txt //在hello.txt中,查找字符串hi,并显示该字符串所在行之后(After)3行
grep -B 3 ‘hi‘ hello.txt //在hello.txt中,差找字符串hi,并显示该字符串所在行之前(Before)3行
grep -C 3 ‘hi‘ hello.txt //在hello.txt中,查找字符串hi,并显示该字符串所在行前后(Center)3行
ls -1|grep -v ‘hello‘ //ls输出中,显示不包含‘hello’字符串的项
grep -il ‘test‘ * //在当前目录下的文件中不区分大小写的查找‘test’,但只列出包含次字符串的文件名(参数 -l )。
ls -1 |grep 11[0-9]|grep -v test //显示当前目录下的文件,文件名包含字符串11X但不包含字符串test。
没啥