Clásicamente, el comando es 'quién' en lugar de 'usuarios', pero 'quién' le brinda más información. Mirando hacia atrás a los artículos originales de Unix (mediados de los 70), el ejemplo habría sido:
who | wc -l
El uso de 'wc -l' cuenta líneas de salida: funciona tanto con 'usuarios' como con 'quién'. El uso de '-w' solo funciona de manera confiable cuando hay una palabra por usuario (como con 'usuarios' pero no con 'quién').
Puede usar 'grep -c' para contar las líneas. Como solo le interesan los nombres de usuario que no están en blanco, puede hacer lo siguiente:
who | grep -c .
Siempre hay al menos un personaje en cada línea.
Como se señaló en los comentarios de John T , el userscomando difiere whoen varios aspectos. La más importante es que, en lugar de dar un nombre por línea, difunde los nombres por línea: no tengo una máquina con suficientes usuarios diferentes conectados para probar qué sucede cuando el número de usuarios aumenta. La otra diferencia es que 'quién' informa sobre las conexiones de terminal en uso. Con múltiples ventanas de terminal abiertas, mostrará varias líneas para un solo usuario, mientras que 'usuarios' parece enumerar un usuario conectado solo una vez.
Como consecuencia de esta diferencia, la grep -c .formulación ' ' no funcionará con el comando 'usuarios'; ' wc -w' es necesario.