概述

管道符:管道符使用"丨"代表。如"命令1丨命令2"。表示命令 1 的正确输出作为命令 2 的操作对象。命令 1 必须有正确输出,而命令 2 必须可以处理命令 1 的输出结果。

grep命令:在文件中提取和匹配符合条件的字符串行。

管道符

1. 在使用"||"命令査看/etc/ 目录时显示的内容非常多,只能看到最后的内容,而不能看到前面输出的内容,此时可以用管道符将输出的结果作为more的操作对象,让more 命令分屏显示文件内容,命令如下:

[root@localhost ~]# ll -a /etc/|more

2. 查询一下本地所有网络连接,提取包含 ESTABLISHED(已建立连接)的行,命令如下:

[root@localhost ~]# netstat -an | grep "ESTABLISHED"

3. 查询具体的网络连接数量,再使用wc命令统计行数

[root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc-l

grep命令

 grep 的作用是在文件中提取和匹配符合条件的字符串行。命令格式如下:
[root@localhost ~]# grep [选项] "搜索内容" 文件名

选项:

  • -A 数字:列出符合条件的行,并列出后续的 n 行;
  • -B 数字:列出符合条件的行,并列出前面的 n 行;
  • -c:统计找到的符合条件的字符串的次数;
  • -i:忽略大小写;
  • -n:输出行号;
  • -v:反向査找;
  • --color=auto:搜索出的关键字用颜色显示;

查找用户信息文件/etc/passwd中有多少可以登录的用户

[root@localhost ~]# grep "/bin/bash" /etc/passwd

grep 是行提取命令,所以只要一行数据中包含"搜索内容",就会列出整行的数据。在这个例子中,会在 /etc/passwd 文件中列出所有包含"/bin/bash"的行,而我们已知只有可登录用户的 Shell 才是"/bin/bash",而伪用户的 Shell 是"/sbin/nologin",所以这条命令会列出当前系统中所有可以登录的用户。

列出符合条件的行,并列出后续的 n 行

查找包含"root"的行,并列出后续的3行

[root@localhost ~]# grep -A  "root" /etc/passwd

列出符合条件的行,并输出行号

查找可以登录的用户,并显示行号

[root@localhost ~]# grep -n "/bin/bash" /etc/passwd

列出符合条件的行,再反向査找

查找不包含"/bin/bash"的行,其实就是列出所有的伪用户

[root@localhost ~]# grep -v "/bin/bash" /etc/passwd

grep和find命令的区别

find命令

find 命令用于在系统中搜索符合条件的文件名,如果需要模糊査询,则使用通配符进行匹配。find 命令也使用 -regex 选项通过正则表达式规则进行匹配查找,而正则表达式是模糊匹配。

grep命令

grep 命令用于在文件中搜索符合条件的字符串,如果需要模糊査询,则使用正则表达式进行匹配。搜索时字符串是包含匹配的。grep 命令和 find 命令不一样,使用 grep 命令在文件中査找符合条件的字符串时,只要搜索的内容包含在数据行中,就会列出整行内容。

Linux Shell基础 管道符和grep命令的更多相关文章

  1. linux shell编程学习笔记(二) --- grep命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  2. Linux Shell脚本入门--grep命令详解

    grep简介<摘自鸟哥,并加以整理.> grep (global search regular expression(RE) and print out the line,全面搜索正则表达 ...

  3. Linux shell基础(五)sed命令

    一.sed命令 sed是一种强大的流式编辑器 (stream editor for filtering and transforming text),它能够完美的使用正则表达式,逐行处理文本并把结果显 ...

  4. Linux Shell基础(下)

    Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...

  5. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

  6. linux shell 基础 使用日志与心得

    linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现#!/bin/bash是指此脚本使用/bin/bash来解释执行.其中,#!是一个特殊的表示符,其后,跟着解释此脚 ...

  7. Linux shell下30个有趣的命令

    Tips 原文作者:Víctor López Ferrando 原文地址:30 interesting commands for the Linux shell 这些是我收集了多年的Linux she ...

  8. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

  9. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

随机推荐

  1. SecureCRTPortable.exe 如何上传文件

    如果未安装在命令行输入:yum install lrzsz rz     然后上传自己的文件.在解压

  2. Servlet 自动刷新页面

    假设有一个网页,它是显示现场比赛成绩或股票市场状况或货币兑换率.对于所有这些类型的页面,您需要定期刷新网页. Java Servlet 提供了一个机制,使得网页会在给定的时间间隔自动刷新. 刷新网页的 ...

  3. 创建动作-Action:

    在Struts2的行动,唯一的要求是,必须有一个无参数的方法,该方法返回一个字符串或结果的对象,必须是一个POJO.如果不带参数的方法不指定,则默认行为是使用execute()方法. 您也可以选择扩展 ...

  4. 网页或WEB应用或PC端浏览器调用百度地图API

    今天在写微网页中遇见了调用百度地图这个问题:在一个容器中显示地图信息如图(设计图截图) 然后在网上查了接口:http://api.map.baidu.com/,就是这个东东,当然不止这个,还有几个必选 ...

  5. iphone客户端上传图片到服务器

    本文转载至 http://blog.sina.com.cn/s/blog_4c70701801012inq.html       如上采用asihttprequest类中的post方式上传就行.大致思 ...

  6. 二、Android应用的界面编程(二)布局管理器

    一.线性布局所有布局都可以作为容器类使用,因此可以调用多个重载的addView()向布局管理器中添加组件.实际上,我们完全可以用一个布局管理器嵌套到其他布局管理器中---因为布局管理器也继承了View ...

  7. 深入理解line

    什么是行间距? 古时候我们使用印刷机来出来文字.印刷出来的每个字,都位于独立的一个块中. 行间距,即传说中控制两行文字垂直距离的东东.在CSS中,line-height被用来控制行与行之间垂直距离. ...

  8. 最详细的PHP flush()与ob

    buffer ---- flush()buffer是一个内存地址空间,Linux系统默认大小一般为4096(1kb),即一个内存页.主要用于存储速度不同步的设备或者优先级不同的 设备之间传办理数据的区 ...

  9. webService通过response和request对象传输文件

    <code class=" hljs java">package gacl.response.study; 2 3 import java.io.IOException ...

  10. 记录-java执行请求的URL

    package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr ...