linux文本处理工具

linux文本处理工具

1.Linux 文件系统上的特殊权限: SUID     SGID   Sticky  

    进程的安全上下文:(1)任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行去权限

                                (2)启动为进程后,其属主为发起者,属组为发起者所属的组

                                (3)进程访文件的权限,取决于进程的发起者

                                            (a)  进程的发起者,同文件的属主:则应用文件属主权限
                                            (b)  进程的发起者,属于文件属组;则应用文件属组权限
                                            (c) 应用文件“其它”权限

SUID只对二进制可执行程序有效,设置在目录上无意义:chmod u+s file

SGID   对二进制文件生效,继承程序所属组的权限         chmod g+s

          作用在目录上,目录内新建文件的所属组自动继承目录所属组       (这个很实用)

sticky   粘滞位  作用在目录上,目录内的文件只有所有者能删除     chmod o+t

              当没有执行权限x时,特殊权限s,t会变成大写,特殊权限位可以用数字表示4,2,1,分别代表u,g,o

为防止用户误操作;还可以给文件创建特定属性:

        chattr +i  file            不能删除,改名,更改 ;               -A表示锁定时间戳,

         chattr +a                只能追加内容

         查看文件的特定属性:lasttr  file

ACL :Access Control List ,实现灵活的权限管理

            除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

            ACL 生效顺序:所有者,自定义用户,自定义组,其他用户

通过实例来了解:   支持使用 – R   递归设置

setfacl -m u:wang:rwx     filename|dir            #自定义用户wang 拥有文件的rwx权限

setfacl -m g:group:rwx     filename|dir            #自定义组group有文件的rwx权限

setfacl  -x  u:username                                 #从文件acl表删除用户

           -k :                                                 # 清空默认的acl权限,增加的不会清空;完全清空使用 -b

getfacl       filenam                                      #查看文件的acl权限列表

               一旦有了ACL权限,中间组的权限不是原来的意思了,而是mask限高权限

                mask :r     限高线      意思是最高权限是r,不能超过
                   exam:   setfacl -m mask::rx file

文本的处理工具有:less   cat    head   tail    cut  grep    sort   uniq   cat   tac  rev

 cat  -E     :显示行结束符$                           head   -n#       指定获取前# 字节      taii     -n#

        -n    :对每行进行编号                                      -#       指定获取前#行                      -#   

        -A    :显示所有控制符                                     -c #     指定行数                               -c#

        -s    :压缩连续的空行成一行                                                                              -f    动态显示追加的内容

cut -d: -f2  filename              -d指定分隔符: -f指定抽取第几段,可以指定多段和连续

paste   f1  f2              #合并两文件同行号的列到一行

paste   -s   f1  f2         #也是合并意思,只是f1 内容一行显示,f2内容也一行显示,可以认为并排的两行文件

wc  -l      -w      -c       #分别统计行数,单词数,字节数;

sort   -r                       #执行反方向(由上至下)整理

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

uniq   -c                      #显示每行重复出现的次数

         -d                     #仅显示重复过的行

         -u                     #仅显示不曾重复的行

diff  f1  f2                   #比较两个文件之间的区别;命令的输出被保存在一种叫做“补丁”的文件

                                     使用 -u 选项来输出“统一的(unified )”diff 格式文件,最适用于补丁文件。

patch  -b                     #适用 -b 选项来自动备份改变了的文件;  diff和patch 就是用来打补丁的意思

文本处理三剑客

grep:文本过滤工具              grep, egrep, fgrep(不支持正则表达式)

sed :stream editor

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

 grep [OPTIONS] PATTERN [FILE…]          模式:由正则表达式字符及文本字符所编写的过滤条件

        -v    #显示不被模式匹配到的行               -i     #忽略字符大小写

        -n    #显示匹配的行号                           -c    #统计匹配的行号

        -o    #仅显示匹配到的字符串                  -q    #静默模式,什么都不输出

        -A -B -C  #    显示模式匹配到的后 ,前,上下各#行,对应单词意思after,befor,context

        -e    #实现多个选项间的逻辑or 关系        -E    #使用扩展正则表达式    -F   #使用fgerp

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

分为两类:  基本正则表达式:BRE                                                      扩展正则表达式:ERE

               和文件名通配有点区别,就个别不一样

                .      #匹配任意单个字符

                *      #匹配前面的字符任意次,贪婪模式:尽可能长的匹配

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

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

               ^  行首锚定        $行尾锚定      ^$   空行

                 \b  词首锚定,用于单词模式的左侧     \ba   #a在词首

                 \b  词尾锚定;用于单词模式的右侧      a\b   #a在词尾 

                \<PATTERN\>    # 匹配整个单词  \是转义

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

                  后 向引用:引用前面的分组括号中的模式所 匹配字符 , 而非模式本身

扩展正则表达式:

                *   #匹配前面字符任意次

                ?  #0次或1次

                +   #一次多多次

                {m,n} #至少m次,至多n次,也可分开

                C|cat: C 或cat        (C|c)at:Cat 或cat  

              

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

(0)
上一篇 2017-02-25 14:50
下一篇 2017-02-25 15:41

相关推荐

  • 走进Linux(二)

    Linux基础知识 1、文件管理类命令 mkdir:创建空目录 格式 mkdir [选项](可跟多个选项) 要创建的目录名 选项 -p:递归创建多个目录                             &nbsp…

    Linux干货 2016-09-26
  • Linux运维学习历程-第七天-Linux文本工具及正则表达式

    文本处理工具: Linux文本处理三剑客:   grep、egrep、fgrep:文本过滤工具(模式:pattern)工具      grep:基本正则表达式 -E -F      egrep:扩展正则表达式 -G -F      fgrep:不支持正则表达式…

    Linux干货 2016-08-10
  • 性能调优概述

    大纲: 一、概述 二、什么是性能调优?(what) 三、为什么需要性能调优?(why) 四、什么时候需要性能调优?(when) 五、什么地方需要性能调优?(where) 六、什么人来进行性能调优?(who) 七、怎么样进行性能调优?(How) 八、总结 注,硬件配置:CUP Xeon E5620 x 2 8核心, 内存 16G , 硬盘 RAID 10,操作…

    Linux干货 2015-02-10
  • Linux三剑客之sed命令

    一.sed命令概述 Stream EDitor ,行编辑器 sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为”模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变除非你使用重定向存储输出.sed主…

    Linux干货 2016-08-15
  • N22-第十二周作业

    1、请描述一次完整的http请求处理过程; (1)建立或处理连接:接受请求或拒绝请求 (2)接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程 (3)处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息 (4)访问资源:获取请求报文中请求的资源 (5)构建响应报文 (6)发送响应报文 (7)记录日志:访问日志和错误日志 …

    Linux干货 2016-11-04
  • 基础命令。

    简单基础小命令 查看目录 ls 查看当前路径下的目录 ls -a 查看当前路径下的所有目录,包含隐藏目录(带.的就是隐藏) ls -A 跟-a一样,只是不显示上一路径和本身路径(就是.和..) ls -l 显示额外的信息 ls -R 进入每个文件夹查看(递归) ls -ld 查看元数据 ls -1(数字) 排列 ls -r 倒序 ls -t 按修改时间排序 …

    Linux干货 2017-05-29