一、練習
1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。
● 實現命令
who | cut -d ” ” -f1 | sort –u
● 命令分解
who:顯示已經登錄的用戶信息;
|:管道,連接程序,用于實現將前一個命令的輸出直接定向后一個程序當作輸入數據流;
cut:截取who命令顯示結果的一部分,使用 -d 選項以空格作為分隔符,然后使用 -f 選項截取第1字段;
sort:文本內容排序,使用 -u 選項實現重復的行只顯示一次。
2、取出最后登錄到當前系統的用戶的相關信息。
● 實現命令
last | head -n 1
● 命令分解
last:顯示最后登錄到當前系統的用戶列表;
head:查看文件內容的前n行,使用 -n 選項查看第一行內容。
3、取出當前系統上被用戶當作其默認shell的最多的那個shell。
● 實現命令
cat /etc/passwd | cut -d “:” -f7 | uniq -c | sort -rn | head -n 1 | cut -d ” ” -f7
● 命令分解
cat /etc/passwd:查看當前系統上用戶的默認shell;
cut:文本內容截取,使用 -d 選項以冒號作為分隔符,然后使用 -f 選項截取第7字段(shell部分);
uniq:移除重復的行,使用 -c 選項顯示重復行的次數;
sort:文本內容排序,使用 -r 選項實現逆序排序,以及 -n 選項實現基于數字大小進行排序;
head:查看文本的前n行,上步做了逆序排序,這里只看第一行內容;
cut:再次使用文本截取,以空格為分隔符,截取第7字段,得到最終結果。
4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
● 實現命令
sort -rn -t “:” -k3 /etc/passwd | head -n 10 | tr ‘a-z’ ‘A-Z’ > /tmp/maxusers.txt
● 命令分解
sort:使用 -rn 選項實現基于數字逆序排序。使用 -t 選項以冒號為分隔符,以 -k 選項選取第3字段對/etc/passwd中的內容進行排序;
head:使用 -n 選項查看前10行信息;
tr ‘a-z’ ‘A-Z’:將顯示信息中的小寫字母全部轉換成大寫字母;
>:輸出重定向,將上述命令組合顯示的內容輸出保存至/tmp/maxusers.txt文件中。
5、取出當前主機的IP地址。
● 實現命令
ifconfig | head -n2 | tail -n1 | cut -d ” ” -f10
● 命令分解
ifconfig:查看網卡信息,比如IP地址、掩碼、MTU等信息;
head:IP地址處于第2行,使用 -n 選項查看前2行內容;
tail:使用head命令后,IP地址處于最后一行,使用tail命令的 -n1 選項查看最后一行內容;
cut:使用文本截取命令的 -d 選項以空格作為分隔符,使用 -f 選項選取第10字段,得到IP地址。
6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。
● 實現命令
ls -a /etc/*.conf | tr ‘a-z’ ‘A-Z’ > /tmp/etc.conf
● 命令分解
ls:列出/etc目錄下的文件內容,使用 -a 選項列出所有文件,同時*.conf中*表示任意匹配,即列出所有以.conf結尾的文件;
tr ‘a-z’ ‘A-Z’:將命令顯示結果中的小寫字母全部轉換成大寫字母;
>:輸出重定向,將命令顯示的結果輸出并保存至/tmp/etc.conf文件中。
7、顯示/var目錄下一級子目錄或文件的總個數。
● 實現命令
ls /var | wc -l
● 命令分解
ls:列出/var目錄下的文件內容;
wc:文本統計工具,使用 -l 選項只顯示行數,即21個。
8、取出/etc/group文件中第三個字段數值最小的10個組的名字。
● 實現命令
sort -rn -t “:” -k3 /etc/group | head -n 10 | cut -d “:” -f1
● 命令分解
sort:使用 -rn 選項實現基于數字逆序排序。使用 -t 選項以冒號為分隔符,以 -k 選項選取第3字段對/etc/group中的內容進行排序;
head:使用 -n 選項顯示前10行內容;
cut:使用 -d 選項以冒號作為分隔符,使用 -f 選項選取第1字段,即組名。
9、將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。
● 實現命令
cat /etc/{fstab,issue} > /tmp/etc.test
● 命令分解
cat /etc/{fstab,issue}:因兩個文件都在/etc下,可以使用命令行展開功能同時查看兩個文件的內容,相當于兩個文件的內容合并到了一起;
>:輸出重定向,將上述命令顯示的內容輸出保存至/tmp/etc.test文件中。
二、用戶和組管理命令及相關例題
1、useradd命令:創建用戶
● 命令格式
useradd [選項] 登錄名
● 常用選項
-u:指定UID;
-g:指定基本組ID;
-G:指定用戶所屬的附加組;
-s:指定用戶的默認shell;
-d:以指定的路徑作為用戶的家目錄。
2、usermod命令:修改用戶屬性
● 命令格式
usermod [選項] 登錄名
● 常用選項
-u:修改用戶的ID;
-g:修改用戶所屬的基本組;
-G:修改用戶所屬的附加組;
-a:為用戶追加新的附加組,與-G同時使用;
-d:修改用戶的家目錄;
-s:修改用戶的默認shell;
-L, -U:鎖定及解鎖用戶的密碼。
3、userdel命令:刪除用戶
● 命令格式
userdel [選項] 登錄名
● 常用選項
-r:刪除用戶時,一并刪除其家目錄。
4、groupadd命令:創建組
● 命令格式
groupadd [選項] 組名
● 常用選項
-g:指定GID,默認是上一個組的GID+1;
5、groupmod命令:修改組屬性
● 命令格式
groupmod [選項] 組名
● 常用選項
-g:修改組ID;
-n:修改組名。
6、groupdel:刪除組
● 命令格式
groupdel [選項] 組名
7、passwd命令:密碼
● 命令格式
passwd:修改用戶自己的密碼;
passwd 用戶名:修改指定用戶的密碼。
● 常用選項
-l:鎖定用戶;
-u:解鎖用戶;
-d:清除用戶密碼串。
8、相關例題
1)?創建組distro,其GID為2016;
命令:
groupadd -g 2016 distro
驗證:
2)?創建用戶mandriva, 其ID號為1005;基本組為distro;
命令:
useradd -u 1005 -g distro mandriva
驗證:
3)?創建用戶mageia,其ID號為1100,家目錄為/home/linux;
命令:
useradd -u 1100 -d /home/linux mageia
驗證:
4)?給用戶mageia添加密碼,密碼為mageedu;
命令:
passwd mageia
驗證:
5)?刪除mandriva,但保留其家目錄;
命令:
userdel mandriva
驗證:
6)?創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin;
命令:
groupadd peguin
useradd -u 2002 -g distro -G peguin slackware
驗證:
7)?修改slackware的默認shell為/bin/tcsh;
命令:
usermod -s /bin/tcsh slackware
驗證:
8)?為用戶slackware新增附加組admins;
命令:
groupadd admins
usermod -G peguin,admins -a slackware
驗證:
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/99397