Pular para o conteúdo

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

Dica publicada em Shell Script / Introdução
Esli Silva eslih
Hits: 10.445 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

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):

TtyLinux - Linux com ISO de 6 MB

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

Utilizando o vim

Cli-Apps.org - Repositório de shell scripts

Goosh.org, um shell Google

Substituindo palavras no editor VI

Contagem de linhas em shell script

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.