AWS 기반 데이터분석 처리 고급 SW 클라우드 개발자 양성과정
01 리눅스의 기초
■ 리눅스와 유닉스
- 리눅스는 유닉스 계열의 운영체제
- 리눅스 = 리눅스 + 유닉스
- 유닉스
1) 69년 AT&T의 벨 연구소에서 어셈블리어로 처음 개발
2) 71년에 C언어로 재개발 -> 최초의 고급 프로그래밍 언어로 작성한 운영체제로 이식성 높음
3) AT&T의 상용 유닉스와 오픈 소스 버전인 BSD로 나뉘어 발전
4) BSD는 AT&T의 라이선스가 필요 없는 FreeBSD로 발전
■ 리눅스 배포판
- 리눅스 커널 + 응용 프로그램으로 구성
- 레드햇 계열, 데비안 계열, 슬랙웨어 계열
- 주요 리눅스 배포판 계통도
■ 우분투 리눅스
- 데비안 계열의 리눅스의 최신 버전인 17.10
- 데비안 기반의 리눅스 중 가장 성공한 데스크톱 배포판으로 많은 사랑을 얻음
- 우분투는 데비안 GNU/리눅스에 바탕
- 그놈(GNOME)을 기본 데스크톱 환경으로 사용
- 기본 시스템 도구 외에도 리브르오피스LibreOffice, 파이어폭스, 웹 브라우저, 에볼루션(메일/일정 편집기), 엠퍼시(메신저) 등 다양한 응용 소프트웨어도 함께 제공
■ 리눅스의 특징
1) 리눅스는 공개 S/W & 무료 사용 가능
2) 유닉스와의 완벽한 호환성을 유지함
3) 서버용 운영체제로 많이 사용됨
4) 편리한 GUI 환경을 제공함
■ 리눅스의 구조
1) 커널: 리눅스의 핵심
- 프로세스 / 메모리 / 파일시스템 / 장치 관리
-컴퓨터의 모든 자원 초기화 및 제어 기능
2) 셸: 사용자 인터페이스
- 명령 해석
- 프로그래밍 기능
- 리눅스 기본 셸: 배시 셸(리눅스 셸)
3) 응용 프로그램
- 각종 프로그래밍 개발 도구
-문서 편집 도구
- 네트워크 관련 도구
■ 가상머신
- PC에 설치되어 있는 운영체제(호스트OS)에 가상의 머신(시스템)을 생성한 후 여기에 다른 우영체제(게스트 OS)를 설치할 수 있도록 해주는 응용 프로그램
가상 머신 | 호스트 OS | 게스트 OS |
버추얼 박스 | 윈도 계열 운영체제, 대부분의 리눅스, 애플 맥, 솔라리스 | 윈도 계열 운영체제, 대부분의 리눅스 배포판, 솔라리스, Mac OS, OpenBSD |
■ 우분트 설치하기
- 리눅스를 설치할 때 디스크의 파티션은 기본적으로 boot 파티션(/boot), root 파티션(/), swap 파티션으로 구분
- 리눅스 파티션을 용도에 따라 구분한 예
마운트 포인트 | 설명 | |
필수 | / | root 파티션으로 시스템 설정 등 주요 내용이 저장됨 |
/boot | boot 파티션으로 리눅스 부팅 커널이 저장됨. 대략 500MB를 할당함 | |
swap | 메모리(RAM)가 부족할 때 사용되는 영역으로 대개 RAM 크기의 2배 정도로 설정함 | |
선택 | /usr | 명령어, 응용 프로그램 등이 주로 저장됨 |
/var | 로그 파일 등이 주로 저장됨 | |
/tmp | 시스템 사용 중에 발생하는 임시 파일이 저장됨 | |
/home | 사용자 홈 디렉터리가 위치함 |
*우분투는 17.10부터 그놈을 기본 GUI로 사용
■ 프롬프트 기호와 홈 디렉터리
1) 프롬프트
- 사용자의 명령 입력을 기다리는 표시
- 셸에 따라 다르게 나타남: 배시 셸= $, 시스템 관리자 = #
배시 셸이란?
쉘은 커널(Kernel)과 사용자간의 다리 역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행함.
*스티븐 본(Steven Bourn)이 유닉스 버전 7의 기본 쉘이 되는 본 쉘(Bourne Shell, sh)를 개발
**배쉬쉘(Bash Shell)? GNU프로젝트를 위해 개발하였으며 본 쉘(Bourne Shell)을 기반으로 만들어짐. GNU 운영체제, 리눅스, 맥 OS X 등 다양한 운영체제에서 사용중이며 현재 리눅스의 표준 쉘임. bash의 명령어 문법은 sh와 호환되고 ksh와 csh의 유용한 기능을 참고하여 명령 히스토리, 명령어 완성 기능, 히스토리 치환, 명령행 편집 등을 지원함.
ex) root@ServerTest2:~#
현재접속중인 유저명= root / ServerTest2=협재 접속 중인 호스트명, #은 슈퍼유저(시스템 관리자)
2) 기본 디렉터리
- 터미널 창의 기본 디렉터리는 사용자의 홈 디렉터리에 위치
- 'user1@myubuntu:~$'
user1은 사용자 계정, myubuntu는 호스트의 이름으로 우분투 시스템 자체를 의미
- 사용자의 홈 디렉터리는 사용자 계정을 등록할 때 지정
■ 명령 행 편집 방법
- 문자 지우기: Backspace, Del
- 단어 지우기: Ctrl + W, 단어는 공백 문자로 구분
- answkd wldnrl: Ctrl + U
■ 명령의 구조
명령의 구조 |
- 형식: 명령 [옵션] [인자] - 명령: 리눅스를 사용하기 위해 입력하는 다양한 명령은 date, man, ls, cp, mv 등 수백가지가 있음 - 옵션: 옵션을 사용하여 명령의 세부 기능 선택 가능. 리눅스의 기능을 풍부하게 하는 중요한 특징으로, 명령에 따라 있는 경우도 있고 없는 경우도 있다. 옵션은 - 또는 --로 시작하며 영문 소문자나 대문자로 구성된다. 명령에 따라 어떤 옵션이 있고 그 기능이 무엇인지는 해당 명령의 사용법을 참조한다. - 인자: 인자는 명령으로 전달되는 값이며 주로 파일명이나 디렉터리명이 사용됨. 명령에 따라 없을 수도 있고 각 명령에 필요한 인자가 각기 다르므로 사용법 참조. |
■ 명령만 사용한 경우
user1(사용자계정:root)@myubuntu(Super User, 시스템 관리자):~$ ls
examples.desktop 공개 다운로드 문서 바탕화면 비디오 사진 음악 템플릿
■ 명령과 옵션을 사용한 예
user1@myubuntu:~$ ls -a
■ 명령과 인자를 사용한 예
user1@myubuntu:~$ ls tmp
■ 명령과 옵션, 인자를 사용한 예
user1@myubuntu:~$ ls -a /tmp
date, clear, man(사용법 설명), exit = ctrl + d
■ passwd: 사용자 계정의 비밀번호 변경 / 형식: passwd [인자]
user1@myubuntu:~$ passwd
passwd: 암호를 성공적으로 업데이트 했습니다.
2강
01 리눅스 파일의 종류와 특징
■ 파일의 종류
- 파일: 관련 있는 정보들의 집합
- 리눅스는 파일을 효과적으로 관리하기 위해 디렉터리를 사용
- 리눅스에서 파일은 사용 목적에 따라 일반 파일, 디렉터리, 심벌릭 링크, 장치 파일로 구분
1. 일반파일(Regular File)
- 데이터를 저장하는 데 주로 사용
- 각종 테스트 파일, 실행 파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일은 일반 파일에 해당
- 텍스트 파일은 문서 편집기를 사용하여 내용을 보거나 편집할 수 있으나, 실행 파일이나 이미지 파일의 경우 해당 파일의 내용을 확인할 수 있는 특정 응용 프로그램이 있어야 활인할 수 있음
- 실행 파일/이미지 파일 = 바이터리 형태로 데이터가 저장됨 = 바이너리 파일
2. 디렉터리(Directory)
- 리눅스에서는 디렉터리도 파일로 취급
- 디렉터리 파일에는 해당 디렉터리에 저장된 파일이나 하위 디렉터리에 대한 정보가 저장
3. 심벌릭 링크
- 원본 파일을 대신하여 다른 이름으로 파일명을 지정한 것(윈도우의 바로가기 파일과 비슷)
4. 장치파일
-리눅스에서는 하드 디스크나 키보드 같은 각종 장치도 파일로 취급