栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux系统管理

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux系统管理

  • 环境
    • 虚拟机:VMware-10.0.7 build-2844087
    • Linux系统:CentOS 6.8
    • 远程工具:Xshell 6 (Build 0197)

Linux系统管理_Shell编程_04_Shell基础_管道符“|” 一、本篇摘要
  • 本票主要内容
    • 行提取命令 grep
    • find命令跟grep命令的区别
    • 管道符“|”
二、行提取命令 grep
  • grep
    • 格式:[root@localhost ~]# grep [选项] "搜索内容" 文件名
    • 选项:
      • -A:列出符合条件的行,并列出后续的n行
      • -B:列出符合条件的行,并列出前面的n行
      • -c:统计找到的符合条件的字符串的次数
      • -i:忽略大小写
      • -n:输出行号
      • -v:反向查找
      • -color=auto:搜索出的关键字用颜色显示
    • 举例
  • 举例1:查询登录用户并显示行号

[root@localhost sh]# grep -n "/bin/bash" /etc/passwd        <--方法1
1:root:x:0:0:root:/root:/bin/bash
30:user1:x:500:500::/home/user1:/bin/bash
31:user2:x:501:501::/home/user2:/bin/bash
32:user3:x:502:502::/home/user3:/bin/bash

[root@localhost sh]# cat /etc/passwd | grep -n "/bin/bash"  <--方法2
1:root:x:0:0:root:/root:/bin/bash
30:user1:x:500:500::/home/user1:/bin/bash
31:user2:x:501:501::/home/user2:/bin/bash
32:user3:x:502:502::/home/user3:/bin/bash
  • 举例2:查询伪用户(即不能登录的用户)
[root@localhost sh]# grep -n -v "/bin/bash" /etc/passwd        <--方法1
...
[root@localhost sh]# cat /etc/passwd | grep -n -v "/bin/bash"  <--方法2
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
11:operator:x:11:0:operator:/root:/sbin/nologin
12:games:x:12:100:games:/usr/games:/sbin/nologin
13:gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
14:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
15:nobody:x:99:99:Nobody:/:/sbin/nologin
16:dbus:x:81:81:System message bus:/:/sbin/nologin
17:rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
18:vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
19:abrt:x:173:173::/etc/abrt:/sbin/nologin
20:rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
21:nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
22:haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
23:ntp:x:38:38::/etc/ntp:/sbin/nologin
24:saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
25:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
26:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
27:tcpdump:x:72:72::/:/sbin/nologin
28:oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
29:apache:x:48:48:Apache:/var/www:/sbin/nologin
  • 举例3:查找包含“root”的行,并列出后面的3行 
[root@localhost sh]# grep -A3 "root" /etc/passwd        <--方法1
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

[root@localhost sh]# cat /etc/passwd | grep -A3 "root"  <--方法2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

三、grep 命令与 find 命令的区别
  • 区别
    • find:针对的是文件
      • 在系统中搜索符合条件的文件名
      • 搜索文件名完全匹配
      • 模糊查询使用通配符,也支持正则(不建议使用)
    • grep:针对的是字符串
      • 在文件中搜索符合条件的字符串
      • 搜索字符串包含匹配
      • 模糊查询使用正则匹配
  • 举例1:创建两个文件test、test1,使用find搜索文件名test查看返回值
[root@localhost ~]# touch test test1                <--创建两个文件test、test1
[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  sh  test  test1
[root@localhost ~]# find . -name "test"             <--find查找test文件
./test
                                         <--find是完全匹配,只能查到test文件本身
  • 举例2:将字符串test、testfile分别写入test文件,使用grep查询test字符串,查看返回值
[root@localhost ~]# echo "test" > test        <--写入数据
[root@localhost ~]# echo "testfile" >> test   <--追加数据
[root@localhost ~]# cat test                  <--查看数据
test
testfile
[root@localhost ~]# grep "test" ./test        <--查询test字符串
test
testfile                                      <--grep查询字符串,只要数据行包括就会列出
    
四、 管道符“|”
  •  管道符“|”
    • 理解:第一条命令正确输出是第二条命令处理和操作的对象
  • 举例:
  • 举例1:分页显示 /etc/ 目录下所有内容
[root@localhost ~]# ls -l /etc/ | more
总用量 1828
drwxr-xr-x.  3 root root   4096 4月  23 09:13 abrt
drwxr-xr-x.  4 root root   4096 4月  23 09:17 acpi
-rw-r--r--.  1 root root     46 5月  21 06:03 adjtime
-rw-r--r--.  1 root root   1512 1月  12 2010 aliases
-rw-r--r--.  1 root root  12288 4月  23 09:25 aliases.db
drwxr-xr-x.  2 root root   4096 4月  23 09:18 alsa
drwxr-xr-x.  2 root root   4096 4月  23 09:18 alternatives
-rw-------.  1 root root    541 11月 10 2015 anacrontab
-rw-r--r--.  1 root root    148 1月  12 2016 asound.conf
-rw-r--r--.  1 root root      1 2月  20 2015 at.deny
drwxr-x---.  3 root root   4096 4月  23 09:18 audisp
drwxr-x---.  3 root root   4096 4月  23 09:18 audit
-rw-r--r--.  1 root root  13034 5月  11 2016 autofs.conf
-rw-------.  1 root root    232 5月  11 2016 autofs_ldap_auth.conf
-rw-r--r--.  1 root root    667 5月  11 2016 auto.master
-rw-r--r--.  1 root root    524 5月  11 2016 auto.misc
-rwxr-xr-x.  1 root root   1260 5月  11 2016 auto.net
-rwxr-xr-x.  1 root root    687 5月  11 2016 auto.smb
drwxr-xr-x.  2 root root   4096 4月  23 09:19 bash_completion.d
-rw-r--r--.  1 root root   2681 10月  2 2013 bashrc
drwxr-xr-x.  2 root root   4096 5月  11 2016 blkid
drwxr-xr-x.  2 root root   4096 4月  23 09:09 bonobo-activation
-rw-r--r--.  1 root root   1780 10月 16 2009 cas.conf
-rw-r--r--.  1 root root     27 5月  19 2016 centos-release
--MORE--
  • 举例2:查看本地所有连接,提取包含已建立连接(ESTABLISHED)的行
[root@localhost ~]# netstat -an | grep "ESTABLISHED"
tcp        0     64 192.168.234.200:22          192.168.234.1:49632         ESTABLISHED 
  •  举例3:统计网络连接数量
[root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc -l
1                                                              
  • 举例4:查找所有包含httpd的安装包
[root@localhost ~]# rpm -qa | grep httpd
httpd-tools-2.2.15-53.el6.centos.x86_64
httpd-2.2.15-53.el6.centos.x86_64
httpd-devel-2.2.15-53.el6.centos.x86_64
五、小结
  •  知识点总结
    • grep
    • grep 和 find 区别
    • 管道符 “|”

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/963413.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号