Adicione um binário ao meu caminho

11

Eu tenho um executável. Eu quero executar o executável no terminal com o nome apenas como outros comandos.

Eu posso colocar meu executável em /usr/local/bin ou posso adicionar seu PATH a ~/.bashrc . Ambos funcionarão.

O que é melhor? Existe alguma diferença?

    
por Mohammad Reza Rezwani 29.03.2014 / 11:43

4 respostas

8

Por exemplo, suponha que você tenha um executável myscript . Você precisa executá-lo a partir de um terminal como

/path/to/myscript

Alteração no nível do usuário

Se você adicionar o PATH desse executável a ~/.bashrc , poderá executar o executável com nome apenas em qualquer lugar ( Avinash Raj já mencionado), como

myscript

Mas a alteração será afetada no nível do usuário . Isso significa que, se você tiver outros usuários, eles não poderão acessar o executável apenas com o nome. Se tiverem permissão adequada, precisam executar o executável como

/path/to/myscript

Além disso, você não poderá executar o script como sudo , pois ele não está em PATH da raiz, para executar como sudo você precisa usar,

sudo /path/to/myscript

alteração no nível do sistema

Se você colocar seu script em /usr/local/bin , ele poderá ser acessado por todo o sistema e para todos os usuários. Nesse caso, qualquer usuário pode executar o seu executável como (sujeito a ter as devidas permissões)

myscript

Nesse caso, você pode executar o executável como sudo também,

sudo myscript

Agora escolha um caminho, dependendo da sua necessidade.

    
por souravc 29.03.2014 / 14:57
2

Adicionar a localização do arquivo à sua variável $PATH no seu arquivo ~/.bashrc permitirá que você execute somente a partir de qualquer local, enquanto colocar em /usr/bin/ permitirá que todos os usuários em seu sistema executem esse arquivo a partir de qualquer local.

Por que isso? Porque, o seu arquivo ~/.bashrc é visível apenas para você como usuário. Portanto, todas as mudanças variáveis feitas são limitadas a você. Considerando que, adicionar esse arquivo a /usr/bin permitirá que o arquivo permaneça lá para todos os usuários e como /usr/bin está presente na variável $PATH , a menos que alguém o remova, permitirá que todos os usuários o executem em qualquer local.

    
por jobin 29.03.2014 / 15:14
0

Se você colocar o arquivo executável em /usr/bin ou /usr/local/bin , poderá executar esse programa especificando apenas o nome ( your-program em vez de /usr/local/bin/your-program ).

Se você adicionar o diretório contendo o programa ao arquivo ~/.bashrc para o PATH , qualquer arquivo executável presente nesse diretório poderá ser iniciado digitando apenas seu nome.

    
por Avinash Raj 29.03.2014 / 11:54
0

Apenas como um complemento para @souravc answer ...

Para a "Alteração no nível do usuário", em vez de editar o arquivo ~/.bashrc , basta criar o diretório $HOME/bin/ e colocar seus scripts lá.

O diretório será adicionado automaticamente ao PATH (pelo menos desde o Ubuntu 12.04), o que significa que você poderá executar todos os scripts / executáveis dentro desse diretório com um simples:

myscript

Apenas meus 2 centavos. :)

PS- Eu tentei postar isso como um comentário para @souravc answer, mas eu não tenho reputação suficiente. : - (

    
por Restless 10.02.2016 / 20:24