티스토리 툴바

   이월드  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
터미널에서 color를 출력할때

유닉스/리눅스 머신에서 터미널에 문자 출력시 Colorful하게

문자를 출력하는법. 물론 외부 라이브러리는 안쓰구여..
피씨통신의 춘추전국시대였던 1990년대 초반에 대화방에서 ansi를
이용하여 현란한 기교를 부려본 경험이 있으신님들은 이미 아시고
계시리라 믿습니다만, 혹시 모르시는 님들을 위해서...

일딴, 아래의 쏘스를 컴팔해서 실행해 보시면 더 이상의 설명이
필요없이 한눈에 알아먹을수가 있으니...성질급한 님들은 바루
시행해 보셔요...
자세한 설명은 소스를 먼저 보구나서 하겠습니다..

========================[color_test.c]========================

#include <stdio.h>

int main(void)
{
int i, j;

printf("\n << Color Code Table >> \n\n");

for(i=40; i <= 47; i++) {
printf("\x1b[0m[%d] ", i);
for(j=30; j <= 37; j++) {
printf("\x1b[%dm\x1b[%dm[%d] ",i ,j ,j);
}
printf("\n");
}

/* 칼라해제 */
printf("\x1b[0m\n");

printf("Example> printf(\"\\x1b[41m\\x1b[33m[BgColor=41, FgColor=33]\\x1b[0m\\n\"); \n");
printf("Result> \x1b[41m\x1b[33m[BgColor=41, FgColor=33]\x1b[0m\n");
printf("\n");
printf("Example> printf(\"\\x1b[44m\\x1b[32m칼라로 나타내고 싶은 메시지\\x1b[0m\\n\"); \n");
printf("Result> \x1b[44m\x1b[32m칼라로 나타내고 싶은 메시지\x1b[0m\n");

printf("\n");

exit(0);
}

===================================================================

실행을 해보셨으면 알겠지만, 칼라 테이블이 쫙~~~ 나옵니다..
여기서 맨 왼쪽의 숫자들은 배경색을 지정할때 사용되고
테이블내의 숫자들은 글자색을 지정할때 사용됩니다.
기본적으루 배경색을 지정하지 않으면 그냥 터미널에 설정된
배경색에 따릅니다..

 

printf()의 따옴표내 출력문자들을 보면 크게 4부분으로 나눌수 있습니다.

\x1b[44m      <---- 배경색 지정(44는 파랑)

\x1b[32m      <---- 글자색 지정(32는 초록)

칼라로 나타내고 싶은 메시지

\x1b[0m        <---- 칼라해제


이렇게 칼라로 찍을때 주의할 점은...마지막에 꼭 색상지정을
해제해야지 안그러면 이후 터미널에 출력되는 모든 문자가 그
칼라값의 영향을 받아서 출력이 됩니다..
해제는 마지막에 "\x1b[0m" 요걸 출력해주면 됩니다.
일딴, 칼라로 출력하는법은 알겠는데... 요걸 어디다 써먹으면
좋을지 궁금하신 분들이 있을것 같은데요...
저는 로그메시지를 찍을때 사용합니다.. 특히 디버깅모드로
로그를 남기도록 해둔 상태에서 몇몇 중요한 값들을 찍을때
칼라로 찍으면 한눈에 알아볼수가 있으니 편합니다..

아참...그리고 위의 칼라 말구도...화면을 컨트롤 할 수 있는
코드가 찾아보면 더 있습니다...가령 문자를 깜박이게 한다든가..
요런건 직접 찾아보세여~~
위 코드를 많이 사용하면 소스가 지저분하게 보이게 되는데요..
그땐 define문을 이용하거나...더 쌈빡하게 하려면 Wrapper함수를
만들어서 사용하시면 소스도 깔끔해 지겠죠?

 

P.S : 단, 시스템 환경변수의 $TERM값에 의해 칼라가 나타나지 않을수 있습니다.

        이럴땐 TERM환경변수의 값을 다른것으로 변경해 보세요.



Java에서 Mysql에 데이터를 넣을때 한글이 깨어지는 경우
Java의 JDBC를 이용하여 MYSQL에 한글 데이터를 넣을때 "??? ???" 와 같이 깨어져서 들어 가는 경우가 있다
이럴때 두가지를 코드에 넣어준다
첫번째

private String driverName = "org.gjt.mm.mysql.Driver";
private String url = "jdbc:mysql://IP:3306/DB_NAME?useUnicode=true&characterEncoding=euc_kr";
private String userName = "User Name";
private String passwd = "Password";

다음과 같이 접속할때 URL뒷쪽에 다음과 같은 charactger encoding set을 설정한다.

Statement stmt = con.createStatement();
stmt.executeUpdate("set names euckr");
stmt.close();

또 한가지는 위와 같은 query를 DB쪽으로 날려 encoding의 동기를 맞추어 준다.



BLOG main image
 Notice
데이터 정보화
 Category
분류 전체보기 (300)
일상적인 생활 (95)
맛집/여행기 (3)
IT관련 (200)
 TAGS
패킷 추출 신규서비스 절약 T로밍 교육 설문조사 도서관 건립 영어공부 패킷분석 랩핏 랩핏체험 기능 비교 가스충천소 서울 주차정보 Code Reading RescueTime 무료도서 토평도서관 토평동 오픈소스 관점 이벤트 레스큐타임 야구소녀 사교육 wireshark 스므고개 랩핏 체험기 TRoaming 지구촌 랩핏 체험 오픈소스 검색엔진 컴퓨터 전력 절약 과학실험 opensource searchengine 랩핏활용 랩핏 개봉샷 환경변화 lpg가격비교 대한민국 사교육에 속고 있다. 과학 장난감
 Calendar
«   2012/01   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
 Recent Entries
터미널에서 color를 출력할때
Java에서 Mysql에 데이터를 넣을때 한글이..
jfreeChart에서 한글이 안될때 난 이렇게..
[렙핏체험] 티타임
[랩핏체험] 랩핏 이렇게 활용하자.
[랩핏체험] 랩핏의 존재가 절실히 와 닿는..
랩핏 체험 - 랩핏 체험 개봉샷,
[펌 자료] - 요즘같은 에너지 시대에 조금..
나에게도 이런날이 있구나~~`
저정도는 해야 "야구좀 하는구나" 하는 소..
 Recent Comments
이 블로그를 지속적..
essay help - 07/11
잘 보겠슴다
montreal flower delivery - 2009
어떻게 변화될지 다..
montreal flower delivery - 2009
노민입니다. 당첨을..
노민 - 2009
토익시험 성공하시길..
noa - 2009
[비밀댓글]
- 2009
스피커가 붙어 있으..
noa - 2008
일이 좀 있어서리..
noa - 2008
나도 1세대 쓰다가..
마루날 - 2008
왜 집에 있나요?
마루날 - 2008
 Recent Trackbacks
buchen zimmer
buchen zimmer
티스토리 댓글창을 D..
모노마토의 주절주절..
밤조림 만들기
효원이네 Happy House
검색 서비스의 성능..
Effortless - 上善若..
검색 서비스의 성능..
Effortless - 上善若..
Smart Data
Just for Fun! - 聞..
Topicle : another S..
Just for Fun! - 聞..
Linked - The New Sc..
복사하고 붙이고 컴..
 Archive
2009/11
2009/06
2009/05
2009/04
2009/03
 Link Site
쩐의시대
마루날-(雜學辭典)
華怡價帽가 하늘을 바라보며
Just for Fun! - 聞香
searchenginewatch.com
시골의사
시골의사 주식투자
Family
소프트웨어 스토리
잡동구리동동
 Visitor Statistics
Total : 14,896
Today : 5
Yesterday : 21
rss