Esta outra resposta é boa, especialmente como uma substituição temporária. Por uma questão de completude, este é o ponto principal:
export PATH="/usr/local/Cellar/nano/2.9.1/bin:$PATH"
O problema é: se você precisar de uma solução permanente para várias ferramentas, então com uma abordagem tão simples, o seu $PATH
irá inchar desnecessariamente.
Isto é como evitar isto (no Debian, a questão é para o Mac OS X, mas eu acredito que a solução também se aplica ou pode ser facilmente adaptada). Primeiro crie seu próprio bin/
:
mkdir ~/bin/
(Editar: no macOS, ~/Library/bin/
ajusta-se à organização da pasta pessoal um pouco melhor. Decidi não alterar minha resposta, mas adapte esse caminho às suas necessidades.)
Em seguida, modifique seu $PATH
:
PATH=~/bin:"$PATH"
(Veja nota 1 abaixo se você quiser torná-lo permanente.)
Em seguida, crie uma ligação simbólica do nano
(e de qualquer outro binário) desejado para o seu bin/
:
ln -s /usr/local/Cellar/nano/2.9.1/bin/nano ~/bin/
(Veja nota 2 abaixo se você quiser usar este nano
imediatamente.)
Essa abordagem tem as seguintes vantagens:
- seu
$PATH
permanece relativamente curto e limpo; - com
ls -l ~/bin/
você pode facilmente dizer quais ferramentas você substitui com o que; isso é muito melhor do que analisar um$PATH
inchado que especifica diretórios; cada diretório pode incluir muitos executáveis e você precisals
para conhecê-los; - removendo um link simbólico, criá-lo novamente é muito mais fácil do que modificar
$PATH
, especialmente de dentro de um script; - você também pode colocar seus próprios scripts em
~/bin/
.
Nota 1: no meu Debian o /etc/skel/.profile
inclui o seguinte código:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Meu ~/.profile
foi criado como uma cópia de /etc/skel/.profile
, portanto, o código está lá desde o início. Isso significa que toda nova sessão de shell ajusta seu $PATH
para incluir minha conta privada bin/
; tudo que eu tinha que fazer era criar o diretório.
Observação 2: ao modificar $PATH
no meio de uma sessão (por exemplo, para testar minha solução), lembre-se de que seu shell pode lembrar o antigo local de qualquer executável que ele já consultou, de acordo com o antigo $PATH
. Conchas comuns usam hash
embutidas para gerenciar isso. Use hash -r
, se necessário.
Se você personalizar $PATH
no início de uma sessão de shell (como em .profile
), então não há esse problema.