#1. 쉘 (Shell)
1. 쉘(shell)의 개념
1) 쉘(shell) 이란?
- 명령어를 입력 받아 커널을 통해 명령을 실행시켜주는 명령어 해석기 역할을 한다.
- 리눅스 시스템을 효율적으로 사용하기 위한 환경변수 및 지역변수를 제공한다.
- 리눅스 운영에 필요한 프로그램 작성을 위한 쉘 스크립트를 제공한다.
- 리눅스나 맥 같은 경우 .sh로 끝나는 확장자가 쉘 스크립트이다.
- 윈도우는 .bat로 끝나는 확장자.
- 다양한 쉘을 제공(선택가능)
- Boume 쉘 계열
- bash (기본설정)
- bsh
- ksh
- zsh
- C 쉘 계열
- csh
- tcsh
- Boume 쉘 계열
2. 쉘의 기능
1) 별명 기능
- alias 명령어를 사용하여 명령어 단축 기능 사용
- 명령어에 어떤 별칭을 지정하여 축약 명령어로 사용
- 터미널을 재실행 하면 별칭 지정은 초기화 된다.
# 예시
alias ls='ls -l'
alias c='clear'
2) History 기능
- 사용한 명령어 저장 기능
- history 명령어 또는 위/아래 방향키로 검색
3) 자동 이름 완성 기능
- 탭(tab) 키를 이용하여 파일 이름 자동완성
4) 프롬프트 제어 기능
- 환경변수에 쉘 프롬프트 정보 변경
- 프롬프트 상에서 명령어 수정 기능
- 프롬프트에 현재 위치한 디렉토리의 위치가 표시되기 때문에 좀 더 편리하게 사용할 수있다.
- 설정한 프롬프트는 터미널을 재시작하면 초기화 된다.
※ 프롬프트란?
- 명령어를 입력하기 전에 앞에 표시되는 부분을 프롬프트라고 부른다. (아래 사진 참고)
- 이곳에 어떤 정보를 표시하라고 설정할 수 있다.
- 윈도우 같은 경우 경로가 표시
3. 환경 변수
- 리눅스 운영체제가 제공하는 시스템 값
- 리눅스 운영체제 운영에 필수적인 요소
1) 대표적인 환경변수
환경변수 | 설명 |
HOME | 로그인한 사용자의 홈 디렉토리 |
PWD | 현재 작업 디렉토리 |
LOGNAME, USER, USERNAME | 로그인한 사용자 이름 |
PS1 | 쉘 프롬프트 |
HOSTNAME | 호스트의 이름 |
SHELL | 로그인하여 사용 중인 쉘의 종류 |
2) 환경변수 관련 명령어
- 전체 환경변수 보기
- grep 명령을 이용하여 필요한 환경변수만 볼 수 있다.
$ printenv
$ env
- 특정 환경변수 보기
- 윈도우 같은 경우 앞뒤로 " % "를 붙여서 출력한다.
$ echo $환경변수
- 환경변수 설정
- 아래의 설정은 터미널 재실행하면 초기화된다.
$ export 환경변수이름=값
# 기존값에 추가할 때는?
# PATH는 기존의 값을 의미, 콜론(:)은 기존의 값과 구분한다는 의미
$ export PATH = $PATH:새로운값
4. 쉘 초기화 파일
1) 쉘 초기화 파일이란?
- 시스템이 부팅될 때 자동으로 인식되는 파일을 말한다.
- 각종 환경변수 설정이나 자주 사용하는 명령어에 대한 alias등을 지정해 놓을 수 있다.
- 보통 2차 초기화 파일은 잘 사용하지 않는다.
구분 | 모든 사용자를 위한 파일 | 각 사용자를 위한 파일 |
1차 초기화 파일 | /etc/profile | $HOME/.zshrc_profile (.bash_profile) |
2차 초기화 파일 | /etc/zshrc | $HOME/.bashrc |
※ zsh 설치시 .zshrc에 설정, 아니라면 .bashrc에 설정한다.
2) 1차 초기화 파일 편집하기
- vi편집기로 자신의 홈 디렉토리에 있는 .zshrc_profile을 연다.
vi $HOME/.zshrc_profile
또는
vi ~/.zshrc_profile
- " # " 으로 시작되는 라인은 주석으로 처리된다.
- 작성 후 :wq 명령어로 빠져나온다.
3) 변경된 초기화 파일 적용
- 초기화 파일을 수정한 경우 현재 shell에 로드시키기 위해 다음 명령어를 수행해야 한다.
source $HOME/.zshrc_profile
또는
source ~/.zshrc_profile
'국비수업 > Linux' 카테고리의 다른 글
[Linux] 네트워크와 방화벽 (0) | 2022.07.22 |
---|---|
[Linux] 서비스와 리눅스 패키지 (0) | 2022.07.21 |
[Linux] 프로세스 관리 (0) | 2022.07.20 |
[Linux] 파일 다운로드, 압축하기 (0) | 2022.07.20 |
[Linux] 사용자 및 그룹 관리 (0) | 2022.07.20 |