今天我给大家带来的是chmod chown umask命令的使用和解释,还有一些正则表达的介绍。(靠刚才写的博客浏览器死机了没给保存上怎么回事啊不是一会自动保存了吗,气死了)
chmod
chmod命令用来变更文件或目录的权限.
u User,即文件或目录的拥有者;
g Group,即文件或目录的所属组
o Other,除了文件或目录拥有者或所属组之外,其他用户的权限;
r 读取权限,八进制数字表示为“4”;
w 写入权限,八进制数字表示为“2”;
x 执行权限,八进制数字表示为“1”; - 不具任何权限,数字代号为“0”;
图片表示如图:
语法;
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE..
例子:
我把文件ssh_config的权限修改成 rwxrw-rw-
chown
chown命令改变某个文件或目录的所有者和所属的组
语法:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
-R: recursive 递归
例子:
把文件ssh_config 换成bb属组和aa所有者
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 [OPTIONS] PATTERN [FILE...]:
选项介绍:
--color=auto:对匹配到的串做高亮显示;
-v:显示模式匹配不到行;
-i: 忽略字符大小写;
-o: 仅显示能够被模式匹配到的串本行;
-q: 静默模式;
-E:使用扩展的正则表达式;
下面是一些例子:
grep 'bash$' /etc/passwd
grep -o --color '[0-9]\{2,3\}' /etc/passwd
3、显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾的行
netstat -tan | grep -E 'LISTEN[[:space:]]*$'
4、添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行
grep -E '(^[[:alnum:]]+\>).*\1$' /etc/passwd
5、显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)
egrep '^root|^centos|^user1' /etc/passwd|cut -d: -f1,3,7
6、找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行
cat /etc/rc.d/init.d/functions | egrep '\<[[:alpha:]_]+\(\)'
7、使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名
echo /etc/init.d/zabbix-agent | egrep -o '[^/]+/?*$' //文件
8、找出ifconfig命令执行结果中1-255之间的数字
ifconfig |egrep --color=auto "\<[1-9]\>|\<[1-9][0-9]\>|\<[12][0-9][0-9]\>"