linux常用命令记录(一)
文件搜索命令
grep在文件中查找字符并输出
grep 字符或字符串 文件目录 grep pub /teach/1.txt -c 字符出现总行数 grep public /teach/1.txt -n 行号 grep public /teach/1.txt -i 不区分大小写 grep -5 'parttern' inputfile //打印匹配行的前后5行 grep -C 5 'parttern' inputfile //打印匹配行的前后5行 grep -A 5 'parttern' inputfile //打印匹配行的后5行 grep -B 5 'parttern' inputfile //打印匹配行的前5行 grep public /teach/1.txt -v 输出除该字段以外的所有字符
Top命令
VIRT:virtual memory usage 虚拟内存 1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 RES:resident memory usage 常驻内存 1、进程当前使用的内存大小,但不包括swap out 2、包含其他进程的共享 3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反 4、关于库占用内存的情况,它只统计加载的库文件所占内存大小 SHR:shared memory 共享内存 1、除了自身进程的共享内存,也包括其他进程的共享内存 2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小 3、计算某个进程所占的物理内存大小公式:RES – SHR 4、swap out后,它将会降下来 DATA 1、数据占用的内存。如果top没有显示,按f键可以显示出来。 2、真正的该程序要求的数据空间,是真正在运行中要使用的。
有些输出 VSS 等于VIRT
有些输出 RSS 等于RES
top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。 <空格>:立刻刷新。 P:根据CPU使用大小进行排序。 T:根据时间、累计时间排序。 q:退出top命令。
e: 单位切换 m:切换显示内存信息。 t:切换显示进程和CPU状态信息。 c:切换显示命令名称和完整命令行。 M:根据使用内存大小进行排序。 W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
排序命令
二、排序进程 1、复杂方法 linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|sort -rn -k +3|head linux下获取占用内存资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|sort -rn -k +4|head head 默认获取10行,可以在后面加 -n 控制显示数量,如获取三行 ps aux|head -1;ps aux|sort -rn -k +3|head -3 该命令组合实际上是下面两句命令: ps aux|head -1 主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND) ps aux|sort -rn -k +3|head sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,第三列是 cpu,第四列是内存,再使用head命令获取默认前10行数据。(其中的|表示管道操作)
输出详解
第一行 top - 17:15:55 up 106 days, 6:09, 10 users, load average: 0.41, 0.41, 0.40
【17:18:59]】当前时间
【up 106 days, 6:09 】系统运行时间
【10 users】 当前登录用户数
【load average: 0.41, 0.41, 0.40 】 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
【load average】 如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行 Tasks: 210 total, 1 running, 209 sleeping, 0 stopped, 0 zombie
【Tasks: 210 total】 进程总数
【1 running 】 当前运行进程数
【209 sleeping】 睡眠进程数
【0 stopped】 停止进程数
【0 zombie 】僵尸进程数
第三行 %Cpu(s): 2.1 us, 1.1 sy, 0.0 ni, 96.3 id, 0.0 wa, 0.0 hi, 0.5 si, 0.0 st
【%Cpu(s): 2.1 us】 用户空间占用CPU百分比
【1.1 sy】内核空间占用CPU百分比
【0.0 ni】用户进程空间内改变过优先级的进程占用CPU百分比
【96.3 id,】
ps -ef|grep
https://www.cnblogs.com/freinds/p/8074651.html
查找文件(find)
查找目录
find / -name 'redis' 绝对匹配 模糊匹配加*
jps -ml
Grep
在查询的结果上进行搜索
cat file|grep '搜索名字' ./jstack 1234|grep "java.lang.Thread.State" | sort -nr | uniq -c //搜索指定关键字 并按搜索到的内容排序 然后去重统计
测试网络是否连通
telnet 192.168.21.135 6379
nc -vz -w 3 ip port
根据PID查找程序
pwdx pid
[root@css-test-58984c94ff-8p7v9 debug]# pwdx 1 1: /applogs/css/logs/debug
根据进程查找端口
我们知道, 根据ps -aux | grep xxx就是很快实现进程名和进程号的互查, 所以我们只说进程号pid就行。 如下示例中, 进程pid常驻。 1. 根据进程pid查端口: lsof -i | grep pid 2. 根据端口port查进程(某次面试还考过): lsof -i:port 3. 根据进程pid查端口: netstat -nap | grep pid 4. 根据端口port查进程 netstat -nap | grep port 从形式上看, netstat -nap 更好记忆, 但lsof的用法也要熟练。
查看进程启动时间
ps axo pid,ppid,comm,pmem,lstart | grep 9302
liqiang@ewei-com-open1 ~]$ ps axo pid,ppid,comm,pmem,lstart | grep 9302 9302 9284 java 43.2 Wed May 18 16:38:09 2022
查看当前终端用户
您可以在终端中输入以下命令来检查当前用户是否为root: whoami 如果终端返回的结果是"root",则表示当前用户是root用户;如果返回的结果是其他用户名,则表示当前用户不是root用户。
➜ ~ whoami
liqiang
查看外网ip
curl cip.cc IP : 222.214.90.33 地址 : 中国 四川 泸州 运营商 : 电信 数据二 : 四川省泸州市 | 电信 数据三 : 中国四川省泸州市 | 电信 URL : http://www.cip.cc/222.214.90.
base64转换
base64 -w 9999 -i xxx-license
查看dns解析
➜ ~ nslookup www.baidu.com Server: fe80::d635:38ff:feb7:385a%15 Address: fe80::d635:38ff:feb7:385a%15#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 183.2.172.42 Name: www.a.shifen.com Address: 183.2.172.185
检测工具比如换了dns解析地址的时候,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!