meno di 1 minuto/i di lettura

TLDR: la shell legge in input un comando che può essere interno o esterno, se interno lo esegue se esterno lo sottomentte al sistema


grossolanamente una shell il funzionamento è descritto dallo pseudo codice seguente ;


   while ( true )
       stampa il prompt;  
       legge una stringa ;

       if ( stringa == "exit" )  chiudi shell 

       if ( stringa è un comando della shell )
          esegui comando 
          continue;

       else 
        // è un comando esterno 
          sottometti al sistema il comando stringa


per conoscere se un comando è interno o esterno si usa il comando type

esempi:

    giovanni@server:~$ type cd 
    cd è un comando interno di shell

    giovanni@server:~$ type rm
    rm è /usr/bin/rm
  

qui il comando type ci comunica che rm non è un comando interno, ma è un programma installato nella directory /usr/bin

    giovanni@server:~$ type type
    type è un comando interno di shell