MOTD에서 색상을 사용하는 방법은 무엇입니까?

MOTD에서 색상을 사용하는 방법은 무엇입니까?

편집했습니다기본값/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손으로 쓴 실제 문자임을 나타내는 표시여야 합니다.

관련 정보