질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

리눅스시스템 관리

작성자 정보

  • 리눅스 작성
  • 작성일

컨텐츠 정보

본문


리눅스시스템 관리

tty

현재 사용자의 터미널 이름을 보여줍니다. 서로 다른 한텀, 엑스텀 윈도우는 서로 다른 터미널로 인식되는것에 주의하세요.


bash$ tty
/dev/pts/1

stty

터미널 세팅을 보여주거나 변경해 줍니다. 이 복잡한 명령어는 스크립트에서 쓰여 터미널 동작이나 출력하는 방법을 제어할 수 있습니다. info 페이지를 참고하고, 조심해서 공부하세요.

) 지움 글자(erase character) 세팅하기

#!/bin/bash
# erase.sh: "stty"로 입력시의 지움 글자(erase character)를 세트하기.

echo -n "이름이 뭐에요? "
read name # 아무 글자나 치고 지우려고 해보세요.
# 안 될 겁니다.
echo "이름이 $name 군요."

stty erase '#' # "hashmark" (#) 를 지움 글자로 세트.
echo -n "이름이 뭐죠? "
read name # 마지막에 친 글자를 # 으로 지워보세요.
echo "$name 가 당신 이름이군요."

exit 0
==>관련정보사이트

예) 비밀스런 비밀번호: 터미널 에코 끄기

#!/bin/bash

echo
echo -n "비밀번호를 넣으세요 "
read passwd
echo "비밀번호는 $passwd 입니다."
echo -n "누군가가 어깨 너머로 당신을 보고 있었다면, "
echo "당신의 비밀번호를 알아냈을 수도 있습니다."

echo && echo # "and list"로 묶인 라인 피드 두 줄"

stty -echo # 화면 에코를 끕니다.

echo -n "비밀번호를 다시 넣으세요 "
read passwd
echo
echo "비밀번호는 $passwd 입니다."
echo

stty echo # 화면 에코를 킵니다.

exit 0

stty를 창조적으로 써서 사용자가 ENTER를 안 눌러도 어떤 키를 눌렀는지를 알아낼 수 있습니다.

예) 키누름 알아내기

#!/bin/bash
# keypress.sh: 키누름 알아내기("hot keyboard").

echo

old_tty_settings=$(stty -g) # 현재 세팅을 저장.
stty -icanon
Keypress=$(head -c1) # GNU 시스템이 아니라면
# $(dd bs=1 count=1 2> /dev/null)

echo
echo """$Keypress"" 키가 눌렸습니다."
echo

stty "$old_tty_settings" # 원래 세팅으로 복구.

# Thanks, Stephane Chazelas.

exit 0
==>관련정보사이트
참고) 터미널과 모드

터미널은 보통 캐노니컬(canonical) 모드로 동작합니다. 사용자가 키를 누르면 그 터미널에서 실행중인 프로그램에게 즉시 전달되지 않고, 터미널 지역 버퍼가 키 누름을 저장하고 있다가 ENTER를 눌렀을 때에 저장하고 있던 값들을 모두 전달하게 됩니다. 터미널에 기본적인 줄단위 편집기가 들어 있는 것과 비슷합니다.

bash$ stty -a
speed 9600 baud; rows 36; columns 96; line = 0;
intr = ^C; quit = ^; erase = ^H; kill = ^U; eof = ^D; eol = ; eol2 = ;
start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
...
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt

캐노니컬 모드에서는 지역 터미널 줄단위 편집기용 특수키의 재정의가 가능합니다.

bash$ cat > filexxx
whaIfoo barhello world

bash$ cat filexxx
hello world
bash$ bash$ wc -c < file
13

터미널을 제어하는 프로세스는 사용자가 26번의 키를 눌렀음에도 오직 13개의 문자(알파벳 12개, 뉴라인 한 개)만 받았습니다.

넌캐노니컬("raw") 모드에서는 누르는
모든 키(ctl-H같은 편집용 특수키도 포함)가 제어 프로세스에게 즉시 전달됩니다.

bash 프롬프트는 icanon 옵션과 echo 옵션을 둘 다 꺼서 기본적인 줄 단위 편집을 더 정교하게 제어할 수 있게 합니다. 예를 들어, bash 프롬프트 상에서 ctl-A을 누르면 ^A가 터미널에 찍히지 않고 bash가 1 문자를 읽고 해석해서 커서를 줄 제일 처음으로 이동시켜 줍니다.
==>관련정보사이트

tset
터미널 세팅을 보여주거나 초기화 함. stty보다 기능이 떨어집니다.

bash$ tset -r
Terminal type is xterm-xfree86.
Kill is control-U (^U).
Interrupt is control-C (^C).

setserial

시리얼 포트 매개변수를 세트하거나 보여줍니다. 루트로 실행시켜야 하고 보통은 시스템 셋업 스크립트에서 찾을 수 있습니다.

# /etc/pcmcia/serial 스크립트에서 발췌:

IRQ=`setserial /dev/$DEVICE | sed -e 's/.*IRQ: //'`
setserial /dev/$DEVICE irq 0 ; setserial /dev/$DEVICE irq $IRQ

getty, agetty

터미널용 초기화 프로세스가 getty나 agetty를 써서 사용자의 로그인을 설정해 줍니다. 이 명령어들은 사용자의 쉘 스크립트에서 쓰이지 않기 때문에 쉘 스크립트에서 이런 기능을 쓰려면 stty를 쓰기 바랍니다.

mesg

현재 사용자의 터미널에 대한 쓰기 접근을 제어합니다. 접근을 못 하게 설정되면 네트워크에 있는 다른 사용자가 현재 터미널로 write를 하지 못하게 해 줍니다.

작은 정보: 여러분이 텍스트 파일을 편집하고 있는데 갑자기 피자 주문 메세지가 뜨면 아주 짜증날 것입니다. 다중 사용자 네트워크에서는, 방해받기 싫을 때 여러분의 터미널에 대한 쓰기 접근을 막고 싶은 경우가 생길겁니다.

wall

"write all"의 앞글자를 따서 wall이 된 이 명령어는 현재 로그인 되어 있는 모든 사용자에게 메세지를 날립니다. 원래는 유용한 시스템 관리자용 도구입니다. 예를 들어, 시스템에 문제가 생겨서 잠깐 동안 다운 시켜야 할 필요가 생겼을 때 모든 사용자들에게 경고를 할 수 있게 해 줍니다.

bash$ wall System going down for maintenance in 5 minutes!
Broadcast message from bozo (pts/1) Sun Jul 8 13:53:27 2001...

System going down for maintenance in 5 minutes!


참고: mesg로 쓰기가 막혀있는 터미널은 wall 메세지를 받을 수 없습니다.
==>관련정보사이트
dmesg

시스템 부팅 메세지를 표준출력으로 보여 줍니다. 디버깅 할 때, 어떤 디바이스 드라이버가 설치됐는지 확인할 때, 사용중인 시스템 인터럽트가 무엇인지 확인할 때 편하게 쓸 수 있습니다. 스크립트에서 dmesg의 출력을 grep이나 sed, awk로 파싱해서 쓸 수 있습니다.

 

 

      자료출처 : 네트워크,시스템보안,IT자격증 자료공유사이트

 

 

보안전문가 준비에대한 철저한 계획 및 진행에 대한 상담을 드립니다
국방부 컨퍼런스 및 경찰청, 사이버수사대, 안철수랩 보안교육센터
(주)해커스칼리지 해커대학
http://www.itbankac.com
02-3291-3264






관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,133 명
  • 현재 강좌수 :  36,172 개
  • 현재 접속자 :  169 명