Los alias en .bash_profile no funcionan

Los alias en .bash_profile no funcionan

Agregué algunos comandos cd blah blah como alias en mi .bash_login para facilitar el cambio de directorios. Estaba funcionando bien. De repente, aunque ninguno de los alias allí funciona. Dice comando no encontrado. No tengo idea de por qué todos De repente dejaba de funcionar. ¿Alguna sugerencia? (Reinicié mi sistema)

Pido disculpas, en realidad quise escribir .bash_login

Respuesta1

Los alias no se exportan. Es decir, un alias definido en un shell no forma parte del entorno heredado por ningún shell secundario. Por lo tanto, el mejor lugar para definir alias es en ~/.bashrc, no en ~/.bash_profile o ~/.profile, ya que el primero se obtendrá de cualquier shell interactivo, mientras que los dos últimos se obtendrán únicamente de shells de inicio de sesión. .

Respuesta2

Utilice el aliascomando en el shell para confirmar si realmente se están creando o no. Además, ¿estás utilizando simplemente el programa Mac Terminal.app? En algún lugar de las opciones debería haber una configuración que pueda configurar para usar lo que se llama un shell de inicio de sesión. Así es como se obtendrá el archivo .bash_profile.

Respuesta3

Es probable que su shell no lea el archivo .bash_profile al iniciarlo. Muchas distribuciones tienen algo como esto en su .bashrc predeterminado:

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

Si lo único que usas son alias, te recomiendo que le pongas al archivo el nombre ~/.bash_aliases:

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

Todo lo que hace es comprobar si el archivo existe y, de ser así, ejecutar los comandos que contiene. En su caso, los comandos de alias. Introduzca eso en su .bashrc y sus problemas deberían resolverse.

EDITAR: En realidad, es un poco más complicado que eso. Mi solución funcionará, pero vale la pena leerlo..bash_profile frente a .bashrc

PD: Rara vez es necesario reiniciar para solucionar un problema en un sistema *nix. Un cierre de sesión e inicio de sesión como máximo.

Respuesta4

Si lo que intentas hacer es facilitar el cambio de directorios, mira $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 el ejemplo anterior, agregue lo siguiente a su perfil:

CDPATH=.:~:/usr

Luego, si no importa en qué directorio se encuentre, podrá acceder fácilmente a los directorios secundarios de ~o /usr.

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

información relacionada