码迷,mamicode.com
首页 > 系统相关 > 详细

linux 文件管理和文本三剑客之一grep,以及正则的使用

时间:2015-09-03 21:59:48      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:最全的linux文件管理和grep命令用法

1:文件权限

    用户对文件的访问有三种:r(读),w(写),x.对于文件和目录有点区别。

        文件:

            r:使用文本查看工具可以查看其文件内容。

            w:使用文本编辑工具可以编辑其文件内容。

            x:可向内核请求将此文件运行为进城执行。

        目录:

            r:可以使用ls命令列出文件下子目录和文件的列表。

            w:可以在此目录中创建和删除文件。

            x:可使用‘ls -l‘命令列出目录及子目录的文件属性,可以使用cd切换工作目录为制定目录。

    

    文件权限主要针对三类对象进行定义。

        owner:属主  , group:属组, other :其他用户。

    权限管理的三个命令

    更改文件所属组: chgrp(change group) 组名 文件名

    如文件test 属于 test组 更改为admin组,命令为: chgrp admin test.

         -R :表示级联更改此目录下子文件和子目录的所属组。


    文件属主管理:chown   

如文件 test 属主为 test 改为属主为centos  chown centos test.

            -R:也是表示级联更改。

    级联更改文件的所属主和所属组 

        chown -R 用户名:所属组 文件名。

            

    更改文件的权属限 chmod :r=4,w=2,x=1  

    chmod [-R] xyz 文件权限。

    第一种更改:

        如更改级联更改文件的test 为属主为读写只执行权限,属组为读权限,其他为执行权限。   chmod -R u=wrx,g=wr,o=x test 

技术分享

    

    第二种更改:可以使用+wrx,或者-wrx +:表示增加权限,-表示去掉拥有的权限。

        chmod -R u-wr,g+x,o+wr test

技术分享


    第三种更改:通过数字权限进行7=wrx r=4,w=2,r=1 0代表没有任何权限。

    chmod -R 701 test

技术分享


    默认一个目录的权限是755,一个文件的权限是644

技术分享

    文件的默认权限 取决于umask 值

umask:代表着目前用户在新建文件或者目录时候的权限的默认值。

输入umask 命令 当前的被减掉默认权限值。

默认情况下规则

    1:创建文件时默认的最高权限为666  即是u=wr,g=wr,o=wr 。少了一个执行权限,是因为安全考虑,文件初创不能被执行。

    2:创建目录时,是因为要进入到该目录所以目录是有执行权限的,所以目录的最高权限为777。


    定义umask 值为002 

技术分享

     

由于定义了umask 002值。由因为创建文件的最高权限为666 ,所以默认的初始权限为:

u,属主 wr-0=wr代表有读写权限,g属组 wr-0 =wr读写权限,其他的用户和组的权限为 rw-w=r只有读权限,这是创建文件。

创建目录时,因为创建目录的最该权限是777,所以属主:wrx-0=wrx拥有wrx,属组wrx-0=wrx拥有wrx,o=rwx-x=rw拥有rx权限。

技术分享


如果umask 的值为003  那么对创建文件来说属主 rw,属组rw 其他用户  rw-w=r 取值。

如果umask 的值为005  那么对与创建文件来书 属主 rw,属组 rw,其他用户 rw-r=w。由于默认没有执行权限,所以必须要把 执行权限去掉。比如003 最后一个3 的理论权限为 wx ,由于没有执行权限所以实际权限为w,把w减掉那么为 r,所以最终的其他用户和组的取的权限为 r权限。


2:文本三剑客之一grep的使用


    linux 文本处理三剑客。

        grep:文本过滤工具。

        sed:文本编辑器。

        awk:文本报告生成器.



    grep :global search REgular expression and Print out the line 基于全局的正则表示式的匹配到行的打印工具。

    模式:由正则表达式的元字符以及文本字符所编写的过滤条件。

    元字符:字符不表示其字面的意义,而用于表示统配或者控制功能。

    正则分两类:

        基本正则表达式:BRE

        扩展正则表达式:ERE

    grep [option] PATTERN  file..

       --color:对匹配到的串做高亮显示;

       -v:显示模式匹配不到的行。

       -i:忽略大小写。

       -o:仅显示能够被匹配到的串本行;

       -q:静默模式。



    grep 家有三命令:

        grep:基本正则表达式

            -E :支持扩展表达式

            -F:不支持正则表达式。

        egrep:扩展表达式

        fgrep:不支持正则表达式。


    基本正则表达式的元字符:

        字符匹配:

            .:匹配任意单个字符。

            []:匹配制定范围内的单个字符,如[0-9] 表示0-9内的任意个字符,[A_Z]表大写A-Z内的任意单个字符,[a-z]:表达任意单个字符的小写字母。

            [^]:制定范围内的非单个字符。

        常用的特殊符号:

            [:lower:]:代表小写字符即[a-z]

            [:upper:]:代表大写字符[A-Z]

            [:space:]:代表空白键。

    

        次数匹配,用于指定其前面字符的出现的次数的匹配

            *:只出现前面字符重复任意次。

            \?:0次或者1次。\代表转义。

            \+:1次或者多次。

            \{m\}:代表精确m次。

            \{n,m\}:代表[n,m]区间次。

            \{0,n\}:至多n次。

            \{m,\}:至少m次。

        .*:匹配任意长度的任意字符。


        位置锚定:

            ^:行首锚定。

            $:行末锚定。

           \<,\b:词首锚定用于表示单词的模式的左侧;

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

           ^$:空白行。

            

        分组\(\)  

            分组小括号中匹配到的内容,会在执行过程中被正则表达式引擎记录下来,并保存到变量中。;这些变量分别是\1,\2......

        

        后向引用:使用变量引用前面分组括号中的模式所匹配到的字符。

扩张正则表达式

    或者表达 : |    a|b

        C|cat:表示C或者cat ,不是Cat或者cat,如要写(C|c)at

        +:重复一个或者一个以上的前一个正则RE

        ?:零个或者一个前一个字符。

        ():找出组字符

        ()+:多个重复组的判定。

1、显示/etc/passwd文件中以bash结尾的行

    grep ‘bash$‘ /etc/passwd

技术分享

2、显示/etc/passwd文件中的两位数或三位数

   grep ‘[0-9]\{2,3\}‘ /etc/passwd

3、显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行

   ?

4、添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行

    ?

5、显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)

?

6、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行

?

7、使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名

?

8、找出ifconfig命令执行结果中1-255之间的数字

?








     

    

linux 文件管理和文本三剑客之一grep,以及正则的使用

标签:最全的linux文件管理和grep命令用法

原文地址:http://shunzi5160.blog.51cto.com/9120209/1691002

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!