검색해서 빠르게 찾은 자료는 금방 잊혀지고, 단편적 지식이라 머릿속에 구조화 되지 않음 → 금방 잊혀짐
체계적인 리눅스 학습을 위해 이 책을 출간함.
컴퓨터 작동방식, 운영체제 구성 요소와 역할 등의 배경지식부터 시작.
실습환경 구축을 위한 가상환경의 설명과 리눅스 설치 방법을 다룸.
리눅스의 파일, 사용자와 사용자 그룹, 소유권과 권한, 프로세스 등의 핵심 개념 설명하고 실습을 통해 다시 한번 복습
실제 리눅스를 다루는데 필요한 Bash를 다룸.
조건문, 반복문, 함수, 리디렉션과 파이프라인은 물론 확장, 셸 옵션 등 현업에 요긴히 사용하는 모든 기능 포함.
리눅스 관리의 기초내용을 다룸.
이 책의 목표는 리눅스를 다양하게 활용하는 기반을 다지는 것이며, 넓고 탄탄한 기반 위에 원하는 것을 쌓아갈 수 있음.
탄탄히 다져놓은 리눅스는 어떤 IT관련 일을 하더라도 두고두고 도움될 것이라 확신함.
Part 1 리눅스 이해하기
1장 리눅스 소개
운영체제와 리눅스의 개념.
리눅스 배포판
리눅스의 사용처와 배워야 하는 이유
1.1 운영체제란
부팅(booting) - 자동차가 시동을 걸 듯 컴퓨터가 운영체제를 초기화 하는 과정
운영체제(OS, Operating System) - 컴퓨터나 스마트폰 같은 시스템에서 하드웨어와 소프트웨어 자운을 관리하는 시스템 소프트웨어.
소프트웨어의 분류
시스템 소프트웨어(system software) - 운영체제, 장치 드라이버 등
응용 소프트웨어(application software) - 웹 브라우저, 엑셀 등
1.1.1 운영체제의 구성요소
커널(kernel) - 하드웨어를 초기화해서 사용할 수 있게 하는 운영체제의 핵심
장치 드라이버(device driver) - 하드웨어 장치를 초기화하고 운영체제와 통신을 담당하는 소프트웨어
파일 시스템(file system) - HDD, SSD 등 저장 장치에 파일을 저장하고 관리하는 소프트웨어
FAT, NTFS, EXT4 (오픈 소스, PC 리눅스에서 주로 사용), XFS, XFS\
네트워크 시스템
네트워크 드라이버(network driver) - 유선랜, 와이파이, 블루투스 등 네트워크 장치를 초기화해 사용할 수 있게 해주는 장치 드라이버
네트워크 스택(network stack) - 네트워크 프로토콜을 구연한 소프트웨어
네트워크 프로토콜(network protocol) - 네트워크 데이터 교환의 통신 규약
1.1.2 운영체제의 역할
프로그램 실행과 멀티 테스킹
CPU
프로세스
프로세스 스케줄링, 스케줄링 알고리즘, 프로세스 스케줄러, 멀티테스킹
인터럽트 처리
메모리 관리
사용자 인터페이스 제공
그래픽 사용자 인터페이스(GUI)
명령어 기반 인터페이스(CLI)
1.2 리눅스 배포판
레스햇 리눅스(RHEL, Red Hat Enterprise Linus)
센토스(Centos)→ 록키(Rocky) 리눅스
우분투(Ubuntu)
1.3 리눅스의 쓰임과 학습 이유
1.3.1 어디에 쓰일까
서버
클라우드 컴퓨팅
임베디드 시스템
모바일 기기
1.3.2 누가/왜 배워야 할까
소프트웨어 개발자
시스템 관리자나 소프트웨어 엔지니어
네트워크 엔지니어
데이터 과학자나 AI 전문가
2장 리눅스 실습 환경 구축하기
2.1 리눅스 실습 환경 구축 방법
2.1.1 PC에 리눅스 직접 설치
2.1.2 가상머신에 리눅스 설치
2.1.3 클라우드 서비스로 리눅스 인스턴트 생성
2.2 실습: 가상 머신에 리눅스 설치하기
2.2.1 윈도우에 리눅스 가상 머신 생성하기
우분투 데스크톱 이미지 다운로드
Virtualbox 설치
가상머신 생성 및 우분투 설치
게스트 확장 CD 이미지 삽입
2.2.2 맥OS에 리눅스 가상 머신 생성하기
ARM용 우분투 서버 이미지 다운로드
UTM 설치
가상 머신 생성 및 우분투 설치
우분투 데스크톱 설치
*책의 화면에는 메모리 4MB, CPU 1개로 되어 있어 따라 설치해보니, error가 발생하여 이미지도 새로 다운받고 반복하여 설차하였으나, 설치 진행과정이 너무 오래 걸리거나 멈추는 등의 문제가 발생하였다. 하지만, 메모리를 system 사양의 50% 수준으로 늘려보니 정상적으로 진행이 완료되었다.
VirtualBox에 설치된 Ubuntu 24.04.1
※Windows와 가상머신간 copy & paste (clipboard 공유) 하는 방법
※ Windows 화면보호기로 전환될 경우도 Ubuntu도 전환되는 것을 방지하여 매번 다시 암호 임력을 하지 않도록 하는 방법 Show App > Settings > Privacy & Security > Screen Lock > 1. Blank Screen Display Automati → Never 2. Automatic Screen Lock → Disabled
3장 셸
3.1 터미널과 셸
3.1.1 터미널
3.1.2 셸 (CLI)
3.1.3 터미널과 셸의 관계
텔넷(Telnet)은 모든 데이터가 plaintext라 보안에 매우 취약. 근래는 모든 데이터가 암호화되는 SSH(Secure SHell) 프로토콜을 이용해 터미널을 안전하게 원격 운영체제에 연결.