Search

1) CLI 기초

구분
1일차

[1] Git 설치

(1) Windows (윈도우)

Git 설치 후 윈도우 탐색기를 엽니다. (윈도우키 + e)
C:/사용자(Users)/현재 사용자 계정 로 이동합니다.
폴더 내 빈 공간에서 마우스 우클릭 후 Git Bash Here를 클릭합니다.
Git Bash 창에 아래 화면처럼 HOME 폴더를 의미하는 ~ 표시만 있다면 정상입니다. (~ 표시가 없거나, 뒤에 글자가 추가적으로 나타난다면 잘못된 경로일 수 있습니다.)

(2) Mac (맥)

Git이 기본적으로 내장 되어 있기 때문에, 별도의 설치가 필요 없습니다.
Spotlight (검색)를 엽니다. (화면 우측 상단의 돋보기 혹은 command + spacebar)
terminal을 검색하여 터미널을 엽니다.
터미널을 열면 기본적으로 HOME 폴더로 경로가 설정 되어 있습니다. (/Users/현재 사용자 계정)
open .라고 입력하여 HOME 폴더를 엽니다.

[2] GUI vs CLI

(1) GUI와 CLI의 정의

왼쪽이 GUI, 오른쪽이 CLI 입니다. 화면에 나타나는 모습만 다를 뿐, 결국 같은 일을 합니다.
1.
GUI (Graphic User Interface) : 그래픽을 통해 사용자와 컴퓨터가 상호 작용하는 방식
2.
CLI (Command Line Interface) : 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식
Interface(인터페이스) 인터페이스란 원래 서로 다른 개체끼리 맞닿아 있는 을 뜻합니다. 여기에서는 사용자와 컴퓨터가 서로 소통하는 접점이라고 이해하도록 합시다.

(2) CLI를 사용하는 이유

new 라는 이름으로 새 폴더를 생성해 봅시다.
1.
GUI를 사용하는 경우 (4단계) : 마우스 우클릭 → 새로 만들기 → 폴더 → new 작성
2.
CLI를 사용하는 경우 (1단계) : mkdir new
GUI는 CLI에 비해 사용하기 쉽지만 단계가 많고 컴퓨터의 성능을 더 많이 소모합니다.
그리고 CLI는 GUI로는 불가능한, 많은 세부적인 기능을 사용할 수 있습니다.
따라서 이후 수업 진행은 CLI를 기반으로 진행하며, CLI에 익숙해지는 시간을 가집니다.
그렇다면 GUI는 왜 존재하나요? 옛날에는 컴퓨터를 사용하기 위해서는 CLI 환경에서만 가능했습니다. 그렇기 때문에 컴퓨터를 잘 아는 소수의 사람들만 사용할 수 있었는데요. GUI가 등장하면서 많은 사람들이 더 쉽게 컴퓨터를 사용할 수 있게 되었고 오늘 날 PC라는 개념으로 컴퓨터가 대중화 될 수 있었던 주요 요인 중 하나입니다.

(3) Git Bash를 사용하는 이유

Windows에는 CLI 환경인 Powershell명령 프롬프트가 이미 존재합니다.
하지만 왜 Git Bash라는 것을 사용할까요?
1.
명령어의 통일을 위해서 입니다.
UNIX 계열 운영체제의 명령어와 Windows의 명령어의 차이가 존재합니다.
따라서 Git Bash라고 하는 일종의 번역기를 통해 Windows에서도 UNIX 계열 운영체제의 터미널 명령어를 사용하기 위함입니다.
2.
UNIX 계열 운영체제의 명령어를 더 많이 쓰기 때문입니다.
개발자 입장에서는 Windows보다는 UNIX 계열 운영체제 기반의 프로그램이 훨씬 많습니다.
그만큼 개발 시장에서는 UNIX 계열 운영체제가 더 많이 사용되기 때문에, Git Bash를 통해서 UNIX 계열 운영체제의 터미널 명령어를 연습합니다.

[3] 경로

(1) 루트, 홈 디렉토리

1.
루트 디렉토리 (Root Directory, /)
모든 파일과 폴더를 담고 있는 최상위 폴더입니다.
Windows의 경우 보통은 C 드라이브를 의미합니다.
2.
홈 디렉토리 (Home Directory, ~)
Tilde(틸드)라고도 부르며, 현재 로그인 된 사용자의 홈 폴더를 의미합니다.
Windows의 경우 C:/사용자(Users)/현재 사용자 계정을 의미합니다.
Mac의 경우 /Users/현재 사용자 계정을 의미합니다.
폴더 vs 디렉토리 폴더와 디렉토리는 거의 같은 의미로 사용됩니다. 따라서 의미의 구분이 무의미합니다. 세부적으로 따져보자면, 윈도우 탐색기에서의 특수 폴더 들(ex. 네트워크 환경, 내컴퓨터 등)은 폴더이지만 디렉토리는 아닙니다. 따라서 폴더가 디렉토리보다 넓은 개념이라고 할 수는 있겠습니다.

(2) 절대 경로와 상대 경로

1.
절대 경로 : 루트 디렉토리부터 목적 지점까지 거치는 모든 경로를 전부 작성한 것
윈도우 바탕 화면의 절대 경로 C:/Users/kyle/Desktop
2.
상대 경로 : 현재 작업하고 있는 디렉토리를 기준으로 계산된 상대적 위치를 작성한 것
현재 작업하고 있는 디렉토리가 C:/Users 라고 한다면
윈도우 바탕 화면으로의 상대 경로는 kyle/Desktop 이 됩니다.
간결해서 좋지만, 현재 작업하고 있는 디렉토리가 변경 되면 상대 경로도 변경됩니다.
./ : 현재 작업하고 있는 폴더를 의미합니다.
../ : 현재 작업하고 있는 폴더의 부모 폴더를 의미합니다.

[4] 터미널 명령어

1.
touch
파일을 생성하는 명령어
띄어쓰기로 구분하여 여러 파일을 한꺼번에 생성 가능합니다.
숨김 파일을 만들기 위해서는 .을 파일 명 앞에 붙입니다.
$ touch text.txt
Bash
복사
2.
mkdir
make directory
새 폴더를 생성하는 명령어
띄어쓰기로 구분하여 여러 폴더를 한꺼번에 생성 가능합니다.
폴더 이름 사이에 공백을 넣고 싶다면 따옴표로 묶어서 입력합니다.
$ mkdir folder $ mkdir 'happy hacking'
Bash
복사
3.
ls
list segments
현재 작업 중인 디렉토리의 폴더/파일 목록을 보여주는 명령어
-a : all 옵션. 숨김 파일까지 모두 보여줍니다.
-l : long 옵션. 용량, 수정 날짜 등 파일 정보를 자세히 보여줍니다.
# 기본 사용 $ ls # all 옵션 $ ls -a # all, long 옵션 함께 적용 $ ls -a -l # 여러 옵션 축약 가능 $ ls -al
Bash
복사
4.
mv
move
폴더/파일을 다른 폴더 내로 이동 하거나 이름을 변경하는 명령어
단, 다른 폴더로 이동할 때는 작성한 폴더가 반드시 있어야 합니다. 없으면 이름이 바뀝니다.
# text.txt를 folder 폴더 안에 넣을 때 $ mv text.txt folder # text1.txt의 이름을 text2.txt로 바꿀 때 $ mv text1.txt text2.txt
Bash
복사
5.
cd
change directory
현재 작업 중인 디렉토리를 변경하는 명령어
cd ~ 를 입력하면 홈 디렉토리로 이동합니다. (단순히 cd 라고만 입력해도 동일합니다.)
cd .. 를 입력하면 부모 디렉토리로 이동합니다. (위로 가기)
cd - 를 입력하면 바로 전 디렉토리로 이동합니다. (뒤로 가기)
# 현재 작업 중인 디렉토리에 있는 folder 폴더로 이동 $ cd folder # 절대 경로를 통한 디렉토리 변경 $ cd C:/Users/kyle/Desktop # 상대 경로를 통한 디렉토리 변경 $ cd ../parent/child
Bash
복사
6.
rm
remove
폴더/파일 지우는 명령어
GUI와 달리 휴지통으로 이동하지 않고, 바로 완전 삭제합니다.
*(asterisk, wildcard)를 사용해서 rm *.txt 라고 입력하면 txt 파일 전체를 다 지웁니다.
-r : recursive 옵션. 폴더를 지울 때 사용합니다.
$ rm test.txt $ rm -r folder
Bash
복사
7.
start, open
폴더/파일을 여는 명령어
Windows에서는 start를, Mac에서는 open을 사용할 수 있습니다.
# Windows $ start test.txt # Mac $ open test.txt
Bash
복사
8.
유용한 단축키
위, 아래 방향키 : 과거에 작성했던 명령어 조회
tab : 폴더/파일 이름 자동 완성
ctrl + a : 커서가 맨 앞으로 이동
ctrl + e : 커서가 맨 뒤로 이동
ctrl + w : 커서가 앞 단어를 삭제
ctrl + l : 터미널 화면을 깨끗하게 청소 (스크롤 올리면 과거 내역 조회 가능)
ctrl + insert : 복사
shift + insert : 붙여넣기