UNIX-kommandon är indelade i interna (inbyggda) och externa kommandon av flera viktiga skäl relaterade till effektivitet, säkerhet och systemdesign:
* Effektivitet: Interna kommandon är en del av själva skalet (t.ex. `bash`,` zsh`). De sammanställs direkt i skalets körbara, vilket innebär att skalet inte behöver spendera tid på att söka filsystemet efter deras plats. Detta gör deras körning betydligt snabbare än externa kommandon. Enkla kommandon som `CD`,` pwd`, `echo` och` exit` är perfekta kandidater för denna optimering.
* Säkerhet: Interna kommandon kan kontrolleras tätare av skalet. Detta möjliggör bättre säkerhetskontroller och förhindrar vissa skadliga aktiviteter. Externa kommandon måste däremot vara belägna och genomförda, införa en potentiell sårbarhet om ett skadligt program är förklädt som ett legitimt kommando.
* Flexibilitet och underhåll: Separationen möjliggör modularitet. Externa kommandon är separata körbara filer som är bosatta i kataloger som anges av skalets "Path" -miljövariabel. Detta möjliggör enklare uppdateringar, tillägg av nya kommandon och borttagning av föråldrade kommandon utan att komponera hela skalet. Du kan enkelt lägga till ny funktionalitet genom att helt enkelt installera nya körbara filer.
* Resurshantering: Interna kommandon har i allmänhet lägre omkostnader eftersom de inte kräver separat processskapande för körning. Externa kommandon skapar å andra sidan en ny process, vilket leder till ökad resursförbrukning (minne och CPU -tid). Denna skillnad märks särskilt när man hanterar ett stort antal kommandon.
* Namnutrymmehantering: Interna kommandon har ett dedikerat namnområde i skalet. Externa kommandon har sitt eget namnområde och kan behöva noggrann hantering för att undvika konflikter. Divisionen säkerställer bättre namnutrymme -kontroll och minskar potentiella namnkollisioner.
Kort sagt, divisionen ger en balans mellan hastighet, säkerhet, flexibilitet och resurshantering. Interna kommandon hanterar ofta, enkla uppgifter effektivt, medan externa kommandon ger omfattande funktionalitet och underhållbarhet.