ps ax แสดงกระบวนการทำงานทั้งหมด ฉันต้องการทำสิ่งที่คล้ายกัน แต่แทนที่จะเป็นชื่อของกระบวนการจริงฉันต้องการชื่อหน้าต่างที่แสดงแทน คำสั่ง Linux ใดที่จะทำสิ่งนี้
ps ax แสดงกระบวนการทำงานทั้งหมด ฉันต้องการทำสิ่งที่คล้ายกัน แต่แทนที่จะเป็นชื่อของกระบวนการจริงฉันต้องการชื่อหน้าต่างที่แสดงแทน คำสั่ง Linux ใดที่จะทำสิ่งนี้
คำตอบ:
wmctrl -l
อาจเป็นสิ่งที่คุณกำลังมองหา wmctrlโปรแกรมยังสามารถดำเนินการบางอย่างง่ายบน windows เช่นย้ายพวกเขาไปรอบ ๆ และการตั้งค่าคุณสมบัติของพวกเขา
xlsclients
แสดงไคลเอ็นต์ที่รันอยู่และxwininfo -root -children
แสดงรายการลูกทั้งหมดของหน้าต่างรูท ซึ่งรวมถึงบางสิ่งที่ตัวจัดการหน้าต่างหรือการแสดงผลบนเดสก์ท็อป
นี่คือวิธีแสดงชื่อเท่านั้น:
wmctrl -l|awk '{$3=""; $2=""; $1=""; print $0}'
เพราะwmctrl -l
แสดงข้อมูลเพิ่มเติมเล็กน้อยมากกว่าชื่อที่ต้องการในคำถาม:
แบบนี้:
0x020002c6 0 ruslan-Latitude-E6410 fromscratch
0x04600007 0 ruslan-Latitude-E6410 Psensor - Temperature Monitor
0x01600007 0 ruslan-Latitude-E6410 Top Expanded Edge Panel
0x01600017 0 ruslan-Latitude-E6410 Bottom Expanded Edge Panel
0x0200000a -1 ruslan-Latitude-E6410 Desktop
0x05a0000c 0 ruslan-Latitude-E6410 ruslan@ruslan-Latitude-E6410: /var/lib/apt
0x05600085 0 ruslan-Latitude-E6410 index.html (~/Dropbox/cpucraft.com/fromscratch) - gedit
และกรองโดยawk
เราจะได้รับเพียงชื่อของ windows ที่เปิดอยู่:
fromscratch
Psensor - Temperature Monitor
Top Expanded Edge Panel
Bottom Expanded Edge Panel
Desktop
ruslan@ruslan-Latitude-E6410: /var/lib/apt
index.html (~/Dropbox/cpucraft.com/fromscratch) - gedit
ubuntu - Get a list of open windows in Linux - Super User - Mozilla Firefox
cpucraft@cpucraft.com - FileZilla
หากคุณต้องการเพียงแค่ชื่อและไม่มีข้อมูลอื่น ๆ (ไม่แม้แต่ช่องว่าง) คุณสามารถใช้สิ่งนี้:
wmctrl -l | grep -o "$HOSTNAME.*" | sed "s/$HOSTNAME //g"
ผลลัพธ์:
linux - วิธีการ grep และแทนที่ - Stack Overflow - Pale Moon ฉันจะใช้ตัวแปรใน sed ได้อย่างไร | ฟอรัม Unix Linux การเขียนโปรแกรมเชลล์และการเขียนสคริปต์ - Pale Moon ลบทุกอย่างหลังจากตัวอักษร * หรือ # หรือ & ในไฟล์ข้อความด้วย GREP - Stack Overflow - Pale Moon Video.mp4 - VLC Media Player