저는 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