Como posso fazer para que eu possa executar um programa específico, apenas digitando seu nome no console?

15

Acabei de instalar o Light Table baixando-o do repositório git e seguindo as instruções em este site para criar um lançador de desktop.

Agora quero executar o programa digitando diretamente no terminal

LightTable

e não

./opt/LightTable/deploy/LightTable
    
por dapias 21.07.2014 / 18:02

6 respostas

18

Isso pode ser feito grosseiramente com um alias. Você pode criar um alias permanente bash adicionando uma única linha ao seu arquivo .bashrc .

Na execução do terminal nano ~/.bashrc

Adicione a seguinte linha na parte inferior:

alias LightTable='/full/path/opt/LightTable/deploy/LightTable'

aviso eu adicionei o caminho completo em vez do . , então isso funcionará em qualquer diretório de trabalho. Feche e reabra o terminal ou execute source ~/.bashrc para recarregar o arquivo bashrc.

    
por dan08 21.07.2014 / 18:09
7

Esta não é uma questão elementar, a melhor maneira de fazer isso é criar um alias, usar o netbeans como exemplo

Abra o terminal Ctrl+Alt+T

nano ~/.bashrc

escreva isso na parte inferior do arquivo:

alias netbeans='/home/john/netbeans-7.0.1/bin/netbeans'

Ctrl + x

Y

Enter

A palavra netbeans é o comando que você usará para iniciar o programa, você pode alterá-lo para o que precisar. Dentro das aspas é o comando que você deseja executar quando o apelido netbeans é chamado.

Para que este comando esteja ativo, você deve reabrir o Terminal

    
por Johnn 21.07.2014 / 18:13
5

Você pode tentar copiar o executável para /usr/bin se for um programa executável simples e não depender de nenhum outro arquivo. se depender de outros arquivos, o melhor a fazer é criar um comando de atalho para o programa.

Onde você cria o alias é por conta própria (.bashrc, .profile, etc). No entanto, eu pessoalmente deixo todas as minhas variáveis ambientais no meu arquivo .bash_aliases (você precisa criá-lo em primeira instância).

Crie o arquivo .bash_aliases na sua pasta HOME e edite-o como quiser. Então, para criar o atalho, você pode fazer:

alias LightTable='path_to_opt/LightTable/deploy/LightTable'

Salve o arquivo e pronto.

ps: você também pode colocar o alias como lighttable e LIGHTTABLE caso esqueça de maiúsculas o L ou se o capslock estiver ativo por acidente, assim você não precisa digitar o comando novamente.

    
por Geo 21.07.2014 / 18:17
3

Não sei por que outros respondentes não sugeriram isso, mas como o OP realmente apontou, prefixar à variável $PATH teria sido a maneira como eu teria conseguido isso:

echo 'PATH=/opt/LightTable/deploy:$PATH' >> ~/.bash_profile
source ~/.bash_profile

Em seguida, execute com:

LightTable
    
por JoeNyland 22.07.2014 / 09:59
2

É melhor criar um link simbólico do que um alias, eu acho. Um alias pode fazer substituições em sua linha de comando quando você não quer uma; criar um link simbólico permitirá que você execute o programa como quiser:

sudo ln -s full_path_to_opt/LightTable/deploy/LightTable  /usr/local/bin

Isto irá criar um atalho em / usr / local / bin (que já deve estar no seu PATH!) para onde o LightTable realmente está. Note também que você pode renomear o link simbólico também se você não gostar das letras maiúsculas em "LightTable":

sudo ln -s full_path_to_opt/LightTable/deploy/LightTable  /usr/local/bin/lighttable

Apenas para referência, se o programa é desajeitadamente projetado, ou seja, se queixa de não encontrar arquivos de configuração ou bibliotecas ou qualquer outra coisa, então outra solução que pode ser mais útil é criar um script de wrapper. Para fazer isso basta criar um arquivo (onde quer que você goste por enquanto) chamado "LightTable" (ou o que você quiser) com isso:

#!/bin/sh
# Simple script to run LightTable
if ! cd full_path_to_opt/LightTable/deploy/LightTable ; then
    echo "$0: error: LightTable directory not found." >&2
    exit 1
fi
exec ./LightTable

Altere as permissões deste arquivo:

chmod 755 <wrapper_script>

e tente executá-lo apenas para ver se funciona e, em caso afirmativo, mova-o para / usr / local / bin:

sudo mv -i <wrapper_script> /usr/local/bin
    
por Zorawar 22.07.2014 / 11:45
0

Eu tentei fazer isso quando comecei no Ubuntu. Quando você coloca o LightTable no terminal Ele procura por um arquivo chamado LightTable nos diretórios $PATH . você pode colocar echo $PATH para obter os diretórios.

Se você quiser executar seu programa LightTable em ./opt/LightTable/deploy/LightTable , então o que você precisa fazer é coloque seu arquivo Light Table em /usr/games or /usr/bin. Mas isso requer permissões de super usuário

abra o terminal com Ctrl + Alt + T

depois coloque

Eu prefiro criar um atalho de LightTable usando

sudo ln -s path/to/LightTable  /usr/games/LightTable

Em seguida, coloque a senha do SU. Então, você pode acessar seu programa usando LightTable no terminal

Você pode colocar /usr/bin ou /usr/local/bin em vez de /usr/games , qualquer coisa que seja um diretório $PATH , não precisa ser assim, mas eu recomendo que você coloque em /usr/local/bin

Eu também recomendo que você altere o arquivo de saída como lightpath em vez de LightPath

    
por Prashanth Sriram 07.01.2017 / 04:32