1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。
● 實現命令
[root@localhost ~]#cp -r /etc/skel /home/tuser1
[root@localhost ~]#chmod -R og= /home/tuser1
● 命令分解
cp:復制命令,使用 -r 選項進行目錄遞歸復制;
chmod:修改用戶和組權限,使用 -R 選項進行遞歸修改,命令中 “o”表示其他用戶,”g”表示組,等于空值即表示沒有任何訪問權限。
2、編輯/etc/group文件,添加組hadoop。
● 實現命令
[root@localhost ~]#vim /etc/group
添加:hadoop:x:2019:
● 命令分解
vim:編輯配置文件命令,添加組名、組ID。
3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。
● 實現命令
[root@localhost ~]#vim /etc/passwd
添加:hadoop:x:2003:2019::/home/hadoop:/bin/bash
● 命令分解
vim:編輯配置文件命令,添加用戶名、用戶ID、組ID、家目錄和默認shell。
4、復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
● 實現命令
[root@localhost ~]# cp -r /etc/skel/ /home/hadoop
[root@localhost ~]# chmod og= /home/hadoop/
● 命令分解
cp:復制命令,使用 -r 選項進行目錄遞歸復制;
chmod:修改用戶和組權限,命令中 “o”表示其他用戶,”g”表示組,等于空值即表示該目錄沒有任何訪問權限。
5、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。
● 實現命令
[root@localhost ~]# chown -R hadoop:hadoop /home/hadoop/
● 命令分解
chown:更改文件或目錄的從屬關系,使用 -R 選項進行遞歸修改;
6、顯示/proc/meminfo文件中以大寫或小寫S開頭的行,用兩種方式;
● 實現命令
[root@localhost ~]# grep “^[sS]” /proc/meminfo
[root@localhost ~]# grep -i “^s” /proc/meminfo
● 命令分解
grep:文本搜索工具,根據指定的過濾條件對目標文本逐行進行匹配檢查;
正則表達式 ^:行首錨定;
正則表達式 []:匹配指定范圍內的任意單個字符;
第二種方法中的 -i 選項:表示忽略字符的大小寫。
7、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;
● 實現命令
[root@localhost ~]# grep -v “/sbin/nologin$” /etc/passwd | cut -d “:” -f1
● 命令分解
grep:文本搜索,使用 -v 選項進行反向顯示,即顯示不能匹配到的文本內容;
正則表達式 $:行尾錨定;
cut:使用 -d 和 -f 選項截取出用戶名。
8、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;
● 實現命令
[root@localhost ~]# grep “/bin/bash$” /etc/passwd | cut -d “:” -f1
● 命令分解
grep:文本搜索;
正則表達式 $:行尾錨定;
cut:使用 -d 和 -f 選項截取出用戶名。
9、找出/etc/passwd文件中的一位數或兩位數;
● 實現命令
[root@localhost ~]# grep -o “\<[0-9]\{1,2\}\>” /etc/passwd
● 命令分解
grep:文本搜索,使用 -o 選項只顯示匹配到的內容本身;
正則表達式 \< \>:詞首、詞尾錨定;
正則表達式 [0-9]:匹配指定范圍內的數字;
正則表達式 \{1,2\}:表示前面的數字,出現1~2次。
10、顯示/boot/grub2/grub.cfg中以至少一個空白字符開頭的行;
● 實現命令
[root@localhost ~]# grep “^[[:space:]]\+” /boot/grub2/grub.cfg
● 命令分解
grep:文本搜索;
正則表達式 ^:行首錨定;
正則表達式 [[:space:]]:空白字符;
正則表達式 \+:前面的內容至少出現一次。
11、顯示/etc/rc.local文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;
● 實現命令
[root@localhost ~]# grep “^#[[:space:]]\+[^[:space:]]\+” /etc/rc.local
● 命令分解
grep:文本搜索;
正則表達式 ^:行首錨定;
正則表達式 \+:前面的內容至少出現一次;
正則表達式 [^]:匹配指定范圍外的任意字符。
12、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行;
● 實現命令
[root@localhost ~]# netstat -tan | grep “LISTEN[[:space:]]\+”
● 命令分解
|grep:使用管道進行文本內容搜索;
正則表達式 [[:space:]]\+:表示前面的空格字符至少出現一次。
13、添加用戶bash, testbash, basher, nologin (此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息;
● 實現命令
[root@localhost ~]# useradd bash
[root@localhost ~]# useradd testbash
[root@localhost ~]# useradd basher
[root@localhost ~]# useradd -s /sbin/nologin nologin
[root@localhost ~]# grep -E “^([^:]+\>).*\1$” /etc/passwd
● 命令分解
grep:文本匹配,使用 -E 選項使用擴展正則表達式進行查找內容的匹配;
正則表達式 ^([^:]+\>):錨定行首及詞尾,匹配非冒號的內容,并進行分組引用;
正則表達式 .*:中間是任意字符,出現任意次;
正則表達式?\1$:錨定行尾,內容是之前括號里匹配到的字符;
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/99875