問題 統計系統上有多少個使用者

2022-03-19 06:26:59 字數 2181 閱讀 8645

今天突發奇想冒出這麼個問題,覺得很有必要寫篇文章紀念一下。

以前我都是tail /etc/passwd,手動去查有多少個使用者(包括活躍的 和 不活躍的),但是這種方法太蠢了。於是解決問題的漫長之旅開始了。。。。。。

按照由簡到難的順序展開

統計當前系統有多少活躍使用者(沒登陸的不算)

借助who

命令

who顯示登陸到linux的每個會話

[root@localhost ~]# who

root pts/0

2018-06-13

21:29 (192.168.80.1

)root pts/1

2018-06-13

21:47 (192.168.80.1

)lfs pts/2

2018-06-13

21:53 (192.168.80.1)

[root@localhost ~]# who -h

name line time comment

root pts/0

2018-06-13

21:29 (192.168.80.1

)root pts/1

2018-06-13

21:47 (192.168.80.1

)lfs pts/2

2018-06-13

21:53 (192.168.80.1)

但是如果乙個使用者開啟了多個xshell遠端鏈結,就會有多個會話,需要過濾一下

[root@localhost ~]# who | cut -d "

" -f 1|sort -u

lfsroot

然後在統計個數

[root@localhost ~]# who | cut -d "

" -f 1|sort -u | wc -l

2

還有個引數-q,可以顯示當前會話個數,以及使用者名稱。但是這個引數也有個必斷,如果乙個使用者開啟了多個xshell遠端鏈結,就會有多個會話,會產生多個相同使用者名稱

[root@localhost ~]# who -q

root root lfs

# users=3

借助w

命令

w不僅顯示登陸使用者詳細資訊,還能看到他們在幹什麼

[root@localhost ~]# w -h | cut -d "

" -f 1 | sort -u |wc -l

2

借助ps命令

[root@localhost ~]# ps -eaho user

root

root

root

root

root

lfsroot

this command says, "show information forevery process owned byany user, do not showheaders, and printonly the name of theuser."

who僅僅顯示登入到終端會話的使用者,而ps會列出擁有正在允許程序的所有使用者,即使他們沒有開啟終端。ps會包含root使用者,還有可能包含其他系統使用者

[root@localhost ~]# ps -eaho user | sort -u

lfsroot

[root@localhost ~]# ps -eaho user | sort -u | wc -l

2

另乙個路子

[root@localhost ~]# echo $(wc -l < /etc/passwd

)22

這種方法會把所有使用者(包括系統使用者)統計出來

統計當前系統有多少使用者

這個暫時想不到好方法,只能自己cat /etc/passwd來目查了。。。。

n!末尾有多少個0問題

思路 任何數可以分解為幾個質因子相乘,兩個數相乘末尾為零,即質因子為2 5,我們可判斷有多少個2和5,即0的個數為兩者同時出現的個數,計算階乘時顯然2的個數多於5出現的次數 偶數都會出現2 所以我們只須計算所有數質因子5的個數。以1024!為例 1024 5 204 遍歷一遍,每個數出現1個質因子為...

Python練習題 統計總共例項化了多少個物件

需求 有乙個計數器 屬性 統計總共例項化了多少個物件 如下 class student school luffycity count 0def init self,name,age,self.name name self.age age self.self.count 1def learn self...

統計乙個目錄下有多少個檔案組合命令

find type f wc l 計算檔案行數 計算檔案中的單詞數 計算檔案中的字元數。cut b colnum file 指定欲顯示的檔案內容範圍,並將它們輸出到標準輸出裝置比如 輸出每行第5個到第9個字元cut b 5 9 file.txt千萬不要和cat命令混淆,這是兩個完全不同的命令。fil...