shell
Bourne shell : 최초의 shell. 지원하는 명령어가 적음 /bin/sh
C shell : B shell의 개량형 /bin/csh
Korn shell : 현재 유닉스 계열에서 많이 사용중인 shell /bin/ksh
Bash shell : 리눅스의 기본 shell. 다양한 명령과 편의성을 지원 /bin/bash
Shell Script
쉘스크립트 첫번째줄에는 사용할 쉘 종류를 적는다
!#/bin/bash
echo : 뒤의 내용을 출력해라
-n : 줄바꾸지 않고 출력
./sh : 일반적인 쉘 실행
쉘 실행 권한이 없을때 chomod로 권한변경 해주거나 sh 명령어로 실행 가능
ex) test.sh 실행할때 권한 없으면 sh test.sh
` (역따옴표) : 특정 명령어를 실행한 결과를 출력
echo `ifconfig |grep iniet | gerp -v 127.0.0.1`
: ifconfig로 ip주소 확인후 127.0.0.1을 제외하고 출력하라고 한 것
변수 : 데이터를 저장하기 위해 생성하는 임시 기억공간
(어떤 데이터가 들어올지 모름)
변수명=값
* = 기호 좌우에 공백이 생기면 안됨
echo $변수명
변수 값 안에 공백이 있을경우 " " 로 묶어준다
환경변수 : 이미만들어져있는 변수 . 꼭 대문자로 써야함
read : 값을 입력받아 변수에 저장
# echo -n "Enter your name: " 이름을 입력
read name 변수 name에 입력받은 이름 저장
echo "Your name is $name. " 저장 받은 이름을 출력
크기비교
[ $ A -gt $B ] |
A값이 B값보다 크다 |
[ $ A -lt $B ] |
A값이 B값보다 작다 |
[ $ A -ge $B ] |
A값이 B값보다 크거나 같다 |
[ $ A -le $B ] |
A값이 B값보다 작거나 같다 |
[ $ A -eq $B ] |
A값이 B값보다 같다 |
[ $ A -ne $B ] |
A값이 B값보다 다르다 |
expr : 연산하기위해 숫자로 인식
세개의 숫자 입력받아 계산할때
\ : 괄호사용할때 앞뒤로 붙여야함
문자열 비교
["string1"="string2] |
두 문자열이 같은 경우 |
["string1"!="string2] |
두 문자열이 다른 경우 |
[-z "string"] |
문자열의 길이가 0인 경우 |
[-n "string"] |
문자열의 길이가 0이 아닌 경우 |
입력받았을때 korea 이면 화면에 korea 출력 korea아닌경우 not korea 출력
파일관리
[-f 파일명] |
파일이 있는 경우 |
[-s 파일명] |
파일이 존재하고 내용이 있는 경우 |
[-d 파일명] |
파일이 아니고 디렉토리인 경우 |
[-r 파일명] |
읽기가 가능한 파일일 경우 |
[-w 파일명] |
쓰기가 가능한 파일일 경우 |
[-x 파일명] |
파일이 존재하고 실행 가능할 경우 |
[!-옵션 파일명] |
옵션의 조건이 아닐 경우 |
조건문과 반복문
if문
-사용자로부터 과일명 입력받아서 그 값이 'apple'이면 'apple good!' 출력 'apple'아니면 종료
-----------------------------------------------
-사용자가 'apple'을 입력하면 'apple good!'을 출력 다른것 입력시 'give me apple!' 출력
----------------------------------------------
-사용자로부터 글자 입력 받아서 'apple'이면 'i like apple~!' 출력 'orange'이면 i like orange~!' 출력 둘다 아닐경우 'give me apple or orange~!' 출력
------------------------------------------------
-사용자로부터 값을 입력 받는데 입력값의 범위가 1 또는 2 사이어야 하며 0보다 작으면
"so small" 2보다 크면 "so big"
-----------------------------------------------
연습문제 1
학생의 시험 성적을 입력 받아서 학점을 계산하는 스크립트
96~100 : A+, 90~95 : A0, 86~89 : B+, 80~85 : B0, 76~79 : C+,70~75 : C0, 66~69 : D, 나머지는F 그리고 100점이 넘으면 'so big' , 1점보다 적으면 'so small' 출력
-----------------------------------------------
연습문제2
지역번호 입력받아서 번호가 02 : seoul, 031 : kyongki, 051 : busan, 052 : ulsan 나머지는 'heaven' 출력, 단 지역번호가 0보다 작거나 100보다 크면 "check your number"
----------------------------------------------
case
-사용자로부터 숫자를 입력받아 1일 경우 웹서버 백업을 수행, 2일경우 WAS서버 백업, 3일 경우 DB서버를 백업하는 스크립트 생성
-이 작업을 위해 웹서버 백업 스크립트, WAS백업 스크립트, DB서버 백업 스크립트 가상으로 생성
---------------------------------------------------
------------------------------------------------------
for문
-for문을 사용하여 구구단
-1이나 2를 입력하면 계속 God Bless You라는 메세지를 출력하고 다른 숫자를 입력하면 Incorrect Number~ Good Bye~ 출력되며 스크립트 종료
-대문자Y나 소문자y를 입력할 때 까지 계속 "Enter Y|y"라는 문자를 출력하게 하고 대문자 Y나 y를 입력하면 Good 메세지와 함께 스크립트 종료
-while문 사용하여 구구단 출력
-untile 반복문 사용하여 구구단 출력
-사용자에게 원하는 단수 입력받아 출력한 후 Retry? y|n: 메시지를 보인후 대문자 Y나 소문자y를 입력하면 다시 원하는 단수 입력받아 출력 메시지에서 대문자 N이나 소문자 n을 누르면 Good Bye 메시지 보이며 종료
연습문제1
for문 이용하여 2~9단까지 구구단 출력
-while문을 이용하여 구구단만들기
연습문제2
-for문 사용하여 옆으로 펼쳐진 구구단 만들기
'OS > 리눅스,솔라리스' 카테고리의 다른 글
리눅스 메일 서버 구축하기 (0) | 2014.08.25 |
---|---|
리눅스 FTP 서버구축 (0) | 2014.08.22 |
리눅스 DNS 서버구축 (0) | 2014.08.22 |
rpm (0) | 2014.08.20 |
nfs (0) | 2014.08.18 |
cron,package,swap (0) | 2014.08.18 |
디스크관리 (3) | 2014.08.14 |