GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

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

Beim Herumspielen mit Terminal ist mir aufgefallen, dass es viele Möglichkeiten gibt, permanent zu erstellen Aliasse.

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

  1. sudo ln -s /path/to/executable /usr/local/bin/desired_alias
  2. Hinzufügen von desired_alias = '/path/to/executable' nach ~/.bashrc
  3. Kommentieren Sie diese Zeilen in ~/.bashrc aus :

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

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

alle haben die gleiche Wirkung.

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

Akzeptierte Antwort:

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

Symbolische Links sind Dateien, die als
Zeiger auf andere Dateien fungieren. […] Ein
symbolischer Link ist eine spezielle Art von
Datei, deren Inhalt eine Zeichenfolge ist, die
der Pfadname einer anderen Datei ist, der Datei
auf die der Link verweist. Mit anderen
Worten, ein symbolischer Link ist ein Zeiger auf
einen anderen Namen und nicht auf ein zugrunde liegendes
Objekt.

Lesen Sie hier und hier mehr über Symlinks.

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

Aliase erlauben es, ein Wort
durch eine Zeichenkette zu ersetzen, wenn es
als erstes Wort eines einfachen Befehls verwendet wird.
Die Shell führt eine Liste von Aliasnamen
, die gesetzt werden können und mit den eingebauten Befehlen
alias und unalias
aufheben (siehe SHELL BUILTIN BEFEHLE weiter unten).
Das erste Wort jedes einfachen
Befehls, wenn es nicht in Anführungszeichen steht, wird auf
> sehen, ob es einen Alias ​​hat. Wenn ja, wird dieses
Wort durch den Text des
Aliasnamens ersetzt.

Sie können einen Alias ​​überall dort definieren, wo Sie einen Befehl eingeben und die Shell (bash in diesem Fall) interpretieren, aber damit der Alias ​​in anderen Shells verfügbar ist, muss er in einer Datei definiert werden, die von der Shell beim Start interpretiert wird (Shell-Start, nicht Computerstart).

Für Bash sind dies /etc/bash.bashrc (systemweit) und ~/.bashrc . Diese Dateien werden interpretiert, wenn die Shell im interaktiven Modus startet (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 um sie in jeder interaktiven Shell verfügbar zu haben.

Die .bash_aliases Methode erreicht genau dasselbe wie das Einfügen der Aliase in ~/.bashrc hat aber den zusätzlichen Vorteil, dass es einfacher von Programmen geparst und manipuliert werden kann.

Verwandte:KDE 5.56 SDDM Login-Bildschirmauflösung auf HiDPI FHD-Bildschirm?

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


Ubuntu
  1. Unterschied zwischen /bin/false &/sbin/nologin

  2. Was ist der Unterschied zwischen /sbin/nologin und /bin/false?

  3. Der Unterschied zwischen /opt und /usr/local?

  4. Unterschied zwischen /var/log/messages, /var/log/syslog und /var/log/kern.log?

  5. Warum zeigt /bin/sh auf /bin/dash und nicht auf /bin/bash?

Wechseln Sie das Verzeichnis und führen Sie die Datei in einem Befehl aus

Was ist der Unterschied zwischen #!/usr/bin/env bash und #!/usr/bin/bash?

cmake --version zeigt auf /usr/bin/cmake, während cmake auf /usr/local/bin zeigt

Unterschied zwischen /bin und /usr/bin

Was ist der Unterschied zwischen /tmp und /run?

/bin Inhalt nach /usr/bin verschoben, rückgängig machen möglich?