다음 이전 차례

4. 그외의 색상설정은 어떻게 하는가?

여러분이 터미널의 색상을 또다른 방법으로 기본값을 고치고 싶으시다면 터미널 드라이버 코드를 이해할고 수정할줄 알아야 합니다. 이 방법에대한 표준은 존재하 지 않습니다. 하지만 리눅스의 경우 'setterm'이라는 프로그램이 있어 그일은 않 해도 됩니다. 다음과 같이 색상의 설정을 합니다.

   setterm -foreground black -background white -store
            전경색            배경색
여기서 -store라는 파라미터는 콘솔의 기본적인 설정값을 그래로 이용한다고 set term에게 알리는 것입니다. 그러면 setterm이 알아서 현재의 터미널에게서 충분한 정보를 알아 냅니다.(TERMCAP이라는 환경변수를 참조하는 것입니다). 만약 운이 나쁘다면, 잔인하게 일일이 서술해주어야 겠죠?(export하고 TERMCAP이라는 환경 변수를 보시면 이해가 가실겁니다.:역자주)

4.1 Xterm

다음과 같이 사용합니다.

xterm -fg white -bg blue4 color_xterm -fg white -bg blue4 여기서 'color_xterm'은 컬러 ls를 지원하는 xterm의 버젼입니다.

4.2 가상 콘솔

독자들중에서는 한번쯤 커널을 수정해본 경험이 있는 분도 있을 것입니다. 가상 콘솔이 실행시 기본적으로 ANSI 이스케이프 문자를 지원하는 것은 물론이지만, 저 는 독자가 한번쯤 커널 컴파일을 해보신분이라면 커널수정을 강력하게(실력 향상? )권합니다.

   /usr/src/linux/drivers/char/console.c의 약 1800줄의 내용입니다. 이부분을 수
   정하셔야 합니다.
                def_color      = 0x07;      /* white */
                ulcolor        = 0x0f;      /* bold white*/
                halfcolor      = 0x08;      /* grey */
   를 이런식으로 고처보세요.
                def_color      = 0x17;      /* white */
                ulcolor        = 0x1f;      /* bold white 7+8*/
                halfcolor      = 0x18;      /* grey */
   
   이 16진수는 비디오 카드가 이용하는 속성 코드입니다. 첫번째 필드("1"자가 있는
   자리수)는 배경색이고 그뒤의 필드는 전경색입니다. 색상번호는  
                검정색  0       청  색  1       녹  색 2
                청록색  3       붉은색  4       자주색 5
                갈색/노란색  6                  힌  색 7
입니다. 이 값에다 8을 더하면 밝은 색이 됩니다. 유의할점은 배경색에 8을 더하 면 깜빡이는 글자가 되거나, 흐린색의 배경색이 됩니다. ( sjlam1@mda023.cc.monash.edu.au 씨로 부터).

이제 독자의 가상콘솔은 새로운 기본색상을 사용하게 될것입니다. 디스플래이마 다 비표준 안시를 기본으로 해서 말입니다.(커널 소스에서 찾아보세요.) ESC [ 8 ] 이 안시문자를 쓰면 현재의 전경-배경색을 기본값으로 지정하게 됩니다. ESC문자 로 속성을 변환한후에 사용하면 현재의 힌색/검은색의 색상대신 사용하게 그 색상 을 사용하게 됩니다. 부팅할때나오는 매세지에 이문자들을 이용하면 멋있겠죠?

/etc/issue

부팅시후 사용자명과 비밀번호를 입력받을 때 상단 "Welcome to Linux xx.yy"라 는 문구를 보신적이 있을 겁니다. 바로 이파일의 내용을 출력하는 것입니다. /etc/rc.d/rc.S 라는 스크립트가 부팅시 이파일을 생성하게 됩니다. 그러니까 이 파일을 수정해야 합니다. 약 75줄 정도에 이러한 내용이 있을 겁니다.

echo ""> /etc/issue #/etc/issue 파일 내용을 지우는 것입니다. echo Welocome to Linux '/bin/uname -a | /bin/cut -d\ -f3'. >> /etc/issue # -----------------> 이문장과 커널 버전을 합처서 issue에 넣습니다.

이 것을 이런식으로 고침니다. ESCAPE="" echo "${ESCAPE}[H${ESCAPE}[37;44m${ESCAPE}[8]${ESCAPE}[2J"> /etc/issue 이렇게 고치셨다면 재부팅 하세요. 그려면 기본터미널 색상을 (백/청으로)지정한 후 화면을 지워서 화면전채의 색상이 봐뀔 것입니다. "^["를 입력할때 어떻게 해 야 하는지 아시겠죠? 유의하세요.

/etc/profile 이나 .profile의 예

역자 주: 참고로 /etc/profile 이나 .profile은 bash,tcsh등의 쉘이 기동될때 사 용하는 배치파일입니다.

if ( "$TERM" == "console" ) then echo "[8]" #이렇게 하거나 아래와 같이 하세요. setterm -foreground white -background blue -store endif

4.3 원격 접속시

위에서 본바와 같이 setterm 을 이용할줄 알아야 합니다. 원격 접속시 원격머신 은 독자의 터미널에 충분한 정보를 요구할 것입니다. 그리고 그 터미널 에뮬레이 터는 컬러 로긴(접속)을 지원할게 될것입니다. 만약 이것에대한 성공적인 사례를 접하게 되면 저의 알려 주시면 감사하겠습니다


다음 이전 차례