GitHub Copilot CLI 가이드
터미널에서 AI의 도움을 받는 명령어 생성 도구. Git, 쉘 명령어, 시스템 관리를 AI로 자동화.
업데이트 안내: 모델/요금/버전/정책 등 시점에 민감한 정보는 변동될 수 있습니다.
최신 내용은 공식 문서를 확인하세요.
⚡ 빠른 시작
# 설치 (GitHub CLI 필요)
gh extension install github/gh-copilot
# 사용
gh copilot suggest "파일 찾기 명령어"
gh copilot explain "git rebase -i HEAD~3"
# 또는 짧은 별칭
alias ghcs='gh copilot suggest'
alias ghce='gh copilot explain'
소개
GitHub Copilot CLI는 터미널에서 사용하는 AI 어시스턴트입니다. 복잡한 쉘 명령어를 자연어로 설명하면 AI가 정확한 명령어를 생성해주고, 어려운 명령어의 의미를 쉽게 설명해줍니다.
무엇을 하는 도구인가?
| 기능 | 설명 |
|---|---|
| 명령어 생성 | 자연어 → 쉘 명령어 |
| 명령어 설명 | 복잡한 명령어 → 쉬운 설명 |
| Git 도우미 | Git 명령어 생성 및 설명 |
| 시스템 관리 | 서버 관리, 파일 조작 명령어 |
왜 사용해야 하나?
- 생산성: 명령어 검색 시간 단축
- 학습: 명령어를 사용하며 배움
- 정확성: 실수 방지 (AI가 검증)
- 접근성: 터미널 초보자도 쉽게 사용
- GitHub 통합: GitHub CLI와 완벽 통합
⚠️ 제한사항
- GitHub Copilot 구독 필요 (변동/월)
- 코드 편집 기능 없음 (명령어 생성만)
- 인터넷 연결 필수
- 일부 명령어는 플랫폼 특정적
설치
사전 요구사항
- GitHub Copilot 구독 (변동/월 또는 학생 무료)
- GitHub CLI (gh) 설치
1. GitHub CLI 설치
macOS
brew install gh
Windows
winget install --id GitHub.cli
Linux (Ubuntu/Debian)
sudo apt install gh
설치 확인
gh --version
# gh version 2.40.0 (2024-01-15)
2. Copilot CLI 확장 설치
# Copilot 확장 설치
gh extension install github/gh-copilot
# 설치 확인
gh copilot --version
# 인증 (GitHub 로그인)
gh auth login
3. 별칭 설정 (선택사항)
더 짧은 명령어로 사용하기 위해 별칭을 설정합니다.
# ~/.bashrc 또는 ~/.zshrc에 추가
alias ghcs='gh copilot suggest'
alias ghce='gh copilot explain'
# 적용
source ~/.zshrc
# 사용
ghcs "파일 찾기"
ghce "git rebase -i"
기본 사용법
gh copilot suggest (명령어 생성)
자연어로 원하는 작업을 설명하면 AI가 적절한 쉘 명령어를 생성합니다.
기본 구조
gh copilot suggest "하고 싶은 작업"
예시: 파일 찾기
$ gh copilot suggest "최근 7일 내 수정된 Python 파일 찾기"
Suggestion:
find . -name "*.py" -mtime -7
Explanation:
- find . : 현재 디렉토리부터 검색
- -name "*.py" : .py로 끝나는 파일
- -mtime -7 : 최근 7일 이내 수정
Run this command? (Y/n/revise)
예시: Git 작업
$ gh copilot suggest "마지막 3개 커밋 취소하고 변경사항 유지"
Suggestion:
git reset --soft HEAD~3
Explanation:
HEAD~3까지 커밋을 되돌리지만 변경사항은 staged 상태로 유지
Run this command? (Y/n/revise)
예시: 시스템 관리
$ gh copilot suggest "80번 포트 사용 중인 프로세스 찾아서 종료"
Suggestion:
sudo lsof -t -i:80 | xargs kill -9
Explanation:
- lsof -t -i:80 : 80번 포트 사용 프로세스 ID 출력
- xargs kill -9 : 해당 프로세스 강제 종료
Run this command? (Y/n/revise)
gh copilot explain (명령어 설명)
복잡한 명령어의 의미를 쉬운 한국어로 설명해줍니다.
기본 구조
gh copilot explain "복잡한 명령어"
예시: Git 명령어
$ gh copilot explain "git rebase -i HEAD~3"
Explanation:
이 명령어는 마지막 3개 커밋에 대한 대화형 리베이스를 시작합니다.
각 부분의 의미:
- git rebase : 커밋 히스토리를 재작성
- -i : interactive (대화형 모드)
- HEAD~3 : 현재로부터 3개 이전 커밋
사용 시나리오:
- 커밋 메시지 수정
- 여러 커밋 합치기 (squash)
- 커밋 순서 변경
- 특정 커밋 제거
주의사항:
이미 푸시한 커밋을 리베이스하면 force push가 필요합니다.
예시: 복잡한 파이프라인
$ gh copilot explain "ps aux | grep node | awk '{print 변동}' | xargs kill"
Explanation:
이 명령어는 모든 Node.js 프로세스를 찾아서 종료합니다.
파이프라인 분석:
1. ps aux
→ 모든 실행 중인 프로세스 목록 출력
2. | grep node
→ "node"가 포함된 줄만 필터링
3. | awk '{print 변동}'
→ 두 번째 필드(프로세스 ID)만 추출
4. | xargs kill
→ 추출된 PID들에 kill 명령 실행
더 안전한 대안:
kill 대신 kill -15 (SIGTERM) 사용 권장
대화형 모드
명령어 실행 후 revise를 선택하면 AI와 대화하며 명령어를 개선할 수 있습니다.
$ gh copilot suggest "파일 찾기"
Suggestion: find . -name "*"
Run this command? (Y/n/revise) revise
💬 You: "Python 파일만 찾고 싶어. 그리고 최근 7일 이내."
Revised Suggestion:
find . -name "*.py" -mtime -7
Run this command? (Y/n/revise) Y
# 명령어 실행됨
실전 활용
Git 워크플로우
커밋 정리
$ ghcs "마지막 5개 커밋을 1개로 합치기"
→ git rebase -i HEAD~5
$ ghcs "특정 파일의 변경 히스토리 보기"
→ git log --follow -p -- filename.js
$ ghcs "마지막 커밋 메시지 수정"
→ git commit --amend -m "new message"
브랜치 관리
$ ghcs "병합된 브랜치 모두 삭제"
→ git branch --merged | grep -v "\*" | xargs -n 1 git branch -d
$ ghcs "원격 브랜치와 동기화"
→ git fetch --prune
변경사항 검토
$ ghcs "특정 작성자의 최근 커밋 보기"
→ git log --author="John" --since="1 week ago" --oneline
$ ghcs "특정 단어가 포함된 커밋 찾기"
→ git log --all --grep="bugfix"
파일 조작
검색 및 필터링
$ ghcs "1GB 이상 파일 찾기"
→ find . -type f -size +1G
$ ghcs "빈 디렉토리 찾아서 삭제"
→ find . -type d -empty -delete
$ ghcs "특정 문자열 포함 파일 찾기"
→ grep -r "TODO" --include="*.js"
일괄 작업
$ ghcs "모든 .log 파일 압축"
→ find . -name "*.log" -exec gzip {} \;
$ ghcs "특정 확장자 파일 이름 변경"
→ find . -name "*.txt" -exec bash -c 'mv "변동" "${0%.txt}.md"' {} \;
시스템 관리
프로세스 관리
$ ghcs "메모리 사용량 상위 10개 프로세스"
→ ps aux --sort=-%mem | head -n 11
$ ghcs "좀비 프로세스 찾기"
→ ps aux | grep 'Z'
네트워크
$ ghcs "열린 포트 확인"
→ netstat -tuln | grep LISTEN
$ ghcs "특정 도메인 DNS 조회"
→ nslookup example.com
디스크 관리
$ ghcs "디렉토리 크기 확인 (큰 순서)"
→ du -sh * | sort -hr
$ ghcs "중복 파일 찾기"
→ fdupes -r .
Docker & Kubernetes
Docker
$ ghcs "실행 중인 컨테이너 모두 중지"
→ docker stop $(docker ps -q)
$ ghcs "사용하지 않는 이미지 삭제"
→ docker image prune -a
$ ghcs "컨테이너 로그 실시간 보기"
→ docker logs -f container_name
Kubernetes
$ ghcs "특정 네임스페이스의 Pod 재시작"
→ kubectl rollout restart deployment/myapp -n production
$ ghcs "실패한 Pod 찾기"
→ kubectl get pods --all-namespaces | grep -v Running
고급 활용
명령어 체이닝
복잡한 파이프라인도 자연어로 요청할 수 있습니다.
$ ghcs "Node.js 프로세스 중 메모리 사용량 높은 순서로 3개 출력"
Suggestion:
ps aux | grep node | sort -k4 -r | head -n 3
# 또는
$ ghcs "JSON 파일에서 특정 필드 추출해서 정렬"
Suggestion:
jq '.users[] | .name' data.json | sort
플랫폼별 명령어
AI가 자동으로 OS를 감지하여 적절한 명령어를 생성합니다.
# macOS
$ ghcs "클립보드 내용 파일로 저장"
→ pbpaste > clipboard.txt
# Linux
$ ghcs "클립보드 내용 파일로 저장"
→ xclip -o > clipboard.txt
# Windows (PowerShell)
$ ghcs "클립보드 내용 파일로 저장"
→ Get-Clipboard | Out-File clipboard.txt
스크립트 작성 보조
$ ghcs "Bash 스크립트로 디렉토리 백업 자동화"
Suggestion:
#!/bin/bash
SOURCE="/path/to/source"
DEST="/path/to/backup"
DATE=$(date +%Y%m%d)
tar -czf "$DEST/backup-$DATE.tar.gz" "$SOURCE"
# 파일로 저장 후 실행 권한 부여
명령어 디버깅
# 에러가 나는 명령어 분석
$ ghce "tar -xzf archive.tar.gz | grep error"
Explanation:
이 명령어는 작동하지 않습니다. tar는 표준 출력에 아무것도 출력하지 않으므로
grep으로 파이프할 내용이 없습니다.
올바른 방법:
tar -xzf archive.tar.gz --verbose | grep error
또는 압축 해제 후 에러 확인:
tar -xzf archive.tar.gz && echo "Success" || echo "Error"
다른 도구와 비교
vs Claude CLI
| 특징 | GitHub Copilot CLI | Claude CLI |
|---|---|---|
| 목적 | 터미널 명령어 생성 | 코드 생성 및 프로젝트 관리 |
| 코드 편집 | ❌ | ✅ |
| 파일 생성 | ❌ | ✅ |
| 명령어 생성 | ✅ (핵심 기능) | 제한적 |
| 가격 | 변동/월 | 종량제 |
| 사용 편의성 | 매우 간단 | 복잡 (강력) |
vs Cursor/Continue
| 특징 | GitHub Copilot CLI | Cursor/Continue |
|---|---|---|
| 환경 | 터미널 | IDE (VS Code) |
| 코드 편집 | ❌ | ✅ |
| 시스템 명령어 | ✅ | 제한적 |
| 학습 곡선 | 낮음 | 중간 |
언제 사용해야 하나?
GitHub Copilot CLI 추천
- 터미널에서 주로 작업
- 쉘 스크립트 작성
- 시스템 관리 작업
- Git 명령어 학습 중
- 명령어 검색 시간 단축
다른 도구 추천
- 코드 작성 → Claude CLI, Cursor
- 프로젝트 관리 → Claude CLI, Aider
- 무료 사용 → Continue + Ollama
- 멀티파일 편집 → Cursor Composer
팁과 트릭
생산성 팁
1. 별칭 활용
# ~/.zshrc 또는 ~/.bashrc
alias ghcs='gh copilot suggest'
alias ghce='gh copilot explain'
# 더 짧게
alias gcs='gh copilot suggest'
alias gce='gh copilot explain'
2. 히스토리 활용
# 마지막 명령어 설명
ghce "$(history -1 | awk '{변동=""; print 변동}')"
# 별칭으로 등록
alias explain-last='ghce "$(history -1 | awk '"'"'{변동=""; print 변동}'"'"')"'
3. 명령어 라이브러리
# 자주 사용하는 명령어 저장
mkdir -p ~/.copilot-commands
# 예시 파일
cat > ~/.copilot-commands/git.txt << 'EOF'
마지막 3개 커밋 합치기
특정 파일의 변경 히스토리
병합된 브랜치 삭제
EOF
# 검색 함수
function copilot-search() {
grep -r "변동" ~/.copilot-commands/
}
4. 파이프라인 디버깅
# 각 단계별로 테스트
$ ps aux | head
$ ps aux | grep node | head
$ ps aux | grep node | awk '{print 변동}' | head
# AI에게 검증 요청
$ ghce "ps aux | grep node | awk '{print 변동}' | xargs kill"
학습 전략
- 생성 → 설명 패턴
# 명령어 생성 ghcs "복잡한 작업" # 생성된 명령어 이해 ghce "생성된 명령어" - 점진적 복잡도
# 간단한 것부터 ghcs "파일 찾기" # 조건 추가 ghcs "Python 파일 찾기" # 더 복잡하게 ghcs "최근 7일 내 수정된 Python 파일 찾기" - 에러 학습
# 에러가 나면 AI에게 물어보기 ghce "에러 난 명령어" ghcs "에러를 수정한 명령어"
모범 사례
- 명확한 요청: "파일 찾기" → "최근 7일 내 수정된 Python 파일 찾기"
- 검증 후 실행: AI 제안을 항상 검토한 후 실행
- 위험한 명령어 주의: rm -rf, kill -9 등은 신중히
- 플랫폼 명시: "macOS에서..." 또는 "Linux에서..."
- 학습 도구로 활용: 설명 기능으로 명령어 이해
제한사항 및 주의사항
할 수 없는 것
- 코드 파일 편집: 명령어 생성만 가능 (파일 수정 불가)
- 프로젝트 컨텍스트: 현재 디렉토리 구조 이해 제한적
- 대화형 명령어: vim, nano 등 대화형 도구 사용법 제한
- GUI 프로그램: 그래픽 애플리케이션 조작 불가
- 실시간 피드백: 명령어 실행 중 오류 감지 불가
안전성 고려사항
⚠️ 위험한 명령어
AI가 생성한 명령어라도 다음은 특히 주의:
rm -rf /- 전체 파일 시스템 삭제chmod -R 777- 보안 권한 문제kill -9 -1- 모든 프로세스 종료dd if=/dev/zero- 디스크 덮어쓰기
항상 생성된 명령어를 검토하고 이해한 후 실행하세요!
비용
| 플랜 | 가격 | 포함 내용 |
|---|---|---|
| 개인 | 변동/월 | CLI + IDE Copilot |
| 학생 | 무료 | GitHub Student Pack |
| 팀 | 변동/월/인 | 조직 관리 포함 |
참고: GitHub Copilot CLI는 IDE Copilot 구독에 포함되어 있습니다.
트러블슈팅
일반적인 문제
❌ "gh: command not found"
원인: GitHub CLI 미설치
해결:
brew install gh # macOS
sudo apt install gh # Linux
❌ "extension not found"
원인: Copilot 확장 미설치
해결:
gh extension install github/gh-copilot
❌ "authentication required"
원인: GitHub 로그인 필요
해결:
gh auth login
# 브라우저에서 인증 완료
❌ "subscription required"
원인: Copilot 구독 없음
해결:
- https://github.com/features/copilot 에서 구독
- 또는 GitHub Student Pack 신청
❌ 명령어가 플랫폼에 맞지 않음
해결:
# 플랫폼 명시
ghcs "macOS에서 클립보드 내용 저장"
ghcs "Linux에서 메모리 사용량 확인"
핵심 정리
- GitHub Copilot CLI 가이드의 핵심 개념과 흐름을 정리합니다.
- 소개를 단계별로 이해합니다.
- 실전 적용 시 기준과 주의점을 확인합니다.