Tornar o executável visível para o bash

0

Eu tenho executável: /opt/Eclipse/eclipse . Eu gostaria de executá-lo a partir de qualquer caminho do console de terminal. Por esse motivo eu crio link simbólico:

ln -s /opt/Eclipse/eclipse /usr/bin/eclipse

Mas isso não ajudou a executar o eclipse apenas compre digitando ./eclipse de qualquer local na janela do terminal. O sistema não encontra executável. Eu estava esperando que o sistema encontre eclipse link em /usr/bin . Onde está o erro no meu pensamento?

    
por vico 04.01.2018 / 17:22

3 respostas

2

Por que se incomodar em vinculá-lo? Você pode simplesmente adicionar /opt/Eclipse ao seu PATH . No seu ~/.bashrc :

PATH="/opt/Eclipse:$PATH"

e depois

source ~/.bashrc

então você deve ser capaz de rodar

eclipse
    
por nixpower 04.01.2018 / 17:43
0

Solução alternativa simples com o arquivo .bashrc

Em vez de criar um link simbólico, basta adicionar um alias no arquivo .bashrc ... Para fazer isso, você pode começar adicionando alias eclipse='/file/pathway/to/executable' ao final do arquivo .bashrc . Então você pode testar isso executando source .bashrc e eclipse ...

    
por NerdOfCode 04.01.2018 / 17:28
0

Isso, na verdade, pode ser um pouco surpreendente à primeira vista. bash (e outras shells também) mantém um hash para rapidamente encontrar binários no $PATH quando um usuário emite um comando. A alternativa seria varrer todos os diretórios todas as vezes que um comando for emitido para descobrir qual é o significado. E isso é caro.

Em determinadas circunstâncias, o hash não é atualizado corretamente. Leia aqui e aqui (seção hash ) para os detalhes exatos.

Você parece ter visto um caso tão raro quando o conteúdo real do diretório e os valores desse hash estão fora de sincronia. Um simples

hash -r

informa ao bash para reconstruir seu hash. Isso só precisa ser feito uma vez se você quiser manter sua janela de terminal atual aberta. Se você, em vez disso, fechar e reabrir a janela do terminal, isso não é necessário.

    
por PerlDuck 04.01.2018 / 20:19