Linux 常用命令收集

1.查看分区和文件夹所占空间大小

df -T

df命令可以显示目前所有文件系统的可用空间及使用情形
df -h

参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。

2. du命令

//查看系统中文件的使用情况
df -h
//查看当前目录下各个文件及目录占用空间大小
du -sh *

//方法一:切换到要删除的目录,删除目录下的所有文件
rm -f *

//方法二:删除logs文件夹下的所有文件,而不删除文件夹本身
rm -rf log

du:查询文件或文件夹的磁盘使用空间

du -h --max-depth=1 /home

 2.删除文件

删除制定文件之外的所有文件

rm -rf !(folder) 
#删除folder1和folder2文件之外的所有文件
rm -rf !(folder1 | folder2) 

当前文件夹中结合使用grep和xargs来处理文件名:

ls | grep -v keep | xargs rm 

使用find命令代替ls,改进方法3从而能够处理制定文件夹的文件:

#删除当前test文件夹中keep文件之外的所有文件
find ./test/ | grep -v keep | xargs rm 

应用场景:权重文件保留太多,要删除一些

方法1: 正则匹配

rm -rf checkpoint_7* checkpoint_8*
方法2: 根据创建时间

find ./ -type f  -mmin +0
 

#删除keep以外的其他文件。
find ./ -name '[^k][^e][^e][^p]*'  -exec rm -rf {} \; 
 #删除keep以外的其他文件。推荐!
find ./ -name '[^k][^e][^e][^p]*'  | xargs rm -rf  

说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。

3.根据时间find筛选并删除

find 参数说明

-amin -n: 最后一次访问发生在 n分钟 之内
-amin n:  最后一次访问发生在距离当前时间 n分钟 至 (n+1)分钟
-amin +n: 最后一次访问发生在 (n+1)分钟 之外

-atime -n: 最后一次访问发生在 n天 之内
-atime n: 最后一次访问发生在 n天 至 (n+1)天 
-atime +n: 最后一次访问发生在 (n+1)天 之外

-cmin -n: 最后一次文件状态修改发生在 n分钟 之内
-cmin n: 最后一次文件状态修改发生在 n分钟 至 (n+1)分钟
-cmin +n: 最后一次文件状态修改发生在 (n+1)分钟 之外

-ctime -n: 最后一次文件状态修改发生在 n天 之内
-ctime n: 最后一次文件状态修改发生在 n天 至 (n+1) 天
-ctime +n: 最后一次文件状态修改发生在 (n+1)天 之外

-mmin -n: 最后一次文件内容修改发生在 n分钟 之内
-mmin n: 最后一次文件内容修改发生在 n分钟 至 (n+1)分钟
-mmin +n: 最后一次文件内容修改发生在 (n+1)分钟 之外


-mtime -n: 最后一次文件内容修改发生在 n天 之内
-mtime n: 最后一次文件内容修改发生在 n天 至 (n+1)天
-mtime +n: 最后一次文件内容修改发生在 (n+1)天 之外

location="/root/test"
find $location -mtime +30 -type f | xargs rm -rf

#访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
#修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
#变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

# 搜索最近七天内被访问过的所有文件
find . -type f -atime -7

#搜索恰好在七天前被访问过的所有文件
find . -type f -atime 7

#搜索超过七天内被访问过的所有文件
find . -type f -atime +7

#搜索访问时间超过10分钟的所有文件
find . -type f -amin +10
 

查杀僵尸进程

如何查看linux系统上的僵尸进程,如何统计有多少僵尸进程?

ps -ef | grep defunct 

或者查找状态为Z的进程,Z就是代表zombie process,僵尸进程的意思。

另外使用top命令查看时有一栏为S,如果状态为Z说明它就是僵尸进程。

Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie

top命令中也统计了僵尸进程。或者使用下面的命令:

ps -ef | grep defunct | grep -v grep | wc -l

如何杀死僵尸进程呢?

一般僵尸进程很难直接kill掉,不过您可以kill僵尸爸爸。父进程死后,僵尸进程成为”孤儿进程”,过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。

ps -e -o ppid,stat | grep Z | cut -d” ” -f2 | xargs kill -9

kill -HUP `ps -A -ostat,ppid | grep -e ’^[Zz]‘ | awk ’{print $2}’`

当然您可以自己编写更好的shell脚本,欢迎与大家分享。

另外子进程死后,会发送SIGCHLD信号给父进程,父进程收到此信号后,执行waitpid()函数为子进程收尸。就是基于这样的原理:就算父进程没有调用wait,内核也会向它发送SIGCHLD消息,而此时,尽管对它的默认处理是忽略,如果想响应这个消息,可以设置一个处理函数。

如何避免僵尸进程呢?

处理SIGCHLD信号并不是必须的。但对于某些进程,特别是服务器进程往往在请求到来时生成子进程处理请求。如果父进程不等待子进程结 束,子进程将成为僵尸进程(zombie)从而占用系统资源。如果父进程等待子进程结束,将增加父进程的负担,影响服务器进程的并发性能。在Linux下 可以简单地将 SIGCHLD信号的操作设为SIG_IGN。
signal(SIGCHLD,SIG_IGN);
这样,内核在子进程结束时不会产生僵尸进程。这一点与BSD4不同,BSD4下必须显式等待子进程结束才能释放僵尸进程

或者

用两次fork(),而且使紧跟的子进程直接退出,是的孙子进程成为孤儿进程,从而init进程将负责清除这个孤儿进程。

如何区分进程和线程ps -eLf

方式

  • 使用ls /proc/pid/task/ 查看线程
  • 使用ps -eLf命令/ps aux -L/ps aux -el
  • 使用pstree

进程和线程

  • 进程是资源分配的最小单位
  • 线程是cpu时间片分配的最小单位
  • 一个进程至少包含一个线程,即主线程

ps -eLf各字段含义

  • UID:用户ID
  • PID:process id 进程id
  • PPID: parent process id 父进程id
  • LWP:表示这是个线程;要么是主线程(进程),要么是线程
  • NLWP: num of light weight process 轻量级进程数量,即线程数量
  • STIME: start time 启动时间
  • TIME: 占用的CPU总时间
  • TTY:该进程是在哪个终端运行的;pts/0255代表虚拟终端,一般是远程连接的终端;tty1tty7 代表本地控制台终端
  • CMD: 进程的启动命令

进程状态。常见的状态有以下几种:

-D:不可被唤醒的睡眠状态,通常用于 I/O 情况。
-R:该进程正在运行。
-S:该进程处于睡眠状态,可被唤醒。
-T:停止状态,可能是在后台暂停或进程处于除错状态。
-W:内存交互状态(从 2.6 内核开始无效)。
-X:死掉的进程(应该不会出现)。
-Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
-<:高优先级(以下状态在 BSD 格式中出现)。
-N:低优先级。
-L:被锁入内存。
-s:包含子进程。
-l:多线程(小写 L)。
-+:位于后台。

linux 中如何查看进程启动时间,持续时长

 ps -eo pid,lstart,etime | grep 5359
 5359 Tue Sep 16 14:47:22 2014       00:43


其中5359为进程号,方便做过滤用的

Tue Sep 16 14:47:22 2014 为启动时间
 00:43为持续时长  
 

查看端口占用的方法

1. ss 

ss ntlp | grep 7788

2.netstate -ntlp | grep xxx 

3. lsof -i:xxxx

ss 比netstate 快一些,具体百度一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值