Linux的学习路程--2

重定向和管道

1.重定向顾名思义就是改变默认位置,并且根据文件的权限,则可以分为STDOUT(正确输出)和STDERR(错误输出),并且格式是  命令 + 操作符号 + 文件 。 符号如下:

>  正确内容输出,若文件不存在,则创建;若文件已存在,则覆盖原内容

>>正确内容输出,若文件不存在,则创建;若文件已存在,则追加内容

错误内容输出则是“ 2> ; 2>>”                    全部内容输出则是“&> ; &>>”

其中为避免操作失误,将重要文件内容覆盖,可以通过“set -C ”命令来禁止覆盖

2.tr 转换和删除字符

tr命令需要结合文件通配符来进行使用,其中:

tr -d   删除指定字符    

tr -c   取指定外的字符,一般结合 -d 一起使用

tr -s   删除连续重复的字符

3. 管道

“| ”管道符只将正确结果传递给右边的命令用

-----------------------------------------------------------------------------------------------------------------

用户组的管理和权限设定

1.四个文件需要记忆

/etc/passwd    用户及其属性信息:

用户名:密码:UID号:GID号:描述信息:家目录:默认的shell(其中密码为了安全则是映射到下面这个文件)

/etc/shadow   用户密码及其相关信息(通过chage这个命令可以进行修改):

用户名:加密明文码:距1970-1-1密码上一次修改时间:密码最短间隔修改时间:密码最长间隔修改时间:密码失效前提醒时间:密码失效后账户锁定时间:距1970-1-1多长时间失效

/etc/group    组及其属性信息

组名:组密码(通常不设定,被映射到下面这个文件):GID号:以当前组为附加组的用户列表

/etc/gshadow    组密码及其属性信息

组名:组密码:组管理员(可修改组密码和组成员):以当前组为附加组的用户列表

2.用户、组以及密码的相关命令

useradd [options] LOGIN (用户)                                                                    
-u UID 
-g GID/GROUP NAME:指明用户所属基本组,可为组名,也可以GID    
-c "COMMENT":用户的注释信息
-s SHELL: 指明用户的默认shell程序,默认不指定是为/bin/bash
-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在
-r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
-m 创建家目录,用于系统用户

-M 不创建家目录,用于非系统用户

gpasswd  (组管理员用户可以对组进行密码修改删除、增加用户到指定组中以及删除指定组的用户)
Options:
          -a, --add USER                增加单个用户到指定组当中(组管理员可执行)
         -d, --delete USER             从指定组中删除单个用户(组管理员可执行)
         -r, --delete-password         将指定组的组密码删除(组管理员可执行)
         -M, --members USER,...        一次性设置组成员(仅root执行,并且会覆盖原有用户)

         -A, --administrators ADMIN,... 设置组管理列表(root执行)

3.文件的权限

   chown ,只能root用户执行,才可以更改用户

               若使用 chown   .  或者: 后面接要改成的组,则可以对组进行修改。

               chown  --reference=用户  +其他用户,则是将其他用户的所属人和所属组改成和用户一样,此命令和                                                                                                chown -R (递归)用法一样

    chgrp  , 只有root和文件的所属用户可以修改所属组(并且要求所属用户存在于被改成所属组的用户列表)。

    chmod  修改权限 (r:只读 ;w:只写;x:只执行)

                 1.chmod   a-X  当批量进行执行权限“x”的增加时,此命令只对目录生效

                 2.数字表示法:r:4        w: 2           x: 1

                      chmod  ***  文件或目录 ,其中  *=r+w+x  {如果不需要某个权限,则不加那个权限代表的数字}

                     chmod   --reference X  Y     表示将Y的权限变成和X的一样

其中文件与目录在rwx权限上有着不同的组合定义:

                                    文件情况下                                                     目录情况下

当仅r:                用户可以读取该文件的内容                         用户可以短列出查看目录下的文件名
当仅w:              用户可以修改该文件的内容                         没有意义
当仅x:               没有意义                                                   用户可以进入且可以访问目录下的文件,但不能列出文件名
当rw:                用户可以读写文件                                      等同于“仅r”
当rx:                 用户可以读且可以执行该文件                      用户可以进入,可以访问子文件,同时可以长列出文件
当wx:               与仅w相同                                                 用户可以进入,可以访问子文件,可以创建及删除,但不能列出

当rwx:              用户可以读写执行(完整权限)                    用户可以读写执行(完整权限)

4.特殊权限

 suid: 对于可执行的二进制文件作用了suid权限之后,任何人在执行该文件时,可临时拥有其所属人的权限;   

                                                 (运用chmod  u+s 生效)

 sgid: 对于可执行的二进制文件作用了sgid权限之后,任何人在执行该文件时,可临时拥有其所属组的权限;

         对于目录作用了sgid权限之后,任何人在该目录下创建的文件的所属继承目录的所属组;

                                                 (运用chmod  u+s 生效)

sticky:对于目录作用了sticky之后,该目录下的文件及子目录,仅其所属人和目录的所属人及root才能删除。

                                                   (chmod  o+t 生效)

     如果文件本身     没有“x”权限位,则是用特殊权限后,“x”位分别显示“S、S、T”

                              有“x”权限位,则是用特殊权限后,“x”位分别显示“s、s、t”

5.ACL 访问控制列表

 acl权限的设置

 setfacl -m u|g : username|groupname : rwx  filename|dirname   设置文件或目录的用户或所属组的acl功能权限

 setfacl -x  u|g : username|groupname  filename|dirname            删除文件或目录的用户或所属组的acl功能权限

 setfacl -b filename |dirname                                                       删除所有的acl功能权限

 setfacl -m m:rwx filename|dirname 或 chmod g=rwx filename |dirname  设置文件或目录的权限上限(mask)

其中权限的优先顺序为  owner>user(设定了ACL)> group = group(设定了ACL) > other 

可事先在文件中编辑好acl权限的设定,

setfacl -M 文件 house/   将文件里的内容直接添加                setfacl -X 文件 house/   将文件里的内容直接删除

acl默认权限的设置

setfacl -m d:u:liubei:rwx dirname    表示用户只对该目录下未来新创建的文件或者目录生效
setfacl -Rm u:liubei:rwx  dirname    表示用户只对该目录以及已经存在的文件或目录生效

setfacl -k house/  仅删除默认权限

---------------------------------------------------------------------------------------------------------------------------------

grep和正则表达式

1.grep
-v 显示不被匹配到的行
-i 忽略关键字的大小写
-c 显示匹配行的数量
-o 仅显示匹配到的关键字
-q 静默输出,不打印过滤的结果,也可以用 &> /dev/null
-A x 当前行及后x行
-B x 当前行及前x行
-C x 当前行及前后x行
-w 匹配整个单词 表示字符边界 也可以用 "\<关键字\>"
-E 或 egrep 表示使用扩展正则表达式

-F 或 fgrep 不使用正则表达式

2.正则表达式(记住要和文件通配符区分开来)

 匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
* 匹配前面的字符任意次,包括0次或者无限次
.* 任意长度的任意字符
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次
\{n\} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次

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

位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$  用于模式匹配整行
^$  空行
^[[:space:]]*$  空白行  
grep -v "^[[:space:]]*$" passwd  去除文件中的空白行
\< 或 \b 词首锚定,用于单词模式的左侧
\> 或 \b 词尾锚定;用于单词模式的右侧
\<PATTERN\> 匹配整个单词


猜你喜欢

转载自blog.csdn.net/ruixycowboy/article/details/80467216