Linux操作系统运维常用命令

admin 2026-01-14 23:17:28 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档汇总Linux端口占用、目录/文件大小排序、查找文件、top性能监控、iotop磁盘IO及swap高耗进程等六大类高频运维命令,给出ss/netstat/lsof、du/find、top/iotop等具体参数与输出示例,可直接复制使用提升排障效率。 综合评分: 82 文章分类: 安全工具,安全运营,终端安全,云安全,数据安全


cover_image

Linux操作系统运维常用命令

原创

EBCloud

EBCloud

2026年1月14日 16:00 北京

01

端口被占用查询

方法一:ss

执行命令:

ss -tlnp | grep :1521

输出如下:

LISTEN  0        128                 192.168.0.101:1521           0.0.0.0:*      users:((“tnslsnr”,pid=12096,fd=8))

常用参数

说明

ss –help

-t, –tcp  display only TCP sockets

-u, –udp  display only UDP sockets

-l, –listening  display listening sockets

-n, –numeric  don’t resolve service names

-p, –processes  show process using socket

方法二:netstat

执行命令:

netstat -tlnp | grep :1521

输出如下:

tcp        0      0 192.168.0.101:1521      0.0.0.0:*               LISTEN      12096/tnslsnr

方法三:lsof

执行命令:

lsof -i :1521

输出如下:

COMMAND   PID   USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME

oracle   2792 oracle   11u  IPv4 407185582      0t0  TCP cjc-db-01:48328->cjc-db-01:ncube-lm (ESTABLISHED)

tnslsnr 12096 oracle    8u  IPv4 375223255      0t0  TCP cjc-db-01:ncube-lm (LISTEN)

tnslsnr 12096 oracle   15u  IPv4 407185583      0t0  TCP cjc-db-01:ncube-lm->cjc-db-01:48328 (ESTABLISHED)

02

查询目录/文件大小,

按大小排序

场景1:查询/cjcdata目录下目录大小,按降序排序

升序排序是sort -h

执行命令:

du -sh /cjcdata/* |sort -rh|head -n 10

输出如下:

1.5T    /cjcdata/abc_test

50G     /cjcdata/abc_bak

39G     /cjcdata/cjc

30G     /cjcdata/3308bak

29G     /cjcdata/3308_8033bak

26G     /cjcdata/13308bak

4.2G    /cjcdata/tools

3.4G    /cjcdata/20250228

3.3G    /cjcdata/app

2.5G    /cjcdata/dbtmpfile

场景2:查询/cjcdata 目录及下级目录文件大小,按降序排序

执行命令:

find /cjcdata/ -type f -exec du -h {} + |sort -rh |head -n 10

输出如下:

630G    /cjcdata/abc_test/3309/tmp/a1.sql

323G    /cjcdata/abc_test/3309/data/cjc/a2.ibd

49G     /cjcdata/abc_bak/a3.tar.gz

21G     /cjcdata/abc_test/3309/tmp/a4.sql

20G     /cjcdata/abc_test/3309/a5.ibd

20G     /cjcdata/13308bak/log/a6.log

19G     /cjcdata/abc_test/3309/data/abc/a7.ibd

15G     /cjcdata/abc_test/3309/data/cjc/a8.ibd

12G     /cjcdata/abc_test/3309/data/cjc/a9.ibd

11G     /cjcdata/abc_test/3309/data/cjc/a0.ibd

场景3:查询某目录下文件大小,按降序排序

执行命令:

ls -lahS /cjcdata/abc_test/3309/data/cjc/ |head -n 11

输出如下:

total 617G

-rw-r—–  1 mysql mysql  323G Oct 24 20:32 a1.ibd

-rw-r—–  1 mysql mysql   15G Oct 24 11:24 a2.ibd

-rw-r—–  1 mysql mysql   12G Oct 24 18:01 a3.ibd

-rw-r—–  1 mysql mysql   11G Oct 24 11:40 a4.ibd

-rw-r—–  1 mysql mysql  3.8G Oct 24 17:04 a5.ibd

-rw-r—–  1 mysql mysql  3.7G Oct 24 17:09 a6.ibd

-rw-r—–  1 mysql mysql  3.7G Oct 24 17:15 a7.ibd

-rw-r—–  1 mysql mysql  3.5G Oct 24 16:33 a8.ibd

-rw-r—–  1 mysql mysql  3.2G Oct 24 17:52 a9.ibd

-rw-r—–  1 mysql mysql  3.2G Oct 24 17:20 a0.ibd

场景4:统计某类文件总大小

执行命令:

cd /cjcdata/abc_test/3309/data/cjcls cjc#P#p*| xargs du -s | awk '{sum += $1} END {print sum/1024"M"}'

输出如下:

188152M

03

查找文件常用命令

场景1:按名称查找

如果需要忽略大小写,将 -name 改成 -iname

执行命令:

find /cjcbak/old -maxdepth 1 -type f -name "abc*sql.gz"

输出如下:

/cjcbak/old/abc_test_202512110200.sql.gz

/cjcbak/old/abc_test_202512070200.sql.gz

/cjcbak/old/abc_test_202512080200.sql.gz

/cjcbak/old/abc_test_202512050200.sql.gz

/cjcbak/old/abc_test_202512090200.sql.gz

/cjcbak/old/abc_test_202512060200.sql.gz

/cjcbak/old/abc_test_202512120200.sql.gz

/cjcbak/old/abc_test_202512100200.sql.gz

按名称反向查找

执行命令:

find /cjcbak/old -maxdepth 1 -type f -not -name "abc*sql.gz"

输出如下:

/cjcbak/old/err_20251209.log

/cjcbak/old/nohup.out

/cjcbak/old/tmp.sh

/cjcbak/old/20251209.log

/cjcbak/old/abc_test_202512120200.sql

/cjcbak/old/dump_tmp_20251209.sh

场景2:OR条件

执行命令:

find /cjcbak/old -maxdepth 1 -type f -name "abc*sql.gz" -o -mtime -2

输出如下:

/cjcbak/old

/cjcbak/old/abc_test_202512110200.sql.gz

/cjcbak/old/abc_test_202512070200.sql.gz

/cjcbak/old/abc_test_202512080200.sql.gz

/cjcbak/old/abc_test_202512050200.sql.gz

/cjcbak/old/abc_test_202512090200.sql.gz

/cjcbak/old/abc_test_202512060200.sql.gz

/cjcbak/old/abc_test_202512120200.sql

/cjcbak/old/abc_test_202512120200.sql.gz

/cjcbak/old/abc_test_202512100200.sql.gz

场景3:按时间查找

执行命令:

mysql@cjc-db-01:/cjcbak/old$dateFri Dec 12 14:44:10 CST 2025
find /cjcbak/old -maxdepth 1 -type f -name "abc*sql.gz" -mtime +2

输出如下:

/cjcbak/old/abc_test_202512070200.sql.gz

/cjcbak/old/abc_test_202512080200.sql.gz

/cjcbak/old/abc_test_202512050200.sql.gz

/cjcbak/old/abc_test_202512090200.sql.gz

/cjcbak/old/abc_test_202512060200.sql.gz

执行命令:

find /cjcbak/old -maxdepth 1 -type f -name "abc*sql.gz" -mtime -2

输出如下:

/cjcbak/old/abc_test_202512110200.sql.gz

/cjcbak/old/abc_test_202512120200.sql.gz

执行命令:

find /cjcbak/old -maxdepth 1 -type f -name "abc*sql.gz" -mtime 2

输出如下:

/cjcbak/old/abc_test_202512100200.sql.gz

查看文件时间:

mysql@cjc-db-01:/cjcbak/old$ls -lrth abc_test_202512100200.sql.gz-rw-r----- 1 mysql mysql 257G Dec 10 09:49 abc_test_202512100200.sql.gz
mysql@cjc-db-01:/cjcbak/old$stat abc_test_202512100200.sql.gz

输出如下:

File: ‘abc_test_202512100200.sql.gz’

Size: 275082273583    Blocks: 539740288  IO Block: 1048576 regular file

Device: 28h/40d Inode: 1851416     Links: 1

Access: (0640/-rw-r—–)  Uid: (  888/   mysql)   Gid: (  888/   mysql)

Access: 2025-12-10 02:00:01.168625255 +0800

Modify: 2025-12-10 09:49:23.036421457 +0800

Change: 2025-12-10 17:48:02.563083098 +0800

Birth: –

场景4:按权限查找

执行命令:

find /cjcdata/dbtmpfile/20251212 -maxdepth 1 -type f -perm 0777 -exec ls -lrth {} \;

输出如下:

-rwxrwxrwx 1 mysql mysql 0 Dec 12 15:07 /cjcdata/dbtmpfile/20251212/b.log

场景5:按用户/用户组查找

执行命令:

find /cjcdata/dbtmpfile/20251212 -maxdepth 1 -type f -user mysql -exec ls -lrth {} \;-rw-r--r-- 1 mysql mysql 0 Dec 12 15:07 /cjcdata/dbtmpfile/20251212/a.log-rw-r--r-- 1 mysql mysql 0 Dec 12 15:07 /cjcdata/dbtmpfile/20251212/c.log-rwxrwxrwx 1 mysql mysql 0 Dec 12 15:07 /cjcdata/dbtmpfile/20251212/b.log
find /cjcdata/dbtmpfile/20251212 -maxdepth 1 -type f -group mysql -exec ls -lrth {} \;-rw-r--r-- 1 mysql mysql 0 Dec 12 15:07 /cjcdata/dbtmpfile/20251212/a.log-rw-r--r-- 1 mysql mysql 0 Dec 12 15:07 /cjcdata/dbtmpfile/20251212/c.log-rwxrwxrwx 1 mysql mysql 0 Dec 12 15:07 /cjcdata/dbtmpfile/20251212/b.log

场景6:按文件大小查找

创建测试文件:

dd if=/dev/zero of=/cjcdata/dbtmpfile/20251212/01.log bs=9M count=1 oflag=directdd if=/dev/zero of=/cjcdata/dbtmpfile/20251212/02.log bs=10M count=1 oflag=directdd if=/dev/zero of=/cjcdata/dbtmpfile/20251212/03.log bs=11M count=1 oflag=direct

执行命令:

find /cjcdata/dbtmpfile/20251212 -maxdepth 1 -type f -size -10M -exec ls -lrth {} \;-rw-r--r-- 1 mysql mysql 9.0M Dec 12 15:17 /cjcdata/dbtmpfile/20251212/01.log

04

TOP命令

场景1:按CPU使用率倒序排序(按P)

top – 15:32:25 up 714 days,  1:19,  1 user,  load average: 0.00, 0.02, 0.00

Tasks: 239 total,   1 running, 237 sleeping,   0 stopped,   1 zombie

%Cpu(s):  0.2 us,  0.1 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

MiB Mem :  15209.4 total,    867.9 free,   3877.8 used,  10463.7 buff/cache

MiB Swap:   2048.0 total,    239.7 free,   1808.3 used.   4915.9 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND

15240 root      20   0   79820  36796   2192 S   1.0   0.2   1350:50 pmdaproc

7499 mysql     20   0 4201460 464856  17536 S   0.7   3.0 167:20.89 mysqld

1207 root      20   0  264424  20476  19824 S   0.3   0.1   1046:42 sssd_nss

10951 pcp       20   0   60004  32268   6116 S   0.3   0.2   0:17.17 pmlogger

场景2:按内存使用率倒序排序(按M)

top – 14:07:12 up 713 days, 23:54,  1 user,  load average: 0.00, 0.00, 0.00

Tasks: 240 total,   1 running, 238 sleeping,   0 stopped,   1 zombie

%Cpu(s):  0.2 us,  0.4 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

MiB Mem : 67.7/15209.4  [                                                                                                 ]

MiB Swap: 88.3/2048.0   [                                                                                                 ]

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND

2810 oracle    20   0 4941384   2.5g   2.4g S   0.0  16.5   8:21.78 oracle

2808 oracle    20   0 4920196   1.4g   1.4g S   0.0   9.5   4:25.06 oracle

2816 oracle    20   0 4926868   1.1g   1.1g S   0.0   7.1   9:07.86 oracle

8176 elastic   20   0 7263236 927376   9656 S   0.0   6.0 404:48.62 java

2860 oracle    20   0 4924888 885024 880692 S   0.0   5.7  22:41.41 oracle

2820 oracle    20   0 4947624 572520 569128 S   0.0   3.7  35:20.25 oracle

7499 mysql     20   0 4201460 464856  17536 S   0.0   3.0 167:13.30 mysqld

4246 dmdba     20   0 9525980 436336  23160 S   0.0   2.8  83:52.81 dmserver

场景3:按TIME倒序排序(按T:)

top – 14:12:23 up 713 days, 23:59,  1 user,  load average: 0.00, 0.02, 0.00

Tasks: 243 total,   1 running, 241 sleeping,   0 stopped,   1 zombie

%Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.1 hi,  0.1 si,  0.0 st

MiB Mem :  15209.4 total,    857.7 free,   3875.9 used,  10475.8 buff/cache

MiB Swap:   2048.0 total,    239.4 free,   1808.6 used.   4917.6 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND

2129 root      20   0       0      0      0 Z   0.0   0.0   1417:59 pmdaproc

15240 root      20   0   79820  36796   2192 S   1.3   0.2   1350:35 pmdaproc

1207 root      20   0  264424  20476  19824 S   0.4   0.1   1046:37 sssd_nss

1216 root      20   0  686792   1948   1180 S   0.0   0.0 535:13.88 vm-agent

8176 elastic   20   0 7263236 927376   9656 S   0.0   6.0 404:49.15 java

1214 root      20   0 3782568  30692   5912 S   0.0   0.2 315:58.24 java

场景4:显示完整命令(按c)

top – 14:08:44 up 713 days, 23:55,  1 user,  load average: 0.09, 0.03, 0.01

Tasks: 240 total,   1 running, 238 sleeping,   0 stopped,   1 zombie

%Cpu(s):  0.2 us,  0.2 sy,  0.0 ni, 99.4 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st

MiB Mem :  15209.4 total,    864.5 free,   3872.9 used,  10471.9 buff/cache

MiB Swap:   2048.0 total,    239.4 free,   1808.6 used.   4920.7 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND

2810 oracle    20   0 4941384   2.5g   2.4g S   0.0  16.5   8:21.78 ora_dbw0_cjc

2808 oracle    20   0 4920196   1.4g   1.4g S   0.0   9.5   4:25.06 ora_mman_cjc

2816 oracle    20   0 4926868   1.1g   1.1g S   0.0   7.1   9:07.86 ora_smon_cjc

8176 elastic   20   0 7263236 927376   9656 S   0.0   6.0 404:48.78 /elastic/abc/jdk/bin/java -Des.networkaddress.cache+

2860 oracle    20   0 4924888 885024 880692 S   0.0   5.7  22:41.42 ora_cjq0_cjc

2820 oracle    20   0 4947624 572520 569128 S   0.0   3.7  35:20.26 ora_mmon_cjc

场景5:修改刷新频率(-d参数)

默认3秒,修改为1秒

方法1:

top -d 1

方法2:

top 进入后,输入d,修改刷新频率

Change delay from 3.0 to 1

场景6:只监控1个进程(-p参数)

top -p 18520

top – 14:23:54 up 1085 days, 22:32,  3 users,  load average: 0.00, 0.03, 0.05

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

%Cpu(s):  1.7 us,  0.2 sy,  0.0 ni, 98.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :  7386664 total,   875720 free,  5280072 used,  1230872 buff/cache

KiB Swap:  8388604 total,  7110908 free,  1277696 used. 507300 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

18520 mysql     20   0 4153768   2.2g  14084 S   0.0 31.0 1441:10 mysqld

场景7:监控指定进程的线程(-H -p参数)

MySQL数据库是单进程多线程架构,mysqld进程对应PID是18520

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

18520 mysql     20   0 4153768   2.2g  14084 S   0.3 31.0   1441:08 mysqld

查看PID 18520对应的线程:

top -H -p 18520

top – 14:16:29 up 1085 days, 22:24,  3 users,  load average: 0.04, 0.05, 0.05

Threads: 153 total,   0 running, 153 sleeping,   0 stopped,   0 zombie

%Cpu(s):  1.7 us,  0.2 sy,  0.0 ni, 98.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :  7386664 total,   878200 free,  5278168 used,  1230296 buff/cache

KiB Swap:  8388604 total,  7110908 free,  1277696 used.   509496 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND

18535 mysql     20   0 4153768   2.2g  14084 S  0.3 31.0   1:08.52 ib_io_rd-3

18558 mysql     20   0 4153768   2.2g  14084 S  0.3 31.0  51:04.07 ib_log_files_g

18520 mysql     20   0 4153768   2.2g  14084 S  0.0 31.0   0:01.85 mysqld

18532 mysql     20   0 4153768   2.2g  14084 S  0.0 31.0   1:02.89 ib_io_ibuf

18533 mysql     20   0 4153768   2.2g  14084 S  0.0 31.0   1:09.75 ib_io_rd-1

18534 mysql     20   0 4153768   2.2g  14084 S  0.0 31.0   1:10.68 ib_io_rd-2

18536 mysql     20   0 4153768   2.2g  14084 S  0.0 31.0   1:07.68 ib_io_rd-4

18537 mysql     20   0 4153768   2.2g  14084 S  0.0 31.0   1:08.55 ib_io_rd-5

05

itop命令

监控磁盘活动

执行命令:

iotop

输出如下:

Total DISK READ :       0.00 B/s | Total DISK WRITE :      15.48 K/s

Actual DISK READ:       0.00 B/s | Actual DISK WRITE:      15.48 K/s

TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND

2814 be/4 oracle      0.00 B/s   15.48 K/s  0.00 %  0.08 % ora_ckpt_cjc

1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd –switched-root –system –deserialize 18

2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]

3 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_gp]

4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_par_gp]

交互命令

r:改变排序顺序

a:显示累积使用量

06

查看使用swap高的进程

执行命令:

for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr |head -10

输出如下:

8176 685.18M

27046 365.555M

7499 155.867M

2810 150.445M

2824 146.812M

2818 146.797M

2820 146.43M

2880 146.246M

2812 146.211M

2796 146.18M

查看对应进程信息

ps -ef|grep 8176

elastic   8176     1  0 Jul08 ?        06:42:40 /elastic/abc/jdk/bin/java -Des.networkaddress…

elastic   8204  8176  0 Jul08 ?        00:00:00 /elastic/abc/modules/…

文章作者丨陈举超


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:EBCloud EBCloud《Linux操作系统运维常用命令》

评论:0   参与:  0