Linux 명령줄 기능 강화를 위한 도구들

기본 명령어의 향상: 별칭을 통한 대체

터미널에서 작업할 때 기존 명령어의 한계를 보완하기 위해 다양한 도구들을 사용하고 있습니다. 대부분의 경우, 기존 명령어에 대해 별칭을 설정하여 새로운 도구로 대체합니다. 만약 원래 명령어를 직접 실행해야 할 경우, 백슬래시(\) 또는 command 명령어를 사용해 별칭을 무시할 수 있습니다.

$ \cat
$ command cat

bat: cat의 고급 버전

cat은 파일 내용을 출력하는 기본 명령어지만, bat는 구문 강조, 줄 번호, 페이지 나누기, Git 통합 등의 기능을 제공합니다. 또한 /를 사용해 출력 결과 내에서 검색할 수 있으며, less와 유사한 동작을 합니다.

alias cat='bat'

prettyping: ping의 시각적 개선

ping은 네트워크 상태 확인에 유용하지만, prettyping은 더 직관적인 출력을 제공하며, 터미널 경험을 풍부하게 합니다.

alias ping='prettyping --nolegend'

fzf: 명령어 역사 검색의 혁신

ctrl+r은 명령어 히스토리 검색에 유용하지만, fzf는 유사성 기반의 빠른 검색과 상호작용 가능한 미리보기 기능을 제공합니다. 또한 파일 탐색 및 편집기 연동도 가능합니다.

alias preview="fzf --preview 'bat --color \"always\" {}'"
export FZF_DEFAULT_OPTS="--bind='ctrl-o:execute(code {})+abort'"

htop: top의 향상된 인터페이스

top은 시스템 리소스 모니터링에 사용되지만, 맥에서는 기능이 제한적입니다. htop은 색상 지원, 키보드 단축키, 프로세스 트리 시각화 등으로 훨씬 우수한 경험을 제공합니다.

alias top="sudo htop"

diff-so-fancy: diff의 가독성 향상

diff의 출력을 개선하기 위해 diff-so-fancy를 사용합니다. 이 도구는 코드 변경 부분에 색상을 적용하고, 보기 쉽게 구성합니다.

[pager]
    diff = diff-so-fancy | less --tabs=1,5 -RFX
    show = diff-so-fancy | less --tabs=1,5 -RFX

fd: find의 간편한 대체

find는 파일 검색에 사용되지만, 문법이 복잡하고 기억하기 어렵습니다. fd는 간결한 문법과 빠른 성능을 제공하며, 자주 사용하는 검색 패턴을 쉽게 작성할 수 있습니다.

$ fd cli
$ fd -e md
$ fd cli -x wc -w

ncdu: du의 인터랙티브 대안

du는 디스크 사용량 분석에 유용하지만, ncdu는 인터랙티브 인터페이스를 통해 큰 폴더를 빠르게 식별할 수 있습니다. 또한 --exclude 옵션을 통해 불필요한 디렉터리를 제외할 수 있습니다.

alias du="ncdu --color dark -rr -x --exclude .git --exclude node_modules"

tldr: man의 간결한 문서

man은 정보가 많지만, 찾기 어렵습니다. tldr는 커뮤니티 기반의 간결한 명령어 설명을 제공하며, 빠르게 핵심 내용을 파악할 수 있습니다.

alias help='tldr'

ack / ag: grep의 고급 대안

grep보다 더 효율적인 검색 도구로 ackag를 사용합니다. 두 도구 모두 정규 표현식 기반 검색과 파일 유형 필터링을 지원하며, ack은 짧은 입력과 편리한 옵션(예: --bar)을 제공합니다.

--type-set=md=.md,.mkd,.markdown
--pager=less -FRX

jq: JSON 처리의 강력한 도구

jq는 JSON 데이터를 쉽게 조작하고 변환할 수 있게 해줍니다. 예를 들어, 모든 노드 패키지의 최신 버전을 일괄 업데이트하는 데 활용할 수 있습니다.

npm i $(echo $(\
    npm outdated --json | \
    jq -r 'to_entries | .[] | "\(.key)@\(.value.latest)"' \
))

추가 추천 도구들

  • ponysay: cowsay의 재미있는 대체
  • csvkit: awk나 다른 스크립트 대신 사용 가능한 CSV 처리 도구
  • noti: 알림 메시지를 터미널에서 표시
  • entr: 파일 변경 감지 후 자동으로 명령 실행

태그: bat prettyping fzf htop diff-so-fancy

7월 19일 06:11에 게시됨