linux 常用命令

109 阅读1分钟

查看当前打开文件

lsof 命令,是list open files的简称 $ lsof(这里选取一条记录显示)

COMMAND   PID                      USER   FD        TYPE             DEVICE   SIZE/OFF     NODE        NAME
vi        27940                    hyb    7u         REG               8,15     16384     137573   /home/hyb/.1.txt.swp

lsof显示的结果,从左往右分别代表:打开该文件的程序名,进程id,用户,文件描述符,文件类型,设备,大小,iNode号,文件名。

列出被删除但占用空间的文件

在生产环境中,我们可能会使用df命令看到磁盘空间占满了,然而实际上又很难找到占满空间的文件,这常常是由于某个大文件被删除了,但是它却被某个进程打开,导致通过普通的方式找不到它的踪迹,最常见的就是日志文件。我们可以通过lsof来发现这样的文件:

$ lsof |grep deleted

删除已删除但是未释放空间的文件:

lsof | grep deleted | awk '{print $2}' | xargs  kill -9

xargs

xargs命令的作用,是将标准输入转为命令行参数。 命令的格式如下 xargs [-options] [command] 真正执行的命令,紧跟在xargs后面,接受xargs传来的参数。

xargs的作用在于,大多数命令(比如rmmkdirls)与管道一起使用时,都需要xargs将标准输入转为命令行参数。

默认情况下,xargs将换行符和空格作为分隔符,把标准输入分解成一个个命令行参数。 -d参数可以更改分隔符。

$ echo -e "a\tb\tc" | xargs -d "\t" echo

a b c

由于xargs默认将空格作为分隔符,所以不太适合处理文件名,因为文件名可能包含空格。

find命令有一个特别的参数-print0,指定输出的文件列表以null分隔。然后,xargs命令的-0参数表示用null当作分隔符。

$ find /path -type f -print0 | xargs -0 rm

awk print

The fields in each record are referenced by the dollar sign ($) followed by the field number beginning with 1. The first field is represented with $1, the second with $2, and so on. The last field can also be referenced with the special variable $NF. The entire record can be referenced with $0.

du

du (英文全拼:disk usage)命令用于显示目录或文件的大小。

-s或--summarize 仅显示指定目录或文件的总大小,而不显示其子目录的大小。

-h或--human-readable 以K,M,G为单位,提高信息的可读性。

  • du -sh:查看当前目录总大小。
  • du -sh *:查看当前目录所有子目录大小。

挂起和恢复进程

挂起

kill -s SIGSTOP PID

恢复

kill -s SIGCONT PID

linux查看磁盘、io、内存情况

iostat

image.png

top

image.png

Load Avg

arthurchiao.art/blog/linux-… [2.1 原理与算法]

  • [2.1.1 有活跃线程:load 指数增长]
  • [2.1.2 无活跃线程:load 指数衰减]

查看本地ip地址

hostname