Angenommen, Sie erkunden zum ersten Mal die Linux-Befehlszeile oder steigen in die Linux-Administration ein. In diesem Fall ist ein grundlegendes Verständnis dafür, wie man sich im Terminal bewegt und grundlegende Aufgaben erledigt, unerlässlich. Um Ihnen zu helfen, diese Konzepte zu verstehen, sehen Sie sich meine beiden vorherigen Artikel an:
- 10 Befehle für den Einstieg am Terminal
-
10 weitere Befehle zum Bearbeiten von Dateien
Wenn Sie sich jedoch mit diesen Konzepten wohlfühlen, werden wir Ihr Linux-Wissen in diesem Artikel etwas weiter vertiefen. Wir werden uns mit Prozessen und deren Verwaltung befassen.
Was genau ist also ein Prozess? ?
Unter Linux ist ein Prozess jede aktive (laufende) Instanz eines Programms. Aber was ist ein Programm ? Technisch gesehen ist ein Programm jede ausführbare Datei, die auf Ihrem Computer gespeichert ist. Jedes Mal, wenn Sie ein Programm ausführen, haben Sie einen Prozess erstellt. Auf einer grundlegenden Ebene ist dies ziemlich einfach zu handhaben, und das werden wir uns heute ansehen.
Was Sie für den Einstieg benötigen
Ich empfehle Ihnen, auf Ihrer bevorzugten virtuellen Maschine mitzumachen. Auf diese Weise können Sie versuchen, ohne Konsequenzen zu scheitern (was definitiv der beste Weg ist, um sich am Terminal wohl zu fühlen).
Für diese Demo werde ich den Schlafvorgang für 500 Sekunden starten. Dieser Ansatz ermöglicht es Ihnen, den Prozess zu sehen, ohne dass ich bedeutende Änderungen an meinem System vornehmen muss.
[tcarrigan@client ~]$ sleep 500
^Z
[1]+ Stopped sleep 500
Ich habe den Vorgang dann mit Strg+Z gestoppt damit wir unser Terminal benutzen können.
1. Prozesse auflisten
Um Ihre derzeit aktiven Prozesse anzuzeigen, verwenden Sie den ps
Befehl:
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
3293 pts/0 00:00:00 sleep
3300 pts/0 00:00:00 ps
Hier erhalten Sie ein paar Informationen über die aktiven Prozesse auf Ihrem System. Achten Sie auf die PID (eindeutige Prozess-ID), die TIME (Zeitdauer, die der Prozess ausgeführt wurde) und die CMD (der Befehl, der zum Starten des Prozesses ausgeführt wird).
2. Ausführliche Liste (Prozesse)
Um eine unglaublich detaillierte Liste von Prozessen anzuzeigen, können Sie ps aux
verwenden Befehl.
- a - alle Benutzer
- u - zeigt den Benutzer/Eigentümer
- x - zeigt Prozesse an, die nicht im Terminal ausgeführt werden (was die Ausgabe ziemlich lang macht)
Sie können den Befehl hier sehen (Ausgabe der Länge nach bearbeitet):
[tcarrigan@client ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tcarrig+ 3293 0.0 0.0 215292 520 pts/0 T 13:41 0:00 sleep 500
root 3380 0.0 0.0 0 0 ? I 13:45 0:00 [kworker/1:1-mm_percpu_wq]
root 3381 0.0 0.0 0 0 ? I 13:45 0:00 [kworker/1:3]
root 3398 0.0 0.0 0 0 ? I 13:46 0:00 [kworker/3:2-ata_sff]
root 3481 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/u8:2-flush-253:0]
root 3482 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:1-events]
root 3483 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:2]
root 3508 0.0 0.0 0 0 ? I 13:51 0:00 [kworker/3:0-ata_sff]
root 3511 0.0 0.0 18892 7732 ? S 13:52 0:00 systemd-userwork
root 3512 0.0 0.0 18892 7656 ? S 13:52 0:00 systemd-userwork
root 3513 0.0 0.0 18892 7656 ? S 13:52 0:00 systemd-userwork
root 3566 0.4 0.0 432792 8024 ? Ssl 13:54 0:00 /usr/libexec/fprintd
tcarrig+ 3598 0.0 0.0 228208 3948 pts/0 R+ 13:54 0:00 ps aux
3. Kill durch PID
Ein Prozess wird unweigerlich hängen bleiben und Sie müssen ihn kill
es. Je mehr Zeit Sie an der CLI verbringen, desto wahrscheinlicher ist es, dass Sie kill
benötigen Befehl. Der genaueste Weg, einen Prozess zu identifizieren, ist die Prozess-ID (PID).
Verwenden Sie die folgende Syntax:
[tcarrigan@client ~]$ kill PID
Dieser Befehl sendet das SIGTERM Signal. Wenn Sie es jedoch mit einem festgefahrenen Prozess zu tun haben, fügen Sie den -9
hinzu Option.
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
3293 pts/0 00:00:00 sleep
4684 pts/0 00:00:00 sleep
40527 pts/0 00:00:00 sleep
40540 pts/0 00:00:00 ps
[tcarrigan@client ~]$ sudo kill -9 3293
[sudo] password for tcarrigan:
[1] Killed sleep 500
4. Kill nach Name/Schlüsselwort
Verwenden Sie den killall
Befehl zum Beenden eines Prozesses nach Namen. Dieser Befehl beendet alle Prozesse mit dem von Ihnen angegebenen Schlüsselwort/Namen.
Die Syntax lautet:
[tcarrigan@client ~]$ killall sleep
Dies würde den gesamten sleep
beenden Prozesse, die auf dem System aktiv sind (die -9
Option funktioniert auch hier). Hier ist ein Beispiel:
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
4684 pts/0 00:00:00 sleep
40527 pts/0 00:00:00 sleep
40540 pts/0 00:00:00 ps
[tcarrigan@client ~]$ killall -9 sleep
[2]- Killed sleep 500
[3]+ Killed sleep 500
Diese nächsten beiden Befehle gehen Hand in Hand. Sie ermöglichen es Ihnen, Hintergrundbefehle zu verschieben/zu verwalten. Ich werde einen grundlegenden Blick auf die folgende Syntax werfen; Für eine eingehende Betrachtung dieser Befehle lesen Sie jedoch meinen vorherigen Artikel zu diesem Thema.
5. Hintergrundjobs auflisten und Hintergrundjobs fortsetzen
Um Hintergrundjobs aufzulisten und zu verwalten, verwenden wir den bg
Befehl. Ich habe ein neues sleep 500
gestartet Prozess und stoppte ihn dann und schickte ihn in den Hintergrund. Daher sehen wir es aufgelistet, wenn bg
ausgeführt wird unten:
[tcarrigan@client ~]$ bg
[1]+ sleep 500 &
6. Bringen Sie den neuesten Job in den Vordergrund
Dazu verwenden wir den fg
Befehl. Dies bringt den zuletzt ausgeführten Job/Prozess in den Vordergrund. Das folgende Beispiel ist eine Fortsetzung des obigen Befehls. Die sleep 500
Prozess, der sich im Hintergrund befindet, ist jetzt im Hintergrund aktiv. Bringen wir es ans Licht...
[tcarrigan@client ~]$ fg
sleep 500
Dieser Befehl bringt uns zu unserem letzten Befehl in dieser Liste.
7. Bringen Sie einen bestimmten Job in den Vordergrund
Verwenden Sie den fg
Befehl erneut, aber wählen Sie einen bestimmten Job aus, der in den Vordergrund gebracht werden soll (anstelle des neuesten). Dazu fügen wir dem Befehl einfach den Job-/Prozessnamen hinzu.
[tcarrigan@client ~]$ fg XXXample
Dies bringt Job XXXample in den Vordergrund.
[ Möchten Sie Ihre Fähigkeiten als Systemadministrator testen? Machen Sie noch heute einen Kompetenztest. ]
Abschluss
In den heutigen Linux Command Basics haben wir uns mit Prozessen und deren Verwaltung befasst. Sie können jetzt allgemeine Prozessverwaltungsaufgaben erledigen – alles vom Auflisten und Löschen bis hin zum Wechseln zwischen Hintergrund und Vordergrund. Wenn es andere allgemeine Linux-Administrationsbereiche gibt, für die Sie eine spezielle Liste von Befehlen sehen möchten, senden Sie eine E-Mail an das Team unter [email protected], und ich werde mein Bestes tun, um diese für Sie zu konkretisieren.