Linux의 정렬 서비스

Linux의 정렬 서비스

저는 Linux 서버가 몇 대 있고 모두 서로 다른 서비스를 실행하고 있습니다. 을 실행하면 service --status-all몇 개의 출력 화면이 표시됩니다. 나는 현명하게 파이프를 연결하여 sort어떤 서비스가 시작되었는지, 시작되지 않았는지 또는 알 수 없는지 그룹으로 볼 수 있다고 생각했습니다. 명령을 실행했는데 [ ? ]맨 위에 있는 항목 만 정렬되고 [ - ][ + ]항목이 모두 한데 뭉쳐서 엉망이 되었습니다!

내가 사용한 명령은 service --status-all | sort. 더하기 및 빼기 기호도 정렬하는 더 좋은 방법이 있습니까?

이것은 특히 명령줄만 실행하는 데비안 상자에 있습니다.

답변1

및 결과는 stdout에 service --status-all기록되지만 결과는 stderr에 기록되는 것으로 보입니다 . 따라서 모든 항목을 정렬하는 데 사용하려면 다음과 같이 stdout 및 stderr 스트림을 결합해야 합니다.[ + ][ - ][ ? ]sort

service --status-all 2>&1 | sort

LC_COLLATE정렬은 기본적으로 설정과 동일한 값의 영향을 받습니다 LANG. LC_COLLATE모든 애플리케이션의 값을 변경하고 싶지 않지만 이 목록을 +, -및 으로 정렬하려면 ?대신 다음 명령을 사용하십시오.

service --status-all 2>&1 | LC_COLLATE=C sort

LC_COLLATE모든 애플리케이션에 대해 설정하려면 로그인 시 환경을 설정하기 위해 소스가 있는 스크립트 에 ~/.profile다음 을 입력하세요.~/.bash_profile

export LC_COLLATE=C

관련 정보