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 (0) | 2016.03.08 |
---|---|
[서버구축] DNS (0) | 2016.03.08 |
Visual Editor(vi editor) 명령어 / network 정보 (0) | 2016.03.08 |
[명령어] - 3. Process / RPM / Cron 관리 (0) | 2016.03.08 |
[명령어] - 2. 권한 / 디스크 관리 (0) | 2016.03.08 |