Bash 쉘은 다양한 기능들을 제공하며 히스토리, 별명, 작업 제어 등을 통해 쉘의 핵심을 효과적으로 활용할 수 있습니다.
현재 Bash는 유닉스, 리눅스, macOS 등에서 널리 사용되고 있습니다.
Bash 쉘은 내장된 보안 기능을 갖추고 있어 사용자의 입력을 정확하게 기록하고 .bash_history라는 숨겨진 파일에 저장합니다.
이를 통해 사용자를 철저하게 추적할 수 있습니다.
Bash 쉘은 정수 계산을 효율적으로 수행하며, 표준 출력(stdout)과 표준 오류(stderr)를 다루는 데 강력한 기능을 제공합니다.
Bash 쉘에서는 사용자가 자신의 환경을 정의할 수 있도록 로그인 시작 파일을 수정할 수 있습니다.
시작 파일의 종류는 다음과 같습니다:
/etc/profile: 전체 사용자에게 적용되는 환경을 설정하고 시작 프로그램을 지정할 수 있습니다.
/etc/bashrc: 전체 사용자에게 적용되는 별명과 함수를 정의할 수 있습니다.
~/.bash_profile: 각 사용자를 위한 환경을 설정하고 시작 프로그램을 지정할 수 있습니다.
~/.bashrc: 각 사용자를 위한 별명과 함수를 정의할 수 있습니다.
이렇게 각 사용자는 자신의 .bash_profile 파일을 통해 개별적인 환경을 설정할 수 있습니다.
이 파일은 사용자의 환경 변수를 정의하는 데 사용되며, 전체 사용자에게 적용되는 /etc/profile과는 별도로 사용자가 원하는 환경을 설정할 수 있습니다.
Bash 쉘에서는 alias 명령어를 사용하여 기존 명령에 새로운 이름을 부여할 수 있습니다.
alias 이름=문자열: 문자열이 나타내는 기존 명령에 대해 새로운 이름을 정의합니다.
unalias 이름: 이름으로 정의된 별명을 해제합니다.
Bash 쉘은 사용자가 입력한 명령어를 기억하는 히스토리 기능을 제공합니다.
history [-rh][번호]: 지금까지 입력된 명령어들(히스토리)을 리스트합니다.
히스토리 기능을 활용하여 이미 실행된 명령을 간편하게 재실행할 수 있습니다.
!!: 바로 전 명령을 재실행합니다.
!n: 이벤트 번호가 n인 명령을 재실행합니다.
!시작문자열: 시작 문자열로 시작하는 최후 명령을 재실행합니다.
!?서브문자열: 서브 문자열을 포함하는 최후 명령을 재실행합니다.
쉘에서는 변수를 사용할 수 있으며, 타입 선언이 필요 없습니다. 단순 변수와 리스트 변수가 있습니다.
단순 변수: 변수이름=문자열
리스트 변수: 변수이름=(문자열1 문자열2 ...)
read 명령어를 사용하여 표준 입력에서 한 줄을 읽어 변수에 저장합니다.
read 변수1 변수2 ...: 표준 입력에서 한 줄을 읽어 변수에 순서대로 저장합니다.
쉘 변수는 환경변수와 지역변수로 나눌 수 있습니다.
export 명령어를 사용하여 지역변수를 환경변수로 만들 수 있습니다.
export 변수이름: 지정한 지역변수를 환경변수로 만듭니다.
Bash 쉘에서는 스크립트를 작성하여 실행할 수 있습니다. 기본적인 환경 변수와 몇 가지 특수 변수들이 사용됩니다.
$0: 쉘 스크립트의 이름
$1~$9: 명령줄 인수
$*: 모든 명령줄 인수 리스트
$#: 명령줄 인수의 개수
비교 연산자를 사용하여 조건식을 작성할 수 있습니다. 산술, 문자열, 파일 관련 등 다양한 비교 연산이 가능합니다.
if 조건식
then
명령들
else
다른 명령들
fi
for 변수 in 리스트
do
명령들
done
함수이름() {
명령들
}
bash -vx 스크립트 [명령줄 인수]
shift 명령어:
리스트 변수 내의 원소들을 왼쪽으로 이동합니다.
shift: 명령줄 인수들을 왼쪽으로 이동합니다.
변수 타입 선언:
declare 또는 typeset 명령어를 사용하여 변수의 타입을 선언할 수 있습니다.
declare -r 변수: 읽기 전용 변수로 선언
declare -i 변수: 정수형 변수로 선언