
편집했습니다기본값/etc/update-motd.d/00-header
, 읽기 쉽도록 색상을 추가합니다.
printf "Welcome to \e[1;34m%s\e[0m \e[2m(%s %s %s)\e[0m\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)"
해당 코드 줄은 터미널에서 문제 없이 실행할 수 있지만 00-header
이 정보를 편집하면 이스케이프 코드가 일반 텍스트로 인쇄됩니다.
Welcome to \e[1;36mUbuntu 13.10\e[0m \e[2m(GNU/Linux 3.11.0-23-generic i686)\e[0m
오늘의 메시지에 어떻게 다채로운 색상을 추가할 수 있나요?
답변1
대시를 사용하여 시스템 스크립트를 실행하는 Ubuntu에 있다고 가정합니다.
해당 파일은 /etc/update-motd.d/00-header
다음에 의해 실행됩니다./bin/dash
, (가 아님 /bin/bash
) 이는 매우 최소한이고 빠릅니다. -
이는 다음을 지원하지 않는 것 같습니다."\이자형"이 곳에서 - 사용"\033"대신에.
이스케이프 코드를 확장하는 시기가 다릅니다.
답변2
Debian/Ubuntu에서는 다음 위치 motd
에 구성됩니다 /etc/pam.d/sshd
.
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
이는 로그인에 성공하면 시스템이 다음과 같이 실행된다는 것을 의미합니다.
cat /run/motd.dynamic
if [[ -f /etc/motd ]]; then cat /etc/motd; fi
/etc/motd
정적 부분은 어디에 있습니까(인쇄만 가능하고 출처는 제공되지 않음).
데비안 9 / 우분투 16.04:
동적 부분을 생성하기 위해 디렉토리 run-parts
에 사용됩니다 ./etc/update-motd.d
/usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin run-parts --lsbsysinit /etc/update-motd.d
약간 더 읽기 쉬운 코드를 위해 tput setaf {color number}
. 색상을 유지하려면 TERM
변수를 설정해야 합니다.
#!/bin/sh
export TERM=xterm-256color
read one five fifteen rest < /proc/loadavg
echo "$(tput setaf 2)
Kernel: `uname -v | awk -v OFS=' ' '{print $4, $5}'`
$(tput setaf 4)Load Averages......: ${one}, ${five}, ${fifteen} (1, 5, 15 min)
$(tput setaf 5)
______________
< Hello World! >
--------------
\\ ^__^
\\ (oo)\\_______
(__)\\ )\\\/\\
||----w |
|| ||
$(tput sgr0)"
예를 들어 파일을 저장하십시오./etc/update-motd.d/10-uname
실행 가능한지 확인하십시오.
chmod +x /etc/update-motd.d/10-uname
기본 색상에는 번호가 매겨져 있습니다.
- 1 – 빨간색
- 2 – 녹색
- 3 – 노란색
- 4 – 파란색
- 5 – 마젠타
- 6 – 청록색
- 7 – 흰색
취향에 따라 lolcat
또는 의 제목을 사용하여 더욱 다채로운 출력을 생성할 수 있습니다 figlet
. 생성된 출력은 표준 bash 구문을 사용합니다.
^[(B^[[m
^[[32m
Kernel: 4.9.65-3+deb9u2 (2018-01-04)
^[[34mLoad Averages......: 0.04, 0.05, 0.05 (1, 5, 15 min)
^[[35m
______________
< Hello World! >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
^[(B^[[m
데비안 8 / 우분투 14.04
동적 부분은 /etc/init.d/motd start
다음을 실행하여 업데이트됩니다.
uname -snrvm > /var/run/motd.dynamic
답변3
<ESC>
색상 코드 앞에 ANSI 이스케이프 문자를 삽입하세요 . Vim을 사용한다면 편집 모드에서 Ctrl+K ESC
또는 를 누르게 됩니다.Ctrl+v+[
^[
그런 다음 원하는 색상 코드를 작성하세요. 예를 들어 전경이 빨간색이라고 가정해 보겠습니다.[31m
^[[31mHello! Glad to see you again^[[0m
시작은 ^[
이스케이프 문자가 있고 [31m
실제 문자가 손으로 입력되었음을 나타내는 표시여야 합니다.