Comment puis-je combiner ces deux commandes ? ps aux | head -n1 ; ps aux | grep vlc
en une seule commande ? J'ai essayé d'utiliser tee
commande ( ps aux | tee >(head -n1) >(grep vlc)
) mais cela n'a pas fonctionné !
Réponses
Trop de publicités?Vous pouvez dire ps
pour n'imprimer que les identifiants de processus de vlc
con -C
.
De man ps
:
-C cmdlist
Select by command name. This selects the processes whose
executable name is given in cmdlist.
Ejemplo:
$ ps u -C vlc
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
sylvain 12586 0.1 0.3 1076848 60908 ? Sl 20:10 0:00 /usr/bin/vlc
Utilisation bash
la substitution de processus et cat
:
cat <(ps aux | head -1) <(ps aux | grep '[v]lc')
Le modèle de substitution de processus <()
remplace la sortie de la commande qu'il contient par un fichier. cat
concaténera simplement les fichiers comme d'habitude.
Exemple :
$ cat <(ps aux | head -1) <(ps aux | grep '[v]lc')
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
chayan 26031 2.3 0.4 1098532 38556 pts/31 Sl 20:45 0:00 vlc
Dites-le simplement ps
pour n'afficher que la sortie de vlc
:
$ ps -P $(pgrep vlc)
PID PSR TTY STAT TIME COMMAND
6728 2 pts/0 Sl 0:00 vlc
pgrep
énumère les PID de tous les processus dont le nom correspond au motif donné. -P
vous permet de lister des informations uniquement pour des PID spécifiques. En combinant les deux, vous obtenez l'option ps
et uniquement les lignes qui vous intéressent.