# Linux系統who命令怎么用
## 一、who命令簡介
`who`是Linux系統中一個基礎但實用的命令行工具,用于顯示當前登錄系統的用戶信息。作為系統管理員和普通用戶常用的命令之一,它能夠快速查看誰正在使用系統、登錄時間、終端類型等關鍵信息。
## 二、基本語法格式
```bash
who [選項] [文件]
默認情況下,who
命令會讀取/var/run/utmp
文件(記錄當前登錄會話)并顯示信息。典型輸出格式如下:
用戶名 終端設備 登錄時間 來源IP(若遠程登錄)
user pts/0 2023-08-20 09:30 (192.168.1.100)
who -b
顯示系統最后一次啟動時間(boot time)
who -r
顯示當前運行級別(runlevel)
who -u
/ who --users
顯示空閑時間(IDLE列),”old”表示超過24小時未活動
who -H
顯示列標題(HEADER行)
who -q
/ who --count
僅顯示用戶名和登錄用戶總數
who -s
簡略輸出(默認模式)
who /var/log/wtmp
who -uH
輸出示例:
USER LINE LOGIN-TIME IDLE FROM
john pts/0 Aug20 09:30 . 192.168.1.100
alice tty2 Aug20 10:15 01:30
who -q
輸出:
user1 user2 user3
# users=3
who -br
典型輸出:
system boot 2023-08-20 08:15
run-level 5 2023-08-20 08:16
who
命令實際上是通過讀取以下系統文件工作:
- /var/run/utmp
:當前活動會話
- /var/log/wtmp
:歷史登錄記錄(需last
命令配合)
- /var/log/btmp
:失敗登錄嘗試(需lastb
命令查看)
命令 | 功能特點 | 適用場景 |
---|---|---|
who |
當前登錄用戶快照 | 快速查看在線用戶 |
w |
顯示更詳細+進程信息 | 系統監控時使用 |
users |
僅顯示用戶名(極簡輸出) | 腳本中快速獲取用戶列表 |
last |
查看歷史登錄記錄 | 安全審計 |
登錄時間格式化
結合date
命令轉換時間戳:
who -u | awk '{print $1,$3,$4}' | while read user time; do
echo "$user logged in at $(date -d "$time" +"%Y-%m-%d %H:%M:%S")"
done
監控異常登錄
定期檢查可疑IP:
who | grep -v '(:0)' | awk '{print $5}' | sort | uniq
自動化用戶通知
向所有登錄用戶發送消息:
for user in $(who | awk '{print $1}' | sort -u); do
echo "系統將于10分鐘后維護" | write $user
done
coreutils
包通過掌握who
命令,您可以快速了解系統用戶狀態,為后續的系統管理和故障排查提供重要依據。
“`
注:本文實際約850字(含代碼和格式字符),可根據需要增減示例部分調整篇幅。建議在實際使用時添加更多本地化示例或結合特定發行版的特點進行補充說明。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。