Communitygithub.com

터미널 & CLI 스킬

Linux 터미널에서 작업하기 위한 참고 자료로, 기본 bash부터 컨테이너 오케스트레이션, AI 에이전트 실행까지 전 스택을 다룹니다.

터미널 & CLI 스킬란 무엇인가요?

이 스킬은 AI 에이전트(예: Claude Code, Cursor, Codex)가 Linux 터미널 환경에서 명령어를 실행하고, 파일을 조작하며, 컨테이너를 관리하고, AI 에이전트 도구(aider-chat, claude CLI)를 사용하는 데 필요한 종합적인 참조 자료를 제공합니다. 특히 bash 명령어 실행, 파이프, 리디렉션, 스크립트 작성, 파일 시스템 탐색, 패키지 설치 등의 기본 패턴을 다루며, Podman, kubectl, curl 등 고급 도구에 대한 상세 참조 파일(references/ 폴더)도 함께 제공합니다. 이 스킬을 통해 AI 에이전트는 사용자의 요청에 따라 안정적이고 효율적인 터미널 명령어를 생성하고 실행할 수 있으며, `set -euo pipefail`과 같은 스크립트 모범 사례도 포함되어 있어 안전한 명령어 실행을 보장합니다. 여러 플랫폼에서 사용할 수 있도록 설계되었습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add roebi/agent-skills

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

터미널 & CLI 스킬은(는) 무엇을 하나요?

Linux 터미널에서 작업하기 위한 참고 자료로, 기본 bash부터 컨테이너 오케스트레이션과 AI 에이전트 실행까지 전 스택을 다룹니다.

이 스킬을 사용하는 방법

이 파일은 가장 일반적인 패턴을 다룹니다. 자세한 명령어 참조가 필요하면 references/에서 관련 파일을 필요에 따라 불러오세요:

주제참조 파일
Bash 핵심: 파이프, 스크립트, 파일 시스템, 설치, 환경 변수references/bash.md
컨테이너: Podman, Kubernetes (kubectl), Helmreferences/containers.md
HTTP 요청: curlreferences/curl.md
AI 에이전트: aider-chat, claude CLIreferences/agents.md

1. bash 명령어 실행

command [options] [arguments]

# 순차적으로 실행 — 첫 번째 실패 시 중단
cmd1 && cmd2 && cmd3

# 실패 여부와 관계없이 실행
cmd1; cmd2; cmd3

# 출력을 변수에 저장
OUTPUT=$(command)

# stdout / stderr / 둘 다 리디렉션
command > out.txt
command 2> err.txt
command &> all.txt

# 모든 출력 버리기
command > /dev/null 2>&1

2. 도구 존재 여부 확인

type -a tool_name      # 도구가 발견된 모든 위치
apropos keyword        # 키워드와 일치하는 명령어 검색
which tool_name        # PATH 상의 첫 번째 바이너리
whereis tool_name      # 바이너리, 소스, man 페이지 위치

3. &&로 연결하기

# 이전 명령어가 성공한 경우에만 진행
sudo apt update && sudo apt upgrade -y

# 여러 단계를 안전하게 연결
mkdir -p build && cd build && cmake ..

4. |로 파이프 연결하기

# 한 명령어의 stdout을 다음 명령어의 stdin으로 전달
cmd1 | cmd2 | cmd3

# 일반적인 패턴
ls -la | grep ".conf"
ps aux | grep nginx
journalctl -u myservice | grep ERROR | tail -20
cat file.txt | wc -l

5. cat으로 내용 읽기

cat file.txt                   # 파일 전체를 stdout으로 출력
cat file1.txt file2.txt        # 여러 파일 연결
head -n 20 file.txt            # 처음 20줄
tail -n 20 file.txt            # 마지막 20줄
tail -f /var/log/app.log       # 실시간 로그 출력 추적
less file.txt                  # 페이지별 보기 (종료는 q)
grep "pattern" file.txt        # 패턴과 일치하는 줄
grep -r "pattern" ./dir/       # 디렉토리 내 재귀 검색
grep -n "pattern" file.txt     # 줄 번호 포함
grep -i "pattern" file.txt     # 대소문자 구분 없음

6. 결과 정렬

sort file.txt                  # 알파벳 순 (오름차순)
sort -r file.txt               # 역순
sort -n file.txt               # 숫자 정렬
sort -k2 file.txt              # 2열 기준 정렬
sort -t: -k3 -n /etc/passwd    # 사용자 지정 구분자 (:), 3열, 숫자 정렬
ls -la | sort -k5 -n           # ls 출력을 파일 크기(5열)로 정렬

7. 중복 제거

# uniq는 *연속된* 중복만 제거합니다 — 항상 먼저 정렬하세요
sort file.txt | uniq            # 중복 제거
sort file.txt | uniq -c        # 발생 횟수 세기
sort file.txt | uniq -d        # 중복된 줄만 표시
sort file.txt | uniq -u        # 한 번만 나타난 줄만 표시

# 일반적인 파이프라인: 로그에서 오류 유형별 개수 세기
cat app.log | grep ERROR | sort | uniq -c | sort -rn

8. heredoc으로 스크립트 작성 및 실행

# 스크립트 파일 인라인 생성
cat << 'EOF' > myscript.sh
#!/bin/bash
set -euo pipefail   # 오류, 설정되지 않은 변수, 파이프 실패 시 종료

echo "Today: $(date +%Y-%m-%d)"

for i in 1 2 3; do
  echo "Step $i"
done
EOF

chmod +x myscript.sh
./myscript.sh

# 또는 파일 생성 없이 직접 실행
bash << 'EOF'
echo "Inline execution"
ls -la /tmp
EOF

스크립트 모범 사례:

  • 항상 #!/bin/bash로 시작
  • 안전한 기본값을 위해 set -euo pipefail 사용
  • 항상 변수 인용: "$VAR" ($VAR 아님)
  • 백틱 대신 $(...) 사용

9. 파일 시스템 — 빠른 참조

# 탐색 및 검사
pwd && ls -lah              # 현재 위치 + 여기 있는 파일
tree -L 2                   # 디렉토리 트리 (2단계 깊이)
find /path -name "*.log"    # 이름으로 검색
du -sh /path                # 디렉토리 크기
df -h                       # 모든 마운트의 디스크 사용량

# 생성 / 복사 / 이동 / 삭제
mkdir -p /path/to/dir       # 상위 디렉토리와 함께 생성
cp -r src/ dst/             # 디렉토리 복사
mv src dst                  # 이동 또는 이름 변경
rm -rf dir/                 # 재귀적으로 삭제 (되돌릴 수 없음)

# 권한 및 소유권
chmod +x file               # 실행 가능하게 설정
chmod 644 file              # rw-r--r--
chown user:group file       # 소유자 변경

# 링크
ln -s /target /link         # 심볼릭 링크
readlink -f /link           # 심볼릭 링크를 실제 경로로 해석

# 마운트
mount                       # 모든 활성 마운트 나열
lsblk                       # 블록 장치 트리
findmnt                     # 마운트 포인트 트리

→ 전체 파일 시스템 참조: references/bash.md

10. 설치 및 업데이트 — 빠른 참조

# APT
sudo apt update && sudo apt upgrade -y
sudo apt install -y package-name

# pip (Python)
pip install package --break-system-packages

# npm (Node.js)
npm install -g package-name

→ 전체 설치 참조 (snap, 소스 빌드, pip 옵션): references/bash.md

11. 명령어 도움말 보기

command --help              # 인라인 도움말 (가장 빠름)
man command                 # 전체 매뉴얼 페이지
apropos keyword             # man 페이지 요약 검색
whatis command              # 한 줄 설명
info command                # GNU 정보 페이지 (GNU 도구용)
help cd                     # 셸 내장 명령어 도움말

12. 환경 변수 — 빠른 참조

export VAR="value"          # 현재 셸과 하위 프로세스에 설정
echo $VAR                   # 변수 읽기
unset VAR                   # 변수 제거
env                         # 모든 환경 변수 나열
VAR=value command           # 단일 명령어에만 설정

→ 변수 유지, .env 파일 로드: references/bash.md


상세 참조

완전한 명령어 범위가 필요할 때 다음 파일을 불러오세요:

  • references/bash.md — 전체 파일 시스템, 설치/업데이트, 환경 변수, 스크립팅 패턴
  • references/containers.md — Podman, kubectl, Helm
  • references/curl.md — HTTP 요청용 curl
  • references/agents.md — aider-chat 및 claude CLI

관련 스킬