O
CLI(Command Line Interface)는 터미널에서 실행되는 명령어 창이다. 모니터가 없는 서버 컴퓨터를 관리하기 위해 사용된다. GUI(Graphic User Interface) 환경은 많은 메모리를 차지하므로 서버 컴퓨터에 적합하지 않다. 대신 보기 좋은 인터페이스로 사람이 사용하기에 좋다. 보여지는 인터페이스만 다를 뿐이지, 두 창 모두 같은 기능을 수행하며, 동일한 결과를 저장한다.
O👧
O👦
pwd
(print working directory) : 현재 위치를 확인하는 명령어mkdir
(make directory) : 새로운 폴더를 생성하는 명령어ls
(list) : 폴더나 파일의 목록을 출력하는 명령어nautilus (Ubuntu)
,open (macOS)
: 현재 폴더를 파일 탐색기로 여는 명령어cd
(change directory) : 폴더에 진입하는 명령어touch
: 새로운 파일을 생성하는 명령어cat
(concatenate) : 파일의 내용을 터미널에 출력하는 명령어rm
(remove) : 폴더나 파일을 삭제하는 명령어mv
(move) : 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어cp
(copy) : 폴더나 파일을 복사하는 명령어sudo
(super user do) : 관리자 권한을 이해할 수 있다.
/
: 루트 디렉토리 - 최상위 디렉토리
~
: 홈 디렉토리 - 사용자 파일의 최상단 디렉토리
절대 경로의 시작은 루트 디렉토리
/
이고, 상대 경로의 시작은 현재 디렉토리.
이다. 상대 경로는 GUI와 비슷하다. 폴더의 깊이가 깊을 수록 절대 경로를 사용하는 것이 용이하다. 작업 상황에 맞게 사용하면 된다.
패키지는 우리가 다운로드하여 사용하는 프로그램을 의미한다. 패키지 매니저는 우리가 다운로드 한 프로그램들을 쉽게 관리하기 위해서 사용한다. 프로그램의 설치와 업데이트 등을 한눈에 알아보기 좋게 해준다. 일종의 App store 라고 생각할 수 있겠다.
apt update
: 패키지의 업데이트 여부 확인apt list --upgradable
: 업데이트 필요한 파일 조회apt upgrade
: 프로그램 업그레이드apt show
: 프로그램의 정보 확인apt install
: 프로그램 설치apt list --installed
: 설치된 프로그램 목록 보기apt remove
: 프로그램 삭제apt search
: 패키지 검색
- nvm (node version manager) : 노드의 버전을 확인할 수 있다. 버전이 다른 파일들을 다룰 때, nvm을 사용하여 설치되어 있는 버전을 삭제하지 않고 이전 버전을 골라서 사용할 수 있다.
nvm ls
: 설치된 version 목록
nvm install 버전
: 필요한 버전 설치
nvm use 버전
: 원하는 버전 선택하여 사용- node.js : JavaScript로 작성된 코드를 웹 페이지가 아닌 다른 곳에서 실행시킬 수 있는 새로운 런타임이다.
- npm (node pakage manager) : 바퀴를 다시 만들지 말란다. 남이 만들어 놓은 모듈을 가져와서 사용할 수 있는 프로그램이다.
pakage.json
: 모듈의 카탈로그이다. 모듈을 어떻게 사용해야하는지 자세히 알려준다. 실제 모듈은 /node_modules 폴더에 저장된다.
"dependencies"
: 프로그램을 실행시키기 위해 반드시 필요한 모듈에 대한 정보가 담겨있다.
"devDependencies"
: 프로그램을 개발하는 환경에서 필요한 모듈에 대한 정보가 담겨있다.
"scripts"
: CLI에서 사용할 수 있는 명령어에 대한 정보가 담겨있다.$ npm run 스크립트이름
node fileName.js
Git은 온라인 원격 저장소이다. Github는 이런 Git 저장소를 이용하는 하나의 사이트이다.
Repository는 파일을 담을 저장소이다. Local Repository는 내가 작업하는 내 컴퓨터의 저장소이고, Remote Repository는 원격 온라인 서버 상의 저장소이다. 우리는 Local 저장소에서 파일을 수정하고 Remote 저장소에 push 하여 작업한 내용을 백업한다.
Fork
: 다른 유저의 Repository를 내 Repository로 복사하여 가져온다.clone
: Remote Repository를 Local Repository로 복사한다.status
: 현재 상황을 살펴볼 수 있다.restore
: modified 상태의 파일을 unmodified 상태로 되돌릴 수 있다.add
: modified 상태의 파일을 staging area에 올려 staged 상태로 만든다.commit
: staged 상태의 파일에 commit message를 남겨 Local Repository에 저장한다.reset
: commit 해놓은 파일을 unstaged 상태로 내릴 수 있다.HEAD^
옵션을 사용하면 직전의 파일에만 적용된다.log
: commit log를 확인 할 수 있다.pull
: Remote Repository의 내용을 Local Repository로 당겨와서 merge 해준다.push
: Local Repository의 파일을 Remote Repository로 백업한다.init
: Local Repository를 Git과 연결시켜준다.remote add
: Local Repository에 새로운 Remote Repository를 연결시켜준다.remote -v
: Local Repository와 연결된 모든 Remote Repository를 확인 할 수 있다.
modified : pull 하여 받아온 파일, 또는 commit하여 Local Repositort에 저장한 파일을 수정한 상태.
staged : modified 상태의 파일을 add 하여 staging area에 올려놓은 상태.
committed : staging area에 있는 파일을 Local Repository에 저장하여 Remote Repository에 백업할 준비가 된 상태.
- 작업물을 fork 한다.
- fork한 작업물을 clone 한다.
git remote add pair <주소>
로 페어의 Remote Repository를 연결시킨다.- 페어의 파일을 내려받을 땐
git pull pair main
. 내용은 자동으로 merge 된다.- 내 작업물을 올릴 때에는 내 Remote Repository에 push 한다.
충돌이 일어났다면 먼저 git status로 어떤 파일에서 충돌이 일어났는지 확인한다. 확인 후 세 가지 선택지가 주어지는데, 바로 바로 ~~
- Accept Current Change : 나의 수정 내용 반영.
- Accept Incoming Change : Remote Repository 내용 반영.
- Accept Both Changes : 둘 다 반영.
셋 다 싫으면 알아서 수정하는 방법도 있다. 선택 후 add, commit, push 하여 수정 내용을 저장한다.