TSET(1)

명칭
tset, reset - 단말을 초기화한다

서식
tset [-IQrSs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal] reset [-IQrSs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]

해설
tset 유틸리티는, 단말을 초기화합니다. 우선 최초로 본유틸리티는 사용중의 단말 타입을 판별합니다. 판별 방법은, 이하의 값을 차례로 조사해 최초로 발견된 단말 타입을 이용한다고 하는 방법입니다.

•   명령행상에서 지정했다 terminal 인수
•   환경 변수 TERM 의 값
•   이용중의 표준 에러 출력 디바이스에 대응하는, /etc/ttys 안의 엔트리로 정의하고 있는 단말 타입
•   디폴트의 단말 타입인 ``unknown''

단말 타입이 명령행으로 지정되지 않을 때는, -m 옵션의 매핑은 그 후에 적용됩니다 (자세한 것은 아래를 참조). 그 후, 만약 단말 타입의 전에 ``? '' 하지만 붙어 있었다면, 단말 타입의 확인용의 prompt가 나옵니다. 공행을 주면(자) 그 단말 타입이 됩니다만, 다른 새로운 단말 타입을 입력하는 일도 가능합니다. 일단 단말 타입이 결정되면, 그 단말용의 termcap 엔트리가 검색됩니다. termcap 엔트리가 발견되지 않는 경우는, 한번 더 prompt가 나옵니다.

일단 termcap 엔트리가 발견되면, (그 밖에도 많이 있는 가운데) 화면 사이즈, 백 스페이스, 인터럽트, 행 소거의 캐릭터가 세트 되어 단말의 초기화 및 탭의 초기화의 캐릭터 라인이 표준 에러 출력에 보내집니다. 마지막으로, 만약, 소거, 인터럽트, 행 삭제의 캐릭터가 변경된다, 혹은 그 기본값이 미설정이면, 그 값이 표준 에러 출력에 표시됩니다.

tset 하지만 reset (으)로서 기동되었을 때는, 위에서 말한 단말 초기화가 행 줄 전에, 단말을 cooked 모드, echo 모드에 세트 해, cbreak 모드, raw 모드를 오프로 해, newline 변환을 유효하게 해, 미설정의 특수 캐릭터를 기본값로 리셋트 합니다. 이것은, 프로그램이 단말을 비정상인 상태로 한 채로 죽었을 때에 유용합니다. 단말이 비정상인 상태에 있을 때는 왕복대 리턴이 일하지 않는 것이 있으므로, 단말을 정상적으로 되돌리기 위해서(때문에)는 “<LF>reset<LF>” (라인 피드 캐릭터는 통상 컨트롤-J 입니다) (와)과 타이프 치지 않으면 안 될지도 모른다고 하는 것에 주의해 주세요. 또, 단말이 명령의 에코를 행하지 않게 되어 있을지도 알려지지 않습니다.

옵션은 이하의 것이 있습니다:

-   단말 타입이 표준 출력에 표시됩니다. 단말은 초기화되지 않습니다.

-e  erase 캐릭터를 ch (으)로 합니다.

-I  단말 초기화 캐릭터 라인 혹은 탭 초기화 캐릭터 라인을 단말에 보내지 않습니다.

-i  인터럽트 캐릭터를 ch (으)로 합니다.

-k  행 삭제의 캐릭터를 ch (으)로 합니다.

-m  포트 타입으로부터 단말에의 매핑을 지정합니다. 자세한 것은 아래를 참조해 주세요.

-Q  소거, 인터럽트, 행 삭제의 값을 표시하지 않습니다.

-r  단말 타입을 표준 에러 출력에 표시합니다.

-S  단말 타입과 termcap 엔트리를 표준 출력에 표시합니다. 환경 설정에 대한 자세한 것은 이하의 섹션을 참조해 주세요.

-s  환경 변수 TERM (와)과 TERMCAP (을)를 초기화하는 shell 명령열을 표준 출력에 씁니다. 환경 변수의 설정에 대한 자세한 것은 이하의 섹션을 참조해 주세요.

-e, -i, -k 옵션의 인수는, 실제의 캐릭터를 쓰는지, 혹은 “하트 기호” (을)를 사용해 (즉 컨트롤-h 라면 “^H” 혹은 “^h” ) 기술해 주세요.

환경 설정
자주, 단말 타입과 단말의 능력에 대한 정보를 shell 의 환경 변수로 설정한다 필요가 나옵니다. 이것은 -S (와)과 -s 의 옵션으로 행합니다. -S 옵션이 지정되었을 때, 단말 타입과 termcap 엔트리가 표준 출력에 표시됩니다. 이 출력은 스페이스에서 단락지어지고 있어 마지막에 개행이 다하지 않습니다. 또, 이 출력은 csh, ksh (이)나 그 외의 shell 의 배열에 대입할 수 있습니다.

-s 옵션이 지정되었을 경우는 shell 의 환경 변수를 설정하기 위한 명령이 표준 출력에 쓰여집니다. 이 커멘드는, 환경 변수 SHELL 의 설정치가 ``csh''로 끝나고 있으면 csh 용무의, 그 이외는 sh 용무의 것이 됩니다. csh 용무의 명령의 경우는 “noglob” 셸 변수의 set 와 unset 가 행해져 unset 한 채로 있는 것에 주의해 주세요. 이하의 행을 .login (이)나 .profile 에 기술하면 환경 변수를 올바르게 초기화할 수 있습니다:

    eval `tset -s options ... `

-S 옵션의 사용법을 간단하게 설명하면(자), .login 에 이하와 같은 기술을 하면(자) 위와 같은 효과를 얻을 수 있습니다:

    set noglob
    set term=(`tset -S options ...`)
    setenv TERM $term[1]
    setenv TERMCAP "$term[2]"
    unset term
    unset noglob

단말 타입에의 매핑
단말이 시스템에 짜넣어지지 않은 경우 (혹은 현재의 시스 템 정보가 올바르지 않은 경우) /etc/ttys 파일혹은 TERM 환경 변수로부터 얻은 단말 타입은 “network”, “dialup”, “unknown” (와)과 같은 generic 가 되는 일이 있습니다. tset 하지만 스타트 업 스크립트 ( sh(1) (을)를 사용하는 경우는 .profile , csh(1) (을)를 사용하는 경우는 .login )(으)로 사용되는 경우는, 자주, 그러한 포트로 사용되는 단말의 타입 의 정보를 제공할 필요가 있습니다. -m 옵션의 목적은, 단말 타입 상태 리스트로부터 “map” 하는 것, 즉 tset 에 ``만약 이 포트가 있는 특정의 스피드이다면, 어떤 종류의 단말인 것을 추정해 주세요''라고 하는 정보를 전하는 것입니다.

-m 옵션의 인수는, 포트 타입, 오퍼레이터, baud rate, 코론(``:'') (와)과 단말 타입으로부터 됩니다. 포트 타입은 (오퍼레이터혹은 코론 캐릭터에 의해 단락지어진) 캐릭터 라인으로 나타내 “>”, “<”, “@”, “!” 의 편성이 됩니다. “>” (은)는 「보다 크다」를 의미해, “<” (은)는 「보다 작다」를 의미해, “@” (은)는 「동일하다」를 의미해, 그리고 “!” (은)는 「test 의 평가 결과의 반대」를 의미합니다. baud rate는 수치로서 나타내져 (컨트롤 단말이다 나무) 표준 에러 출력의 스피드로 비교됩니다. 단말 타입은 캐릭터 라인입니다.

만약 단말 타입이 명령행으로 나타나지 않으면, -m 매핑이 단말 타입에 적용됩니다. 만약 포트 타입과 baud rate가 매핑과 일치하면(자), 매핑으로 나타난 구석 끝타입으로 경향 타입을 옮겨놓습니다. 만약, 하나 이상의 매핑이 시야 경우에는, 최초로 적합한 매핑을 사용합니다.

예를 들면, “dialup>9600:vt100” 그렇다고 하는 매핑을 생각합니다. 포트 타입은 “dialup” , 오퍼레이터는 “>” , baud rate는 “9600” , 그리고 단말 타입은 “vt100” 입니다. 이 매핑의 결과, 터미널 타입이 “dialup” 그리고, baud rate가 9600 보보다 크면, 단말 타입 “vt100” 하지만 사용됩니다.

포트 타입이 없는 경우는, 단말 타입은 임의의 포토 타입에 일치합니다. 예를 들면, “-m dialup:vt100 -m :? xterm” 그럼, 임의의 다이얼 업 포트에 대해, baud rate를 무시해 터미널 타입을 “vt100” 에 일치시킵니다. 그리고, 다이얼 업 이외의 포트를 터미널 타입 “? xterm” 에 일치시킵니다. ? xterm 는 의문 부호가 선두를 뒤따르고 있으므로, 실제로 xterm 터미널을 사용하고 있는지 어떤지에 임해서 디폴트 포트로 확인이 요구되고 일로 주의해 주세요.

-m 옵션에서의 인수에 공백은 용서되지 않습니다. 메타캐라크타의 문제를 피하기 위해서(때문에), -m 옵션의 인수 전체는 싱글 컨테이션으로 둘러싸는 것, 그리고 csh (을)를 사용하고 있는 경우는, 모든 이크스크라메이션마크 (``! '')의 전에 backslash (``\'')를 넣는 것을 추천 합니다.

환경 변수
tset 명령은, 환경 변수 SHELL 및 TERM (을)를 이용합니다.

관련 파일
/etc/ttys
    시스템 포트명으로부터 단말 타입에의 매핑을 기술한 데이타베이스
/usr/share/misc/termcap
    termcap 데이타베이스

관련 항목
csh(1), sh(1), stty(1), tty(4), termcap(5), ttys(5), environ(7)

역사
tset 하 3.0BSD (으)로부터 나타났습니다.

호환성
-A, -E, -h, -u, -v 옵션은 tset 유틸리티로부터 삭제되었습니다. 이것들은 4.3BSD 의 문서에는 없고, 한정된 용도 밖에 없습니다. -a, -d, -p 옵션도 같이 문서에 없는가 유용하지는 않습니다만, 넓게 사용되므로 남아 있습니다. 이것들 3개의 오프쇼 대신에, -m 옵션을 사용하는 것이 강하고 추천 되고 있습니다. -n 옵션은 남아 있습니다만, 무효입니다. -e, -i, -k 옵션은 인수없이 사용하는 것이 아직 용서되고 있습니다만, 이러한 사용법은, 캐릭터를 명시적으로 지정하도록(듯이) 수정되는 것이 강하고 추천 되고 있습니다.

reset (으)로서 tset (을)를 실행하는 경우에는, -Q 옵션은 사용하지 않습니다. tset 의 몇개의 역사적인 실장상에서의 - 옵션과 인수 terminal 의 사이의 간섭은 배제되고 있습니다.

마지막으로, tset 의 실장은 ( p1003.1-88 에 따르는 시스템에의 추가의 일부로서 ) 완전하게 다시 해졌습니다. 이미 낡은 단말 인터페이스의 시스템상으로는 컴파일은 되지 않을 것입니다.