一、作業(練習)內容:
1、總結本此課程中所涉及命令的使用方法及相關示例展示;
chmod
1.命令解釋:
改變文件權限
語法結構:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
命令選項:
-R : 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞迴的方式逐個變更)
三類:
u: owner
g: group
o: other
a: all
操作指定類別用戶的權限:-
u-,g-,o-
ug=,a=
操作某類用戶的某些位權限:+|-
u+,g+,o+
u-,g-,o-
使用實例:
修改123.txt文件屬組有執行權限:
chmod g+x /tmp/123.txt
修改123.txt文件屬性爲777:
chown
1.命令解釋:
改變文件的所有者
2.命令參數:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
3.使用實例:
修改/tmp/123.txt文件的屬主,屬組爲hzm組爲hzm
chown hzm:hzm /tmp/123.txt
chgrp
1.命令解釋;
改變文件的所屬用戶組
2.命令語
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
3.使用實例:
將123.txt文件的屬組改回root組:
chgrp root 123.txt
umask
目錄:777-umask
文件:666-umask
如果某一類用戶的權限減得的結果有執行權限,此時會自動讓其權限位加1;
umask UMASK
設定:僅對當前shell進程有效;
2、總結基本正則表達式及擴展正則表達式
正則表達式:grep: Global search REgular expression and Print out the line.
作用:文本搜索工具,根據用戶指定的“模式(pattern)”逐行去搜索目標文本,打印匹配到的行;
模式:由正則表達式的元字符及文本字符所編寫的過濾條件;
元字符:字符不表示其字面意義,而用於表示通配或控制功能;
分兩類:
基本正則表達式:
字符匹配:
. 匹配任意單個字符
[] 匹配指定範圍內的任意單個字符
[^] 匹配指定範圍外的任意單個字符
[0-9],[[:digit:]],[^0-9],[^[:digit:]]
[a-z],[[:lower:]]
[A-Z],[[:upper:]]
[[:space:]]
[[:punct:]]
[0-9a-zA-Z],[[:alnum:]]
[a-zA-Z],[[:alpha:]]
次數匹配:在期望匹配字符後面提供一個控制符,用於表達匹配前面字符指定的次數
* 任意長度 ,表示0次,1次或多次
.* 任意長度任意字符 工作於貪婪模式
\? 匹配其前面的字符 0次或1次,可有可無
\+ 1次或者多次 意思是前面的字符不能沒有,或者多次
\{m\} 其左側字符精確匹配m次
\{m,n\}至少m次,至多n次
\{m,\} 至少m次 多則不限
位置錨釘:
^ 錨定行首
$ 錨定行尾
^..$ 用模式來匹配整行內容
^$ 匹配空白行
單詞錨定:
\< 錨釘詞首 \b
\> 錨定詞尾 \b
\<PARTTERN\> 匹配PARTERN 能匹配到的整個單詞
分組:\(\)
\(\) \1 匹配模式中自左而右,由第一個左括號以及之前對應的右括號中的模式所匹配到的內容
\(\) \2 匹配模式中自左而右,由第二個左括號以及之前對應的右括號中的模式所匹配到的內容
注意:分組模式,在末次具體匹配過程中所匹配到的字符,可以被grep記憶(保存於內置的變量中,這些變量是\1,\2 ....),因此,還可以被引用
擴展正則表達式:
字符匹配:
.任意長度 ,表示0次,1次或多次
.* 任意長度任意字符 工作於貪婪模式
[] 匹配指定範圍內的任意單個字符
[^] 匹配指定範圍外的任意單個字符
次數匹配:
* 任意次
? 匹配其前面的字符 0次或1次,可有可無
+
{m}
{m,}
{0,n}
位置錨釘:
^
$
\< \>, \b
分組:
()\1
或者
a|b|c a或者b或者c
或者兩側所有內容
3、顯示/etc/passwd文件中以bash結尾的行
egrep bash$ /etc/passwd
4、顯示/etc/passwd文件中的兩位數或三位數
egrep --color=auto '\<[0-9]{2,3}\>' /etc/passwd
5、顯示`netstat -tan`命令結果中以‘LISTEN’後跟0個、1個或者多個空白字符結尾的行.
netstat -tan | egrep --color 'LISTEN[[:space:]]+$'
6、添加用戶bash、testbash、basher以及nologin用戶(nologin用戶的shell爲/sbin/nologin);而後找出/etc/passwd文件中用戶名與其shell名相同的行.
egrep "\<([[:alnum:]]+\>).*\1$" /etc/passwd | cut -d: -f 1,7
7、顯示當前系統上root、centos或者user1用戶的默認shell和UID (請事先創建這些用戶,若不存在)
egrep "\<root|centos|user1\>" /etc/passwd | cut -d: -f 3,7
8、找出/etc/rc.d/init.d/functions文件中某單詞(單詞中間可以存在下劃線)後面跟着一組小括號的行
egrep --color=auto '\<[[:alnum:]]+\>\(\)' /etc/rc.d/init.d/functions
egrep --color=auto '\<[[:alnum:]].*\>\(\)' /etc/rc.d/init.d/functions
egrep --color=auto "\<[[:alnum:]]_?[[:alnum:]].*\>\(\)" /etc/rc.d/init.d/functions
9、使用echo輸出一個路徑,而後egrep找出其路徑基名;進一步的使用egrep取出其目錄名
echo /etc/passwd/ | egrep -o "[[:alnum:]]+\/?$" --color
echo /etc/sysconfig/network-scripts/ifcfg-eth0 | egrep -o "[[:alnum:]]+-[[:alnum:]]+\/?$"
echo /etc/init.d/iptables/ | egrep -o "^\/.*\/" | cut -d/ -f 3
10、找出ifconfig命令執行結果中1-255之間的數字
ifconfig | egrep '\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' --color