터미널에서 gist에 코드 올리기 gist

작업을 하다 보면 작은 코드 스니핏을 공유해야 하는 경우가 있다. 간단하게 텍스트 파일을 작성해서 메일이나 메신저를 통해서 공유할 수도 있고 GitHub의 gist 서비스를 이용해서 공유할 수 있다. 이 gist에 코드를 올리는 작업을 브라우저 없이 터미널에서도 가능하다. 서비스 이름과 동일하게 명령도 gist다.

OS X에서는 Homebrew로 바로 설치할 수 있으며 루비로 작성한 도구라서 gem으로도 설치 가능하다. apt-get에도 올라와 있는데 우분투에서 설치하고 나서 제대로 동작하지 않아 gem으로 설치했다.

$ brew install gist # OS X에서 homebrew를 사용하는 경우
$ gem install gist # gem이 설치되어 있는 경우

설치를 한 다음, gist 명령을 입력하면 프롬프트가 출력되서 바로 코드를 작성할 수 있다.

$ gist
(type a gist. <ctrl-c> to cancel, <ctrl-d> when done)
// 코드를 바로 입력. cat과 같이 동작함.
console.log("Hello World");
// <ctrl-d>를 입력해 저장.
# https://gist.github.com/bc7c51a5d5bef0465c67b38c39f29b7e
$

아직 로그인을 하지 않았기 때문에 입력한 내용이 익명 계정으로 등록된다. 로그인은 --login 플래그를 사용해서 할 수 있다.

$ gist --login
Obtaining OAuth2 access_token from github.
Github username: haruair
Github password:
Success! https://github.com/settings/applications
$

간단하게 이미 작성한 파일을 올리는 것도 가능하다.

$ gist hello.js
$ gist index.js index.jade style.css # 여러 파일을 올릴 때

파일명은 -f 또는 --filename으로 지정 가능하다. 파일명을 지정한 경우에는 STDIN으로 올리려는 파일을 지정할 수 있다. 그리고 업로드한 주소를 바로 사용할 수 있도록 복사하는 -c, --copy 플래그도 존재한다.

다음 명령에서는 hello.js 파일을 index.js로 gist에 업로드하고 그 주소를 바로 복사한다.

$ gist -c -f index.js < hello.js
# https://gist.github.com/69872a365b9b073eb94ac14e87eb469e

이외에도 기존에 올린 코드를 수정하거나 private 모드로 올리기, embed 코드를 반환하는 등 다양한 플래그가 있다. 이 도구에서 제공하는 모든 기능은 --help로 확인할 수 있다. ruby로 작성되어 있어서 만약 ruby로 개발한다면 코드에서 사용할 수 있는 라이브러리 형태로도 제공한다. 엔터프라이즈 사용자를 위한 설정도 존재하는데 상세한 내용은 defunkt/gist 문서에서 확인하자.

김용균

안녕하세요, 김용균입니다. 문제를 해결하기 위해 작고 단단한 코드를 작성하는 일을 합니다. 웹의 자유로운 접근성을 좋아합니다. 프로그래밍 언어, 소프트웨어 아키텍처, 커뮤니티에 관심이 많습니다.

이 글 공유하기

이 글이 유익했다면 주변에도 알려주세요!

페이스북으로 공유하기트위터로 공유하기링크드인으로 공유하기Email 보내기

주제별 목록

같은 주제의 다른 글을 읽어보고 싶다면 아래 링크를 확인하세요.

May 02, 2016

Ajazz Geek AK33 기계식 키보드 구입 및 사용기

근래 화웨이나 DJI와 같이 대단한 제품을 만드는 중국 기업이 눈에 띈다. 멋진 제품으로 승부하는 이런 회사는 갑작스레 출현했다기 보다는 든든한 중국 제조업의 질적 성장으로 외연이 넓어지면서 자연스럽게 들어나게 된 것은 아닌가 생각한다. 여전히 중국…

April 18, 2016

터미널에서 실시간으로 관찰하기 watch

터미널에서 작업을 하다보면 메모리 사용량이나 스토리지 사용량을 확인하기 위해 또는 를 사용해본 경험이 있을 것이다. 명령을 입력하고 엔터를 누르는 순간에 명령을 처리하고 그 결과를 반환하기 때문에 지속적으로 변하는 결과를 살펴보기엔 불편하게 느…