linux 常用命令
查看进程物理内存占用
smem 工具官方地址:https://www.selenic.com/smem/
解决 ls 目录文件太多卡住
默认 ls
命令将进行文件排序,在内存中存储目录中所有的文件,这将卡住 ls
命令。而 ls -1 -f
命令将不进行排序直接列出文件。
批量查看文件
1
| $ find . -type f -print -exec cat {} \; | grep -v '.git'
|
进程、线程监控
查看某进程的所有线程
top -H -p
top -H -p 2464
top -H -c -p 2464
ps -T -p
ps -T -p 2464
ps -Tf -p 2464
获取 hostname 中的英文字母
1
| hostname -s | grep -Eo "[[:alpha:]]*"
|
grep
1 2 3 4 5
| grep -rl "phonenumber" --exclude-dir={ruoyi-ui,ruoyi-common} ./
grep -rl --exclude="*.js" "phonenumber" ./
|
ls
1 2 3 4 5 6 7 8 9
| $ ls -l /etc/yum.repos.d/ -rw-r--r--. 1 root root 1664 4月 29 2018 CentOS-Base.repo -rw-r--r--. 1 root root 1309 4月 29 2018 CentOS-CR.repo -rw-r--r--. 1 root root 649 4月 29 2018 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 314 4月 29 2018 CentOS-fasttrack.repo -rw-r--r--. 1 root root 630 4月 29 2018 CentOS-Media.repo -rw-r--r--. 1 root root 1331 4月 29 2018 CentOS-Sources.repo -rw-r--r--. 1 root root 4768 4月 29 2018 CentOS-Vault.repo
|
只显示文件名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $ ls -1 /etc/yum.repos.d/ CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo $ ls -l -F nginx client_body_temp/ conf/ fastcgi_temp/ html/ logs/ lua/ proxy_temp/ sbin/ scgi_temp/ uwsgi_temp/
|
-1
这里是数字1,不是字母l。作用是单列输出。
-F
根据文件、目录等信息在文件名或目录名最后给予附加数据结构
- `*` 代表可执行文件
- `/` 代表目录
- `=` 代表socket文件
- `|` 代表FIFO文件
- `@`代表连接文件
仅列出文件夹中的文件名
当要列出的文件夹包含既有目录还有文件时,可以通过以下命令仅列出其中的文件。
1 2 3 4
| $ ls -1 -F | grep -v [/$]
$ ls -l | grep ^[^d] | grep -v "总" | awk '{print $NF}'
|
释义:
仅列出文件夹中的目录
1 2 3 4
| $ ls -F | grep [/$]
$ ls -d */ | sed 's/\///g'
|
watch
定期执行命令或程序,并实时将结果显示在屏幕上输出。
-b
-创建蜂鸣声,如果命令的退出是非零。
-c
-解释ANSI颜色序列。
-d
-突出在命令输出的变化。
-n
-命令执行的时间间隔,默认 1 秒执行一次。
-t
-标题显示正在执行的命令和当前时间的信息。
示例:查看拷贝数据的进度
1
| cp Xcode_11.xip /home/codezm/ & watch -n 0.1 du -s /home/codezm/Xcode_11.xip
|
Top
1 2 3 4 5 6 7 8
| $ top -bn 1 -i -c top - 16:59:46 up 16 days, 20:09, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 94 total, 2 running, 92 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.4 us, 0.0 sy, 0.0 ni, 35.7 id, 61.9 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 818.8 total, 120.2 free, 129.6 used, 569.0 buff/cache MiB Swap: 2048.0 total, 1941.7 free, 106.2 used. 552.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
|
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu
vmstat
1 2 3 4 5 6
| $ vmstat 2 3 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 108032 188512 1112 500408 1 1 4 4 16 26 0 0 100 0 0 0 0 108032 188452 1112 500424 0 0 0 0 44 83 0 0 100 0 0 0 0 108032 188452 1112 500424 0 0 0 0 47 84 0 0 100 0 0
|
每间隔 2 秒采集一次,总共采集 3 次。
sar
前提:需要先安装 sysstat
包。
1 2 3 4 5 6 7
| $ sar -P 0 -u 1 2 Linux 4.18.0-193.14.2.el8_2.x86_64 (codezm.com) 2021年01月08日 _x86_64_ (1 CPU)
17时09分08秒 CPU %user %nice %system %iowait %steal %idle 17时09分09秒 0 0.00 0.00 0.00 0.00 0.00 100.00 17时09分10秒 0 0.00 0.00 0.00 0.00 0.00 100.00 平均时间: 0 0.00 0.00 0.00 0.00 0.00 100.00
|
CPU使用率:监控第 0 颗CPU,每间隔 1 秒采集一次,总共采集 2 次。
1 2 3 4 5 6 7
| $ sar -q 1 2 Linux 4.18.0-193.14.2.el8_2.x86_64 (codezm.com) 2021年01月08日 _x86_64_ (1 CPU)
17时09分24秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked 17时09分25秒 0 112 0.00 0.04 0.02 0 17时09分26秒 0 112 0.00 0.04 0.02 0 平均时间: 0 112 0.00 0.04 0.02 0
|
进程队列长度和平均负载状态
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
1 2 3 4 5 6 7
| $ sar -w 1 2 Linux 4.18.0-193.14.2.el8_2.x86_64 (codezm.com) 2021年01月08日 _x86_64_ (1 CPU)
17时10分57秒 proc/s cswch/s 17时10分58秒 0.00 87.00 17时10分59秒 0.00 88.00 平均时间: 0.00 87.50
|
进程创建的平均值和上下文切换的次数
参考