免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 一生有你llx
打印 上一主题 下一主题

[系统管理] Linux基础命令 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
81 [报告]
发表于 2018-12-24 06:59 |只看该作者
本帖最后由 一生有你llx 于 2018-12-25 08:46 编辑

记录Linux学习过程
做了一个Linux学习的平台,目前出来一个雏形,各位可以参考使用
链接:https://pan.baidu.com/s/1GOLVU2CbpBNGtunztVpaCQ  密码:n7bk

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
82 [报告]
发表于 2018-12-24 07:00 |只看该作者
bzmore
      将bzip压缩过的文件解压到标准输出,同时也可以将普通文件显示到标准输出。该指令可以实现分屏显示,并且不会删除压缩包。bzmore是一个过滤器,它允许在软拷贝终端上一次检查压缩或纯文本文件。bzmore可以处理使用bzip2压缩的文件,也可以处理未压缩的文件。如果文件不存在,bzmore将查找同名文件,并添加.bz2后缀。Bzmore通常在每个屏幕后暂停,打印-更多-在屏幕底部。如果用户然后键入回车,则会显示多一行。如果用户点击一个空格,则会显示另一个屏幕。其他可能性将在后面列举。
     此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
     bzmore 文件

2、选项列表
     Bzmore在文件“/etc/Tercap”中查找以确定终端特性,并确定默认窗口大小。在能够显示24行的终端上,默认窗口大小为22行。在bzmore暂停时可能键入的其他序列及其效果如下(i是可选的整数参数,默认为1):
命令
说明
i<space>
多显示i行(或另一个屏幕,如果没有给出参数)
ctrl+D
多显示11行(“滚动”)。如果给定i,则滚动大小设置为i。
d
同上
iz
与键入空格相同,但如果有i,则会成为新的窗口大小。请注意,窗口大小将恢复到当前文件末尾的默认值。
is
跳过i行,然后打印出满屏幕
if
跳过i屏幕,打印一整行的屏幕
q | Q
停止读取当前文件;继续下一个文件(如果有的话)
e | q
当输出提示符--More-- (Next  file:  file时,此命令将导致bzmore退出。
s
当输出提示符--More-- (Next  file:  file时,此命令将导致bzmore跳过下一个文件,然后继续
=
显示当前的行号
i/expr
搜索正则表达式expr的第i次出现。如果找不到模式,bzmore将继续到下一个文件(如果有的话)。否则,会显示一个屏幕,在找到表达式的位置之前开始两行。用户的擦除和删除字符可用于编辑正则表达式。通过第一列的擦除将取消搜索命令。
in
搜索输入的最后一个正则表达式的第i次出现
!command
使用命令**shell。字符‘!’在“命令”中,将替换为前面的shell命令。序列“\!”改为“!”
:q | :Q
停止读取当前文件;转到下一个文件(如果有的话)(与q或Q相同)。
.
重复前面的命令
     这些命令立即生效,即不需要键入回车。在给出命令字符本身的时间之前,用户可以点击行终止字符来取消正在形成的数值参数。此外,用户还可以点击擦除字符来重新显示-更多的消息。
     在任何时候,当输出被发送到终端时,用户可以按退出键(通常是Control-\)。Bzmore将停止发送输出,并显示通常的“--More--”提示。然后,用户可以正常方式输入上述命令之一。不幸的是,当这样做时,会丢失一些输出,因为当退出信号发生时,终端输出队列中等待的任何字符都会被刷新。
     该程序将终端设置为noecho模式,以便输出可以连续。因此,您键入的内容将不会显示在您的终端上,除了‘/’和‘!’命令。
     如果标准输出不是teletype,那么bzmore就像bzcat一样,只是在每个文件之前打印一个头。

3、实例
1)解压bz2文件
[root@localhost weijie]# bzmore 2.c.bz2             //将内容解压到标准输出,不删除压缩包
------> 2.c.bz2 <------
123
23
212
2)显示普通文件
[root@localhost weijie]# bzmore 1.c                 //直接显示普通文件
------> 1.c <------
hello world,
i am david.
i love linux,
love code.




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
83 [报告]
发表于 2018-12-25 08:43 |只看该作者
gunzip
     解压缩被gzip压缩过的文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
     gunzip [-acfhlLnNrtvV]  [-S suffix] 文件

2、选项列表
选项
说明
-h | --help
帮助信息
-V | --version
显示命令版本信息
-f | --force
强制执行
-a | --ascii
文本模式。此选项仅在某些非Unix系统上支持。
-c | --stdout | --to-stdout
将解压的文件写到标准输出,源文件不变。如果有多个输入文件,则输出由一系列独立压缩的成员组成。为了获得更好的压缩,在压缩所有输入文件之前先将它们连接起来。
-l | --list
列出压缩文件的信息
-L | --licence
列出gzip的许可证并且退出
-n | --no-name
解压缩时,如果存在,不要还原原始文件名(仅从压缩文件名中删除gzip后缀),如果存在则不要恢复原始时间戳(从压缩文件中复制它)。此选项是解压缩时的默认选项。
-N | --name
解压缩时,如果存在,请还原原始文件名和时间戳。此选项对于限制文件名长度的系统或在文件传输后丢失时间戳的系统非常有用。
-r | --recursive
递归遍历目录结构。如果命令行中指定的任何文件名都是目录,则gzip将下降到目录中,并压缩它在目录中找到的所有文件(或者解压它们,如果是gunzip的话)。
-t | --test
测试压缩文件完整性
-v | --verbose
显示详细执行过程
-S
解压缩时,在从输入文件名派生输出文件名时,将.suf添加到后缀列表的开头以尝试。

3、实例
      1)解压
[root@localhost weijie]# gunzip -v 1.gz               //解压,显示详细执行过程
1.gz:    9.4% -- replaced with 1
      2)指定文件后缀
[root@localhost weijie]# gunzip -v 1.mygz             //解压,后缀不是gz,报错
gzip: 1.mygz: unknown suffix -- ignored
[root@localhost weijie]# gunzip -v -S "mygz" 1.mygz   //指定后缀名,不报错
1.mygz:     9.4% -- replaced with 1.

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
84 [报告]
发表于 2018-12-26 09:14 |只看该作者
unzip
      解压zip指令压缩过的文件。unzip将列出、测试或从ZIP存档中提取文件,这些文件通常在MS-DOS系统中找到。默认行为(没有选项)是将指定ZIP存档中的所有文件提取到当前目录(及其下面的子目录)中。一个配套程序zip(1L)创建ZIP档案;这两个程序都与PKWare的PKZIP和PKUNZIP为MS-DOS创建的档案兼容,但在许多情况下,程序选项或默认行为有所不同。
     此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
     unzip  [-Z]  [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]]  file[.zip] [file(s) ...]  [-x xfile(s) ...]  [-d exdir]

2、选项参数列表
参数
说明
file[.zip]
ZIP存档的路径。如果文件规范是通配符,则按操作系统(或文件系统)确定的顺序处理每个匹配的文件。只有文件名可以是通配符;路径本身不能。通配符表达式类似于常用Unix shell(sh、ksh、csh)中支持的表达式,可能包含:
*,匹配0或多个字符的序列。
?,匹配一个字符。
[…],匹配括号内的任何单个字符;范围由开始字符、连字符和结束字符指定。如果是感叹号或插入符号(‘!‘或者‘^’)在左括号后面,则括号中的字符范围被补充(也就是说,除了括号中的字符外,任何字符都被认为是匹配的)。若要指定逐字左括号,必须使用三个字符序列‘‘[[]’’。
(确保引用任何可能被操作系统解释或修改的字符,特别是在Unix和VMS下。)如果没有找到匹配项,则假定规范为文字文件名;如果也失败,则追加后缀.zip。请注意,与任何其他ZIP存档一样,支持自解压ZIP文件;只需显式地指定.exe后缀(如果有的话)。
[file(s)]
要处理的归档成员的可选列表,用空格分隔。(用VMSCLI定义的VMS版本必须用逗号分隔文件。见下文备选案文中的-v)。正则表达式(通配符)可用于匹配多个成员;参见上文。同样,请务必引用否则将由操作系统展开或修改的表达式
[-x xfile(s)]
要排除在处理之外的归档成员的可选列表。由于通配符通常匹配(‘/’)目录分隔符(异常请参见选项-W),此选项可用于排除子目录中的任何文件。例如,“unzip  foo  *.[Ch]  -x  */*”将提取主目录中的所有C源文件,但在任何子目录中都不提取。如果没有-x选项,则将提取zip文件中所有目录中的所有C源文件。
[-d exdir]
提取文件的可选目录。默认情况下,所有文件和子目录都在当前目录中重新创建;-d选项允许在任意目录中提取(总是假定一个目录具有写入该目录的权限)。这个选项不需要出现在命令行的末尾;它也可以在zipfile规范之前(带常规选项)、在zip文件规范之后,或者在文件和-x选项之间被接受。选项和目录可以连接在一起,没有任何空白,但请注意,这可能会导致正常的shell行为被抑制。特别是,‘-d~’被Unix C shell扩展为用户主目录的名称,但是‘-d~’被视为当前目录的一个文字子目录‘~’。
     请注意,为了支持过时的硬件,Unzip的使用屏幕仅限于22或23行,因此只应被视为基本解压缩语法的提醒,而不是所有可能的标志的详尽列表。详尽的清单如下:
选项
说明
--help
帮助信息
--version
显示命令版本信息
-c
将解压结果送到标准输出
-f
解压时更新现有的文件,即仅解压磁盘上已经存在且比磁盘副本更新的文件。默认情况下,在覆盖之前解压缩查询,但是-o选项可以用于抑制查询
-l
显示压缩包内文件的详细信息。将打印指定文件的名称、未压缩文件大小、修改日期和时间,以及所有指定文件的总计。
-p
将解压结果送到标准输出,不对字符转换。只有文件数据被发送到stdout,文件总是以二进制格式提取
-t
检查压缩文件的正确性。该选项提取内存中的每个指定文件,并将扩展文件的CRC(循环冗余校验,增强校验和)与原始文件的存储CRC值进行比较。
-T
将存档上的时间戳设置为每个归档中最新文件的时间戳。这对应于zip的-go选项,但它可以用于通配符zip文件(例如,“unzip –T \*.zip”),而且速度要快得多
-u
更新现有文件,并在需要时创建新文件。该选项执行与-f选项相同的功能
-v
列出存档文件(详细格式)或显示诊断版本信息。
-z
仅显示压缩文件的备注信息

修饰符
说明
--help
帮助信息
--version
显示命令版本信息
-a
解压时,对文本文件做字符转换
-b
不对文本文件字符转换,把所有文件当做二进制文件。
-B
保存每个覆盖文件的备份副本,‘foo’的旧拷贝改名为‘foo~’。
-C
解压时,设置文件名大小写敏感
-D
跳过提取项的时间戳恢复。
-E
[仅限MacOS]在恢复操作期间显示MacOS额外字段的内容。
-F
[仅限Acorn]禁止从存储的文件名中删除NFS文件类型扩展。
-i
[仅限MacOS]忽略存储在MacOS额外字段中的文件名。相反,使用存储在条目标题的泛型部分中的最兼容的文件名。
-j
垃圾路。存档的目录结构不被重新创建;所有文件都存放在提取目录中(默认情况下是当前的)。
-J
[仅限BeOS]垃圾文件属性。文件的BeOS文件属性没有恢复,只是文件的数据。
-K
保留SUID/SGID/duy文件属性。如果没有此标志,则出于安全原因,将清除这些属性位。
-L
解压时,将文件名改为小写字母
-M
把解压结果送给more分屏显示
-n
解压时,不覆盖原有的文件
-N
将文件注释解压缩为Amiga文件。
-o
不提示用户,覆盖原有文件
-P
解压时,输入密码
-q
静默模式
-s
[OS/2,  NT,  MS-DOS]将文件名中的空格转换为下划线
-S
[VMS]将文本文件(-a,-aa)转换为Stream_LF记录格式,而不是文本文件默认的可变长度记录格式。
-U
[UNICODE_SUPPORT only]修改或禁用UTF-8处理。当Unicode_Support可用时,选项-U强制解压将UTF-8编码文件名中的所有非ASCII字符转义为“#Uxxxx”
-V
保留(VMS)文件版本号。VMS文件可以用版本号存储,格式为file.ext;#。默认情况下,‘;#’版本号将被删除,但此选项允许保留它们。
-W
[仅当WILD_STOP_AT_DIRR编译时选项启用] 修改模式匹配例程,以便 “?”和“*”与目录分隔符“/”不匹配。
-X
[VMS,  Unix,  OS/2,  NT, Tandem] 在Unix下恢复用户和组信息(UID/GID)
-Y
[VMS] 将存档的文件名结尾“.nn”(其中‘nnn’是一个十进制数)视为VMS版本号(‘;nnn’)。(默认的做法是将它们视为文件类型。)
-$
[MS-DOS, OS/2, NT]如果提取介质是可移动的(例如磁盘),则恢复卷标签。加倍的选项($-$)允许固定媒体(硬盘)也被标记。默认情况下,卷标签将被忽略。
-/ extensions
[Acorn] 重写Unzip$Ext环境变量提供的扩展列表。在提取过程中,与此扩展列表中的项匹配的文件名扩展名将在提取文件的基名前面交换。
-:
允许将存档成员解压缩到当前“提取根文件夹”之外的位置。
-^
[Unix only] 允许提取的ZIP存档条目的名称中包含控制字符。
-2
[vms]强制无条件地将文件名转换为ODS 2-兼容名称

3、环境选项
     unzip的默认行为可以通过放置在环境变量中的选项来修改。这可以用任何选项来完成,但是它可能对-a,-L,-C,-q,-o或-n修饰符最有用:默认情况下使unzip自动转换文本文件,使文件名从大写系统转换为小写,使其不敏感地匹配名称,使其更安静,或者让它在解压文件时始终覆盖或不覆盖它们。例如,要使解压缩尽可能安静,只报告错误,可以使用以下命令之一:
Unix Bourne shell:      UNZIP=-qq; export UNZIP
Unix C shell:setenv      UNZIP -qq
OS/2 or MS-DOS:set       UNZIP=-qq
VMS (quotes for lowercase):      define UNZIP_OPTS "-qq"
     实际上,环境选项被认为与任何其他命令行选项一样,只是它们实际上是命令行中的第一个选项。要覆盖环境选项,可以使用“减号运算符”来删除它。例如,若要覆盖上面示例中的一个静音标志,请使用以下命令
unzip --q[other options] zipfile
     第一个连字符是正常的开关字符,第二个是负号,作用于Q选项。因此,这里的效果是取消一个安静的量子。若要取消这两个安静的标志,可以使用两个(或更多)最小值:
unzip -t--q zipfile
unzip ---qt zipfile              这两个是等价的
     正如上面的例子所建议的,默认变量名是UNZIP_OPTS,用于VMS,以及所有其他操作系统的解压缩。为了与zip(1L)兼容,UNZIP_OPTS也被接受(不要问)。但是,如果同时定义了UNZIP和UNZIP_OPTS,那么UNZIP优先。Unzip的诊断选项(没有zip文件名的-v)可以用于检查所有四个可能的解压缩和zipinfo环境变量的值

4、说明
     unzip的某些编译版本可能不支持解密。若要检查加密支持版本,可以尝试测试或提取加密存档,或者检查unzip的诊断屏幕(请参阅上面的-v选项)以“[解密]”作为特殊的编译选项之一。
     如上所述,可以使用-P选项在命令行上提供密码,但代价是安全性。首选的解密方法是正常提取;如果zip文件成员被加密,解压缩将提示输入密码,而不回显所键入的内容。解压缩继续使用相同的密码,只要它看起来是有效的,通过在每个文件上测试一个12字节的头。正确的密码将始终签出与标题,但有1/256的机会,一个不正确的密码也会。(这是PKWare zipfile格式的一个安全特性;它有助于防止暴力攻击,否则只通过测试报头就可以获得很大的速度优势。)如果给出了错误的密码,但它还是通过了头测试,则将为提取的数据生成不正确的CRC,或者在提取过程中解压缩失败,因为‘解密’字节并不构成有效的压缩数据流。
     如果第一个密码没有通过头检查某个文件,解压缩将提示输入另一个密码,以此类推,直到提取所有文件。如果不知道密码,则输入空密码(即只返回一个回车或‘Enter’)作为跳过所有进一步提示的信号。随后将只提取存档中未加密的文件。(事实上,这并不完全正确;早期版本的zip(1L)和zipcloak(1L)允许空密码,因此解压缩检查每个加密文件以查看空密码是否有效。这可能会导致“假阳性”和提取错误,如上所述。)
     用8位密码加密的档案(例如,带有重音的欧洲字符的密码)可能无法跨系统和/或其他存档器移植。这个问题源于对这些字符使用多种编码方法,包括拉丁文1(ISO 8859-1)和OEM代码页850。DoS PKZIP 2.04g使用OEM代码页;Windows PKZIP 2.50使用拉丁文-1(因此与DOS PKZIP不兼容);Info-ZIP使用DOS、OS/2和Win3.x端口上的OEM代码页,但使用ISO编码(拉丁文-1等)。在其他地方,NicoMak的WinZip6.x根本不允许8位密码。解压缩5.3(或更新)尝试首先使用默认字符集(例如拉丁语-1),然后使用备用字符集(例如OEM代码页)测试密码。

5、例子代码
unzip  letters
将letters.zip解压到当前的目录以及其子目录下
unzip  -j  letters
将letters.zip解压到当前目录下
unzip  -tq  letters
测试letters.zip,打印出测试信息,确定压缩包是否完整
unzip  -tq  \*.zip
测试当前目录下的所有zip文件,打印总和信息
unzip  -ca  letters  \*.tex  |  more
要将名称以.tex结尾的letters.zip的所有成员提取为标准输出,自动转换为本地行尾约定,并将输出传递给more程序
unzip  -p  articles  paper1.dvi  |  dvips
将二进制文件解压到标准输出,并且通过管道送到另一个打印程序
unzip  source.zip  "*.[fch]"  Makefile  -d  /tmp
将所有的c语言和FORTRAN语言的源文件,以及Makefile解压到/tmp目录
unzip  -C  source.zip  "*.[fch]"  makefile  –d  /tmp
将所有的c语言和FORTRAN语言的源文件,以及Makefile解压到/tmp目录(忽略所有的大小写)
unzip  -aaCL  source.zip  "*.[fch]"  makefile  –d  /tmp
提取任何此类文件,但将ms-dos或vms中任何大写名称转换为小写,并将所有文件的行尾转换为本地标准。
unzip  -fo  sources
仅提取当前目录中已经存在的较新版本的文件,而不进行查询
unzip  -uo  sources
提取当前目录中已存在的较新版本的文件,并创建尚未存在的任何文件。
unzip  –v
要显示诊断屏幕,显示哪些解压缩和zipinfo选项存储在环境变量中,是否在环境变量中编译解密支持,以及编译解压缩的编译器等等
unzip  -l  file.zip
只是列出内容
unzip  -ql  file.zip
双倍安静的列表
unzip  --ql  file.zip
unzip  -l-q  file.zip
unzip  -l--q  file.zip
标准的列表

6、诊断信息
退出码
说明
0
正常,没有错误信息
1
遇到一个或多个警告错误,但仍然成功地完成了处理。这包括由于不支持的压缩方法或密码未知的加密而跳过一个或多个文件的zip文件。
2
检测到zip文件格式中的通用错误。无论如何,处理可能已经成功完成;一些由其他归档程序创建的损坏的zip文件具有简单的工作环境。
3
检测到zip文件格式出现严重错误。处理可能立即失败
4
在程序初始化期间,unzip无法为一个或多个缓冲区分配内存。
5
unzip无法分配内存,也无法获取TTY来读取解密密码。
6
unzip过程中无法将内存分配给磁盘。
7
unzip无法在内存解压缩期间分配内存.
8
当前还没有用到这个退出码
9
指定的压缩文件没有找到
10
非法的选项
11
找不到匹配的文件
50
磁盘已经满了
51
ZIP存档的结尾是过早地遇到的。
80
用户使用ctrl+c终止了解压过程
81
由于不支持的压缩方法或不支持的解密,一个或多个文件的测试或提取失败
82
由于解密密码错误,没有找到任何文件。(但是,即使成功处理了一个文件,退出状态也是1。)

7、实例
     1)显示备注信息
[root@localhost weijie]# zip 1.zip 1.c            //压缩
  adding: 1.c (deflated 9%)
[root@localhost weijie]# unzip -z 1.zip           //显示备注
Archive:  1.zip
     2)显示压缩包内的文件信息
[root@localhost weijie]# unzip -l 1.zip
Archive:  1.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       53  09-19-2018 16:08   1.c
---------                     -------
       53                     1 file
     3)解压
[root@localhost weijie]#unzip -n -v 1.zip                //显示解压过程
Archive:  1.zip
Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- -------- ----
      53  Defl:N       48   9% 09-19-2018 16:08 1c3e46be  1.c
--------          -------  ---                            -------
      53               48   9%                            1 file




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
85 [报告]
发表于 2018-12-27 07:09 |只看该作者
grep
      按照指定的模式,在文件中搜索匹配的行,将结果显示在标准输出。另外还有两个指令egrep相当于grep –E,fgrep相当于grep -F。如果没有给出文件名,那么从标准输入读取。
     此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
     grep [选项]  PATTERN files
     grep [OPTIONS]  [-e PATTERN | -f FILE]  [FILE...]

2、选项列表
选项
说明
-V | --version
显示命令版本信息
--help
显示帮助文档
匹配选择

-E | --extended-regexp
使用扩展规则表达式解释匹配模式
-F | --fixed-strings
将匹配模式看做固定字符串
-G | --basic-regexp
使用基本规则表达式解释匹配模式
-P | --perl-regexp
使用perl表达式解释匹配模式
文件和目录选择控制

-a | --text
忽略二进制数据
--binary-files=TYPE
如果文件的前几个字节表示该文件包含二进制数据,则假定该文件类型是TYPE。默认情况下,TYPE为二进制,grep通常输出一行消息表示二进制文件匹配,如果没有匹配则不输出消息。如果类型不匹配,grep假定二进制文件不匹配;这相当于-i选项。如果TYPE是文本,grep会像处理文本一样处理二进制文件;这相当于-a选项。警告:“grep-binary-files=text”可能会输出二进制垃圾,如果输出是终端,并且终端驱动程序将其中的一些解释为命令,则会产生严重的副作用。
-D action | --devices=ACTION
如果输入文件是一个设备文件,那么用指定的action处理。read,像普通文件一样读取设备,skip,忽略设备
-d action | --directories=ACTION
如果查找的是目录文件,那么使用指定的操作处理。read,像普通文件一样读取目录;skip,忽略目录;recursive,递归当时读取子目录下文件。
--exclude=per
忽略文件名匹配per的文件      
--exclude-from=FILE
跳过其基本名称与从FILE中读取的任何文件名全局匹配的文件。
--exclude-dir=DIR
从递归搜索中排除匹配模式DIR的目录
-I
处理二进制文件,就像它不包含匹配的数据一样;等价于“--binary-files=without-match”
--include=GLOB
只搜索其基本名称与GLOB匹配的文件
-R | -r | --recursive
递归方式读取目录下所有文件
行数控制

-A num | --after-context=NUM
显示匹配行以及之后指定的行数
-B num | --before-context=NUM
显示匹配行以及之前指定的行数
-C num | -NUM | --context=NUM
显示匹配行以及之前和之后的指定行数
输出行控制

-b | --byte-offset
在显示匹配的行之前,打印该行第一个字符的偏移位置
-H | --with-filename
为每个匹配的行显示文件名,如果有多个文件的话,这是默认操作
-h | --no-filename
显示匹配的行,但是不显示文件名。如果搜索一个文件时,这是默认操作
-n | --line-number
显示匹配的行之前,显示行号
-T | --initial-tab
确保实际行内容的第一个字符位于制表符停止上,使制表符的对齐看起来正常。
-u | --unix-byte-offsets
报告Unix样式的字节偏移量。此开关使grep报告字节偏移量,就像文件是Unix样式的文本文件一样
-Z | --null
输出一个零字节(ASCII null字符),而不是通常跟随文件名的字符。例如,“grep –lz”在每个文件名之后输出一个零字节,而不是通常的换行符。
输出控制

-c | --count
统计符合匹配的行数
--color[=WHEN] |  --colour[=WHEN]
用转义序列包围匹配(非空)字符串、匹配行、上下文行、文件名、行号、字节偏移量和分隔符(用于字段和上下文行组),以便在终端上显示它们的颜色。颜色由环境变量grep_colors定义。仍然支持不推荐的环境变量grep_color,但它的设置没有优先级。WHEN的有效值是never,always,auto。
-L | --files-without-match
禁止正常输出;而是打印通常不会输出的每个输入文件的名称。扫描将在第一次匹配的时候停止。
-l
显示内容符合指定匹配模式的文件名
-m num  |  --max-count=NUM
在匹配num行之后,停止搜索
-o | --only-matching
只显示匹配行的匹配字符
-q | --quite
静默模式,搜索完成之后返回0
-s | --no-messages
不显示文件不存在和文件不可读的错误信息
模式控制

-e parttern  |  --regexp=PATTERN
设置匹配模式
-f file  | --file=FILE
将给定的文件内容作为匹配模式
-i  |  --ignore-case
忽略大小写
-v | --invert-match
显示不符合匹配模式的行
-w | --word-regexp
显示整个字都匹配的行
-x | --line-regexp
显示整行都匹配的行
其他选项

--line-buffered
对输出使用行缓冲。这会导致性能损失。
--mmap
如果可能,使用mmap(2)系统调用来读取输入,而不是默认的read(2)系统调用。在某些情况下,mmap会产生更好的性能。但是,-mmap可能导致未定义的行为(包括核心转储),如果一个输入文件在grep运行时收缩,或者如果发生I/O错误。
-U | --binary
将文件视为二进制文件。
-z | --null-data
将输入视为一组行,每一行以零字节(ASCII NUL字符)结尾,而不是换行符。

3、环境变量
     grep的行为受到以下环境变量的影响。
     GREP_OPTIONS,此变量指定放置在任何显式选项前面的默认选项。选项规范由空格分隔。反斜杠转义下一个字符,因此它可以指定包含空格或反斜杠的选项。例如,如果GREP_OPTIONS是’--binary-files=without-match --directories=skip’,那么grep执行的时候就假设已经有了这两个选项。
     GREP_COLOR,此变量指定用于突出显示匹配(非空)文本的颜色。
     GREP_COLORS,指定用于突出显示输出的各个部分的颜色和其他属性。它的值是一个以冒号分隔的功能列表,默认为ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36,省略了rv和ne布尔功能(即false)。支持的功能如下所示。
          sl=,用于整个选定行的SGR子字符串(即-v命令行选项省略时的匹配行,或指定-v时不匹配的行)。但是,如果指定了布尔rv功能和-v命令行选项,则它将应用于上下文匹配行。默认值为空(即终端的默认颜色对)。
          cx=,用于整个上下文行的SGR子字符串(即省略-v命令行选项时的非匹配行,或指定-v时的匹配行)。但是,如果指定了布尔RV功能和-v命令行选项,则它将适用于选定的非匹配行。默认值为空(即终端的默认颜色对)。
          rv,当指定-v命令行选项时,逆转(掉期)“sl=”和“cx=”功能的布尔值。缺省值为false(即省略了功能)。
          mt=01;31,用于匹配任何行中的非空文本的sgr子字符串。(这仅在省略-v命令行选项时使用。)当启动时,sl=(或cx=)能力的效果保持活跃。默认值是当前行背景上的粗体红色文本前景。
          ms=01;31,用于匹配选定行中的非空文本的sgr子字符串。(这仅在省略-v命令行选项时使用。)当启动时,sl=(或cx=)能力的效果保持活跃。默认值是当前行背景上的粗体红色文本前景。
          mc=01;31,用于匹配上下文行中的非空文本的sgr子字符串。(这仅在省略-v命令行选项时使用。)当启动时,sl=(或cx=)能力的效果保持活跃。默认值是当前行背景上的粗体红色文本前景。
          fn=35,用于任何内容行前缀的文件名的SGR子字符串。默认值是终端默认背景上的洋红色文本前景。
          ln=32,任何内容行前缀的行号的SGR子字符串。默认值是终端默认背景上的绿色文本前景。
          bn=32,用于任何内容行前缀的字节偏移的SGR子字符串。默认值是终端默认背景上的绿色文本前景。
          se=36,当指定了非零上下文(--),SGR子字符串用于在选定的行字段(:)、上下文行字段之间(-)和相邻行组之间插入分隔符。默认值是终端默认背景上的青色文本前景。
          ne,布尔值,该值防止在每次彩色项结束时使用擦除入行(EL)对右(\33[K]清除到行尾的值。这是在不支持EL的终端上需要的。对于没有应用Back_COLOR_ERASE(BCE)布尔终止功能的终端、所选择的高亮颜色不影响背景、或者当EL太慢或导致过多闪烁时,它在其他情况下是有用的。默认值为false(即省略功能)
     LC_ALL, LC_COLLATE, LANG,这些变量指定LC_COLLATE类别的区域设置,该类别确定用于解释范围表达式(如[a-z])的排序序列。
     LC_ALL, LC_CTYPE, LANG,这些变量指定LC_CTYPE类别的区域设置,它决定字符的类型,例如,哪些字符是空格。
     LC_ALL, LC_MESSAGES, LANG,这些变量指定LC_MESSAGES类别的区域设置,它确定grep用于消息的语言。默认的C语言环境使用美式英语消息。
     POSIXLY_CORRECT,如果设置,grep的行为与POSIX.2所要求的一样;否则,grep的行为更像其他GNU程序。POSIX.2要求必须将文件名后面的选项视为文件名;默认情况下,这些选项被排到操作数列表的前面,并被视为选项。此外,POSIX.2还要求将未被承认的选项诊断为“非法”,但由于它们并不真正违反法律,默认情况是将它们诊断为“无效”。POSIXLY_RIDER还禁用_N_GNU_NOOPTION_ARGV_LANGS_,如下所述。
     _N_GNU_nonoption_argv_flags_,(这里N是grep的数字进程ID。)如果此环境变量值的ith字符为1,则不要将grep的ith操作数视为选项,即使它似乎是选项之一。shell可以为其运行的每个命令在环境中放置此变量,指定哪些操作数是文件名通配符展开的结果,因此不应被视为选项。此行为仅在GNU C库中可用,且仅在未设置POSIXLY_RIDER时才可用。

4、退出码
     通常,如果找到选定的行,则退出状态为0,否则为1。但是,如果发生错误,退出状态为2,除非使用-q、--quite、--slient选项,并找到选定的行。但是,请注意,对于grep、CMP和diff等程序,POSIX只要求在出现错误时的退出状态大于1;因此,出于可移植性的考虑,建议使用对此一般条件进行测试的逻辑,而不是与2严格相等的逻辑。

5、实例
     1)显示文件中以2开头的行
[root@localhost weijie]# cat 2.c
123
23
212
[root@localhost weijie]# grep ^2 2.c         //显示以2开头的行
23
212
     2)显示不包含23的行
[root@localhost weijie]# grep -v 23 2.c
212
     3)显示整个字都匹配的行
[root@localhost weijie]# grep -w 23 2.c
23




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
86 [报告]
发表于 2018-12-28 08:07 |只看该作者

head
        显示文件开头的几行,默认显示10行,可以使用选项-n来指定行数。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
        head [选项]  files         

2、选项列表
选项
说明
--version
显示命令版本信息
--help
显示帮助文档
-c | --bytes=[-]K
显示文件开头的n个字节;-n显示所有内容,但是不包含最后n字节
-n | --lines=[-]K
显示开头的k行;-k显示所有行,但是不包含最后k行
-q | --quite | --silent
不显示文件名
-v | --verbose
显示文件名

3、实例
1)显示开头的10个字节
[root@localhost weijie]# cat 5.c               //查看所有内容
1,2c1,2
< 123
< 23
---
> 12345
> 2334
[root@localhost weijie]# head -c 10 5.c      //显示前10个字节
1,2c1,2
<
2)显示前3行
[root@localhost weijie]# head -n 3 5.c         //使用-n选项指定显示前3
1,2c1,2
< 123
< 23







论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
87 [报告]
发表于 2018-12-29 08:50 |只看该作者
[color=rgb(68, 68, 6]做了一个Linux学习的平台,目前出来一个雏形,各位可以参考使用
[color=rgb(68, 68, 6]链接:https://pan.baidu.com/s/1GOLVU2CbpBNGtunztVpaCQ  密码:n7bk
[color=rgb(68, 68, 6]

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
88 [报告]
发表于 2018-12-29 08:52 |只看该作者
more
       将内容较长的文本文件内容分屏显示,支持定位关键字。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
        more [-dlfpcsu]  [-num]  [+/pattern] [+linenum]  [file ...]

2、命令和选项列表
选项
说明
--version
显示命令版本信息
--help
显示帮助文档
-num
每一页显示的行数
-d
在最后一行显示说明
-l
更常见的做法是将^L(表单提要)视为特殊字符,并在包含表单提要的任何行之后暂停。-l选项将防止这种行为。
-f
只处理正常行,太长的行不处理
-p
不滚动,清屏显示文本
-c
不滚动,清屏显示全新的一页
-s
将多个空白行合并
-u
压制下划线
+/
在显示之前查找字符串
+num
从第num行开始显示

        当使用more指令之后,屏幕进入了more的命令模式,我们需要借助一些命令才能查看所有的内容。
命令
说明
h |
显示帮助信息
空格
显示下面的几行,默认是滚动一屏
z
显示下k行文本。默认为当前屏幕大小。参数成为新的缺省值。
回车
显示下面的几行,默认是一行
d | ^D
滚动几行,初始化时11
q | Q
退出
s
跳过前面的几行,默认是1
f
跳过前面的几屏,默认是1
b or ^B
跳过k个文本屏幕。默认为1。只适用于文件,而不是管道。
到以前搜索开始的地方
=
显示当前行号
!<cmd> or :!<cmd>
执行指令
v
在当前行启动编辑器。如果定义了环境变量VISUAL,则从环境变量获取编辑器;如果未定义VISUAL,则从EDITOR获取;如果未定义可视化或编辑器,则默认为“vi”。
^L
重新绘制屏幕
:n
跳转到下面的第n个文件,默认1
:p
跳转到前面的第n个文件,默认1
:f
显示当前的文件名和行号
.
重复之前的命令
/字符串
查找字符串,向尾部查找
?字符串
查找字符串,向头部查找

3、实例
       管道配合more, 在最底部显示了more指令的说明信息
[root@localhost weijie]# less /etc/httpd/conf/httpd.conf  
alsa-info
alsa-info.sh
alsaloop
alsamixer
amidi
amixer
amuFormat.sh
anthy-agent
--More--[Press space to continue, 'q' to quit.]




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
89 [报告]
发表于 2018-12-30 08:29 |只看该作者
cut
        将文件中每一行的指定内容显示到标准输出。
        此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
        cut [选项]  file

2、选项列表
选项
说明
--version
显示命令版本信息
--help
显示帮助文档
-b | --bytes=LIST
设置输出字节数或者范围
-c | --characters=LIST
设置输出的字符数或者范围
-d | --delimiter=DELIM
指定列的分隔符,默认是tab
-f | --fields=LIST
显示分割后的列
-n
和“-b”一起使用,不要分割多字节字符
--complement
补充选定的字节、字符或字段集
--output-delimiter=STRING
使用STRING作为输出分隔符,默认为使用输入分隔符
-s | --only-delimited
如果该行没有分隔字符,那么不显示这行

3、实例
        显示以:分割后的第3列
[root@localhost weijie]# cat /etc/passwd              //查看内容
root:0:0:root:/root:/bin/bash
bin:1:1:bin:/bin:/sbin/nologin
daemon:2:2:daemon:/sbin:/sbin/nologin
adm:3:4:adm:/var/adm:/sbin/nologin
lp:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost weijie]# cut -f 3 -d: /etc/passwd      //以:为分隔符,显示第3
0
1
2
3
4




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
90 [报告]
发表于 2018-12-31 10:11 |只看该作者
look
        显示文件中以特定字符串开始的行。在look执行二进制搜索时,必须对文件中的行进行排序。如果未指定文件,则使用文件“/usr/share/dict/words“,只比较字母数字字符,忽略字母字符的大小写。
        此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
       look [选项]  string files

2、选项列表
选项
说明
--version
显示命令版本信息
--help
显示帮助文档
-d
只对比数字和英文字母,其他忽略
-f
忽略字符的大小写
-a
使用字典文件/usr/dict/web2
-t
指定字符串结束符

3、实例
       显示以hello开头的行
[root@localhost weijie]# cat 1.c                //查看文件
hello world,
i am david.
i love linux,
love code.
[root@localhost weijie]# look hello 1.c       //显示以hello开头的行
hello world,




您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP