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

Befehlszeilenaliase in der Linux-Shell

Bisher haben wir in dieser Tutorial-Serie die grundlegende Verwendung sowie verwandte Details von cd - und pushd besprochen /popd Befehle sowie der CDPATH Umgebungsvariable. In diesem vierten und letzten Teil werden wir das Konzept von Aliasen besprechen und wie Sie sie verwenden können, um Ihre Befehlszeilennavigation einfacher und reibungsloser zu gestalten.

As always, before jumping on to the heart of the tutorial, it's worth sharing that all the instructions as well examples presented in this article have been tested on Ubuntu 14.04LTS. The command line shell we've used is bash (version  4.3.11).

Befehlszeilenaliase in Linux

Einfach ausgedrückt kann man sich Aliase als Kurznamen oder Abkürzungen für einen komplexen Befehl oder eine Gruppe von Befehlen vorstellen, einschließlich ihrer Argumente oder Optionen. Im Grunde erstellen Sie also mit Aliasen einfach zu merkende Namen für nicht so einfach einzugebende/zu merkende Befehle.

Der folgende Befehl erstellt beispielsweise einen Alias ​​„home“ für den Befehl „cd ~“:

alias home="cd ~"

Das bedeutet, dass Sie jetzt schnell „home“ eingeben und die Eingabetaste drücken können, wenn Sie von überall auf Ihrem System zu Ihrem Home-Verzeichnis zurückkehren möchten.

Folgendes sagt die Alias-Befehlsmanpage über dieses Dienstprogramm:

The alias utility shall create or redefine alias definitions or write the values of existing alias definitions to standard output. An alias definition provides a string value that shall replace a command name when it is encountered

An alias definition shall affect the current shell execution environment and the execution environments of the subshells of the current shell. When used as specified by this volume of IEEE Std 1003.1-2001, the alias definition shall not affect the parent process of the current shell nor any utility environment invoked by the shell.

Wie genau helfen Aliase also bei der Befehlszeilennavigation? Nun, hier ist ein einfaches Beispiel:

Angenommen, Sie arbeiten in /home/himanshu/projects/howtoforge Verzeichnis, das außerdem viele Unterverzeichnisse und Unter-Unterverzeichnisse enthält. Im Folgenden sehen Sie beispielsweise einen vollständigen Verzeichniszweig:

/home/himanshu/projects/howtoforge/command-line/navigation/tips-tricks/part4/final

Stellen Sie sich nun vor, Sie befinden sich im „final“-Verzeichnis und möchten dann zurück zum „tips-tricks“-Verzeichnis, und von dort aus müssen Sie zurück zum „howtoforge“-Verzeichnis. Was würden Sie tun?

Nun, normalerweise würden Sie die folgenden Befehle ausführen:

cd ../..
cd ../../..

Obwohl dieser Ansatz per se nicht falsch ist, ist er definitiv nicht bequem, insbesondere wenn Sie zurückgehen müssen, sagen wir 5 Verzeichnisse in einem sehr langen Pfad. Also, was ist die Lösung? Die Antwort lautet:Aliasse.

Was Sie tun können, ist, Sie können leicht zu merkende (und einzugebende) Aliase für jede der cd .. erstellen Befehle. Zum Beispiel:

alias bk1="cd .."
alias bk2="cd ../.."
alias bk3="cd ../../.."
alias bk4="cd ../../../.."
alias bk5="cd ../../../../.."

Wann immer Sie jetzt also von Ihrem aktuellen Arbeitsverzeichnis zurückgehen möchten, sagen wir 5 Stellen, können Sie einfach den folgenden Befehl ausführen:

bk5

Ist das jetzt nicht einfach?

Während die Technik, die wir bisher zum Definieren von Aliasen (mit dem Befehl alias) am Shell-Prompt verwendet haben, ausreicht, existieren die Aliase nur für die aktuelle Terminalsitzung. Es besteht die Möglichkeit, dass Sie möchten, dass von Ihnen definierte Aliase beibehalten werden, damit sie in jedem neuen Befehlszeilen-Terminalfenster/-Tab, das Sie danach starten, verwendet werden können.

Dazu müssen Sie Ihre Aliase in den ~/.bash_aliases definieren Datei, die von Ihrem ~/.bashrc geladen wird Datei standardmäßig (bitte überprüfen Sie dies, wenn Sie eine ältere Ubuntu-Version verwenden).

Das Folgende ist der Auszug aus meiner .bashrc-Datei, die über die .bash_aliases-Datei spricht:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

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

Sobald Sie Ihrer .bash_aliases-Datei eine Alias-Definition hinzugefügt haben, ist dieser Alias ​​auf jedem neuen Terminal verfügbar. Sie können es jedoch nicht in einem anderen Terminal verwenden, das bereits geöffnet war, als Sie diesen Alias ​​​​definierten. Der Ausweg besteht darin, .bashrc von diesen Terminals zu beziehen. Es folgt der genaue Befehl, den Sie ausführen müssen:

source ~/.bashrc

Wenn das ein wenig zu viel Arbeit klingt (ja, ich sehe euch FAULE an), dann ist hier eine Abkürzung, um all dies zu tun:

"alias [the-alias]" >> ~/.bash_aliases && source ~/.bash_aliases

Unnötig zu erwähnen, dass Sie [the-alias] durch den eigentlichen Befehl ersetzen müssen. Zum Beispiel:

"alias bk5='cd ../../../../..'" >> ~/.bash_aliases && source ~/.bash_aliases

Nehmen wir nun an, Sie haben einige Aliase erstellt und verwenden sie seit einigen Monaten immer wieder. Eines Tages bezweifeln Sie plötzlich, dass einer von ihnen nicht wie erwartet funktioniert. Sie müssen sich also den genauen Befehl ansehen, der diesem Alias ​​zugewiesen wurde. Was würden Sie tun?

Natürlich können Sie Ihre .bash_aliases-Datei öffnen und dort einen Blick darauf werfen, aber dieser Vorgang kann etwas zeitaufwändig sein, insbesondere wenn die Datei viele Aliase enthält. Wenn Sie also nach einem einfachen Ausweg suchen, hier ist einer:Alles, was Sie tun müssen, ist, den Alias auszuführen Befehl mit dem Aliasnamen als Argument.

Hier ist ein Beispiel:

$ alias bk6
alias bk6='cd ../../../../../..'

Wie Sie sehen können, hat der oben genannte Befehl den eigentlichen Befehl angezeigt, der dem bk6-Alias ​​zugewiesen ist. Es gibt noch einen weiteren Weg:den Typ zu verwenden Befehl. Nachfolgend ein Beispiel:

$ type bk6
bk6 is aliased to `cd ../../../../../..'

Der type-Befehl erzeugt also eine für Menschen verständlichere Ausgabe.

Eine andere Sache, die es wert ist, hier geteilt zu werden, ist, dass Sie Aliase für die häufigen Tippfehler verwenden können, die Sie machen. Zum Beispiel:

alias mroe='more'

Abschließend sei noch erwähnt, dass nicht jeder für die Verwendung von Aliassen ist. Die meisten von ihnen argumentieren, dass es für Sie wirklich schwierig wird, auf einem anderen System zu arbeiten, auf dem diese Aliase nicht existieren (und Sie auch keine erstellen dürfen), sobald Sie sich an die Aliase gewöhnt haben, die Sie zu Ihrer Bequemlichkeit definieren. . Weitere (sowie genaue Gründe), warum einige Experten die Verwendung von Aliasen nicht empfehlen, finden Sie hier.

Schlussfolgerung

Wie die Umgebungsvariable CDPATH, die wir im vorherigen Teil besprochen haben, ist auch Alias ​​ein zweischneidiges Schwert, das man sehr vorsichtig verwenden sollte. Lassen Sie sich aber nicht entmutigen, denn alles hat seine eigenen Vor- und Nachteile. Genau diese Übung und dieses umfassende Wissen sind der Schlüssel, wenn Sie sich mit Konzepten wie Aliasnamen befassen.

Dies markiert also das Ende dieser Tutorial-Reihe. Ich hoffe, es hat Ihnen gefallen und Sie haben einige neue Dinge/Konzepte daraus gelernt. Falls Sie irgendwelche Zweifel oder Fragen haben, teilen Sie diese bitte mit uns (und dem Rest der Welt) in den Kommentaren unten.


Linux
  1. 8 Tipps für die Linux-Kommandozeile

  2. Meistern Sie den Linux-ls-Befehl

  3. Verwenden der Kraft in der Linux-Befehlszeile

  4. Haben Sie eine Kuh an der Linux-Befehlszeile

  5. Boxen Sie sich auf der Linux-Befehlszeile ein

Was ist die Shell unter Linux?

Meistern Sie die Linux-Befehlszeile

Alias-Befehl unter Linux

Buchbesprechung:Die Linux-Befehlszeile

Zeigen Sie den Inhalt einer Datei in der Linux-Befehlszeile an

Linux-Alias-Befehl