2009년 3월 4일 수요일

6Day Study

6Day Study
[[[[[터미널(terminal)]]]]]

getchar => 터미널의 데이터 받기
printf => 터미널에 데이터 출력

터미널에서 읽고 쓰기 예: 257페이지 참조

!!중요!!
리눅스와 유닉스는 항상 라인 피드를 텍스트의 줄 끝으로 사용함(텍스트와 바이너리 동일처리)(리눅스는 캐리지 리턴은 프린터나 플로터 출력할 때 처리함)
윈도우는 캐리지 리턴(CR 십진수 13, 16진수 0D)과 라인 피드(LF 십진수 10, 16진수 0A)를 쌍으로 사용함

isatty => 저수준 파일 설명자가 터미널과 연결되어 있는지 조사하며 표준 출력이 리디렉트되어있는지 확인(반환값: fd가 터미널에 연결되어 있으면 1, 이외는 0)
#include < unistd.h>
int isatty(int fd);
출력 리디렉션(터미널 연결확인) 예: 260페이지 참조

/dev/tty => 터미널과 대화하기
getchoice => 출력을 좀더 제어하기 위한 매개변수 제어 예: 262페이지 참조

일반 터미널 인터페이스(termios.h)가 제어 할 수 있는 일(입력/출력/제어/로컬/특수제어문자) => 266페이지 참조
줄 편집: 편집을 위해 백스페이스를 허용할지 여부
버퍼링: 문자를 바로 읽을 것인지 혹은 설정 가능한 지연 후 읽을 것인지 선택
에코: 패스워드를 읽을 때와 같이 에코를 제어할 수 있다
CR/LF: 입력과 출력에 대한 매핑(\n을 출력할 때 어떤 일이 일어나는가)을 결정
회선 속도: PC 콘솔에서는 거의 쓰이지 않으나 모뎀과 직력 회선의 터미널에서는 매우 중요

stty => 쉘에서 터미널 모드 액세스 하기(273페이지 참조)
stty -a => termios 전체 설정 보기
stty sane => 줄바꿈 문자에 대한 캐리지 리턴 키의 매핑을 잃어버렸다면, stty sane을 입력하고 엔터키보다 Ctrl+J(줄 바꿈 문자)를 누를 필요가 있다
stty -icanon min 1 time 0 => 쉘 스크립트가 문자 하나를 읽을 수 있도록 모드를 설정
stty -echo => 패스워드를 입력받기 전에 에코를 꺼서 패스워드 검사 과정을 개선
stty echo => 에코 켜기

tcdrain => 모든 대기딘 출력이 전송될 때까지 호출 프로그램을 기다림
tcflow => 출력을 일시 중단하거나 다시 시작함
tcflush => 입력 및 출력 혹은 둘다 플러시하기 위해서 사용
newrsettings => 터미널 특성 설정

termios.h를 통해서 Enter password: 프롬프트에서 에코되지 않고 사용자가 엔터를 누를 때까지 어떠한 출력도 발생하지 않는 예: 277페이지 참조

echo $TERM => 현자 사용중인 터미널 시스템 보기

/usr/lib/terminofo 또는 /usr/share/terminofo => 터미널의 특성들이 저장되는 곳
infocmp vt100 => vt100 터미널의 형식의 항목을 읽기(VT100의 F1 기능키는 Esc+O+P를 전송한다는 표현은 kf1=\EOP, 좀 더 상세한것은 284페이지 참조)

setupterm => 터미널 형식 설정하기
#include < term.h>
int setupterm(char *term, int fd, int *errret);
현재 터미널 사이즈 받아오는 예: 286페이지 참조

종합 터미널 제어 예: 289페이지 참조

kbhit => 키 입력 검출 함수(윈도우로 부터 프로그램을 이식할 때, kbhit를 에뮬레이트하면 편리한 경우가 있음, 비정식 입력 모드 사용하면 된다) 예: 291페이지

who => 로그인한 사용자 보기
ps => 현재 가상 콘솔에서 실행중인 쉘과 프로그램 보기(mingetty는 가상 콘솔에서 사용자의 로그인을 기다리는 데몬)

Ctrl+Alt+F< N> => 가상 콘솔 사이 전환하기(예: Ctrl+Alt+F1), X윈도우 그래픽 tty는 7번
sstartx -- :1 => X윈도우 그래픽 세션 추가(가장 마지막 tty 세션 +1에 생김)

댓글 없음:

댓글 쓰기