sgu*_*sgu 11 command-line firefox
我有多个 Firefox 实例在 Ubuntu 14.04 中运行。如何从终端关闭最近打开的窗口/实例?
我尝试使用在相关问题的答案中定义的 cfct 别名,但没有用。
Jac*_*ijm 14
要创建一个命令来查找id由Firefox(并关闭它)创建的最后一个窗口的,您需要wmctrl安装:
sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)
然后使用命令:
wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }')"
Run Code Online (Sandbox Code Playgroud)
wmctrl -l
Run Code Online (Sandbox Code Playgroud)
列出所有窗口,但该命令的一个重要属性是它按照创建的顺序列出窗口。
所以:
wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }'
Run Code Online (Sandbox Code Playgroud)
将要:
列出所有窗口:
wmctrl -l
Run Code Online (Sandbox Code Playgroud)找到名称中带有“Mozilla Firefox”的那些(行):
grep 'Mozilla Firefox'
Run Code Online (Sandbox Code Playgroud)找到最后一个(也是最后一个创建的):
tail -1
Run Code Online (Sandbox Code Playgroud)提取行中的第一个字符串(即窗口 -id):
awk '{ print $1 }'
Run Code Online (Sandbox Code Playgroud)命令:
wmctrl -ic
Run Code Online (Sandbox Code Playgroud)
然后将通过其 id(优雅地)杀死最近的 Firefox 窗口。
虽然远高于在几乎所有情况下,作品的命令,也就是名称冲突的可能性很小,如果例如用“Mozilla Firefox浏览器”在其名称中存在的另一个窗口,而不是从一个窗口Firefox(不太可能,但仍然)。
因此,什么应该工作“防水”是识别(使用窗口列表窗口wmctrl -lp由)PID的firefox,而不是在窗口名称字符串,:
wmctrl -ic "$(wmctrl -lp | grep "$(pgrep firefox)" | tail -1 | awk '{ print $1 }')"
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,在这个命令中,
wmctrl -l | grep 'Mozilla Firefox'
Run Code Online (Sandbox Code Playgroud)
生成包含“Mozilla Firefox”的行被替换为:
wmctrl -lp | grep "$(pgrep firefox)"
Run Code Online (Sandbox Code Playgroud)
生成包含 Firefox pid 的行(作为 的输出pgrep firefox)
| 归档时间: |
|
| 查看次数: |
5612 次 |
| 最近记录: |