[RHEL6] 터미널 명령어 4탄(reset, tset, screen, script, setsid, setterm)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 터미널 명령어 4탄(reset, tset, screen, script, setsid, setterm)

by 찬찬이 아빠 2020. 3. 26.
반응형
  13. reset, tset(터미널 초기화)

 1) 경로 : /usr/bin/reset, /usr/bin/tset

 2) 요약 : 터미널을 초기화

 3) 사용 방법 : reset [옵션] [터미널]

 4) 옵션

 - : 현재 터미널의 종류를 출력

 -e ch : 터미널의 삭제 문자(ch)를 지정

 -i ch : 지정한 문자(ch)를 인터럽트 문자로 지정

 -k ch : 지정한 문자(ch)를 행을 삭제하는 문자로 지정

 -m mapping : 지정한 값(mapping)을 포트로 지정

 

 5) 추가 설명

reset 명령어는 tset 명령어와 같은 기능으로 터미널을 초기화합니다.

 

이와 비슷한 기능의 clear 명령어는 터미널에서 화면을 깨끗이 지우고 가장 상단의 위치로 이동시킵니다. 참고로 예기치 않은 문제로 터미널에 이상한 문자가 표시되고 더 이상 명령어가 입력되지 않는다면 Ctrl + J clear Ctrl + J 조합 키로 터미널을 초기화 할 수 있습니다.

 

reset 명령어는 tset 명령어의 심볼릭 링크 입니다.

# ls -al /usr/bin/reset
lrwxrwxrwx	1	root	root	26 Mar 2020 /usr/bin/reset -> tset

 

 

 

  14. screen(터미널 애뮬레이터)

 1) 경로 : /usr/bin/screen

 2) 요약 : VT100/ANSI 터미널을 애뮬레이트하는 스크린 매니저

 3) 사용 방법 : screen [옵션] [명령어 [인자]]

                        screen -r [host.tty]

 4) 옵션

 -c file : $HOME/.screenrc 대신 설정 파일(file)을 지정

 -d (-r) : 연결된 세션을 해제(재접속)

 -dmS name : 데몬을 시작

 -D (-r) : 연결을 해제하고 원격에서 로그아웃(재접속)

 -h lines : 히스토리 버퍼의 크기(line)를 지정

 -l(엘): 로그인 모드를 활성화(/var/run/utmp 파일을 업데이트)

 -l(엘)n = off : 로그인 모드 비활성화

 -list : -ls 옵션과 같이 소켓 디렉터리 정보만 출력

 -r : 연결이 해제된 스크린에 다시 접속

 -R : 가능하면 다시 접속하고 그렇지 않으면 새로운 세션으로 접속

 -s shell : $SHELL 대시 지정할 쉘(shell)로 실행

 -S sockname : 세션 이름(sockname)을 지정

 -t title : 윈도우 타이틀(title)을 지정

 -T term : $TERM 환경 변수의 값(term)을 지정

 -U : UTF-8 인코딩을 사용

 -v : 버전 정보 출력

 -X : 세션에 스크린 명령어를 실행

 

 5) 추가 설명

서버에서 접속할 때 보통 여러 개의 터미널로 작업하는 경우가 많습니다. 이때 각각의 터미널을 옮겨 다니면서 작업을 하는 불편함이 있습니다. screen 명령어는 여러 터미널을 띄우는 대신 하나의 터미널에서 다중 쉘 환경을 실행할 수 있습니다. nohup 명령어와 함께 기존의 세션에 다시 접속하여 이전에 했던 작업을 이어서 할 수 있습니다.

 

-S 옵션은 지정한 세션으로 시작할 수 있습니다. -list 옵션은 현재 열려 있는 세션의 목록을 출력합니다.

# screen -S test1
# screen -list
There are screens on:
7253.test1 (2020. 03. 26. 19:03:12) (Attached)
1 Sockets in /var/run/screen/S-user.

 

-S test2는 두 번째 세션인 test2 엽니다.

# screen -S test2
# screen -list
There are screens on:
7285.test2 (2020. 03. 26. 19:04:20) (Attached)
7253.test1 (2020. 03. 26. 19:03:12) (Attached)
2 Sockets in /var/run/screen/S-user.

 

위에서 강제로 터미널을 닫아 봅니다. 이후 새로운 터미널에서 -list 옵션으로 목록을 출력합니다. 각 세션의 상태가 Detached가 되어 있습니다. -r pid.세션이름 옵션으로 이전의 세션에 다시 연결할 수 있습니다.

# screen -list
There are screens on:
7285.test2 (2020. 03. 26. 19:04:20) (Attached)
7253.test1 (2020. 03. 26. 19:03:12) (Attached)
2 Sockets in /var/run/screen/S-user.

# screen -r 7253.test1

 

아래는 screen에서 사용할 수 있는 단축키로 Ctrl + a 를 입력 후 따라오는 값입니다.

설명
1 (0~9)에 해당하는 창으로 이동
a 이전에 실행한 창으로 이동
c 새로운 쉘을 생성하면서 그 쉘로 이동
d 현재 작업 내용을 유지하면서 screen에서 빠져나감
h 현재 창의 내용을 저장
n 다음 창으로 이동
p 이전 창으로 이동
w screen 내의 차ㅇ의 개수를 출력
A 현재 창의 제목을 수정
Esc 복사 모드 전환
: 명령행 모드로 전환
[ 선택한 블록을 버퍼에 저장. 첫 번째 스페이스 바는 블록 지정을 시작하고, 두 번째 스페이스 바는 블록을 종료
] 저장한 버퍼의 내용을 출력
S 창을 나눔
Tab 분할된 또 다른 지역으로 포커스를 이동
' 창 번호 또는 차 이름으로이동
" 창 번호를 출력
Q 현재 포커스된 영역 이외의 분할 영역을 숨김

 

 

 

  15. script(터미널 텍스쳐 저장)

 1) 경로 : /usr/bin/script

 2) 요약 : 터미널에서 발생하는 모든 세션을 저장

 3) 사용 방법 : script [옵션] [파일]

 4) 옵션

 -a : 새롭게 저장하지 않고 이전 파일에 추가

 -f : 출력 화면을 깨끗하게 함. 한 명의 사용자의 작업 내용을 또 다른 사용자가 살펴 볼 때 유용

 -q : 메시지를 출력하지 않음

 

 5) 추가 설명

script 명령어는 터미널에서 진행하는 모든 작업을 파일에 저장합니다. 이 때 실행 중인 script를 종료하려면 exit나 Ctrl + D 이후에 logout을 입력합니다.

# script
Script started, file is typescript
user@rhel:~/commands.dir$ rm -rf pathchk.test.fooooooo
user@rhel:~/commands.dir$ ls
chan	chan2	newuser.test2	typescript
chan4	newuser.test	pathch	.test.fooooooo
user@rhel:~/commands.dir$ exit
exit
Script done, file is typescript

 

자동으로 생성된 typescript 파일을 살펴 봅니다.

 

script 실행 후 exit로 빠져 나오기 전까지의 화면이 파일로 저장되어 있습니다.

$ cat typescript
Script startd on Thu Mar 26 06:46:32 2020

$ rm -rf pathchk.test.fooooooo
$ ls
chan	chan2	newuser.test2	typescript
chan4	newuser.test	pathch	.test.fooooooo
$ exit
exit

Script done on Thu Mar 26 06:47:12 2020

 

-aqf 옵션은 원ㄴ격에서 접속한 사용자의 화면을 저장할 때 유용합니다 chan 사용자의 .bash_profile 파일에 "script -aqf /tmp/script_chan.log"를 추가해 봅니다. 이후 원격 접속 후 작업하는 모든 내용을 /tmp/script_chan.log 파일에서 확인할 수 있습니다.

$ echo "script -aqf /tmp/script_chan.log" >> /home/chan/.bash_profile

 

 

  16. setsid(새로운 세션에서 실행)

 1) 경로 : /usr/bin/setsid

 2) 요약 : 새로운 세션에서 프로그램을 실행

 3) 사용 방법 : setsid 프로그램 [인자...]

 4) 추가 설명

setsid 명령어는 util-linux 패키지의 일부분으로 새로운 세션을 생성하는 경우에 사용합니다. 보통 세션은 자기 자신만의 세션 TTY를 가지고 있습니다. setsid 명령어로 세션을 생성하면 새로운 세션의 TTY가 부여됩니다. 아래 예제에서 setsid 명령의 차이점을 살펴봅시다.

 

아래는 터미널에서 xterm을 실행한 결과입니다. "gnome-terminal"의 자식 프로세스로서 xterm이 생성되었습니다.

# xterm
# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─agetty
        ├─alsactl
        ├─atd
        ├─auditd─┬─audispd─┬─sedispatch
        │        │         └─{audispd}
        │        └─{auditd}
        ├─avahi-daemon───avahi-daemon
        ├─chronyd
        ├─crond
        ├─cupsd
        ├─dbus-daemon
        ├─dnsmasq───dnsmasq
        ├─gssproxy───5*[{gssproxy}]
        ├─gnome-terminal───xterm
        ├─ksmtuned───sleep
        ├─libvirtd───16*[{libvirtd}]
        ├─lsmd
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─mcelog
        ├─polkitd───6*[{polkitd}]
        ├─rhnsd
        ├─rhsmcertd
        ├─rngd
        ├─rpcbind
        ├─rsyslogd───3*[{rsyslogd}]
        ├─smartd
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]

 

아래와 같이 setsid로 xterm을 실행하면 gnome-terminal에서 새로운 프로세스로 세션을 생성합니다.

# setsid xterm
# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─agetty
        ├─alsactl
        ├─atd
        ├─auditd─┬─audispd─┬─sedispatch
        │        │         └─{audispd}
        │        └─{auditd}
        ├─avahi-daemon───avahi-daemon
        ├─chronyd
        ├─crond
        ├─cupsd
        ├─dbus-daemon
        ├─dnsmasq───dnsmasq
        ├─gssproxy───5*[{gssproxy}]
        ├─gnome-terminal───xterm
        │        └─xterm
        ├─ksmtuned───sleep
        ├─libvirtd───16*[{libvirtd}]
        ├─lsmd
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─mcelog
        ├─polkitd───6*[{polkitd}]
        ├─rhnsd
        ├─rhsmcertd
        ├─rngd
        ├─rpcbind
        ├─rsyslogd───3*[{rsyslogd}]
        ├─smartd
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]

 

 

 

  17. setterm(터미널 속성)

 1) 경로 : /usr/bin/setterm

 2) 요약 : 터미널의 속성을 설정

 3) 사용 방법 : setterm [옵션]

 4) 옵션

 -term terminal_name : TERM 환경변수(terminal_name)를 지정

 -reset : 터미널을 처음 상태로 되돌림

 -initialize : 터미널 초기화 문자열을 출력

 -cursor [on|off] : 터미널의 커서를 on/off

 -repeat [on|off] (가상 콘솔에서만 지원) : 키보드 반복 기능을 on/off

 -appcursorkeys [on|off] (가상 콘솔에서만 지원) : 커서 키 어플리케이션 모드를 on/off

 -linewrap [on|off] (가상 콘솔에서만 지원) : 자동 줄 바꿈을 on/off

 -default : 터미널의 옵션을 기본값으로 지정

 -foreground 8-color|default (가상 콘솔에서만 지원) : 포그라운드 문자의 색을 설정

 -background 8-color|default (가상 콘솔에서만 지원) : 백그라운드 문자의 색을 설정

 -ulcolor 16-color (가상 콘솔에서만 지원) : 밑줄(_)의 색을 설정

 -hbcolor 16-color (가상 콘솔에서만 지원) : 하프 브라이트(half-bright) 문자의 색을 설정

 -inversescreen [on|off] (가상 콘솔에서만 지원) : 스크린의 색을 변경. 백그라운드와 포그라운드를 그리고 밑줄과 하프 브라이트를 서로 변경

 -bold [on|off] : 볼드를 on/off

 -half-bright [on|off] : 하프 브라이트 모드를 on/off

 -blink [on|off] : 깜박임을 on/off

 -reverse [on|off] : 반전 비디오 모드를 on/off

 -underline [on|off] : 밑줄을 on/off

 -store (가상 콘솔에서만 지원) : 터미널의 현재 값을 저장

 -clear [all] : 스크린 화면을 초기화

 -clear rest : 현재의 커서 위치를 스크린의 맨 마지막에 두고 화면을 초기화

 -tabs [tab1 tab2 tab3 ...] (가상 콘솔에서만 지원) : 커서의 탭 너비(stop)을 지정. 범위는 1~16

 -clrtabs [tab1 tab2 tab3 ...] (가상 콘솔에서만 지원) : 커서 위치(stop)을 초기화. 범위는 1~16

 -regtabs [1-160] (가상 콘솔에서만 지원) : 모든 탭의 위치를 초기화하고, 일반적인 탭의 위치를 설정. 기본값은 8

 -blank [0-60|force|poke] (가상 콘솔에서만 지원) : 스크린이 APm을 사용하면 자동으로 화면보호기가 실행되는 시간을 설정. 인자가 없으면 설정을 출력하고 0의 값은 화면 보호기를 실행하지 않음

 -dump [1-NR_CONS] : 가상 콘솔의 스냅샷을 저장

 -append [1-NR_CONS] : -dump 옵션과 같으나 기존 스냅샷 파일을 덮어쓰지 않고 추가

 -file dumpfilename : -dump나 -append 옵션에서 스냅샷 파일의 이름(dumpfilename)을 지정

 -msg [ono|off] (가상 콘솔에서만 지원) : 커널 printk() 메시지를 on/off

 -msglevel 1-8 (가상 콘솔에서만 지원) : 커널 printk() 콘솔 로그 레벨을 지정

 -powersave on|vsync : 모니터를 VESA vsync 대기 모드로 설정

 -powersave hsync : 모니터를 VESA hsync 대기 모드로 설정

 -powersave powerdown : 모니터를 VESA 파워 다운 모드로 설정

 -powersave [off] : 모니터를 VESA 파워세이빙 모드를 off

 -powerdown [0-60] VESA 파워 다운의 실행 시간을 지정. 기본값은 0이며 파워 다운이 비활성화 됨

 -blength [0-2000] : 마이크로 초 단위로 벨 시간을 지정. 기본값은 0

 -bfreq [freqnumber] : 벨 주파수를 지정. 기본값은 0

 

 5) 추가 설명

setterm은 특정 문자를 사용하여 터미널의 환경 변수를 설정하고, 출력합니다. 참고로 GNOME이나 KDE 같은 데스크톱 환경은 Ctrl + Alt + F1 키 조합으로 가상 콘솔로 전환 할 수 있습니다.

 

아래와 같이 -foreground와 -background 옵션은 콘솔의 백그라운드와 포그라운드 색상을 변경합니다.

# setterm -foreground black -background white

 

만일 콘솔에서 화면 보호기나 절전 모드를 해제하려면 -blank나 -powersave 옵션을 사용하면 됩니다.

 

이처럼 setterm 명령어는 직접적으로 콘솔 환경을 변경할 때 유용합니다.

# setterm -blank 0
# setterm -powersave off

 

터미널의 비프음을 끄려면 -blength 옵션을 사용합니다. 만일 아주 작은 소리로 변경하고자 한다면 -bfreq 옵션이 유용합니다.

# setterm -blength 0
# setterm -bfreq 10
반응형

댓글