บทความนี้เป็นส่วนหนึ่งของซีรีส์ 15 ตัวอย่าง ที่ดำเนินต่อไป ซึ่งให้ 15 ตัวอย่างสำหรับคำสั่งหรือฟังก์ชันเฉพาะ ในซีรีส์นี้ก่อนหน้านี้เราได้อภิปรายเกี่ยวกับคำสั่ง find, ตัวอย่าง crontab, คำสั่ง grep, คำสั่ง history, คำสั่ง ping, และตัวอย่าง wget
ในบทความนี้ เราจะทบทวน 15 ตัวอย่างสำหรับ คำสั่ง Linux top ที่จะช่วยได้ทั้งมือใหม่และผู้เชี่ยวชาญ
1. แสดงกระบวนการเรียงตามคอลัมน์ Top ใดๆ – กด O
โดยค่าเริ่มต้น top แสดงกระบวนการเรียงตามการใช้ CPU เมื่อ top กำลังรันอยู่ กด M (พิมพ์ใหญ่) เพื่อแสดงกระบวนการเรียงตามการใช้หน่วยความจำ ตามด้านล่าง

รูป: กด M เพื่อเรียงตามการใช้หน่วยความจำ – คำสั่ง top Unix
เพื่อเรียงเอาต์พุต top ตามคอลัมน์ใดๆ ให้กด O (O พิมพ์ใหญ่) ซึ่งจะแสดงคอลัมน์ทั้งหมดที่สามารถเรียงได้ ตามด้านล่าง
Current Sort Field: P for window 1:Def Select sort field via field letter, type any other key to return a: PID = Process Id v: nDRT = Dirty Pages count d: UID = User Id y: WCHAN = Sleeping in Function e: USER = User Name z: Flags = Task Flags ........
เมื่อคำสั่ง linux top กำลังรัน กด R จะเรียงในลำดับย้อนกลับ
2. ตายกระบวนการโดยไม่ต้องออกจาก Top – กด k
เมื่อคุณพบกระบวนการที่ต้องตาย ให้กด 'k' ซึ่งจะถาม process id และสัญญาณที่จะส่ง หากคุณมีสิทธิ์ตาย PID นั้น จะตายสำเร็จ
PID to kill: 1309 Kill PID 1309 with signal [15]: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent 5136 root 16 0 38040 14m 9836 S 0 0.2 0:00.39 nautilus
3. ปรับค่า nice ของกระบวนการ Unix โดยไม่ต้องออกจาก Top – กด r
กด r, หากต้องการเปลี่ยนลำดับความสำคัญของกระบวนการ (แต่ไม่ตายกระบวนการ) จะถาม PID สำหรับ renice ใส่ PID และค่า priority
PID to renice: 1309 Renice PID 1309 to value: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
4. แสดงผู้ใช้เฉพาะในเอาต์พุต Top ด้วย top -u
ใช้ top -u เพื่อแสดงกระบวนการของผู้ใช้เฉพาะในเอาต์พุตคำสั่ง top
$ top -u geek
ขณะที่คำสั่ง unix top กำลังรัน กด u ซึ่งจะถามชื่อผู้ใช้ ตามด้านล่าง
Which user (blank for all): geek PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
แสดงเฉพาะกระบวนการที่ระบุด้วย PID ที่กำหนด ด้วย top -p
ใช้ top -p ตามด้านล่างเพื่อแสดง PID เฉพาะ
$ top -p 1309, 1882 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
5. แสดง CPU/โคร์ทั้งหมดในเอาต์พุต Top – กด 1 (หนึ่ง)
เอาต์พุต Top โดยค่าเริ่มต้นแสดงบรรทัด CPU สำหรับ CPU ทั้งหมดรวมกัน ตามด้านล่าง
top - 20:10:39 up 40 days, 23:02, 1 user, load average: 4.97, 2.01, 1.25 Tasks: 310 total, 1 running, 309 sleeping, 0 stopped, 0 zombie Cpu(s): 0.5%us, 0.7%sy, 0.0%ni, 92.3%id, 6.4%wa, 0.0%hi, 0.0%si, 0.0%st
กด 1 (หนึ่ง) เมื่อคำสั่ง top กำลังรัน จะแยก CPU และแสดงรายละเอียดสำหรับ CPU แต่ละตัวที่รันบนระบบ ตามด้านล่าง
top - 20:10:07 up 40 days, 23:03, 1 user, load average: 5.32, 2.38, 1.39 Tasks: 341 total, 3 running, 337 sleeping, 0 stopped, 1 zombie Cpu0 : 7.7%us, 1.7%sy, 0.0%ni, 79.5%id, 11.1%wa, 0.0%hi, 0.0%si, 0.0%st Cpu1 : 0.3%us, 0.0%sy, 0.0%ni, 94.9%id, 4.7%wa, 0.0%hi, 0.0%si, 0.0%st Cpu2 : 3.3%us, 0.7%sy, 0.0%ni, 55.7%id, 40.3%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3 : 5.0%us, 1.0%sy, 0.0%ni, 86.2%id, 7.4%wa, 0.0%hi, 0.3%si, 0.0%st Cpu4 : 38.5%us, 5.4%sy, 0.3%ni, 0.0%id, 54.8%wa, 0.0%hi, 1.0%si, 0.0%st Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu6 : 0.3%us, 0.7%sy, 0.0%ni, 97.3%id, 1.7%wa, 0.0%hi, 0.0%si, 0.0%st Cpu7 : 5.4%us, 4.4%sy, 0.0%ni, 82.6%id, 7.7%wa, 0.0%hi, 0.0%si, 0.0%st Cpu8 : 1.7%us, 1.7%sy, 0.0%ni, 72.8%id, 23.8%wa, 0.0%hi, 0.0%si, 0.0%st
6. รีเฟรชเอาต์พุตคำสั่ง Unix Top ตามต้องการ (หรือ) เปลี่ยนช่วงเวลารีเฟรช
โดยค่าเริ่มต้น คำสั่ง linux top อัปเดตเอาต์พุตทุก 3.0 วินาที เมื่อต้องการอัปเดตตามต้องการ กด space bar
เพื่อเปลี่ยนความถี่การอัปเดต กด d ในโหมดโต้ตอบ และใส่เวลาในวินาที ตามด้านล่าง
Change delay from 3.0 to: 10 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
7. ไฮไลท์กระบวนการที่กำลังรันในเอาต์พุต Linux Top – กด z หรือ b
กด z หรือ b จะไฮไลท์กระบวนการที่กำลังรันทั้งหมด ตามด้านล่าง

รูป: Ubuntu Linux – คำสั่ง top ไฮไลท์กระบวนการที่กำลังรัน
8. แสดงพาธสัมบูรณ์ของคำสั่งและอาร์กิวเมนต์ – กด c
กด c จะแสดง/ซ่อนพาธสัมบูรณ์ของคำสั่ง และอาร์กิวเมนต์ ตามด้านล่าง
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 /usr/sbin/gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 /usr/sbin/gagent -l 0 -u pre
9. ออกจากคำสั่ง Top หลังจำนวนรอบที่กำหนด ด้วย top -n
จนกว่าคุณจะกด q top จะแสดงเอาต์พุตต่อเนื่อง หากต้องการดูแค่จำนวนรอบที่กำหนดและให้ top ออกอัตโนมัติ ใช้ตัวเลือก -n ตามด้านล่าง
ตัวอย่างต่อไปนี้จะแสดง 2 รอบของเอาต์พุตคำสั่ง unix top และออกอัตโนมัติ
$ top -n 2
10. รันคำสั่ง Unix Top ในโหมด Batch
หากต้องการรันคำสั่ง top ในโหมด batch ใช้ตัวเลือก -b ตามด้านล่าง
$ top -b -n 1
หมายเหตุ: ตัวเลือกนี้มีประโยชน์มากเมื่อต้องการบันทึกเอาต์พุตคำสั่ง unix top ลงในไฟล์ข้อความที่อ่านง่าย ตามที่อภิปรายก่อนหน้านี้
11. แบ่งเอาต์พุต Top เป็นหลายแผง – กด A
เพื่อแสดงมุมมองหลายมุมของเอาต์พุตคำสั่ง top บนเทอร์มินอล ให้กด A คุณสามารถวนผ่านหน้าต่างเหล่านี้ด้วย 'a' นี่มีประโยชน์มาก เมื่อคุณสามารถเรียงเอาต์พุตบนหลายหน้าต่างด้วยคอลัมน์ top ที่ต่างกัน
12. ได้ความช่วยเหลือคำสั่ง Top จากบรรทัดคำสั่งและโหมดโต้ตอบ
ได้ความช่วยเหลือตัวเลือกบรรทัดคำสั่งแบบรวดเร็วด้วย top -h ตามด้านล่าง
$ top -h top: procps version 3.2.0 usage: top -hv | -bcisS -d delay -n iterations [-u user | -U user] -p pid [,pid ...]
กด h ขณะคำสั่ง top กำลังรัน จะแสดงความช่วยเหลือสำหรับคำสั่ง top โต้ตอบ
Help for Interactive Commands - procps version 3.2.0 Window 1:Def: Cumulative mode Off. System: Delay 3.0 secs; Secure mode Off. Z,B Global: 'Z' change color mappings; 'B' disable/enable bold l,t,m Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info 1,I Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode ..........
13. ลดจำนวนกระบวนการที่แสดงในเอาต์พุต Top – กด n
กด n ในโหมดโต้ตอบ จะถามตัวเลขและแสดงแค่จำนวนนั้น ตัวอย่างต่อไปนี้จะแสดงแค่ 2 กระบวนการในคราวเดียว
Maximum tasks = 0, change to (0 is unlimited): 2 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
14. สลับส่วนหัว Top เพื่อเพิ่มจำนวนกระบวนการที่แสดง
โดยค่าเริ่มต้น top แสดงจำนวนกระบวนการทั้งหมดตามความสูงของหน้าต่าง หากต้องการดูกระบวนการเพิ่มเติม อาจต้องกำจัดข้อมูลหัวบางส่วนของ top
ต่อไปนี้คือข้อมูลหัวเริ่มต้นที่ top ให้มา
top - 23:47:32 up 179 days, 3:36, 1 user, load average: 0.01, 0.03, 0.00 Tasks: 67 total, 1 running, 66 sleeping, 0 stopped, 0 zombie Cpu(s): 0.7% user, 1.2% system, 0.0% nice, 98.0% idle Mem: 1017136k total, 954652k used, 62484k free, 138280k buffers Swap: 3068404k total, 22352k used, 3046052k free, 586576k cached
- กด l – ซ่อน/แสดง load average บรรทัดหัวที่ 1
- กด t – ซ่อน/แสดงสถานะ CPU บรรทัดหัวที่ 2 และ 3
- กด m – ซ่อน/แสดงข้อมูลหน่วยความจำ บรรทัดที่ 4 และ 5
15. บันทึกการตั้งค่า Top – กด W
หากคุณได้ตั้งค่า top แบบโต้ตอบตามตัวอย่างข้างต้น คุณอาจต้องการบันทึกไว้สำหรับเอาต์พุต top ทุกครั้งในอนาคต เมื่อบันทึกการตั้งค่า top แล้ว ครั้งต่อไปที่เรียกคำสั่ง top การตั้งค่าที่บันทึกจะถูกใช้โดยอัตโนมัติ
เพื่อบันทึกการตั้งค่า top ให้กด W ซึ่งจะเขียนไฟล์การตั้งค่าไปที่ ~/.toprc จะแสดงข้อความยืนยันการเขียน ตามด้านล่าง
top - 23:47:32 up 179 days, 3:36, 1 user, load average: 0.01, 0.03, 0.00 Tasks: 67 total, 1 running, 66 sleeping, 0 stopped, 0 zombie Cpu(s): 0.7% user, 1.2% system, 0.0% nice, 98.0% idle Mem: 1017136k total, 954652k used, 62484k free, 138280k buffers Swap: 3068404k total, 22352k used, 3046052k free, 586576k cached Wrote configuration to '/home/ramesh/.toprc'