Autor Tópico: Executar Programas pelo Terminal  (Lida 28494 vezes)

Offline christiankiss

  • Usuário Ubuntu
  • *
  • Mensagens: 32
    • Ver perfil
    • Conta no GameSpot
Executar Programas pelo Terminal
« Online: 10 de Junho de 2011, 16:14 »
Boa tarde.

Primeiro vou explicar o motivo do tópico e depois a pergunta:

Quando há um programa instalado pela Central de Programas do Ubuntu, eu simplesmente abro o terminal, e sem navegar para nenhuma outra pasta, eu só digito o nome do software e ele abre. Exemplos: gedit, gimp, gcalctool, libreoffice etc.

Eu sempre achei esses comandos muito práticos, desde a época que eu usava o Windows e colocava meus atalhos em "c:\Windows\System32" para rodar aplicativos rapidamente pelo "Executar". =)

A minha dúvida é a seguinte: alguns aplicativos eu não instalo pela Central de Programas. O Eclipse, por exemplo, eu preferi baixar pelo site do desenvolvedor para obter uma versão específica para Java. Só que o Eclipse não é instalado, ele apenas descompacta um arquivo tarball e o programa é rodado pelo executável "eclipse". No terminal, eu acesso o diretório do eclipse e rodo o comando "./eclipse". Como eu faria para "registrar" o nome desse aplicativo no Ubuntu e rodá-lo pelo nome "eclipse", sem precisar navegar para a pasta do programa pelo terminal?

Desde já, agradeço.
« Última modificação: 07 de Julho de 2011, 17:47 por christiankiss »

Offline Tota

  • Usuário Ubuntu
  • *
  • Mensagens: 14.982
    • Ver perfil
Re: Executar Programas pelo Terminal
« Resposta #1 Online: 10 de Junho de 2011, 16:18 »
Ola

Voce pode procurar por => variáveis de ambiente

Se voce incluir na variavel de ambiente $Path o caminho para o arquivo executável ./eclipse o sistema o encontrará.

[]'s

Offline koheleth

  • Usuário Ubuntu
  • *
  • Mensagens: 160
    • Ver perfil
    • Guia LPI
Re: Executar Programas pelo Terminal
« Resposta #2 Online: 10 de Junho de 2011, 16:45 »
Tota,

Eu uso o Ubuntu 10.04, não sei se essa dica vai te ajudar.

Tem um software chamado "Gnome Do", que é parecido com o Quicksilver para Mac e Launchy para Windows.

Quando aperto a tecla super(win)+barra de espaço, ele abre, e basta digitar parte do nome do programa para abrí-lo.

Ele está na Central de programas, é só instalar.

Ele é bem configurável, vale apena usar
Ubuntu 13.04
acesse: Guia LPI
Profº Marcos Aurélio

Offline christiankiss

  • Usuário Ubuntu
  • *
  • Mensagens: 32
    • Ver perfil
    • Conta no GameSpot
Re: Executar Programas pelo Terminal
« Resposta #3 Online: 10 de Junho de 2011, 16:50 »
Valeu, Tota. Você me deu o caminho das pedras. =)

Tem que incluir a variável PATH no arquivo .bashrc, informando o caminho do diretório do executável.

Para os interessados, o passo-a-passo:

1. Abrir o terminal;

2. Digitar: gedit ~/.bashrc

3. Na última linha do arquivo, incluir: export PATH=$PATH:/home/christiano/eclipse

OBS.: No caso, tenho uma pasta "eclipse" dentro da pasta pessoal do usuário Christiano. Depende do programa e onde está o executável.

koheleth: Valeu pela dica, mas eu queria mesmo era fazer na "unha" pelos recursos nativos do Ubuntu/Linux. Mas a dica é boa... dá até pra fazer pelo atalho do teclado.
« Última modificação: 10 de Junho de 2011, 16:52 por christiankiss »

Offline druidaobelix

  • Usuário Ubuntu
  • *
  • Mensagens: 5.552
    • Ver perfil
Re: Executar Programas pelo Terminal
« Resposta #4 Online: 12 de Junho de 2011, 17:18 »
Olá christiankiss,

Um primeiro ponto a notar é que a dificuldade ocorre porque o programa, no exemplo o Eclipse, não segue estritamente a normativa do FHS - Filesystem Hierarchy  Standard, preferindo colocar todos os seus arquivos em uma única pasta própria.

FHS define os diretórios principais e seus conteúdos dentro do sistema operacional Linux. Quem quiser uma visão resumida e bastante simples disso pode conferir aqui:

http://pt.wikipedia.org/wiki/FHS

Adicionalmente, essa pasta própria do eclipse contendo todos os seus arquivos, obtida após a descompactação, pode ser colocada em qualquer caminho, desde que todos os arquivos estejam juntos, entretanto, é de ver que deixar essa pasta no caminho /home é, digamos assim, pelo menos uma impropriedade.

O diretório /home conceitualmente não deveria conter arquivos binários, executáveis, mas apenas arquivos que correspondam a arquivos de geração própria do usuário (documentos textos, imagens, configurações, etc).

A impropriedade fica manifesta quando se pensa no procedimento de backup da pasta /home, onde então se estará copiando arquivos desnecessários, ocupando um espaço maior e ainda alongando o tempo de execução do backup, já que em princípio não é necessário fazer backup do programa propriamente dito, já que a qualquer momento, em caso de necessidade, pode novamente ser feito o download a partir de sua origem (repositório, site).

O FHS, de maneira geral, prevê a utilização do diretório /opt/ para aplicações.

No caso do Eclipse isso seria perfeitamente possível uma vez que o programa permite determinar o caminho onde devem ser salvos os trabalhos realizados, numa pasta que por padrão ele denomina de workspace, a qual, essa sim, pode ser colocada em qualquer caminho, como por exemplo, /home/nome_usuario/desenvolvimento/eclipse/workspace, ou qualquer outro que se queira.

Retornemos, porém, ao foco da questão proposta, que é poder chamar o programa a partir do terminal digitando apenas o seu nome (nome do binário), isto é, sem ter que anteceder esse nome com o comando de execução (./), usando o bash, que é o interpretador de comando padrão do Linux.

Uma solução possível é criar um link simbólico no path do sistema apontando para o binário executável.

Só para ilustrar, vamos supor a seguinte situação, feito o download compactado do eclipse, baixado e descompactado dentro da pasta Downloads, descompactação essa que gera a pasta eclipse, dentro da qual estão todos os arquivos do programa.

Esse passo é desnecessário, dependendo de onde se queira deixar o eclipse, mas é apenas para ilustar, vamos transferir a pasta eclipse para o diretório /opt/

sudo mv /home/nome_usuario/Downloads/eclipse /opt/

nome_usuario, claro, usa o nome de usuário real do sistema, no caso concreto.

Criando um link simbólico.

A path do sistema é dada por:

echo $PATH

o que resulta em:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Vamos criar o link simbólico dentro de /usr/local/sbin

Entrando no diretório:

cd /usr/local/sbin

Criando o link simbólico com o nome exato do próprio binário executável:

sudo ln -s /opt/eclipse/eclipse

Conferindo se o link simbólico está lá

ls

resulta:

eclipse (em cor diferenciada, azul claro, se estiver usando esquema de cores para o terminal)

Experimente agora chamar o programa digitando apenas eclipse a partir de qualquer ponto do terminal e verá o carregamento do programa. Por exemplo, navegue até a pasta /home/nome_usuario e digite eclipse.

cd /home/nome_usuario
eclipse

Um ponto a notar é que essa espécie de uso, carregar o programa a partir do terminal, faz com que o terminal fique "preso" ao programa que está sendo executado, o que é uma desvantagem (experimente fazer o mesmo com o firefox), quando comparativamente se aciona o programa a partir do ambiente gráfico.

Embora seja possível fazer uso da opção acima descrita, é sempre melhor manter uma entrada do programa que se instalou no menu do sistema, existente na barra superior (tomando como referência o Ubuntu 11.04, ambiente clássico), usando o procedimento padrão de criação dessa entrada para aqueles programas que não se instalam ou se instalam e não criam por si próprios essa entrada no ambiente gráfico.

Os desenvolvedores despendem muito esforço e energia para criar ferramentas amigáveis para a realização das tarefas do sistema, sendo o uso do terminal (CLI - Command Line Interface, segundo alguns, numa corruptela, Command Linux Interface) uma exceção à regra, que é o uso do ambiente gráfico.

O procedimento padrão para criação de entrada no menu do sistema é clicar no último ícone à direita da barra superior, o painel, localizando a entrada "Configurações do sistema", abre-se a janela "Centro de Controle".

Dentro do "Centro de Controle", no grupo "Pessoal", localize o ícone "Menu principal", click nele.

Na coluna à esquerda identifique e torne ativo o grupo em que se quer instalar o ícone (no nosso exemplo do Eclipse, seria o grupo "Desenvolvimento", mas pode ser qualquer um que se queira).

Click no botão "+Novo item" para adicionar uma entrada.

Coloque um nome que se queira no campo "Nome"

Use o botão "Navegar" para encontrar o executável e estabelecer o comando de chamada do programa correspondente.

Click em OK para fechar, pronto, a entrada de chamada do programa e seu correspondente ícone estão colocados no menu do sistema, de forma rápida, fácil e simples.

Embora absolutamente desnecessário, haja vista o procedimento padrão acima descrito, querendo, sempre é possível complicar e adicionar a entrada no menu do sistema manualmente.

Cada entrada do menu do sistema possui um arquivo correspondente no formato nome_do_programa.desktop no diretório:

/usr/share/applications

Assim sendo, pode ser criado um arquivo texto (use o gedit para isso) e adicionado nesse diretório, arquivo esse no seguinte formato que se pode exemplificar com o gbrainy.desktop, que é um jogo disponível no menu do sistema em Aplicativos/Jogos/gbrainy:

[Desktop Entry]
Version=1.0
Name=gbrainy
GenericName=Game
Comment=Play games that challenge your logic, verbal, calculation and memory abilities
Exec=gbrainy
Icon=gbrainy
StartupNotify=true
Terminal=false
Type=Application
Categories=GNOME;GTK;Game;LogicGame;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gbrainy
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=@VERSION@
X-Ubuntu-Gettext-Domain=gbrainy

Ainda como exemplo, no caso do Eclipse, poderia ser criado um eclipse.desktop nos seguintes moldes:

[Desktop Entry]
Name=Eclipse
Comment=ferramenta de desenvolvimento
Exec=/opt/eclipse/eclipse
Terminal=false
Type=Application
Icon=/opt/eclipse/eclipse_icon.png
Categories=Development;Database;

Como dito acima, isso é apenas complicação desnecessária, já que o procedimento padrão faz tudo isso de forma muito mais simples e rápida, entretanto, é apenas para constar a possibilidade.

[]'s

« Última modificação: 12 de Junho de 2011, 17:24 por druidaobelix »
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

Offline cesargcomp

  • Usuário Ubuntu
  • *
  • Mensagens: 545
    • Ver perfil
Re: Executar Programas pelo Terminal
« Resposta #5 Online: 12 de Junho de 2011, 18:57 »
Outra forma seria criar um alias (apelido) para o programas.

1. Abra o arquivo /etc/bash.bashrc (sudo gedit /etc/bash.bashrc) e adicione as seguintes linhas no final do arquivo:
Código: [Selecionar]
if [ -f ~/.bash_alias ]; then
    . ~/.bash_alias
fi

2. Crie um arquivo com o nome de .bash_alias (gedit /home/usuario/.bash_alias) no diretório /home/usuario e adicione os alias dentro dele.
Exemplo:
Código: [Selecionar]
alias eclipse='/home/usuario/eclipe/eclipse'
alias hjsplit='/home/cesar/Downloads/hjsplitlx_v3.1/hjsplit'

3. Reinicie a sessão e teste.

No caso, só para complementar, você pode adicionar vários alias para outras tarefas. Olhe os exemplos:
alias update='sudo apt-get update'
alias upgrade='sudo apt-get upgrade'
alias install='sudo apt-get install '
alias remove='sudo apt-get remove '
alias purge='sudo apt-get --purge remove '
alias search='sudo apt-cache search '

Fonte: http://www.thelinuxgeeks.info/2011/06/09/custom-ubuntu-alias/

Espero ter ajudado.
Use Ubuntu. Segurança, facilidade e gratuidade em suas mãos.

Offline christiankiss

  • Usuário Ubuntu
  • *
  • Mensagens: 32
    • Ver perfil
    • Conta no GameSpot
Re: Executar Programas pelo Terminal
« Resposta #6 Online: 13 de Junho de 2011, 03:01 »
druidaobelix: Nossa, ótima a sua resposta. O procedimento funciona direitinho. Obrigado pela atenção!

cesargcomp: Interessante este método. Da maneira que eu postei acima, só é possível chamar o programa pelo nome do executável.

Obrigado pela atenção de todos. =)

Offline bred81

  • Usuário Ubuntu
  • *
  • Mensagens: 971
  • HAN?!
    • Ver perfil
Re: Executar Programas pelo Terminal
« Resposta #7 Online: 13 de Junho de 2011, 17:13 »
Só pra mostrar mais um jeito:

eu crio uma pasta bin no home
Código: [Selecionar]
mkdir ~/bin e crio um link pro executável que eu quero
Código: [Selecionar]
cd ~/bin && ln -s /nome/do/executavel
Reinicia a seção que funciona.
« Última modificação: 13 de Junho de 2011, 17:16 por bred81 »
O que o Mario foi fazer no pscicólogo?
- Ele estava passando por uma fase difícil...

Offline jackads

  • Usuário Ubuntu
  • *
  • Mensagens: 5
    • Ver perfil
Re: Executar Programas pelo Terminal
« Resposta #8 Online: 01 de Janeiro de 2012, 17:28 »
Para não abrir outro tópico gostaria que alguém pudesse me ajudar em uma questão do mesmo tipo por aqui mesmo, se puderem.

Estive lendo o tutorial http://wiki.ubuntu-br.org/ConfigurandoVari%C3%A1veisDeAmbiente para tentar aprender como configurar a variável PATH para que eu possa executar comandos no terminal em qualquer lugar, por exemplo, eu tenho um comando dentro da pasta "/android-sdk-linux/tools" que se chama android, mas eu gostaria de poder executar o comando android fora da tal pasta.

Então eu fiz mais ou menos o que o tutorial mandava, eu editei o arquivo /etc/bash.bashrc adicionando a seguinte linha:

export ANDROID_TOOLS=/home/jackads/android-sdk-linux/tools

Que é o caminho mesmo onde está a tal pasta com os tais arquivos dos comandos, então eu dei o comando

source /etc/bash.bashrc
e
$ANDROID_TOOLS

Como ensinava o tutorial para testar se havia sido carregado corretamente, e então o terminal exibiu

bash: /home/jackads/android-sdk-linux/tools: É um diretório

Acreditando que havia dado certo tentei executar o comando que desejava, mas não funcionou.

Aí agora vi esse tópico e o rapaz fala de outra forma e em outro arquivo, então fiz do seguinte modo:

export ANDROID_TOOLS=$ANDROID_TOOLS:/home/jackads/android-sdk-linux/tools

e modificar no arquivo ~/.bashrc mas também não funcionou, então fiz o mesmo no /etc/bash.bashrc e ficou assim quando peço o eco

jackads@matrix:~$ echo $ANDROID_TOOLS
/home/jackads/android-sdk-linux/tools:/home/jackads/android-sdk-linux/tools:/home/jackads/android-sdk-linux/tools

Mas mesmo assim não funciona. Não sei mais o que fazer para configurar essa variável de caminho.

Faltou alguma coisa? Ou o tutorial para carregar o PATH para os comandos java não funciona para carregar o PATH para outros comandos diferentes? Porque essa forma do eclipse também não funcionou. =/

Obrigado pela atenção, que Deus os abençoe e tenham um feliz ano novo!