Aliases em .bash_profile não funcionam

Aliases em .bash_profile não funcionam

Eu adicionei alguns comandos cd blá blá como alias em meu .bash_login para facilitar a mudança de diretórios. de repente ele iria parar de funcionar. Alguma sugestão? (Eu reiniciei meu sistema)

Peço desculpas, eu realmente pretendia escrever .bash_login

Responder1

Aliases não são exportados. Ou seja, um alias definido em um shell não faz parte do ambiente herdado por nenhum shell filho. Portanto, o melhor lugar para definir aliases é em seu ~/.bashrc, não em seu ~/.bash_profile ou ~/.profile, já que o primeiro será originado por qualquer shell interativo, enquanto os dois últimos serão originados apenas por shells de login .

Responder2

Use o aliascomando no shell para confirmar se eles estão realmente sendo criados ou não. Além disso, você está usando apenas o programa Mac Terminal.app? Em algum lugar nas opções deve haver uma configuração que você pode configurar para usar o que é chamado de shell de login. É assim que o arquivo .bash_profile será originado.

Responder3

O arquivo .bash_profile provavelmente não está sendo lido pelo seu shell na inicialização. Muitas distros têm algo assim em seu .bashrc padrão:

if [ -f ~/.bash_profile ]; then
        . ~/.bash_profile
fi

Se você estiver usando apenas aliases, recomendo que você nomeie o arquivo ~/.bash_aliases:

if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
fi

Tudo o que faz é verificar se o arquivo existe e, em caso afirmativo, executar os comandos nele contidos. No seu caso, os comandos alias. Coloque isso em seu .bashrc e seus problemas deverão ser resolvidos.

EDIT: Na verdade é um pouco mais complicado que isso. Minha solução funcionará, mas vale a pena ler.bash_profile versus .bashrc

PS: Raramente é necessária uma reinicialização para corrigir um problema em um sistema *nix. Um logout e login no máximo.

Responder4

Se o que você está tentando fazer é facilitar a mudança de diretórios, veja $CDPATH:

CDPATH The search path for the cd command.  This is a colon-separated list of
       directories in  which  the shell looks for destination directories
       specified by the cd command. A sample value is ".:~:/usr".

Usando o exemplo acima, adicione o seguinte ao seu perfil:

CDPATH=.:~:/usr

Então, não importa em qual diretório você esteja, você poderá acessar facilmente os diretórios filhos de ~ou /usr.

$ pwd
/var/log
$ cd bin
$ pwd
/usr/bin

informação relacionada