För systemadministratörer, ps
är ett ofta använt verktyg. Det används för att lista de processer som för närvarande körs på ditt system med en mängd olika filter- och visningslägen tillgängliga via flaggor och argument.
Syntaxen för ps kan vara subtilt udda. Vi kommer att följa UNIX-konventionen med ett enda streck före en flagga eftersom det är den överlägset mest stödda syntaxen. Det kan dock också köras med BSD-syntax, som tappar prefixstreck och använder en separat flaggnamnssyntax. Till exempel aux
flagga ersätter de vanligaste -ef
flagga. Se till att du vet vilken du använder.
1. Visa alla processer
ps -ef
Visar alla pågående processer med fullständig data om varje process. Dessa data inkluderar kolumner som visar PID, terminal typ (TTY), tidskörning och kommandonamn.
2. Filtrera efter användare
ps -e -u userName
Filtrerar ps-resultat för att endast visa processer som ägs av det angivna användarnamnet. Kan också användas utan prefixet.
3. Filtrera efter processnamn
ps -C name
Filtrerar resultaten efter processnamnet. Sökningen är inte skiftlägeskänslig, men alla processnamn är i alla fall små bokstäver. Söker igenom alla processer utan -e
prefix.
4. Filtrera efter process-ID
ps -ef -p 1234,5678,9012
Om du känner till process-ID för den körande processen du vill visa, kan du filtrera efter det specifikt med -p
flagga. Detta kan ta flera PID som argument, åtskilda av ett enda komma och inget utrymme.
5. Grep inom resultat
ps -ef | grep worker
Om du vill ha mer flexibilitet att söka inom resultaten från ps kan du pipa resultaten till grep. Även om detta är mer en kombination av kommandon än ett rent ps-kommando, är det en vanlig del av administratörens verktygsbälte. Med grep
kan du söka med hjälp av reguljära uttryck för mönstermatchning och mer.
6. Visa specifika kolumner
ps -e -o pid,uname,pcpu,pmem,comm
De -o
flagg anger specifika alternativ för visning av utdata för ps-kommandos resultat. Se en fullständig lista över standardvisningsalternativ för ps.
7. Sortera processer efter användning
ps -e --sort=-pcpu -o pid,pcpu,comm
Sorterar kommandon efter listade kolumner. Minusprefixet (-) sorterar i fallande ordning, medan plusprefixet (+) sorteras i stigande ordning. Detta kommando använder också -o
kommando för att visa specifika kolumner, vilket inte är absolut nödvändigt för sortering.
8. Byt namn på kolumnrubriker
ps -o pid=Process,ruser=RealUser,comm=Command
När du använder -o
kommando för att skapa ett användarspecificerat utseende, kan kolumner döpas om. Lägg till en =
(lika) tecken och önskat namn med hjälp av a -o
flagga för varje namn på rubrik. Rubriker kan också döljas i specifika kolumner genom att lämna ett tomt efter likhetstecknet. Du kan blanda och matcha med kolumner med namnnamn och standardnamn. Var noga med att använda en -o
flagga för varje döpt kolumn som visas nedan:
ps -e -o pid,pcpu=CPU -o pmem=RAM,comm
9. Visa resultat i hierarkisk trädstil
ps -e --forest
Använder ASCII-konst för att skapa en trädstruktur för att visa processer. Visar gaffel- och barnprocesser som ättlingar till lämpliga överordnade processer, sortering för att matcha. Använd för att dölja trädets ”grenar” -H
istället för --forest
.
10. Visa processtrådar
ps -p 4041 -L
De -L
flagg växlar på trådvisning för alla funktioner i ps. Det är mest användbart när du spårar trådarna i en specifik process.
11. Visa alla rotprocesser
ps -f -U root -u root
Utför en sökning efter alla processer som körs med verkliga och effektiva rotidentifieringar. Detta visar dem i fullformat tack vare -f
flagga. Du kan kombinera det med -o
flagga för att anpassa utdata.
Slutsats
Medan UNIX-stilflaggorna passar bättre med andra terminalkommandon kan BSD-kommandona visa information i olika och ibland mer användbara format. Om du är intresserad av att lära dig mer om BSD-stilflaggor, kolla in ps man sida.