运维老手常用的linux命令操作

Posted 龙叔运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维老手常用的linux命令操作相关的知识,希望对你有一定的参考价值。

运维离不开linux,linux离不开命令操作,熟悉一些好用的linux命令会极大的提升你的工作效率,命令之间灵活的搭配更是会爆发无穷的生产力

本文介绍一些好用命令的使用场景,不会详细介绍命令的参数

顺便推荐下我的微信公众号哈:龙叔18岁

1·find命令

一般刚刚接触linux的人可能仅仅只是把find命令当成了查找文件的命令,但是它的强大远远不止查找文件,举例如下,批次见可以自由结合使用满足不同使用场景

查找指定名字的文件或目录

find ./ -name xxx.sh

查找指定大小范围的文件或目录

find ./  -size +50k -a -size -2M  (-a 是而且,-o是或者,-not 是相反)

查找指定文件类型

 find ./ -type f (普通文件f  文件夹文件d  符号文件l  字符设备c  块设备b等)

查找指定修改时间的文件或目录

方式1:【 -atime 访问时间(天) 】【 -ctime 改变状态的时间(天) 】 【 -mtime 修改的时间(天) 】【 -amin 访问时间(分钟) 】【 -cmin 改变状态的时间(分钟) 】 【 -mmin 修改的时间(分钟) 】

find ./ -mtime +1 -a mtime -3 (修改时大于1天,小于3天)

find ./ -mmin +1 -a mmin -3 (修改时大于1分钟,小于3分钟)

方式2:-newerXY,用于所寻找的文件的时间戳 X 比参照文件的时间戳 Y 更新一些的文件,X 和 Y 可选参数:【a: 参照文件的访问时间 】【B: 参照文件的创建时间】【c:参照文件的 inode 状态改变时间【 m:参照文件的修改时间】【t:直接指定一个绝对时间】

 find ./ -newermt '2020-12-02' (修改时间小于2020-12-02的文件或目录)

查找指定权限的文件或目录

find ./ -perm 755【查找权限为755的】

find ./  ! -perm 755【查找权限不是755的】

 

查找到文件后做出对应操作

 -delete 【删除查找到的文件】

 find ./ -name xx.sh -delete

 -exec 命令 \\;  【执行命令(当前目录下执行)】

find ./ -name README.txt -exec ls \\;

find / -name 10086.txt -exec cat \\;

 -ok 命令 \\; 【 执行命令,执行前会询问(当前目录下执行)】

find ./ -name README.txt -ok ls \\;

find / -name 10086.txt -ok cat \\;

 -execdir 命令 \\;  【执行命令(在查找到的文件或目录所在目录下执行)】

find / -name 10086.txt -execdir pwd  \\;

 -ok 命令 \\;  【执行命令,执行前会询问(在查找到的文件或目录所在目录下执行)】

find / -name 10086.txt -okdir pwd  \\;

 

2·xargs命令

xargs命令是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。一般是和管道一起使用。

这里只讲我认为最强大的 -I 或者是-i 参数的功能(根据自己的linux),别的使用我这里不讲,因为我觉得不是最重要的功能

这里简单举例和find和awk的搭配,能搭配的命令那是千变万化的

命令格式: xargs -I 命令

-I参数和find搭配

find / -name 10086.txt  | xargs -I cat

-I参数和awk搭配

ll |awk 'print $9' |xargs -I mv _bak

 -d和-n参数

xargs默认的命令就是echo,-d可以指定分割符,-n可以指定一次输出的数量

 

3·awk和sort命令

awk命令这里就不详细介绍,简单的举几个使用的例子,具体的awk使用介绍可以看我的这篇文章 https://wangxiaolong.blog.csdn.net/article/details/107094812

sort命令都是和别的命令搭配使用的,往往是别的命令完成数据的统计,sort命令则对统计出来的数据信息做一个排序,这里简单举例和awk的搭配,和别的命令搭配也是类似

         sort常用参数:【-k 指定用第几列配许】【-n 按照数值大小排序】【-r 以从大到小的顺序排序】【d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。】

举例:a.acc日志格式如下:

100.120.239.186 - - [15/Mar/2020:11:12:40 +0800] "HEAD / HTTP/1.0" 200 273 "-" "-"

统计各个IP的访问量,并排序

awk 'a[$1]++ENDfor(i in a) print i,a[i] ' a.acc | sort -n -r -k 

统计200状态的各个IP的访问量,并排序

awk '$9==200a[$1]++ENDfor(i in a) print i,a[i] ' a.acc | sort -n -r -k 2

统计5-10行区间内 各个IP的访问量,并排序

awk 'if(NR>=5&&NR<=10)a[$1]++ENDfor(i in a)print i,a[i]' a.acc | sort -n -r -k 2

 

4·免密登录配置

如:在192.168.30.133上配置免密登录到192.168.30.135,那么就需要在133机器上执行两个命令

 生成本机密钥:

ssh-keygen -t rsa -f /root/.ssh/id_rsa -N "" -q

生成ssh公钥认证的公钥并填充到目标服务器(需要输入密码):

ssh-copy-id -i /root/.ssh/id_rsa.pub -o StrictHostKeyChecking=no 192.168.30.135

 

5·主机资源监视

5.1·cpu

cpu核数

cat /proc/cpuinfo |grep processor |wc -l 【逻辑cpu】

cpu使用情况

top   或者  dstat --top-cpu

5.2·内存

free -mh

5.3·查看端口占用进程

lsof -i:端口

5.4·磁盘

df -h  目录空间使用情况

 

du 显示文件或目录所占用的磁盘空间

5.5·IO

iostat 查看io情况

 

iotop 查看占用IO较高的进程

iotop -o 只看产生io的进程(会更清爽一点)

  • IO:它显示每个进程的 I/O 利用率,包含磁盘和交换。
  • SWAPIN: 它只显示每个进程的交换使用率。

 

 

 

 

后面也会不断补充实用的命令操作到这篇文章中来

 

推荐公众号,分享运维知识:龙叔18岁

 

 

以上是关于运维老手常用的linux命令操作的主要内容,如果未能解决你的问题,请参考以下文章

linux运维必须知道的几个常用命令

Linux运维常用命令有哪些?Linux基础入门

(转)Linux企业运维人员常用的150个命令分享

Linux运维最常用命令汇总

linux系列之常用运维命令整理笔录

Linux用户权限集中管理方案