Cómo definir persistentemente alias en Terminal

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

Recibí esta respuesta :

Sí, puedes ponerlo en tu .bashrc, .bash_profile o .profile. En algunos sistemas, los scripts de inicio de shell también generan .bash_aliases o .aliases, por lo que si uno de esos archivos existe en su sistema, puede tener sentido usarlos.

Pero no puedo encontrar ninguno de estos archivos.

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

Los alias solo funcionan en el shell (en la Terminal), entonces, ¿qué quiere decir exactamente al agregar alias a su entorno OS X? ¿Desea que un alias sea accesible para todos los usuarios?
Quise decir que se configurará para cada instancia de terminal que abra en el futuro
He revertido su edición porque cambió el enfoque de la pregunta. Si aún está buscando una respuesta sobre cómo agregar alias a zsh, formule una nueva pregunta.

Respuestas (7)

Si usa bash, agregue los comandos de alias a ~/.bashrc y guarde un archivo como este como ~/.bash_profile:

. ~/.bashrc

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

Terminal e iTerm abren nuevos shells como shells de inicio de sesión de forma predeterminada, por lo que muchos usuarios de OS X solo usan .bash_profile como su archivo de configuración personal. Por ejemplo, tmux y el modo shell en Emacs abren nuevos shells como shells sin inicio de sesión.

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

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

@EladBenda Si usa zsh, agregue los comandos de alias a ~/.zshrc. ~/.zshrces leído por ambos shells (interactivos) sin inicio de sesión y de inicio de sesión, por lo que no tiene que obtenerlo de ~/.zprofile.
Siempre quise saber la diferencia entre .bash_profile y .bashrc, ahora lo sé. Gracias.
Una mejor opción es mantener los alias en un archivo llamado ~/.aliases si está utilizando oh-my-zsh. Si este archivo no existe, se puede agregar en la carpeta de inicio y sería un archivo oculto.

Abra una nueva ventana de Terminal y vaya a su directorio de inicio (simplemente escriba cdy presione Entrar).

Después de eso, escriba ls .bash*y también ls .profile(tenga en cuenta que cada uno de esos nombres de archivo comienza con un punto). Si tiene esos archivos (y debería tener al menos el .profile uno), entonces necesita editarlos y agregarles sus alias. Uso VI (o VIM) para editar esos archivos, pero podría usar otro editor (de hecho, escribir en la ventana de su terminal open .bash_profilelo abrirá en TextEditor, que puede ser un poco más fácil de usar si no está familiarizado con VI) . Si, por alguna razón, no tiene ninguno de esos archivos, cree uno nuevo (y llámelo .bashrc), agregue sus líneas de alias en él (así será un comando por línea, ya que los escribiría en shell) y luego guarde el archivo. Luego puede crear enlaces simbólicos a .bash_profile y .profile usando ln -s .bashrc .bash_profile; ln -s .bashrc .profile.

Lo que normalmente hago es crear enlaces simbólicos .bashrc y .bash_profile a .profile y luego solo tengo que preocuparme por un solo archivo.

La diferencia entre esos archivos es que bash generará diferentes dependiendo de si se inició como un shell de inicio de sesión (por lo general, un proceso de inicio de sesión iniciaría el shell como un shell de inicio de sesión) o simplemente como un shell interactivo (pero no de inicio de sesión), o un shell no interactivo. Tener los tres archivos esencialmente iguales me brinda un entorno consistente independientemente de cómo se inició bash.

Obtendrá más información haciendo man bash, pero prepárese, es una página man larga. Podrá ver cuál de los tres archivos (.bashrc, .profile y .bash_profile) se obtiene según el modo en el que se inició bash.

Espero que ayude, si no, dame un grito.

Ingrese los siguientes comandos en la Terminal:

cd /etc
sudo vi bashrc

agregue lo siguiente como:

alias ll="ls -lrt"

Finalmente reinicie la Terminal.

Si necesita esta máquina amplia, debe buscar en la /etccarpeta. Sin embargo, es posible que no existan de forma predeterminada, en cuyo caso simplemente debe crearlos en la carpeta anterior y reiniciar el terminal. Lo más probable es que necesite usar sudopara crearlos, ya que la /etccarpeta es propiedad de root.

Si necesita esto para cada terminal que abra, no necesita hacerlo en toda la máquina. Puede crear estos archivos en su propia carpeta de inicio y la terminal los leerá cada vez que inicie una sesión de terminal.

Además, como se menciona en los comentarios, generalmente solo podrá verlos usando la terminal y usando ls -lha.

si tiene Ruby instalado, consulte este script de Ruby https://github.com/ytbryan/aka

El script proporciona funcionalidades como la persistencia y el abastecimiento automático de archivos de puntos. Puede administrar alias a través de la terminal sin interrumpir su flujo de trabajo y abrir un editor de texto.

descargo de responsabilidad: Escribí este script y lo uso todos los días. Avísame si hay algún error/idea. :)

Para aquellos de ustedes que buscan el comando ll como en Linux BASH, se crea así...

alias ll="ls -laF"

Agregue esa línea a su .bashrcarchivo, luego duplíquelo .bashrccomo .bash_profiley lo tendrá siempre y para siempre.

Por lo que vale, ll en linux BASH es solo un alias de " ls -laF".

tuve el mismo problema, que no tenía .bash o .profile en la ubicación de mis perfiles. finalmente lo encontré en /etc

/etc se usa en todo el sistema. Recomiendo encarecidamente no editar estos archivos, sino usar sus propios archivos de perfil en su carpeta de inicio, por ejemplo, ~/.bash_profile.
No creo tener un ~/.bash_profile, fue lo primero que intenté y si creo uno, no se está usando incluso después de un reinicio, creo que mis administradores deben haberlo evitado de alguna manera. ahora estoy usando zsh y el .zshrc funciona bien