'IT 이야기' 카테고리의 글 목록 (19 Page)
본문 바로가기

IT 이야기532

[Linux 셸 스크립트] 사용자 인터페이스 - 005 사용자 키 입력을 한 글자만 받기(Enter 키 불필요) 1. 사용 명령어 (1) stty (2) case (3) dd 2. 키워드 & 사용처 (1) 키워드 키보드, 입력, 줄바꿈, Enter (2) 사용처 키보드에서 글자 하나가 입력되면 Enter 입력 없이 처리를 속행하고 싶을 때 사용합니다. 3. 실행 예제 $ ./getchar.sh Type Your Answer [y/n] : y Input : Yes 4. 스크립트 #!/bin/sh echo-n "Type Your Answer [y/n] : " # 현재 터미널 설정을 셸 변수 tty_state에 백업하고 터미널을 raw 설정함 tty_state=$(stty -g) ① stty raw ② # 키보드에서 문자 하나 읽기 char=$(dd bs=1 count=1 2> dev/null ③ # 터미널 설정을 원래.. 2021. 3. 2.
[Linux 셸 스크립트] 사용자 인터페이스 - 004 암호 입력 시 사용자 키 입력을 표시하지 않기 1. 사용 명령어 (1) stty (2) read (3) wget (4) curl 2. 키워드 & 사용처 (1) 키워드 암호 (2) 사용처 사용자가 암호를 입력하는 처리에서 입력된 문자열을 화면에 표시하고 싶지 않을 때 사용합니다. 3. 실행 예제 $ ./pass_wget.sh Password : 2021. 3. 2.
[Linux 셸 스크립트] 사용자 인터페이스 - 003 키보드에서 사용자 키 입력을 획득해서 변수값으로 이용하기 1. 사용 명령어 (1) read 2. 키워드 & 사용처 (1) 키워드 표준 입력, 키보드 (2) 사용처 키보드에서 입력받은 값을 써서 대화형 처리를 하고 싶을 때 사용합니다. 3. 실행 예제 $ ./read.sh Enter your ID: guest Now your ID is geust 2021. 3. 2.
[Linux 셸 스크립트] 사용자 인터페이스 - 002 키보드에서 Ctrl +c를 입력했을때 현재 상태를 출력하며 종료하기 1. 사용 명령어 (1) trap (2) exit (3) curl (4) sleep 2. 키워드 & 사용처 (1) 키워드 시그널, 트랩, 종료 (2) 사용처 시간이 오래 걸리는 처리나 무한 반복 처리에서 사용자가 도중에 종료를 하기 위해서 Ctrl + C 키를 입력하더라도 종료하기 전에 어떤 처리를 했는지 확인하고 싶을 때 사용합니다. 3. 실행 예제 $ ./sigint.sh http:/www.example.org/ %Total%Received%XferdAverage DloadSpeed UploadTime TotalTime SpentTime LeftCurrent Speed 100127010012700029030--:--:----:--:----:--:--9921 %Total%Received%XferdAve.. 2021. 3. 2.
[Linux 셸 스크립트] 사용자 인터페이스 - 001 명령어 옵션 처리하기 1. 사용 명령어 (1) getopts (2) case (3) shift (4) expr 2. 키워드 & 사용처 (1) 키워드 옵션, 플래그, 명령행 인수 (2) 사용처 스크립트에서 (-a 같은) 옵션을 해석해서 동작을 변경할 때 사용합니다. 3. 실행 예제 $ ./getopts.sh -a -p '=====sep=====' /home/park/docs . .. a.txt readme.txt =====sep===== 4. 스크립트 #!/bin/sh # -a 옵션이 있는지 플래그 변수 a_flag와 -p 옵션의 구분자를 정의하기 a_flag=0 ① separator="" ① while getopts "ap:" option ② do case $option in a) a_flag=1 ③ ;; b) sepatat.. 2021. 2. 28.
셸(SHELL) 확인, 로그인 프롬프트, 셸 스크립트 작성법, 셀 스크립트 실행 방법 1. 셸(SHELL) 확인 방법 보통 터미널창에서 사용하는 셸을 '로그인셸'이라고 합니다. 현재 사용 중인 셸이 무엇인지를 알려주는 셸 변수 SHELL을 echo 명령어로 확인할 수 있습니다. $ echo $SHELL /bin/bash 일반적으로 FreeBSD는 tcsh, 리눅스와 Mac은 bash를 로그인셸로 사용합니다. 고성능을 지원하는 zsh로 있습니다. 로그인셸과 셸 스크립트를 실행하는 셸은 각각 별도이므로 같지 않아도 됩니다. 하지만 tcsh처럼 C셸 계열의 로그인셸을 이용할 때는 명령행에서 쓰는 문법과 셸 스크립트 문법이 일치하지 않으니 주의해야 합니다. 2. 로그인 프롬프트 echo 명령어 앞에 있는 $ 기호는 셸 프롬프트 기호입니다. 이것은 셸이 '지금 명령어 입력을 기다리고 있습니다. 뭔.. 2021. 2. 19.
bash 설치 Mac이나 리눅스에는 bash가 기본 설치되어 있지만 FreeBSD는 기본 설치가 되어 있지않습니다. 또한, 최소 구성으로 설치하는 옵션을 선택한 리눅스라면 bash가 없을 수도 있습니다. 시스템에 bash가 존재하지 않으면 다음처럼 bash 명령어를 설치할 수 있습니다. FreeBSD 및리눅스(CentOS)에서 프롬프트가 #이면 root로 로그인하거나 su 명령어를 이용해서 root 사용자로 실행합니다. 1. FreeBSD # cd /usr/ports/shells/bash # make install 2. CentOS # yum install bash 3. Ubuntu # apt-get install bash 설치가 되면 --version 옵션으로 설치된 bash 버전을 확인합니다. # bash --ve.. 2021. 2. 19.
[RHEL 공통] set 명령어 이용 set 명령어는 다양한 기능을 가지고 있지만 기능별로 서로 연관성이 별로 없어서 혼동하기 쉽습니다. set 명령어 기능을 크게 나누면 다음 세 종류입니다. 1. 셸 변수 표시하기 2. 셸 옵션 설정하기 3. 위치 파라미터($1, $2 등) 조작하기 1. 셸 변수 표시하기 아래와 같이 set 명령어를 인수 없이 실행하면 환경 변수를 포함한 현재 정의된 변수 목록을 표시합니다. set 명령은 현재 셸 변수 상태를 확인할 때 편리합니다. $ set BASH=/bin/bash BASH_ARGC=() BASH_ARGV=() BASH_LINENO=() BASH+SOURCE=() ... 생략 ... 2. 셸 옵션 설정하기 set 명령어로 옵션을 설정하면 셸의 다양한 동작 모드를 지정할 수 있습니다. 변수가 정의되지 .. 2021. 2. 19.
셸 스크립트 변수명 1. 대문자와 소문자 셸 스크립트는 변수명에 대문자, 소문자 어느 쪽도 사용할 수 있습니다. 문법적으로 정해진 것은 아니지만 보통은 다른 프로그래밍 언어와 마찬가지로 상수는 대문자로 변수는 소문자로 작성하는 것이 좋습니다. 또한, 환경 변수는 대문자로 적는것이 보통입니다. # 정의 파일명은 상수이므로 대문자 CONFIGFILE="myapp.conf" # 반복 카운터는 변수이므로 소문자 i=0 # 환경 변수는 대문자 MY_TMDIR="/var/tmp" export MY_TMPDIR 하지만 모든 변수명을 대문자로 적고 소문자는 전혀 사용하지 않는 사람도 있습니다. 프로젝트에 따라서는 코딩 규약 등으로 모두 대문자 변수를 사용하기도 하므로 그런 스크립트를 보더라도 놀라지 말기 바랍니다. 그리고 셸 스크립트에서.. 2021. 2. 19.
[RHEL 공통] crontab을 활용한 스크립트 수행 1. cron 동작과 설정 파일 정기적인 집계 처리나 서버 네트워크 감시 같은 셸 스크립트를 자동으로 실행하고 싶은 경우가 많습니다. cron은 백업과 같이 주기적으로 실행하는 명령들을 정해진 시간에 자동으로 실행해 주는 도구로써 다음과 같이 서비스를 실행합니다. # /etc/init.d/crond start Starting crond.......... [OK] cron은 cron 데몬(리뉵스는 crond, FreeBSD는 cron)이 설정 파일 crontab에 적힌 대로 명령어를 정기적으로 실행하는 방식으로 동작합니다. cron의 기본 설정 파일은 레드햇의 경우 /etc/crontab에 있습니다. crontab은 주기적으로 지정한 시간에 지정한 작업을 하도록 설정합니다. 이에 반해 at 명령은 지정한 .. 2021. 2. 19.