리눅스 분류
리눅스시스템 관리
작성자 정보
- 리눅스 작성
- 작성일
컨텐츠 정보
- 2,170 조회
- 0 추천
- 목록
본문
리눅스시스템 관리
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
등록된 댓글이 없습니다.