Je voudrais obtenir le PID de mes processus. Je fais ps aux | cut -d ' ' -f 2
mais je remarque que parfois il obtient le pid et parfois non:
[user@ip ~]$ ps aux
user 2049 0.5 10.4 6059216 1623520 ? Sl date 8:48 process
user 12290 0.3 6.9 5881568 1086244 ? Sl date 2:30
[user@ip ~]$ ps aux | cut -d ' ' -f 2
12290
[user@ip ~]$ ps aux | cut -d ' ' -f 3
2049
notez que la première commande cut
la redirige vers 2
alors que le second le redirige vers 3
. Comment puis-je choisir le PID de ceux-ci sans avoir à savoir quel numéro utiliser (2
ou 3
)?
Quelqu'un peut-il s'il vous plaît me dire la différence entre ceux-ci et pourquoi il ramasse l'un et pas l'autre?
-d ' '
signifie utiliser un seul espace comme délimiteur. Puisqu'il y a 1 espace avant 2049 et 2 espaces avant 12290, votre commande les obtient par -f 2
et -f 3
.
Je recommande d'utiliser ps aux | awk '{print $2}'
pour obtenir ces pids.
Ou vous pouvez utiliser tr
pour compresser ces espaces en premier ps aux | tr -s ' ' | cut -d ' ' -f 2
Vous pouvez utiliser l'option - o pour imprimer uniquement le pid:
ps -u user -o pid