다음은 출처 페이지의 내용을 자연스럽게 간추린 것입니다.
모던 쉘 명령어는 Rust, Go와 같은 최신 프로그래밍 언어로 개발되어 뛰어난 속도와 효율성을 자랑하며, 사용자 친화적인 인터페이스를 제공합니다. 주요 장점은 다음과 같습니다.
- 속도: Rust 기반 도구들은 병렬 처리를 통해 기존 명령어보다 훨씬 빠른 성능을 제공합니다.
- 가독성: 컬러 출력과 직관적인 결과물로 데이터를 훨씬 쉽게 파악할 수 있습니다.
- 유사한 문법: 기존 명령어와 유사한 문법을 채택하여 학습 곡선이 완만하며 빠르게 적응할 수 있습니다.
- 확장된 기능: Git 통합, 유니코드 지원, 향상된 정규 표현식 등 최신 개발 환경에 필요한 기능들을 기본으로 제공합니다.
전통 쉘 명령어 | 모던 쉘 명령어 | 주요 특징 |
---|---|---|
grep |
ripgrep (rg ) |
고속 검색, .gitignore 통합, 컬러 출력 |
sed |
sd |
간결한 치환 문법, 빠른 처리 |
find |
fd |
직관적인 검색, .gitignore 지원 |
cat |
bat |
구문 강조, Git 통합, 자동 페이징 |
watch |
hwatch |
변경 사항 강조, 로그 저장 |
top |
htop |
컬러 UI, 프로세스 트리 뷰 |
du |
dust |
트리 구조, 직관적인 시각화 |
위에서 소개된 모든 모던 쉘 명령어를 한 번에 설치하는 명령어입니다.
sudo apt-get update && \
sudo apt-get install -y ripgrep sd fd-find bat hwatch htop dust
brew update && \
brew install ripgrep sd fd bat hwatch htop dust
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
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
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
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
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
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/메모리 등 다양한 기준으로 정렬
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