Die Leistungsfähigkeit von 5 grundlegenden Linux-Befehlen
Linux-Administratoren haben sich bei der Verwaltung ihrer Systeme immer auf die Befehlszeile verlassen. Befehlszeilenschnittstellen (CLIs) sind zwar nicht so intuitiv wie eine GUI, eröffnen aber die wahre Leistungsfähigkeit des Computings mit einer Reihe vielseitiger Befehle, die für nahezu jeden Zweck miteinander verkettet werden können. GUIs hingegen beschränken sich auf die fast immer reduzierte Funktionalität, die Entwickler in die Schaltflächen und Bildschirme eingebaut haben. Dieses Modell ist sinnvoll, da nur einige Leute die "fortgeschrittenen" Fähigkeiten der Befehlszeile benötigen, während andere nur wenige Aufgaben immer wieder mit einem Minimum an Kenntnissen über die Software ausführen. Regelmäßige Befehlszeilenbenutzer entwickeln im Laufe der Zeit ein Gespür dafür, wie sie die Befehle am besten verwenden, aber mit dieser UpGuard-Einführung können selbst Tüftler einige schnelle Tricks mit diesen fünf grundlegenden Linux-Befehlen nutzen.
1. ls - Informationen über Dateien auflisten
Beispiel: ls -al [Handbuchseite]
Einer der grundlegendsten Befehle, und ähnlich wie das DOS-Verzeichnis, listet ls ohne Flags die Dateien im aktuellen Verzeichnis alphabetisch auf. Wenn Sie sowohl DOS als auch Linux verwenden, geben Sie wahrscheinlich versehentlich den Befehl ein, den Sie bevorzugen - so oft wird er verwendet. Aber ls hat einige interessante Flags, die es zu einer leistungsstarken Möglichkeit machen, im Dateisystem zu navigieren.
- Das Flag -h oder --human-readable zeigt Dateigrößen einfach auf eine freundlichere Weise an, z. B. 282 KB anstelle von 282000 Bytes. Die Tatsache, dass dieses Flag überhaupt existiert, bringt eine sehr wichtige Facette der Befehlszeile zum Vorschein, nämlich dass die Befehlsausgabe letztendlich dazu gedacht ist, von einem Computer gelesen zu werden, und im Allgemeinen für eine optimale Verwendung in diesem Kontext formatiert ist. Die Verwendung der Befehlszeile als Person bedeutet, die Ausgabe auf eine ganz andere Weise zu analysieren, und erfordert daher oft zusätzliche Eingaben bezüglich der Formatierung.
- Das vielleicht wichtigste Flag bei regelmäßiger Verwendung des Befehls ls ist -R für die rekursive Suche. Die Ausgabe eines ls -R-Befehls in einem Verzeichnis mit vielen Unterverzeichnissen und Dateien ist möglicherweise nicht sehr hilfreich für eine Person, die versucht, ihn zu lesen, aber die Ausgabe dieses Befehls in weitere Logik, wie z.B. eine grep-Suche, zu leiten, kann das Aufspüren zu einem Kinderspiel machen.
- Obwohl die Standardsortierung einer ls-Ausgabe alphabetisch ist, kann sie geändert werden. Das -S-Flag sortiert Dateien nach Größe, was dazu beitragen kann, Speicherplatzfresser aufzuspüren oder es Ihnen zu ermöglichen, eine Gruppe von Dateien, z. B. Sicherungen, auf Größenänderungen im Laufe der Zeit zu vergleichen.
2. top - Auto-Update-Anzeige der aktuellen Linux-Prozesse
Beispiel: top -u root [manpage]
top fungiert als Leistungs-Dashboard innerhalb der Befehlszeile und ermöglicht es Ihnen, in Echtzeit die CPU-, Speicher- und Festplattenleistung des Linux-Systems sowie die "top"-Prozesse, die Ressourcen beanspruchen, zu überwachen. Da top kontinuierlich ausgeführt wird, bis Sie es stoppen, verfügt es zusätzlich zu den Befehlszeilenschaltern über eine Vielzahl von Navigationsbefehlen.
Aber es gibt ein paar einfache Dinge, die Sie tun können, die sich als nützlich erweisen. Wenn Sie den Schalter -u verwenden, zeigt top nur Prozesse an, die unter dem angegebenen Benutzer ausgeführt werden. Wenn Sie ein ! vor dem Benutzer ablegen, können Sie sie auch aus dem Resultset filtern. Beide erweisen sich als nützlich bei der Behebung von Ressourcenengpässen. Sie können dies auch von oben aus tun, indem Sie u drücken und dann den Benutzernamen oder die ID eingeben.
Wenn Sie noch mehr Granularität benötigen, welche Prozesse von top angezeigt werden, können Sie mit dem Flag -p bis zu 20 Prozesse angeben, die überwacht werden sollen, was bedeutet, dass Sie ein benutzerdefiniertes Dashboard erstellen können, um beispielsweise alle Prozesse einer Anwendung zu überwachen. Wenn Sie es als Shell-Skript speichern, um die PIDs nicht erneut einzugeben, haben Sie jetzt eine schnelle Möglichkeit, bei Bedarf ein benutzerdefiniertes Leistungsdashboard zu öffnen.
Während top ausgeführt wird, drücken Sie O (Großbuchstabe O), um eine Vielzahl von Sortieroptionen anzuzeigen. Ebenso können Sie durch Drücken von k oben eine Prozess-ID angeben, die beendet werden soll, ohne den Vorgang zu beenden. Für die Linux-Befehlszeile fungiert top als mehr als nur ein Leistungsmonitor. Es handelt sich um ein einfaches, interaktives Dashboard zur Verwaltung laufender Prozesse.
3. Suchen und Finden - Nach Dateien suchen
Beispiel: Suchen Sie "*.html" | less [manpage]
Beispiel: find/-name test [manpage]
Von der Linux-Befehlszeile aus gibt es mehrere Möglichkeiten, über die Befehlszeile nach Dateien zu suchen, einschließlich der Befehle locate und find. Trotz ihrer Ähnlichkeit funktionieren diese Befehle in der Praxis recht unterschiedlich.
Der Befehl find ist Standard auf fast allen Linux-Distributionen, während locate relativ neu und oft nur auf GNU Linux-Versionen verfügbar ist. Sie können das Live-Dateisystem mit find durchsuchen, während locate eine Datenbank durchsucht, die regelmäßig aktualisiert werden muss, um genaue Informationen mit dem Befehl updatedb zu erhalten. Ein Vorteil der Ortung ist, dass sie schnell ist. Wenn Sie jemals darauf gewartet haben, dass ein Suchbefehl abgeschlossen ist, können Sie wahrscheinlich verstehen, wie wertvoll die Ortung trotz einiger anderer Einschränkungen sein kann. Das heißt, Sie können nicht immer darauf wetten, dass locate verfügbar ist, insbesondere wenn Sie mehrere verschiedene Linux-Varianten verwalten, aber wenn Sie nur eine Distribution oder sogar einen Server verwalten müssen, können Sie durch das Einrichten von locate auf lange Sicht Zeit sparen.
Einen ausführlichen Vergleich der beiden Befehle, einschließlich Sicherheitsbedenken hinsichtlich der Lokalisierung, die einen globalen Prozess als root ausführt, finden Sie in diesem Thread, insbesondere in der hervorragenden Antwort von Warren Young.
4. grep - Suche in Dateien oder anderen Ausgaben
Beispiel: Katze test.txt | grep "Testzeichenfolge" [man-Seite]
grep ist ein leistungsstarker Befehl, der Dateiinhalte oder Befehlsausgaben nach übereinstimmenden Zeichenfolgen filtert, und bildet das Herzstück der Linux-Befehlszeile. Indem Sie einen Befehl wie cat in grep pipen, zum Beispiel: cat test.txt | grep "test string", können Sie den Inhalt einer Datei durchsuchen, z.B. wenn Sie sehen möchten, wie eine bestimmte Option in einer .conf-Datei eingestellt ist. Sie können auch Gruppen von Dateien durchsuchen, z. B. Mailprotokolle, indem Sie einen Befehl wie cat maillog* | grep "test string " ausführen, der alle Mailprotokolle liest, aber nur die passenden Zeilen zurückgibt.
Die wahre Stärke des grep-Befehls besteht darin, dass er jede Befehlsausgabe verarbeiten kann, nicht nur Dateien. Das bedeutet, dass komplexe Abfragen in nahezu alles möglich sind, was eine durchsuchbare Ausgabe zurückgibt, und die Ergebnisse können leicht für den menschlichen Gebrauch formatiert werden.
5. diff - Vergleichen Sie Dateien Zeile für Zeile
Beispiel: diff test1.txt test2.txt [manpage]
Manchmal reicht es nicht aus, in einer Datei zu suchen, und was Sie wirklich tun müssen, ist, zwei Dateien zu vergleichen, um zu sehen, was sich unterscheidet. Mit dem Linux-Befehl diff können Sie genau das tun, was in einigen gängigen Szenarien ein Lebensretter sein kann, z. B. bei der Bestimmung des Unterschieds zwischen mehreren Versionen einer conf-Datei. Durch die Verwendung der Flags -q/--brief können Sie diff einfach mitteilen lassen, ob sich die Dateien unterscheiden oder nicht. In kleinem Maßstab kann dies helfen, den Überblick über Dateiänderungen zwischen Systemen zu behalten, die eigentlich identisch sein sollten, aber in Unternehmensumgebungen ist in der Regel eine robustere Lösung erforderlich.
Das Flag --suppress-common-lines verbirgt alles außer Zeilen, die sich unterscheiden, was einen manuellen Vergleichsprozess beschleunigen kann, indem irrelevante Daten entfernt werden. Viele der anderen Optionen für diff ermöglichen es Ihnen, zu manipulieren, was wie angezeigt wird, wodurch es, wie der Rest der Befehle, die wir uns angesehen haben, sowohl für Skripte als auch für tatsächliche Personen, die versuchen, die Daten zu lesen, mächtig wird.
Zusammenfassung
Linux-Systemadministratoren kennen wahrscheinlich die meisten dieser Details, aber selbst die erfahrenste Person hat nicht die Möglichkeit, alles auszuprobieren, und wenn Sie für eine Produktionsumgebung verantwortlich sind, haben Sie normalerweise keine Zeit, neue Methoden nach Spezifikation zu erkunden oder Handbuchseiten von Befehlen zu lesen, die Sie nicht oft verwenden mussten. Gelegentlich kann jedoch ein Befehl oder ein wenig bekannter Schalter an einem bekannten Befehl dazu führen, dass Sie später Stunden an Arbeit einsparen, Prozesse beschleunigen und die Menge an manuellen Eingaben reduzieren, die erforderlich sind. Der Übergang vom Löschen von Bränden zur proaktiven Verbesserung von Prozessen erfordert einen gewissen Kulturwandel in einer IT-Abteilung, aber die Ergebnisse sind fast immer lohnenswert.
Letztendlich abstrahieren GUIs die Funktion eines Computers von einem Benutzer, was nicht unbedingt eine schlechte Sache ist: Sie sollten nicht wissen müssen, wie man einen Motor umbaut, um ein Auto zu fahren. Vielleicht ist das ein Grund, warum Linux nie wirklich in der Lage war, auf dem Consumer-Markt Fuß zu fassen, es erforderte entweder tatsächlich zu viel Nischenwissen oder hatte zumindest den Ruf dafür. Im Gegensatz dazu sind Apple-Geräte vor allem aufgrund ihrer intuitiven Benutzerfreundlichkeit auf dem Markt erfolgreich, oder wie man es auch sagen könnte: weil sie das meiste, was passiert, vor den Benutzern verbergen. Falls Sie es noch nicht bemerkt haben: Die Technologie durchdringt die meisten Aspekte unseres Lebens stetig und dominiert sie sogar. Je besser Sie diese Technologie verstehen, desto mehr Macht haben Sie, sie an Ihr Leben anzupassen und nicht umgekehrt.