Linux部分常用命令学习(二)

  1.wc:wc命令是一个统计的工具,主要用来显示文件所包含的行、字和字节数。wc命令是word count的缩写。

  命令格式:wc [选项参数] [文件]

  选项参数:

  -c 统计字节数

  -l 统计行数

  -m 统计字符数,这个标志不能与 -c 标志一起使用

  -w 统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串

  -L 打印最长行的长度

  2.grep:grep是个很强大的命令,用来找到文件中的匹配文本,并且能够接受正则表达式和通配符,同时可以用多个grep命令选项来生成各种格式的输出。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

  命令格式:grep [选项参数] pattern [文件]

  选项参数:

  -c 计算找到 ‘搜寻字符串‘(即pattern) 的次数

  -i 忽略大小写的不同,所以大小写视为相同

  -n 输出行号

  -v 反向选择,打印不匹配的行

  -r 递归搜索

  --color=auto 将找到的关键词部分加上颜色显示(加在命令最后)

  正则表达式与grep命令

  正则表达式是一种符号表示法,被用来识别文本模式。在某种程度上,它们与匹配文件和路径名的 shell 通配符比较相似,但其规模更大。许多命令行工具和大多数的编程语言都支持正则表达式,以此来帮助解决文本操作问题。

  正则表达式元字符由以下字符组成:

  ^ $ . [ ] { } - ? * + ( ) | \

技术分享

  3.cut:cut命令是一个将文本按列进行切分的小工具,它可以指定分隔每列的定界符。如果一行数据包含多个字段(多列),现在想要提取其中的一列或多列,这是cut命令就可以大显身手了。

  命令格式:cut [选项参数] [文件名]

  选项参数:

  -b 以字节为单位进行分割

  -c 以字符为单位进行分割

  -d 自定义分隔符,默认为制表符

  -f 自定义字段

  --complement 抽取整个文本行,除了那些由 -c 或 -f 选项指定的文本

  4.paste:aste 命令的功能正好与 cut 相反。它会添加一个或多个文本列到文件中,而不是从文件中抽取文本列。它通过读取多个文件,然后把每个文件中的字段整合成单个文本流,输入到标准输出

  命令参数:paste [选项参数] [文件名]

  选项参数:

  -s 将每个文件合并成行而不是按行粘贴

  -d 自定义分隔符,默认为制表符

  5.tr:tr命令常被用来更改字符。我们可以把它看作是一种基于字符的查找和替换操作。换字是一种把字符从一个字母转换为另一个字母的过程。tr从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。tr只能通过stdin(标准输入),而无法通过命令行参数来接受输入。tr是translate(转换)的缩写。

  命令格式:

  tr [选项参数] SET1 SET2   将来自stdin的输入字符从SET1映射到SET2,并将其输出写入stdout(标准输出)。SET1和SET2是字符类或字符集。如果两个字符集的长度不相等,那么SET2会不断重复其最后一个字符,直到长度与SET1相同。如果SET2的长度大于SET1,那么在SET2中超出SET1的那部分字符则全部被忽略。

  选项参数:

  -d 删除匹配SET1的内容,并不作替换

  例1.将输入字符中的大写字母替换为小写字母

  echo ‘THIS IS SHIYANLOU!’ | tr ‘A-Z’ ‘a-z’

  例2.将输入字符中的数字删除

  echo ‘THIS 123 IS S1HIY5ANLOU!’ | tr -d ‘0-9’

  6.sort:同文本文件打交道时,总避不开排序,那是因为对于文本处理任务而言,排序(sort)可以起到不小的作用。sort命令能够帮助我们对文本文件和stdin进行排序操作。通常,它会结合其他命令来生成所需要的输出。

  命令格式:sort [选项参数] [文件]

  选项参数:

  -n 基于字符串的长度来排序,使用此选项允许根据数字值排序,而不是字母值

  -k 指定排序关键字

  -b 默认情况下,对整行进行排序,从每行的第一个字符开始。这个选项导致sort 程序忽略每行开头的空格,从第一个非空白字符开始排序

  -m 只合并多个输入文件

  -r 按相反顺序排序,结果按照降序排列,而不是升序

  -t 自定义分隔符,默认为制表符

  7.uniq:uniq 命令经常和sort命令结合在一起使用。uniq 从标准输入或单个文件名参数接受数据有序列表,默认情况下,从数据列表中删除任何重复行。uniq只能用于排过序的数据输入,因此,uniq要么使用管道,要么将排过序的文件作为输入,并总是以这种方式与sort命令结合起来使用。uniq命令是unique的缩写。

  命令格式:uniq [选项参数] [文件]

  选项参数:

  -c 在每行前加上表示相应行目出现次数的前缀编号

  -d 只输出重复的行

  -u 只显示唯一的行

  -D 显示所有重复的行

  -f 比较时跳过前n列

  -i 在比较的时候不区分大小写

  -s 比较时跳过前n个字符

  -w 对每行第n 个字符以后的内容不作对照

  8.join:join 命令类似于 paste,它会往文件中添加列,但是它使用了独特的方法来完成。一个 join 操作通常与关系型数据库有关联,在关系型数据库中来自多个享有共同关键域的表格的数据结合起来,得到一个期望的结果。这个 join 命令执行相同的操作,它把来自于多个基于共享关键域的文件的数据结合起来。通俗地说,就是将两个文件中指定栏位相同的行连接起来,即按照两个文件中共同拥有的某一列,将对应的行拼接成一行。

  命令格式:join [选项参数] [文件1]  [文件2]

  选项参数:

  -j FIELD 等同于 -1 FIELD -2 FIELD,-j指定一个域作为匹配字段

  -1 FIELD 以file1中FIELD字段进行匹配

  -2 FIELD 以file2中FIELD字段进行匹配

  -t 自定义分隔符,默认为制表符

  9.common:通常比较文本文件的内容很有帮助。对于系统管理员和软件开发者来说,这个尤为重要。一名系统管理员可能,例如,需要拿现有的配置文件与先前的版本做比较,来诊断一个系统错误。同样的,一名程序员经常需要查看程序的修改。comm命令将逐行比较已经排序的两个文件。显示结果包括3列:第1列为只在第一个文件中找到的行,第2列为只在第二个文件中找到的行,第3列为两个文件的共有行。

  注意,comm命令和join、uniq命令一样,只能用于已经排过序的数据

  命令格式:comm [选项参数] 文件1 文件2

  -1 不输出文件1特有的行

  -2 不输出文件2特有的行

  -3 不输出两个文件共有的行

  10.df:linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。df命令是disk free的缩写。

  命令格式:df [选项参数]  [文件]

  选项参数:

  -a 全部文件系统列表

  -h 方便阅读方式显示

  -i 显示inode信息

  -T 文件系统类型

  -t<文件系统类型> 只显示选定文件系统的磁盘信息

  -x<文件系统类型> 不显示选定文件系统的磁盘信息

  11.du:linux中du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看。du命令是disk usage的缩写。

  命令参数:du [选项参数] [文件]

  选项参数:

  -a 显示目录中个别文件的大小。

  -b 显示目录或文件大小时,以byte为单位。

  -c 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。

  -k 以KB(1024bytes)为单位输出。

  -m 以MB为单位输出。

  -s 仅显示总计,只列出最后加总的值。

  -h 以K,M,G为单位,提高信息的可读性

  12.time:time命令常用于测量一个命令的运行时间,包括实际使用时间(real time)、用户态使用时间(the process spent in user mode)、内核态使用时间(the process spent in kernel mode)。实际时间: 从command命令行开始执行到运行终止的时间。用户态使用时间:命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和。内核态使用时间:命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和。其中,用户CPU时间和系统CPU时间之和为CPU时间,即命令占用CPU执行的时间总和。实际时间要大于CPU时间,因为Linux是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务

  命令格式:time 命令

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。