文件查找
grep: 文件内容过滤
[root@agiao ~]# grep '文件内容' 路径 #从某个路径下的文件中过滤拥有'文件内容'的字段
[root@agiao ~]# grep -r #递归查找
查找命令配置文件位置
查找命令位置
[root@agiao ~]# which 命令名
查找配置文件位置
[root@agiao ~]# whereis 命令名
管道与重定向
重定向
0 标准输入(键盘)
1 标准输出
2 标准错误,
3+ 进程在执行过程中打开的其他文件。
& 表示正确错误混合输出
输出重定向 (覆盖,追加)
> ----覆盖
>> ----追加
正确输出: 1> 1>> 等价于 > >>
错误输出: 2> 2>>
; 按顺序执行
&& 成功后继续执行 失败则暂停
|| 成功后暂停 失败继续执行直到成功为止
输入重定向 <
标准输入: < 等价 0<
通过输入重定向创建文件
语法:[root@agiao ~]# cat > file5 <<EOF #可以写到脚本或者文件里面
>
EOF:开始和结束的标记。
成对使用
结尾的另一个必须定格写。
管道 |
[root@agiao ~]# rpm -qa #查询所有安装的软件包
将文件内容按大小排序
[root@agiao ~]# sort -t":" -k3 -n 文件名 #以: 分隔,将第三列按字数升序
[root@agiao ~]# sort -t":" -k3 -n 文件名 -r #以: 分隔,将第三列按字数降序
[root@agiao ~]# sort -t":" -k3 -n 文件名|head #以: 分隔,将第三列按字数升序看前十行
[root@agiao ~]# sort -t":" -k3 -n 文件名|tail #以: 分隔,将第三列按字数升序看后十行
参数详解:
sort 排序,默认升序
-t 指定分隔符
-k 指定列
-n 按数值
-r 降序
head 默认输出前十行
tail 默认输出后十行
如何将命令结果只展示/etc/passwd文件中第11行用户的uid号
输出结果呈现单段字符
1.[root@agiao.com ~]# 输出结果| awk 'NR==3 {print $列号}' | awk -F连接符 '{print $列号}'
2.[root@agiao ~]# 输出结果| awk 'NR==3 {print $4}' | cut -d连接符 -f列号
文件查找
find文件查找
一、针对文件名
[root@agiao ~]# find 路径 -name “文件名” #列出这个路径下包含该文件名的所有文件
参数解析
-i 忽略大小写
二、针对文件大小
[root@agiao ~]# find 路径 -size +5M #列出路径下大于5M的所有文件
5M #列出路径下等于5M的所有文件
-5M #列出路径下小于5M的所有文件
参数解析
-a:and 和
-o:or 或
三、针对时间查找
[root@agiao ~]# find 路径 - (atime,mtime,ctime) 时间段
按时间找(atime,mtime,ctime)
-atime = access访问时间
-mtime = modify改变时间 内容修改时间会改变
-ctime = change修改时间 属性修改时间会改变
-amin #分钟
-mmin
-cmin
四、针对文件类型
[root@agiao ~]# find 路径 -type 文件类型
按照深度查找
[root@agiao ~]# find 路径 -maxdepth 层数 | wc -l
五、针对文件权限
[root@agiao ~]# find 路径 -perm 访问权限 #列出这个路径下为这个访问权限文件
参数解析
[root@agiao ~]# find 路径 -perm -4000 #包含set uid
[root@agiao ~]# find 路径 -perm -2000 #包含set gid
[root@agiao ~]# find 路径 -perm -1000 #包含sticky
参数传递:xargs -exec
对:ls cp rm 等 管道不能执行的命令通过xargs或者 -exec
语法:
[root@agiao ~]# cat a.txt | xargs -i cp -rf {} /目录
参数详情
{}: 前面传过来的内容
-i : 为了让大括号生效
目录时 -r
解释: 前面传过来的东西交给大括号
[root@agiao ~]# -exec cp -rf {} /tmp \;
{}为前面查找到的内容
\; 格式
-exec和xargs的区别
-exec:参数是一个一个传递的,传递一个参数执行一次命令。
xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。
===============
1、exec 每处理一个文件或者目录,它都需要启动一次命令,效率不好;
2、exec 格式麻烦,必须用 {} 做文件的代位符,必须用 \来转义; 作为命令的结束符,书写不便
。
3、xargs不能操作文件名有空格的文件;
综上,如果要使用的命令支持一次处理多个文件,并且也知道这些文件里没有带空格的文件,那么使用 xargs比较方便; 否则,就要用 exec了
打包压缩
打包压缩工具
工具:gzip和tar(打包) bzip2(只压缩)
结尾:.tar.gz .tar.bz2 .zip
打包
[root@agiao ~]# tar -cvf 名.tar 名
打包压缩
[root@agiao ~]# tar -czvf 名.tar.gx 名
[root@agiao ~]# tar -cJvf 名.tar.bz2 名
[root@agiao ~]# tar -cjvf 名.tar.zip 名
解压缩
[root@agiao ~]# tar -xzvf 名
指定解压目录
[root@agiao ~]# tar -xzvf 名 -C 指定路径
本地邮件发送
安装服务
[root@agiao ~]# yum -y install postfix
[root@agiao ~]# yum -y install mailx
启动服务
[root@agiao ~]# systemctl start postfix
发送邮件
一.
[root@agiao ~]# mail-s“邮件主题” 收件人
• 邮件内容
• Ctrl + d
二.
[root@agiao ~]# echo “邮件内容” | mail -s “邮件主题” 收件人
三.
[root@agiao ~]# mail -s “邮件主题” 收件人 </etc/passwd
接受邮件
接受自己的邮件:
[root@agiao ~]# mail
接受其他人的邮件:
[root@agiao ~]# mail -u 用户名
配置公网发送邮件
[root@agiao ~]# vim /etc/mail.rc
文件最后追加以下内容
set from=2322944912@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=2322944912@qq.com
set smtp-auth-password=bylnepfbuaqteagb
set smtp-auth=login
发送文件
1.参考本地文件发送的方法
2.添加附件的方法
[root@agiao ~]# curl -O 附件链接
[root@agiao ~]# mail -s “邮件主题” -a “附件路径文件” 收件人邮箱