La maggior parte delle shell di login in base al conteggio su un sistema appena installato non sono interattive, in realtà:
$ awk -F: '{print $7}' < /etc/passwd | sort | uniq -c
5 /bin/bash
23 /bin/false
1 /bin/sh
1 /bin/sync
17 /usr/sbin/nologin
Chiaramente /bin/bashe /bin/shsono conchiglie tradizionali e sono interattive. Ma tutti gli altri elementi in quell'elenco non sono interattivi. Se stai leggendo l'elenco e non sai cosa fa uno di loro, puoi semplicemente cercare la sua pagina di manuale (con ad esempio man nologino man sync).
Cosa fa effettivamente il comando
Guardando la storia dei post di Captain Man vedo che sono abbastanza inesperti con Unix. Quindi forse la domanda nel commento sul non seguire si riferiva alla riga di comando nella parte superiore della risposta, non semplicemente all'output. Quindi spiegherò anche la riga di comando, anche se è davvero fuori tema per questa domanda.
Il comando è una pipeline Unix . Una pipeline è una catena di comandi - la leggi da sinistra a destra - in cui l'output del primo comando diventa l'input del secondo, l'output del secondo diventa l'input del terzo e così via, fino a quando il fine della pipeline. L'output dell'ultimo processo è mostrato sul terminale (a meno che non sia stato reindirizzato). Vedere la voce di Wikipedia sulle pipeline di shell per ulteriori informazioni.
Se non capisci cosa sta facendo una pipeline, puoi semplicemente eseguirla in segmenti per vedere cosa sta succedendo. È inoltre possibile leggere la pagina di manuale per i comandi utilizzati (qui awk, sorte uniq). In effetti, dovresti farlo ora. Aspetterò.
Eseguiamo le fasi della pipeline in modo incrementale (puoi farlo tranquillamente sul tuo sistema Unix):
~$ awk -F: '{print $7}' < /etc/passwd | sed -e 's/^/ /'
/bin/bash
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/bin/sync
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/usr/sbin/nologin
[ ... and so on, I've left the rest out ... ]
L'output sopra è semplicemente il contenuto del settimo campo dal /etc/passwdfile. Questo è il database (flat-text-file) che dice al sistema quale sia la shell di accesso di tutti. Se vuoi saperne di più /etc/passwdbasta andare a leggerlo (è leggibile in tutto il mondo) e consultare la pagina di manuale per questo (man 5 passwd).
Quindi leggendo l'intero elenco lì puoi avere un'idea di quali sono gli elementi popolari, ma non è un buon formato per una risposta a questa domanda, perché la domanda riguardava davvero le comuni shell non interattive. Contiamoli. Il modo più semplice per farlo è ordinare prima gli oggetti:
~$ awk -F: '{print $7}' < /etc/passwd | sort
/bin/bash
/bin/bash
/bin/bash
/bin/bash
/bin/bash
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
[ ... and so on, I've left the rest out ... ]
Possiamo usare il programma uniqper mostrarci solo gli oggetti unici:
~ $ awk -F: '{print $ 7}' </ etc / passwd | ordina | uniq | sed -e 's / ^ / /' / bin / bash / bin / false / bin / sh / bin / sync / usr / sbin / nologin
Ma aspetta, non serve a niente, quanti ce n'erano? Chiediamo uniq(leggi la pagina man!):
~$ awk -F: '{print $7}' < /etc/passwd | sort | uniq -c
5 /bin/bash
23 /bin/false
1 /bin/sh
1 /bin/sync
17 /usr/sbin/nologin
Questo è l'output che abbiamo visto in cima alla risposta, ovviamente. Ordiniamolo di nuovo per vedere le voci in ordine:
~$ awk -F: '{print $7}' < /etc/passwd | sort | uniq -c | sort
17 /usr/sbin/nologin
1 /bin/sh
1 /bin/sync
23 /bin/false
5 /bin/bash
Aspetta, non può essere giusto, 17 viene prima di 1 e 5 dopo 23. Il problema è che gli articoli vengono ordinati lessicograficamente . Chiediamo sortdi ordinarli numericamente e in ordine inverso:
~$ awk -F: '{print $7}' < /etc/passwd | sort | uniq -c | sort -n -r
23 /bin/false
17 /usr/sbin/nologin
5 /bin/bash
1 /bin/sync
1 /bin/sh
Penso che spieghi tutto nella risposta originale. Se non sei ancora chiaro sui dettagli di ciò che fanno quei comandi, puoi leggere le pagine del manuale. Se non sei ancora chiaro sui principi di ciò che sta succedendo, potrebbe essere meglio iniziare leggendo un libro (online o su carta) che spiega Unix e Linux.
telnet towel.blinkenlights.nlper una shell di login non interattiva ;-)