Was bedeutet das |
Symbol im sudo ps -ef | grep processname
Befehl?
Kann auch jemand bitte diesen Befehl erklären? Ich habe diesen Befehl nur zum Abrufen der PID und zum Beenden dieses Prozesses verwendet, aber ich habe auch gesehen, sudo ps -ef | grep processname | grep -v grep
und ich habe den Eindruck, als würde -v grep
man die zuvor generierte PID für beenden grep
. Wenn ja, wie geht das?
command-line
bash
process
Aamir
quelle
quelle
sudo
rennenps -ef
. Ein weiterer Trick, um den dritten Befehl zu umgehen, besteht darin, ein Zeichen des Prozessnamens in eckige Klammern zu setzen:ps -ef | grep [p]rocessname
ps -ef | grep '[p]rocessname'
grep [p]rocessname
, fordern Sie die Shell auf, im aktuellen Verzeichnis nach einer Datei mit dem Namen zu suchenprocessname
und das Muster durch den Namen dieser Datei zu ersetzen. Wenn keine Datei mit dem Namenprocessname
existiert, kann die Shell das Muster wörtlich an grep übergeben. Das hängt aber von deinen Einstellungen ab. So Ihre Version brechen wird , wenn eine Datei mit dem Namenprocessname
existiert oder wenn eine der folgenden Shell - Optionen aktiviert wurdefailglob
,nullglob
,nocaseglob
.Antworten:
Es wird zuerst ausgeführt
sudo ps -ef
und die Ausgabe an den zweiten Befehl übergeben.Der zweite Befehl filtert alle Zeilen, die das Wort "processname" enthalten.
ps -ef | grep processname | grep -v grep
listet alle Zeilen auf, die enthaltenprocessname
und nicht enthaltengrep
.Gemäß
man grep
Gemäß
man ps
Sie können Parameter
-ef
wie folgt kombinieren-e -f
.ps -ef | grep processname
Listen Sie tatsächlich alle Vorkommen des aufgerufenen Prozesses aufprocessname
.quelle
ps -ef
das genau ???| grep processName
im Terminal laufen, bekommen wir auch die Ausgabe von grep, was selbst ein Prozess ist, so dass -v diese Ausgabe beendetEs heißt
pipe
. Es gibt die Ausgabe des ersten Befehls als Eingabe für den zweiten Befehl.In Ihrem Fall bedeutet dies:
Das Ergebnis von
sudo ps -ef
wird als Eingabe von eingespeistgrep processname
sudo ps -ef
:Hier werden alle laufenden Prozesse aufgelistet. Geben Sie
man ps
im Terminal ausgeben für mehr.grep processname
Diese Liste von Prozessen wird also in grep eingespeist, das nur nach dem durch definierten Programm sucht
programname
.Beispiel
Das Eingeben
sudo ps -ef | grep firefox
meines Terminals gibt Folgendes zurück:quelle
-v grep
funktioniert ..grep -v
verwendet wird. Die letzte Zeile herausfiltern.grep -v
filtert OUT-Zeilen mit Pattern.Ich werde versuchen, dies mit einer einfachen praktischen Antwort zu beantworten:
Mit der Pfeife
|
kannst du tolle Sachen in der Muschel machen! Es ist der einzige Operator, den ich für den nützlichsten und mächtigsten halte.Wie wäre es mit dem Zählen von Dateien in einem Verzeichnis? einfach:
ls | wc -l
..redirect die Ausgabe des Parametersls
towc
wit-l
für Zeilenoder Zählen von Zeilen in einer Datei?
was ist, wenn ich etwas suchen will? 'grep' kann nach Vorkommen von Strings suchen:
Sie leiten einfach die Ausgabe des Befehls links von der Pipe auf den Befehl rechts von der Pipe um.
eine weitere Ebene: Wie oft kommt etwas in einer Datei vor?
Sie können das | verwenden für fast alles :)
quelle
grep -c "aRandomStringYouWantToSearchFor" "someFile"
;-)kill $(ps aux | awk '/someString/ { print $2}' | sed -n '1p')
nein, denn es würde überhaupt nicht dem Zweck dienen.Andere Antworten haben Ihre Hauptfrage bereits beantwortet, aber ich möchte auch darauf eingehen.
Im Allgemeinen Tötung ist ein Prozess oft zuviel des Guten und Blätter von einem Prozess zugewiesenen Ressourcen um in einem chaotischen Zustand, können Sie oft nur beenden es;
Verwenden Sie außerdem nur
pkill
, um einen Prozess abzubrechen / zu beenden.pkill
unterstützt die Angabe eines genauen Prozessnamens oder eines regulären Ausdrucks:quelle
kill -9
Sie diese Option nur, wenn Sie genau wissen, dass kein anderes Signal funktioniert. Siehe auch iki.fi/era/unix/award.html#killkill
tut. Das Angeben-9
ist eine zusätzliche und häufig katastrophale zusätzliche Option.kill
schlicht und einfach bedeutet. Abgesehen von jeglicher Terminologie sollte Ihre Antwort den Leuten nicht raten, diese-9
Option zu verwenden, es sei denn, Sie haben eine fleischige Einschränkung eingeführt.