wc
格式
wc 【选项】
wc 文件 分别显示行数 单词数 符号数(回车空格都算) 文件名
选项
-l 显示行数
-L 显示最长行的长度
-w 显示单词
-m 显示字符
-c 字节数
字节数大于等于字符数
grep
grep过滤内容行(包含选择,查的是字符串)基本格式
grep 【选项】 文件位置
grep 123 abc 查找abc文件中带有123字符的行
选项:
-v取反
例题:查找没有fd的行
grep -v 'fd' a.txt
-i 不区分大小写
-n 输出原始文件行号
grep -n 123 abc
-c 统计行数
-w 按照单词查找
-A 本行和下三行
-B 本行和上三行
-C 本行和上下三行
扩展正则需要用egrep(grep -E)
例题:查找有f字母或good单词的行
egrep 'f|good' a.txt
通配符(完全匹配)
一般用于匹配文件名
?匹配任意一个字符
*匹配任意多个字符
^取反
find a[^b]c 查找不能为abc的文件,但是可以“a+任意字符+c”
[ ] 匹配括号中任意一个字符
find -name "a[bc]c"
{}表示符合括号内包含的多个文件
例:查询‘.log’和“.txt”结尾的文件
ll {*.log,*.txt}
【0-9】【A-Za-z】匹配任意一个括号内的字符范围
find -name "a[b-d]c"
正则表达式(包含匹配)
一般用于匹配内容
^ 匹配行首
$ 匹配行尾
grep '[bc]$' abc
. 匹配任意一个字符
* 匹配前一个字符任意次(可能是0次)
【0-9】【A-Za-z】匹配括号中任意一个字符
- 匹配范围
【】匹配括号中任意一个字符
grep a[ab]c abc
【^】匹配不是括号中任意一个字符
补充
^[$] 以$为开头的行 ^$ 空行
grep “123*a” abc 代表首先顺序为12什么a,1后面必须是2,2后面可以有0或者多个3(附有图)
find
格式
find 查找范围 【条件1】【条件2】...只能查找文件
例:find /root -name abc在根目录下的root文件中寻找abc名字的文件
选项
一般选项
-i忽略大小写
find /root -iname abc
选项按照文件属性查找
-name按照名字查找(默认?)
-type按照类型查找
格式:find 位置 -type d/f/c/i/p/s
d(directory)目录
f(file)文件
l(link)链接文件
b(block)块设备文件
c(char)字符设备文件
p(pipe)管道文件
s(socket)套接字文件
-size按照文件大小查找
符号
+比指定大
-比指定小
=指定的大小?
find的单位
默认不写或者b表示512Byte不推荐
c表示Byte(字节)
k kb
M MB
G GB
w表示2Byte中文字符数查询
-perm按照权限查找
find /root/ -perm 644恰好等于644权限的文件
find /root -perm +644三种权限有一个大于所对应就输出
find /root -perm -644 三中权限必须都大于等于所对应就查出
按照时间搜索
-atime访问时间
-mtime数据修改时间
-ctime状态修改时间
时间规定
-n:n天内修改时间
n:n~n+1天修改
+n:n+1天前修改
例子:find /root -mtime -5
-inum按照inode查找文件
逻辑运算的使用
-a (或者直接空格)与
find -name abc -a -type f
find -name abc -type f
-o 或
find -iname abc -o -perm -777
-not(!) 非
find -type f -not -name abc
find -type f ! -name abc
find高级用法
find 路径 【选项】 搜索内容 -exec 命令 {} \;
find -type f -name abc -exec ls -l {} \;
find -name bcd -exec rm -rf {} \;
find -name a[bc]c 查找名字为abc和acc的文件(中括号内随意一个字符匹配)
rm -rf $(find /root -name "*.txt") 删除root下的.txt结尾的文件
which,whereis
which查找命令的绝对路径
which可以查出别名(不可查文件)
例:which ll
whereis查找二进制文件(帮助文档命令,例如man手册中出现的命令,系统命令路径)
例:whereis ls
locate
只能按照文件名来搜索,数据库位置在/var/lib/mlocate/mlocate.db,搜素速度很快
下载mlocate包
yum -y install mlocate
每次建立文件后查找前,先更数据库
updatedb
locate 文件 直接查找
locate aaa.txt
一些查询例子
延申
find /root -name test.txt | wc -l 查看root下的名字为test.txt 的行数
head -3 a.txt | tail -1 查看a.txt第三行数据
ll -a /etc | less 将设备文件下的长格式信息打印在a.txt中
ip a|grep "ESTABLISHED" |wc -l 统计谁在远程登录我的服务器的人数
find ./ -maxdepth 1 -name '*.txt' ! -name '.*' -exec -rm -rf {} \;删除当前目录下深度为1(不包括其下的子目录)和隐藏目录,名字为.txt结尾的文件
查看当前文件下(不包括隐藏目录)的所有普通文件的行数
find ./ -type f ! -name '.*' | wc -l
ll ./ | grep -c '^-'
ll ./ | grep '^-' |wc -l
发布者:LJH,转发请注明出处:https://www.ljh.cool/35622.html