Post

03. 셸 사용법

03. 셸 사용법

1. 셸의 기능과 종류

  • 셸은 사용자와 리눅스 커널 사이에서 중간자 역할을 한다.
  • 사용자가 로그인할 때 자동으로 실행되는 기본 셸을 로그인 셸이라고 하며 /etc/passwd 파일에 지정되어 있다. 기본 셸은 chsh 명령으로 변경할 수 있다.

2. 셸 특수문자

특수문자기능예시
*임의의 문자 또는 문자열ls f*
?임의의 문자 하나ls ?f?.txt
[]괄호 안에 포함된 문자 중 하나ls [a-z]*
~사용자 홈 디렉터리cd ~
-이전 디렉터리cd -
;한 행에 여러 개의 명령 입력ls; pwd
|왼쪽 명령의 결과를 오른쪽 명령의 입력으로 전달“ls | wc -l”
' '모든 특수문자를 문자 그대로 처리echo '$USER'
" "$, 백틱, \을 제외한 모든 특수문자를 문자 그대로 처리echo "$USER"
백틱 백틱문자열을 명령으로 해석하여 실행echo 백틱date백틱
\특수문자 기능을 제거하고 일반 문자로 처리echo "\$USER"
>, >>, <입출력 방향 전환ls > ls.out

3. 셸 변수와 환경 변수

  • 지정한 셸에서만 사용할 수 있는 셸 변수와 전체 셸에서 사용할 수 있는 환경 변수가 있다.
동작설정 방법예시
변수 정의(셸 변수) 변수명=값
(환경 변수) export 변수명=값
USER=kim
export USER=kim
변수 참조변수명echo $USER
변수 삭제unset 변수명unset USER
전체 변수 출력set, env (환경 변수)set, env
특정 변수 출력echo $변수명echo $USER
  • 주요 환경 변수는 다음과 같다.
환경변수의미
HISTSIZE히스토리 저장 크기
HOME사용자 홈 디렉터리의 절대 경로
LANG사용하는 언어
LOGNAME사용자 계정 이름
PATH명령을 탐색할 경로
PWD작업 디렉터리 절대 경로
SHELL로그인 셸

4. 입출력 방향 (리다이렉션)

  • >: 파일 내용 덮어쓰기 (ls -al > ls.out)
  • >>: 파일에 내용 추가하기 (ls -al >> ls.out)
  • 2>: 표준 오류 방향 바꾸기 (ls /qfasd 2> ls.err)
  • <: 입력 방향 바꾸기 (cat < out.txt)
  • 2>&1: 표준 출력과 표준 오류를 한 파일에 리다이렉션하기 (ls abd def > ls.out 2>&1)
  • 표준 출력과 표준 오류를 한 번에 리다이렉션하기 (ls abd def > ls.out 2> ls.err)

5. alias와 history

  • alias: 명령에 다른 별칭을 붙이는 기능이다.
    • 생성: alias 이름=명령
    • 삭제: unalias 이름
    • 예시: alias ll='ls -al'
  • history: 명령 기록을 확인하는 기능이다.
    • 히스토리 목록 보기: history
    • !!: 마지막 명령 실행
    • !c: 해당 문자열로 시작하는 마지막 명령 실행
    • !141: 번호 141 명령 실행

6. 환경 설정 파일

환경 설정 파일은 시스템 환경 설정 파일과 사용자 환경 설정 파일로 구분된다. 로그인 시 ‘시스템 환경 설정 파일 -> 사용자 환경 설정 파일’ 순서로 실행하여 사용자 환경을 설정한다.

배시셸의 시스템 환경 설정 파일

/etc/profile
본셸이나 본셸과 호환되는 모든 셸에 공통으로 적용되는 환경 설정 파일이다.
  • 배시셸의 경우 bash.bashrc를 호출한다.
  • 배시셸이 아닌 경우 프롬프트를 #(root 계정) 또는 $(일반 계정)로 설정한다.
  • etc/profile.d/*.sh 파일을 실행한다.
/etc/bash.bashrc
시스템 공통으로 적용되는 .bashrc 파일이다.
  • 기본 프롬프트를 설정한다.
  • sudo 명령과 관련된 힌트를 설정한다.
/etc/profile.d/*.sh
언어나 명령별로 각각 필요한 환경을 설명하며, 필요시 설정 파일을 추가한다.

배시셸의 사용자 환경 설정 파일

.profile
.bashrc 파일이 있으면 실행한다. 경로 추가 등 사용자가 정의할 수 있다.
.bashrc
히스토리의 크기, 기본 앨리어스나 함수 등을 설정할 수 있다.
.bash_logout
로그아웃 시 실행할 필요가 있는 함수 등을 설정한다.
.bash_aliases
사용자가 정의한 앨리어스를 저장한다. 기본으로 있는 파일은 아니며 필요시 만들 수 있다.
This post is licensed under CC BY 4.0 by the author.