fuser和find命令

fuser命令

fuser命令是用来显示所有正在使用着指定file, file system, socket的进程信息。

例一

fuser -m -u /data

输出:

/data:                1476(root)  1477(nobody)  1478(nobody)  1479(nobody)   
                      1480(nobody)  8286ce(root)  8292ce(root)  8293ce(root)       
                      8294ce(root)  8295ce(root)  8298ce(root)  8305ce(root) 
                      8307ce(root)  8308ce(root)  8311ce(root)

用来查找所有正在使用/data的进程PID以及该进程的OWNER,如1476(root),其中1476是进程PIDroot是该进程的OWNER

例二

fuser -v -n tcp 8080

输出

                     USER        PID ACCESS COMMAND
8080/tcp:            root       8286 F.... python
                     root       8292 F.... python
                     root       8293 F.... python
                     root       8294 F.... python
                     root       8295 F.... python
                     root       8298 F.... python
                     root       8305 F.... python
                     root       8307 F.... python
                     root       8308 F.... python
                     root       8311 F.... python

用来查找所有监听了tcp 8080端口的进程, 如果要杀掉所有监听tcp 8080端口的进程,可以使用fuser -k -n tcp 8080

find命令

find命令是用来查找文件的命令。

常用参数

-name 按照文件名查找文件。

-user 按照文件属主来查找文件。

-type 按照文件类型来查找文件, 如 -type f 查找普通文件, -type d查找目录, -type l 查找符号链接文件

-amin n 查找系统中最近n分钟访问的文件

-atime n 查找系统中最近n*24小时访问的文件

-cmin n 查找系统中最近n分钟被改变文件状态的文件

-ctime n 查找系统中最近n*24小时被改变文件状态的文件

-mmin n 查找系统中最近n分钟被改变文件数据的文件

-mtime n 查找系统中最近n*24小时被改变文件数据的文件

-exec 对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;, 注意{ };之间的空格。

-ok-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

例一

find / -name -f "*.log" -print

输出

/var/log/anaconda.storage.log

/var/log/r6389.log

/var/log/anaconda.program.log

/var/log/mysqld.log

用来查找 /目录下面所有名称匹配*.log的普通文件, -print 参数指示find命令将查找到的文件输出到标准输出

例二

find / -name "*.log" -type f -atime +2 -ls

输出

132745  152 -rw-------   1 root     root       152119 Mar 19  2015 /log/storage.log
132741    4 -rw-r--r--   1 root     root           98 Nov 10 10:29 /log/r6389.log
132744   36 -rw-------   1 root     root        32844 Mar 19  2015 /log/program.log
132742   24 -rw-------   1 root     root        21233 Mar 19  2015 /log/anaconda.log

用来查找 /目录中所有匹配*.log 而且在最近2天以内未被访问过的普通文件, 然后输出查找到的文件详情

例三

find / -name "*.log" -type f -mtime +7 -print0 | xargs -0 /bin/rm -f

用来删除 \目录中所有匹配*.log 而且一周内未被修改过的普通文件, -print0xargs -0结合用来处理文件名中含有换行符或者其他空白字符的情况。find命令的-print参数默认以换行符结束文件名, 而-print0则以空字符结束。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,218评论 2 33
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,886评论 18 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,539评论 9 467
  • 很小很小的时候,我曾依靠着栏杆,仰头看着蓝天,那时还没有晚自习,学习很是轻松,于是过道上的灯总是熄灭的,我们的精神...
    文君1阅读 416评论 40 18
  • 你拍了張照片寄給我, 你說你住的城市下雪了; 你寫了封信郵給我, 你說你終於交到了朋友; 你坐火車不遠萬里來看我,...
    尔朱阅读 242评论 1 1