วิธีดูจำนวนผู้ใช้ใน Linux

คำสั่ง who จะแสดงให้คุณเห็นทุกครั้งที่เปิดการใช้งานบนเครื่อง:

คุณยังสามารถใช้ คำสั่ง w เพื่อรับมุมมองที่ละเอียดมากขึ้นว่าแต่ละเซสชันการล็อกอินกำลังทำอะไร:

เราสามารถนับจำนวนเซสชันที่เปิดอยู่โดยนับจำนวนบรรทัดในผลลัพธ์ของคำสั่ง who หรือ w หากเราใช้ตัวเลือก -h (เพื่อระงับบรรทัดส่วนหัวซึ่งเราไม่ต้องการนับ) ในการทำสิ่งนี้เราจะไพพ์เอาท์พุทโดยใช้แถบแนวตั้ง (" | ") เพื่อสร้างไพพ์ไลน์คำสั่งโดยส่งเอาต์พุตของหนึ่งโปรแกรมไปยังโปรแกรมถัดไปในไพพ์ไลน์ ที่นี่เรานับจำนวนบรรทัดของทั้ง ใคร และ w -h ด้วยการส่งไปยัง wc -l เพื่อสร้างจำนวนเซสชันที่ใช้งานได้อย่างมีประสิทธิภาพ

การนับผู้ใช้ที่ไม่ซ้ำ

วิธีการข้างต้นจะนับเซสชันการเข้าสู่ระบบ แต่หากผู้ใช้เปิดเซสชันการเข้าใช้มากกว่าหนึ่งรายการจะถูกนับมากกว่าหนึ่งครั้ง ในการนับผู้ใช้ที่ไม่ซ้ำเราต้องสร้างสรรค์มากขึ้น เราสามารถใช้คำสั่ง cut เพื่อตัดข้อมูลทั้งหมดยกเว้นชื่อผู้ใช้:

คำสั่งดังกล่าวบอกว่า "รับผลลัพธ์ของ ใคร และแสดงเฉพาะข้อมูลแรกของ i ซึ่งถูกคั่นด้วยช่องว่าง" มันให้รายชื่อแค่ชื่อผู้ใช้ แต่เรายังจำเป็นต้องกรองชื่อซ้ำ

ในการทำเช่นนี้เราสามารถเพิ่มคำสั่ง sort -u นี่จะเรียงลำดับชื่อตามตัวอักษรและกรองบรรทัดใด ๆ ที่ไม่ซ้ำกัน:

และในที่สุดหากต้องการนับผู้ใช้ที่ไม่ซ้ำกันเหล่านี้เราเพิ่ม wc -l ที่ส่วนท้ายของ ไพพ์ ไลน์คำสั่งของเรา:

การใช้ ps เพื่อนับผู้ใช้ที่กำลังเรียกใช้โปรเซส

อีกเทคนิคที่มีประโยชน์คือการใช้คำสั่ง ps เพื่อสร้างรายการผู้ใช้ทุกคนในระบบที่เป็นเจ้าของกระบวนการที่กำลังทำงานอยู่ ในการทำเช่นนี้เราสามารถใช้ ps กับตัวเลือก -e, -a, -h และ -o user สามารถรวมกันได้ดังนี้:

คำสั่งนี้กล่าวว่า "แสดงข้อมูลสำหรับกระบวนการที่เป็นเจ้าของโดยผู้ใช้ ny ไม่ต้องแสดง e eader และพิมพ์ชื่อของ ผู้ใช้ "

โปรดสังเกตว่านอกเหนือจากผู้ใช้ที่ระบุไว้ก่อนหน้านี้โดย ใคร เรายังเห็นรูตที่นี่ คำสั่ง who แสดงเฉพาะผู้ใช้ที่ล็อกอินเข้าสู่เซสชันเทอร์มินัล แต่ ps จะแสดงรายการผู้ใช้ที่เป็นเจ้าของกระบวนการทำงานแม้ว่าผู้ใช้จะไม่เปิดเทอร์มินัลก็ตาม คำสั่ง ps รวมถึง root และอาจรวมถึงผู้ใช้เฉพาะระบบรายอื่น

เหมือนก่อนหน้านี้เราสามารถเรียงลำดับผลลัพธ์ของเราและแสดงเฉพาะชื่อเฉพาะ:

... และสร้างผลรวมที่ต้องการ: