linux高级命令

一.grep

作用:
一种强大的文本搜索工具,可以使用正则表达式
语法:

grep [参数] '匹配关键字' fileName

参数:

-a --text  # 不要忽略二进制数据。
-A <显示行数>   --after-context=<显示行数>   # 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b --byte-offset                           # 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-B<显示行数>   --before-context=<显示行数>   # 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c --count    # 计算符合范本样式的列数。
-C<显示行数> --context=<显示行数>或-<显示行数> # 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> --directories=<动作>  # 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> --regexp=<范本样式>   # 指定字符串作为查找文件内容的范本样式。
-E --extended-regexp             # 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> --file=<规则文件>     # 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F --fixed-regexp   # 将范本样式视为固定字符串的列表。
-G --basic-regexp   # 将范本样式视为普通的表示法来使用。
-h --no-filename    # 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H --with-filename  # 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i --ignore-case    # 忽略字符大小写的差别。
-l --file-with-matches   # 列出文件内容符合指定的范本样式的文件名称。
-L --files-without-match # 列出文件内容不符合指定的范本样式的文件名称。
-n --line-number         # 在显示符合范本样式的那一列之前,标示出该列的编号。
-P --perl-regexp         # PATTERN 是一个 Perl 正则表达式
-q --quiet或--silent     # 不显示任何信息。
-R/-r  --recursive       # 此参数的效果和指定“-d recurse”参数相同。
-s --no-messages  # 不显示错误信息。
-v --revert-match # 反转查找。
-V --version      # 显示版本信息。   
-w --word-regexp  # 只显示全字符合的列。
-x --line-regexp  # 只显示全列符合的列。
-y # 此参数效果跟“-i”相同。
-o # 只输出文件中匹配到的部分。
-m <num> --max-count=<num> # 找到num行结果后停止查找,用来限制匹配行数

二.sed

作用:
功能强大的流式文本编辑器,文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
语法:

sed [参数] [动作]

参数:

 -n:使用安静模式。在一般 sed 的用法中,所有来自 stdin 的数据一般都会被列出到终端上。但如
    果加上 -n 参数后,则只有经过 sed 特殊处理的那一行或者动作.才会被列出来。
 -e:直接在命令列模式上进行 sed 的动作编辑。
 -f:直接将 sed 的动作写在一个文件内,-f file 则可以运行 file 内的 sed 动作。
 -r:sed 动作支持的是延伸型正则表达式的语法。
 -i:直接修改读取的文件内容,而不是输出到终端。

动作:

[n1[,n2]] function
 n1,n2:不见得会存在,一般代表[选择进行动作的行数],举例来说,如果我的动作是需要在 10 到 20
行之间进行的,则[10,20[动作行为]]
 function:
 a:新增,a 的后面可以接字符串,而这些字符串会在新的一行出现目前的下一行.
 c:取代,c 的后面可以接字符串,这些字符串可以取代 n1,n2 之间的行
 d:删除,d 后面通常不接任何字符串
 i:插入,i 的后面可以接字符串,而这些字符串会在新的一行出现目前的上一行.
 p:将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
 s:取代,可以直接进行取代的工作。通常这个 s 的动作可以搭配正则表达式。例
如:1,20s/old/new/g

三.awk

作用:
awk 是一个强大的文本分析工具,相对于 grep 的查找,sed 的编辑,awk 在其对数据分析并生成报告时,
显得尤为强大。简单来说 awk 就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分
再进行各种分析处理。
语法:

awk '{pattern + action}' {filenames}

功能描述:

	pattern 就是要表示的正则表达式,用斜杠括起来。而 action 是在找到匹配内容时所执行的一系列
命令。
 awk 最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk 抽取信息后才能进行其
他文本操作。完整的 awk 脚本通常用来格式化文本文件中的信息。
 通常,awk 是以文件的一行为处理单位的。awk 每接收文件的一行,然后执行相应的命令,来处理文
本。

内置变量:
awk 有许多内置变量用来设置环境信息,这些变量可以被改变,下面给出了最常用的一些变量。

 ARGC :命令行参数个数
 ARGV :命令行参数排列
 ENVIRON :支持队列中系统环境变量的使用
 FILENAME:awk 浏览的文件名
 FNR :浏览文件的记录数
 FS :设置输入域分隔符,等价于命令行 -F 选项,默认分隔符是\tab
 NF :浏览记录的域的个数
 NR :已读的记录数
 OFS :输出域分隔符
 ORS :输出记录分隔符
 RS :控制记录分隔符
 $0 :整条记录
 $1 :表示当前行的第一个域

awk编程:
1.变量和赋值
除了 awk 的内置变量,awk 还可以自定义变量。

<1> 下面统计/etc/passwd 的账户人数
命令 awk '{count++;print $0;} END{print "user count is ",count}' /etc/passwd
说明:count 是自定义变量。之前的 action{}里都是只有一个 print,其实 print 只是一个语句,而
action{}可以有多个语句,以;号隔开。
<2> 上例中没有初始化 count 变量的值,妥当起见,还是先赋值
命令 awk 'BEGIN {count=0;print "[start]user count is ",count} {count++;print $0;} 
END{print "user count is ",count}'
<3> 统计某个文件夹下的文件占用的字节数
命令 ls -l|awk 'BEGIN {size=0;} {size+=$5;} END{print "[end]size is ",size}'
说明:统计不包括文件夹的子目录

2.条件语句

 if 表达式. {语句;}
 if 表达式 1. {语句;} else if 表达式 2. {语句;}
 if 表达式. {语句;} else {语句;}
 <1> 统计某个文件夹下的文件占用的字节数,过滤 4096 大小的文件一般都是文件夹.
 命令 ls -l | awk 'BEGIN {size=0;print "[start]size is ",size} {if($5!=4096)
{size+=$5;}} END{print "[end]size is ",size/1024/1024,"M"}'

3.循环语句

while、do/while、for、break、continue

四.seq

作用:
seq 命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,
并且可以对整数的格式、宽度、分割符号进行控制。
语法:

 seq [选项] 尾数
 seq [选项] 首数 尾数
 seq [选项] 首数 增量 尾数

参数:

 -f:--format,格式
 -s:--separator,字符串,使用指定的字符串分割数字默认使用个"\n"分割.
 -w:--sequal-width,在列前添加 0,使得宽度相同

五.cut

作用:
cut 命令用来显示行中的指定部分,删除文件中指定字段。cut 经常用来显示文件的内容。说明:该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数 file 所指 明的文件,将
它们的内容输出到标准输出上;其二是连接两个或多个文件,如 cut fl f2 > f3 将把文件 fl 和 f2 的
内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件 f3 中。
语法:

cut 选项 参数.

参数:

-b:仅显示行中指定直接范围的内容
-c:仅显示行中指定范围的字符
-d:指定字段的分隔符,默认的字段分隔符为“TAB”
-f:显示指定字段的内容
-n:与“-b”选项连用,不分割多字节字符
--complement:补足被选择的字节、字符或字段

六.sort

作用:
sort 命令是在 Linux 里非常有用,它将文件进行排序,并将排序结果标准输出。sort 命令既可以从特
定的文件,也可以从 stdin 中获取输入。
语法:

sort 选项.参数.

参数:

-b:忽略每行前面开始出的空格字符;
-c:检查文件是否已经按照顺序排序;
-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
-f:排序时,将小写字母视为大写字母;
-i:排序时,除了 040 至 176 之间的 ASCII 字符外,忽略其他的字符;
-m:将几个排序号的文件进行合并;
-M:将前面 3 个字母依照月份的缩写进行排序;
-n:依照数值的大小排序;
-o<输出文件>:将排序后的结果存入制定的文件;
-r:以相反的顺序来排序;
-t<分隔字符>:指定排序时所用的栏位分隔字符;
+<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

七.uniq

作用:
如果排序完成了,将重复的行仅显示一次。注意,若文件未排序,该命令失效。
语法:

uniq [-ic] filename

参数:

-i:忽略大小写
-c:统计每行重复的次数
-d 或--repeated:仅显示重复出现的行列

八.wc

作用:
统计文件中有多少行,多少字,多少字符
语法:

wc [-lwm] filename

参数:

-l:仅显示行数
-w:仅显示字数英文单词个数. -m:字符数
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Antgeek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值