본문 바로가기

OS의 속삭임/Linux의 외침

[OS][LINUX][SHELL] 쉘 개요

* 쉘 이란

- 리눅스의 대화형 사용자 인터페이스

- 명령어 해석기 

- 사용자의 명령을 해석하여 운영체제에 전달

- 명령 수행 결과를 보여줌

- 스크립트를 작성 할수 있음

- /etc/passwd 파일에서 기본 사용쉘을 확인 가능. 만약, /bin/false로 설정 되어 있다면 로그인 하지 못함.

- 사용중인 쉘확인

- echo $SHELL 로 확인.

 

* 쉘 종류 

- Bourne Shell (sh)

- 유닉스 시스템의 표준 구성 요소

- 본쉘 프로그램의 실행 명령어 :sh

- '.profile' 파일로 환경을 초기화

- C shell (csh)

- C Shell 프로그램의 실행 명령어 : csh

- 커맨드 구조에서 C 언어와 유사

- 편리한 기능도 내장하고 있어서 많이 보급됨

- '.cshrc'파일로 환경을 초기

- Korn Shell (ksh)

- Bourne Shell과 완전히 호환

- '.kshrc' 파일로 환경을 초기화

- Bash Shell (bash)

- FSF(Free Software Foundation)에서 개발한 무료 공개용 쉘

- Korn Shell과 C Shell의 유용한 특징들을 통합

- 대부분의 리눅스 기계에서의 표준적인 명령 라인 인터페이스

- 리눅스에서 처음 로그인을 하였을 때 기본으로 주어지는 쉘

- '.bashrc' 파일로 환경을 초기화

* 쉘 기능

- 명령 완성기능

- 명령어 일부만 입력하고 <Tab>키를 누름

- 파일 이름 완성 기능

- 파일이름의 일부만 입력하고 <Esc>키를 누름

- History 사용하기

- history 명령 또는 위, 아래 커서키 사용.

- !history번호 <엔터> 또는 커서 키로 이동하여 <엔터>

- history 파일 

- ~/.bash_history ( 저장된 명령어 개수 HISTSIZE 변수에 지정)

- 메타문자의 지원

- '?' : 임의의 한 문자, '*' : 문자 수와 상관 없는 임의의 문자

- 쉘에서 사용하는 특수 문자 

- > : 표준 출력을 기록할 파일 지정

- >> : 표준 출력을 덧 붙일 파일 지정

- < : 표준 입력을 읽을 파일 지정

- * : 0개의 이상 문자와 대응

- ? : 하나의 문자와 대응

- | : 어떤 프로세스의 출력을 다른 프로세스로 보냄 (파이프)

- ; : 명령순서

- || : 이전 명령이 실패하면 실행하는 조건부 실행

- && : 이전 명령이 성공하면 실행하는 조건부 실행

- & : 명령을 백그라운드 프로세스로 실행 

- # : 주석처리

- $ : 변수 접근 기호


* 쉘의 환경설정

- 환경설정 파일

- 사용자

- ~/.bashrc : 새로운 쉘이 실행될때 설정

~/.bash_profile : 로그인시 설정

~/.bash_logout : 로그인 쉘이 종료되면서 실행

- 시스템 전역

- /etc/profile : 로그인 시 설정, 시스템 전역에 영향

- /etc/bashrc : 새로운 쉘이 실행 될때 실행, 시스템 전역에 영향

- 환경변수

- HOME : 사용자 홈 디렉터리

- PATH : 명령어 프로그램 탐색 경로

- MAIL : 메일 보관함 경로

- MAILCHECK : 메일 확인 간격(초)

- SHELL : 현재 쉘의 경로

- HOSTNAME : 컴퓨터 이름

- LINES : 터미널의 행 수

- COLUMNS : 터미널의 열 수

- PWD : 현재 디렉터리 

- PS1 : 프롬프트

- UID : 사용자 UID 

- USER : ㅅ용자 이름

- HISTFILE : 히스토리 파일

- LANG : 사용 언어


- 환경변수 확인

- 특정변수 : echo $환경변수

- 전체 변수 : printenv

- 환경변수 값 설정

- export 환경변수[=변수값]

- 일반변수 값 설정

- 변수 = 변수값 (set 명령으로 값을 모두 확인)