|
| 1 | +# Erstellen benutzerdefinierter Bash-Befehle |
| 2 | + |
| 3 | +Als Entwickler oder Systemadministrator müssen Sie möglicherweise viel Zeit an Ihrem Terminal verbringen. Ich versuche immer, nach Möglichkeiten zu suchen, sich wiederholende Aufgaben zu optimieren. |
| 4 | + |
| 5 | +Eine Möglichkeit hierfür besteht darin, entweder kurze Bash-Skripte zu schreiben oder benutzerdefinierte Befehle, auch Aliase genannt, zu erstellen. Anstatt beispielsweise jedes Mal einen wirklich langen Befehl einzugeben, könnten Sie einfach eine Abkürzung dafür erstellen. |
| 6 | + |
| 7 | +## Beispiel |
| 8 | + |
| 9 | +Beginnen wir mit dem folgenden Szenario: Als Systemadministrator müssen Sie möglicherweise häufig die Verbindungen zu Ihrem Webserver überprüfen, daher verwende ich den Befehl `netstat` als Beispiel. |
| 10 | + |
| 11 | +Wenn ich auf einen Server zugreife, der Probleme mit den Verbindungen zu Port 80 oder 443 hat, prüfe ich normalerweise, ob Dienste diese Ports überwachen und wie viele Verbindungen zu diesen Ports bestehen. |
| 12 | + |
| 13 | +Der folgende `netstat`-Befehl würde uns zeigen, wie viele TCP-Verbindungen auf Port 80 und 443 wir derzeit haben: |
| 14 | + |
| 15 | +```bash |
| 16 | +netstat -plant | grep '80\|443' | grep -v LISTEN | wc -l |
| 17 | +``` |
| 18 | + |
| 19 | +Dies ist ein ziemlich langer Befehl, daher kann es auf lange Sicht zeitaufwändig sein, ihn jedes Mal einzugeben, insbesondere wenn Sie diese Informationen schnell erhalten möchten. |
| 20 | + |
| 21 | +Um dies zu vermeiden, können wir einen Alias erstellen, sodass wir statt des gesamten Befehls einfach einen kurzen Befehl eingeben können. Nehmen wir zum Beispiel an, wir wollten in der Lage sein, `conn` (Abkürzung für 'Connections') einzugeben und die gleichen Informationen zu erhalten. In diesem Fall müssen wir lediglich den folgenden Befehl ausführen: |
| 22 | + |
| 23 | +```bash |
| 24 | +alias conn="netstat -plant | grep '80\|443' | grep -v LISTEN | wc -l" |
| 25 | +``` |
| 26 | + |
| 27 | +Auf diese Weise erstellen wir einen Alias namens `conn`, der im Wesentlichen eine 'Abkürzung' für unseren langen `netstat`-Befehl wäre. Wenn Sie jetzt einfach `conn` ausführen: |
| 28 | + |
| 29 | +```bash |
| 30 | +conn |
| 31 | +``` |
| 32 | + |
| 33 | +Sie würden die gleiche Ausgabe erhalten wie der lange Befehl `netstat`. |
| 34 | +Sie können noch kreativer werden und hier einige Infobotschaften wie diese hinzufügen: |
| 35 | + |
| 36 | +```bash |
| 37 | +alias conn="echo 'Total connections on port 80 and 443:' ; netstat -plant | grep '80\|443' | grep -v LISTEN | wc -l" |
| 38 | +``` |
| 39 | + |
| 40 | +Wenn Sie nun `conn` ausführen, erhalten Sie die folgende Ausgabe: |
| 41 | + |
| 42 | +```bash |
| 43 | +Total connections on port 80 and 443: |
| 44 | +12 |
| 45 | +``` |
| 46 | + |
| 47 | +Wenn Sie sich jetzt abmelden und wieder anmelden, geht Ihr Alias verloren. Im nächsten Schritt erfahren Sie, wie Sie dies dauerhaft machen. |
| 48 | + |
| 49 | +## Die Veränderung dauerhaft machen |
| 50 | + |
| 51 | +Um die Änderung dauerhaft zu machen, müssen wir den Befehl `alias` in unsere Shell-Profildatei einfügen. |
| 52 | + |
| 53 | +Standardmäßig wäre dies unter Ubuntu die Datei `~/.bashrc`, bei anderen Betriebssystemen könnte dies die Datei `~/.bash_profile` sein. Öffnen Sie die Datei mit Ihrem bevorzugten Texteditor: |
| 54 | + |
| 55 | +```bash |
| 56 | +nano ~/.bashrc |
| 57 | +``` |
| 58 | + |
| 59 | +Gehen Sie nach unten und fügen Sie Folgendes hinzu: |
| 60 | + |
| 61 | +```bash |
| 62 | +alias conn="echo 'Total connections on port 80 and 443:' ; netstat -plant | grep '80\|443' | grep -v LISTEN | wc -l" |
| 63 | +``` |
| 64 | + |
| 65 | +Speichern und dann beenden. |
| 66 | + |
| 67 | +Auf diese Weise bleibt Ihre Änderung auch dann erhalten, wenn Sie sich abmelden und wieder anmelden, und Sie können Ihren benutzerdefinierten Bash-Befehl ausführen. |
| 68 | + |
| 69 | +## Auflistung aller verfügbaren Aliase |
| 70 | + |
| 71 | +Um alle verfügbaren Aliase für Ihre aktuelle Shell aufzulisten, müssen Sie einfach den folgenden Befehl ausführen: |
| 72 | + |
| 73 | +```bash |
| 74 | +alias |
| 75 | +``` |
| 76 | + |
| 77 | +Dies ist nützlich, falls bei einigen Befehlen ein seltsames Verhalten auftritt. |
| 78 | + |
| 79 | +## Fazit |
| 80 | + |
| 81 | +Dies ist eine Möglichkeit, benutzerdefinierte Bash-Befehle oder Bash-Aliase zu erstellen. |
| 82 | + |
| 83 | +Natürlich könnten Sie tatsächlich ein Bash-Skript schreiben und das Skript in Ihrem Ordner `/usr/bin` hinzufügen, aber das würde nicht funktionieren, wenn Sie keinen Root- oder Sudo-Zugriff haben. Wobei es mit der oben genannten Möglichkeit ohne Notwendigkeit eines Root-Zugriffs funktioniert. |
| 84 | + |
| 85 | +> {notice} Dies wurde ursprünglich auf [DevDojo.com](https://devdojo.com/bobbyiliev/how-to-create-custom-bash-commands) veröffentlicht. |
0 commit comments