OS/리눅스,솔라리스

shell

김포춘 2014. 8. 20. 16:52
반응형

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