ps ax 显示所有正在运行的进程。我想做类似的事情,但不是显示实际进程的名称,而是显示窗口名称。哪个 Linux 命令可以做到这一点?
答案1
wmctrl -l
可能就是你要找的东西。控制端程序还可以对窗口执行一些简单的操作,例如移动它们和设置它们的属性。
答案2
xlsclients
显示正在运行的客户端并xwininfo -root -children
显示根窗口的所有子窗口。其中还包括窗口管理器或桌面呈现的一些内容。
答案3
以下是仅显示名称的方法:
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
我们只得到打开的窗口的名称:
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
[email protected] - FileZilla
答案4
如果您只想要标题而不想要其他信息(甚至不需要空格),您可以使用以下命令:
wmctrl -l | grep -o "$HOSTNAME.*" | sed "s/$HOSTNAME //g"
结果:
linux - 如何 grep 和替换 - 堆栈内存溢出 - Pale Moon 如何在 sed 中使用变量?| Unix Linux 论坛 | Shell 编程和脚本 - Pale Moon 使用 GREP 删除文本文件中字符 * 或 # 或 & 后面的所有内容 - Stack Overflow - Pale Moon 视频.mp4 - VLC 媒体播放器