포스트

리눅스에서 powershell 대신 추천? bash로 더 잘 쓰는 법(bash-completion + fzf)

리눅스에서 powershell을 따로 설치해서 사용하는 것이 권장되는가? 일반적인가? 에 대한 짧은 결론:

-> 윈도우와 같이 개발하는게 아니라면 굳이 추천하지 않음. 왜냐하면 리눅스에서 사용하는 bash에는 더 표준적인 자료들이 풍부하고 리눅스 설치 프로그램도 전부 bash 기준이기 때문.

그렇다면, 최신 버전 powershell에서 제공하는 편리한 자동완성 기능은 bash에서도 쓸 수 있는가? 에 대한 결론:

-> bash도 탭 자동완성이 지원되고, 추가적인 플러그인을 설치해서 더 강력하게 사용할 수 있음.


  • 대부분의 리눅스 배포판 기본 쉘이 bash → 그냥 다 같이 씀
  • bash-completion만 깔아주면 docker, git, kubectl, ssh 같은 명령어 자동완성 지원
  • 기업/서버 환경에서도 표준

bash-completion + fzf 설치 방법:

1
2
3
sudo apt update
sudo apt install bash-completion fzf

1
nano ~/setup_bashrc_fzf.sh

아래 내용 붙여넣기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash

# .bashrc 경로
BASHRC="$HOME/.bashrc"

# 함수: 마커 기반 블록이 없으면 추가
add_if_not_exists() {
  local marker="$1"
  local block="$2"
  if ! grep -q "# >>> $marker" "$BASHRC"; then
    echo -e "\n# >>> $marker\n$block\n# > "$BASHRC"
  fi
}

# ✅ fzf key-bindings
add_if_not_exists "fzf-keybindings" 'if [ -f /usr/share/doc/fzf/examples/key-bindings.bash ]; then
  source /usr/share/doc/fzf/examples/key-bindings.bash
fi'

# ✅ fzf completion
add_if_not_exists "fzf-completion" 'if [ -f /usr/share/doc/fzf/examples/completion.bash ]; then
  source /usr/share/doc/fzf/examples/completion.bash
fi'

# ✅ 대소문자 무시 자동완성
add_if_not_exists "completion-ignore-case" 'bind "set completion-ignore-case on"'

# ✅ globstar (for **)
add_if_not_exists "globstar" 'shopt -s globstar'

# 적용
source "$BASHRC"
echo -e "\n✅ .bashrc 설정 추가 및 적용 완료!"

  • Ctrl + O → Enter (저장)
  • Ctrl + X (종료)
1
2
3
4
5
# 실행 권한 부여
chmod +x ~/setup_bashrc_fzf.sh

# 실행
~/setup_bashrc_fzf.sh

다음 설정 파일 열어서 잘 적용되었는지 확인.

1
nano ~/.bashrc

  • ❌ 명령어 옵션 자동완성 제한적 (예: git che 안 됨)
  • ❌ 탭 완성 시 대소문자 구분 (불편함)
  • ❌ ** 재귀 디렉토리 검색 안 됨
  • ❌ Ctrl+R 히스토리 검색 불편 (줄 단위, 탐색 어려움)
  • ❌ Ctrl+T, Alt+C 등 단축키 없음
  • ✅ 표준 bash 스크립트만 가능

  • ✅ bash-completion 활성화 → 명령어/옵션 자동완성 강화
  • ✅ 대소문자 구분 없는 탭 완성
  • */.log 같은 재귀 검색 가능 (globstar)
  • ✅ fzf 기반:
  • Ctrl+R → 히스토리 실시간 검색 (PowerShell보다 강력)
  • Ctrl+T → 파일 탐색기처럼 선택 & 자동삽입
  • Alt+C → 디렉토리 탐색 & 이동
  • ✅ 모든 기능은 bash 표준 안에서 작동 (안정성 유지)

사용법 예시

🧠 1. 이전 명령어 빠르게 찾기 (fzf + Ctrl+R)

1
 # 입력: pip

과거 pip install, pip freeze 등 명령어 목록에서 실시간 검색 → 방향키로 선택 → Enter!


📂 2. 파일 이름 자동완성 (fzf + Ctrl+T)

1
vim 

원하는 파일 선택 → 자동으로 vim ./경로/파일.py 입력됨


📁 3. 디렉토리 이동 자동완성 (fzf + Alt+C)

1

하위 폴더를 실시간 검색해서 cd ./src/utils 처럼 이동됨


🧪 4. 명령어 자동완성 예시 (bash-completion)

1
2
3
git ch # → git checkout
docker con # → docker container ... 
kubectl ge # → kubectl get ...

🔎 5. 재귀적 검색 (globstar)

1
ls **/*.py # 하위 폴더 포함 파이썬 파일 전부 찾기

🧨 6. 명령어 단축키 히스토리

1
2
3
4
sudo !! # 직전 명령 sudo로 재실행 
!git # 가장 최근의 git 명령 실행 
!^ # 직전 명령의 첫 번째 인자 
!$ # 직전 명령의 마지막 인자

🧹 7. 프로세스 종료 (fzf + 파이프)

1
ps aux | fzf | awk '{print $2}' | xargs kill

터미널에서 실행 중인 프로세스 중에서, 원하는 걸 선택해서 종료하는 강력한 한 줄 명령어


sticker


#bash #powershell #fzf #자동완성 #리눅스 #민트 #우분투 #bash_completion

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.