⬅️ 이전     🏠 분류 목차

쉘 Shell

쉘 (Shell)

1. 쉘의 개념과 역할

쉘은 커널과 사용자 간의 인터페이스로서 중간 매개의 역할을 담당합니다. 명령어를 해석하고, 명령과 관련된 유틸리티나 커널을 호출하고, 실행 결과를 출력합니다.

쉘의 주요 기능

명령어 해석:

  • 명령어 파싱: 사용자 입력 명령어를 파싱
  • 경로 해석: 명령어의 경로를 찾아 실행
  • 인수 처리: 명령어의 인수 및 옵션 처리
  • 리다이렉션: 입출력 리다이렉션 처리

환경 관리:

  • 환경 변수: 시스템 환경 변수 관리
  • 작업 디렉토리: 현재 작업 디렉토리 관리
  • 명령어 히스토리: 이전 명령어 기록 및 재실행
  • 별칭 관리: 명령어 별칭 및 함수 정의

2. 쉘의 종류

Bash (Bourne Again Shell)

특징:

  • 가장 널리 사용: 리눅스의 기본 쉘
  • GNU 프로젝트: GNU 프로젝트에서 개발
  • POSIX 호환: POSIX 표준 호환성
  • 강력한 기능: 스크립팅, 자동 완성, 히스토리 등

주요 기능:

  • 명령어 히스토리: 이전 명령어 검색 및 재실행
  • 명령어 완성: Tab 키를 이용한 자동 완성
  • 별칭(Alias): 명령어 단축 및 커스터마이징
  • 함수 정의: 사용자 정의 함수 작성

Zsh (Z Shell)

특징:

  • Bash 확장: Bash의 확장된 기능
  • 플러그인 시스템: 강력한 플러그인 시스템
  • Oh My Zsh: 프레임워크 지원
  • 사용자 친화적: 향상된 사용자 경험

Fish (Friendly Interactive Shell)

특징:

  • 사용자 친화적: 직관적인 인터페이스
  • 구문 강조: 명령어 구문 강조
  • 자동 완성: 지능적인 자동 완성
  • 설정 파일 없음: 복잡한 설정 파일 불필요

3. 쉘의 사용법

기본 명령어

파일 및 디렉토리 관리:

# 현재 디렉토리 확인
pwd

# 디렉토리 목록 보기
ls -la

# 디렉토리 이동
cd /path/to/directory

# 디렉토리 생성
mkdir directory_name

# 파일/디렉토리 삭제
rm -rf directory_name

프로세스 관리:

# 프로세스 목록 확인
ps aux

# 실시간 프로세스 모니터링
top

# 프로세스 종료
kill process_id

# 백그라운드 작업
command &

쉘 스크립팅

기본 스크립트 예제:

#!/bin/bash
# 기본 스크립트 템플릿

echo "Hello, World!"
echo "Current directory: $(pwd)"
echo "Current user: $(whoami)"

# 조건문 예제
if [ -f "file.txt" ]; then
    echo "file.txt exists"
else
    echo "file.txt does not exist"
fi

# 반복문 예제
for i in {1..5}; do
    echo "Count: $i"
done

⬅️ 이전

서브목차