
私は Linux サーバーをいくつか持っていますが、それぞれ異なるサービスを実行しています。 を実行するとservice --status-all
、出力が数画面表示されます。これを にパイプして、開始されているサービス、開始されていないサービス、または不明なサービスをグループとして確認するのが賢明だと思いましsort
た。 コマンドを実行しましたが、[ ? ]
上部のエントリのみがソートされ、 および[ - ]
の[ + ]
エントリはすべて 1 つの混乱した状態にまとまってしまいました。
私が使用したコマンドは ですservice --status-all | sort
。プラス記号とマイナス記号も並べ替えるより良い方法はありますか?
これはDebianボックス上でコマンドラインのみを実行する場合です
答え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