今天突發奇想冒出這麼個問題,覺得很有必要寫篇文章紀念一下。
以前我都是tail /etc/passwd,手動去查有多少個使用者(包括活躍的 和 不活躍的),但是這種方法太蠢了。於是解決問題的漫長之旅開始了。。。。。。
按照由簡到難的順序展開
統計當前系統有多少活躍使用者(沒登陸的不算)
借助who
命令
who顯示登陸到linux的每個會話
[root@localhost ~]# whoroot 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 -hname 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 -qroot root lfs
# users=3
借助w
命令
w不僅顯示登陸使用者詳細資訊,還能看到他們在幹什麼
[root@localhost ~]# w -h | cut -d "" -f 1 | sort -u |wc -l
2
借助ps命令
[root@localhost ~]# ps -eaho userroot
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 -ulfsroot
[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...