Cómo definir persistentemente alias en Terminal

18

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

Recibí esta respuesta :

Sí, puede ponerlo en su .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 anteriores 4).

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

Respuestas:

23

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 .bash_profile y .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.

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

Abra una nueva ventana de Terminal y vaya a su directorio de inicio (solo 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 debe tener al menos el archivo .profile), debe editarlos y agregarles sus alias. Uso VI (o VIM) para editar esos archivos, pero podría usar otro editor (de hecho, si escribe 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 (por lo que este 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 utilizando ln -s .bashrc .bash_profile; ln -s .bashrc .profile.

Lo que normalmente hago es hacer 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á 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 simplemente 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 al hacerlo man bash, pero esté preparado, es una página de manual larga. Podrá ver cuál de los tres archivos (.bashrc, .profile y .bash_profile) se obtiene según el modo en que se inició bash.

Espero que ayude, si no, dame un grito.

Miguel
fuente
3

Ingrese los siguientes comandos en la Terminal:

cd /etc
sudo vi bashrc

agregue lo siguiente como:

alias ll="ls -lrt"

Finalmente reinicie la Terminal.

usuario172265
fuente
2

Si necesita esta máquina de ancho, debe buscar en la /etccarpeta. Sin embargo, es posible que no existan de manera predeterminada, en cuyo caso simplemente necesita 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 se leerán por terminal cada vez que inicie una sesión de terminal.

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

BinaryMisfit
fuente
0

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

El script proporciona funcionalidades como la persistencia y el abastecimiento automático del archivo 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íseme si hay algún error / idea. :)

ytbryan
fuente
0

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 duplique el .bashrcarchivo como .bash_profile, y tendrá siempre y para siempre.

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

Phillip H. Blanton
fuente
-2

Tuve el mismo problema, que no tenía .bash o .profile en mi ubicación de Perfiles. finalmente lo encontré en / etc.

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