今天我给大家带来的是chmod  chown umask命令的使用和解释,还有一些正则表达的介绍。(靠刚才写的博客浏览器死机了没给保存上怎么回事啊不是一会自动保存了吗,气死了)

  • chmod

      chmod命令用来变更文件或目录的权限.

u User,即文件或目录的拥有者;

g Group,即文件或目录的所属组

o Other,除了文件或目录拥有者或所属组之外,其他用户的权限; 

a All,即全部的用户,包含拥有者,所属组以及其他用户; 

r 读取权限,八进制数字表示为“4”; 

w 写入权限,八进制数字表示为“2”;

x 执行权限,八进制数字表示为“1”; - 不具任何权限,数字代号为“0”; 

s 特殊功能说明:变更文件或目录的权限

图片表示如图:

                       wKioL1XhtUqSZFoVAAESsB9pCuM446.jpg

语法;

     chmod [OPTION]... MODE[,MODE]... FILE...

       chmod [OPTION]... OCTAL-MODE FILE...

       chmod [OPTION]... --reference=RFILE FILE..

例子:

我把文件ssh_config的权限修改成 rwxrw-rw-

                  wKioL1Xhtd-hp86tAAE5nXT2ve4460.jpg

  • chown

       chown命令改变某个文件或目录的所有者和所属的组

        语法:

       chown [OPTION]... [OWNER][:[GROUP]] FILE...

        chown [OPTION]... --reference=RFILE FILE...

        -R: recursive   递归

例子:

      把文件ssh_config 换成bb属组和aa所有者

               wKiom1XhtH_TB46hAAEvEoXwdKU244.jpg

  • umask

    umask:遮罩码

    目录:777-umask  

    文件:666-umask

        PS:如果某一类用户的权限减得的结果有执行权限,此时会自动让其权限位加1;

     语法:

    umask UMASK

    设定:仅对当前shell进程有效;(不多解释)

  • 下面是正则表达式的介绍(grep\egrep\fgrep)

   

分两类:

基本正则表达式:BRE

扩展正则表达式:ERE


基本正则我降介绍:

    字符匹配:

”.“  : 匹配任意单个字符;

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

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

       [:Alnum:] 字母数字(0-9,a-z,A-Z)

       [:Alpha:] 字母(a-z,A-Z)

       [:Blank:] 空格和制表符(' '|\t)

       [:Cntrl:] 控制字符,不可打印

       [: Digit:] 数字(0-9)

       [:Graph:] 可打印且可视字母(例如空格' '是可打印的但不是可视字母,而 `a' 两者都是。)

       [:Lower:] 小写字母

       [:Print:] 可打印字母(非控制字符)

       [: Punct:] 标符号(字母、数字、控制、空白符以外的字母),如:!@#$%}{<>,./?[]等等。

       [:Space:] 空白符

       [:Upper:] 大写字母

       [: XDigit:] 十六进制数字(0-9,a-f, A-F)

次数匹配:用于要指定其次数的字符的后面;

*: 任意次;

\?:0或1次

\+:1或多次; 

\{m\}:精确限制为m次;

\{m,n\}: 至少m次,至多n次,[m,n]

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

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

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

位置锚定的有:

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

$: 行尾锚定;用于模式的最右侧;

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

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

^$: 空白行;

分组表示:

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

         \1: 从左侧起,第一个左括号,以及与之配对的右括号中间的模式所匹配到的内容;

\2:

...

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

grep家庭有三个命令:

grep:基本正则表达式

      -E: 扩展正则表达式

       -F:不支持正则表达式

egrep:扩展正则表达式

fgrep:不支持正则表达式

  • grep

     作用:文本搜索工具,根据用户指定的“模式(pattern)”逐行去搜索目标文本,打印匹配到的行;

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

     语法:

                grep [OPTIONS] PATTERN [FILE...]:

     选项介绍:

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

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

-i: 忽略字符大小写;

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

-q: 静默模式;

-E:使用扩展的正则表达式;

下面是一些例子:

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

grep 'bash$'  /etc/passwd

wKiom1XhuWKS9RCwAAC6utk3KrI396.jpg

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

grep -o --color '[0-9]\{2,3\}' /etc/passwd

wKiom1XhuuXy2E4WAACnrId29sA258.jpg

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

netstat -tan | grep -E 'LISTEN[[:space:]]*$'

wKioL1XhvCeyENVkAADNlYw3Veo301.jpg

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

grep -E '(^[[:alnum:]]+\>).*\1$' /etc/passwd

wKiom1XhvMHQpZWoAAFzYFSt2iI650.jpg

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

egrep '^root|^centos|^user1' /etc/passwd|cut -d: -f1,3,7

wKioL1XhvyeRBUf6AADX2CirRpg964.jpg

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

cat /etc/rc.d/init.d/functions  |  egrep  '\<[[:alpha:]_]+\(\)'

wKiom1XhvTWAHiS0AAFhGpld-fU927.jpg

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

echo /etc/init.d/zabbix-agent | egrep -o '[^/]+/?*$'  //文件

wKiom1XhvXOTZcfkAABo4UWPbxQ532.jpg

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

ifconfig |egrep --color=auto "\<[1-9]\>|\<[1-9][0-9]\>|\<[12][0-9][0-9]\>"

wKioL1Xhv8TyUNzrAAGiRtaPupk516.jpg