Quero listar apenas aplicativos em execução como: Firefox, gedit, Nautilus, etc. usando a linha de comando.
Nota: não quero listar todos os processos em execução, apenas os aplicativos em execução (por exemplo, GUIs iniciadas manualmente).
command-line
gui
window
Pandya
fonte
fonte
Respostas:
Uma combinação
wmctrl
exprop
oferece muitas possibilidades.Exemplo 1:
A saída pode parecer neste caso semelhante a esta:
Exemplo 2:
Exemplo de saída:
Você pode adicionar a função
~/.bashrc
ou executá-la a partir de um arquivo de script.fonte
Introdução
O poder de
xdotool
ewmctrl
sai quando você precisa executar uma manipulação nas janelas, como mover ou redimensionar. No entanto, acredito firmemente que, para efeitos de apenas listando os programas em execução e informações sobre eles,xprop
eqdbus
são duas ferramentas suficientes e instalarxdotool
ewmctrl
, a menos que o usuário quer aqueles para funcionalidade adicional - é uma tarefa sem propósito. Nesta resposta, eu gostaria de apresentar duas soluções de script comxprop
eqdbus
.Note que eu não sou contra
xdotool
ou a favorwmctrl
. Eu mesmo os usei extensivamente, mas os acho mais poderosos quando combinados com outras ferramentas. Aqui estão apenas alguns exemplos em que os usei:Xprop
O script abaixo usa apenas xprop para extrair a lista das janelas ativas, filtrar apenas as janelas verdadeiras (sem o tipo de dock sugado como Unity Launcher ou Unity Panel) e exibir suas informações:
Demo:
Fonte do script :
Qdbus
O código abaixo executa essencialmente a mesma tarefa; no entanto, ele filtra os aplicativos primeiro, depois lista as janelas filhas e, finalmente, fornece informações sobre eles.
Exemplo de execução:
Código em si:
Um comando um pouco mais simples, mas requer filtragem da saída, usa a interface dbus da pilha de janelas do Unity. Aqui está essencialmente uma função que eu tenho no meu
.mkshrc
Exemplo de execução:
Exemplos de uso do qdbus:
fonte
wmctrl -l
poderia ser uma coisa que você queria. Primeiro instale-oVocê também pode combiná-lo com a lista do Monitor do sistema, por padrão, mostra "Todos os meus processos", o que significa todos os processos que pertencem a você como usuário.
Para ter apenas nomes de aplicativos, execute:
EDITAR:
fonte
0x03c000b3 0 avinash-Lenovo-IdeaPad-Z500 How list of running applications by command? - Ask Ubuntu - Mozilla Firefox
mais algumas linhas extras sobre Desktop, Hud, etc.wmctrl -l|awk '{out=""; for(i=2;i<=NF;i++){out=$out" "$i}; print $out}'
irá adicionar à minha resposta. Obrigado por apontar.