grep 命令的基本使用

2023-05-16

环境变量:定义用户的工作环境某个方面的属性
文本文件的查看命令:
cat 连接 能够将后面跟的多个文件的内容,依次显示
cat -n 在显示时出现行号
    -E 显示行结束符
    -v  显示非打印字符不显示制表符tab 要想显示要用-T
 tac 逆显示 即和cat的显示结果相反
 more less
 more 能实现从前向后显示,不能从后向前 比如 # more /etc/passwd      查看哪个文件就在more or less 后加上文件名即可
 less   能从前向后,也能从后向前              # less  /etc/shadow
如果文件很长只想看一部分怎么办?用head/tail命令后跟文件名
 head -数字/head -n 数字 tail和head的用法相同     如# head -2  /etc/passwd  只看文件的前两行 = # head -n 2  /etc/passwd
 tail -f 不退出并一直查看文件内容,可以监控文件内容变化 ctrl+c退出  # tail -2  /etc/passwd = # tail -n 2  /etc/passwd只看文件的后两行
 wc:words counter 单词统计 什么都不加三者都显示
     -l 只显示行数
     -w  只显示单词数      以-w为例  # wc -w /etc/passwd     即passwd 中有多少单词 
     -c   只显示字符数
cut  -d  : 表示以谁为分隔符    默认分隔符
     -d :-f1,7 指定显示第一个和第七个   # cut -d: -f1,7  /etc/passwd   切出即只显示passwd的第一和第七条信息 
     -d' '-f1,7 空白分隔符。。
sort     对文本内容进行排序,不排数字,区分大小写,默认是升序a-z
     -r 逆序排序,不对文件本身内容排序,仅仅是将显示结果显示到屏幕
     -n 以数值大小的方式进行比较排序
     -f 如果排序时不区pa分大小写
     -u 排序后若有重复行则只显示一次,去除重复行
uniq  唯一的,本身不能独立使用,如果两行相同但不是连续出现的,则还是认为不是相同行
     -u 只显示不重复的行
     -d 只显示重复的行,但只显示一次,告诉你这行曾经重复过
     -c 显示这一行重复的次数
tr   SET1 SET2  把1中的替换成2中的字符  # tr 'abc''ABC' < /etc/passwd  或 # cat /etc/passwd | tr "abc" "ABC"
   -d   SET1  把出现的字符1、字符2统统删除   # tr -d  "a" < /etc/passwd   # cat /etc/passwd | tr +d  "a"
   +d  将删掉的字符添加上
   正则表达式:regular expression ,缩写regex。由元字符组合的式子,可以当做用pattern以匹配符合指定特定的字符串
正则表达式分为:1、基本正则表达式 2、扩展正则表达式
下面总结一下元字符的使用方法
 先用nano编辑器编辑一个文本文档redhat.txt
 步骤:# nano redhat.txt
 内容  what is redhat
       redhat
       she has a redhat
       redhat is a hat
       redhat is a redhat
       Redhat is red
       # hfjdgkasljfgjlkfglh
       !fghkajglrkjklj
编辑好按ctrl+o保存 enter 确定 ctrl+x 退出编辑模式
文本查找工具:grep,egrep,fgrep  主要是grep
元字符的使用
^PATTERN  出现在行首,也叫定位符 # grep --color=auto “^redhat” redhat.txt 查找redhat出现在行首的行
PATTERN$ 行尾锚定符               # grep --color=auto “redhat$” redhat.txt
^PATTERN $ 以指定字符串开头结尾且这一行只有这个字符串 # grep --color=auto “^redhat$” redhat.txt 查找以redhat开头结尾且这一行只有redhat这一个单词或字母
\<PATTERN 字符串词首锚定符 若是锚定单词“\<PATTERN "  # grep --color=auto “\<r” redhat.txt 查找以r开头的单词
PATTERN\> 词尾   # grep --color=auto “\<r” redhat.txt  查找以h结尾的单词
.         匹配任意单个字符 如以r开头中间有四个字符以t结尾则表示为”r....t"# grep --color=auto “r...t” redhat.txt  查找以r开头中间有三个字符以t结尾,一个点代表一位
*        匹配此前的字符0到任意次 a*b
.*       匹配任意长度的任意字符 贪婪模式:  默认情况下尽可能匹配符合模式的字符串# grep --color=auto “r.*t” redhat.txt   查找以r开头中间是任意字符以t结尾的字符串
?       匹配此前的字符0次或一次
\{m,n\}   匹配此前字符至少m次至多n次比如# grep --color=auto “r\{0,2\}t” redhat.txt  查找以r开头以t结尾中间至多有两个字符 至多5次\{0,5\}   至少5次\{5,\}  只五次\{5\}
[]   匹配指定范围内的任意单个字符如 # grep --color=auto “[a-s]” redhat.txt 查找文件中a-s的字母 只要含有a-s范围内的字母都显示
[^]   匹配指定范围外的任意单个字符 如# grep --color=auto “[^a-c]” redhat.txt  查找文件中不是a-c范围内的字母
[:space:] 
比如以r 开头t结尾的任意字母至少出现3次至多出现10次#  grep --color=auto "r[[:alpha:]\{3,10}"
\(\)  字符分组或引用

grep       支持正则表达式,根据指定的模式从而找到一个或多个文本文档,符合或匹配制定模式的行的显示出来
     --color=auto  显示要显示字符的颜色   # grep --color=auto “redhat” redhat.txt  查找redhat.txt中有redhat的 行 --color=auto使显示被找字的颜色
     -v  表示取反即显示不匹配的   # grep -v --color=auto “[cC]” redhat.txt   与-i的结果相反,即-i没有显示的-v显示出来了
     -i  字母忽略大小写   # grep  -i --color=auto “[cC]” redhat.txt 忽略大小写
     -r  搜索多个文件,递归搜索  # grep -r  --color=auto “r" /etc  -r         如果搜索的是目录则会搜索目录及其子目录中的多个文件,递归搜索
     -B n   显示匹配行和匹配行之前的n行 # grep -B 2 --color=auto “[r]” redhat.txt     显示匹配行和匹配行之前的2行
     -A n    显示匹配行和匹配行之后的n行# grep -A 2 --color=auto “[r]” redhat.txt    显示匹配行及其后的两行
     -C  n  显示匹配行的上下n行 # grep -C 2 --color=auto “[r]” redhat.txt      显示匹配行的上下2行
     -o 只显示被模块匹配到的行而非此行字符串 # grep -o --color=auto “h” redhat.txt    只显示出现的字母h
     -E  只表示扩展正则表达式
练习
1、创建一个用户mandriva,其ID号为2002,基本组为disto(组ID为3003),附加组为linux;
# groupadd -g 3003 disto
# groupadd  linux
# useradd -u 2002 -g disto -G linux mandriva
2、创建一个用户fedora,其全名为Fedora Community,默认shell为csh;
#  useradd  -c "Fedora Communit" -s /bin/csh  Fedora
3、修改mandriva的ID号为4004,基本组为linux,附加组为disto和fedora;
# usermod -u 4004 -g linux -G disto,Fedora  mandriva
4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天;
#  passwd -n 2 -x 50 Fedora 
5、将mandriva的默认shell改为/bin/bash;
#  useradd -s /bin/bash mandriva
练习2、新建用户jerry; 然后复制/etc/skel目录至/tmp,要求为/tmp/skel目录指定权限,要求如下:
(1)属主属组均为jerry,包括内部的所有文件;
# useradd jerry
# cp -r /etc/skel  /tmp
(2)skel及其内部的所有文件的属组没有任何权限,其它用户也没有任何权限;
#  chmod -R go= /tmp/skel   
#  ll -a  /tmp/skel    查看是否修改成功
(3)将/tmp/skel/.bashrc的权限再改为跟/etc/issue一样;
# chmod  --reference=/etc/issue  /tmp/skel/.bashrc     注:--reference 是和谁睡一样 比如把A的权限/属主属组改成和B一样 则为# chmod  --reference=B  A   # chown --reference=B A
练习3:查找当前系统上名字为user1的用户的帐号的相关信息, /etc/passwd, user11, myuser1
# grep "^user1:" /etc/passwd
# grep "^user1\>" /etc/passwd
练习3:查找当前系统上以其为附加组的用户有两个或两个以上的组的相关信息, /etc/group, :,
# grep --color=auto "[^:]*:[^:]*:[^:][[:alpha:]]\{1,\},.*" /etc/group
或扩展正则表达式
# grep -E --color=auto  "([^:]:*){3}([[:alpha:]]*,){1,}" /etc/group
练习4:查找当前系统上其用户帐号密码最长使用期为99999天的用户帐号的相关信息;99999
# grep "[^:]*:[^:]*:[^:]*:[^:]*:99999:" /etc/shadow  查找最长使用期限用户的相关信息
# grep  -E --color=auto  "([^:]*){4}:99999:" /etc/shadow 查找最长使用期限99999
练习5:
1、显示/proc/meminfo文件中以不区分大小的s开头的行;
# grep --color=auto "^[sS]"  /proc/meminfo
2、显示/etc/passwd中以nologin结尾的行;
# grep --color=auto "nologin\>" /etc/passwd
3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
# grep --color=auto "^#[[:space:]]\{1,\}[^[:space:]].*" /etc/inittab
4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
# grep --color=auto  ":[0-9]:" /etc/inittab
5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
# grep --color=auto "^[[:space:]]\{1,\}"  /boot/grub/grub.conf
6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
# grep --color=auto "^[0-9]\>" /etc/inittab
 
 
alias 取别名的命令使用非常简单
例如我们嫌这个命令太长又是经常使用的则可以使用aliasa命令用grep 替换grep  --color=auto使其简单易记,可以这样写 # alias grep="grep --color=auto"

转载于:https://blog.51cto.com/4374568/774031

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

grep 命令的基本使用 的相关文章

随机推荐

  • 注销app密码服务器时出错,苹果7注销id显示验证错误连接服务器出现问题是怎么回事...

    满意答案 创建ID步骤 xff1a 1 在 iPhone 主屏上找到 App Store 图标 xff0c 点击打开 2 打开 App Store 应用商店以后 xff0c 用手指向上滑动 xff0c 点击底部的 登录 按钮 3 在弹出的选
  • js ajax回调 return,js异步回调解决方法

    当一个接口需要依赖另一个接口的请求数据时 1 将请求数据的接口设为同步 xff0c 之后调另一个接口 2 在请求数据接口的成功回调里调另一个接口 但是当一个接口需要依赖很多个接口的请求数据 或者 一个依赖另一个 xff0c 另一个再依赖另一
  • 系统无法请求的服务器地址,没有可用的登录服务器处理地址请求

    没有可用的登录服务器处理地址请求 内容精选 换一换 会话保持 xff0c 指负载均衡器可以识别客户与服务器之间交互过程的关联性 xff0c 在实现负载均衡的同时 xff0c 保持将其他相关联的访问请求分配到同一台服务器上 会话保持有什么作用
  • Iterator接口用法

    1 所有实现Collection接口的容器类都有一个iteractor方法 xff0c 用于返回一个实现了Iteractor接口的对象 xff0c 2 Iteractor对象成为迭代器 xff0c 用以实现对容器内元素的遍历操作 3 Ite
  • 浅析 Hexo 搭建博客的原理

    一直在用 Hexo 写博客 xff0c 但是对其原理并不是很清晰 xff0c 在网上找了一些资料 xff0c 对 Hexo 有了新的认识 xff0c 现在就来记录一下 使用 Hexo 43 github pages 搭建博客 记得刚开始知道
  • c# listView

    使用listView时 xff0c 需要设置单元格背景色 首先设置item UseItemStyleForSubItems 61 false 再通过BackColor来设置 参考 xff1a http www liangshunet com
  • 解决Macbook网络连接成功但是图标一直显示正在查找网络问题

    看图 xff0c 一直显示正在连接网络 明明连接上去了 xff0c 解决办法 xff0c 打开网络偏好设置 新建位置 然后点击应用就搞定了 图标正常了
  • 官网下载到离线的Adobe Acrobat Reader DC

    Adobe 官方 FTP ftp ftp adobe com Adobe Acrobat Reader DC 下载目录 xff1a ftp ftp adobe com pub adobe reader win AcrobatDC 15007
  • Flutter之Dialog使用和踩坑

    简单介绍 最近使用了Flutter的展示对话框的功能 xff0c 踩了一点坑 xff0c 顺便做下总结 xff0c 方便各位以后少踩坑 xff0c 如果有说错的地方 xff0c 还请大家指出来 下面将介绍对话框的几种场景和踩坑 展示普通对话
  • 路径规划之 A* 算法

    算法介绍 A xff08 念做 xff1a A Star xff09 算法是一种很常用的路径查找和图形遍历算法 它有较好的性能和准确度 本文在讲解算法的同时也会提供Python语言的代码实现 xff0c 并会借助matplotlib库动态的
  • MongoDB中yaml模式配配置文件详解

    mongodb3 x版本后就是要yaml语法格式的配置文件 xff0c 下面是yaml配置文件格式如下 xff1a 官方yaml配置文件选项参考 xff1a https docs mongodb org manual configurati
  • java 正则表达式提取字符串

    参考文档 xff1a baijiahao baidu com s id 61 159862 如果需要提取的字符串没有好的规则 xff0c 则直接用点 其他部分剩下的就是自己需要提取的 Pattern p 61 Pattern compile
  • 【成功】qlv转MP4,超简单方法

    1 打开 www xxxbbbttt com 上传你的视频 xff08 腾讯qlv xff0c 爱奇艺qsv 优酷kux xff09 都可以 3 点击转换按钮 xff0c 转换好后 xff0c 我们把转换的视频下载到电脑里 xff0c 就可
  • cisco配置交换机管理地址和默认网关

    配置交换机远程管理地址和默认网关 拓扑图如下 xff1a 1 配置PC0 2 配置SW1交换机 Switch config no ip domain lookup 关闭域名解析 Switch config line exec timeout
  • 兄弟们,请求支援,怎么实现互通,全部都互通的

    转载于 https blog 51cto com 14155986 2337267
  • FIFO算法与LRU算法软考试题

    转载于 https www cnblogs com kungfupanda archive 2009 12 25 1632106 html
  • iOS 网络/本地 图片 按自定义比例缩放 不失真 方法

    我尝试了很多种方法 xff0c 终于 xff0c 设计了一个方法 xff0c 能按自己规定的大小压缩 还没失真 如果以后不好用 我再升级 分享给大家 xff1a 43 CGRect scaleImage UIImage image toSi
  • java 输入输出 函数对象构造

    输入输出 输入字符串 不包括最后的换行符 39 n 39 import java io BufferedReader import java io IOException 输入字符一个char import java io InputStr
  • Python 3 加密简介

    Python 3 的标准库中是没多少用来解决加密的 xff0c 不过却有用于处理哈希的库 在这里我们会对其进行一个简单的介绍 xff0c 但重点会放在两个第三方的软件包 xff1a PyCrypto 和 cryptography 上 xff
  • grep 命令的基本使用

    环境变量 xff1a 定义用户的工作环境某个方面的属性 文本文件的查看命令 xff1a cat 连接 能够将后面跟的多个文件的内容 xff0c 依次显示 cat n 在显示时出现行号 E 显示行结束符 v 显示非打印字符不显示制表符tab