GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Alias :différence entre .bash_rc, .bash_aliases et /usr/local/bin ?

En jouant avec Terminal, j'ai remarqué qu'il existe de nombreuses façons de créer des fichiers permanents alias.

Je suis un débutant Linux, et d'après ce que je sais, je fais :

  1. sudo ln -s /path/to/executable /usr/local/bin/desired_alias
  2. ajout de desired_alias = '/path/to/executable' vers ~/.bashrc
  3. décommenter ces lignes dans ~/.bashrc :

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

    et en mettant desired_alias = '/path/to/executable' dans le ~/.bash_aliases

tous ont le même effet.

Quelle est la différence entre la première et la deuxième méthode ?

Réponse acceptée :

Avec la première méthode, vous ne créez pas d'alias, vous créez un lien symbolique. Les liens symboliques sont l'abréviation de liens symboliques :

Les liens symboliques sont des fichiers qui agissent comme
des pointeurs vers d'autres fichiers. […] Un
lien symbolique est un type spécial de
fichier dont le contenu est une chaîne qui
est le nom de chemin d'un autre fichier, le fichier
auquel le lien fait référence. En d'autres
termes, un lien symbolique est un pointeur vers
un autre nom, et non vers un objet
sous-jacent.

En savoir plus sur les liens symboliques ici et ici.

Ce n'est qu'avec la deuxième méthode que vous créez en fait un alias.

Les alias permettent à une chaîne d'être
substituée à un mot lorsqu'elle est utilisée
comme premier mot d'une commande simple.
Le shell maintient une liste d'alias
qui peuvent être définis et unset avec les
commandes intégrées alias et unalias
(voir COMMANDES INTÉGRÉES DU SHELL ci-dessous).
Le premier mot de chaque commande simple
, s'il n'est pas entre guillemets, est vérifié pour
voir s'il a un alias. Si c'est le cas, ce
mot est remplacé par le texte de l'
alias.

Vous pouvez définir un alias partout où vous pouvez taper une commande et faire en sorte que le shell (bash dans ce cas) l'interpréter, mais pour que l'alias soit disponible dans d'autres shells, il doit être défini dans un fichier interprété par le shell au démarrage (démarrage du shell, pas démarrage de l'ordinateur).

Pour bash, ce sont /etc/bash.bashrc (à l'échelle du système) et ~/.bashrc . Ces fichiers sont interprétés lorsque le shell démarre en mode interactif (comme lors de l'utilisation de Terminal ). Je ne vais pas mentionner les fichiers de profil car ils servent un objectif différent.

Donc, vous voulez ajouter vos alias à ~/.bashrc pour les avoir disponibles dans chaque shell interactif.

Les .bash_aliases la méthode accomplit exactement la même chose que de mettre les alias dans ~/.bashrc mais a l'avantage supplémentaire d'être plus facile à analyser et à manipuler par les programmes.

Connexe:Résolution de l'écran de connexion KDE 5.56 SDDM sur l'écran HiDPI FHD?

Le . ~/.bash_aliases signifie source (charger) _~/.bash_aliases_ dans le contexte du shell en cours d'exécution.


Ubuntu
  1. /usr/bin Vs /usr/local/bin Sous Linux ?

  2. Différence étrange entre Pwd et /bin/pwd ?

  3. La différence entre /opt et /usr/local ?

  4. Différence entre /var/log/messages, /var/log/syslog et /var/log/kern.log ?

  5. Pourquoi /bin/sh pointe-t-il vers /bin/dash et non /bin/bash ? ?

Quelle est la différence entre /sbin/nologin et /bin/false ?

Linux – Fusionner /usr/bin et /usr/sbin dans /bin (gnu/linux) ?

cmake --version pointe vers /usr/bin/cmake tandis que cmake pointe vers /usr/local/bin

Quelle est la signification de /usr/sbin, /usr/local/sbin et /usr/local/bin ?

Différence entre /bin et /usr/bin

Déplacement du contenu de /bin vers /usr/bin, possible d'annuler ?