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 alias
comando 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