상세 컨텐츠

본문 제목

[ Linux 마스터 2급 ] Shell( 쉘 )

IT/Network

by pandada 2019. 7. 19. 21:27

본문

반응형

 

쉘 ( Shell )

 

Shell

  - 명령어 해석기로써 실행코드만 해석하여 kernel에 넘겨준다.

  - 명령어 오류, 해독 모두 쉘에서 처리.

  - bash : 본 쉘을 기반으로 하여 GNU 프로젝트에 의해 개발된 것으로, GNU 운영체제, 리눅스,  OS X 등 다양한 운영체제에서 사용(리눅스에서 사용하는 표준 쉘)

  - C  : 버클리 대학의 빌 조이가 개발한 것으로 C언어를 기반으로 만들어짐.

 

 

쉘 관련 파일 & 디렉토리

  - /etc/bashrc : 시스템 전체에 적용되는 alias 및 함수 설정.

  - .bash_profile : 사용자의 환경 설정과 시작 프로그램 설정과 관련 -> 로그인시 읽어들임.

  - .bashrc : 사용자가 지정한 alias와 함수들이 들어있는 파일.

  - .bash_logout : 사용자 로그아웃시 수행하는 설정작업 지정.

  - /etc/profile : 시스템 전체에 적용되는 환경변수와 시작관련 프로그램 설정.

  - /etc/profile.d : 응용프로그램 시작에 필요한 스크립트가 위치하는 디렉토리.

 

 

echo

  - 현재 사용중인 쉘 확인.

  - 형식 : echo $SHELL

  - 시스템에 로그인한 후 현재 시스템에서 사용중인 쉘 확인.

null

 

 

chsh

  - 쉘 변경 및 정보.

  - 사용자에 따라 쉘의 선택을 변경할 수 있다.

  - 형식 : chsh [옵션]

    * -l : 리눅스에서 사용할 수 있는 쉘의 정보를 보여줌(# cat/etc/shells 를 사용해도 같은 의미)

null

 

 

쉘의 환경변수

  - 쉘의 환경을 설정하는데 필요한 변수들을 의미.

  - 변수명은 미리 그 뜻과 용도가 구분된 예약어를 사용하며, 대문자로 구성.

    * DISPLAY : 현재 X윈도 디스플레이 위치.

    * HOME : 사용자의 홈 디렉토리 지정.

    * PATH : 실행파일을 찾는 디렉토리 경로 설정.

    * LANG : 쉘 사용시 기본적으로 지원되는 언어.

    * TERM : 로그인한 터미널 종류.

    * PWD : 사용자의 현재 작업 디렉토리.

    * SHELL : 사용자의 로그인 쉘.

    * USER : 사용자의 이름.

    * PS1/PS2 : 프롬프트 설정/ 2차 프롬프트 설정.

    * HISTFILE : 히스토리 파일의 절대 경로.

    * HISTSIZE : 히스토리 파일의 크기(명령어를 몇 개까지 기록할거니?).

    * HISTFILESIZE : 히스토리 파일사이즈 표시 및 설정.

    * MAIL : 도착한 메일이 저장되는 경로.

    * TMOUT : 사용자가 로그인한 후 일정시간동안 작업하지 않을 경우 로그아웃되는 시간.

 

 

env

  - 쉘의 전체 환경변수 설정확인 명령.

  - 현재 설정된 전체 환경변수 설정 값 확인.

  - 형식 : env

    * tail : 끝에서부터 보고 싶은 리스트의 갯수를 의미한다. 사용시 "tail -5"로 사용한다. (독립적으로 사용이 불가능하며, 파이프[ | ]를 이용해서 사용이 가능하다.)

null

 

 

환경변수의 값 변경 방법

null

  - 그냥 세팅하면 1회성이고,

    export PATH=$PATH :/usr/test2를 하면 쉘이 종료된 후에도 PATH에 설정한 내용이 유지된다.

 

 

 

환경변수 - 로케일 언어 변경하기

  - 시스템 기본 로케일 설정은 /etc/default/locale을 수정하면 된다.

  - 로케일 언어 변경은 LANG="변경하고자 하는 언어"로 설정이 가능하다.

    ex) LANG=C    -> C언어로 언어 변경해줘.

  - locale -a : 운영체제에서 사용할 수 있는 로케일 정보를 볼 수 있다.

  - locale-gen "지역 언어명"으로 로케일을 추가 할 수 있다.

    ex) locale-gen ko_KR.UTF-8    -> 한국어가 깨지지않게 locale을 등록하되 UTF-8방식으로 저장한다.

null

 

프롬프트 설정 방법

  - \d : 날짜표시.

  - \h : 호스트 이름 표시.

  - \t : 현재 시간 표시(24시간제).

  - \T : 현재 시간 표시(12시간제).

  - \u : 현재 사용자의 이름 표시.

  - \W : 현재 작업 디렉토리의 마지막 디렉토리 표시.

  - \w : 현재 작업 디렉토리의 절대경로 표시.

null

 

 

histoy

  - 사용자가 실행한 명령어 확인.

  - 리눅스 기본 쉘 bash는 실행한 모든 명령을 히스토리 버퍼에 저장.

  - history 명령 이용하면 이들 버퍼에 있는 명령들이 출력.

  - 형식 : history [숫자 값] : 가장 최근에 실행한 명령부터 숫자만큼 보여줌.

  - 사용자들이 실행한 명령들은 사용자 홈 디렉터리 안에 .bash_history파일에 기록한다.

  - 로그아웃할 때 메모리에 기억된 명령의 목록을 파일에 저장한다.

  - 스택 구조로 저장됨.

null

    * !! : 마지막에 사용한 명령어 실행.

    * !숫자 : 지정한 숫자 번째 사용한 명령어 실행(!5 -> 5번째 사용한 명령어 실행).

null

    * !-숫자 : 현재시점에서 숫자 이전 명령어 실행.

    * !문자열 : 가장 최근 명령어 중 해당 문자열로 시작하는 명령 찾아서 실행.

    !ex -> 최근 명령 중 ex로 시작하는 명령어 찾아서 실행.

    * !?문자열? : 가장 최근 명령어 중 해당 문자열 포함하는 명령 찾아서 실행.

    !?ex? -> 최근 명령 중 ex문자열 포함하는 명령어 찾아서 실행.

    * ^문자열|^문자열2 : 마지막 사용한 명령어의 문자열1’ 문자열2’로 변경한 후 실행.

null

 

 

alias / unalias

  - 복잡한 명령어 대신 rkserks하게 별칭 명령어 등록해놓고 사용할 수 있다. -alias.

  - 별칭 명령어 해제 작업.

  - 형식 : alias [별칭=‘명령어’] / unalias 별칭

null

 

 

 

 

반응형

관련글 더보기

댓글 영역