목록프로그래밍/Shell (20)
Self-Improvement
*반복문 : while while condition do statement done *실습 1.간단 실습 #vi seq.shd #chmod 755 seq.sh #seq.sh 1 10d 2.while문과 shift 사용 #vi shift.shd #chmod 755 shift.sh #shift.sh 1 2 3 4 5 d 3.답을 맞출때까지 반복 #vi quiz.shd #chmod 755 quiz.sh #quiz.shd
*반복문 : for for VAR in VAR_LIST do statement done *실습 1.간단 실습 #vi for.sh d #chmod 755 for.sh #for.sh d 2-1.파일내용을 변수로 #cp /etc/vsftpd/ftpusers /root/bin #vi ftpuser_check.shd #chmod 755 ftpuser_check.sh #ftpuser_check.sh d 2-2.특정 사용자의 ftp내용 확인 #vi ftpuser_check2.shd #chmod 755 ftpuser_check.sh #ftpuser_check2.sh admd
*Case 구문 case VAR in pattern1 | pattern2 | ....) statement ;; pattern3 | pattern4 | ....) statement ;; ..... *) statement ;; esac *실습 1.종합 툴 만드는 예제 #vi tools.shd #chmod 755 tools.sh #tools.sh d 2.yes/no 입력받기 예제 #vi yes.shd #chmod 755 yes.sh #yes.sh d 3-1.시작 스크립트 작성 예제 #vi new.shd #chmod 755 new.sh #new.sh restart d 3-2.service.sh CMD을 통한 new.sh 작동 #vi service.shd #chmod 755 service.sh #service.s..
*if 구문 1.기본구문 if 명령어 ; then statements fi 2.else if구문 if 명령어 ; then statements elif 명령어 ; then statements fi *실습 1.실행권이있는 파일의 대해서 실행하기 #mkdir /test/test.exe #vi /test/test.exed #vi execfile.sh #chmod 755 execfile.sh #execfile.sh /test/test.exe d 2.파일이 디렉터리인지 아닌지 검사하기 #vi dir.shd #chmod 755 dir.sh #dir.sh /etc/passwd d 3.if 구문을 사용한 인자 처리 예제 #vi filesize.shd #chmod 755 filesize.sh #filesize.sh #fi..
*산술 연산 ※기본적으로 소수점 계산을 하지 않는다. ※산술식의 공백은 중요 #expr 1 + 4 (더하기) #expr 4 - 1 (빼기) #expr 4 \* 3 (곱하기) #expr 10 / 2 (나누기) #expr 10 % 3 (나머지) *조건문 선수지식 : test CMD //test CMD 선수지식 1.test명령어 ([]) 참, 거짓을 판별해주는 것 ex) if [ -f /etc/profile ] ; then ex) if test -f /etc/profile ; then 2.파일 test 연산자 -d file : 파일이 존재하고 디렉토리인 경우 -f file : 파일이 존재하고 일반파일인 경우 -r file : -w -x -s 3.문자열 test 연산자 4.산술연산 test 구문 ※연산자 우선순..
*쉘 스크립트 입/출력 : echo //실습 #vi echo.shd #chmod 755 echo.sh #echo.sh d ※echo -n : echo명령어의 라인띄기을 막는것 *사용자 입력 읽기 : read ex) read 변수이름 ※변수가 하나이상이면 값이 하나씩 들어가고 마지막변수에 다들어감 //실습 1.사용자 이름을 입력받아 재출력 #vi read.shd #chmod 755 read.sh #read.sh d 2. #vi enter.shd #chmod 755 enter.sh #enter.shd
*쉘 스크립트 실행방법 1.#bash -x script.sh (ex 디버깅) =read권한만 있으면 실행 =서브쉘로 실행됨 2.#.script.sh (ex 환경파일) =read권한만 있으면 실행 =현재 쉘로 실행 3.쉘이 fork되어 실행 #./script.sh (#!/bin/bash을 안씀) =실행권한 필요 4.#!/bin/bash (ex 쉘스크립트) =작성시 쉘을 직접 지정 =실행권한 필요 *쉘 스크립트 편리 설정 테스트 스크립트 작성 위치를 PATH변수에 지정을 하여 쉽게 사용(/root/bin) /root/bin이 기본으로 추가되어 있을 수 있으니 #echo $PATH로 확인하고 없으면 설정 진행 #vi ~/.bash_profiled 해당 두라인을 추가한다. #. ~/.bash_profile #e..
*grep CMD 특정단어를 검색하는 명령어 //옵션 -i : 대소문자 구분없이 검색 -l : 검색단어가 들어있는 파일 검색 ex) #grep -l root /etc/hosts /etc/passwd -n : 라인번호 검색 -v : 검색단어를 제외하고 검색 -w : 단어로 되어있는 검색 *sed CMD 원본파일을 건들이지 않으며 명령어를 통하여 편집하고 모니터에 출력하는 명령어 ※grep CMD과 비슷하지만 sed CMD는 특정 단어에서 특정 단어까지 검색이 가능 1.p CMD #sed -n '1,3p' /etc/passwd (1~3까지만 출력) #sed '1,3p' /etc/passwd (전체내용 한번출력되고 1~3까지 한번더 출력) #sed -n '1,/adm/p' /etc/passwd (첫번째줄에서 ..
*Bash쉘 //기능 입력을 읽고 해당 명령행을 분석한다. 특수 문자들을 평가한다. 파이프, 리다이렉션, 백그라운드 프로세스를 설정한다 시그널을 처리한다. 프로그램을 할 수 있는 언어 //쉘에서 실행되는 우선순위 1.쉘 내부 명령어 ex) if, while 2.엘리어스 ex) alias ls='ls -l' 3.함수 ex) a() {CMD; CMD} 4..디스크내 존재하는 명령어 ex) /bin/ls *쉘의 특성 쉘의 특성은 많지만 중요하다고 생각한 것 위주로 작성 1.리다이렉션 0 : 표준입력 (>, >>) 1 : 표준출력 () 2.파이프 ( | ) ex) #cat /etc/passwd | grep root 3.특수변수 $$ : 현재 쉘의 PID 번호 저장(EX: 임시 파일 생성, /tmp/.tmp.$$..
== ^C