Como definir um comando sem definir caminho everytime?

1

Eu tenho um comando que é:

./keytool

Mas eu sempre tenho que ir para esta pasta para usá-lo:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin

Como posso usar o seguinte comando em todo o meu ambiente, em vez de definir o caminho todas as vezes?

keytool

Como tenho que fazer isso?

    
por lvthillo 17.11.2015 / 11:00

2 respostas

1

Uma maneira seria criar um link simbólico para qualquer pasta atualmente na sua variável PATH, neste exemplo usamos / usr / bin /.

sudo ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/keytool /usr/bin/keytool
    
por 17.11.2015 / 11:21
1

Adicione a seguinte linha ao final do arquivo .bashrc (ou .profile ) que está no seu diretório pessoal:

export PATH=$PATH:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin

No entanto, esta é uma abordagem muito frágil, já que não funcionará como esperado, assim que você atualizar sua instalação do java. Se você quiser fazer isso de maneira mais adequada, sugiro algumas maneiras:

procure na pasta /etc/alternatives , veja se há um link chamado java apontando para a home java atual (pode estar apontando para outro link). Se estiver lá, mude a linha de exportação com

export PATH=$PATH:/etc/alternatives/java

ou (dependendo do seu sistema), você pode ter um link em /usr/lib/jvm , algo como /usr/lib/jvm/java apontando para a versão mais recente do jvm que você instalou. Se estiver lá, você pode usar este, então a linha de exportação é

export PATH=$PATH:/usr/lib/jvm/java

Além disso, se você quiser que ele seja todo o sistema (em vez de limitar a extensão do caminho para o usuário), adicione a linha a /etc/bashrc (ou /etc/bash-bashrc se estiver lá).

Como nota final, isso só funcionará em shells recém-criados, não os que você já tem, a menos que você emita o comando

. ~/.bashrc

(ou o arquivo que você modificou, se não for .bashrc ) nesses shells.

    
por 17.11.2015 / 11:22

Tags