目录:
- uniq 用于去除或忽略文件中的重复行
- column 有序的排序
- rsync 备份工具
- mail 邮件服务
- umount 卸载挂载服务
- showmount 查看挂载
- inotifywait等待特定事件发生
- sersync 实时同步工具
- watch 周期性执行程序
- ssh 客户端工具
- scp 远程复制
- help 内置命令的帮助
- hash shell搜寻到的外部命令的路径结果会缓存至内存缓存中
- wget 下载命令
- curl 下载工具
uniq 用于去除或忽略文件中的重复行
主要选项:
-c 在每列旁边显示该行重复出现的次数
-d 仅显示重复的行
-u 仅显示不曾重复的行
示例:
sort file.txt | uniq -c 统计各行在文件中出现的次数
awk 'BEGIN{RS="[ :/0-9\n]+"}{print $0}' jeff.txt|sort -n|uniq -c
3 adm
1 bash
5 bin
2 daemon
3 halt
2 lp
1 lpd
3 mail
6 nologin
3 root
12 sbin
column 有序的排序
主要参数:
-t 判断输入行的列数来创建一个表。分隔符是使用在-s中指定的字符。如果没有指定分隔符,默认是空格
示例:
column -t
rsync 备份工具
主要选项:
-v 详细模式输出,传输时的进度等信息
-z 传输时进行压缩以提高传输效率
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgdl
–bwlimit=10 限制传输速度
–exclude=PATH:表示指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)
–delete:表示删除DST中SRC没有的文件
-L:会把软链接指向的目标文件复制到对端目录中
-e:指定使用ssh还是其他方式来数据同步
示例:
本地模式 rsync -avz /tmp/ /oldboy/
# 使用远程ssh来传递文件:
rsync -avz /etc/hosts -e 'ssh -p 22' oldboy@192.168.229.101:/home/oldboy/ ssh key (免密钥的方式)
mail 邮件服务
主要选项:
-s 指定邮件主题
vim /etc/mail/rc 编辑邮件服务配置文件
set from=jeffding1993@outlook.com
set smtp=smtp.outlook.com
set smtp-auth-user=jeffding1993@outlook.com
set smtp-auth-password=your password
set smtp-auth=login
示例:
mail -s “标题” 邮件地址<文件
mail -s “oldboy”jeffding1993@outlook.com </etc/hosts
echo “正文”|mail -s “oldboy” jeffding1993@outlook.com
umount 卸载挂载服务
主要选项:
-f 强制卸载
-l 并不是马上umount,而是在该目录空闲后再umount
示例:
umount -lf /mnt
lsof /mnt 当umount /mnt无法卸载的时候,可以使用这个命令,来查看是否有进程在使用中
showmount 查看挂载
主要选项:
-e 显示NFS服务输出的目录列表
示例:
showmount -e 10.0.0.14
inotifywait
在被监控的文件或目录上等待特定文件系统时间(open、close、delete)发生,执行后处于阻塞状态,适合在shell脚本中使用
主要参数:
-r 递归查询目录
-q 打印监控事件的信息
-m 始终保持事件监听状态
–excludei 排除文件或目录时,不区分大小写
–timefmt 指定时间输出的格式
–format 打印使用指定的输出类似格式字符串
-e 通过此参数可以指定需要监控的时间,如下所示:
access 文件或目录被读取
modify 文件或目录内容被修改
attrib 文件或目录属性被改变
close 文件或目录封闭,无论读/写模式
open 文件或目录被打开
moved_to 文件或目录被移动至另外一个目录
move 文件或目录被移动另一个目录或从另一个目录移动至当前目录
create 文件或目录被创建在当前目录
delete 文件或目录被删除
unmount 文件系统被卸载
示例:
inotifywait -mrq --format ‘%w%f’ -e create,delete /backup 实时监控backup某个事件的状态
sersync 实时同步工具
主要选项:
-d 启用守护进程模式
-r 在监控前,将监控目录与远程主机用rsync命令推送一遍
-n 指定开启守护进程的数量,默认为10个
-o 指定配置文件,默认使用confxml.xml文件
示例:
/application/sersync_installdir_64bit/sersync/bin/sersync -d -r -n 8 -o /application/sersync_installdir_64bit/sersync/conf/confxml.xml
watch 周期性执行程序
主要选项:
-n 指定秒
-d或–differences 用-d或–differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
示例:
watch -n 1 -d netstat -ant
ssh 客户端工具
主要选项:
-p 指定端口
-t 打开终端
示例:
ssh -p22 root@172.31.1.201
# 也可用如下方式
ssh root@172.31.1.201 50022
scp 远程复制
主要选项:
-P 指定端口
-r 复制目录
-p 保持属性
-l 限速
示例:
scp -P22 -rp /etc root@172.31.1.201:/tmp
help 内置命令的帮助
示例:
格式:help 命令
hash shell搜寻到的外部命令的路径结果会缓存至内存缓存中
主要选项:
-d 指定删除某个命令
-r 清空所有
示例:
hash -d help
hash -r
wget 下载命令
主要选项:
-q 不显示下载过程
-O 指定文件名
-b 在后台执行下载操作
-c 断点续传
–spider 爬虫,检查网站是不是好的,不会下载,只会检查
-T, –timeout=SECONDS 设定响应超时的秒数
–tries=2 指定重试的次数
–limit-rate=amount 以指定的速率传输文件
示例:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl 下载工具
主要参数:
-I 查看响应header信息
-s 安静的
-w 获取状态码
-o 把输出写到该文件中
示例:
[root@localhost ~]# curl -I www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 277
Content-Type: text/html
Date: Thu, 04 Jul 2019 08:25:54 GMT
Etag: "575e1f5c-115"
Last-Modified: Mon, 13 Jun 2016 02:50:04 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
# 下载到本地
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo