Skip to content

Instantly share code, notes, and snippets.

@partrita
Last active June 6, 2025 23:41
Show Gist options
  • Save partrita/f121cf3a26fc73a50193535ef63399ec to your computer and use it in GitHub Desktop.
Save partrita/f121cf3a26fc73a50193535ef63399ec to your computer and use it in GitHub Desktop.

다음은 출처 페이지의 내용을 자연스럽게 간추린 것입니다.

왜 모던 쉘 명령어가 필요한가?

모던 쉘 명령어는 Rust, Go와 같은 최신 프로그래밍 언어로 개발되어 뛰어난 속도와 효율성을 자랑하며, 사용자 친화적인 인터페이스를 제공합니다. 주요 장점은 다음과 같습니다.

  • 속도: Rust 기반 도구들은 병렬 처리를 통해 기존 명령어보다 훨씬 빠른 성능을 제공합니다.
  • 가독성: 컬러 출력과 직관적인 결과물로 데이터를 훨씬 쉽게 파악할 수 있습니다.
  • 유사한 문법: 기존 명령어와 유사한 문법을 채택하여 학습 곡선이 완만하며 빠르게 적응할 수 있습니다.
  • 확장된 기능: Git 통합, 유니코드 지원, 향상된 정규 표현식 등 최신 개발 환경에 필요한 기능들을 기본으로 제공합니다.

모던 쉘 명령어 요약

전통 쉘 명령어 모던 쉘 명령어 주요 특징
grep ripgrep (rg) 고속 검색, .gitignore 통합, 컬러 출력
sed sd 간결한 치환 문법, 빠른 처리
find fd 직관적인 검색, .gitignore 지원
cat bat 구문 강조, Git 통합, 자동 페이징
watch hwatch 변경 사항 강조, 로그 저장
top htop 컬러 UI, 프로세스 트리 뷰
du dust 트리 구조, 직관적인 시각화

위에서 소개된 모든 모던 쉘 명령어를 한 번에 설치하는 명령어입니다.

Ubuntu/Debian (Linux)

sudo apt-get update && \
sudo apt-get install -y ripgrep sd fd-find bat hwatch htop dust

macOS (Homebrew)

brew update && \
brew install ripgrep sd fd bat hwatch htop dust

1. grep 대신 ripgrep (rg)

설명

grep은 파일 내에서 패턴을 검색하는 데 사용되지만, 대규모 프로젝트에서는 속도 저하가 발생할 수 있습니다. ripgrep (rg)은 Rust로 개발된 초고속 검색 도구로, 멀티스레딩을 지원하며 .gitignore 파일을 자동으로 인식하여 불필요한 파일을 검색에서 제외합니다.

특징

  • .gitignore 및 숨김 파일 자동 무시
  • UTF-8, 정규 표현식 완벽 지원
  • 컬러 출력 및 파일별 매칭 라인 시각화

설치

# Ubuntu/Debian
sudo apt-get install ripgrep
# macOS (Homebrew)
brew install ripgrep

사용법 비교

  • 기본 검색 (src/ 디렉토리에서 "function" 검색):

    # grep
    grep -r "function" ./src
    # rg
    rg "function" ./src
  • 파일 확장자 제한 (Python 파일에서 "function" 검색):

    # grep
    grep -r --include="*.py" "function" ./src
    # rg
    rg "function" --type py
  • JSON 출력 ("error" 검색 결과를 JSON으로 출력):

    # grep (추가 도구 jq 필요)
    grep -r "error" ./src | jq .
    # rg
    rg "error" --json > results.json

2. sed 대신 sd

설명

sed는 텍스트 스트림 편집에 유용하지만, 복잡한 정규 표현식과 비직관적인 문법으로 초보자가 사용하기 어렵습니다. sd는 Rust로 작성된 간결하고 빠른 대안으로, 직관적인 패턴 치환 기능을 제공하여 텍스트 편집을 훨씬 쉽게 만듭니다.

특징

  • 간단하고 직관적인 치환 문법
  • 빠른 처리 속도
  • 멀티라인 지원

설치

# Ubuntu/Debian
sudo apt-get install sd
# macOS (Homebrew)
brew install sd

사용법 비교

  • 문자열 치환 ("world"를 "universe"로 치환):

    # sed
    echo "hello world" | sed 's/world/universe/'
    # sd
    echo "hello world" | sd "world" "universe"
  • 파일 내 치환 (file.txt에서 "old_text"를 "new_text"로 치환):

    # sed
    sed -i 's/old_text/new_text/g' file.txt
    # sd
    sd "old_text" "new_text" file.txt
  • 정규 표현식 (숫자를 "NUMBER"로 치환):

    # sed
    sed 's/[0-9]\+/NUMBER/g' file.txt
    # sd
    sd '\d+' 'NUMBER' file.txt

3. find 대신 fd

설명

find는 파일 검색에 강력하지만, 복잡한 옵션과 상대적으로 느린 속도가 단점입니다. fd는 Rust 기반의 빠르고 직관적인 대안으로, 간결한 문법과 .gitignore 지원을 통해 불필요한 파일을 검색에서 제외하여 더욱 효율적인 파일 검색을 가능하게 합니다.

특징

  • 컬러 출력 및 사용자 친화적인 결과
  • .gitignore와 자동 통합
  • 빠른 파일/디렉토리 검색

설치

# Ubuntu/Debian
sudo apt-get install fd-find
# macOS (Homebrew)
brew install fd

사용법 비교

  • 파일 검색 (src/에서 "test" 포함 파일 검색):

    # find
    find ./src -name "*test*"
    # fd
    fd "test" ./src
  • 확장자 제한 (Python 파일 검색):

    # find
    find . -name "*.py"
    # fd
    fd --extension py
  • 숨김 파일 포함 (.bashrc 파일 검색):

    # find
    find . -name ".bashrc"
    # fd
    fd --hidden .bashrc

4. cat 대신 bat

설명

cat은 파일 내용을 단순히 출력하지만, 가독성이 떨어집니다. bat은 Rust 기반의 cat 대안으로, 구문 강조, 줄 번호 표시, Git 통합 기능을 제공하여 코드나 텍스트 파일을 훨씬 보기 좋게 출력합니다.

특징

  • 다양한 언어에 대한 구문 강조 및 테마 지원
  • Git 변경 사항 시각적으로 표시
  • 자동 페이징 기능 내장 (큰 파일도 편리하게 조회)

설치

# Ubuntu/Debian
sudo apt-get install bat
# macOS (Homebrew)
brew install bat

사용법 비교

  • 파일 출력 (Python 파일 출력):

    # cat
    cat file.py
    # bat
    bat file.py
  • 줄 번호 표시 (file.txt에 줄 번호 출력):

    # cat
    cat -n file.txt
    # bat
    bat -n file.txt
  • Git 변경 사항 (Git 수정 사항 표시):

    # cat
    # 지원 없음
    # bat
    bat --diff file.py

5. watch 대신 hwatch

설명

watch는 명령어를 주기적으로 실행하지만, 출력 변화를 파악하기 어렵습니다. hwatch는 Rust 기반의 대안으로, 컬러 출력과 변경 사항 강조 기능을 통해 주기적으로 갱신되는 정보의 변화를 한눈에 파악할 수 있도록 돕습니다.

특징

  • 변경된 출력만 강조하여 표시
  • 히스토리 및 로그 저장 기능
  • 직관적인 인터페이스

설치

# Ubuntu/Debian
sudo apt-get install hwatch
# macOS (Homebrew)
brew install hwatch

사용법 비교

  • 주기적 실행 (디렉토리 목록 2초마다 갱신):

    # watch
    watch ls -la
    # hwatch
    hwatch ls -la
  • 인터벌 지정 (5초마다 디스크 사용량 출력):

    # watch
    watch -n 5 df -h
    # hwatch
    hwatch -n 5 df -h
  • 로그 저장 (출력을 로그 파일로 저장):

    # watch
    # 지원 없음
    # hwatch
    hwatch --log output.log ls

6. top 대신 htop

설명

top은 시스템 프로세스 모니터링 도구지만, 텍스트 기반의 제한적인 UI가 아쉽습니다. htop은 컬러 인터페이스와 사용자 친화적인 조작(마우스/키보드)을 제공하는 강력한 대안으로, 시스템 자원 사용 현황을 더욱 상세하고 직관적으로 보여줍니다.

특징

  • 컬러 및 트리 뷰로 프로세스 시각화
  • 프로세스 필터링 및 검색 기능
  • CPU, 메모리 사용량의 시각적 표현

설치

# Ubuntu/Debian
sudo apt-get install htop
# macOS (Homebrew)
brew install htop

사용법 비교

  • 기본 실행 (프로세스 목록 표시):

    # top
    top
    # htop
    htop
  • 특정 사용자 프로세스 표시 (현재 사용자 프로세스만 표시):

    # top
    top -u $USER
    # htop
    htop -u $USER
  • 정렬 기능 (CPU/메모리 기준 정렬):

    # top
    # 키보드 입력으로 제한적 정렬 (예: P, M 키)
    # htop
    # F6 키를 눌러 CPU/메모리 등 다양한 기준으로 정렬

7. du 대신 dust

설명

du는 디렉토리 크기를 확인하는 데 사용되지만, 출력이 복잡하여 큰 디렉토리 구조에서는 파악하기 어렵습니다. dust는 Rust 기반으로 개발되어, 트리 구조와 직관적인 시각화를 통해 디렉토리별 공간 사용량을 훨씬 쉽게 이해할 수 있도록 돕습니다.

특징

  • 트리 뷰로 디렉토리 크기 시각화
  • 빠른 분석 및 정렬 기능
  • 사용자 친화적이고 깔끔한 출력

설치

# Ubuntu/Debian
sudo apt-get install dust
# macOS (Homebrew)
brew install dust

사용법 비교

  • 디렉토리 크기 확인 (현재 디렉토리 크기 확인):

    # du
    du -sh *
    # dust
    dust
  • 깊이 제한 (2단계 깊이까지 표시):

    # du
    du -d 2
    # dust
    dust -d 2
  • 숨김 파일 포함 (숨김 파일 포함하여 크기 확인):

    # du
    du -sh .[!.]* *
    # dust
    dust -a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment