Shell-Eingabeaufforderung unter Linux

Fatmawati Achmad Zaenuri/Shutterstock.com

Wenn alles in Linux eine Datei ist, muss es mehr als nur Dateien auf Ihrer Festplatte geben. Dieses Tutorial zeigt Ihnen, wie Sie |_+_| . verwenden um alle anderen Geräte und Prozesse anzuzeigen, die als Dateien behandelt werden.



Unter Linux ist alles eine Datei

Der oft zitierte Satz, der Alles in Linux ist eine Datei ist irgendwie wahr. Eine Datei ist eine Sammlung von Bytes. Wenn sie gelesen werden hinein ein Programm oder an einen Drucker gesendet, scheinen sie zu generieren ein Strom von Bytes. Wenn sie geschrieben werden zu, Sie akzeptieren ein Strom von Bytes.

Viele andere Systemkomponenten akzeptieren oder generieren Byte-Streams, wie Tastaturen, Socket-Verbindungen, Drucker und Kommunikationsprozesse. Da sie entweder Bytestreams akzeptieren, generieren oder akzeptieren und generieren, können diese Geräte – auf sehr niedriger Ebene – so behandelt werden, als wären sie Dateien.

Dieses Designkonzept vereinfachte die Umsetzung der Unix-Betriebssystem . Dies bedeutete, dass ein kleiner Satz von Handlern, Tools und APIs erstellt werden konnte, um eine Vielzahl unterschiedlicher Ressourcen zu verarbeiten.

Anzeige

Die Daten- und Programmdateien, die sich auf Ihrer Festplatte befinden, sind einfache alte Dateisystemdateien. Wir können die |_+_| . verwenden Befehl, um sie aufzulisten und einige Details über sie herauszufinden.

Wie erfahren wir von all den anderen Prozessen und Geräten, die wie Dateien behandelt werden? Wir verwenden die |_+_| Befehl. Dies listet die geöffneten Dateien im System auf. Das heißt, es listet alles auf, was behandelt wird, als ob es eine Datei wäre.

VERBUNDEN: Was bedeutet 'Alles ist eine Datei' in Linux?

Das lsof-Kommando

Viele der Prozesse oder Geräte, die |_+_| können berichten, ob sie zu root gehören oder von root gestartet wurden, daher müssen Sie die |_+_| . verwenden Befehl mit |_+_|.

Und weil diese Auflistung sehr lang sein wird, werden wir sie durch |_+_| . leiten .

lsof

Vor dem |_+_| Ausgabe erscheint GNOME-Benutzer sehen möglicherweise eine Warnmeldung im Terminalfenster.

ls

|_+_| versucht, alle gemounteten Dateisysteme zu verarbeiten. Diese Warnmeldung wird ausgegeben, weil |_+_| ist auf ein gestoßen Virtuelles GNOME-Dateisystem (GVFS). Dies ist ein Sonderfall von a Dateisystem im Benutzerbereich (SICHERUNG). Es fungiert als Brücke zwischen GNOME, seinen APIs und dem Kernel. Niemand – nicht einmal root – kann auf eines dieser Dateisysteme zugreifen, außer dem Besitzer, der es gemountet hat (in diesem Fall GNOME). Sie können diese Warnung ignorieren.

Anzeige

Die Ausgabe von |_+_| ist sehr breit. Die Spalten ganz links sind:

Die Spalten ganz rechts sind:

Die lsof-Spalten

Nicht alle Spalten gelten für jeden geöffneten Dateityp. Es ist normal, dass einige von ihnen leer sind.

  • Befehl : Der Name des Befehls, der dem Prozess zugeordnet ist, der die Datei geöffnet hat.
  • PID : Prozess-Identifikationsnummer des Prozesses, der die Datei geöffnet hat.
  • ZEIT : Aufgabe (Thread) Identifikationsnummer. Eine leere Spalte bedeutet, dass es sich nicht um eine Aufgabe handelt; es ist ein prozess.
  • Nutzer : Benutzer-ID oder Name des Benutzers, zu dem der Prozess gehört, oder Benutzer-ID oder Login der Person, die das Verzeichnis in |_+_| . besitzt wo |_+_| findet Informationen zum Ablauf.
  • FD : Zeigt den Dateideskriptor der Datei an. Dateideskriptoren werden unten beschrieben.
  • Typ : Typ des mit der Datei verknüpften Knotens. Hinweistypen werden im Folgenden beschrieben.
  • Gerät : Enthält entweder die durch Kommas getrennten Gerätenummern für eine Sonderzeichen-, Blocksonder-, Regulär-, Verzeichnis- oder NFS-Datei oder eine Kernel-Referenzadresse, die die Datei identifiziert. Es kann auch die Basisadresse oder den Gerätenamen eines Linux-AX.25-Socket-Geräts anzeigen.
  • Größe/Aus : Zeigt die Größe der Datei oder den Datei-Offset in Bytes an.
  • Knoten : Zeigt die Knotennummer einer lokalen Datei oder die Inode-Nummer einer NFS-Datei im Server-Host oder den Internetprotokolltyp an. Es kann STR für einen Stream oder die IRQ- oder Inode-Nummer eines Linux-AX.25-Socket-Geräts anzeigen.
  • Name : Zeigt den Namen des Mount-Punkts und des Dateisystems an, auf dem sich die Datei befindet.

Die FD-Kolumne

Der Dateideskriptor in der Spalte FD kann eine von vielen Optionen sein; die manpage liste sie alle auf .

Der FD-Spalteneintrag kann aus drei Teilen bestehen: einem Dateideskriptor, einem Moduszeichen und einem Sperrzeichen. Einige gängige Dateideskriptoren sind:

  • cwd : Aktuelles Arbeitsverzeichnis.
  • irren : FD-Informationsfehler (siehe Spalte NAME).
  • ltx : Gemeinsam genutzter Bibliothekstext (Code und Daten).
  • m86 : Zugeordnete DOS-Merge-Datei.
  • meme : Speicherabgebildete Datei.
  • mmap : Speicherzugeordnetes Gerät.
  • pd : Übergeordnetes Verzeichnis.
  • rtd : Wurzelverzeichnis.
  • TXT : Programmtext (Code und Daten)
  • Eine Zahl, die einen Dateideskriptor darstellt.

Das Moduszeichen kann eines der folgenden sein:

  • R : Lesezugriff.
  • In : Schreibzugriff.
  • du : Lese- und Schreibzugriff.
  • ‘ ‘: Ein Leerzeichen, wenn der Modus unbekannt ist und kein Sperrzeichen vorhanden ist.
  • - : Modus unbekannt und es ist ein Sperrzeichen vorhanden.

Das Sperrzeichen kann eines der folgenden sein:

  • R : Lesesperre für einen Teil der Datei.
  • R : Lesesperre für die gesamte Datei.
  • In : Schreibsperre auf einen Teil der Datei.
  • IN : Schreibsperre auf die gesamte Datei.
  • du : Lese- und Schreibsperre beliebiger Länge.
  • U : Unbekannter Schlosstyp.
  • ‘ ‘: Ein Leerzeichen. Kein Schloss.

Die TYPE-Spalte

Es gibt über 70 Einträge die in der Spalte TYPE erscheinen können. Einige häufige Einträge, die Sie sehen werden, sind:

  • REG : Reguläre Dateisystemdatei.
  • DIR : Verzeichnis.
  • FIFO : Als Erster rein, als erster raus.
  • CHR : Spezielle Zeichendatei.
  • BLK : Spezielle Datei blockieren.
  • INET : Internet-Steckdose.
  • unix : UNIX-Domain-Socket

Siehe Prozesse, die eine Datei geöffnet haben

Um die Prozesse anzuzeigen, die eine bestimmte Datei geöffnet haben, geben Sie den Namen der Datei als Parameter für |_+_| an. Um beispielsweise die Prozesse anzuzeigen, die |_+_| . geöffnet haben Datei verwenden Sie diesen Befehl:

lsof

|_+_| antwortet mit der Anzeige des einzelnen Prozesses, |_+_| die vom Benutzer |_+_| gestartet wurde.

Alle aus einem Verzeichnis geöffneten Dateien anzeigen

Um die Dateien anzuzeigen, die aus einem Verzeichnis geöffnet wurden, und die Prozesse, die sie geöffnet haben, übergeben Sie das Verzeichnis an |_+_| als Parameter. Sie müssen die |_+_| . verwenden (Verzeichnis)-Option.

Anzeige

Um alle Dateien anzuzeigen, die im |_+_| . geöffnet sind Verzeichnis verwenden Sie diesen Befehl:

lsof

|_+_| antwortet mit einer Liste aller geöffneten Dateien in diesem Verzeichnis.

Um alle Dateien anzuzeigen, die vom |_+_| . geöffnet wurden Verzeichnis verwenden Sie den folgenden Befehl:

sudo

Die Dateien wurden vom |_+_| . geöffnet Verzeichnis angezeigt. Beachten Sie, dass bei kürzeren Beschreibungen in einigen Spalten die gesamte Auflistung enger ist.

Von einem Prozess geöffnete Dateien auflisten

Um die Dateien anzuzeigen, die von einem bestimmten Prozess geöffnet wurden, verwenden Sie |_+_| (Befehls-)Option. Beachten Sie, dass Sie |_+_| . mehr als einen Suchbegriff angeben können auf einmal.

lsof

Anzeige

|_+_| bietet eine Liste der Dateien, die von einem der in der Befehlszeile bereitgestellten Prozesse geöffnet wurden.

Von einem Benutzer geöffnete Dateien anzeigen

Um die Anzeige auf die Dateien zu beschränken, die von einem bestimmten Benutzer geöffnet wurden, verwenden Sie die |_+_| (Benutzer-)Option. In diesem Beispiel sehen wir uns die Dateien an, die von Prozessen geöffnet wurden, die im Besitz von Mary sind oder in ihrem Namen gestartet wurden.

less

Alle aufgeführten Dateien wurden im Namen der Benutzerin Mary geöffnet. Dazu gehören beispielsweise Dateien, die von der Desktop-Umgebung geöffnet wurden oder einfach dadurch, dass Mary sich eingeloggt hat.

Ausschließen von Dateien, die von einem Benutzer geöffnet wurden

Um die von einem Benutzer geöffneten Dateien auszuschließen, verwenden Sie die |_+_| Operator. Das Ausschließen von Benutzern aus der Auflistung macht es einfacher, die Informationen zu finden, die Sie interessieren. Sie müssen die |_+_| . verwenden Option wie zuvor und fügen Sie |_+_| Zeichen am Anfang des Benutzernamens.

lsof

Diesmal die Auflistung für die |_+_| Verzeichnis enthält keine der Dateien, die vom Benutzer Mary geöffnet wurden.

Von einem Prozess geöffnete Dateien auflisten

Um die Dateien aufzulisten, die von einem bestimmten Prozess geöffnet wurden, verwenden Sie |_+_| (Prozess) Option und geben Sie die Prozess-ID als Parameter an.

lsof

Anzeige

Alle Dateien, die mit der von Ihnen angegebenen Prozess-ID geöffnet wurden, werden für Sie aufgelistet.

Auflisten von Prozess-IDs, die eine Datei geöffnet haben

Um die Prozess-IDs der Prozesse anzuzeigen, die eine bestimmte Datei geöffnet haben, verwenden Sie |_+_| (kurz) und geben Sie den Namen der Datei in der Befehlszeile an.

lsof

warum knistert mein audio

Die Prozess-IDs werden in einer einfachen Liste angezeigt.

Verwenden Sie UND- und ODER-Suchen

Lassen Sie uns die Dateien auflisten, die von Benutzer Mary geöffnet wurden und sich auf die SSH-Prozesse beziehen. Wir wissen, dass wir mehr als einen Suchbegriff auf der Befehlszeile bereitstellen können, daher sollte dies einfach sein.

lsof

Schauen wir uns nun die Ausgabe von |_+_| an. Das sieht nicht richtig aus; es gibt Einträge in der Ausgabe, die von root gestartet wurden.

Das haben wir nicht erwartet. Was ist passiert?

Wenn Sie mehrere Suchbegriffe angeben |_+_| gibt jede Datei zurück, die dem ersten Suchbegriff entspricht oder der zweite Suchbegriff usw. Mit anderen Worten, es führt eine ODER-Suche durch.

Um |_+_| . zu machen Führen Sie eine UND-Suche durch, verwenden Sie die |_+_| (und) Möglichkeit. Das bedeutet, dass nur Dateien aufgelistet werden, die dem ersten Suchbegriff entsprechen. und der zweite Suchbegriff usw.

Versuchen wir es noch einmal und verwenden Sie |_+_| Möglichkeit.

/proc

Jetzt ist jede Datei in der Liste eine, die von oder im Namen von Mary geöffnet wurde und mit dem SSH-Befehl verknüpft ist.

Automatisches Aktualisieren der Anzeige

Wir können die |_+_| . verwenden (Wiederholung) Option zum Setzen von |_+_| in den Wiederholungsmodus. Die Wiederholungsoption kann auf zwei Arten angewendet werden, entweder |_+_| oder |_+_|. Wir müssen auch die gewünschte Anzahl von Sekunden hinzufügen |_+_| warten, bevor die Anzeige aktualisiert wird.

Anzeige

Die Verwendung der Wiederholungsoption in beiden Formaten macht |_+_| zeigt die Ergebnisse wie gewohnt an, fügt jedoch am unteren Rand der Anzeige eine gestrichelte Linie hinzu. Es wartet die in der Befehlszeile angegebene Anzahl von Sekunden und aktualisiert dann die Anzeige mit einem neuen Ergebnissatz.

Mit dem |_+_| Option wird dies fortgesetzt, bis Sie Strg+C drücken. Mit dem |_+_| formatieren, wird es so lange fortgesetzt, bis keine Ergebnisse mehr angezeigt werden können oder bis Sie Strg+C drücken.

lsof

Beachten Sie die gestrichelte Linie am Ende der Auflistung. Dies trennt jede neue Anzeige von Daten, wenn die Ausgabe aktualisiert wird.

Anzeigen von Dateien, die mit Internetverbindungen verknüpft sind

Die |_+_| Mit der Option (Internet) können Sie die Dateien anzeigen, die von Prozessen geöffnet wurden, die mit Netzwerk- und Internetverbindungen verbunden sind.

lsof

Alle über Netzwerk- und Internetverbindungen geöffneten Dateien werden angezeigt.

Anzeigen von Dateien, die mit Internetverbindungen verknüpft sind, nach Prozess-ID

Um die von Internetverbindungen geöffneten Dateien anzuzeigen, die einer bestimmten Prozess-ID zugeordnet sind, fügen Sie |_+_| . hinzu Option und die |_+_| Möglichkeit.

Anzeige

Hier suchen wir nach Dateien, die über eine Internet- oder Netzwerkverbindung von einem Prozess mit der ID 606 geöffnet wurden.

kern.log

Alle mit der Prozess-ID 606 geöffneten Dateien, die Internet- oder Netzwerkverbindungen zugeordnet sind, werden angezeigt.

Anzeigen von Dateien, die mit Internetverbindungen und Befehlen verknüpft sind

Wir können die |_+_| . verwenden (Befehl) Option, um nach Dateien zu suchen, die von bestimmten Prozessen geöffnet wurden. Um nach Dateien zu suchen, die über Internet- oder Netzwerkverbindungen geöffnet wurden, die mit dem |_+_| . verknüpft sind verwenden Sie den folgenden Befehl:

lsof

Alle Dateien, die aufgrund der ssh-Prozesse geöffnet wurden, werden in der Ausgabe aufgelistet.

Anzeigen von Dateien, die mit Internetverbindungen und Ports verknüpft sind

Wir können |_+_| . machen Bericht über die Dateien, die über Internet- oder Netzwerkverbindungen an einem bestimmten Port geöffnet wurden. Dazu verwenden wir die |_+_| Zeichen gefolgt von der Portnummer.

Anzeige

Hier fragen wir |_+_| um die Dateien aufzulisten, die über Netzwerk- oder Internetverbindungen über Port 22 geöffnet wurden.

rsyslogd

Alle aufgelisteten Dateien wurden von Prozessen geöffnet, die Port 22 zugeordnet sind (der Standardport für SSH-Verbindungen).

Anzeigen von Dateien, die mit Internetverbindungen und Protokollen verknüpft sind

Wir können |_+_| . fragen um die Dateien anzuzeigen, die von Prozessen geöffnet wurden, die mit Netzwerk- und Internetverbindungen verbunden sind und ein bestimmtes Protokoll verwenden. Wir können zwischen TCP, UDP und SMTP wählen. Lassen Sie uns das TCP-Protokoll verwenden und sehen, was wir bekommen.

syslog

Die einzigen aufgelisteten Dateien sind diejenigen, die von Prozessen geöffnet wurden, die das TCP-Protokoll verwenden.

Wir haben nur an der Oberfläche gekratzt

Das ist eine gute Grundlage für einige gängige Anwendungsfälle für |_+_|, aber es steckt noch viel mehr dahinter. Wie viel mehr lässt sich daran erkennen, dass die Manpage über 2.800 Zeilen lang ist.

Die |_+_| -Befehl kann verwendet werden, um immer tiefer in die Schichten offener Dateien und Pseudodateien einzudringen. Wir haben eine Kartenskizze bereitgestellt; der Atlas ist da die manpage .

Linux-Befehle
Dateien Teer · pv · Katze · tac · chmod · Griff · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · Zustand · ls · fstab · rauswerfen · weniger · chgrp · chown · rev · suchen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · SRM
Prozesse alias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · beim · Charge · kostenlos · die · dmesg · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · ja · töten · Schlaf · sudo · seine · Zeit · groupadd · Benutzermod · Gruppen · lshw · stilllegen · neu starten · halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzung netstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · Locken · wget · Wer · Wer bin ich · In · iptables · ssh-keygen · ufw

VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten

WEITER LESEN