which 查找可执行文件
如:which ls
grep:文件内容过滤
find 寻找文件
1.文件名查找
find /etc -name "ifcfg-eth0"
-name 文件名, 后面-print 动作时默认的,已省略
find /etc -iname "ifcfg-eth0"
-i忽略大小写
find /etc -iname "ifcfg-eth*"
2.文件大小:
find /etc -size +5M //大于5M
find /etc -size 5M
find /etc -size -5M
find /etc -size +5M -ls //-ls找到的处理动作, 不是平时用的ls
ll - h 查看大小
3.指定查找的目录深度
-maxdepth levels
-mindepth levels
find / -maxdepth 3 -a -name "ifcfg-eth0" maxdepth 3 最大3层
a要满足2个条件
并且按时间找(atime,mtime,ctime):
[root@tianyun ~]# find /etc -mtime +5 //修改时间超过5天
[root@tianyun ~]# find /etc -mtime 5 //修改时间等于5天
[root@tianyun ~]# find /etc -mtime -5 //修改时间5天以内
4.按文件类型
find /dev -type f //f普通
find /dev -type d //d目录
find /dev -type l //l链接
find /dev -type b //b块设备
find /dev -type c //c字符设备
find /dev -type s //s套接字
find /dev -type p //p管道文件
5.按文件权限
find . -perm 644 -ls
. 是当前目录 精确查找 644 一般都是进行精确查找
find . -perm -644 -ls
-是包含的意思
带不带- 自己对比一下查看。
带-表示只要6就可以
find . -perm -600 -ls
find . -perm -222 -ls //全局可写
find /usr/bin /usr/sbin -perm -4000 -ls //包含set uid
find /usr/bin /usr/sbin -perm -2000 -ls //包含set gid
find /usr/bin /usr/sbin -perm -1000 -ls //包含sticky
注意:查找出来的文件权限都是大于所找条件的
找到后执行其他动作
-print 默认
-ls 列出结果文件的属性,就像 ls -l 的效果
-exec 继续执行其他命令
|xargs 支持更多参数
exec
find /etc -name "root" -exec cp -rvf {} /tmp \;
exec 命令用于调用并执行指令的命令 查找带 root 带文件 复制到 tmp下
xargs
find . -name "yang*.txt" |xargs rm -rf
xargs与exec的区别与联系
xargs其实就是获取前面指令得到的结果,然后在执行后面的,其效果与exec中的{}效果类似
不同的是,exec执行时候是一条条单独执行,这就意味着,进程越多就越耗性能,一般来说,只要不是执行带有空格名字的文件,用xargs比较方便
关于$(xargs)的一些命令
-O 大写字母 O, 把空格字符改变为一般字符
-e 后面跟字符串,当xargs分析到字符串时就停止,格式为 -e'test' 中间没有空格
-p 执行时询问
-n 后面接数字,定义command执行时,要使用几个参数
找出 /sbin 目录下的文档,并使用 ls -l 列出详细数据
find /sbin -perm +0700|ls -I $(xargs)
linux目录
在执行命令时候,一定要清楚自己在哪个目录
文件内容操作
cut字段分隔
d' ' f1 就是空格为分段符,取出第一段;d'-' f2 -为分段符,取出第二段
grep关键字搜索
grep [-acinv] [--color=auto] '搜寻字符串' filename
-a //将binary 文件以text文件的方式搜索数据
-c //计算找到的字符串的次数
-i //忽略大小写
-n //输出行号
-v //反向选择,意思就是除了那个之外其他都符合要求
排序统计命令:sort,wc,uniq
sort [-fbMnrtuk] [file or stdin]
选项不参数:
-n : 使用『纯数字』进行排序(默认是以文字型态来排序的);
-u :就是 uniq ,相同的数据中,仅出现一行代表
-f :忽略大小写
-b :忽略最前面的空格符部分;
-r :反向排序;
-t :分隔符,预设是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思
uniq去重+统计
只会把连续行内容一样的去重
-c 进行统计重复的次数
-i 忽略大小写
wc 字符,行统计
-l 仅列出行
-w 仅列出多少字
-m 列出字符
tr字符替换
cat /etc/passwd | tr -d ':' //将冒号删除
tr ':' ' ' //将:替换成空格
last | tr '[a-z]' '[A-Z]' //所以小写变成大写
tee双向输出
cat anaconda-ks.cfg | tee an.bak
将文件anacondaks.cfg显示出来,并把它写入an.bak
[更多详情]
(https://www.jianshu.com/p/22cda3116e03
)