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
    '화/Shell 프로그래밍' 관련 글 more
    Posted by Config