1) 文件上传下载----lrzsz命令
lrzsz是rz和sz命令的统称,后跟文件分别表示上传和下载,这个命令简单方便,解决了单一shell工具不能直接传文件的尴尬。使用rz上传时候,会弹出文件选择窗口,这一点很友好;使用sz下载,默认会存到电脑的下载目录。
[root@centos7 ~]# rz #rz 上传选择的文件
[root@centos7 ~]# sz nginx.conf #sz 下载nginx配置文件
2) 远程机器登录----ssh命令
作用:直接命令登录远程机器或者执行命令
参数:-p 指定端口;-i 指定私钥文件;-D 指定一个动态转发端口;-t 开启伪终端
[root@centos7 ~]# ssh -p 22 [email protected] #命令登录远程机器
[root@centos7 ~]# ssh -p 3122 -i new.pem [email protected] #使用私钥文件登远程机器
[root@centos7 ~]# ssh [email protected] free -h #执行远程机器命令
[root@centos7 ~]# ssh -t [email protected] df -h #执行远程机器命令
[root@centos7 ~]# ssh -D 1022 [email protected] #动态端口转发连接请求
提示:命令行登录机器,不少人喜欢配置免密登录,为了安全这里建议如非必需不要使用该方法。
3) 远程文件复制----scp命令
作用:不同机器之间复制传输文件
参数:-i 指定密钥文件;-P指定使用的端口;-p 保留源文件属性;-q 不显示传输进度条;-r 递归整个目录;-v 详细显示传输过程。
示例:
[root@centos7 ~]# scp /home/1.txt [email protected]:/home/ #将1.txt文件复制到1.5机器的home目录下
[root@centos7 ~]# scp -r /data/test [email protected]:/home/ #将test目录完整复制到1.5机器的home目录下
[root@centos7 ~]# scp -r [email protected]:/home/test /data/ #将1.5机器的test目录复制到本地data目录下
[root@centos7 ~]# scp -P 1022 -rp [email protected]:/home/test /data/ #将1.5机器的test目录,通过指定的1022端口,以保持原属性的方式传输复制到本地data目录下。
[root@centos7 ~]# scp -i ecs.pem -r [email protected]:/home/test /data/ #使用指定的密钥文件进行复制传输
提示:scp默认使用22端口,传输时需要输入机器密码或者指定使用密钥。
4) 数据同步----rsync命令
作用:数据同步
参数:-a 递归传输并保持文档属性;-r 递归目录;-v 显示传输过程信息;-t 保持mtime时间属性;-p 保持权限;-u 更新传输;--exlude 指定不需要传输的文件;--delete 保持与源目录文件强一致;-P 显示传输进度;-e 指定要使用的shell,默认是ssh。
示例:
[root@centos7 ~]# rsync /home/1.txt /tmp/ #本机上将文件1.txt拷贝到tmp目录下
[root@centos7 ~]# rsync -r /home/apple /tmp/ #本机上将目录apple拷贝到tmp目录下
[root@centos7 ~]# rsync -a /home/xiaomi /tmp/ #本机上将目录xiaomi保持属性拷贝到tmp目录下
[root@centos7 ~]# rsync --progress -av /home/oppo /tmp/ #本机上拷贝oppo目录到tmp下,显示传输过程信息
[root@centos7 ~]# rsync -avz --exclude="1.ppt" /home/oppo /tmp/ #本机上拷贝除了1.ppt文件的整个oppo目录到tmp下
[root@centos7 ~]# rsync -av /etc/hosts [email protected]:/tmp/ #将本地hosts文件拷贝到1.5机器的tmp目录下
[root@centos7 ~]# rsync -avp [email protected]:/tmp/oppo /home/ #将1.5机器的oppo目录同步到本机home目录下
[root@centos7 ~]# rsync -av -e "ssh -p 22" /etc/hosts [email protected]:/tmp/ #指定同步使用的端口
[root@centos7 ~]# rsync -avz --progress [email protected]::/data/ /home/ #将rsync服务器的data目录同步到本地home下
[root@centos7 ~]# rsync -avpz --delete [email protected]::/data/ /home/ #同步时将删除home下与1.7源目录不同的内容
提示:rsync可以直接针对本机同步,或远程机器ssh方式同步,也可以连接rsync服务使用。
5)标准传输执行----xargs命令
作用:将标准输出转换成命令执行参数
参数:-d 指定分割符;-p 执行后面命令的交互提醒;-t 显示执行的详细命令;-i 指定替换字符串{},常用于循环替换参数;-e 选择执行指定位置前的参数;
[root@centos7 ~]# echo -e "abc" | xargs -d "b" #指定b为分隔符输出分割结果
[root@centos7 ~]# find /home/*.log -type f | xargs -i cp {} /tmp/ #将home下的log拷贝到tmp下
[root@centos7 ~]# find /tmp/*.log -type f | xargs -i rm -rf {} #将tmp下的log文件删除
[root@centos7 ~]# ps -ef |grep nginx|awk '{print $2}'|xargs kill -9 #强制停止nginx进程
提示:xargs很少单独使用,作为其他命令的辅助执行批量处理需求。
6) 后台挂起----nohup命令
作用:忽略挂起信号运行指定命令
[root@centos7 ~]# nohup /home/jiankong.sh & #后台不中断执行
[root@centos7 ~]# nohup ./rmlog.sh > rm.log 2>&1 & #指定输出文件,默认输出是nohup.out
提示:执行了nohup的进程很难停止,可以使用 kill -9 pid的凡是停止该进程。命令末尾的数字有特殊含义,0代表标准输入,1代表标准输出,2代表标准错误;2>&1 的意思是将标准错误重定向到标准输出,和标准输出一起写入到默认的nohup.out文件,或者输出到指定文件。
7) 网络管理----nmcli命令
作用:管理网络
[root@centos7 ~]# nmcli d #查看网卡列表
[root@centos7 ~]# nmcli -t #查看网卡详细信息
[root@centos7 ~]# nmcli device show ens33 #查看ens33网卡的详细信息
[root@centos7 ~]# nmcli c up ens33 #启动网卡ens33,立即生效
[root@centos7 ~]# nmcli c down ens33 #关闭网卡ens33
[root@centos7 ~]# nmcli c reload #重新加载网卡配置,不立即生效
[root@centos7 ~]# nmcli con show #查看当前网卡连接
提示:该命令是centos8版本的默认网络管理工具,在centos7版本使用不多。
8) 网址访问----curl 命令
作用:命令行访问网址
参数:-u 指定用户;-x 设定代理;-I 访问状态;-o 保存到文件。
[root@centos7 ~]# curl www.baidu.com #访问百度首页,源码显示
[root@centos7 ~]# curl -o baidu.html http://www.baidu.com #将页面源码保存到文件
[root@centos7 ~]# curl -I https://www.baidu.com #查看访问状态
[root@centos7 ~]# curl -v https://www.baidu.com #显示通信过程
[root@centos7 ~]# curl -x 192.168.1.2:1880 www.baidu.com #通过代理访问百度首页
[root@centos7 ~]# curl -u super:123456 https://www.baidu.com/login #指定用户登录访问
提示:该命令主要用于网络故障排查,来检查网络的通达性。
9) 进程监控----lsof命令
作用:查看打开的文件和进程
参数:-i 指定条件;-u 指定用户;-p 指定PID;
[root@centos7 ~]# lsof #查看所有打开的进程和文件
[root@centos7 ~]# lsof /var/log/messages #查看使用messages文件的进程
[root@centos7 ~]# lsof -p 7693 #查看指定进程PID打开的文件
[root@centos7 ~]# lsof -u nginx #查看指定用户打开进程和文件
[root@centos7 ~]# lsof -i #列出占用系统端口的进程
[root@centos7 ~]# lsof -i:80 #查看使用80端口的进程
提示:该命令可以查询被删除未释放状态的文件,可协助误删恢复。
10) 磁盘性能监控----iostat命令
作用:查看磁盘的io负载情况
参数:-c 显示cpu信息;-d 显示磁盘使用状态;-k 以Kb大小显示;-m 以MB单位显示大小;-x 显示扩展信息;-p 指定磁盘设备。
[root@centos7 ~]# iostat #一次查看cpu和磁盘设备的负载
[root@centos7 ~]# iostat -c 1 #每一秒显示一次cpu的信息
[root@centos7 ~]# iostat -d 3 #每三秒显示一次磁盘的信息
[root@centos7 ~]# iostat -p sda 2 5 #每2秒显示一次设备sda负载信息,共5次。
[root@centos7 ~]# iostat -x #查看设备更详细的扩展信息
iostat命令结果参数释义:avg-cpu段:%user 表示用户占用CPU百分比,%nice表示nice操作所占用CPU百分比,%system是系统内核使用CPU百分比,%iowait表示CPU等待硬件IO时间百分比,%steal 虚拟CPU无意识等待时间百分比,%idle表示CPU空闲百分比。Device段:tps意思是每秒钟发送的io请求数,Blk_read/s是读block数,Blk_wrtn/s是写block数,Blk_read表示读block总数,Blk_wrtn表示写block总数。
iostat -x 命令结果参数释义:rrqm/s 每秒设备的合并读请求数,wrqm/s 每秒设备的合并写请求数,r/s 每秒设备的读请求数,w/s 每秒设备的写请求数,rsec/s 每秒读入的扇区数,wsec/s 每秒写入的扇区数,rkB/s 每秒读入的数据量,单位为KB,wkB/s 每秒写入的数据量,单位为KB,avgrq-sz 请求的平均大小,avgqu-sz 请求的平均队列长度,await 意思是IO请求的响应时间,svctm 是执行IO平均服务时间,%util 表示IO繁忙度时间比。