패스트캠퍼스 메가바이트스쿨 Day3 (1주차 수요일 - Git, GitHub 2)

ctaaag·2022년 4월 14일
0
post-thumbnail

1. 개요

1-1) Linux

  • 리눅스 이전
  • UNIX라는 os가 AT&T 데니스 리치, 켄 톰슨이 개발을 해서 지배적으로 있을 당시 미국 내 히피문화가 활성화되고, 오픈 소프트웨어의 자유성을 확보하고자 했으나 UNIX는 여러가지 제한사항으로 하지 못했음
  • 리차드 스톨먼이 오픈 소프트웨어 자유성 확보를 위해 GNU프로젝트를 하면서 오픈 소프트웨어를 만들기 시작했음.
  • 그러나 GNU프로젝트에는 커널이 없다는 치명적 문제가 있었음
  • Kernel이란, 하드웨어와 응용프로그램을 이어주는 운영체제의 핵심 시스템소프트웨어이다.
  • 리눅스(Linux)
  • 리누스 토발즈가 작성한 커널 혹은 GNU 프로젝트의 라이브러리와 도구가 포함된 운영체제
  • pc와 모바일, 서버, 임베디드 시스템 등 다양한 분야에서 활용됨 (ex. 안드로이드)

1-2) Shell

  • 운영체제의 커널과 사용자를 이어주는 소프트웨어

    csh : 버클리의 Bill Joy가 작성한 유닉스 쉘
    bash : 다양한 운영체제에서 기본 쉘로 채택
    zsh : 현재까지 가장 완벽한 쉘

  • 유저인터페이스

    CLI기반의 쉘 vs GUI기반의 쉘
    CLI(Command Line Interface) : 마우스 없이 커맨드 혹은 터미널로만 작업가능
    GUI(Grapgical User Interface) : 그래픽을 활용하여, 마우스로 클릭,드래그 등으로 작업가능

  • 쉘 앞에 $ 혹은 % 표시가 있으면 준비가 되어있다는 뜻
  • ~ 표시는 유저폴더를 뜻하고, 특별한 권한을 갖지 않고도 특정 일을 수행할 수 있음.
hyeonbyeongtaeg@hyeonbyeongtaegs-MacBook-Air ~ %


2. 터미널활용

왜 터미널을 활용해야하는가?
커맨드, 터미널을 잘 활용할 줄 알아야 나중에 서버에서 데이터를 끌어오는 등의 전문적인 작업을 할 때 더 능숙하게 활용할 수 있다.
초반에 힘들더라도 터미널로 하는 연습을 꾸준히 해야한다.

2-1) 터미널 디렉토리(폴더) 만들기

ls // list segment로 현재 리스트를 볼 수 있음
ls - a // 숨김 파일도 보고 싶을 때 사용
ls - l // 상세정보 보기
cd Ducments/ // change directory의 줄임말. 다큐먼트 디렉토리로 이동
cd .. // 상위 디렉토리로 이동
cd . // 현재 디렉토리로 이동
cd // 최상단 디렉토리로 이동
mkdir 파일명 // '파일명'이라는 새로운 디렉토리 만들기
  • flag (-)는 깃발이라는 의미를 갖고 있음. '-' 세부적인 것을 설정하고 싶을 때 사용 가능
  • echo 'text' // 터미널에 텍스트 입력

2-2) 파일 만들기

touch 파일명 // 새로운 파일 만들기. 디렉토리 만드는 것과 다름
touch 파일명 && touch 파일명 // 여러개 파일 만들때

2-3) 파일 옮기기

mv 파일명 폴더명
mv style.css src
mv ../server.js ./  // 이렇게 입력하면 상위폴더의 파일인 server.js를 현재 폴더로 옮긴다.
mv ../server.* ./  // 애스터리스크*를 이용하면 server가 들어간 모든 것을 지운다는 뜻
  • move의 줄임말 mv를 통해서 명령함

2-4) 사본 만들기

cp 파일명 폴더명 // 파일을 해당 폴더에 복사함
cp 파일명 ./파일이름명 // 파일을 현재 폴더에 복사함
mv ../server.* ./
  • copy의 줄임말 cp를 통해서 명령함

2-5) 삭제하기

rm -r 파일명
rm -rf 파일명
sudo rm -rf 파일명
  • 파일만 삭제할 수 있고 디렉토리는 삭제 못함. 디렉토리를 삭제할 경우 경로를 잃어버릴 수 있기 때문에 큰 문제가 생겨서 막아놨음.
  • rm -r이 안지워지면 rm -rf로 지우고, 이것도 안되면 sudo(관리자권한)을 이용하여 삭제 할 것.

2-6) 폴더이름 바꾸기

mv 파일명 변경명
ex) mv hello.md bye.md


3. Vim 이용하기

  • vim에 들어가기
vim 파일명
vi 파일명
  • vim 사용법

  • vim 저장되었는지 확인하기
cat learn-markdown.md

4. Git

4-1) Git에 대하여

vcs 버전 컨트롤 시스템 다른 말로는 == 소스 코드 매니지먼트 SCM
(source code management)

주의! 프로그래밍 전반을 관리하는 형상관리로서의 SCM
(software configuration management)과 다르다.

우리의 소스코드를 사진을 찍는다고 생각하면?

Git의 흐름

Git은 각각의 작업단위가 중요하다!

  • git을 활용할 때는 각각의 작업단위를 나누는 것이 중요함. commit을 할 때는 독립적인 작업단위에 대한 고민을 해야함. 작업단위들이 잘 못 구분이 되면 그 파일이 히스토리가 남기기 어려워짐

4-2) Conventional Commits (커밋의 관습 혹은 공통된 약속)

Conventional Commits

  1. commit의 제목은 commit을 설명하는 하나의 구나 절로 완성
  2. Importance of Capitalize
  3. prefix(앞머리)를 꼭 달아주기
    • feat : 기능 개발 관련
    • fix : 오류 개선 혹은 버그 패치 (아예 고장난 상태
    • docs : 문서화 작업
    • refactor : Refactor user classes (개선하는 것. 코드 품질의 개선을 가져왔다)


5. Hexo를 이용한 TIL블로그 만들기

5-1) hexo 설치하기

npm install -g hexo-cli 

5-2) hexo 사이트 개설

git clone <깃헙내의  주소>
hexo init <폴더명>
cd <폴더명>
npm install

5-3) hexo generate로 작업하기

hexo generate
hexo server

5-4) hexo new post로 사이트

hexo new post "파일이름"
hexo server
hexo clean && hexo generate

5-5) hexo 저장/배포하기

vi \_config.yml
npm install hexo-deployer-git --save
vi \_config.yml
hexo clean && hexo generate
hexo deploy
profile
프로그래밍으로 지속가능한 세상을 꿈꾸며

0개의 댓글