Bash
Bash(Bourne Again Shell)는 GNU 프로젝트를 위해 개발된 UNIX 계열 명령 인터프리터이자 스크립트 언어다. Brian Fox가 1989년에 처음 공개했으며, 이후 Chet Ramey 등 개발자가 유지·발전시켜 왔다. 기본적으로 Stephen Bourne의 셸 sh와...
| 정식 명칭 | Bourne Again Shell |
|---|---|
| 분류 | 셸, 스크립트 언어, 명령 인터프리터 |
| 개발자 | Brian Fox; 이후 Chet Ramey 등 |
| 최초 공개 | 1989년 |
| 개발 주체 | GNU 프로젝트 |
| 선행 언어 | Bourne shell (sh) |
| 관련 셸 | KornShell, C shell |
| 패러다임 | 명령형 프로그래밍, 명령 조합 |
| 실행 방식 | 명령 해석, 프로세스 실행 |
| 주요 파일 | 셸 스크립트 .sh 및 실행 파일 |
| 활용 | 대화형 셸, 시스템 자동화 |
| 표준 기반 | POSIX Shell과 확장 문법 |
| 라이선스 | GNU GPL |
| 공식 문서 | GNU Bash Manual |
Bash(Bourne Again Shell)는 GNU 프로젝트를 위해 개발된 UNIX 계열 명령 인터프리터이자 스크립트 언어다. Brian Fox가 1989년에 처음 공개했으며, 이후 Chet Ramey 등 개발자가 유지·발전시켜 왔다. 기본적으로 Stephen Bourne의 셸 sh와 호환되는 문법을 제공하면서 Korn shell과 C shell에서 알려진 대화형 편집, 작업 제어와 편의 기능을 도입했다. GNU/Linux의 여러 배포판과 UNIX 계열 시스템에서 일상적인 명령 실행과 자동화를 위한 대표적인 셸로 사용된다.[1]
Bash에서는 하나의 명령을 직접 실행하거나 명령 여러 개를 파이프로 연결해 표준 입력과 출력을 전달할 수 있다. 리다이렉션을 통해 파일과 명령의 입출력을 연결하고, 프로세스의 종료 상태를 조건 분기와 작업 흐름의 판단 기준으로 활용한다. 변수, 조건문, 반복문과 함수 정의도 지원하므로 텍스트 파일에 명령을 저장해 순차 실행하는 것 이상의 복잡한 시스템 작업을 구현할 수 있다.
언어는 매개변수 확장, 명령 치환, 산술 확장, 배열과 문자열 패턴 매칭 같은 기능을 제공한다. 그러나 일반적인 컴파일 언어와 달리 셸 명령·단어 분리·인용 규칙·파일 이름 확장 등이 프로그램 의미에 큰 영향을 준다. 같은 문자열을 작성하더라도 따옴표의 사용 여부에 따라 인수가 분리되거나 와일드카드가 확장될 수 있어, 소스의 의미는 외부 명령 실행과 셸의 확장 순서를 함께 이해해야 정확하게 결정된다.[2]
Bash는 터미널에서 명령을 입력하는 대화형 방식과 파일을 읽는 비대화형 스크립트 방식을 모두 지원한다. 운영체제 설치와 배포, CI 작업, 파일 처리와 프로세스 관리 등에 널리 쓰이며, POSIX 호환 셸 프로그램도 상당 부분 실행할 수 있다. 다만 Bash 전용 문법과 POSIX 셸의 공통 문법은 구별되므로, 다른 셸에서 실행할 스크립트는 그 실행 환경에 맞춰 작성해야 한다.