GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Alias:¿diferencia entre .bash_rc, .bash_aliases y /usr/local/bin?

Jugando con Terminal, me di cuenta de que hay muchas maneras de crear permanente alias.

Soy un novato de Linux y, por lo que sé, estoy haciendo:

  1. sudo ln -s /path/to/executable /usr/local/bin/desired_alias
  2. agregar desired_alias = '/path/to/executable' a ~/.bashrc
  3. descomentando esas líneas en ~/.bashrc :

    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
    

    y poner desired_alias = '/path/to/executable' en ~/.bash_aliases

todos tienen el mismo efecto.

¿Cuál es la diferencia entre el primer y el segundo método?

Respuesta aceptada:

Con el primer método no está creando un alias, está creando un enlace simbólico. Los enlaces simbólicos son la abreviatura de enlaces simbólicos:

Los enlaces simbólicos son archivos que actúan como
punteros a otros archivos. […] Un
enlace simbólico es un tipo especial de archivo
cuyo contenido es una cadena que
es el nombre de ruta de otro archivo, el archivo
al que hace referencia el enlace. En otras
palabras, un enlace simbólico es un puntero a
otro nombre, y no a un objeto
subyacente.

Lea más sobre los enlaces simbólicos aquí y aquí.

Solo con el segundo método estás, de hecho, creando un alias.

Los alias permiten que una cadena
se sustituya por una palabra cuando se usa
como la primera palabra de un comando simple.
El shell mantiene una lista de alias
que se pueden configurar y anule la configuración con los comandos integrados
alias y unalias
(consulte COMANDOS INTEGRADOS DEL SHELL a continuación).
La primera palabra de cada comando
simple, si no está entre comillas, se comprueba para
ver si tiene un alias. Si es así, esa
palabra se reemplaza por el texto del
alias.

Puede definir un alias en cualquier lugar donde pueda escribir un comando y tener el shell (bash en este caso) interpretarlo, sin embargo, para que el alias esté disponible en otros shells, debe definirse en un archivo que interprete el shell al inicio (inicio del shell, no inicio de la computadora).

Para bash estos son /etc/bash.bashrc (en todo el sistema) y ~/.bashrc . Estos archivos se interpretan cuando el shell se inicia en modo interactivo (como cuando se usa Terminal ). No voy a mencionar los archivos de perfil porque tienen un propósito diferente.

Entonces, desea agregar sus alias a ~/.bashrc para tenerlos disponibles en cada shell interactivo.

Los .bash_aliases método logra exactamente lo mismo que poner los alias en ~/.bashrc pero tiene el beneficio adicional de ser más fácil de analizar y manipular mediante programas.

Relacionado:¿Resolución de la pantalla de inicio de sesión de KDE 5.56 SDDM en la pantalla HiDPI FHD?

El . ~/.bash_aliases significa fuente (carga) _~/.bash_aliases_ en el contexto del shell que se está ejecutando actualmente.


Ubuntu
  1. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  2. /usr/bin Vs /usr/local/bin ¿En Linux?

  3. ¿Extraña diferencia entre Pwd y /bin/pwd?

  4. ¿La diferencia entre /opt y /usr/local?

  5. ¿Diferencia entre /var/log/messages, /var/log/syslog y /var/log/kern.log?

¿Cuál es la diferencia entre #!/usr/bin/env bash y #!/usr/bin/bash?

cmake --version apunta a /usr/bin/cmake mientras que cmake apunta a /usr/local/bin

¿Cuáles son los significados de /usr/sbin, /usr/local/sbin y /usr/local/bin?

¿Cuándo debo usar #!/bin/bash y cuándo #!/bin/sh?

Diferencia entre /bin y /usr/bin

¿Cuál es la diferencia entre /tmp y /run?