Câu trả lời:
wmctrl -l
có thể là những gì bạn đang tìm kiếm. Các wmctrl chương trình cũng có thể thực hiện một số hành động đơn giản trên các cửa sổ như di chuyển chúng xung quanh và thiết lập các thuộc của họ.
xlsclients
hiển thị các máy khách đang chạy và xwininfo -root -children
hiển thị tất cả các con của cửa sổ gốc. Điều đó cũng bao gồm một số thứ trình quản lý cửa sổ hoặc màn hình nền của bạn.
Đây là cách chỉ hiển thị tên:
wmctrl -l|awk '{$3=""; $2=""; $1=""; print $0}'
bởi vì wmctrl -l
hiển thị thêm một chút thông tin thay vì chỉ yêu cầu tên trong câu hỏi:
như thế này:
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
và lọc nó bằng cách awk
chúng tôi chỉ nhận được tên của các cửa sổ đang mở:
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
Nếu bạn chỉ muốn các tiêu đề và không có thông tin nào khác (thậm chí không có khoảng trắng), bạn có thể sử dụng thông tin này:
wmctrl -l | grep -o "$HOSTNAME.*" | sed "s/$HOSTNAME //g"
Kết quả:
linux - Cách grep và thay thế - Stack Overflow - Pale Moon Làm thế nào tôi có thể sử dụng một biến trong sed? | Diễn đàn Unix Linux | Lập trình và lập trình Shell - Pale Moon Xóa mọi thứ sau các ký tự * hoặc # hoặc & trong tệp văn bản với GREP - Stack Overflow - Pale Moon Video.mp4 - Trình phát phương tiện VLC