| ⬅️ 이전 | 🏠 분류 목차 |
쉘 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
서브목차