220106
CS02 - 리눅스
학습목표
- 리눅스/유닉스 환경과 터미널 쉘 환경에 익숙해지기
- 리눅스 기본 명령어 익히기
- 쉘 스크립트 명령을 통해 작업 자동화하기
개발 환경
로컬 컴퓨터, 리모트 컴퓨터
- 로컬 컴퓨터 local
- 리모트 컴퓨터 remote
- 원격으로 접속해 사용할 외부 컴퓨터
- 서버 / 모바일
- 개발자는 로컬에서 작업한 것을 리모트에 복사 및 배포한다.
가상 컴퓨터, 가상 환경
- 가상 컴퓨터 virtual
- 물리적 장치 없이 가상으로 만든 임시 컴퓨터.
- 보통 큰 컴퓨터 내의 구성요소(CPU, 메모리 등)을 일부 분할해 작은 가상 컴퓨터로 실행함
- 테스트를 항상 실제 리모트 컴퓨터에서 진행하기 어렵기 때문에, 로컬 컴퓨터의 일부를 가상 머신으로 만들고 배포해 보는 방식을 사용한다.
리눅스의 역사
- 유닉스Unix 처럼 동작하는 새로운 무료 운영체제를 만든 것이 Linux 이다.
- 1969년 켄 톰슨, 데니스 리치가 벨 연구소에서 Unix 운영체제를 개발했다.
- 1991년 대학생이었던 리누즈 토발즈가 Linux 커널을 개발했다.
Shell (쉘, 셸)
- OS와 대화하는 프로그램
bash
, zsh
(맥) 주로 사용
쉘 명령어
pwd
현재 디렉토리 위치
ls
현재 디렉토리 내용
mkdir
새 디렉토리 생성
cd 경로
디렉토리 변경
cat 파일이름
파일 내용 표시
history
명령어 이력 표시
cp
파일 복사
mv
파일 이동
rm
파일 삭제
touch
파일 생성
쉘 스크립트
.sh
확장자 파일로 저장
쉘 스크립트 활용
- 환경변수 Environment Variables
- 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임
- 스크립트 변수
220107
CS02 - 리눅스 (수업)
이번 미션을 통해 공부해야 할 것
- 리눅스
- 네트워크
- ssh
- HTTP, TCP/IP (필수)
.. 를 공부해야 한다.
운영체제는 왜 필요한가?
- 하드웨어 관리
- 하드웨어 보호 (고장나지 않게)
커널 : 운영체제의 알맹이(핵심)
쉘 : 운영체제의 껍데기 - 커널과 사용자의 유저 인터페이스이다.
가장 쉬운 리눅스 강좌
https://www.youtube.com/watch?v=tPWBF13JIVk
개발자가 되면 리눅스 환경을 다룰 일이 많아진다.
CLI 중심이기 때문에 진입장벽이 있다.
리눅스는..
- 오픈소스 운영체제
- 가장 대중적인 배포버전은 우분투이다.
- GUI 버전은 Ubuntu Desktop, CLI 버전은 Ubuntu Server이다.
왜 배워야 하나?
- 서버 컴퓨터의 OS가 주로 리눅스로 되어 있기 때문이다.
- 서버 컴퓨터의 OS를 맥, 윈도우로 쓰는 것은 굉장한 비용이기 때문..
- 반면 리눅스는 무료이고, 필요한 마음대로 개조도 가능하다.
커널
- "리눅스 커널이 곧 리눅스다."
- 하드웨어 요소들을 OS의 최하단에서 직접 관리하는 역할
- 운영체제의 존재 이유.
기본 명령어와 디렉토리
https://www.yalco.kr/35_linux/