Shell 종류

 Bourn sh  :  최초의 shell 

 C sh   :  근대적 shell의 시초

 Korn sh :  유닉스계열에서 많이 사용

 Bash sh  리눅스 기본쉘

 /bin/sh

 /bin/csh

 /bin/ksh

 /bin/bash


- 각각의 쉘마다 처리하는 명령어가 다를수 있음

- 실행파일의 위치

/bin

/usr/bin  (일반사용자)

/usr/sbin (루트사용자)


Shell Script형식

 

실행방법 : sh 명령이용 or 실행권한을 주고 ./로 실행

# : 주석처리 (첫줄은 #!/bin/bash 로 예외, 이 스크립트를 수행할 shell이름 적는 부분)


- echo : 내용을 화면에 출력 (=printf)

  ex) echo  -n 출력할 문장 "   ( -n: 줄을 바꾸지 않고 연속적으로 출력 )

       echo  `실행할 명령어 


- 변수사용 데이터를 저장하기 위한 임시 기억 공간

변수지정 : 변수명=값 ( = 기호 좌우에 공백불허용, 변수값안에 공백이 있을경우 반드시 " "로 묶어줘야함)

변수호출 : echo $변수명

환경변수 : 변수 중에서 서버를 운영하기 위해 미리 생성되어 있는 변수 (환경변수명은 대문자로 사용함)

      환경변수의값은 /etc/profile 이나 사용자의 홈디렉토리안에 .bash_profile등에 설정되어있음


- read함수 : ​사용자로부터 값을 입력받아 변수에 저장 (=scanf),  변수를 먼저 선언할 필요없이 바로 사용. 

ex)   read name 

echo " Name: $name"

- argument(인수)를 사용한 실행 : 사용자에게 인수를 입력받아 출력.         $0            $1       $2       $3

ex)  echo "name : $1, address: $2 , Tel: $3, filename: $0"         [root]#  sh echo_test.sh dahye incheon 4387  

 

크기비교 [  공백 주의!! ]


[ $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 ` 사용해 연산, 모든데이터를 문자로 취급하기때문)


 ex) hap=`expr  $A  +  $B`    ( ` ` 역따옴표 표시 꼭 해야함) 

 * 연산자와,  ( ) 괄호 에는 꼭 탈출문자\를 사용해야함

  expr 구문안에서의 모든 연산자와 기호, 변수 사이에는 공백으로 

  한칸 씩 띄워줘야한다

 ex) result=`expr  \(  $A  +  $B  \)  \*  $C` 



문자열 비교 [  공백 주의!! ]  


 [ "string1" = "string2" ]    : 두문자열 같을 경우  

 [ "string1" != "string2" ]   : 두문자열 다를 경우

-z "string" ]      :  문자열의 길이 0인경우 

   [ -n "string" ]      :  문자열의 길이 0아닌경우



 

파일관리 -옵션 파일명 ]


-f : 파일이 있는경우

-s : ​파일이 존재하고 내용이 있는 경우

-d : 디렉토리인 경우                         

-r : 읽기 가능한 파일일 경우  

-w : 쓰기 가능한 파일일 경우

-x : 파일이 존재하고 실행 가능할 경우

!-옵션 : 옵션의 조건이 아닐 경우


 



조건문(if, case)과 반복문(for, while)



if    

case 

for 

while / until


if [ 조건 ];then

   실행문장

   exit

elif [ 조건 ];then  

   실행문장

   exit 

else

   if[조건];then

       실행문장

   elif[조건];then

       실행문장

   fi

fi    

 

case 변수 in

패턴 1)

   실행명령 ;;

패턴 2)

   실행명령 ;;

패턴 3)

   실행명령 ;;

*)

   실행명령 ;;

esac

 

       for 변수  in

       do

            for 변수 in

            do

     실행문장

            done

       done


    while or until [조건문]

      do

          반복할 문장

      done


        

 - 연습문제 : * 찍기!!!



'linux' 카테고리의 다른 글

[서버구축] FTP  (73) 2016.03.08
[서버구축] DNS  (121) 2016.03.08
Visual Editor(vi editor) 명령어 / network 정보  (153) 2016.03.08
[명령어] - 3. Process / RPM / Cron 관리  (160) 2016.03.08
[명령어] - 2. 권한 / 디스크 관리  (153) 2016.03.08