溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統中如何用who命令

發布時間:2022-01-24 10:52:14 來源:億速云 閱讀:222 作者:kk 欄目:開發技術
# Linux系統中如何用who命令

## 一、who命令概述

`who`命令是Linux系統中一個基礎但強大的實用工具,用于顯示當前登錄系統的用戶信息。作為系統管理員和普通用戶常用的命令之一,它能夠快速提供用戶會話的詳細信息,包括登錄用戶名、終端設備、登錄時間以及來源IP地址(如果適用)等。

### 1.1 命令基本功能
- 顯示當前登錄用戶列表
- 查看用戶登錄時間
- 識別用戶使用的終端設備
- 顯示系統啟動時間(特定選項)

### 1.2 命令特點
- 輕量級,執行速度快
- 無需特殊權限即可運行
- 信息直接來源于/var/run/utmp文件
- 支持多種格式化輸出選項

## 二、基本語法與常用選項

### 2.1 基本命令格式
```bash
who [選項] [文件]

2.2 常用選項說明

選項 功能描述
-a 顯示所有信息(相當于-b -d –login -p -r -t -T -u)
-b 顯示系統最近啟動時間
-d 顯示已退出的進程
-H 顯示列標題
-q 快速模式,只顯示用戶名和用戶數
-r 顯示運行級別
-s 簡略顯示(默認選項)
-u 顯示空閑時間
-T 顯示用戶消息狀態(+:允許消息;-:禁止消息;?: 無法確定終端)

三、實際應用示例

3.1 查看當前登錄用戶(基礎用法)

who

典型輸出:

user1   pts/0        2023-08-15 09:30 (192.168.1.100)
user2   tty2         2023-08-15 10:15 (:0)

3.2 顯示詳細頭部信息

who -H

輸出示例:

NAME     LINE         TIME             COMMENT
user1    pts/0        2023-08-15 09:30 (192.168.1.100)

3.3 查看系統啟動時間

who -b

輸出:

         system boot  2023-08-15 08:30

3.4 顯示完整信息

who -a

輸出包含: - 系統啟動時間 - 運行級別變化 - 用戶登錄記錄 - 死進程信息

四、高級用法與組合技巧

4.1 統計登錄用戶數

who -q

輸出:

user1 user2
# users=2

4.2 檢查特定終端狀態

who -T

輸出中消息狀態指示:

user1   + pts/0        2023-08-15 09:30 (192.168.1.100)

4.3 結合其他命令使用

who | wc -l   # 統計當前登錄用戶數
who | grep pts/0   # 查找特定終端的登錄信息

五、輸出字段詳解

5.1 標準輸出格式

[用戶名] [終端線路] [登錄時間] [遠程主機名/IP]

5.2 各字段含義

  1. 用戶名:登錄系統的用戶賬戶名
  2. 終端線路
    • ttyX:物理終端
    • pts/X:偽終端(SSH/Xshell等遠程連接)
  3. 登錄時間:格式為”YYYY-MM-DD HH:MM”
  4. 遠程主機
    • 本地登錄顯示:0或空
    • 遠程登錄顯示IP或主機名

六、相關文件解析

6.1 utmp文件

  • 路徑:/var/run/utmp
  • 存儲當前登錄會話信息
  • who命令的主要數據源

6.2 wtmp文件

  • 路徑:/var/log/wtmp
  • 存儲歷史登錄記錄
  • 需要使用last命令查看

6.3 btmp文件

  • 路徑:/var/log/btmp
  • 記錄失敗的登錄嘗試
  • 使用lastb命令查看

七、常見問題解決

7.1 無輸出或輸出異常

可能原因: - utmp文件損壞 - 權限問題(需檢查/var/run/utmp權限)

解決方案:

sudo touch /var/run/utmp
sudo chmod 644 /var/run/utmp

7.2 顯示”unknown”用戶

原因分析: - 用戶會話異常終止 - 終端設備未正確釋放

解決方法:

ps -ft <終端名>  # 查找相關進程
kill -9 <PID>    # 終止殘留進程

八、安全相關應用

8.1 監控異常登錄

who -u | awk '{if($5 > 24:00) print $0}'  # 檢測長時間空閑會話

8.2 登錄審計腳本示例

#!/bin/bash
LOG_FILE="/var/log/user_audit.log"
echo "$(date) - Current users:" >> $LOG_FILE
who -a >> $LOG_FILE

九、與其他命令對比

9.1 who vs w

  • who:只顯示基本信息
  • w:額外顯示用戶當前進程和系統負載

9.2 who vs users

  • users:僅顯示用戶名列表
  • who:提供詳細信息

9.3 who vs last

  • last:查看歷史登錄記錄
  • who:只顯示當前會話

十、總結

who命令作為Linux用戶管理的基礎工具,雖然簡單但功能實用。通過掌握其各種選項和組合用法,可以有效地監控系統登錄狀態、進行基本的系統審計以及排查用戶會話問題。建議系統管理員將who命令納入日常維護工具箱,結合其他命令如w、last等,構建完整的用戶會話監控方案。

注意:不同Linux發行版的who命令可能有細微差別,建議通過man who查看具體系統的手冊頁獲取最準確的信息。 “`

這篇文章共計約1500字,采用Markdown格式編寫,包含: - 多級標題結構 - 代碼塊示例 - 表格展示 - 有序/無序列表 - 強調文本 - 實際命令示例 - 問題解決方案 - 相關命令對比等內容

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女