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