글 목록으로 돌아가기

Linux

Shell

bash shell 개념, 쉘 내장 명령, 특수 문자, 표준 입출력, 변수 정리

Dohyeon Kim
Dohyeon Kim 2026년 7월 20일 · 2분 읽기
Linux AutoEverSW

개요

  • 사용자가 입력한 명령을 해석하여 커널에 전달, 처리 결과를 사용자에게 전달하는 역할을 수행

기능

  • 명령어 해석기
  • 프로그래밍
  • 사용자 환경 서정
    • 초기화 파일을 제공
    • 초기화 파일에 명령을 찾아오는 경로 또는 파일과 디렉토리 생성 시 기본 권한 설정 등을 작성
    • 사용자가 로그인 할 대 설정 파일을 읽어 사용자 별 특성에 맞게 초기 환경 설정됨

종류


  • 본쉘
  • C쉘
  • 콘쉘
  • Bash 쉘
  • z쉘

1 ) Bash Shell


  • 우분투에서 기본 제공하는 쉘

지원 쉘 확인

  • cat /ect/shells

사용자 쉘 확인

  • grep {user} /etc/passwd

    쉘 변경(절대경로 사용)

  • chsh -s {shellName} {userName}

2 ) Shell 내장 명령


  • 쉘은 자체 내장 명령을 가지고 있음
    • 디렉토리 샐행 파일 없이 쉘 안에 명령이 포함됨
  1. echo [-n] [str|arg] → 화면에 한 줄의 문자열을 출력
    • echo [-n] [str|arg]
    • n은 줄바꿈
    • 공백 또는 - --가 있을 경우 ` “ “ `필요
  2. printf [형식] [인수] → C에서의 함수와 사용법 동일
  3. 특수 문자 → 사용자가 편리하게 명령 입력 • 실행할 수 있도록 다양한 특수 문자 제공 → 명령 입력 시 특수 문자 존재 확인 후 해독하여 변경한 후 명령 실행
  4. 백틱 → 명령을 수행한 후 명령의 결과를 대체

2 ) 표준 입출력


종류

파일 디스크립터 대신 사용하는 이름 정의
0 stdin 표준 입력
1 stdout 표준 출력
2 stderr 표준 오류

출력 Redirection

  • 출력의 방향을 바꿈
  • 기본적으로 출력은 모니터
  • Format → 명령 1 > 경로 → 명령 > 경로
# date 명령의 결과를 파일로 저장
date 1>print.txt
ls
exec.txt  print.txt  test.txt  test1.txt
cat print.txt
2026. 07. 21. () 10:33:48 KST
  명령의 수행 결과를 print.txt 저장
 
 
# 파일에 내용 추가는 ` > ` 대신 ` >> `사용
date 1>>print.txt
cat print.txt
2026. 07. 21. () 10:33:48 KST
2027. 07. 21. () 10:34:37 KST

오류 Redirection

  • 오류 메시지를 모니터가 아닌 다른 곳에 출력
  • Format → 명령 2>경로 → 1로 하면 성공했을 때 기록, 실패는 기록하지 않음
# 
ls a 2>err.txt
cat err.txt 
ls: cannot access 'a': No such file or directory
  • 오류 메시지 버리기 → 2>/dev/null

  • 성공과 실패 모두 기록
    • {cmd} >{savePath} 2>&1

      입력 Redirection

  • 표준 입력을 변경하는 것
  • 표준 입력은 키보드
  • 표준 입력을 파일로 변경하는 것

3 ) 변수


종류

  • 쉘 변수 → 현재 쉘에서 사용 가능한 변수
  • 환경 변수 → 시스템 전체에 적용되는 변수

    변수 확인

  • echo $변수명
  • env: 환경 변수 전부 출력
  • set: 모든 변수와 함수를 출력

    변수 생성 및 수정

  • 변수이름 = 값
  • -없으면 생성되고 있으면 수정

댓글