Linux常用命令(三) - Go语言中文社区

Linux常用命令(三)


7、搜索查找类

7.1 find查找文件或目录

find指令将从指定目录下递归地遍历各个子目录,将满足条件的文件显示在终端

  • 语法

find【path】【选项】

  • 选项说明

可使用的选项有二三十个之多,在此只介绍最常用的部份

选项 功能
-name<查询方式> 按照指定的文件名查找模式查找文件
-user<用户名> 查找属于指定用户名所有文件
-size<文件大小> 按照指定的文件大小查找文件,单位为:
b —— 块(512字节)
c —— 字节
w —— 字(2字节)
k —— 千字节
M —— 兆字节
G —— 吉字节
查找大于200m的文件
+n大于  
-n小于   
n等于
  1. -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
  2. -amin n : 在过去 n 分钟内被读取过
  3. -anewer file : 比文件 file 更晚被读取过的文件
  4. -atime n : 在过去n天内被读取过的文件
  5. -cmin n : 在过去 n 分钟内被修改过
  6. -cnewer file :比文件 file 更新的文件
  7. -ctime n : 在过去n天内被修改过的文件
  8. -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
  9. -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
  10. -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
  11. -type c : 文件类型是 c 的文件。
  12. d: 目录
  13. c: 字型装置文件
  14. b: 区块装置文件
  15. p: 具名贮列
  16. f: 一般文件
  17. l: 符号连结
  18. s: socket
  19. -pid n : process id 是 n 的文件

可以使用 ( ) 将运算式分隔,并使用下列运算

exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
  • 案例

1.将目前目录及其子目录下所有延伸档名是 c 的文件列出来。

find . -name "*.c"

2. 将目前目录其其下子目录中所有一般文件列出

find . -type f

3. 将目前目录及其子目录下所有最近 20 天内更新过的文件列出

find . -ctime -20

4. 查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:

find /var/log -type f -mtime +7 -ok rm {} ;

5. 查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

find . -type f -perm 644 -exec ls -l {} ;

6. 为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:

find / -type f -size 0 -exec ls -l {} ;

7.服务器磁盘满,一般由大的日志文件导致,需找到大文件并删除。

解决1find / -size +500M -print0|xargs -0 du -m|sort -nr

find指令为找出500M以上的文件,print0和xargs -0配合使用,用来解决文件名中有空格或特殊字符问题。du -m是查看这些文件的大小,并以m为单位显示。最后sort -nr是按照数字反向排序(大的文件在前)

解决2:上述方法从根路径查找,可能列出一些系统文件。可以在这个查找之前先进行一下过滤。

使用du -m -d 1 /|sort -nr  先看看根路径下,哪个文件夹比较大,并且有嫌疑是导致磁盘满的罪魁祸首。然后再基于那个目录进行find。

8. 记得写过一个xxx.c的文件,但是忘了放哪里了

解决: find / -name *xxx*.c 模糊查找下这个文件

7.2 locate 快速定位文件路径

locate指令利用实现建立的系统中所有文件名称及路径的locate数据库实现快速定位定给的文件

locate指令无需遍历整个文件系统,查询速度较快

为了保证查询结果的准确度,管理员必须定期更新locate时刻

  • 语法

locate 搜索文件

  • 经验

由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

  • 案例

如果未安装: yum -y install mlocate

7.3 grep过滤查找及“|”管道符

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

  • 语法

grep 【选项】【查找内容】【源文件】

  • 选项
  1. -a 或 --text : 不要忽略二进制的数据。
  2. -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
  3. -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
  4. -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
  5. -c 或 --count : 计算符合样式的列数。
  6. -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
  7. -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
  8. -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
  9. -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
  10. -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
  11. -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
  12. -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
  13. -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
  14. -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
  15. -i 或 --ignore-case : 忽略字符大小写的差别。
  16. -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
  17. -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
  18. -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
  19. -o 或 --only-matching : 只显示匹配PATTERN 部分。
  20. -q 或 --quiet或--silent : 不显示任何信息。
  21. -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
  22. -s 或 --no-messages : 不显示错误信息。
  23. -v 或 --revert-match : 显示不包含匹配文本的所有行。
  24. -V 或 --version : 显示版本信息。
  25. -w 或 --word-regexp : 只显示全字符合的列。
  26. -x --line-regexp : 只显示全列符合的列。
  27. -y : 此参数的效果和指定"-i"参数相同。
  • 案例

(1)在当前目录中,查找后缀有file字样的文件中包含hello字符串的文件,并打印出该字符串的行

(2)以递归的方式查找符合条件的文件(-r)。

(3)反向查找(-v)

8、压缩解压类

8.1 gzip/gunzip压缩

  • 语法

gzip 文件 (功能:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能:解压缩文件)

  • 经验技巧
    • 只能压缩文件不能压缩目录
    • 不保留原来的文件
  • 案例

8.2 zip/unzip 压缩

  • 语法

zip 【选项】 【文件名.zip】【要压缩的文件】 (功能:压缩文件和目录)
unzip 【选项】【文件名.zip】 (功能:解压缩文件)

  • 选项
zip选项 功能
-r 压缩目录
unzip选项 功能
-d<目录> 指定解压后文件的存放目录
  • 经验

zip 压缩命令在window/Linux都通用,可以压缩目录且保留源文件

  • 案例

8.3 tar 打包

  • 语法

tar 【选项】 【目标名称.tar.gz】【将要打包的文件】 (功能:打包目录,压缩后的文件格式.tar.gz)

  • 选项
选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件

9、磁盘分区类

10、进程线程类

10.1 ps查看当前系统进程状态

ps:process status 进程状态

  • 语法

ps -aux | grep xxx (功能:查看系统中所有进程)
ps -ef | grep xxx (功能:查看子父进程之间的关系)

  • 选项
选项 功能
-a 选择所有进程
-u 显示所有用户的所有进程
-x 显示没有终端的进程
  • 功能

(1)ps -aux显示信息说明

  1. USER:该进程是由哪个用户产生的
  2. PID:进程的ID号
  3. %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
  4. %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
  5. VSZ:该进程占用虚拟内存的大小,单位KB;
  6. RSS:该进程占用实际物理内存的大小,单位KB;
  7. TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
  8. STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
  9. START:该进程的启动时间
  10. TIME:该进程占用CPU的运算时间,注意不是系统时间
  11. COMMAND:产生此进程的命令名

(2)ps -ef显示信息说明

  1. UID:用户ID
  2. PID:进程ID
  3. PPID:父进程ID
  4. C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
  5. STIME:进程启动的时间
  6. TTY:完整的终端名称
  7. TIME:CPU时间
  8. CMD:启动进程所用的命令和参数
  • 经验

如果想看进程的CPU占用率和内存占用率,可以用aux

如果想查看进程的父进程ID可以使用ef

10.2 kill 终止进程

  • 语法

kill 【选项】【进程号】 (功能:通过进程号杀死进程)
killall 【进程名称】 (功能:通过进程名称杀死进程,也支持通配符,在系统因负载过大而变得很慢时有用)

  • 选项
选项 功能
-9 表示强迫进程立即停止

10.3 pstree 查看进程树

  • 语法

pstree 【选项】

  • 选项
选项 功能
-p 显示进程的PID
-u 显示进程的所属用户

10.4 top查看系统将康状态

  • 语法

top【选项】

  • 选项说明
选项 功能
-d 秒数 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
-i 使top不显示任何闲置或者僵死进程。
-p 通过指定监控进程ID来仅仅监控某个进程的状态。
  • 操作说明
操作 功能
P 以CPU使用率排序,默认就是此项
M 以内存的使用率排序
N 以PID排序
q 退出top
  • 结果字段解释

第一行信息为任务队列信息

内容 说明
12:26:46 系统当前时间
up 1 day, 13:32 系统的运行时间,本机已经运行1天13小时32分钟
2 users 当前登录了两个用户
load  average:  0.00, 0.00, 0.00 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。

第二行为进程信息

Tasks:  95 total 系统中的进程总数
1 running 正在运行的进程数
94 sleeping 睡眠的进程
0 stopped 正在停止的进程
0 zombie 僵尸进程。如果不是0,需要手工检查僵尸进程

第三行为CPU信息

Cpu(s):  0.1%us 用户模式占用的CPU百分比
0.1%sy 系统模式占用的CPU百分比
0.0%ni 改变过优先级的用户进程占用的CPU百分比
99.7%id 空闲CPU的CPU百分比
0.1%wa 等待输入/输出的进程的占用CPU百分比
0.0%hi 硬中断请求服务占用的CPU百分比
0.1%si 软中断请求服务占用的CPU百分比
0.0%st st(Steal  time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。

第四行为物理内存信息

Mem:    625344k total 物理内存的总量,单位KB
571504k used 已经使用的物理内存数量
53840k free 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了
65800k buffers 作为缓冲的内存数量

第五行为交换分区(swap)信息

Swap:   524280k total 交换分区(虚拟内存)的总大小
0k used 已经使用的交互分区的大小
524280k free 空闲交换分区的大小
409280k cached 作为缓存的交互分区的大小

10.5 netstat 显示网络统计信息和端口占用情况

  • 语法

netstat -anp | grep 进程号 (功能:查看该进程网络信息)
netstat -nlp | grep 端口号 (功能:查看网络端口号占用情况)

  • 选项
选项 功能
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出有在listen(监听)的服务状态
-p 表示显示哪个进程在调用
-a 所有

11、crontab系统定时任务

11.1 重启crond服务

service crond restart

11.2 crontab 定时任务

  • 语法

crontab【选项】

  • 选项

选项 功能
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/hyunbar/article/details/106867060
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 21:59:32
  • 阅读 ( 994 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢