
Tengo algunos servidores Linux, todos ejecutando servicios diferentes. Cuando ejecuto service --status-all
, aparece un par de pantallas de resultados. Pensé que sería inteligente y canalizarlo a sort
, y ver en grupo qué servicios se inician, no se inician o se desconocen. Ejecuté el comando, pero solo ordenó las [ ? ]
entradas en la parte superior, ¡y todas las entradas [ - ]
y [ + ]
están agrupadas en un solo lío!
El comando que utilicé fue service --status-all | sort
. ¿Existe una mejor manera de ordenar también los signos más y menos?
Esto es específicamente en una caja Debian, ejecutando solo la línea de comando
Respuesta1
Parece que service --status-all
escribe los resultados [ + ]
y [ - ]
en stdout pero los [ ? ]
resultados en stderr. Por lo tanto, para usarlos sort
para ordenarlos todos, tendrás que combinar los flujos stdout y stderr de esta manera:
service --status-all 2>&1 | sort
La clasificación se ve afectada por el valor de LC_COLLATE
, que de forma predeterminada es el mismo que su LANG
configuración. Si no desea cambiar el valor de LC_COLLATE
para todas sus aplicaciones pero desea que esta lista esté ordenada por y +
, utilice este comando en su lugar:-
?
service --status-all 2>&1 | LC_COLLATE=C sort
Para configurar LC_COLLATE
todas sus aplicaciones, coloque esto en su ~/.profile
, ~/.bash_profile
o cualquier script que se obtenga para configurar su entorno al iniciar sesión:
export LC_COLLATE=C