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解析地址的时候,

https://boce.aliyun.com/detect/http

posted @ 2019-11-01 14:10  意犹未尽  阅读(189)  评论(0编辑  收藏  举报