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 구독 필요 (변동/월)
  • 코드 편집 기능 없음 (명령어 생성만)
  • 인터넷 연결 필수
  • 일부 명령어는 플랫폼 특정적

설치

사전 요구사항

  1. GitHub Copilot 구독 (변동/월 또는 학생 무료)
  2. 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"

학습 전략

  1. 생성 → 설명 패턴
    # 명령어 생성
    ghcs "복잡한 작업"
    
    # 생성된 명령어 이해
    ghce "생성된 명령어"
  2. 점진적 복잡도
    # 간단한 것부터
    ghcs "파일 찾기"
    
    # 조건 추가
    ghcs "Python 파일 찾기"
    
    # 더 복잡하게
    ghcs "최근 7일 내 수정된 Python 파일 찾기"
  3. 에러 학습
    # 에러가 나면 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 가이드의 핵심 개념과 흐름을 정리합니다.
  • 소개를 단계별로 이해합니다.
  • 실전 적용 시 기준과 주의점을 확인합니다.