git, github 관리에 대한 강의를 수강함.
(물론 이미 설치해놨지만 새로운 버전으로 업데이트를 진행함)
LINUX 이전
1965년 데니스 리치, 켄 톰슨 외 x명이 AT&T Bell 연구소에서 UNIX를 개발
1973년 데니스 리치와 켄 톰슨이 C를 개발한 뒤, C 기반 UNIX 재작성
1984년 리차드 스톨먼이 오픈 소프트웨어 자유성 확보를 위한 GNU 프로젝트 시작
※GNU = Gnu is Not Unix
GNU의 문제점은 하드웨어와 응용프로그램을 이어주는 운영체제의 핵심 시스템 소프트웨어인 Kernel
이 존재하지 않았다.
0.1 - bash(GNU Bourne Again SHell), gcc(UNIX 기반 C 컴파일러)
Linux
리누스 토발즈가 작성한 커널 혹은 GNU 프로젝트의 라이브러리와 도구가 포함된 운영
체제
PC와 모바일, 서버, 임베디드 시스템 등 다양한 분야에서 활용
Redhat, Debian, Ubuntu, Android 등 다양한 배포판이 존재
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) : 현재 디렉토리 하위 파일들을 전부 보여줌
cd (change directory) : 경로를 변경함
mkdir (make directory) : 디렉토리 생성
touch : 파일 생성
mv : 파일 이동
cp : 파일 복사
rm : 파일 삭제
cat : 파일 또는 텍스트 파일의 내용을 화면에 출력
가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식
윈도우 시스템, 아이콘, 메뉴, 포인팅 디바이스 등의 요소에 의해 구성되는 컴퓨터 조직 환경 (ex. 탐색기)
md 파일을 vi 명령어를 사용해서 편집을 할수 있음
vi learn-md.md
i : 입력모드로 전환
esc : 모드 해제 후 노멀모드로 복귀
v : 비주얼 모드 전환
':' : 명령어 모드로 전환
명령어 모드일때
w : 저장
q : 종료
wq : 저장 후 종료
q! : 강제종료 (저장안함)
wq! : 강제저장후 종료
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에 대한 사용의 이해도도 높아질 것이기 때문