- 기본 셸은 bash이다
- Alias 기능(명령 단축 기능)
- History 기능
- 연산기능
- Job Control 기능
- 자동 이름 완성 기능(Tab)
- 프롬프트 제어 기능
- 명령 편집 기능
- 셸의 명령문 처리 방법
- (프롬프트) 명령어 [옵션...] [인자...]
- 예) # rm -rf /mydir
- "echo $환경변수이름"으로 확인 가능
- "export 환경변수=값"으로 환경 변수의 값을 변경
-
C언어와 유사하게 프로그래밍이 가능
-
변수, 반복문, 제어문 등의 사용이 가능
-
별도로 컴파일하지 않고 텍스트 파일 형태로 바로 실행
-
vi나 gedit으로 작성이 가능
-
리눅스의 많은 부분이 셸 스크립트로 작성되어 있음
-
실행 바법
- "sh <스크립트 파일>"로 실행 -> 파일 속성을 변경할 필요가 없음
- "chmod +x <스크립트 파일>" 명령으로 실행 속성 추가 후 "./<스크립트파일>"명령으로 실행
- 변수를 사용하기 전에 미리 선언하지 않으며, 변수에 처음 값이 할당되면서 자동으로 변수가 생성
- 모든 변수는 "문자열(String)" 로 취급
- 변수 이름은 대소문자를 구분
- 변수를 대입할 때 "=" 좌우에는 공백이 없어야 함
- 변수 참조할 경우 $붙여야 참조 가능
- $ 문자가 들어간 글자를 출력하려면 ' ' 로 묶어주거나 앞에 '\'를 붙임
- 변수를 " " 로 묶어도 되고, 묶지 않아도 됨
- 변수에 대입된 값은 모두 문자열로 취급
- 변수에 들어 있는 값을 숫자로 해서 +, -, *, / 등의 연산을 하려면 expr을 사용
- 수식을 백틱(`) 문자로 묶어줘야함
- 수식에서 괄호와 곱하기 기호는 반드시 역슬래쉬() 붙여야함
- 파라미터 변수는 $0, $1, $2.... 의 형태를 가짐
- 전체 파라미터는 $*로 표현
-
형식
-
if [ 조건 ] then
참일 경우 실행
fi
-
파일조건 | 결과 |
---|---|
-d 파일이름 | 파일이 디렉토리면 참 |
-e 파일이름 | 파일이 존재하면 참 |
-f 파일이름 | 파일이 일반 파일이면 참 |
-g 파일이름 | 파일에 set-group-id가 설정되면 참 |
-r 파일이름 | 파일이 읽기 가능하면 참 |
-s 파일이름 | 파일 크기가 0이 아니면 참 |
-u 파일이름 | 파일에 set-user-id가 설정되면 참 |
-w 파일이름 | 파일이 쓰기 가능한 상태이면 참 |
-x 파일이름 | 파일이 실행 가능 상태이면 참 |
- if문은 참과 거짓의 두 경우만 사용 (2중 분기)
- 여러 가지 경우의 수가 있다면 case문 (다중분기)
- 형식
- for 변수 in 값1 값2 ...
- do
- 반복할 문장
- done
- while문과 용도가 거의 같지만, until문은 조건식이 참일 때까지(=거짓인 동안) 계속 반복
- 리눅스 명령어를 결과로 사용하기 위해서는 $(명령어) 형식을 사용
- 결과를 파라미터로 사용하고자 할 때는 set과 함께 사용