Solution 1 :
ps -ef | egrep "GMC|PID"
Remplacez le "GMC" et ps
commutateurs selon les besoins.
Exemple de sortie :
[email protected]:~$ ps -ef | egrep "disk|PID"
UID PID PPID C STIME TTY TIME CMD
paremh1 12501 12466 0 18:31 pts/1 00:00:00 egrep disk|PID
root 14936 1 0 Apr26 ? 00:02:11 /usr/lib/udisks/udisks-daemon
root 14937 14936 0 Apr26 ? 00:00:03 udisks-daemon: not polling any devices
Solution 2 :
Grâce à geekosaur, j'aimerais utiliser cette commande pour vos demandes, plutôt qu'une commande séparée :
ps -ef | head -1; ps -ef | grep "your-pattern-goes-here"
Le plus délicat est d'utiliser le ";" pris en charge par le shell pour enchaîner la commande.
Solution 3 :
La deuxième colonne est l'identifiant du processus ; 4ème est le moment où le processus a été créé (c'est généralement l'heure à laquelle votre programme a démarré, mais pas toujours ; considérez execve()
et amis); 6ème est la quantité de temps CPU consommée. Il a donc fonctionné pendant 8 jours et utilisé près de 7 jours de temps CPU, ce que je considérerais comme inquiétant.
Obtenir l'en-tête dans la même invocation est au mieux délicat; Je ferais juste un ps | head -1
séparé . Vous pourriez envisager d'utiliser ps
les propres méthodes de sélection de ou quelque chose comme pgrep
au lieu de grep
, qui n'est pas vraiment conçu pour transmettre les en-têtes.
Solution 4 :
La solution egrep est simple et utile, mais bien sûr, vous dépendez de l'en-tête contenant toujours 'PID' (une hypothèse plus que raisonnable, cependant) et de la même chaîne qui ne se produit pas ailleurs. Je suppose que c'est suffisant pour vos besoins, mais au cas où quelqu'un voudrait une alternative, il y a sed.
Sed vous permet simplement de dire "imprimer la première ligne, puis toute ligne contenant le motif". Par exemple :
ps auxwww | sed -n '1p; /PROCESS_NAME_TO_SEARCH/p;'
Ajouter /sed -n/d;
pour se filtrer :
ps auxwww | sed -n '1p; /sed -n/d; /PROCESS_NAME_TO_SEARCH/p;'
Solution 5 :
alternative plus simple :ps -ef | { head -1; grep GMC; }
remplacez le nombre par le nombre de lignes sur lesquelles votre en-tête est affiché.