我们如何获得正在运行的应用程序的命令行?

拉杜·拉迪亚努(RaduRădeanu)

在Ubuntu中,可以从终端打开应用程序。但是有时不清楚执行此操作的适当命令是什么。

因此,打开应用程序后,如何获得用于启动它的命令,而不必在任何地方搜索(仅通过查看即可)?

拉杜·拉迪亚努(RaduRădeanu)

我刚刚编写了以下脚本,该脚本使用应用程序窗口标题来找到正确的命令,该命令从终端(我将其命名为appcmd)中打开相应的应用程序

#!/bin/bash

#appcmd - script which use the application window title to find out the right command which opens the respective application from terminal

#Licensed under the standard MIT license:
#Copyright 2013 Radu Rădeanu (http://askubuntu.com/users/147044/).
#Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
#The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE

#check if wmctrl is installed
if [ ! -n "$(dpkg -s wmctrl 2>/dev/null | grep 'Status: install ok installed')" ]; then
    echo -e "The package 'wmctrl' must to be installed before to run $(basename $0).\nUse 'sudo apt-get install wmctrl' command to install it."
    exit
fi

window_title=$(echo $@ | awk '{print tolower($0)}')
windows=$(mktemp)
pids=$(mktemp)
pid_found=""

wmctrl -l | awk '{$2=$3=""; print $0}' > $windows

cat $windows | while read identity window; do
    if [[ $(echo $window | awk '{print tolower($0)}') == *$window_title* ]]; then
        wmctrl -lp | grep -e "$identity.*$window" | awk '{$1=$2=$4=""; print $0}'
    fi
done > $pids

while read pid window; do
    if [ "$pid" != "0" -a "$window" != "Desktop" ]; then
        echo -e "Application window title:\t$window"
        echo -e "Command to open from terminal:\t\$ $(ps -o command $pid | tail -n 1)\n"
        pid_found="$pid"
    fi
done < $pids

if [ "$pid_found" = "" ]; then
    echo "There is no any opened application containing '$@' in the window title."
fi

将此脚本保存在~/bin目录中,不要忘记使它可执行:

chmod +x ~/bin/appcmd

用法:

  • 当脚本运行时不带任何参数时,该脚本将返回与所有打开的窗口相对应的所有命令。

  • 如果给出任何参数,脚本将尝试找到一个打开的应用程序窗口,该窗口的标题中包含该参数,并将返回相应的命令。例如,如果打开了Chromium浏览器,则可以仅使用以下命令从终端中找到打开该浏览器的命令:

    appcmd chromium
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们如何获得正在运行的应用程序的命令行?

来自分类Dev

如何获取正在运行的应用程序的命令行?

来自分类Dev

如何从命令行停止正在运行的应用程序

来自分类Dev

如何使用命令行获取正在运行的应用程序的列表?

来自分类Dev

我们如何在Linux终端中更改多个正在运行的命令行参数?

来自分类Dev

Windows 7/10命令行显示正在运行的应用程序/窗口

来自分类Dev

在命令行OSX中返回正在运行的应用程序(不是进程)的列表

来自分类Dev

解析正在运行的应用程序中输入的字符串命令行参数

来自分类Dev

如何找出正在运行的程序的命令行参数?

来自分类Dev

仅当Charles代理已启动并正在运行时,我们的应用程序才会加载GUI

来自分类Dev

我如何检测正在运行的特定应用程序

来自分类Dev

OSX使命令行应用程序在运行时在Dock中显示图标

来自分类Dev

我如何获得xargs来显示它正在生成的命令行而不运行它们?

来自分类Dev

确定全屏应用程序是否正在运行的命令?

来自分类Dev

确定全屏应用程序是否正在运行的命令?

来自分类Dev

是否可以查看在运行命令行应用程序后执行了哪些行?

来自分类Dev

我们如何使用命令行运行Robot Framework文件和测试用例?

来自分类Dev

我们如何获得移动应用程序发送的响应

来自分类Dev

如何从命令行运行GUI应用程序?

来自分类Dev

如何检查应用程序是否在命令行上运行?

来自分类Dev

如何从命令行为快捷应用程序运行XCTest?

来自分类Dev

如何从命令行调用嵌入式jre以便运行Java应用程序

来自分类Dev

如何部署从命令行运行的Javascript应用程序?

来自分类Dev

如何在Mac OS中使用命令行参数运行应用程序

来自分类Dev

如何捕获已经运行的应用程序的命令行输出?

来自分类Dev

如何从命令行运行GUI应用程序?

来自分类Dev

如何关闭Spring Boot命令行应用程序

来自分类Dev

如何从命令行停止Mule应用程序?

来自分类Dev

如何从命令行查找应用程序的路径?

Related 相关文章

  1. 1

    我们如何获得正在运行的应用程序的命令行?

  2. 2

    如何获取正在运行的应用程序的命令行?

  3. 3

    如何从命令行停止正在运行的应用程序

  4. 4

    如何使用命令行获取正在运行的应用程序的列表?

  5. 5

    我们如何在Linux终端中更改多个正在运行的命令行参数?

  6. 6

    Windows 7/10命令行显示正在运行的应用程序/窗口

  7. 7

    在命令行OSX中返回正在运行的应用程序(不是进程)的列表

  8. 8

    解析正在运行的应用程序中输入的字符串命令行参数

  9. 9

    如何找出正在运行的程序的命令行参数?

  10. 10

    仅当Charles代理已启动并正在运行时,我们的应用程序才会加载GUI

  11. 11

    我如何检测正在运行的特定应用程序

  12. 12

    OSX使命令行应用程序在运行时在Dock中显示图标

  13. 13

    我如何获得xargs来显示它正在生成的命令行而不运行它们?

  14. 14

    确定全屏应用程序是否正在运行的命令?

  15. 15

    确定全屏应用程序是否正在运行的命令?

  16. 16

    是否可以查看在运行命令行应用程序后执行了哪些行?

  17. 17

    我们如何使用命令行运行Robot Framework文件和测试用例?

  18. 18

    我们如何获得移动应用程序发送的响应

  19. 19

    如何从命令行运行GUI应用程序?

  20. 20

    如何检查应用程序是否在命令行上运行?

  21. 21

    如何从命令行为快捷应用程序运行XCTest?

  22. 22

    如何从命令行调用嵌入式jre以便运行Java应用程序

  23. 23

    如何部署从命令行运行的Javascript应用程序?

  24. 24

    如何在Mac OS中使用命令行参数运行应用程序

  25. 25

    如何捕获已经运行的应用程序的命令行输出?

  26. 26

    如何从命令行运行GUI应用程序?

  27. 27

    如何关闭Spring Boot命令行应用程序

  28. 28

    如何从命令行停止Mule应用程序?

  29. 29

    如何从命令行查找应用程序的路径?

热门标签

归档