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

17 Linux-Befehle, die jeder Systemadministrator kennen sollte

Vor einigen Monaten bat ich die Enable Sysadmin Contributor Community, mir bei der Erstellung einer Liste ihrer wichtigsten Befehle zu helfen. Nach Verarbeitung der Ergebnisse stellten sich 17 der Befehle als wesentlich oder zumindest als äußerst vorteilhaft für den Job des Linux-Systemadministrators heraus. Lassen Sie uns also ohne weitere Verzögerung darauf eingehen.

Möchten Sie mehr über Netzwerkbefehle erfahren? Lesen Sie Teil 1 unserer Crowdsourcing-Befehlsliste  ]

finden —Dieser Befehl ist Teil von findutils und ermöglicht benutzerdefinierte Suchbefehle. Wenn Sie beispielsweise Verzeichnisse finden möchten, die mit einem bestimmten Namen übereinstimmen, können Sie Folgendes verwenden:

find path/ -type d -iname '*dir_name*'

Sie können finden Weitere Informationen zum Befehl finden Sie hier.

ls+xargs — Diese Paarung war mir neu; Es war jedoch wirklich interessant zu lernen und hat einige potenziell bahnbrechende Anwendungen. xargs ermöglicht es Ihnen, zusätzliche Befehle für die Ausgabe eines bestimmten Befehls auszuführen. Ein sehr einfaches Beispiel dafür ist bei der Kopplung mit dem ls zu sehen Befehl. Zum Beispiel, wenn Sie cat wollten alle Dateien, die von ls aufgelistet werden , könnten Sie so etwas verwenden:

$ ls
1.file  2.file  3.file

$ ls | xargs cat
you are reading file 1
you are reading file 2 
you are reading file 3

Schauen Sie sich einen ausführlichen Blick auf xargs von HowtoGeek
awk/sed/(e)grep an – Dieses Trio wurde von unserer Community öfter benannt als alle anderen Befehle. Es war aufschlussreich zu sehen, wie wichtig diese Befehle wirklich für die Community und für Systemadministratoren insgesamt sind. Konzentrieren wir uns auf grep zuerst.
grep —Grep ist großartig, keine Lüge. Falls Sie grep noch nicht kennen (und seien wir ehrlich, das ist zumindest möglich, wenn Sie neu in der Linux-Befehlszeile sind), machen Sie sich damit vertraut. grep ist ein Tool, mit dem Sie die Standardausgabe von fast allem auf der Befehlszeile filtern können. Sie können grep für Wörter, die Sie finden möchten, oder kehren Sie das um, um Ihnen alles anzuzeigen, was NICHT zu Ihrem Schlüsselwort passt. Wir werden sogar ein wenig über ein sehr ähnliches Tool sprechen, das grep erweitert ein bisschen. Hier sind einige Beispiele.
Um Ihnen alle Zeilen in einer bestimmten Datei anzuzeigen, die beispielsweise das Wort „Fehler“ enthalten, würden Sie etwa so vorgehen:

$ cat file.txt
This line contains an error.
This line contains a case sensitive ERROR
And this one is just an Error.
Then we have a warning.
and a WARNING
and then of course Warning.

$ grep error file.txt
This line contains an error.
$

Das nennt man ein inklusives grep . Sie können dies auch umkehren, indem Sie ein Ausschluss-Flag verwenden. Angenommen, Sie möchten alle Konfigurationsoptionen in Ihrer sshd config sehen die nicht auskommentiert sind, könnten Sie dies tun:

# grep -v \# /etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

… snip ...

Subsystem sftp /usr/libexec/openssh/sftp-server
#

Es ist erwähnenswert, dass grep unterscheidet Groß- und Kleinschreibung, wie viele Dinge in Bash. Wenn Sie also nach „error“ suchen, finden Sie „Error“ oder „ERROR“ nicht. Sie können grep sagen um mit dem -i ohne Berücksichtigung der Groß- und Kleinschreibung zu filtern Flagge.

$ grep -i eRRor file.txt
This line contains an error.
This line contains a case sensitive ERROR
And this one is just an Error.

Dies wird bei error, ERROR, erRoR oder was auch immer übereinstimmen, solange die Buchstaben gleich sind.

Nun, ich sagte, Sie könnten grep verwenden um die Ausgabe eines Befehls richtig zu filtern? Sie tun dies mit einer Ausgabeumleitung mithilfe einer Pipe. Dies ist wirklich nützlich für Dinge wie das Filtern von Protokollen, sogar live mit tail -f .

   # tail -f /var/log/messages | grep -i error

Es gibt viel mehr Optionen für grep , einschließlich Filtern basierend auf einer Datei mit Schlüsselwörtern, regulären Ausdrücken, Sie können sogar die Ausgabe einfärben. Ich schlage vor, dass Sie sich mit der Manpage vertraut machen, wenn Sie mehr wissen möchten.

egrep – Was ist, wenn Sie nach mehr als einem Wort filtern möchten? Ich habe immer egrep verwendet dafür.

Angenommen, Sie möchten grep Bei einem Fehler oder einer Warnung könnten Sie etwa so vorgehen:

$ egrep 'error|warning' file.txt
This line contains an error.
Then we have a warning.

egrep wird andere Muster unterstützen, da bin ich mir sicher, aber dieses hier ist dasjenige, für das ich es immer verwendet habe, und ich fand es sehr nützlich.

awk – Das awk Der Befehl implementiert die Programmiersprache AWK zum Verarbeiten von Text und eignet sich besonders gut zum Verarbeiten von in Spalten organisierten Daten. Dieser Befehl ist in den meisten, wenn nicht allen Linux-Distributionen sowie allen anderen UNIX-Betriebssystemen verfügbar.

Systemadministratoren verwenden häufig awk um Daten aus Dateien zu extrahieren oder aus der Ausgabe anderer Befehle in der Befehlszeile oder in Shell-Skripten zu leiten. Rufen Sie awk auf indem Sie den Befehl ausführen, der eine Aktion zwischen '{}' bereitstellt . Sie können Spalten als Variablen referenzieren, z. B. $1 für die erste Spalte $2 , für die zweite und so weiter. Standardmäßig awk verwendet Leerzeichen als Spaltentrennzeichen, aber Sie können jedes beliebige Zeichen verwenden, indem Sie es mit dem Flag -F angeben .

Um beispielsweise den Besitzer und die Gruppe zu drucken, Spalten 3 und 4 in der Ausgabe von ls -l , leiten Sie seine Ausgabe an awk weiter so:

$ ls -l | awk '{ print $3,$4 }'
ricardo users
ricardo users
root root
...

Sie können auch Zeilen aus der Eingabe filtern, indem Sie vor der Aktion einen optionalen regulären Ausdruck angeben. Zum Beispiel, um alle Hostnamen (Spalte 2) von Zeilen zu drucken, die mit einer Zahl in Ihrem /etc/hosts beginnen verwenden Sie awk so:

$ awk '/^[0-9]/ { print $2 }' /etc/hosts
localhost
sat6server
tower01.olab.home.ca
...

awk ist ein vielseitiger Befehl, der eine ganze Programmiersprache unterstützt, mit der Sie viele Dinge tun können, z. B. Berechnungen, Bedingungen, Datentransformation und mehr. Es ist eine großartige Option, um Ihnen bei der Automatisierung Ihrer Systeme zu helfen, und es ist oft Teil von Shell-Skripten.

Weitere Informationen finden Sie im Artikel Anfängerleitfaden für gawk und den man des Befehls Seiten.

gesendet – Der Befehl sed – kurz für Stream-Editor – ermöglicht Ihnen das Filtern und Bearbeiten von Textströmen auf skriptgesteuerte Weise. Systemadministratoren verwenden häufig sed in Bash-Skripten, um Text umzuwandeln, der von anderen Befehlen oder direkt aus Dateien geleitet wird. In seiner einfachsten Form sed sucht und ersetzt Text. Verwenden Sie es zum Beispiel, um den String „stream“ durch „text“ zu ersetzen, der aus einer Pipe kommt, wie hier:

$ echo "This is a test stream" | sed 's/stream/text/'
This is a test text

Sie können auch Text in einer Datei ersetzen, indem Sie den Dateinamen als letzten Parameter angeben, etwa so:

$ sed 's/pattern/replacement/' filename

Zur Sicherheit sed gibt die Ergebnisse an STDOUT aus, ohne die Datei zu ändern. Sie können die Ausgabe in eine neue Datei umleiten, um die Ergebnisse zu speichern. Sie können auch die Originaldatei an Ort und Stelle ändern, indem Sie -i angeben Flagge.

Standardmäßig sed ändert nur das erste Vorkommen des Musters in jeder Zeile. Um dieses Verhalten zu ändern und alle Instanzen des Musters zu ersetzen, geben Sie den g an Option am Ende von sed Befehlsausdruck wie folgt:

$ sed 's/pattern/replacement/g' filename

Zusätzlich zur einfachen Textsuche, sed unterstützt den Abgleich regulärer Ausdrücke. Verwenden Sie beispielsweise einen regulären Ausdruck „[Ww]ord“, um sowohl „Wort“ als auch „Wort“ in jeder Zeile zu ersetzen:

$ echo "Word word WORD" | sed 's/[Ww]ord/text/g'
text text WORD

Dieser Befehl bietet viele andere Möglichkeiten, aber selbst mit dieser grundlegenden Verwendung können Sie viel Zeit sparen. Weitere Informationen zu anderen Optionen erhalten Sie vom man Seiten für sed .

ansehen – Mit diesem Befehl können Sie einen Befehl/ein Programm wiederholt in einem bestimmten Intervall ausführen. Standardmäßig beträgt das Intervall alle zwei Sekunden. Viele Systemadministratoren verwenden diesen Befehl, um verschiedene Systembedingungen oder Aufgaben bis zum Abschluss zu überwachen.
Wenn Sie beispielsweise Ihre Speichernutzung überwachen möchten, können Sie Folgendes verwenden: watch -d free -m (das -d Option hebt Werte hervor, die sich von der letzten Ausführung unterscheiden).

locken – Mit diesem Befehl können Sie Daten zu/von Servern übertragen, mit viel mehr Optionen als nur HTTP/HTTPS. Es funktioniert ohne Benutzerinteraktion und wird sehr häufig in Situationen gesehen, in denen Sie REST-API-Aufrufe (GET, POST, PUT) durchführen müssen.

curl unterstützt viele Optionen, um eine Verbindung zu Servern herzustellen, wie z. B. SSL, die Verwendung von Cookies, die Wiederaufnahme der Dateiübertragung usw. Es ist fast so, als hätten Sie einen Webbrowser, den Sie über die Befehlszeile ausführen können.

Das folgende Beispiel zeigt curl für einen einfachen Dateidownload, aber Begrenzung der Bandbreite:

curl -o myfile.tar.gz --limit-rate 20K https://myserver.example.com/bigfile.tar.gz

Wie im Handbuch angegeben, die Anzahl der verfügbaren Optionen, die mit curl verwendet werden können sind viele. Einige von denen, die ich häufig verwende, sind:

  •  -s: im unbeaufsichtigten Modus ausführen (ohne Fortschrittsbalken)
  •  -k: eine unsichere Verbindung zulassen (nur bei Verbindung zu einem internen, bekannten Server, für den ein selbstsigniertes Zertifikat verwendet wird)
curl -X POST --header "Content-Type: application/json" \
             --data '{"my_id": 5, "my_application": "moneymaker", "body": "showmethemoney"}' \
               https://myserver.example.com/posts

Im obigen Beispiel mache ich einen POST und übergebe den Header und der Körper .

Mail – Die mail command ist ein supernettes Tool, mit dem ein Benutzer E-Mails direkt von der Befehlszeile aus senden kann, ohne einen Browser oder dedizierten Client öffnen zu müssen. Sie müssen einen SMTP-Server haben, der lokal auf Ihrem Computer läuft, also sollten Sie sich dessen bewusst sein.

Installieren Sie das Paket:

 $ apt-get install mailutils

Um eine einfache E-Mail zu senden, können Sie Folgendes verwenden:

$ mail -s "Subject Line" [email protected]

Wenn Sie Enter drücken , werden Sie mit dem Cc aufgefordert Feld. Sie können weitere Empfänger hinzufügen oder einfach Enter drücken zu überspringen. Dann geben Sie Ihre Nachricht ein. Wenn Sie fertig sind, verwenden Sie Strg+D um die Nachricht zur Zustellung zu versenden. Wenn es fertig ist, sollte es so aussehen:

$ mail -s "Subject Line" [email protected]
Cc: [email protected]
"Hello world" 
<Ctrl + D>

Weitere Informationen zu diesem Befehl finden Sie in diesem großartigen Artikel.

tmux – Der tmux Der Befehl, also der Terminal-Multiplexer, ermöglicht mehrere Fenster innerhalb eines einzigen Terminalfensters. Sie können zwischen Fenstern wechseln und sie sogar in einzelne Bereiche mit jeweils eigener CLI aufteilen. Wir haben einige großartige Inhalte rund um tmux veröffentlicht und wie man es benutzt, also werde ich Ihnen einen Link zu diesem Inhalt hinterlassen. Weitere Informationen finden Sie in den Tipps zur Verwendung von tmux.

sudo – Der sudo-Befehl ist Ihr Weg zu erhöhten Rechten. Alle Systemadministratoren müssen wissen, wie man diesen Befehl verwendet, wie er sich von su unterscheidet (was viele anstelle von sudo verwenden …schlechte Idee) und wie man den Zugriff durch notwendige Accounts sicherstellt. Ich habe einen Einführungsartikel zu sudo geschrieben weit zurück, als das für Sie nützlich sein könnte.

ssh – Der ssh (Secure Shell)-Befehl ermöglicht es Ihnen, Remote-Arbeitsprotokolle zu verwenden, um über eine Netzwerkverbindung auf Server zuzugreifen und diese zu manipulieren. Wenn Sie jemals im Support gearbeitet haben oder vom Support unterstützt wurden, verwendet der Support-Techniker oft ssh um auf Ihren Computer oder Server zuzugreifen.
Die Verwendung von Befehlen ist ziemlich einfach:

$ ssh username@hostname

Sie werden nach einem Passwort gefragt, und wenn Sie die richtigen Anmeldeinformationen angeben können, sind Sie auf dem Weg in das gewünschte System.

scp – Der sichere Kopierbefehl (scp ) ermöglicht es einem Benutzer, Dateien zu/von einem entfernten System zu kopieren. Sie benötigen ssh aktiviert an beiden Enden der Transaktion und eine ordnungsgemäße Befehlssyntax. All das und Sie sollten bereit sein zu gehen. Die Befehlssyntax sollte etwa so aussehen:

So kopieren Sie eine Datei VON einem entfernten System in das aktuelle Arbeitsverzeichnis:

scp user@ip_of_remote :/file/path/of/file.txt . 

pkill – Dieses Befehlsdienstprogramm ermöglicht es uns, die Prozesse laufender Programme zu signalisieren. Sie können nach einem Prozess nach Namen (vollständig oder teilweise), Benutzer usw. suchen. Es gibt unzählige Optionen für die Verwendung dieses Dienstprogramms, aber standardmäßig sendet der Befehl das 15-Signal (TERM) an alle PIDS, die Ihren Kriterien entsprechen. Zum Beispiel:

$ pkill chrome

Dadurch sollten alle Chrome-Instanzen heruntergefahren werden, die auf dem Computer ausgeführt werden.

lsns – Dieser Befehl listet Namensräume auf (lsns ), macht genau das, was es sagt – listet Namespaces auf. Verrückt oder? Wie auch immer, es gibt viele Optionen, die Sie hier hinzufügen können: -J (json-Format), -l (Listenformat), -n (keine Header), etc. Dieser Befehl ist ein Teil von util-linux Paket und ist weit verbreitet. Weitere Informationen zu lsns oder Namespaces im Allgemeinen lesen Sie diesen Artikel von Mitwirkendem Steve Ovens Die 7 am häufigsten verwendeten Linux-Namespaces.

Freigabe aufheben – Dieser konzentriert sich ebenfalls auf Namespaces. Der Unshare-Befehl führt ein Programm in einem oder mehreren neu erstellten Namespaces aus. Standardmäßig hält der neue Namensraum nur so lange an, wie Programme darin laufen. Weitere Informationen zu diesem Befehl finden Sie im man Seite in Ihrem bevorzugten Linux-Rechner.

[ Möchten Sie Ihre Fähigkeiten als Systemadministrator testen? Machen Sie noch heute einen Kompetenztest. ]

Wenn es Ihnen gelingt, diese Tools dort in Ihren Arbeitsablauf zu integrieren, wo sie sinnvoll sind, werden Sie dafür ein besserer Systemadministrator sein. Wenn einige Ihrer Lieblingsbefehle nicht auf der Liste stehen, würden wir uns freuen, davon zu hören. Senden Sie uns gerne einen Artikel über Ihren Lieblingsbefehl, den wir nicht aufgelistet haben, an [email protected].


Linux
  1. 20 wichtige Linux-Befehle für jeden Benutzer

  2. 10 Befehle, die jeder Linux-Benutzer kennen sollte

  3. 3 Fähigkeiten, die jeder Linux-Systemadministrator mitbringen sollte

  4. 6 OpenSSL-Befehlsoptionen, die jeder Systemadministrator kennen sollte

  5. 7 Linux-Netzwerkbefehle, die jeder Systemadministrator kennen sollte

Grundlegende Linux-Netzwerkbefehle, die Sie kennen sollten

5 Linux-Befehle, die jeder Linux-Benutzer kennen sollte

21 grundlegende Befehle, die jeder Docker-Benutzer kennen sollte

5 einfache Bash-Verlaufstricks, die jeder Linux-Benutzer kennen sollte

Linux-Terminal-Tricks, die jeder Linux-Enthusiast kennen muss!

Linux-Befehle, die alle Benutzer kennen sollten {Ultimate List}