git, github 관리에 대한 강의를 수강함.

TIL

git for windows를 통해서 git을 설치함

(물론 이미 설치해놨지만 새로운 버전으로 업데이트를 진행함)

UNIX의 탄생부터 리눅스가 생기기까지의 역사를 공부함

LINUX 이전

  • 1965년 데니스 리치, 켄 톰슨 외 x명이 AT&T Bell 연구소에서 UNIX를 개발

  • 1973년 데니스 리치와 켄 톰슨이 C를 개발한 뒤, C 기반 UNIX 재작성

  • 1984년 리차드 스톨먼이 오픈 소프트웨어 자유성 확보를 위한 GNU 프로젝트 시작

※GNU = Gnu is Not Unix

GNU의 문제점은 하드웨어와 응용프로그램을 이어주는 운영체제의 핵심 시스템 소프트웨어인 Kernel이 존재하지 않았다.

  • 헬싱키 대학생이던 리누스 토발즈는 앤디 타넨바움의 MINIX를 개조한 Linux를 발표
  • 0.1 - bash(GNU Bourne Again SHell), gcc(UNIX 기반 C 컴파일러)

  • Linux

    리누스 토발즈가 작성한 커널 혹은 GNU 프로젝트의 라이브러리와 도구가 포함된 운영
    체제

  • PC와 모바일, 서버, 임베디드 시스템 등 다양한 분야에서 활용

  • Redhat, Debian, Ubuntu, Android 등 다양한 배포판이 존재

shell의 뜻과 명령어에 대해 공부함

Shell?

  • 운영체제의 커널과 사용자를 이어주는 소프트웨어
  • sh(Bourne Shell): AT&T Bell 연구소의 Steve Bourne이 작성한 유닉스 쉘
  • csh: 버클리의 Bill Joy가 작성한 유닉스 쉘
  • bash(Bourne Again Shell): Brian Fox가 작성한 유닉스 쉘
    • 다양한 운영체제에서 기본 쉘로 채택
  • zsh: Paul Falstad가 작성한 유닉스 쉘

shell 명령어

  • ~(틸드): 지금 로그인한 사용자가 최상위 위치임을 나타내는 기호

  • pwd(print working directory) : 현재 경로를 절대경로로 표시함

  • ls (list segement) : 현재 디렉토리 하위 파일들을 전부 보여줌

    • ls-a : 현재 디렉토리와 상위 디렉토리를 보여줌
  • cd (change directory) : 경로를 변경함

  • mkdir (make directory) : 디렉토리 생성

  • touch : 파일 생성

  • mv : 파일 이동

  • cp : 파일 복사

  • rm : 파일 삭제

    • rm -r 디렉토리 제거
    • rm -rf 강제 제거
  • cat : 파일 또는 텍스트 파일의 내용을 화면에 출력

CLI의 뜻을 알게됨 (Command Line Interface)

가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식

GUI의 뜻을 알게됨 (Graphic User Interface)

윈도우 시스템, 아이콘, 메뉴, 포인팅 디바이스 등의 요소에 의해 구성되는 컴퓨터 조직 환경 (ex. 탐색기)

Vim 사용법

md 파일을 vi 명령어를 사용해서 편집을 할수 있음

vi learn-md.md

i : 입력모드로 전환
esc : 모드 해제 후 노멀모드로 복귀
v : 비주얼 모드 전환
':' : 명령어 모드로 전환

명령어 모드일때

w : 저장
q : 종료
wq : 저장 후 종료
q! : 강제종료 (저장안함)
wq! : 강제저장후 종료

cli를 배우는 이유

VCS(Version Control System)을 쓰기 위해서
VCS == SCM (Source Code Management)
< SCM (Software Configuration Management: 형상관리)

대표적인 예 : git

git 특징

  • 빠른속도, 단순한 구조
  • 분산형 저장소 지원
  • 비선형적 개발(수천개의 브랜치) 가능

git 장점

  • 소스코드 주고받기 없이 동시작업이 가능해져 생산성이 증가

  • 수정내용은 commit 단위로 관리, 배포 뿐 아니라 원하는 시점으로 Checkout 가능

  • 새로운 기능 추가는 Branch로 개발하여 편안한 실험이 가능하며, 성공적으로 개발이 완
    료되면 Merge하여 반영

  • 인터넷이 연결되지 않아도 개발할 수 있음

gui 도구들이 있지만 cli를 먼저 공부를 하고 난 다음에 gui를 사용한다. cli를 통해서 어떤 명령어가 사용되는지를 알아야 gui에 대한 사용의 이해도도 높아질 것이기 때문

profile
개발자 꿈나무

0개의 댓글