Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

Bash 프로필(~/.bash_profile)이란? 설정 및 활용 방법 총정리

리눅스에서 Bash 셸을 자주 사용하다 보면 나만의 단축 명령어를 추가하거나, 작업 환경을 취향에 맞게 조정하고, 심지어 개성 있는 꾸미기 요소를 넣고 싶어질 때가 있습니다.

바로 이런 목적을 위해 Bash 프로필이 존재합니다. Bash 프로필은 홈 디렉터리에 저장되며, 이를 편집하면 로그인할 때마다 원하는 대로 환경이 자동으로 설정되도록 만들 수 있습니다.

Bash 프로필 편집하기

Bash 프로필을 편집하려면 nano 텍스트 편집기로 파일을 열면 됩니다. 아래 명령어를 실행해 보세요.

nano ~/.bash_profile

현재 프로필을 백업해 두고 싶다면 다음과 같이 복사본을 만들어 두는 것이 좋습니다.

cp .bash_profile .bash_profile.bak

만약 ~/.bash_profile 파일이 존재하지 않으면 대신 ~/.profile 파일이 읽힙니다. 우분투(Ubuntu) 리눅스 배포판이 기본적으로 이 방식을 사용합니다.

기본 ~/.profile 파일의 내용을 새로 만든 ~/.bash_profile로 가져와 편집하고 싶다면 아래 명령어로 복사할 수 있습니다.

cp ~/.profile ~/.bash_profile

참고: 리눅스 셸에서 ~/는 현재 사용자의 홈 디렉터리를 가리키는 축약 표현입니다.

활용 예시

Bash 프로필로 할 수 있는 몇 가지 유용한 예시를 소개합니다.

셸 프롬프트 변경하기

보통 셸 프롬프트는 다음과 같은 형태로 표시됩니다.

admin@wsxdn.com:~$

즉, 사용자 이름, 호스트명, 현재 작업 디렉터리가 조합된 모습입니다. 이를 변경하려면 .bash_profile 파일을 수정하고 다음 줄을 추가하면 됩니다.

export PS1="🚂"

이렇게 하면 프롬프트가 기차( locomotive ) 이모지로 바뀝니다. 이것만으로는 크게 실용적이지 않지만, 여기에 다른 요소들을 추가할 수 있습니다.

예를 들어 현재 로그인한 사용자 이름 뒤에 기차 이모지가 붙도록 하려면 다음과 같이 작성합니다.

export PS1="\u 🚂"

원하는 텍스트, 문자, 값을 자유롭게 추가할 수 있습니다. 날짜, 사용자 이름, 현재 디렉터리 등 사용 가능한 내장 변수의 전체 목록은 GNU Bash 공식 매뉴얼에서 확인하세요.

https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Controlling-the-Prompt

글자색과 배경색 변경하기

위 예시를 확장해 색상까지 추가할 수 있습니다. 아래 예시는 프롬프트 글자를 빨간색으로, 배경을 파란색으로 지정합니다.

export PS1="\e[44;31m\u 🚂 \e[0m "

아래 코드는 기차 이모지가 깜박이도록 만듭니다.

export PS1="\e[44;31m\u \e[5m🚂 \e[0m "

각 코드의 의미는 다음과 같습니다.

  • \e[ : 서식 지정 시작
  • 44;31 : 각각 배경색과 글자색 지정
  • \e[5m : 기차 아이콘을 깜박이게 함
  • \e[m : 모든 속성을 초기화하여 서식 지정 종료

사용할 수 있는 색상과 서식 옵션은 매우 다양합니다. 아래는 전체 목록은 아니지만 유용하게 쓸 수 있는 몇 가지 예시입니다.

코드 의미 예시
1 굵게(Bold) “\e[1m굵은 글씨”
2 흐리게(Dim) “\e[2m흐린 글씨”
3 밑줄(Underline) “\e[4m밑줄 글씨”
4 깜박임(Blink) “\e[5m깜박이는 글씨”
5 색 반전(Invert) “\e[7m반전 글씨”

사용 가능한 색상은 숫자 값으로 표현되며, 배경색/글자색 조합으로 짝지어 사용할 수 있습니다. 색상 코드는 실행 환경에 따라 다를 수 있으므로, 아래 명령어를 실행하면 자신의 시스템에서 사용 가능한 조합을 확인할 수 있습니다.

for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo ""

나만의 단축 명령어(함수) 추가하기

동일한 명령어 시퀀스를 계속 입력하고 있다면, Bash 프로필에 단축 함수를 정의해 두는 것이 좋습니다. 아래 코드를 ~/.bash_profile 파일에 추가하면, 디렉터리 목록을 출력한 뒤 멋진 디렉터리라며 칭찬하는 새 함수가 정의됩니다.

myShortcut(){
        ls -la
        echo "Look at that nice directory!"
}

이제 셸에서 다음 명령어만 입력하면 해당 함수의 내용이 실행됩니다.

myShortcut

변경 사항 적용하기

프로필을 수정한 뒤 터미널을 재시작하거나 닫지 않고도 변경 사항을 바로 적용하려면 아래 명령어를 실행하세요.

source ~/.bash_profile

Zsh는 어떨까?

앞서 zsh 셸에 대해 살펴본 적이 있습니다. Zsh 역시 Bash 프로필과 동일한 역할을 하는 프로필 파일을 가지고 있으며, 위치는 다음과 같습니다.

~/.zprofile

이 파일 역시 Bash 프로필처럼 자유롭게 편집할 수 있으며, Zsh 전용 기능들도 함께 사용할 수 있습니다. 직접 시도해 보세요!