最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
fdjsoifjidosa
joijofids.
joijiodsf.
#jidfjisoaf
#fjidsfoijsdaifo
* **注意在Linux平台下, 所有文件的结尾都有一个$符**
* **可以利用cat -A 查看文件**
cat -A test.txt
![](https://img-blog.csdnimg.cn/0bb5b0befb3c4c1b9965a131fe0c5e09.png)
注意:如果要在windows下验证本文内容,需要做下述两个准备
1.Windows 系统下使用grep 命令: [Windows 系统下使用grep 命令\_西晋的no1的博客-CSDN博客]( )
2.测试文件参考链接中转换方式1进行处理:
[shell脚本报错:“syntax error: unexpected end of file“ 原因和解决\_西晋的no1的博客-CSDN博客]( )
### 2.1、从test.txt文本文件中搜索包含”L”字符的行,则可以使用如下命令
grep “L” test.txt
![](https://img-blog.csdnimg.cn/abaa148d511f44aa8ebc9007209478eb.png)
上图中的命令表示使用grep命令,在test.txt文件中搜索包含”L”字符的行,并将包含L字符的行打印出来。
默认情况下,grep是区分大小写的,所以,文件中包含小写”l”的行没有被打印出来。
### 2.2、输出以 I 开头的行(不区分大小写)
grep “^i” test.txt -i -n -o
![](https://img-blog.csdnimg.cn/c84f8921169347a5b0e1374c72e675cc.png)
注: -i代表不区分大小写, -n代表显示匹配行和行号,-o可以只显示被匹配到的关键字, 而不是将整行的内容都输出,注意,”-o”选项会把每个匹配到的关键字都单独显示在一行中进行输出,什么意思呢?看如下示例即可明白
grep “L” test.txt -i -n -o
grep “L” test.txt -i -n --color
![](https://img-blog.csdnimg.cn/24ea85544a0042f0804c01788c5411ba.png)
如上图所示,当没有使用”-o”选项时,包含"L"字符的行都会被打印出来,当同一行中包含多个"L"时,所在行会被打印出来,对应的关键字也会高亮显示,当使用了”-o”选项时,每个被匹配到的关键字都会被单独打印在一行中,如上图所示,第1个"L"与第2个"L"都属于第3行的文本,但是它们仍然各自独占一行的输出了。
### 2.3、grep的参数--color
使用grep在文本中搜索出的行虽然会被打印了出来,但是在打印这些行时,被匹配到的关键字没有高亮显示,如果我们想要高亮显示行中的关键字,该怎么办呢?我们可以使用”--color”选项,高亮显示行中的关键字,示例如下
grep “L” test.txt -i -n --color
![](https://img-blog.csdnimg.cn/f440b34eeb064e068f456908e57fedff.png)
注:”--color选项”是长选项,使用”--color”与使用”--color=auto”的效果相同,都表示高亮显示关键字。
### 2.4、grep的参数-Bn
"-B”选项,显示符合条件的行之前的行,"B"有before之意,示例如下
grep “L” test.txt -i -n --color -B2
![](https://img-blog.csdnimg.cn/2794604611224784a3c5edec2404b395.png)
如上图所示,包含字符”L″的行被高亮输出了,同时,符合条件的行”之前的2行”也被打印了出来。
没错,上例中的”-B2″选项表示显示符合条件的行的同时还显示之前的2行,举一反三,"B5"代表同时显示之前的5行,"-B3"代表同时显示之前的3行,”-B”选项的后面必须有数字,否则会报错。
### 2.5、grep的参数-An
与"-B"选项对应的选项是"-A"选项,"-B"有Before之意,"-A"有After之意,"-A"代表显示符合条件的行的同时,还要显示之后的行,"-A3"表示同时显示符合条件的行之后的3行。
grep “L” test.txt -i -n --color -A2
![](https://img-blog.csdnimg.cn/a64a06b210b84b738504d092863b486c.png)
### 2.6、grep的参数-Cn
说了"-A",说了"-B",现在说说"-C","-C"选项可以理解为"-A"与"-B"的结合,"-C"选项表示在显示符合条件的行的同时,也会显示其前后的行,如"-C1","-C1"表示打印符合条件的行的同时,也打印出之前的一行与之后的一行,"-C"有Context之意(上下文之意),示例如下。
grep “L” test.txt -i -n --color -C2
![](https://img-blog.csdnimg.cn/969f8590986048e8bc7387f881f5fc84.png)
### 2.7、grep的参数-q
在写脚本时,你可能只是想要利用grep判断文本中是否存在某个字符串,你只关心有没有匹配到,而不关心匹配到的内容,你只关心有,或者没有,这时,我们可以使用grep的静默模式,示例如下
grep “L” test.txt -i -n --color -C2
grep “L” test.txt -i -n --color -C2 -q
echo $?
![](https://img-blog.csdnimg.cn/647be54f6639406f9f38d0705cf78f49.png)
grep “LLL” test.txt -i -n --color -C2
grep “LLL” test.txt -i -n --color -C2 -q
echo $?
![](https://img-blog.csdnimg.cn/604661a561c84899aef7257a02ee0633.png)
当使用"-q"选项时,表示grep使用静默模式,静默模式下grep不会输入任何信息,无论是否匹配到指定的字符串,都不会输出任何信息,所以,我们需要配合"echo $?"命令,查看命令的执行状态,如果返回值为0,证明上一条grep命令匹配到了指定的字符串,如果返回值为1,则证明上一条grep命令没有匹配到指定的字符串,就像上图示例中显示的那样,静默模式下,grep没有输出任何信息,当我们在test.txt文本中查找"L"字符串时,可以匹配到结果,当在文本中查找"LLL"字符串的时候,没有匹配到结果,所以,我们只关心有没有匹配到指定字符时,可以使用"-q"选项,但是需要配合"echo $?"命令查看执行状态。
### 2.8、grep的参数-c
使用”-c”选项即可只统计符合条件的总行数,而不会打印出行。
显示出文章中有多少行有a或b或c
grep “^i” test.txt -i -n -o -c
![](https://img-blog.csdnimg.cn/9f984b290b574bbfb6e1fdaf9110419d.png)
### 2.9、输出以.结尾的行
grep “.$” test.txt -n -o
![](https://img-blog.csdnimg.cn/e844915f39b84cd38b2b0c5fc20878ca.png)
注: 因为.在这里有着特殊含义, 所以要用\转义一下, 如果不加转义字符的话, grep就会把它当做正则表达式来处理(.代表的含义是匹配任意一个字符)
### 2.10、grep的参数-c
不打印以.结尾的行
grep “.$” test.txt -n -v
![](https://img-blog.csdnimg.cn/d8e1bc4e12514fcf8019d1b5a59c745e.png)
### 2.11、^$(代表空行的意思)组合符
找出文件的空行, 以及行号
grep “^$” test.txt -n
![](https://img-blog.csdnimg.cn/c60cae71897d4246bf132acdbd310939.png)
### 2.12、.点符号
**"."点表示任意一个字符, 有且只有一个, 不包含空行**
grep “.” test.txt -n
![](https://img-blog.csdnimg.cn/28bc6946a65a459da7bd368f61128f50.png)
### 2.13、\*符号
**"\*"表示找出前一个字符0次或一次以上**
找出文件中i出现0次或多次的行和行号
grep “i*” test.txt -n
![](https://img-blog.csdnimg.cn/7684dfa9154040aabeca53f8ee377933.png)
### 2.14、.\*组合符
**".\*"表示所有内容, 包括空行**
grep “.*” test.txt -n -o
![](https://img-blog.csdnimg.cn/dace64c0b18645fb9212ea067ca50ab3.png)
### 2.15、^.\*t符 (含义: 以任意内容开头, 直到t结束)
grep “^.*t” test.txt -n -o
![](https://img-blog.csdnimg.cn/8489e033e26a4e8596f50e5645d543e3.png)
### 2.16、[abc]中括号
中括号表达式,[abc]表示匹配中括号中任意一个字符, a或b或c,常见的形式如下;
* [a-z]匹配所有小写单个字母[A-Z]匹配所有单个大写字母
* [a-zA-Z]匹配所有的单个大小写字母
* [0-9]匹配所有单个数字
* [a-zA-ZO-9]匹配所有数字和字母
匹配abc字符中的任意一个,得到它的行数和行号
grep “[abc]” test.txt -n -o
![](https://img-blog.csdnimg.cn/03ed93aef7e14f7b8c925186105fa5e5.png)
### 2.17、[^abc]中括号中去反
[^abc]或[^a-c]这样的命令, "^"符号在中括号中第一位表示排除, 就是排除字符a,b,c
注: **出现再中括号里的尖角号表示取反**
grep “[^abc]” test.txt -n
![](https://img-blog.csdnimg.cn/7ac9d4fdd4244f0cb7d42d795517e3f2.png)
## 三、扩展正则表达式grep实践
在使用”-E”选项时,grep才支持”扩展正则表达式”,不使用”-E”选项时,grep默认只支持”基本正则表达式”。
**此处使用grep -E进行实践扩展正则, egrep官网已经弃用了**
不同的开发语言中,正则表达式的规则可能略有不同,我们在使用grep时,可以使用”-P”选项,指明使用perl兼容的正则表达式。
### 3.1、+号
**+号表示匹配前一个字符1一次或多次,必须使用grep** **-E扩展正则**
grep -E “a+” test.txt -n -o
![](https://img-blog.csdnimg.cn/3f28ca9459b348b197bfca48be81bddb.png)
### 3.2、?符
**匹配前一个字符0次或1次**
找出文件中包含ji或者joi的行
![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)
最全的Linux教程,Linux从入门到精通
======================
1. **linux从入门到精通(第2版)**
2. **Linux系统移植**
3. **Linux驱动开发入门与实战**
4. **LINUX 系统移植 第2版**
5. **Linux开源网络全栈详解 从DPDK到OpenFlow**
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)
**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**
> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**