코딩 자율학습 리눅스 입문 with 우분투 - 예스24
기초부터 탄탄하게!실습하며 배우는 리눅스 입문서리눅스에 처음 도전하는 분을 위한 입문용 책이다. 따라 하기 쉽도록 입문자 눈높이에서 이해하기 쉽게 설명한다. 리눅스를 처음 접할 때 어
www.yes24.com
2주차
|
6일
|
7일
|
8일
|
9일
|
10일
|
목차
|
5장 사용자와 사용자 그룹
5.1 사용자
5.2 사용자 그룹
5.3 실습: 사용자와 사용자 그룹 다루기
|
6장 소유권과 권한
6.1 파일 소유권
6.2 파일 권한
6.3 디렉터리 권한
|
7장 프로세스 관리
7.1 컴퓨터의 작동 원리와 프로세스
7.2 프로세스의 계층 구조
7.3 프로세스의 작동
|
7장 프로세스 관리
7.4 파일 디스크립터와 표준 스트림
7.5 포어그라운드 프로세스와 백그라운드 프로세스
7.6 IPC
|
8장 시그널
8.1 시그널 송수신
8.2 시그널의 종류
8.3 시그널 처리 방법
8.4 실습: 시그널 전송하기
|
[출처] [리눅스] 커리큘럼 안내 및 학습 안내 (코딩 자율학습단) | 작성자 코딩자율학습 매니저
5장 사용자와 사용자 그룹
리눅스에서 사용자를 구분하고 역할을 정의하는 '사용자'와 '사용자 그룹'을 다룸.
5.1 사용자
5.1.1 사용자의 종류
- root 사용자
- 시스템 사용자
- 일반 사용자
5.1.2 root 사용자
- root 사용자의 비밀번호를 복잡하게 설정하고, 주기적으로 변경하라.
- 시스템 외부에서 root 사용자로 로그인하지 못하게 설정하라
5.1.3 root 사용자 권한으로 명령을 실행하는 방법
- su 명령어 사용
su [옵션] [-] [사용자]
사용자를 입력하지 않으면 root 사용자료 전환한다는 뜻
- sudo 명령어 사용
sudo [옵션] [명령어]
- runuser 명령어 사용
runuser [옵션] -u 사용자 [명령어]
runuser [옵션] [-] -u 사용자 [명령어]
5.1.4 사용자 정보를 관리하는 /etc/passwd 파일
- 사용자 이름
- 비밀번호
- 사용자 ID
- 사용자 그룹 ID
- 추가 설명
- 홈 디엑터리
- 로그인 셸
5.2 사용자 그룹
5.2.1 사용자 그룹 정보를 관리하는 /etc/group 파일
- 사용자 그룹 이름
- 비밀번호
- 사용자 그룹 ID
- 사용자 목록
5.3 실습: 사용자와 사용자 그룹 다루기
5.3.1 사용자 추가 및 삭제하기
사용자 추가 명령
adduser [옵션] 사용자_이름
사용자 삭제 명령
deluser [옵션] 사용자_이름
5.3.2 사용자 그룹 추가 및 삭제하기
addgroup 그룹_이름
delgroup 그룹_이름
5.3.3 실습용 사용자와 사용자 그룹 생성하기
새로운 사용자가 셀에 로그인 한것 처럼 하기
su - <사용자아이디>
5.3.4 셸 사용자 전환하기
5.3.5 사용자 비밀번호 변경하기
passwd [옵션] [사용자_이름]
- 일반 사용자 비밀번호 변경하기
- root 사용자로 다른 사용자 비밀번호 변경하기
6장 소유권과 권한
멀티유저 시스템에서 소유권과 권한을 사용하여 문제를 방지하고 파일을 관리.
6.1 파일 소유권
6.1.1 파일 소유권이란
6.1.2 실습: 파일 소유권 변경하기
chown [옵션] 사용자[:그룹] 파일
6.2 파일 권한
6.2.1 파일 권한의 종류
- 읽기, 쓰기, 실행
- 파일 권한을 파일의 소유자(user), 소유 그룹(group), 일반 사용자(other)별로 따로 설정
6.2.2 실습: 파일 권한 변경하기
- 8진수 표기법 사용하기
- 의미 표기법 사용하기
6.2.3 실습: 파일 권한 설정하기
- 실습용 디렉터리 생성
- 읽기 권한
- 쓰기 권한
- 실행 권한
6.3 디렉터리 권한
6.3.1 디렉터리 권한이란
6.3.2 실습: 디렉터리 권한 설정하기
- 공유 디렉터리로 설정하기
- 비밀 디렉터리로 설정하기
7장 프로세스 관리
7.1 컴퓨터의 작동 원리와 프로세스
7.1.1 컴퓨터의 작동 원리
- CPU: 프로세서, 코어, 멀티 코어 프로세서
- 레지스터: CPU 내의 아주 작고 빠른 메모리
- 메모리: RAM, 휘발성 메모리
- 저장 장치: 디스크, 비휘발성 메모리
- 시스템 버스: 컴퓨너 내부에서 데이터를 주고받는 통로
7.1.2 프로세서란
메모리에서 실행 중인 프로그램
- 프로그램: 디스크에 저장된 실행 파일
- 프로세스: 메모리에서 실행중인 프로그램
7.2 프로세스의 계층 구조
7.2.1 부모 프로세스와 자식 프로세스
- 부모 프로세스: 프로세스를 생성한 프로세스
- 자식 프로세스: 부모 프로세스가 생성항 프로세스
7.2.2 init 프로세스
리눅스 커널이 부팅하면서 만들어내는 최초 프로세스. 전통적으로 PID 1을 부여. systemd 를 설정.
7.2.3 프로세스 종료
SIGCHLD: 자식 프로세스의 종료를 의미하는 시그널.
7.2.4 실습: 프로세스 목록 확인하기
ps [옵션]
7.2.5 실습: 프로세스 생성과 종료하기
kill [옵션] PID
killall [옵션] 프로세스_이름
sleep 시간
7.3 프로세스의 작동
7.3.1 프로세스의 생애 주기
7.3.2 멀티 태스킹을 위한 여러 기법
- 프로세스 스케줄링
- 스케줄링 알고리즘
- 컨텍스트 스위칭
1. 현재 프로세서의 상태 저장
2. 다음 프로세스 선택과 실행 - 프로세스 상태
1. 실행/실행 대기 상태(running/runnable)
2. 중단 상태(stopped)
3. 종료 상태(terminated)
4. 수면 상태(sleep) - 프로세스 종료 상태
7.3.3 프로세스의 관리 정보
7.3.4 스레드
프로세스의 가장 작은 실행 단위
- 싱글 스레드 프로세스
- 멀티 스레드 프로세스
7.4 파일 디스크립터와 표준 스트림
7.4.1 파일 디스크립터
프로세스별 파일 정보
7.4.2 표준 스트림
표준 입력, 표준 출력, 표준 에러. 표준 스트림, 표준 입출력, 스트림
7.5 포어그라운드 프로세스와 백그라운드 프로세스
7.5.1 포어그라운드 프로세스와 백그라운드 프로세스란
- ping 명령어
ping [옵션] 대상
7.5.2 실습: 포어그라운드 프로세스로 실행하기
셸에서 실행하는 프로그램은 기본 포어그라운드 프로세스로 실행
7.5.3 실습: 백그라운드 프로세스로 실행하기
7.5.4 실습: 백그라운드 프로세스로 전환히기
7.5.5 실습: 포어그라운드 프로세스로 전환하기
7.5.6 실습: 여러 프로세스 다루기
jobs [옵션] [작업]
7.6 IPC
Inter-Process Communication
7.6.1 파이프
7.6.2 메시지 큐
7.6.3 소켓
네트워크로 연결된 다른 시스템에서 작동하는 프로세스와 통신시 사용
인터넷 소켓은 네트워크에서 인식할 수 있는 ID가 부여. TCP/IP 네트워크에서는 IP 주소와 포트 번호가 ID 역할
7.6.4 공유 메모리
반드시 동기화(synchronization) 고려 필요
7.6.5 세마포어
원래 깃발을 이용한 신호 체계. 컴퓨터 시스템에서는 임계영역(critical section)을 보호하기 위한 수단으로 사용.
카운팅 세마포어, 바이너리 세마포어, 뮤텍스
8장 시그널
8.1 시그널 송수신
8.2. 시그널의 종류
SIGABRT
SIGALRM
SIGCHLD
SIGSTOP
SIGHUP
SIGINT
SIGSEGV
SIGKILL, SIGTERM
우아하게 종료 처리(graceful termination)
8.3 시그널 처리 방법
8.4 시그널 전송하기
8.4.1 kill로 시그널 전송하기
kill [옵션] PID
8.4.2 killall로 시그널 전송하기
killall [옵션] 프로그램_이름