터미널 최소 사용법 — 탐색기를 말로 시킵니다
Article
2강에서 git --version 한 줄 치고 바로 닫았던 검은 창이 있습니다. 이번 시간에 그 창을 제대로 다룹니다.
솔직히 말하면 이 강의는 깃 강의가 아닙니다. 깃 명령어가 한 줄도 안 나옵니다. 그런데도 한 강을 통째로 쓰는 이유가 있습니다. 초보가 깃에서 막히는 자리의 절반은 깃이 아니라 이 창 때문입니다. 명령어는 맞게 쳤는데 엉뚱한 폴더에서 치고 있어서 안 되는 경우가 정말 많습니다. 5강에서 첫 저장소를 만들 때 당장 그 상황이 옵니다.
탐색기를 말로 시키는 것뿐입니다
평소에 폴더를 여는 방법을 생각해 봅니다. 바탕화면에서 폴더를 더블클릭하고, 안에 뭐가 있는지 눈으로 보고, 또 하나 더블클릭해서 들어갑니다. 뒤로 가고 싶으면 뒤로 가기 버튼을 누릅니다.
터미널에서 하는 일이 정확히 이겁니다. 다른 점은 마우스 대신 말로 시킨다는 것뿐입니다. 더블클릭 대신 "저 폴더로 들어가"라고 치고, 눈으로 보는 대신 "지금 여기 뭐 있어"라고 칩니다.
탐색기
마우스로
- 폴더를 더블클릭한다
- 창 안의 파일을 눈으로 본다
- 뒤로 가기 버튼을 누른다
- 지금 어디인지 주소 표시줄로 안다
터미널
말로
cd 폴더이름이라고 친다ls라고 쳐서 목록을 받는다cd ..라고 친다- 지금 어디인지 창이 항상 적어준다
그래서 무서워할 게 없습니다. 이 창에서 할 수 있는 일은 탐색기에서 할 수 있는 일과 크게 다르지 않습니다. 명령어를 잘못 쳤을 때 컴퓨터가 망가지는 일도 없습니다. 모르는 단어를 치면 "그런 거 없다"고 대답하고 끝입니다.
영화에서 검은 창에 글자가 쏟아지는 장면 때문에 대단한 걸 하는 창처럼 보이지만, 이 편에서 이 창으로 하는 일은 폴더 이동 · 목록 확인 · 깃 명령어 입력 세 가지뿐입니다. 그 이상은 안 합니다.
창을 엽니다
2강에서 깃을 설치할 때 Git Bash 라는 프로그램이 같이 깔렸습니다. 이 편에서는 이걸 씁니다. 윈도우에 원래 있는 명령 프롬프트나 파워셸도 깃을 부를 수 있지만, 창마다 쓰는 말이 조금씩 달라서 하나로 정합니다.
- 01
시작 메뉴에서 여는 법
시작 버튼을 누르고
git bash라고 칩니다. 검색 결과에서 Git Bash 를 엽니다. 이렇게 열면 항상 홈 폴더에서 시작합니다 - 02
원하는 폴더에서 바로 여는 법
탐색기로 그 폴더를 연 다음 빈 곳에 마우스 오른쪽 버튼을 누릅니다. 메뉴에 Open Git Bash here 가 있습니다. 이렇게 열면 그 폴더에서 바로 시작합니다
창을 열면 글자가 몇 줄 있고 맨 아래에 커서가 깜빡입니다. 그 줄을 프롬프트라고 부릅니다. 여기에 명령어를 칩니다.
- gildong@DESKTOP-A1B2 MINGW64 ~
- $
이 한 줄이 생각보다 많은 걸 알려줍니다. 특히 세 번째 칸이 중요합니다.
| 보이는 것 | 뜻 | 신경 쓸 일 |
|---|---|---|
gildong@DESKTOP-A1B2 | 사용자 이름과 컴퓨터 이름 | 볼 일 없다 |
MINGW64 | 이 창의 종류 | 볼 일 없다 |
~ | 지금 있는 폴더 | 여기만 본다 |
$ | 여기부터 내가 친다 | $ 는 따라 치지 않는다 |
교재나 블로그에 나오는 명령어 앞의 $ 를 같이 치는 실수가 흔합니다. $ 는 "여기부터가 사람이 친 부분"이라는 표시일 뿐입니다. 실제로 치는 건 그 뒤부터입니다.
터미널이 기억하는 건 딱 하나입니다
이 창이 기억하는 건 지금 어느 폴더에 서 있는가 하나입니다. 이것만 이해하면 나머지는 저절로 따라옵니다. 앞으로 치는 모든 명령어는 그 위치를 기준으로 실행됩니다.
창을 두 개 열면 위치도 두 개입니다. 탐색기 창을 두 개 띄우면 각자 다른 폴더를 보고 있는 것과 같아서, 한쪽에서 폴더를 옮겨도 다른 쪽은 그대로입니다. 그래서 명령어가 안 먹을 때 제일 먼저 볼 것은 명령어가 아니라 지금 서 있는 위치입니다. 이 습관 하나가 나중에 시간을 많이 아껴줍니다.
첫 번째 명령어 — ls
지금 폴더에 뭐가 있는지 보여줍니다. 탐색기 창을 여는 것과 같습니다.
- $ ls
- Desktop/ Documents/ Downloads/ Pictures/
이름 뒤에 / 가 붙은 건 폴더고, 안 붙은 건 파일입니다. 이 구분만 알면 충분합니다.
ls 는 list 의 줄임말입니다. 명령어 이름은 대부분 이런 식으로 영어 단어를 줄인 것이라, 뜻을 알고 나면 외우기가 훨씬 쉬워집니다.
두 번째 명령어 — cd
폴더 안으로 들어갑니다. 더블클릭에 해당합니다. change directory 의 줄임말입니다.
- $ cd Desktop
- gildong@DESKTOP-A1B2 MINGW64 ~/Desktop
- $
여기서 볼 것은 아무 말도 안 나왔다는 점입니다. 대신 프롬프트의 ~ 가 ~/Desktop 으로 바뀌었습니다. 터미널은 일이 잘 되면 조용합니다. 뭐라고 말을 걸어오면 대개 잘못됐다는 뜻입니다.
뒤로 가려면 폴더 이름 대신 점 두 개를 씁니다. cd .. 라고 치면 프롬프트가 ~/Desktop 에서 다시 ~ 로 돌아갑니다. .. 는 "한 칸 위 폴더"라는 뜻의 약속된 기호입니다. 폴더 구조를 그려보면 지금 무슨 일이 일어난 건지 한눈에 보입니다.
- ~
- Desktop
- study
- Documents
- Downloads
- Desktop
이게 전부입니다. 외울 건 두 개고, 둘 다 탐색기에서 이미 하던 일입니다. 어디에 있든 홈으로 한 번에 가고 싶으면 cd ~, 창을 닫으려면 exit 를 칩니다. 이 편에서 쓰는 순수 터미널 명령어는 여기까지입니다.
Tab 키를 알면 오타가 사라집니다
이게 이 강의에서 제일 실속 있는 부분일 수 있습니다. 폴더 이름을 끝까지 칠 필요가 없습니다. 앞 글자 몇 개만 치고 Tab 키를 누르면 나머지를 알아서 채워줍니다.
cd De 까지만 치고 Tab 을 누르면 cd Desktop/ 으로 채워집니다. 아무 반응이 없다면 De 로 시작하는 게 없거나, 후보가 여럿이라 하나를 고르지 못한 것입니다. 이때 Tab 을 한 번 더 누르면 후보를 늘어놓아 줍니다.
Tab 을 쓰는 사람과 안 쓰는 사람은 터미널에서 보내는 시간이 확연히 갈립니다. 이름이 길수록 위력이 크고, 대소문자와 띄어쓰기 실수도 같이 막아줍니다. 안 채워지면 이름을 잘못 알고 있다는 신호이기도 해서, 오타를 미리 잡아주는 역할도 합니다.
에러는 이렇게 생겼습니다
일부러 없는 폴더로 들어가 봅니다. 이런 걸 한 번 보고 넘어가면 실제로 만났을 때 덜 당황합니다.
- $ cd desktopp
- bash: cd: desktopp: No such file or directory
영어라서 길어 보이지만 구조는 단순합니다. 앞은 누가 하는 말인지, 뒤는 무슨 말인지입니다.
| 조각 | 뜻 |
|---|---|
bash: | 이 창이 하는 말이다 |
cd: | cd 명령어에서 났다 |
desktopp: | 문제가 된 이름은 이것이다 |
No such file or directory | 그런 파일이나 폴더가 없다 |
이 에러는 열에 아홉이 오타이거나, 지금 서 있는 위치가 생각과 다른 경우입니다. 그래서 대응도 정해져 있습니다. ls 를 쳐서 지금 폴더에 그 이름이 정말 있는지 확인하면 됩니다.
정리하면
- 터미널은 탐색기를 말로 시키는 창입니다. 하는 일이 다른 게 아니라 시키는 방법이 다릅니다
- 이 창이 기억하는 건 지금 서 있는 폴더 하나뿐입니다. 명령어가 안 먹으면 위치부터 봅니다
- 외울 건 두 개입니다.
ls로 보고,cd로 들어갑니다. 뒤로는cd ..입니다 - 프롬프트의
$는 따라 치는 게 아니라 "여기부터 사람이 친 것"이라는 표시입니다 - Tab 키로 이름을 자동완성합니다. 오타와 대소문자 실수가 같이 사라집니다
- 잘 되면 조용하고, 말을 걸어오면 대개 잘못된 것입니다
여기까지 깃을 설치하고, 깃허브에 가입하고, 검은 창을 다루는 준비를 마쳤습니다. 아직 깃으로는 아무것도 안 했습니다.
다음 5강에서 드디어 시작합니다. 빈 폴더를 하나 만들고 거기에 git init 을 칩니다. 폴더에 CCTV 를 다는 일이라고 생각하면 됩니다. 그 순간부터 그 폴더 안에서 일어나는 일이 전부 기록 대상이 됩니다. 그리고 memo.txt 라는 파일을 하나 만듭니다. 이 파일이 20강까지 계속 따라다니게 됩니다.