리눅스 마스터 일반
어쩌다 하게 됬는가?
2월부터 준비하던 기사 시험이 2번인가? 미뤄지다가 그대로 4월 말이 되어 취소되서 공부한게 날라가버렸다.
그래서 뭐라도 해야겠다는 생각에 일단 리눅스 마스터가 떠올라서 기간을 봤더니 아쉽게도 2급 밖에 볼 수 없어서 이거라도 준비해야겠다란 생각에 준비하게 됬다.
Linux Master 요약
리눅스의 개요
리눅스의 특징 및 장단점
* 오픈 소스
* 멀티 유저 멀티테스킹 운영체제이다
* 다중 스레드를 지원하는 네트워크 운영체제
* 여러 종류의 파일 시스템을 지원하는 운영체제
장단점
* 리눅스는 유닉스와 완벽 호환 가능
* 리눅스는 pc용 운영체제보다 안정적
* 하드웨어 기능을 효과적으로 사용 가능
* 공개 운영체제이기 때문에 문제 발생시 기술지원 받기 어렵다
리눅스 디렉터리 종류와 특징
- /
- 최상위 디렉터리, 루트 디렉터리
- 모든 디렉터리의 출발점, 다른 시스템과의 연결점
- /boot
- 부트 디렉터리로 부팅 시 커널 이미지의 부팅 정보 저장 파일
- /proc
- 시스템 정보 디렉터리
- 커널 기능 제어
- 현제 실행되는 프로세스 및 장치,하드웨어 정보 저장
- /lib
- 공유 라이브러리 디렉터리
- 커널 모듈 파일들과 프로그램 시행을 지원해 주는 라이브러리 저장
- /bin
- 기본적인 명령어가 저장된 디렉터리
- root 사용자와 일반 사용자가 함께 사용할 수 있는 명령어의 디렉터리
- /dev
- 시스템 디바이스 파일들을 저장하는 디렉터리
- 하드디스크 장치 파일, C-ROM 장치 파일 같은 파일 저장
- /etc
- 시스템 환경 설정 파일 저장 디렉터리
- /root
- 시스템 관리자용 홈 디렉터리
- /sbin
- 관리자용 시스템 표준 명 및 시스템 관리와 관련된 실행 명령어 저장
- /usr
- 사용자 디렉터리
- 사용자 데이터나 애플리케이션 저장
- /home
- 사용자 계정 디렉터리
- 계정들의 홈 디렉터리 위치
- /var
- 가변 자료 저장 디렉터리
- 로그 파일이나 메일 데이터 저장
- /tmp
- 임시 파일 저장
- 모든 사용자에 대해서 읽기와 쓰기 허용
- 시티키 비트 설정으로 파일의 소유자만이 자신의 소유 파일을 지울 수 있음
- /mnt
- 파일 시스템을 일시적으로 마운트 할 때 사용
- /lost+found
- 결함이 있는 파일에 대한 정보가 저장되는 디렉터리
리눅스 배포판
- 슬렉웨어 리눅스
- 배포판 가운데 가장 먼저 대중화된 배포판
- 데비안
- 데비안 프로젝트에서 만들어 배포하는 공개 운영체제
- GNU의 공식적인 후원을 받고 있는 유일한 배포판
- 우분투
- 데비안 리눅스에 기초한 운영체제
- 레드햇
- 레드햇사가 개발하던 리눅스 배포판
- 페도라
- 리눅스 커널에 기반한 운영체제와 레드햇의 후원과 개발 공동체의 지원 아래 개발된 배포판
- CentosOS
- 업스트림 소스인 레드햇 엔터프라이즈 리눅스와 완벽하게 호환되는 무료 기업용 컴퓨팅 운영체제
- 수세
- 독일에서 출시된 배포판
- 유럽에서 인기를 누리고 있다.
리눅스 라이센스
- GNU
- GNU는 유닉스가 아니다
- GNU GPL
- GPL은 자유 소프트웨어 재단에서 만든 FREE 소프트웨어 라이센스
- GNU LGP
- LGPL은 GPL 보다 훨씬 완화된 조건의 공개 소프트웨어 라이센스
- LGPL 라이센스 프로그램의 경우 프로그램 소스코드를 공개하지 않아도 된다
- BSD 라이센스
- 버클리 대학 자유 소프트웨어 저작권의 한 가지이다.
- 아파치 라이센스
- 아파치 소프트웨어 재단에서 자체적으로 만든 소프트웨어 라이센스 규정
- MIT 라이센스
- BSD 라이센스를 기초로 작성된 BSD 계열 라이센스 중의 하나
- MPL
- 소스코드와 실행파일의 저작권을 분리했다.
- 자유 소프트웨어 재단(FSF)
- 오픈 소스 소프트웨어
- FSF 대신 1998년 부터 오픈 소스 소프트웨어라는 단어 사용
기본 설치 및 유형
리눅스 설치 개요
- 리눅스 배포판마다 설치환경과 설치 과정이 다르다
- 패키지에 따라 데스크탑형, 서버형, 사용자 정의형으로 구분
- 멀티 부팅 시스템을 만든다면, 현재 운영체제의 배포 미디어를 가지고 있어야한다.
- 부팅 드라이브를 다시 파티션하는 경우
- 운영체제의 부트로드 재설치 가능성 존재
- 운영체제 전체를 해당 파티션에 다시 설치해야 할 수 도 있음
리눅스 설치를 위한 하드웨어 정보 파악
- 하드웨어 정보
- 하드웨어 호환성
- 네트워크 설정
파티션
파티션이란?
- 파티션이란, 하나의 물리적 디스크를 여러 개의 논리적인 디스크로 분할하는 것
- 파티션은 주 파티션, 확장 파티션, 논리 파티션, 스왑 파티션(?)으로 구분한다
파티션의 종류
- 주 파티션
- 부팅 가능한 기본 파티션
- 하나의 하드 디스크에 최대 4개의 주 파티션 분할 가능
- 4개 이상으로 파티션을 사용해야 할 때
- 하나의 확장 파티션을 설정하여 확장 파티션 안에 여러 개의 논리 파티션을 분할
- 확장 파티션
- 주 파티션 내에 생성, 하나의 물리적 디스크에 1개만 생성
- 파티션 번호는 1~4번이 할당
- 데이터 저장 영역을 위한 것이 아니라 논리 파티션 생성
- 논리 파티션
- 확장 파티션 안에 생성되는 파티션
- 논리 파티션은 12개 이상 생성하지 않는 것을 권고
- 5번 이후의 번호가 붙여짐
- 스왑 파티션
- 하드 디스크의 일부를 메모리처럼 사용하는 영역
- 주 파티션 또는 노리 파티션에 생성
- 프로그램 실행시 부족한 메모리 용량을 하드디스크로 대신 하는것
- 리눅스 설치시 반드시 설치되어야 하는 영역
- 스왑 영역의 크기는 메모리의 2배를 설정하도록 권고
디스크와 장치명
- 분할된 파티션은 디스크의 장치 파일명 뒤에 숫자를 붙인다
- 리눅스에서 파티션을 만들고 마운트할 때 지정된 디바이스명을 사용한다
파일 시스템
- 운영체제가 파일을 시스템의 디스크 파티션사아에 구현하는 방식
- 일정한 규칙을 가지고 파일을 저장하도록 규칙 방식을 제시
- 파티션에 파일 시스템이 없으면, 파일 시스템 생성을 거쳐야 사용 가능
- 리눅스는 고유 파일 시스템 외에 다양한 파일 시스템을 지원하고 있다.
LVM(Logical Volumn Manager)
- 여러 개의 하드 디스크를 합쳐서 사용하는 기술로 한 개의 파일 시스템을 사용한다.
- 작은 용량의 하드디스크 여러 개를 큰 용량의 하나의 하드 디스크 처럼 사용
- 서버를 운영하며 대용량의 별도 저장 공간이 필요할 때 활용
- 다수의 디스크를 묶어 사용함으로써 파티션의 크기를 줄이거나 늘릴 수 있다.
RAID
- RAID는 복수 배열 독립 디스크의 약자이다.
- 여러 개의 물리적 디스크를 하나의 논리적 디스크로 인식하여 작동하게 하는 기술
- 여러 개의 하드디스크에 일부 중복된 데이터를 나눠서 저장하는 기술
- 하드웨어 RAID, 소프트웨어 RAID로 나뉜다.
- 데이터를 저장하는 다양한 방법이 존재, 이 방법들을 레벨이라고 한다.
- 각 레벨의 장점을 합친 RAID 구성으로 대표적으로 RAID 0+1과 RAID 1+0이 있다.
파티션 분할
- fdisk
- 파티션 테이블을 관리하는 명령
- 디스크 파티션을 생성 수정 삭제 할 수 있는 일종의 유틸리티
부트 매니저
부트로드
- 부트스크랩 로드의 준말
- 디스크나 플래시에 저장된 운영체제를 읽어 주기억장치에 적재해 주는 프로그램
- 운영체제 시작전 미리 실행
- 커널의 정상 작동을 위한 모든 작업을 마무리하고 최종적으로 운영체제를 시동시키기 위한 프로그램
- 임베디드 시스템 부트로더
- pc의 bios와 os loader의 기능을 수행하는 프로그램
- 시스템 부팅할 때 가장 먼저 수행된다.
- 운영체제 실행에 필요한 환경 설정 및 운영체제 이미지를 메모리에 복사
- 부트매니저라고 부르기도 함
- 크기는 512바이트
- 하드디스크의 첫번째 세거인 MBR에 위치
- 주 파티션마다 부트섹터가 할당된다
- 분할된 주 파티션들은 자신의 부트 레코드를 MBR에 기록하여 실행
- 한 컴퓨터에 다수의 운영체제가 설치되어 있는 경우 작업 운영체제를 선택하여 부팅할 수 있게한다.
런레벨
- 런레벨에 따라 작동하는 서비스를 조정 가능
- 런레벨은 0 ~ 6까치 총 7가지
- 리눅스 가동시 특정 모드의 레벨을 default로 하고 싶은 경우
- /etc/inittab에서 설정
- /etc/inittab 파일 형식은 ‘코드 런레벨:행동:명령어’
- 현재 실행되는 런레벨을 확인하는 명령어는 runlevel
로그인과 로그아웃
로그인
- 리눅스는 x윈도우상에서의 로그인/로그아웃과 콘솔상에서의 로그인/로그아웃이 있음
- 로그인 과정
- 입력한 패스워드와 파일 /etc/passwd 필드 비교
- 셀 설정 파일 실행
- 로그인 쉘 실행
로그아웃
- 로그아웃은 logout, exit 또는 조합키 Ctrl+D
- 관리자는 일정시간 동안 작업을 수행하지 않는 모든 사용자들을 강제로 로그아웃할 수 있다.
디렉터리 및 파일
리다이렉션과 정규 표현식
리다이렉션
- 표준 입력과 표준 출력의 방향을 재지정하는 것
- 표준 입력/출력/에러가 화면이 아닌 파일로 대체
- 모니터로 출력이 파일로 재지정
- 표준 입력 장치는 키보드, 표준 출력 장치는 모니터,표준 에러 장치는 모니터
정규퓨현식
- ^ : 라인의 첫 글자
- $ : 라인의 끝 글자
- . : 한 글자
- * : * 기호 바로 이전의 글자는 정규 표현식이 0 회 이상 반복
- [] : 대체 글자 목록을 []에 나열
- 대체 못할 글자 목록을 [^]에 나열
- + : + 기호 바로 이전 글자나 정규 표현식이 1회 이상 반복
- ? : ? 기호 바로 이전 글자나 정규 표현식이 없거나 1회만 존재
- () : 부분 정규 표현식의 시작과 끝을 표시
- | : | 로 구분된 단어들 중 최소 하나 존재
- {m,n} : {} 기호 바로 이전 글자나 정규 표현식이 m개 이상 n개 이하 반복
파이프
둘 이상의 명령을 함께 묶어 출력 결과를 다른 프로그램이 입력으로 전환하는 기능
현재 명령의 표준 출력을 다음 명령의 표준 입력으로 사용하는 것이다.
명령어와 명령어의 연결 | 기호를 사용한다.
- 명령어1의 출력결과는 명령어2의 입력으로 처리된다.
더 이상 처리할 명령어가 없으면 표준 출력 장치인 화면으로 출력한다.
Comment