linux文件和文件夾的篩選、查找及用戶和組管理命令


1、列出當前系統上所有已經登陸的用戶的用戶名, 注意:同一個用戶登錄多次,則只顯示一次即可。

查看系統用戶的命令為:
(1)getent passwd

 

查看系統上的所有用戶信息

(2)w

 

查看登錄用戶正在使用的進程信息,該命令所使用的信息來源於/var/run/utmp文件

w命令輸出的信息包括:
-用戶名稱
-用戶的機器名稱或tty號
-遠程主機地址
-用戶登錄系統的時間
-空閑時間(作用不大)
-附加到tty(終端)的進程所用的時間(JCPU時間)
-當前進程所用時間(PCPU時間)
-用戶當前正在使用的命令

w命令還可以使用以下選項參數:
-h忽略頭文件信息
-u顯示結果的加載時間
-s不顯示JCPU, PCPU, 登錄時間

(3)who

 

查看(登錄)用戶名稱及所啟動的進程,輸出為:用戶名、tty號、時間日期、主機地址。

用who值查看用戶的用戶名:who | cut -d' ' -f1

 

users命令可用於輸出登錄的用戶名稱

(4)whoami

 

 

查看你登錄用戶的名稱


2、取出最后登錄到當前系統的用戶的相關信息。
命令last最后登錄到當前系統的用戶的相關信息
last:

 


參 數:
-a 把從何處登入系統的主機名稱或IP地址,顯示在最后一行。
-d 將IP地址轉換成主機名稱。
-f <記錄文件> 指定記錄文件。
-n <顯示列數>或-<顯示列數> 設置列出名單的顯示列數。
-R 不顯示登入系統的主機名稱或IP地址。
-x 顯示系統關機,重新開機,以及執行等級的改變等信息。

查看最后登錄到當前系統的用戶的相關信息:
last -n1或last |head -1

 


3、取出當前系統上被用戶當作其默認shell的最多的那個shell。

命令:cut -d: -f7 /etc/passwd |uniq -c |sort -n |tail -1

 

 

uniq用法
參 數:
-c: 在每列旁邊顯示該行重復出現的次數。
-d: 僅顯示重復出現的行列。
-f: 忽略比較指定的欄位。
-s: 忽略比較指定的字符。
-u: 僅顯示出一次的行列。
-w: 指定要比較的字符。
-n:前n個字段和每個字段前的空白一起被忽略
+n:前n個字符被忽略

sort用法
參 數:
-b 忽略每行前面開始出的空格字符。
-c 檢查文件是否已經按照順序排序。
-f 排序時,忽略大小寫字母。
-M 將前面3個字母依照月份的縮寫進行排序。
-n 依照數值的大小排序。
-o<輸出文件> 將排序后的結果存入指定的文件。
-r 以相反的順序來排序。
-t<分隔字符> 指定排序時所用的欄位分隔字符。
-k 選擇以哪個區間進行排序。

tail用法
參 數:
默認示文件的末尾行,缺省顯示最后10行
-n參數可以設定顯示的行數,
-f參數當文件內容發生增加時自動顯示。


4、將/etc/passwd中的第三個字段值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。
命令:sort -t: -k3 -n /etc/passwd | tail | tr ‘a-z‘ ‘A-Z‘ > /tmp/maxuser.txt

 


sort用法
sort命令是幫我們依據不同的數據類型進行排序,其語法及常用參數格式
參 數:
-b 忽略每行前面開始出的空格字符。
-c 檢查文件是否已經按照順序排序。
-f 排序時,忽略大小寫字母。
-M 將前面3個字母依照月份的縮寫進行排序。
-n 依照數值的大小排序。
-o<輸出文件> 將排序后的結果存入指定的文件。
-r 以相反的順序來排序。
-t<分隔字符> 指定排序時所用的欄位分隔字符。
-k 選擇以哪個區間進行排序。

tr用法
tr轉換字符


5、取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
命令:ifconfig | grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' |cut -d' ' -f10 |head -n1

 


head用法
顯示開頭至標准輸出中,默認head命令打印其相應文件的開頭10行。
參 數:
-q 隱藏文件名
-v 顯示文件名
-c<字節> 顯示字節數
-n<行數> 顯示的行數


6、列出/etc目錄下所有以.conf結尾的文件的文件名,並將其他名字轉換為大寫后保存/tmp/etc.conf文件中。
命令:find /etc/ -name "*.conf" | tr ‘a-z‘ ‘A-Z‘ > /tmp/etc.conf

 


-name指文件名


7、顯示/var目錄下一級子目錄或文件的總個數。
命令: ls -d /var/* | wc -l

 


8、取出/etc/group文件中第三個字段數值最小的10個組的名字
命令:sort -t: -k3 -n /etc/group | cut -d: -f1 | head

 


9、將/etc/fstab和/etc/issue文件的內容合並為同一個內容后保存至/tmp/etc/test文件中。
命令:cat /etc/fstab /etc/issue > /tmp/etc.test

 


10、請總結描述用戶個組管理類命令的使用方法並完成一下練習:
(1)、創建組distro,其GID為2016;
命令:groupadd distro -g 2016

 

(2)、創建用戶mandriva,其ID號為1005,其本組為distro;
命令:useradd mandriva -u 1005 -g distro

 

(3)、創建用戶mageia,其ID號為1100,家目錄為/bome/linux
命令:useradd mageia -u 1100 -s /home/linux

 

(4)、給用戶mandriva添加密碼,但保留其家目錄
命令:echo mageia | passwd --stdin mageia

 

(5)、刪除mandriva,但保留其家目錄;
命令:userdel mandriva

 

(6)、創建用戶slackware,其ID號為2002,基本組為distro,附加組為peguin;
命令:useradd slackware -u 2002 -g distro -G peguin

 

(7)、修改slackware的默認shell為/bin/tcsh
命令:usermod -s /bin/tcsh slackware

 

(8)、為用戶slackware新增加附加組admins;
命令:usermod -a -G admins slackware

 

(9)、為slachware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警告為3天。
命令:passwd slackware -n 3 -x 180 -w 3

 

(10)、添加用戶openstack,其ID號為3003,基本組為clouds,附加組為penguin和nova;
命令:useradd openstack -u 3003 -g clouds -G penguin,nova

 

(11)、添加系統用戶mysql,要求其shell為/sbin/nologin;
命令:useradd -r mysql -s /sbin/nologin

 

(12)、使用echo命令,非交互式為openstack添加密碼。
命令:echo openstack | passwd --stdin openstack

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM