บทนำ
คำสั่ง ps จะแสดงรายการกระบวนการที่กำลังทำงานอยู่ในคอมพิวเตอร์ของคุณ
คู่มือนี้จะแสดงให้เห็นถึงการใช้งานทั่วไปของคำสั่ง ps เพื่อให้คุณสามารถใช้ประโยชน์จากสิ่งนี้ได้ดีที่สุด
คำสั่ง ps ใช้ทั่วไปร่วมกับ คำสั่ง grep และ คำสั่ง มาก หรือ น้อย
คำสั่งเพิ่มเติมเหล่านี้ช่วยในการกรองและแบ่งแยกเอาต์พุตจาก ps ซึ่งมักใช้เวลานานมาก
วิธีการใช้คำสั่ง PS
คำสั่ง ps ของตัวเองจะแสดงกระบวนการทำงานโดยผู้ใช้เรียกใช้งานภายในหน้าต่างเทอร์มินัล
เพื่อเรียก ps เพียงพิมพ์ต่อไปนี้:
PS
ผลลัพธ์จะแสดงแถวของข้อมูลที่มีข้อมูลต่อไปนี้:
- PID
- TTY
- เวลา
- คำสั่ง
PID คือรหัสกระบวนการที่ระบุกระบวนการทำงาน TTY เป็นประเภทเทอร์มินัล
คำสั่ง ps ของตัวเองค่อนข้าง จำกัด คุณอาจต้องการดูกระบวนการทำงานทั้งหมด
เมื่อต้องการดูกระบวนการทำงานทั้งหมดใช้คำสั่งต่อไปนี้:
ps -A
ps -e
เมื่อต้องการแสดงกระบวนการทั้งหมดยกเว้นผู้นำเซสชันเรียกใช้คำสั่งต่อไปนี้:
ps -d
ดังนั้นหัวหน้าเซสชั่นคืออะไร? เมื่อกระบวนการหนึ่งเริ่มกระบวนการอื่น ๆ มันเป็นผู้นำเซสชั่นของกระบวนการอื่น ๆ ทั้งหมด ลองนึกภาพกระบวนการ A ปิดกระบวนการ B และกระบวนการ C. กระบวนการ B จะเริ่มกระบวนการ D และกระบวนการ C จะปิดกระบวนการ E. เมื่อคุณทำรายการกระบวนการทั้งหมดยกเว้นหัวหน้าเซสชันคุณจะเห็น B, C, D และ E แต่ไม่ใช่ A.
คุณสามารถยกเลิกการเลือกใด ๆ ที่คุณได้เลือกโดยใช้สวิตช์ -N ตัวอย่างเช่นถ้าคุณต้องการดูเพียงผู้นำเซสชันเรียกใช้คำสั่งต่อไปนี้:
ps -d -N
เห็นได้ชัดว่า -N ไม่สมเหตุสมผลมากเมื่อใช้กับ -e หรือ -A เนื่องจากไม่มีอะไรแสดงเลย
หากคุณต้องการดูเฉพาะกระบวนการที่เกี่ยวข้องกับเทอร์มินัลนี้ให้รันคำสั่งต่อไปนี้:
ps T
ถ้าคุณต้องการดูกระบวนการทำงานทั้งหมดโดยใช้คำสั่งต่อไปนี้:
ps r
การเลือกกระบวนการเฉพาะโดยใช้คำสั่ง ps
คุณสามารถส่งคืนเฉพาะกระบวนการโดยใช้คำสั่ง ps และมีหลายวิธีในการเปลี่ยนเกณฑ์การเลือก
ตัวอย่างเช่นถ้าคุณรู้รหัสกระบวนการคุณสามารถใช้คำสั่งต่อไปนี้:
ps -p
คุณสามารถเลือกหลายกระบวนการโดยการระบุ ID กระบวนการหลายรายการดังนี้:
ps -p "1234 9778"
นอกจากนี้คุณยังสามารถระบุได้โดยใช้รายการที่คั่นด้วยจุลภาค:
ps -p 1234,9778
มีโอกาสที่คุณจะไม่ทราบรหัสกระบวนการและสามารถค้นหาโดยใช้คำสั่งได้ง่ายขึ้น เมื่อต้องการทำเช่นนี้ใช้คำสั่งต่อไปนี้:
ps -C
ตัวอย่างเช่นหากต้องการดูว่า Chrome ทำงานอยู่หรือไม่คุณสามารถใช้คำสั่งต่อไปนี้:
ps โครเมี่ยม
คุณอาจจะประหลาดใจที่ได้เห็นว่ากระบวนการนี้จะส่งกลับหนึ่งโพรเซสสำหรับแต่ละแท็บที่เปิดอยู่
วิธีอื่น ๆ ในการกรองผลลัพธ์คือตามกลุ่ม คุณสามารถค้นหาตามชื่อกลุ่มโดยใช้ไวยากรณ์ต่อไปนี้:
ps -G
ps - กลุ่ม
ตัวอย่างเช่นเพื่อหากระบวนการทั้งหมดที่ดำเนินการโดยกลุ่มบัญชีให้พิมพ์ข้อมูลต่อไปนี้:
ps -G "บัญชี"
ps - กลุ่ม "บัญชี"
นอกจากนี้คุณยังสามารถค้นหาตามกลุ่ม id แทนชื่อกลุ่มโดยใช้ตัวพิมพ์เล็ก g ดังนี้:
ps -g
ps - กลุ่ม
หากคุณต้องการค้นหาด้วยรายการรหัสเซสชันใช้คำสั่งต่อไปนี้:
ps -s
หรือใช้ข้อมูลต่อไปนี้เพื่อค้นหาตามประเภทเทอร์มินัล
ps -t
ถ้าคุณต้องการค้นหากระบวนการทั้งหมดที่ดำเนินการโดยผู้ใช้เฉพาะลองคำสั่งต่อไปนี้:
ps U
เช่นเพื่อหากระบวนการทั้งหมดวิ่งโดย gary เรียกใช้ต่อไปนี้:
ps U "gary"
โปรดทราบว่านี่เป็นการแสดงบุคคลที่มีข้อมูลประจำตัวเพื่อเรียกใช้คำสั่ง ตัวอย่างเช่นถ้าฉันเข้าสู่ระบบในฐานะ gary และเรียกใช้คำสั่งดังกล่าวจะแสดงคำสั่งทั้งหมดที่ดำเนินการโดยฉัน
ถ้าฉันเข้าสู่ระบบในฐานะ Tom และใช้ sudo เพื่อรันคำสั่งเช่นเดียวกับฉันแล้วคำสั่งดังกล่าวจะแสดงคำสั่งของ Tom ว่าถูกเรียกใช้โดย gary ไม่ใช่ tom
เพื่อ จำกัด รายการให้เป็นเพียงกระบวนการที่ใช้งานได้จริงโดย gary ใช้คำสั่งต่อไปนี้:
ps-U "gary"
การจัดรูปแบบเอาต์พุตคำสั่ง PS
โดยค่าเริ่มต้นคุณจะได้รับเดียวกัน 4 คอลัมน์เมื่อคุณใช้คำสั่ง ps:
- PID
- TTY
- เวลา
- คำสั่ง
คุณสามารถรับรายชื่อโดยใช้คำสั่งต่อไปนี้:
ps -ef
-e ตามที่คุณทราบจะแสดงกระบวนการทั้งหมดและ f หรือ -f จะแสดงรายละเอียดทั้งหมด
คอลัมน์ที่ส่งคืนมีดังนี้:
- User ID
- PID
- PPID
- C
- sTIME
- TTY
- เวลา
- คำสั่ง
User ID คือผู้ที่รันคำสั่ง PID คือรหัสกระบวนการของคำสั่ง PPID เป็นกระบวนการหลักที่ทำให้คำสั่งล้มเหลว
คอลัมน์ C แสดงจำนวนเด็กที่มีกระบวนการ เวลาเริ่มต้นเป็นเวลาเริ่มต้นของกระบวนการ TTY คือเทอร์มินัลเวลาคือจำนวนเวลาที่ใช้ในการรันและคำสั่งคือคำสั่งที่รัน
คุณสามารถรับคอลัมน์ได้มากขึ้นโดยใช้คำสั่งต่อไปนี้:
ps -F
นี้ส่งกลับคอลัมน์ต่อไปนี้:
- โพสต์
- PID
- PPID
- C
- SZ
- RSS
- PSR
- sTIME
- TTY
- เวลา
- คำสั่ง
คอลัมน์พิเศษคือ SZ, RSS และ PSR SZ คือขนาดของกระบวนการ RSS คือขนาดหน่วยความจำที่แท้จริงและ PSR คือโปรเซสเซอร์ที่กำหนดให้กับคำสั่ง
คุณสามารถระบุรูปแบบที่ผู้ใช้กำหนดโดยใช้สวิตช์ต่อไปนี้:
ps -e - รูปแบบ
รูปแบบที่ใช้ได้มีดังนี้:
- % CPU - การใช้ซีพียู
- % mem - เปอร์เซ็นต์การใช้หน่วยความจำ
- args - คำสั่งที่มีอาร์กิวเมนต์ทั้งหมด
- c - การใช้โปรเซสเซอร์
- cmd - คำสั่ง
- comm - ชื่อคำสั่งเท่านั้น
- cp - การใช้ CPU
- cputime - เวลา CPU
- egid - id กลุ่มที่มีประสิทธิภาพ
- egroup - กลุ่มที่มีประสิทธิภาพ
- etime - เวลาที่ผ่านไป
- euid - รหัสผู้ใช้ที่มีประสิทธิภาพ
- euser - ผู้ใช้ที่มีประสิทธิภาพ
- gid - รหัสกลุ่ม
- กลุ่ม - ชื่อกลุ่ม
- pgid - รหัสกลุ่มกระบวนการ
- pgrp - กลุ่มกระบวนการ
- ppid - รหัสกระบวนการสำหรับผู้ปกครอง
- start - เวลาที่เริ่มต้นกระบวนการ
- sz - ขนาดในหน้าเว็บที่มีอยู่จริง
- thcount - หัวข้อที่เป็นของกระบวนการ
- เวลา - เวลาสะสม
- uid - รหัสผู้ใช้
- uname - ชื่อผู้ใช้
มีตัวเลือกอื่น ๆ อีกมากมาย แต่ส่วนใหญ่จะใช้กันทั่วไป
ในการใช้รูปแบบให้พิมพ์ข้อมูลต่อไปนี้:
ps -e --format = "uid uname cmd time"
คุณสามารถผสมและจับคู่รายการตามต้องการได้
การเรียงลำดับเอาท์พุท
เมื่อต้องการเรียงลำดับเอาต์พุตใช้สัญกรณ์ต่อไปนี้:
ps -ef - คัดลอก
ทางเลือกของตัวเลือกการจัดเรียงมีดังนี้:
- cmd - ชื่อที่ใช้งานได้
- pcpu - การใช้ CPU
- ธง - ธง
- pgrp - รหัสกลุ่มกระบวนการ
- cutime - เวลาผู้ใช้สะสม
- cstime - เวลาของระบบสะสม
- utime - เวลาของผู้ใช้
- pid - รหัสกระบวนการ
- ppid - รหัสกระบวนการระดับผู้ปกครอง
- ขนาด - ขนาด
- uid - User ID
- ผู้ใช้ - ชื่อผู้ใช้
อีกครั้งมีทางเลือกมากขึ้น
คำสั่ง sort ตัวอย่างมีดังนี้:
ps -ef - กำหนดผู้ใช้ pid
ใช้ ps กับ grep คำสั่งที่น้อยลงและมากขึ้น
ตามที่กล่าวไว้ในตอนต้นเป็นเรื่องปกติที่จะใช้ ps กับคำสั่ง grep น้อยลงและมากขึ้น
คำสั่งที่น้อยลงจะช่วยให้คุณสามารถกรองผลการค้นหาได้ทีละหน้า เมื่อต้องการใช้คำสั่งเหล่านี้เพียงแค่เอาท่อออกจาก grep ไปเป็นดังนี้:
ps -ef | มากกว่า
ps -ef | น้อยกว่า
คำสั่ง grep ช่วยให้คุณสามารถกรองผลลัพธ์จากคำสั่ง ps ได้
ตัวอย่างเช่น:
ps -ef | โครเมียม grep
สรุป
คำสั่ง ps ใช้กันทั่วไปในกระบวนการจดทะเบียนภายใน Linux นอกจากนี้คุณยังสามารถใช้ คำสั่งด้านบน เพื่อแสดงกระบวนการทำงานในลักษณะอื่นได้
บทความนี้ครอบคลุมสวิตช์ทั่วไป แต่มีตัวเลือกการจัดรูปแบบและการจัดเรียงที่พร้อมใช้งานมากขึ้น
เพื่อหาข้อมูลเพิ่มเติมอ่านหน้า man Linux สำหรับคำสั่ง ps