Medan ett kommando körs utför skalet vanligtvis följande:
* väntar: Skalet kommer in i ett "vänta" tillstånd. Den pausar sin egen körning och bearbetar inga andra kommandon från ingången förrän det för närvarande körkommandot slutförs. Detta är standardbeteendet för de flesta kommandon.
* I/O -hantering (om tillämpligt): Skalet kan hantera input och utgångsordning för kommandot. Om kommandot använder `<`, `>`, `>>`, `|` eller andra omdirigeringsoperatörer, ställer skalet upp lämpliga rör och filbeskrivningar innan kommandot startar. Den hanterar flödet av data mellan kommandot och dess ingångar/utgångar.
* Signalhantering: Skalet hanterar signaler (som avbrott, Sigint, skickat av Ctrl+C). Om en signal tas emot medan ett kommando körs kan skalet antingen vidarebefordra signalen till det löpande kommandot eller hantera den själv beroende på dess konfiguration och den specifika signalen.
* Processhantering: Skalet skapar en ny process för kommandot att köra i. Detta skiljer kommandot utförande från skalets, vilket förhindrar att kraschar i kommandot påverkar själva skalet. Skalet hanterar denna barnprocess tills den avslutas.
* Ingen annan kommandobehandling: Den tolkar eller kör inte ytterligare input förrän det för närvarande körkommandot är slut (såvida det inte är en bakgrundsprocess, se nedan).
Bakgrundsprocesser: Undantaget är när ett kommando körs i bakgrunden (med `&`). I det här fallet väntar skalet * inte *. Den skriver ut process -ID (PID) för bakgrundsprocessen och återupptar omedelbart att acceptera och bearbeta nya kommandon från användaren. Men det hanterar fortfarande den bakgrundsprocessen - kontrollerar dess status, hantering av signaler och städning när den avslutas.
Sammanfattningsvis väntar kärnåtgärden. Bakom kulisserna finns det emellertid betydande aktiviteter som involverar I/O, signaler och processhantering för att säkerställa korrekt körning och integration av kommandot i skalets miljö.