본문 바로가기

code-states

[code-states][we-win] 11일차 - terminal, command line, and git

command line, terminal 


 

[ 배우기에 앞서서 ] 

 

이번에 배울 command line 은 *nix 계열의 명령어들임 

그 이유는, 많은 서버사이드의 OS (AWS 또한) 가 *nix based 이거나 *nix 친화적이기 때문이다 



[ CLI 의 장점 ] 

  • GUI 에 비해 동선이 더욱 효율적 → 빠르고 강력하다 

  • 접근성이 훌륭 → 서버에 terminal 로 명령을 보낼 수 있음 



[ terminal ]

  • 기본 dir 은 일단은 root 임

  • ls 

    • 기본적으로, dir 에 있는 모든 파일/폴더를 볼 수 있음

    • ls -al 

      • 숨김 옵션이 걸려있는 파일/폴더들과 상세 정보를 확인 가능

  • cd 

    • 해당 좌표로 이동한다

      • cd, 혹은 cd ~  : 홈 디렉토리(사용자의 개인화 파일이 있는 최상위 dir)로 이동 

      • cd / : 루트 디렉토리(시스템의 최상위 dir)

      • cd . : 현재 디렉토리(현재의 dir)

      • cd .. : 부모 디렉토리 (상위 dir)

  • pwd 

    • 현재 디렉토리로 이동

  • clear

    • 터미널을 밀어줌 (초기화)

  • tab key

    • 파일이나 프로그램에 접근하는 데 Intellisence 기능을 이용하여 자동완성 시켜줌

      • eg. home dir 에 ‘Code States’ 가 있는 경우, cd /Code 까지만 친 뒤 tab !

        • 그렇게 하면 cd /Code\ States 로, 띄어쓰기를 back slash 로 잡아준 dir 명이 자동으로 나옴

  • touch fileName

    • touch 를 입력한 뒤 뒤에 filenName.확장자 를 입력하면 해당 파일이 생성됨 

  • mkdir dirName 

    • mkdir (make dir. 의 약어) 를 입력한 뒤에 dirName 을 입력하면 해당 폴더가 생성됨

 

  • mv fileName or dirName targetDir

    • mv 를 입력한 뒤에, fileName 이나, dirName 을 입력하고, 그 뒤에 targetDir 을 입력하면 file/dir 을 targetDir 로 보낼 수 있음 

  • mv fileName or dirName newName 

    • mv 를 입력한 뒤에, fileName 이나, dirName 을 입력하고, 그 뒤에 newName 을 입력하면 file/dir 을 newName 으로 바꿀 수 있음 

 

 

 

 

 

 

Git, Github


 

한 사람이 아닌, 여러 사람이 한 파일을 가지고 일 할 경우 어떻게 해야 할까?

그래서 우리가 이용하는 게 버전관리 시스템이다 

 

버전 관리 시스템은 다음과 같은 장점이 있다 

  • 각 버전을 저장하고 

  • 혹시 되돌려야 하면 되돌리며

  • 되돌릴 수 있도록 무슨 일이 일어났는지 전부 기록이 된다 



버전 관리 시스템의 간단한 logic 이다 

 

날짜별로 바뀌는 프로젝트가 변화하는 모습을 볼 수 있다 

modified 나, created 등이 뜨면서, 어떻게 변화했는지도 볼 수 있다 

 

이런 변경 사항이 바뀌는 걸 볼 수 있고, 그 변경 사항 하나하나에 대한 snapshot 이 저장되는 기능이며

상기한 장점들 덕분에 이는 협업에서 아주 많이 쓰이고 있다

 

VCS(Version Control System) 중 가장 유명한 것은 Git 이고 

이런 Git 들을 저장하고 다른 사람들과 같이 돌려볼 수 있는 것이 Github 이다

[ Features of Git ] 

  • Branching, Merging

  • Distributed

  • Data Assurance 

  • Staging Data 






[ fork, clone ] 

 

fork, clone 의 비교 

  • fork : remote repository 에서 작업을 진행할 수 있게 기본 세팅 

  • clone : local repository 에서 작업을 진행할 수 있게 기본 세팅 



 

 

 

 

 

 

Office Hour


 

fork, clone, push, pull 에 대해서 직접 해 보며 이해하기! 

 

ziteboard, 온라인 그림판으로 괜찮아 보임 

 

staging area : 무대에서 약간 더 높은 위치가 있는 것처럼, git 에 개시 할 수 있는 애들을 올려놓는 위치, 작업대라고도 하고 싶음 

 

commit : staging area 에 올라간 파일을 git 의 remote repository 에 snapshots 의 형식으로 본격적으로 개시해  줌 

 

연습을 하기 위해서 github 에 새로운 remote repository 를 만들어보자!

다 해보면, dropbox 나 google cloud 로도 만들어보자!