Linux에서 Bash를 더 유용하게 만들기 위해 BashRC 파일을 편집하는 방법

Bash 셸은 강력하지만 때로는 사용자 정의가 필요할 수 있습니다. 이 글에서는 `~/.bashrc` 파일을 수정하여 터미널 환경을 효율적으로 개선하는 방법을 살펴보겠습니다. 편집하기 전에 다음 명령으로 `~/.bashrc` 파일을 백업해 두는 것이 좋습니다.

cp ~/.bashrc ~/.bashrc.bak

히스토리 검색 기능 강화

Fish 셸의 주요 특징 중 하나는 입력하는 동안 명령어를 빠르게 완성해주는 기능입니다. 이 기능은 과거에 사용했던 명령어나 작업을 쉽게 불러올 수 있도록 도와줍니다. 아쉽게도 Bash는 기본적으로 이 기능을 제공하지 않으므로, 과거 명령어를 확인하려면 히스토리 파일을 직접 살펴봐야 하는 번거로움이 있습니다.

하지만 `~/.bashrc` 파일을 간단히 편집함으로써 Bash에서도 Fish 셸과 비슷한 기능을 구현할 수 있습니다. 먼저 Nano 편집기를 사용하여 파일을 열고 다음과 같은 코드를 추가합니다.

nano ~/.bashrc

파일 내부에서 `”# User specific aliases and functions”` 와 같은 주석을 찾거나 파일 하단에 다음 코드를 붙여넣습니다. 일부 리눅스 배포판에서는 `~/.bashrc` 파일이 사용자 정의되어 있을 수 있으므로, 해당 주석을 찾을 수 없다면 파일 맨 아래에 코드를 추가하면 됩니다.

bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'

이 코드는 위쪽 화살표 키(↑)와 아래쪽 화살표 키(↓)를 사용하여 Bash 히스토리를 탐색할 수 있도록 설정합니다. 변경 사항을 저장하려면 `Ctrl + O`를 누르고, Nano 편집기를 종료하려면 `Ctrl + X`를 누릅니다. 변경 사항을 적용하려면 터미널을 닫았다가 다시 열어야 합니다.

더 효율적인 히스토리 로깅

대부분의 터미널 셸과 마찬가지로 Bash는 사용자의 편의를 위해 입력한 모든 명령어를 파일에 기록합니다. 이는 유용한 기능이지만, 중복된 명령어가 많아지면 히스토리 파일이 복잡해져서 원하는 명령어를 찾기 어려울 수 있습니다. 이러한 문제를 해결하기 위해 중복된 명령어를 제거하는 설정을 `~/.bashrc` 파일에 추가하여 Bash가 명령어를 처리하는 방식을 개선할 수 있습니다.

nano ~/.bashrc

Nano 편집기에서 다음 코드를 추가합니다.

export HISTCONTROL=ignoredups

Zsh 스타일 명령 도움말

Zsh 셸에서는 `Alt + H` 키를 누르면 터미널 명령 설명서를 빠르게 열 수 있습니다. Bash에서 매뉴얼에 접근하려면 `man` 명령어를 사용해야 합니다. 따라서 Zsh 방식이 더 편리하다고 할 수 있습니다. 이 기능을 Bash에 추가하려면 `~/.bashrc` 파일의 맨 아래에 다음 코드를 추가하십시오.

bind '"\eh": "C-a\e\bed\C-y\e#man C-y\C-m\C-p\C-p\C-a\C-d\C-e"'

자동 `cd` 기능

Zsh 셸의 또 다른 편리한 기능은 디렉토리 이름을 입력하는 것만으로 자동으로 해당 디렉토리로 이동하는 기능입니다. 항상 `cd somedirectory`를 입력할 필요가 없습니다. Bash에서 `cd` 명령어를 사용하는 것이 어렵지는 않지만, 여러 디렉토리를 이동할 때마다 반복적으로 입력하는 것은 번거로울 수 있습니다.

Nano 편집기를 사용하여 `~/.bashrc` 파일을 열고 다음 코드를 추가합니다.

...
shopt -s autocd
...

`Ctrl + O`를 눌러 저장하고, `Ctrl + X`를 눌러 편집기를 종료합니다. 터미널을 닫았다가 다시 열면 이제 `cd` 명령어 없이 디렉토리 경로만 입력하여 이동할 수 있습니다. 예를 들어 다음과 같이 사용할 수 있습니다.

/usr/bin/

탭 자동 완성 기능 개선

많은 사용자가 모르고 있지만 Bash의 강력한 기능 중 하나는 탭 자동 완성 기능입니다. 기본적으로 Bash는 명령어나 디렉토리 이름을 입력할 때 처음 몇 글자만 입력하고 `Tab` 키를 누르면 나머지를 자동으로 완성해줍니다. 하지만 기본 탭 완성 기능은 완벽하지 않아서 종종 오작동하거나 원하는 결과를 얻지 못할 수 있습니다.

다행히 Bash의 탭 완성 기능을 개선하는 방법이 있습니다. 다른 설정과는 달리 이 섹션에서는 패키지 설치만 필요합니다. 터미널을 열고 다음 명령어를 사용하여 `bash-completion` 패키지를 설치합니다.

우분투

sudo apt install bash-completion

데비안

sudo apt install bash-completion

아치 리눅스

sudo pacman -S bash-completion

페도라

sudo dnf install bash-completion

오픈수세

sudo zypper install bash-completion

`~/.bashrc` 파일 초기화

이 가이드에서는 `~/.bashrc` 파일을 여러 번 편집했습니다. 그 결과 Bash 터미널의 동작이 변경되었을 것입니다. 이러한 변경 사항은 Bash를 더욱 현대적이고 유용하게 만들지만, 모든 사용자에게 적합한 것은 아닐 수 있습니다. 일부 사용자는 Bash의 기본 설정을 선호할 수도 있습니다.

운 좋게도 이 가이드 초반에 원본 `~/.bashrc` 파일을 백업해 두었습니다. 백업이 있다면 이 튜토리얼에서 변경한 내용을 쉽게 되돌릴 수 있습니다. 백업을 복원하려면 먼저 터미널을 열고 현재 사용 중인 `~/.bashrc` 파일을 삭제합니다.

rm ~/.bashrc

수정된 파일을 삭제한 후에는 이전 백업 파일을 복원할 수 있습니다.

cp ~/.bashrc.bak ~/.bashrc

이 명령어를 실행하면 `~/.bashrc` 파일이 원래 상태로 복원됩니다. 변경 사항을 완전히 적용하려면 컴퓨터를 재시작하십시오.