Que signifie le |
symbole dans la sudo ps -ef | grep processname
commande?
Quelqu'un peut-il également expliquer cette commande? J'ai utilisé cette commande uniquement pour obtenir le PID et tuer ce processus, mais j'ai également vu sudo ps -ef | grep processname | grep -v grep
et j'ai l'impression que -v grep
c'est comme tuer le PID généré précédemment pour grep
. Si c'est le cas, comment ça marche?
command-line
bash
process
Aamir
la source
la source
sudo
de courirps -ef
. Une astuce courante pour éviter la troisième commande consiste à placer un caractère du nom du processus entre crochets:ps -ef | grep [p]rocessname
ps -ef | grep '[p]rocessname'
grep [p]rocessname
, vous dites au shell de rechercher un fichier dans le répertoire courant avec le nomprocessname
et de remplacer le modèle par le nom de ce fichier. Si aucun fichier nomméprocessname
n'existe, le shell peut passer le modèle littéralement à grep. Mais cela dépend de vos paramètres. Donc , votre version cassera si un fichier nomméprocessname
existe ou si l' une des options suivantes shell a été activéfailglob
,nullglob
,nocaseglob
.Réponses:
Il s'exécute d'abord
sudo ps -ef
et transmet la sortie à la deuxième commande.La deuxième commande filtre toutes les lignes qui contiennent le mot "processname".
ps -ef | grep processname | grep -v grep
liste toutes les lignes contenantprocessname
et ne contenant pasgrep
.Selon
man grep
Selon
man ps
Vous pouvez combiner les paramètres
-ef
signifie la même chose que-e -f
.En fait,
ps -ef | grep processname
répertoriez toutes les occurrences du processus appeléprocessname
.la source
ps -ef
fait exactement ??| grep processName
dans le terminal, nous obtenons également la sortie de grep qui est lui-même un processus, donc -v tue cette sortieÇa s'appelle
pipe
. Il donne la sortie de la première commande comme entrée à la deuxième commande.Dans votre cas, cela signifie:
Le résultat de
sudo ps -ef
est alimenté en entrée degrep processname
sudo ps -ef
:Liste tous les processus en cours d'exécution. Tapez
man ps
le terminal pour en savoir plus.grep processname
Ainsi, cette liste de processus est introduite dans grep qui recherche simplement le programme défini par
programname
.Exemple
Taper
sudo ps -ef | grep firefox
mon terminal renvoie:la source
-v grep
fonctionnement ..grep -v
est utilisé. Pour filtrer la dernière ligne.grep -v
filtre les lignes OUT contenant le motif.Je vais essayer de répondre à cette question avec une réponse pratique directe:
La pipe
|
vous permet de faire des trucs géniaux dans la coque! C'est le seul opérateur que je considère comme le plus utile et le plus puissant.que diriez-vous de compter les fichiers dans un répertoire? Facile:
ls | wc -l
..redirige la sortie dels
towc
wit-l
pour les lignesou comptage de lignes dans un fichier?
et si je veux chercher quelque chose? 'grep' peut rechercher des occurrences de chaînes:
vous redirigez simplement la sortie de la commande à gauche du tuyau vers la commande à droite du tuyau.
un niveau de plus: à quelle fréquence quelque chose se produit-il dans un fichier?
vous pouvez utiliser le | pour presque tout :)
la source
grep -c "aRandomStringYouWantToSearchFor" "someFile"
;-)kill $(ps aux | awk '/someString/ { print $2}' | sed -n '1p')
non, car cela ne servirait pas du tout le but.D'autres réponses ont déjà répondu à votre question principale, mais j'aimerais également y répondre;
En général, tuer un processus est souvent exagéré et laisse les ressources allouées par un processus dans un état désordonné, vous pouvez souvent y mettre fin ;
À côté de cela, utilisez simplement
pkill
pour tuer / terminer un processus.pkill
prend en charge la spécification d'un nom de processus exact ou d'une expression régulière:la source
kill -9
moins que vous sachiez spécifiquement qu'aucun autre signal ne fonctionnera. Voir aussi iki.fi/era/unix/award.html#killkill
fait. La spécification-9
est une option supplémentaire supplémentaire et le plus souvent désastreuse.kill
, clair et simple. Indépendamment de la terminologie, votre réponse ne devrait pas conseiller aux gens d'utiliser l'-9
option, sauf si vous mettez une mise en garde charnue.