“Linux-2018-spring-5-8”的版本间的差异

来自SUDA-HLT
跳到导航 跳到搜索
第19行: 第19行:
 
   
 
   
 
*agrep命令:
 
*agrep命令:
 +
 
1、egrep命令用于在文件内查找指定的字符串。egrep执行效果与grep -E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范。
 
1、egrep命令用于在文件内查找指定的字符串。egrep执行效果与grep -E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范。
  
第25行: 第26行:
 
     $egrep -n 'int' (ctrl + d 输入结束)
 
     $egrep -n 'int' (ctrl + d 输入结束)
 
     $egrep -n '[ijklm]nt'
 
     $egrep -n '[ijklm]nt'
 +
    $egrep -n '[^0-9]nt':加^表示取反
 +
    $egrep -n '[0-9]nt'
 +
    $egrep -n '.nt'
 +
    $egrep -n 'a*bc'
 +
    $egrep -n 'a*?bc'
 +
    $egrep -n 'a?bc'
 +
    $egrep -n '[0-9]*bc'
 +
    $egrep -n 'abc|bcd'
 +
    $egrep -n '(abc|bcd)[0-9]+'
 +
    $egrep -n '^(abc|bcd)'
 +
    $egrep -n '^(abc|bcd)$'
 +
 
*正则表达式 regular expression  
 
*正则表达式 regular expression  
 +
 +
正则表达式的定义:表达正则语言的一个式子;以一定规则写出来的一个字符串,作为一个抽象的模式,用以匹配一个、多个甚至无穷多个实际的字符串。
  
 
1、literal字面意思
 
1、literal字面意思
第31行: 第46行:
 
2、[ ] 字符集 $egrep -n '[0-9]nt'
 
2、[ ] 字符集 $egrep -n '[0-9]nt'
 
    
 
    
 +
3、 .  任意一个字符,不能匹配\n\r
 +
 +
4、重复修饰符(贪心 greedy): * 表示前面的字符匹配0次到n次;? 表示可取0个/1个 ;+ 重复一次到无穷多次 ;{3} 重复3次;{3,5} 三次到五次 ;{3,} 三次到无穷
 +
 +
5、分组:() ;| 或
 +
 +
6、定位符:^表示行首,$表示行尾,单词的首/尾(自学)
 +
 +
  通配符    *        ?
 +
 +
正则表达式    .*      .
  
 
C语言的特点:1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。4、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。 5、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
 
C语言的特点:1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。4、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。 5、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
  
 
*管道
 
*管道

2018年5月8日 (二) 06:14的版本

一、复习

  • 通配符
  • 重定向
  • 命令行参数


二、本节重点

  • find 命令
   $find . -name '*.txt'
   $find / -name 'find'
   为了不再屏幕上显示错误信息:重定向
   $find / -name 'find' 2> x.txt
   $find / -name 'find' 2> /dev/null
   $sudo find / -name '??????????' :查找文件名字为十个字符的文件

  • agrep命令:

1、egrep命令用于在文件内查找指定的字符串。egrep执行效果与grep -E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范。

2、grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

   $egrep 'int' main.c
   $egrep -n 'int' (ctrl + d 输入结束)
   $egrep -n '[ijklm]nt'
   $egrep -n '[^0-9]nt':加^表示取反
   $egrep -n '[0-9]nt'
   $egrep -n '.nt'
   $egrep -n 'a*bc'
   $egrep -n 'a*?bc'
   $egrep -n 'a?bc'
   $egrep -n '[0-9]*bc'
   $egrep -n 'abc|bcd'
   $egrep -n '(abc|bcd)[0-9]+'
   $egrep -n '^(abc|bcd)'
   $egrep -n '^(abc|bcd)$'
  • 正则表达式 regular expression

正则表达式的定义:表达正则语言的一个式子;以一定规则写出来的一个字符串,作为一个抽象的模式,用以匹配一个、多个甚至无穷多个实际的字符串。

1、literal字面意思

2、[ ] 字符集 $egrep -n '[0-9]nt'

3、 . 任意一个字符,不能匹配\n\r

4、重复修饰符(贪心 greedy): * 表示前面的字符匹配0次到n次;? 表示可取0个/1个 ;+ 重复一次到无穷多次 ;{3} 重复3次;{3,5} 三次到五次 ;{3,} 三次到无穷

5、分组:() ;| 或

6、定位符:^表示行首,$表示行尾,单词的首/尾(自学)

 通配符     *        ?

正则表达式 .* .

C语言的特点:1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。4、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。 5、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。

  • 管道