Criando item no menu do GNU/Linux com terminal executando comandos/scripts/aplicações

Publicado por Esli Silva em 04/07/2014

[ Hits: 6.232 ]

Blog: http://www.esli-nux.com

 


Criando item no menu do GNU/Linux com terminal executando comandos/scripts/aplicações



Situação: Possuo alguns programas que criei (em Perl, Python e outros em bash), que precisam ser executados em terminal (obvio, não?), porém para organizá-los, eu prefiro criar entradas no menu principal e separá-los em submenus (por ordem lógica).

Porém, se você apenas inserir ele no menu (chamando o executável do script), ele vai abrir um terminal, executá-lo e depois fechar o terminal (normalmente, ele vai piscar o terminal na sua tela), ou vai fechar logo que você sair de sua aplicação.

Exemplo 1: se você criar uma entrada no menu (GNOME/MATE/Xfce...) para abrir um terminal e mostrar uma query de SQL (relatório, por exemplo), ele vai piscar o terminal, sem chances de ver o conteúdo (abre, executa e fecha).

Exemplo 2: criar uma entrada no menu para chamar um programa de monitoramento, como o htop, top ou o glances. Ao criar a entrada no menu e depois executar, ele abre o terminal e executa o programa, mas ao sair do glances/top/htop (com a letra Q) ele sai do programa e fecha o terminal.

Exemplo 3: criar uma entrada que execute uma aplicação gráfica, mas faça isto pelo terminal para abrir um debug.

Solução 1

Abaixo, como criar item no menu do GNU/Linux que abra um comando executando em terminal (e manter o terminal aberto).

O código completo:

Com o gnome-terminal:

gnome-terminal -x bash -c "comandoouarquivo.sh ; bash"

mate-terminal:

mate-terminal -x bash -c "comando_ou_arquivo.sh ; bash"

xterm:

xterm -e bash -c "comando_ou_arquivo.sh ; bash"
xfce4-terminal
xfce4-terminal -e ' bash -c "glances ; bash" '

lxterminal:

lxterminal -e " bash -c ' glances ; bash ' "

Nos terminais xfce4, lx e xterm:

"-e STRING" ou "--command=STRING" ou "--command STRING"

O -e serve para indicar um comando a ser executado (ou um script), pode-se usar --command (com = ou espaço depois) ao invés de -e.

Nos terminais GNOME e MATE, não há o -e, isto é feito pelo -x, eles aceitam o --command. Então, caso queira criar um script mais autônomo e automático, pode deixar tudo com o --command e buscar o terminal que o usuário possui em seu GNU/Linux através de variáveis.

O porém no gnome-terminal e no mate-terminal, é que neles você não deve colocar as aspas simples com as duplas (não vai funcionar igual aos outros terminais). Apenas use aspas após o -c do bash, para informar o que deve ser executado dentro do bash ao abrir o terminal.

gnome-terminal/mate-terminal: -x, --execute command

O -c é uma opção do bash informando que a string a seguir será executada como comando/parâmetro dentro do bash.

Exemplos:

gnome-terminal -x bash -c "glances; bash"

Outro exemplo:

mate-terminal -x bash -c "/opt/relthck.sh ; bash"

Solução 2

Pelo gerenciador de menu, você pode organizar os itens por submenus (ex.: em Network, eu tenho alguns submenus, como sniffers, scanners), além de poder colocar ícones para cada entrada e a descrição. Com a entrada criada, você pode colocar atalhos na área de trabalho e no painel (barra do sistema).

Com esta dica, é possível criar os menus semelhantes aos que tem em distribuições como BackTrack, Kali, BackBox, entre outras distros que possuem como base a disposição de aplicações que são somente executadas em modo terminal.

Criação de uma entrada no menu do GNOME ou MATE: Menu Sistema → Preferências → Menu Principal

Para chamar o editor de menu via terminal, os comandos são: alacarte no GNOME e mozo no MATE.

Obs.: no MATE, creio que é default na instalação, mas no GNOME, pode ser que o alacarte não esteja instalado em seu GNU/Linux, basta instalá-lo com um apt/aptitude.


Fonte (eu postei esta dica lá e aqui também, na íntegra):
Outras dicas deste autor

TtyLinux - Linux com ISO de 6 MB

NFtables – O Sucessor do IPtables (já no kernel 3.13)

Leitura recomendada

Multitail - Monitore vários logs em tempo real

Aulas Shell Script do zero - Parte 3

Aulas Shell Script do zero - Parte 1

Como fazer o Linux ignorar um ping

Curso de Shell Script

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts