Geheime Linux-Befehle

Geheime Linux-Befehle

vg

Egal, ob Sie ein Systemadministrator, Entwickler, DevOps, Sicherheit oder Ops sind … Der effektive Umgang mit Linux und seinen Tools ist die grundlegendste Fähigkeit, die Sie erlernen können. Linux ist das Rückgrat der meisten Server und Anwendungen auf der ganzen Welt. Und deshalb sind die Kenntnisse der „Geheime Linux-Befehle“ unumgänglich.

„47 % der professionellen Entwickler verwenden Linux-basierte Betriebssysteme.“

Linux-Befehle für alle

In letzter Zeit habe ich viele Artikel über „20 Linux-Befehle, die Sie kennen müssen“ oder „Linux Survival Guide“ gelesen. Die meisten davon sind jedoch für Anfänger gedacht und zeigen Befehle wie ls oder echo. Ich denke, viele von euch kennen die Grundlagen bereits.

Dieser Artikel ist anders. Ich werde meinen persönlichen Spickzettel mit Befehlen teilen, die ich jeden Tag bei der Arbeit verwende. Diese Liste geht über Anfängertipps hinaus und konzentriert sich auf Befehle, die Ihnen helfen, schneller zu arbeiten und Linux besser zu verwalten. Auch wenn der Titel mit „Geheime Linux-Befehle“ etwas übertrieben ist, hoffe ich doch zu der ein oder anderen Bewusstseinserweiterung beizutragen.

Es wird in zwei Teilen sein:

  1. Linux Tools — Wichtige Tools und wie man sie gut benutzt.
  2. AdHoc-Befehle – Praktische Befehle für schnelle Lösungen, wenn Sie sie benötigen.

Linux-Werkzeuge

rsync

Wird verwendet, um Dateien und Verzeichnisse an ein Ziel zu kopieren, ähnlich wie der Befehl cp. Es ermöglicht jedoch auch das Kopieren an entfernte Speicherorte und kann einen Fortschrittsbalken bereitstellen, wie er häufig für Backups verwendet wird.

# Anwendungsbeispiel
$ rsync -vap --ignore-existing <source_file> <destination_file># Schlüssel-Flags:
v = verbrose, r = rekursiv, p = Berechtigungen beibehalten, g = Gruppe, o = Eigentümer, a = Archiv, --progress = Fortschrittsbalken

mkpasswd

mkpasswd ist ein einfacher, aber sehr nützlicher Befehl, der ein komplexes zufälliges Passwort in der angegebenen Länge generiert.

$ mkpasswd -l 8
> iwF1g2Lo

screen

Screen ist ein Vollbild-Fenstermanager; Es erstellt ein einzelnes Fenster, in dem eine Shell ausgeführt wird, und ermöglicht die Ausführung mehrerer Bildschirmfenster in einer einzigen Sitzung. Dies ist am vorteilhaftesten, wenn Sie eine lange Aufgabe aus der Ferne ausführen und sich Sorgen machen, dass Ihre SSH-Sitzung abbricht und alles ruiniert. Der Bildschirm wird nach dem Trennen der Verbindung fortgesetzt und führt Ihre Befehle auch dann weiter aus, wenn das Fenster für Sie nicht sichtbar ist.

# 
Anwendungsbeispiel$ screen # Starten einer Bildschirmsitzung
$ screen -ls # Liste laufender Dienste
$ screen -r # An Sitzung anhängen

Ldapsearch

Wenn Sie regelmäßig mit LDAP-Datenbanken arbeiten, dann ist Ldapsearch ein Muss. Das Tool öffnet eine Verbindung zu einem LDAP-Server und ermöglicht es Ihnen, Einträge in Ihrer Datenbank zu suchen, zu finden und zu debuggen.

# Anwendungsbeispiel
$ ldapsearch -x -w -d <Benutzername | less# Key Flags-x
= einfache Authentifizierung, -W = Eingabeaufforderung für das Passwort, -D = Eindeutigen Binddn-Namen verwenden, um an das LDAP-Verzeichnis zu binden

uptime

Uptime gibt Metriken darüber zurück, wie lange ein Server bereits ausgeführt wird, die aktuelle Uhrzeit, die Anzahl der Benutzer und die durchschnittliche Speicherauslastung. Wenn auf Ihrem Server etwas schief geht, ist dies oft die erste Anlaufstelle.

‚w‘ — ja, ein Buchstabe. Dies ist eine fantastische Kombination aus Betriebszeit und Befehlen, die nacheinander ausgeführt werden. 

$ w

wall

Wall ist ein praktischer Befehl für jeden Systemadministrator. Es ermöglicht Ihnen, eine Nachricht an alle Endgeräte zu senden, die gerade im System angemeldet sind. Dies kann für systemweite Ansagen sehr nützlich sein.

$ wall "Wartungsarbeiten sind für 13:30 Uhr geplant"Nachricht von Joel@localhost: Wartungsarbeiten sind für 13:30 Uhr geplant

top

Zeigt eine automatisch aktualisierte Liste von Prozessen für die CPU- und kritischen Speicherauslastungsmetriken und CPU-Auslastung an.

$ top

ncdu

Der Befehl ncdu bietet eine schnelle und bequeme Ansicht für die Festplattennutzung. Sie können es verwenden, um schnell und einfach zu sehen, welche Verzeichnisse den meisten Speicherplatz belegen.

$ ncdu

lsof

lsof ist ein einzelner Befehl, der für einen grundlegenden Zweck verwendet wird: LiSOpen Files. Dies ist besonders nützlich, wenn Probleme beim Mounten auftreten, die besagen, dass Dateien verwendet werden. Dieser Befehl erkennt schnell, welche Dateien von welchen Prozessen verwendet werden.

$ lsof

Netzwerk-Tools

netcat

Der Befehl Netcat oder nc wird hauptsächlich zum Scannen von Ports verwendet, ist aber tatsächlich ein großartiges Netzwerkwerkzeug für Systemadministratoren, die sie für jede Aufgabe in der Gesäßtasche haben können. Netcat kann Portscanning, Dateikopieren, Portweiterleitung, Proxyserver und Hosting-Server unterstützen. Man kann mit Sicherheit sagen, dass es unglaublich vielseitig ist.

# Anwendungsbeispiel:
$ nc -vz <host> <port> # Überprüft die Verbindung zwischen zwei Hosts an einem bestimmten Port
$ nc -l 8080 | nc <host> 80 # Erstellen eines Proxy-Servers

Netcat ist super anpassbar, daher kann ich Ihnen nicht alles in einem Beitrag zeigen.

netstat

Netstat gibt verschiedene Netzwerkdetails wie Routing-Tabellen, Netzwerkverbindungen, Mitgliedschaften, Statistiken, Flags usw. zurück.

# Anwendungsbeispiel 
$ netstat -a # Alle Netzwerkports
auflisten$ netstat -tlpn # Alle Listening-Ports auflisten# Key Flags-s
= Statistiken anzeigen, -v = verbrose, -r = Routing-Tabellen anzeigen, -i Schnittstellentabelle anzeigen, -g = Gruppenmitglieder anzeigen

nslookup

Wird verwendet, um Informationen über Server im Internet oder in Ihrem lokalen Netzwerk abzurufen. Es fragt DNS ab, um die Nameserver-Informationen zu finden, und kann für das Debuggen von Netzwerken nützlich sein.

# Anwendungsbeispiel
$ nslookup medium.com/tags/devops# Key Flags-port
= Portnummer für Verbindung ändern, -type = Typ der Abfrage ändern. -domain = Setzt die Suchliste auf den Namen

tcpdump

Wird verwendet, um den Datenverkehr zu und von Ihrem System zu erfassen und zu analysieren. Es ist ein leistungsstarkes und vielseitiges Tool, das sich auf das Debuggen und Beheben von Netzwerkproblemen spezialisiert hat, aber auch als Sicherheitstool verwendet werden kann.

# Anwendungsbeispiel
$ tcpdump
$ tcpdump -i <Schnittstelle> <ipaddress oder hostname> <Port>

Ad-hoc-Befehle

Hübsches Drucken von API-Antworten

Das Lesen von JSON-Daten aus dem Terminal kann bei der Arbeit mit APIs sehr frustrierend sein. Wie Sie unten sehen können, wird selbst ein kleiner Datensatz schnell zu einem Durcheinander, wenn er auf der Befehlszeile angezeigt wird, was das Lesen sehr erschwert.

$ cat test.json
{"title":"Person","type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"age":{"description":"Alter in Jahren","type":"integer","minimum":0}},"required":[" Vorname","Nachname"]}

Zum Glück hat Python eine Antwort. Indem wir Ihre Ausgabe an Python weiterleiten, können wir das JSON-Tool-Modul aufrufen. Dadurch wird ein JSON-Dokument ausgedruckt, das so viel einfacher zu lesen und schöner für das Auge ist.

$ Katze test.json | python -m json.tool
{
 "properties": {
 "age": {
 "description": "Alter in Jahren",
 "minimum": 0,
 "type": "integer"
 },
 "firstName": {
 "type": "string"
 },
 "lastName": {
 "type": " string"
 }
 },
 "required": [
 "Vorname",
 "Nachname"
 ],
 "title": "Person",
 "type": "Objekt"
}

Durchsuchen von apt nach verfügbaren Paketen

$ apt-cache search <Schlüsselwort>

Diff die Ausgabe von zwei beliebigen Befehlen

# Beispiel für die Verwendung des Vergleichs der Ausgabe von zwei ls-Befehlen$ diff -u <(ls -l /verzeichnis/) <(ls -l /verzeichnis/) | Colordiff

Konvertieren eines Unix-Zeitstempels in ein menschenlesbares Format

# Umwandeln Unix-Zeitstempel  zu menschenlesbar
$ date -d 1656685875
Fri, 01 Jul 2022 14:31:15 +0000
# Aktuelle Uhrzeit als UNIX-Zeitstempel
$ date "+%s"

Unterdrücken von Git-Commits

$ git log # See how many commits you've made
$ git rebase -i HEAD~x # x = number of commits you've made# Make changes on the text editor, keeping the last commit as pick and changing the rest to sqash# Edit the commit messages as you'd like, preferbly removing ones from previous commits$ git push --force-with-lease

Alle Systemd-Dienste auflisten

$ systemctl -l -t Dienst | less

Ich hoffe, Sie haben etwas aus dieser Liste gelernt! Linux zu kennen ist sehr nützlich, da es auf Servern sehr beliebt ist. 

Weiterer Beitrag: Optimieren von SQL-Abfragen

com

Newsletter Anmeldung

Bleiben Sie informiert! Wir informieren Sie über alle neuen Beiträge (max. 1 Mail pro Woche – versprochen)