Mi problema es: cada vez que estoy programando, trabajo dentro de carpetas que están dentro de otras carpetas y es un largo camino para escribir:
cd /folder1/folder2/.../folderN
Sé que es posible hacer un acceso directo a la carpeta usando alias
. Así sería:
alias ep="cd /Users/thi/Dropbox/CurrentProject"
Mi pregunta es, ¿dónde debo poner este alias? dentro /etc/bashrc
? ¿ O debería crear un archivo llamado ~/.profile
y colocarlo allí? ¿Dónde debo ponerlo?
Mantengo alias en ~/.bash_profile
.
Terminal e iTerm 2 abren nuevos shells como shells de inicio de sesión de forma predeterminada. Cuando se invoca bash como un shell de inicio de sesión interactivo, lee ~/.bash_profile
pero no ~/.bashrc
. Los emuladores de terminal en otras plataformas a menudo abren nuevos shells como shells que no son de inicio de sesión, por ejemplo, bash lee ~/.bashrc
pero no ~/.bash_profile
. Los usuarios de OS X a menudo lo usan ~/.bash_profile
como el archivo de configuración personal correspondiente a ~/.bashrc
otras plataformas, pero también es posible obtener ~/.bashrc
o ~/.bash_profile
decirle a Terminal o iTerm 2 que abran nuevos shells como shells sin inicio de sesión.
Si ambos ~/.profile
y ~/.bash_profile
existen, bash solo lee ~/.bash_profile
cuando se invoca como un shell de inicio de sesión interactivo. ~/.profile
también lo utilizan otros shells y programas que pueden no comprender las mismas opciones de configuración que bash.
/etc/bashrc
es propiedad de root y puede ser reemplazado cuando actualice OS X.
Consulte man bash|less +^INVOCATION
o https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html para obtener más información.
Por lo general, coloca las definiciones de alias en el mismo archivo que sus $PATH
definiciones, lo que probablemente sea ~/.bashrc
.
Técnicamente hablando, un alias no es un acceso directo a una carpeta, sino a cualquier comando de shell. Así que también puedes tener cosas como
alias heal='xattr -d com.apple.quarantine'
alias la='ls -lFa'
alias ll='ls -lF'
alias ls='ls -FG'
alias show-path='echo -e ${PATH//:/\\n}'
para hacerte la vida más fácil. Los alias se reemplazan tal cual por el shell, por lo que si ejecuta
heal downloadedFile.dmg
se expande a
xattr -d com.apple.quarantine downloadedFile.dmg
y ejecutado después. Si necesita más flexibilidad con los parámetros, es posible que desee ver las funciones de shell (pero eso probablemente debería ir a otra pregunta).
No soy un experto en bash, pero creo que deberías poner tu alias dentro de .bashrc en tu directorio de inicio.
Esta respuesta resume claramente lo que idealmente pertenece a cada uno de ~/.bashrc
, ~/.profile
y ~/.bash_profile
. En resumen:
~/.bash_profile debe ser súper simple y solo cargar .profile y .bashrc (en ese orden)
~/.profile tiene cosas que NO están específicamente relacionadas con bash, como variables de entorno (RUTA y amigos)
~/.bashrc tiene todo lo que desea en una línea de comando interactiva. Símbolo del sistema, variable EDITOR, alias de bash para mi uso
Algunas otras notas:
Todo lo que debería estar disponible para aplicaciones gráficas O para sh (o bash invocado como sh) DEBE estar en ~/.profile
~/.bashrc no debe generar nada
Todo lo que debería estar disponible solo para los shells de inicio de sesión debe ir en ~/.profile
Asegúrese de que ~/.bash_login no exista.
añádelo a~/.bash_profile
echo 'alias ep="cd $HOME/Dropbox/CurrentProject"' >> ~/.bash_profile
NOTA: No debe haber ningún espacio entre el alias/variable y el signo igual ("=") y el valor. Si su valor tiene espacios, entonces el valor completo se debe poner entre comillas.
Intente establecer una variable de entorno, en su lugar. Esto es probablemente más como lo que realmente quieres.
echo 'export EP="$HOME/Dropbox/CurrentProject"' >> ~/.bash_profile
echo 'alias ep="cd $EP"' >> ~/.bash_profile
NOTA: Se accede a las variables de entorno anteponiendo el signo de dólar ("$") . Sin embargo, al definirse, se debe omitir el signo de dólar ("$") .
Enlaces simbólicos . también conocido como Enlaces simbólicos . {FKA. alias _ (Mac OS)}. {BKA. Atajos _ (SO Windows)}.
ln -s <dirA/subB/fileC_in> <dirX/subY/symbZ_out>
NOTA: los enlaces simbólicos a veces se indican anteponiendo el signo ampersand ("@") .
Ɱarca Ƭ
ls -l P/H/O/Cla<tab>
, se expande als -l Projects/Home/OpenGL/Clams