Linux 셸(Shell)은 사용자와 컴퓨터 사이에 상호작용하는 인터페이스로, 명령어를 입력하고 실행하여 시스템을 제어할 수 있게 해줍니다. 여러 가지 셸이 존재하지만, 가장 일반적으로 사용되는 것은 Bash(Bourne Again SHell)입니다. Bash는 대부분의 Linux 배포판에서 기본 셸로 제공되며, 다양한 기능과 확장성을 제공합니다.
기본적인 셸 사용법
- 명령어 실행
- 셸 프롬프트에서 명령어를 입력하고 엔터 키를 누르면 명령어가 실행됩니다.
- 예:
ls
,cd
,mkdir
,cp
등의 명령어를 실행하여 파일 시스템을 탐색하고 관리할 수 있습니다.
- 파일 경로 및 와일드카드 사용
- 파일이나 디렉토리의 경로를 지정할 때
/
를 사용합니다. - 와일드카드(
*
,?
등)를 사용하여 파일 이름 패턴을 매칭할 수 있습니다.
- 히스토리 관리
- 이전에 입력한 명령어들의 목록을 보고 실행할 수 있습니다.
- 화살표 키(위, 아래)를 사용하여 이전 명령어를 선택할 수 있습니다.
history
명령어를 사용하여 전체 명령어 히스토리를 확인할 수 있습니다.
- 파이프라인과 리다이렉션
|
를 사용하여 명령어의 출력을 다음 명령어의 입력으로 보냅니다.- 리다이렉션(
>
,>>
,<
)을 사용하여 파일로의 출력이나 파일로부터의 입력을 관리할 수 있습니다.
- 셸 변수와 환경 변수
$변수명
형식을 사용하여 변수 값을 사용할 수 있습니다.export 변수명=값
을 사용하여 환경 변수를 설정할 수 있습니다.
- 셸 스크립트 작성
- 여러 명령어를 순차적으로 실행하는 스크립트를 작성할 수 있습니다.
#!/bin/bash
와 같은 해시뱅(shebang)을 사용하여 스크립트가 어떤 셸로 실행되어야 하는지 지정할 수 있습니다.
Bash 셸의 주요 기능
- 자동 완성
- 탭 키를 사용하여 명령어, 파일 이름, 변수 등을 자동으로 완성할 수 있습니다.
- 변수와 연산
- 셸 스크립트 내에서 변수를 정의하고, 변수의 값에 따라 조건문을 사용할 수 있습니다.
- 산술 연산, 문자열 조작 등의 기능을 제공합니다.
- 제어 구조
- 조건문(
if
,else
,elif
), 반복문(for
,while
)을 사용하여 특정 조건에 따라 명령어를 실행할 수 있습니다.
- 함수 정의
- 함수를 정의하고 호출하여 코드를 재사용할 수 있습니다.
- 파일 처리
- 파일 읽기, 쓰기, 수정, 삭제 등의 작업을 셸 스크립트에서 수행할 수 있습니다.
Bash 명령어 예시
ls
: 현재 디렉토리의 파일 목록을 출력합니다.cd
: 디렉토리를 변경합니다.pwd
: 현재 작업 중인 디렉토리의 경로를 출력합니다.mkdir
: 디렉토리를 생성합니다.cp
,mv
,rm
: 파일 복사, 이동, 삭제 등의 파일 관리 명령어입니다.grep
,sed
,awk
: 텍스트 검색 및 처리를 위한 유틸리티입니다.echo
: 텍스트를 출력합니다.chmod
,chown
: 파일 권한 설정 및 소유자 변경 명령어입니다.alias
: 명령어의 별칭을 설정하거나 조회합니다.source
,.
,exec
: 스크립트나 파일을 실행하거나 셸 세션에 스크립트를 포함합니다.
셸 스크립트 예시
다음은 간단한 Bash 셸 스크립트 예시입니다.
#!/bin/bash
# 변수 정의
NAME="World"
# 사용자에게 인사 메시지 출력
echo "Hello, $NAME!"
# 현재 날짜와 시간 출력
echo "Current date and time: $(date)"
이 스크립트는 Hello, World!
를 출력하고 현재 날짜와 시간을 표시합니다. 이 외에도 복잡한 로직을 구현할 수 있으며, 시스템 관리 작업 자동화 등 다양한 용도로 활용할 수 있습니다.
셸은 Linux 시스템 관리 및 개발에서 중요한 도구로, 명령어를 통해 간편하게 시스템을 제어하고 관리할 수 있습니다.