GitHub Copilot in the CLI

2024. 11. 8. 09:59·알쓸신잡

오늘은 쉘에서 github copilot을 사용하는 방법에 대하여 작성해보려고 한다. 리눅스의 자주 쓰는 커맨드들은 익숙해졌지만, 아직도 헷갈리는 것들도 많고 조금이라도 복잡한 건 잘 몰라서 매번 검색해 보면서 사용해 왔다.

그런데 github copilot에 cli에서 바로 질문을 해서 찾을 수 있는 방법이 있다길래, 마침 copilot도 사용하고 있었기에 설치해 봤다.

 

GitHub CLI

Take GitHub to the command line

cli.github.com

우선 당연하게도 github copilot 구독이 되어있는 유저만 가능하다. 한 달에 약 10,000 정도로 비싸지도 않고, 241108 기준 지금 claude도 합쳐졌으므로, 기존에도 뛰어났는데 더 좋아진 것 같다.

 

1. Github CLI 설치

위 링크에 들어가서 `Install for Linux`를 눌러주면 가이드가 매우 잘 나와있기는 하지만 그냥 기록용으로 작성해두려고 한다.

(type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) \
	&& sudo mkdir -p -m 755 /etc/apt/keyrings \
	&& wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
	&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
	&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
	&& sudo apt update \
	&& sudo apt install gh -y

위 명령어를 통해서 패키지를 설치해 준다. (위 명령어는 Ubuntu 기준, 나머지 OS는 가이드를 참조하자)

2. Github 인증

설치를 완료했으면, 아래 명령어들을 통해서 Github 인증을 진행해 준다.

gh auth login --web -h github.com
gh extension install github/gh-copilot --force

첫 번째 커맨드를 입력하면 `https`나 `ssh`중 어떤 것으로 접속하냐고 뜨고 다음으로는 인증번호를 주고 웹 화면이 켜지면, github에서 인증을 진행하면 된다.

두 번째 커맨드로 익스텐션을 업데이트해준다.

3. 사용법

사용법은 크게는 2가지 정도가 있는데, `gh copilot suggest`와 `gh copilot explain`이다. 

말 그대로 suggest는 명령어 헷갈리거나 이럴 때 물어보면 되고, explain은 설명해 주는 기능인데, 아래에서 살펴보자

3-1. gh copilot suggest

우선 위와 같이 `gh copilot suggest "{질문}"`을 작성하면 어떤 유형의 커맨드를 물어보는 것인지가 먼저 나온다.

그냥 리눅스 커맨드인지, github copilot 커맨드인지, git 커맨드인지.

다음으로는 해당 명령어를 제안해 주고, 그 명령어를 클립보드복사 혹은 설명, 실행, 수정 등이 나온다.

3-2. gh copilot explain

다음으로 explain 명령어는 말 그대로 명령어를 설명해 준다.

위와 같이 친절하게 설명해 주기 때문에 쉽게 알아들을 수 있다.

3-3. alias 설정

저렇게 두 명령어를 계속 쓰게 되는데 사실 gh copilot ~까지 쓰기에도 귀찮다. github도 그것을 알았는지 친절하게 alias를 설정해 놨다.

 

 

Release v1.0.0 · github/gh-copilot

Release notes for v1.0.0 Following our public beta, we're excited to announce the general availability of GitHub Copilot in the CLI! 🎉 Bringing GitHub Copilot to your terminal, GitHub Copilot in th...

github.com

여기에 가이드가 잘 나와있는데, 나는 zsh와 bash 쉘만 쓰기 때문에 이 두 가지 명령어만 작성해 놓겠다.

echo 'eval "$(gh copilot alias -- zsh)"' >> ~/.zshrc
source ~/.zshrc
echo 'eval "$(gh copilot alias -- bash)"' >> ~/.bashrc
source ~/.bashrc

위와 같이 alias 설정을 해주고 쉘을 재시작하면 이제 `ghcs` = `gh copilot suggest`가 되고, `ghce`는 `gh copilot explain`이 된다.

추가로 alias를 쓸 때는 질문에 ""로 감싸주지 않아도 된다.

3-4 사용자 설정

gh copilot config

위 명령어를 통해서 사용자 설정을 할 수 있는데, 두가지 항목밖에 없다. 하나는 정보수집동의 하난느 제안된 코드를 바로 적용할지 안할지 default 설정.

개인정보는 이미 회원가입들을 하느라 이미 다 털렸겠지만, 그래도 이런 정보수집동의는 왠만해선 거부하기 때문에 거부해준다.

 

+) 이런거 물어볼 때는 영어가 편하긴하지만 한글도 잘 대답하는 듯 하다.

728x90

'알쓸신잡' 카테고리의 다른 글

Gradio paste not working  (0) 2024.11.14
Gradio FileExplorer refresh  (0) 2024.11.11
[pgAdmin error] Your account is locked. Please contact the Administrator.  (0) 2024.10.18
Unable to install extension 'ms-toolsai.jupyter' as it is not compatible with VS Code  (0) 2024.09.27
ERROR: ON CONFLICT DO UPDATE command cannot affect row a second timeHint: Ensure...  (0) 2024.09.11
'알쓸신잡' 카테고리의 다른 글
  • Gradio paste not working
  • Gradio FileExplorer refresh
  • [pgAdmin error] Your account is locked. Please contact the Administrator.
  • Unable to install extension 'ms-toolsai.jupyter' as it is not compatible with VS Code
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (471)
      • 알쓸신잡 (79)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Blog

    • 🏠 Home
    • ✏️글쓰기
    • 💻 관리자

    Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    백준
    나동빈
    이것이취업을위한코딩테스트다
    파이썬
    그리디
    DFS
    BFS
    이분탐색
    이코테
    dp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3

HOME

HOME

  • Profile
  • Light
상단으로

티스토리툴바