21 votos

Cómo definir persistentemente los alias en Terminal

Quiero añadir alias a mi entorno para que estén disponibles en todas las instancias de Terminal.

Tengo esta respuesta :

Sí, puedes ponerlo en tu .bashrc, .bash_profile o .profile. En algunos sistemas el shell init scripts también fuente .bash_aliases o .aliases así que si uno de esos archivos existe en tu sistema puede tener sentido utilizarlos.`

Pero no puedo encontrar ninguno de estos archivos.

(He configurado OS X para ver los archivos ocultos, y sin embargo no veo ninguno de los 4 anteriores).

0 votos

Los alias sólo funcionan en el intérprete de comandos (en Terminal), así que ¿a qué te refieres exactamente al añadir alias a tu entorno de OS X? ¿Quieres hacer un alias accesible a todos los usuarios?

0 votos

Me refería a que se fijará para cada instancia de terminal que abra en el futuro

0 votos

He retirado tu edición porque ha cambiado el enfoque de la pregunta. Si todavía estás buscando una respuesta sobre cómo añadir alias a zsh, por favor, haz una nueva pregunta.

27voto

Fuzzy Purple Monkey Puntos 702

Si utiliza bash, añada los comandos de alias a ~/.bashrc y guarde un archivo como ~/.bash_profile:

. ~/.bashrc

Cuando bash es invocado como un shell interactivo sin inicio de sesión, lee .bashrc pero no .bash_profile. Cuando bash es invocado como un shell interactivo de inicio de sesión, lee .bash_profile pero no .bashrc.

Terminal y iTerm abren nuevos shells como shells de inicio de sesión por defecto, por lo que muchos usuarios de OS X sólo utilizan .bash_profile como su archivo de configuración personal. Por ejemplo, tmux y el modo de shell en Emacs abren nuevos shells como shells que no son de inicio de sesión.

.profile también es leído por otros shells como ksh. Si tanto .bash_profile como .profile existen, bash sólo lee .bash_profile cuando se invoca como shell de inicio de sesión interactivo.

Ver https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html para más información.

4 votos

@EladBenda Si utiliza zsh , añada los comandos de alias a ~/.zshrc . ~/.zshrc es leído tanto por los shells (interactivos) que no inician sesión como por los que sí lo hacen, por lo que no es necesario obtenerlo de ~/.zprofile .

0 votos

Siempre he querido saber la diferencia entre .bash_profile y .bashrc, ahora lo sé. Gracias.

0 votos

Una mejor opción es mantener los alias en un archivo llamado ~/.aliases si estás usando oh-my-zsh. Si este archivo no existe, se puede añadir en la carpeta de inicio y sería un archivo oculto.

6voto

user36155 Puntos 36

Abra una nueva ventana de Terminal y vaya a su directorio principal (simplemente escriba cd y pulse Enter).

A continuación, escriba ls .bash* y también ls .profile (tenga en cuenta que cada uno de esos nombres de archivo comienza con un punto). Si tienes esos archivos (y deberías tener al menos el .profile) entonces necesitas editarlos y añadirles tus alias. Yo uso VI (o VIM) para editar esos archivos, pero podrías usar otro editor (de hecho escribiendo en tu ventana de Terminal open .bash_profile lo abrirá en TextEditor, que puede ser un poco más fácil de usar si no estás familiarizado con VI). Si, por alguna razón, no tienes ninguno de esos archivos, entonces crea uno nuevo (y llámalo .bashrc), agrega tus líneas de alias en él (así que será un comando por línea, como los escribirías en el shell) y luego guarda el archivo. Luego puedes crear enlaces simbólicos a .bash_profile y .profile usando ln -s .bashrc .bash_profile; ln -s .bashrc .profile .

Lo que suelo hacer es hacer enlaces simbólicos de .bashrc y .bash_profile a .profile y así sólo tengo que preocuparme de un archivo.

La diferencia entre estos archivos es que bash generará otros diferentes dependiendo de si se ha iniciado como un shell de inicio de sesión (normalmente un proceso de inicio de sesión iniciaría el shell como un shell de inicio de sesión) o sólo como un shell interactivo (pero no de inicio de sesión), o un shell no interactivo. Tener los tres archivos esencialmente iguales me da un entorno consistente independientemente de cómo se inició bash.

Obtendrá más información haciendo man bash pero prepárate, es una página de manual muy larga. Podrá ver cuál de los tres archivos (.bashrc, .profile y .bash_profile) se origina dependiendo del modo en que se inició bash.

Espero que le sirva de ayuda; si no, avíseme.

3voto

user172265 Puntos 1

Introduzca los siguientes comandos en el Terminal:

cd /etc
sudo vi bashrc

añadir lo siguiente como:

alias ll="ls -lrt"

Finalmente reinicie el Terminal.

2voto

cmcculloh Puntos 11040

Si necesita esta máquina de ancho que necesita para buscar en el /etc carpeta. Sin embargo, es posible que no existan por defecto, en cuyo caso sólo tiene que crearlos en la carpeta mencionada y reiniciar el terminal. Lo más probable es que tenga que utilizar sudo para crearlos como el /etc es propiedad de root .

Si necesitas esto para cada terminal que abres no necesitas hacerlo en toda la máquina. Puede crear estos archivos en su propia carpeta de inicio y será leído por la terminal cada vez que inicie una sesión de terminal.

Además, como se menciona en los comentarios, por lo general sólo podrá ver estos usando la terminal y utilizando ls -lha .

0voto

Blerta Puntos 1199

Si tienes ruby instalado, mira este ruby script https://github.com/ytbryan/aka

El scriptproporciona funcionalidades como la persistencia y el autoabastecimiento del archivo de puntos. Puede gestionar los alias a través de la terminal sin romper su flujo de trabajo y abrir un editor de texto.

Aviso: Yo escribí este script y lo uso todos los días. Hágame saber si hay algún error/idea :)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X