본문 바로가기

Dev/Dev:: Linux

[Day007] Linux 7일차 - Shell 관리

● Shell 관리

  - 쉘(Shell) : 커널과 사용자를 연결하여 주는 인터페이스 => 명령해석기

  - 사용 가능한 쉘의 종류 확인


    ]# cat /etc/shells 


    ※ shell의 종류 - sh, csh, ksh, bash, tcsh등


     => 일반적으로 리눅스에서는 /bin/bash를 기본적으로 사용

  - shell은 계정이 로그인 할때 가장 먼저 실행되는 프로그램


    => /etc/passwd 파일에 계정이 사용하는 쉘의 정보가 저장

  - 현재 로그인 계정이 사용하는 쉘 종류를 확인



    ]# echo $SHELL    =>  SHELL 환경변수 : 로그인계정이 사용하는 쉘의 정보를 저장한 변수   

  - 쉘 종료   =>   ]# exit


  - 현재 사용중인 쉘 변경

    ]# 쉘명령     =>  실행중인 쉘 위에 다른 쉘를 실행   

       ex)  ]# sh


    ]# chsh     =>  계정이 사용중인 쉘 변경(/etc/passwd 변경)

                =>  다음 로그인시 적용



  - 쉘을 이용하여 원하는 형태의 명령들을 실행할 수 있도록 프로그램으로 만들 수 있다.  => 쉘프로그래밍

  - 쉘이 명령을 실행하기 위해 필요한 정보들을 변수를 이용해 저장할 수 있다.

    1) 시스템변수 : 하나의 쉘프로그램에서만 사용 가능한 변수   

    2) 환경변수 : 모든 쉘프로그램에서 사용 가능한 변수 => 대문자로 작성


  - 변수의 이름은 임의로 작성가능하며 변수에 값을 저장할 때는 = 연산자를 사용한다.  

    형식) ]# 변수명=값

  - 변수에 저장된 값을 사용하려면 변수명 앞에 $를 붙인다.

  - 변수를 선언할 경우 시스템 변수로 인식하며 export 명령을 사용하면 환경변수로 만들 수 있다.

    형식 ]# export 환경변수


    ex) ]# TODAY=20130911     =>   시스템 변수 생성

        ]# export TODAY       =>   환경변수로 변환 : 모든 쉘프로그램 파일에서 사용 가능 

        ]# echo $TODAY  


  - 현재 사용되는 환경변수 목록 및 저장된 데이타 확인

    ]# env


      => PATH 환경변수 : 명령을 실행할 경우 명령을 검색하는 디렉토리 목록을 저장한 환경변수
(디렉토리 구분은 :으로 한다.)

      => PATH 환경변수에 저장된 디렉토리의 명령이 아닌 경우에는 명령이 존재하는 디렉토리까지 표시하여 실행


  - 환경변수의 데이타 변경

    1) 환경변수에 저장된 값을 변경

      ]# 환경변수=값   =>  대부분의 환경변수


       ex)  ]# export TODAY=20130911   =>  환경변수 생성

            ]# TODAY=20130912      =>  변수의 값 변경


    2) 환경변수에 값을 추가    =>  PATH 또는 LS_COLORS

      ]# 환경변수=$환경변수:값    또는   ]# 환경변수=값:$환경변수


      ex)  ]# backup.sh   =>  에러

           ]# PATH=$PATH:/root

           ]# backup.sh   =>  실행

  

    => 환경변수는 쉘에서 실행된 경우 현재 쉘에만 적용