본문 바로가기

개발로그/리눅스

리눅스-[#리눅스마스터 2급 실기] 3.셸


[ 리눅스 마스터 2급 실기 ]

3.셸


2019-03-15


목록



1. 파일 유형 / 파일 허가권

2. 파일 시스템

3. 셸

4. 프로세스

5. 프로그램 설치

6. 프린트 / 스캐너

7. XWindow

8. Network




본셸 계열 (Bourne Shell)

본셸 ( /bin/sh ) : 벨 연구소 스티븐븐이 개발 / 유닉스에서 기본 셸로 사용

콘셸 ( /bin/ksh ) AT&T사의 데이비드콘이 개발 / 본셸 확장

배쉬셸( /bin/bash ) GNU에 의해 개발, LINUX 표준 셸, 다양한 운영체제에서 사용, POSIX 와 호환 가능

지셸(/bin/zsh) : Paul에 의해 개발 / 강력한 History 기능


C셸 계열

C셸( /bin/csh ) : 버클리 빌조이가 1981년 개발 / C언어의 특징이 많이 포함

-tcsh셸( /bin/tcsh ) : Ken greer가 개발 / 확장 C셸로 BSD 계열에서 가장 많이 사용


*시험에서 배쉬셸과 Tcsh 셸에 관한 문제가 많음


셸 확인법

/etc/sheels : 사용할 수 있는 셸

/etc/passwd : 계정마다 할당된 셸

echo $SHELL : 현재 로그인한 사용자가 사용하고 있는 셸


셸 변경법

chsh : chsh [옵션] [계정명] 으로 사용

-s(shell) : 앞으로 사용할 로그인 셸로 지정

-l(List) : shells 파일안에 지정된 셸을 나열

**usermod(추가 옵션)

-s(shell) : 기존셀에서 새로운 셀로 변경 시 사용


환경 변수와 셀 변수


환경 변수(전역 변수)


전체 셀에서 사용 가능 / 서브 셀에서 상속 가능

환경 변수 확인 명령[env]


셸변수(지역 변수)


로그인 셸에서만 사용 가능 / 서브 셸에서 상속 불가능

셸 변수 확인 명령[set]


환경 변수 설정


export [환경 변수 리스트 확인]

export 변수명 = 변수값 [변수값 등록]

echo $변수명 [환경 변수값 확인]

export 변수명=$변수명:변수값[변수값 추가](시험에서 자주 나옴)

uset 변수명 [변수 정의 해제]


프롬프트 설정 형식(셸의 프롬프트형식을 임의대로 변경)


\t (time) : 시간 표시

\W (Where) : 현재 작업 디렉터리(마지막 경로)

\w (Where) : 현재 작업 디렉터리(절대 경로)

\s (shell) : 사용중인 셸 이름

\u (user) : 사용자 유저 이름

\h (host) : 호스트 이름


bash 셸 관련 설정 파일들 ( 전역 설정 파일 )


/etc/profile : 모든 사용자의 셸 환경을 제어.

> 관리자만 설정이 가능하며 모든 사용자에게 반영됨


/etc/bashrc : alias와 bash가 수행 시 실행되는 함수를 제어

> 생략되기도 하며 /etc/profile 내용이 포함되기도 함. 지역 설정 파일

(~은 home 디렉터리를 뜻함 home 으로 시작하는가 /으로 시작하는가로 구분)


~/.bash_profile : 개인 사용자의 셸 환경을 제어 / 로그인 시 로딩

~/.bash_history : 전에 입력했던 명령어의 재사용이 가능하게 됨

~/.bashrc : alias와 bash가 수행 시 실행되는 함수 제어

~/.bash_logout : 로그아웃 하기 전에 실행되는 파일


History


(사용했던 명령어를 .bash_history에 저장해두고 다시 불러서 사용할 수 있게하는 기능)

!! : 마지막으로 실행했던 명령문 실행

!n : n번째 명령어 실행

!-n : 현재 명령어에서 n 개수를 뺀 행의 명령어 실행

!문자열 :  최근에 "문자열" 로 시작하는 명령문 실행

!?문자열? : 최근에 "문자열" 을 포함하는 단어를 나타냄


History 관련 환경변수


HISTSIZE : 히스토리 스택의 크기 지정 

HISTFILE : 히스토리 파일 위치

HISTFILESIZE : 물리적인 히스토리 파일 크기 (**중요)

HISTTIMEFORMAT : 히스토리 명령어 수행 시간 출력 형태 지정 (시험에 많이 나옴)

HISTCONTROL(중복 명령어에 대한 기록 유무 지정


alias


(명령어를 사용하기 쉽게 문자로 입력하고 씀)


alias 별명 = 명령어 정의 [새로운 별명 정의]

unalias 별명 = 지정된 명령어 해제



출처

개발공방