LInux系统管理实用命令补充

  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        #查看设备更详细的扩展信息

image.png

  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繁忙度时间比。

猜你喜欢

转载自blog.51cto.com/superleedo/2546692