La mayoría de los shells de inicio de sesión por conteo en un sistema recién instalado no son interactivos, en realidad:
$ 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
Claramente /bin/bashy /bin/shson conchas tradicionales y son interactivas. Pero todos los demás elementos de esa lista no son interactivos. Si está leyendo la lista y no sabe qué hace uno de ellos, puede buscar su página de manual (con, por ejemplo, man nologino man sync).
Lo que hace realmente el comando
Al mirar el historial de publicaciones del Capitán Man, veo que son bastante inexpertos con Unix. Entonces, tal vez la pregunta en el comentario sobre no seguir relacionada con la línea de comando en la parte superior de la respuesta, no simplemente la salida. Así que también explicaré la línea de comandos, a pesar de que está realmente fuera de tema para esta pregunta.
El comando es una tubería de Unix . Una canalización es una cadena de comandos, lo lee de izquierda a derecha, en la que la salida del primer comando se convierte en la entrada del segundo, la salida del segundo se convierte en la entrada del tercero, y así sucesivamente, hasta que el Fin de la tubería. La salida del último proceso se muestra en el terminal (a menos que se haya redirigido). Consulte la entrada de Wikipedia sobre tuberías de shell para obtener más información.
Si no comprende lo que está haciendo una tubería, simplemente puede ejecutarla en segmentos para ver qué está sucediendo. También puede leer la página del manual de los comandos que se están utilizando (aquí awk, sorty uniq). De hecho, deberías hacer eso ahora. Esperaré.
Vamos a ejecutar las etapas de la tubería de forma incremental (puede hacerlo de manera segura en su propio 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 ... ]
El resultado anterior es simplemente el contenido del séptimo campo del /etc/passwdarchivo. Esa es la base de datos (archivo de texto plano) que le dice al sistema cuál es el shell de inicio de sesión de todos. Si desea obtener más información, /etc/passwdsimplemente léalo (es legible en todo el mundo) y mire la página del manual (man 5 passwd).
Entonces, al leer la lista completa, puede hacerse una idea de cuáles son los artículos populares, pero ese no es un buen formato para responder a esta pregunta, porque la pregunta era realmente sobre cuán comunes son los shells no interactivos. Vamos a contarlos. La forma más sencilla de hacerlo es ordenar primero los elementos:
~$ 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 ... ]
Podemos usar el programa uniqpara mostrarnos solo los elementos únicos:
~ $ awk -F: '{print $ 7}' </ etc / passwd | ordenar | uniq | sed -e 's / ^ / /' / bin / bash / bin / false / bin / sh / bin / sync / usr / sbin / nologin
Pero espera, no sirve de nada, ¿cuántos de cada uno estaban allí? Preguntemos uniq(¡lea la página del manual!):
~$ 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
Esa es la salida que vimos en la parte superior de la respuesta, por supuesto. Vamos a ordenarlo nuevamente para ver las entradas en orden:
~$ 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
Espera, eso no puede ser correcto, 17 viene antes de 1 y 5 después de 23. El problema es que los artículos se ordenan lexicográficamente . Pidamos sortordenarlos numéricamente y en orden 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
Creo que eso explica todo en la respuesta original. Si aún no está claro sobre los detalles de lo que hacen esos comandos, puede leer las páginas del manual. Si aún no tiene claros los principios de lo que está sucediendo, podría ser mejor comenzar leyendo un libro (en línea o en papel) que explique Unix y Linux.
telnet towel.blinkenlights.nlpara un shell de inicio de sesión que no es interactivo ;-)