systemctlの制御文字の印刷を中止しますか?

systemctlの制御文字の印刷を中止しますか?

Systemdは、コントロールコードを使用してステータス行の前にポイントを挿入するのが好きです。

$ systemctl status sshd
● sshd.service - OpenSSH server daemon

vis(20個のスペースの前にe2 97 8fがあります):

$ systemctl status sshd | od -tx1 | head -1
0000000 e2 97 8f 20 73 73 68 64 2e 73 65 72 76 69 63 65

これを防ぎ、systemdがASCII文字セットのみを使用するようにするにはどうすればよいですか?

TERM = dumb、LANG = C、およびSYSTEMD_COLORS = falseを使用すると、点の色が変わります。

systemctl | strings

ハッカーのような感じ。

答え1

これは制御文字自体ではなく、単にクールなUnicode文字の外観です(U+25CF 黒丸)。使用される場合は、systemctlロケールによって異なります。 Unicode ロケールがないと言うと、ASCII アスタリスクが表示されます。

$ LC_CTYPE=C systemctl status sshd
* ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since...

または、LC_ALL=Cより重いハンマーを使用してください。

答え2

明らかに次の組み合わせがあります。

$ LANG=C SYSTEMD_COLORS=false systemctl status sshd
* sshd.service - OpenSSH server daemon

正しいことをしてください。

答え3

ロケール(LC_CTYPELC_ALL)の変更を適用できませんでしたが、次のようにしました。

export PAGER=cat
systemctl status myservice

関連情報