it-swarm-eu.dev

Aliase: Unterschied zwischen .bash_rc, .bash_aliases und / usr / local / bin

Als ich mit Terminal herumspielte, stellte ich fest, dass es viele Möglichkeiten gibt, permanente Aliase zu erstellen.

Ich bin ein Linux-Neuling und mache, soweit ich weiß:

  1. Sudo ln -s /path/to/executable /usr/local/bin/desired_alias
  2. desired_alias = '/path/to/executable' zu ~/.bashrc hinzufügen
  3. kommentar für diese Zeilen in ~/.bashrc entfernen:

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

    und desired_alias = '/path/to/executable' in ~/.bash_aliases setzen

alle haben den gleichen Effekt.

Was ist der Unterschied zwischen der ersten und der zweiten Methode?

8
Strae

Mit der ersten Methode erstellen Sie keinen Alias, sondern einen Symlink. Symlinks sind Abkürzungen für symbolische Links:

Symbolische Links sind Dateien, die als Zeiger auf andere Dateien dienen. [...] Ein symbolischer Link ist ein spezieller Dateityp, dessen Inhalt eine Zeichenfolge ist, die den Pfadnamen einer anderen Datei angibt, auf die sich der Link bezieht. Mit anderen Worten, eine symbolische Verknüpfung ist ein Zeiger auf einen anderen Namen und nicht auf ein zugrunde liegendes Objekt.

Lesen Sie mehr über Symlinks hier und hier .

Nur mit der zweiten Methode erstellen Sie tatsächlich einen Alias.

Aliase ermöglichen das Ersetzen eines Worts durch eine Zeichenfolge, wenn es als erstes Wort eines einfachen Befehls verwendet wird. Die Shell verwaltet eine Liste von Aliasen, die mit den integrierten Befehlen alias und unalias festgelegt und deaktiviert werden können (siehe Shell-Befehle BUILTIN unten). Das erste Wort jedes einfachen Befehls wird, wenn es nicht in Anführungszeichen gesetzt ist, überprüft, um festzustellen, ob es einen Alias ​​hat. In diesem Fall wird dieses Wort durch den Text des Alias ​​ersetzt.

Sie können einen Alias ​​an einer beliebigen Stelle definieren, an der Sie einen Befehl eingeben und die Shell ( bash in diesem Fall) interpretieren lassen, jedoch in der Reihenfolge, in der der Alias ​​lautet in anderen Shells verfügbar sein, muss es in einer Datei definiert werden, die von der Shell beim Start interpretiert wird (Shell-Start, nicht Computer-Start).

Für Bash sind dies /etc/bash.bashrc (systemweit) und ~/.bashrc. Diese Dateien werden interpretiert, wenn die Shell im interaktiven Modus gestartet wird (wie bei Verwendung von Terminal). Ich werde die Profildateien nicht erwähnen, da sie einem anderen Zweck dienen.

Sie möchten also Ihre Aliase zu ~/.bashrc hinzufügen, damit sie in jeder interaktiven Shell verfügbar sind.

Die .bash_aliases -Methode erreicht genau dasselbe wie das Einfügen der Aliase in ~/.bashrc, hat jedoch den zusätzlichen Vorteil, dass sie einfacher zu sein ist von Programmen analysiert und manipuliert werden.

Der . ~/.bash_aliases bedeutet Quelle (Laden) _~/.bash_aliases_ im Kontext der aktuell ausgeführten Shell.

9
Li Lo