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

이는 제어 문자 자체가 아니며 단지 멋진 유니코드 문자 모양(U+25CF 검은색 원). 사용되는 경우 systemctl로케일에 따라 다릅니다. 유니코드 로캘이 없다고 말하면 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_CTYPE, LC_ALL) 변경 사항을 적용할 수 없었지만 다음과 같이 했습니다.

export PAGER=cat
systemctl status myservice

관련 정보