0
点赞
收藏
分享

微信扫一扫

『Linux笔记』grep文本搜索[ps aux和ps -ef、ssh_config和sshd_config]


grep文本搜索[ps aux和ps -ef区别、ssh_config和sshd_config区别]

文章目录

  • ​​一. 基本使用​​
  • ​​二. 正则表达式的基本使用​​
  • ​​三. ps aux和ps -ef区别​​
  • ​​3.1. ps aux 和 ps –aux​​
  • ​​3.2. ps aux 和ps -ef​​
  • ​​四. ssh_config和sshd_config区别​​

一. 基本使用

  • Linux grep 命令用于查找文件里符合条件的字符串。 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
  • ​grep "搜索的字符" 文件名​

-i 忽略大小写,不区分大小写。
-c 统计搜索到字符出现的次数。
-n 输出行号。
-v 反向匹配,就是不出现要搜索字符的所有行。

  • Linux grep命令:​​https://www.runoob.com/linux/linux-comm-grep.html​​



『Linux笔记』grep文本搜索[ps aux和ps -ef、ssh_config和sshd_config]_linux

(base) -bash-4.2# grep 222 lab.log 
[07/Nov/2021 11:34:09] "POST /api/projects/45/import?commit_to_project=false HTTP/1.1" 201 222
[10/Nov/2021 11:23:05] "GET /api/dm/views/108/tasks?page=12&page_size=30&interaction=scroll&project=45 HTTP/1.1" 200 42223

(base) -bash-4.2# grep "222" lab.log
[07/Nov/2021 11:34:09] "POST /api/projects/45/import?commit_to_project=false HTTP/1.1" 201 222
[10/Nov/2021 11:23:05] "GET /api/dm/views/108/tasks?page=12&page_size=30&interaction=scroll&project=45 HTTP/1.1" 200 42223

(base) -bash-4.2# grep -c "222" lab.log
2

(base) -bash-4.2# grep -n "222" lab.log
474:[07/Nov/2021 11:34:09] "POST /api/projects/45/import?commit_to_project=false HTTP/1.1" 201 222
3015:[10/Nov/2021 11:23:05] "GET /api/dm/views/108/tasks?page=12&page_size=30&interaction=scroll&project=45 HTTP/1.1" 200 42223



『Linux笔记』grep文本搜索[ps aux和ps -ef、ssh_config和sshd_config]_linux

二. 正则表达式的基本使用

  • 基础正则表达式

* 符号 匹配0次或者多次
. 符号 匹配除了换行符之外的所有符号
\{n, m|} 指定匹配次数

  • 具体的正则规则可以参考(基本一致):​​Python正则表达式详细介绍!​​

[deploy@node1 kaifang]$ docker ps | grep '[0-9]\{6,9\}'
c6a9ae371592 1ab13f928dc8 "/tini -- /usr/local…" 9 months ago Up 3 weeks 9200/tcp, 9300/tcp docker_elasticsearch_1
f0485345bed7 openjdk:8-debain-zh "java -Xms512m -Xmx5…" 9 months ago Up 3 weeks 8885/tcp mingjing_uac_1
3db2069448d9 nginx "/docker-entrypoint.…" 9 months ago Up 3 weeks 80/tcp, 0.0.0.0:10888->10888/tcp, 0.0.0.0:9902->9901/tcp mingjing_frontend_1
bc7505673ba5 mysql:5.7 "docker-entrypoint.s…" 9 months ago Up 3 weeks 33060/tcp, 0.0.0.0:13306->3306/tcp mingjing_mysql_1
2ab40f606439 elasticsearch:6.8.6 "/usr/local/bin/dock…" 13 months ago Up 3 weeks 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp es
[deploy@node1 kaifang]$ docker ps | grep "[0-9]\{6,9\}"
c6a9ae371592 1ab13f928dc8 "/tini -- /usr/local…" 9 months ago Up 3 weeks 9200/tcp, 9300/tcp docker_elasticsearch_1
f0485345bed7 openjdk:8-debain-zh "java -Xms512m -Xmx5…" 9 months ago Up 3 weeks 8885/tcp mingjing_uac_1
3db2069448d9 nginx "/docker-entrypoint.…" 9 months ago Up 3 weeks 80/tcp, 0.0.0.0:10888->10888/tcp, 0.0.0.0:9902->9901/tcp mingjing_frontend_1
bc7505673ba5 mysql:5.7 "docker-entrypoint.s…" 9 months ago Up 3 weeks 33060/tcp, 0.0.0.0:13306->3306/tcp mingjing_mysql_1
2ab40f606439 elasticsearch:6.8.6 "/usr/local/bin/dock…" 13 months ago Up 3 weeks 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp es

[deploy@node1 kaifang]$ docker ps | grep '[0-9]*'

  • 基础正则表达式2

^ 符号 表示以什么开头,匹配字符串开头 用在前面
$ 符号 表示以什么结尾,匹配字符串结尾 用在后面
^$ 符号 匹配空行

[deploy@node1 kaifang]$ docker images | grep '^redi'
redis latest bd571e6529f3 14 months ago 104MB

[deploy@node1 kaifang]$ grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash

(base) -bash-4.2# grep '3892$' lab.log
[07/Nov/2021 10:55:11] "GET /static/css/uikit.e49a7a43adbd.css HTTP/1.1" 200 3892
[08/Nov/2021 06:45:06] "GET /static/css/uikit.e49a7a43adbd.css HTTP/1.1" 200 3892

(base) -bash-4.2# grep -c '^$' lab.log
8
(base) -bash-4.2# grep -n '^$' lab.log
81:
84:
90:
92:
567:
1605:
1607:
3027:

[deploy@node1 kaifang]$ ls | grep -c "" # 统计当前目录下的文件数量。
6

三. ps aux和ps -ef区别

3.1. ps aux 和 ps –aux

  • 注意​​"ps -aux"​​​不同于​​"ps aux"​​​。POSIX和UNIX的标准要求​​"ps aux"​​​打印用户名为​​"x"​​​的用户的所有进程,以及打印所有将由​​-a​​​选项选择的过程。如果用户名为​​"x"​​​不存在,​​ps​​​的将会解释为​​"ps aux"​​,而且会打印一个警告。这种行为是为了帮助转换旧脚本和习惯。它是脆弱的,即将更改,因此不应依赖。
  • 如果你运行​​ps -aux >/dev/null​​​,那么你就会得到下面这行警告信息:​​Warning: bad ps syntax, perhaps a bogus '-'? See​
  • 综上: 使用时两者之间直接选择ps aux

3.2. ps aux 和ps -ef

  • 两者的输出结果差别不大,但展示风格不同。aux是BSD风格,-ef是System V风格。 这是次要的区别,一个影响使用的区别是aux会截断command列,而-ef不会。当结合grep时这种区别会影响到结果。
  • 综上:以上三个命令推荐使用:ps –ef
  • 原文链接:​​http://zoroeye.iteye.com/blog/2165233​​



『Linux笔记』grep文本搜索[ps aux和ps -ef、ssh_config和sshd_config]_linux_03

  • ps -ef 各列含义如下:

UID:用户ID,输出的是用户名
PID:进程的ID
PPID:父进程ID
C:进程占用CPU的百分比
STIME:进程启动到现在的时间
TTY:进程在哪个终端上运行。如果与终端无关,则显示?;如果是pts/0等,表示由网络连接主机进程
CMD:命令的名称和参数

  • ps aux 各列含义如下:

USER:用户名
PID:进程ID
%CPU:进程占用的CPU百分比
%MEM:进程占用内存的百分比
VSZ:进程使用的虚拟内存量(KB)
RSS:进程占用的固定内存量(KB)(驻留中页的数量)
STAT:进程的状态,常见的状态字符有
D:无法中断的休眠状态(通常IO的进程)
R:正在运行中
S:处于休眠状态
T:停止或被追踪
W:进入内存交换
X:死掉的进程
Z:僵尸进程
<:优先级高的进程
N:优先级较低的进程
L:有些页被锁进内存
s:进程的领导者,代表在它之下有子进程
l:多线程,克隆线程
+:位于后台的进程组

四. ssh_config和sshd_config区别

  • 不多的linux教学推荐:​​https://www.ccstudio.com.cn/linux/part1/filemg/directory.html​​
  • ​/etc/ssh/​​目录下的文件
  • ssh_config​sshd_config​都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件后者则是针对服务端的配置文件
  • ​vi /etc/ssh/sshd_config​​可以看到如下的端口号,针对服务端的配置。



『Linux笔记』grep文本搜索[ps aux和ps -ef、ssh_config和sshd_config]_ps aux_04


『Linux笔记』grep文本搜索[ps aux和ps -ef、ssh_config和sshd_config]_ps_05


『Linux笔记』grep文本搜索[ps aux和ps -ef、ssh_config和sshd_config]_ps aux_06


举报

相关推荐

0 条评论