1. Shell Programming1
1. 명령어 인터프리터
Shell - 리눅스 명령어 인터프리터 (리눅스 실행파일은 Permission으로 구별한다.)
Command.com - 윈도우 명령어 인터프리터 (윈도우 실행파일은 확장자로 구별한다.)
★일반적으로 쉘의 기능과 특성은 다음과 같다.
- 명령어 해석, 환경 제어, 쉘 프로그래밍
*) 입력된 명령어를 읽고 실행하는 것을 인터프리터라고 한다.
★쉘 스크립트 - 쉘 프로그램
컴파일, 인터프리터 없이 실행되는 것을 스크립트라고 한다.
쉘은 프로그래밍 언어로도 사용할 수 있다.
파일에 명령어와 변수를 사용하여 강력한 프로그래밍 도구가 된다.
프로그램은 명령어와 변수들의 집합이다.
Program is set of Instructure
2. Shell의 종류
Shell의 종류 | 프롬포트 | 설명 |
bsh | $ | Steven Bourne이 만듬, 1979년 유닉스 중점적 |
bash | # | Bourne Again Shell, GNU 운영체제에서 디폴트로 사용됨 (GNU is NOT UNIX의 약자) C와 tc, Korn 쉘의 특징을 포함, 제일 유연한 쉘 |
csh | % | Bill Joy가 만듬 쉘 프로그래밍할때 C언어와 비슷하기 때문에 Cshell 이라고도 부른다. |
ksh | $ | David Korn이 만듬 bsh, ksh 에서 실행되는 명령어가 따로 있고 동일하게 실행되는 명령어가 있다. |
tcsh | > | |
dash | # | 1997년에 생성, 2002년에 dash로 명칭 실행속도 빠름, 라이브러리 의존성 적음 디스크 장애, 업그레이드 장애 문제의 경우 신뢰성 확보할 수 있다. |
명령어 해석기로써는 C쉘
프로그래밍 언어 측면으로써는 Bourne 쉘이 더 사용하기 편리하다.
쉘 프로그램들은 /bin 디렉터리 안에 있으며, ls -l /bin/*sh 로 확인할 수 있다.
현재 쉘에서 다른쉘로 변경하기 위해서는 Shell의 종류 이름만 입력하면 바꿀 수 있다.
쉘을 영구적으로 바꾸기 위해서는 chsh 명령어를 사용하면 된다.
3. 환경변수
리눅스에서 사용자의 작업환경을 최적화해주는 방법 중 하나는 바로 쉘에서 제공해주는 변수를 사용하는 것이다.
일종의 배치파일 형식으로 사용자가 시스템을 사용하기 위해 플요한 각종 설정값들을 정해주는 역할을 한다.
*) Batch = 일괄처리
배치파일은 명령 인터프리터에 의해 실행되게끔 고안된 명령어들이 나열되어 있는 텍스트 파일이다.
배치 프로세싱은 여러 명령어를 한줄에 실행하는 것을 이야기한다.
★시스템 제공 환경변수
PATH - 명령어를 찾기 위한 검색 경로
SHELL - 로그인 쉘의 절대경로
PWD - 현재 디렉터리의 절대경로
TERM - 터미널 명
HOME - 사용자가 로그인 되는 홈 디렉터리
USER- 사용자 명
PS1 - 현재 프롬포트
★변수의 사용
"변수명=값" 대입할때는 $을 사용하지 않는다.
Equal 좌우에 공백이 존재하면 안된다. 숫자형 문자형 구별이 없다. (모두 String 변수)
변수를 출력할때만 "$변수명"을 사용한다.
많은 공백이 있는 변수를 입력하거나 출력할때는 큰따옴표로 묶어 출력한다.
일반적으로 출력하면 여러 공백은 한칸으로 인식하여 출력된다.
my_name="Song Gil Young"
echo $my_name
> Song Gil Young
echo "$my_name"
> Song Gil Young
만약 $ 기호를 앞에 출력하고 싶으면 역슬래쉬 "\"를 사용하면 된다.
echo 100$
> 100$
echo $100
>
echo \$100
> $100
변수초기화
unset 변수명
$을 사용하지 않는다!
영원히 그 값을 고정시키고싶으면(Final)
readonly 변수명
을 사용한다.
pi="3.14"
readonly pi
pi="aaa"
-bash: pi: 읽기전용 변수
지역변수를 전역변수화 시키는 명령어
export 변수명
BASH 실행결과를 변수에 담기위해서는
변수명 = '명령어'
변수명 = $(명령어)
를 사용한다.
'화 > Shell 프로그래밍' 카테고리의 다른 글
2. SHELL Programming (0) | 2017.09.30 |
---|