리눅스 마스터 2급 핵심 개념

개발 오답 노트·2025년 2월 3일

자격증

목록 보기
2/2
post-thumbnail

리눅스 마스터 2급을 준비하시는 많은 분들 아래 내용만 빠르게 암기하고 합격하세요!!

주요 암기 내용!!

<문제 해설>

  1. /etc/bashrc : 모든 사용자에 적용되는 alias와 함수 설정

  2. /etc/profile : 모든 사용자에 적용되는 환경변수와 시작관련 프로그램 설정 지정파일

  3. ~/.bashrc :개인 사용자가 정의한 alias와 함수들이 있는 파일

  4. ~/.bash_profile : 개인 사용자가 정의한  alias와 함수 설정파일

standalone: 대기하고 있다가(메모리 상주) 요청이 발생하면 즉각 처리 (빈번한 요청이 발생하는 서비스에 적합)

inetd: 평상시에 잠자고 있다가 요청이 올 때만 구동 (메모리 관리가 효율적)

<문제 해설>1. jobs 명령어는 현재 셸 세션에서 실행된 백그라운드 작업의 상태를 보여주지만,셸 세션과 관련된 작업에 한정되므로 시스템 전체에서 실행 중인 데몬을 확인하는 데 사용할 수 없습니다.

  1. fg 명령어는 백그라운드 작업을 포그라운드로 가져오는 데 사용되며, 데몬 확인에는 적합하지 않습니다.

  2. bg 명령어는 정지된 작업을 백그라운드에서 계속 실행시키는 데 사용되지만, 실행 중인 데몬을 확인하는 데 사용되지 않습니다.

  3. ps 명령어는 현재 시스템에서 실행 중인 모든 프로세스(데몬 포함)의 정보를 제공할 수 있으며,특정 조건에 맞는 프로세스를 검색하는 다양한 옵션을 제공합니다.


간단하고 정확하게 차이점 알려드립니다.

  1. 백그라운드로 실행 중인 작업목록을 물어보면 => jobs

  2. 백그라운드로 실행 중인 데몬을 물어보면 => ps

기출문제에선 보통 백그라운드는 jobs가 답인 경우가 많아서 앞에 문제만 보고 냅다 답을 jobs 찍는 분들이 많은데,

문제를 끝까지 읽고 "작업목록 or 프로세스"냐 데몬이냐를 확인 후 답을 고르세요.

<문제 해설>nice는 프로그램 실행 시 우선 순위를 결정하지만renice는 실행된 프로세스의 우선 순위를 결정하며renice는 nice와 다르게 PID값을 이용해 우선 순위를 결정하며,양수일 경우 n, 음수일 경우 -n을 사용합니다.nice는 양수일 경우 -n, 음수일 경우 --n을 사용합니다


killall, nice -> 프로세스명 사용 / kill,renice 프로세스번호 사용

.virc = 비주얼 모드인 vim을 위한 설정 파일

.exrc = vi 편집기에서 사용자가 환경 설정을 등록하는 파일

tar에서

cvf(create) - 생성

xvf(extratct) - 해제

tvf(list) - 목록

  • -J : xzip
  • -j : bzip2
  • -z : gzip
  • -Z : compress

<문제 해설>

LV (Logical Volume): 논리 볼륨은 사용자가 실제로 데이터를 저장하는 공간입니다. LVM을 사용하면 LV의 크기를 필요에 따라 쉽게 조정할 수 있으며, 여러 개의 물리적 디스크에 걸쳐 있을 수도 있습니다.

PV (Physical Volume): 물리 볼륨은 LVM에서 사용되는 가장 낮은 수준의 저장공간 단위입니다. 하나 이상의 하드 드라이브 파티션 또는 전체 디스크를 PV로 초기화하여 LVM에서 사용할 수 있게 합니다.

PE (Physical Extent): 물리적 확장은 PV 내에서 LV에 할당될 수 있는 고정된 크기의 데이터 블록입니다. PE는 LVM의 할당 단위로 작동합니다.

VG (Volume Group): 볼륨 그룹은 하나 이상의 PV를 묶어서 관리하는 논리적인 컨테이너입니다. VG 내에서 LV들을 생성하고 관리합니다.

10GB 디스크 4개 사용 시 각 RAID에 대한 설명.

RAID-0 : 스트라이핑의 경우 용량 모두 사용 40GB.

RAID-1 : 미러링의 경우 절반으로 줄어듦 20GB.

RAID-5 : 1개의 디스크 패리티로 사용 30GB.

RAID-6 : 2개의 디스크 패리티로 사용 20GB.

  1. 데스크톱 환경 : 사용자가 그래픽 인터페이스를 통해 컴퓨터를 사용할 수 있도록 하는 전체 환경 (예: GNOME, KDE).

  2. 윈도 매니저 : 윈도우의 배치와 외관을 관리하는 시스템 소프트웨어 (예: Metacity, Openbox).

  3. 디스플레이 매니저 : 로그인 화면을 제공하고 사용자 세션을 시작하는 프로그램 (예: GDM, LightDM).

  4. 위젯 : 그래픽 사용자 인터페이스에서 사용되는 작은 독립형 컴포넌트 (예: 버튼, 텍스트 박스).

Nautilus는 GNOME 데스크톱 환경에서 사용되는 파일 관리자

Metacity는 GNOME 데스크톱 환경에서 사용되는 윈도우 매니저

Mutter는 GNOME 3 데스크톱 환경에서 사용되는 윈도우 매니저

Plasma는 KDE 커뮤니티에 의해 개발된 데스크탑 환경.

  1. Docker : 컨테이너, 이미지 형태로 패키지 관리 및 배포 플랫폼

  2. Openstack : 오픈 소스 클라우드컴퓨팅 플랫폼

  3. Kubernetes : Docker 자동화 플랫폼

  4. Ansible : 오픈 소스 자동화 플랫폼

LAN (Local Area Network) : 상대적으로 좁은 지역. 집, 사무실, 학교 등

MAN (Metropolitan Area Network) : 상대적으로 LAN보다 넓은 지역. 큰 도시나 캠퍼스 같은 광역. 전화, TV, 인터넷은 MAN

SAN (Storage Area Network) : 저장 장치를 네트워크로 연결하는데 사용하는 개념.

WAN (Wide Area Network) : 상대적으로 매우 넓은 지역. 국가, 대륙, 전세계를 아우르는 개념.

netstat명령 옵션

  • -r : 라우팅 테이블 표시
  • -t : TCP 연결 표시
  • -m : 소켓 버퍼의 메모리 사용상태 표시
  • -n : 주소와 포트번호 등을 숫자 형태로 표시

물리 계층 - 리피터, 허브

데이터 링크 계층 - 스위치, 브리지

네트워크 계층 - 라우터

전송 계층 - 게이트 웨이

ICANN (Internet Corporation for Assigned Names and Numbers):

IP, 도메인 등 관리

IEEE (Institute of Electrical and Electronics Engineers):

LAN 규격, 다양한 컴퓨팅 표준 등

ITU-T (International Telecommunication Union - Telecommunication Standardization Sector):

통신 기술의 표준을 정립. 네트워크와 서비스의 표준을 개발

ISO (International Organization for Standardization):

국제 표준 개발 기구

NIS(Network Information Service) - 네트워크 정보를 중앙 집중식으로 유지하고 배포하는 서비스

SAMBA - Winodws 및 리눅스/UNIX 간의 파일 공유 및 네트워크 통합 용이

HTTP(Hypertext Transfer Protocol) - www에서 정보를 전송하는데 사용되는 프로토콜

게이트웨이 주소값 확인 가능 명령: ip, route, netstat

전송단위 1계층부터 4계층까지

비트 - 프레임 - 패킷 - 세그먼트

네트워크 계층: IP, ICMP, ARP, RARP

전송 계층: TCP, UDP

pico = Pine 이메일 클라이언트의 일부로 개발되었으나, 라이센스 이슈로 인해 nano로 대체

nano: GNU 프로젝트의 일부로 개발, 간단하고 사용자 친화적인 텍스트 편집기

vim = Vi 편집기의 확장된 버전

kwrite = KDE 데스크톱 환경의 일부로 개발된 텍스트 편집기

  1. Totem : GNOME 환경의 기본 동영상 플레이어

  2. Evince : GNOME을 위해 설계된 문서 뷰어. PDF, Postscript 등.

  3. Eog(Eye of GNOME) : GNOME 환경의 기본 이미지 뷰어.

  4. Gimp(GNU Image Manipulation Program) : GNU에 의해 개발된 강력한 오픈 소스 이미지 편집 툴

ss 명령어 옵션

  • -n (number) : 주소 및 포트 번호를 숫자로 출력
  • -a (all) : 모든 소켓 정보를 출력
  • -ㅇ (time out) : 타임아웃 값을 지정
  • -t (tcp) : tcp 소켓 정보 출력

ARP - IP에서 MAC

RARP - MAC에서 IP

quota: 사용자나 그룹의 디스크 사용량과 할당량(쿼터)을 보여줌.

edquota: 텍스트 에디터와 같은 환경에서 쿼터를 편집할 수 있게 해줌.

setquota: 명령줄에서 직접 쿼터를 설정하거나 수정하기 위해 사용.(보통 -u 옵션 사용하면 이거임.)

xfs_quota: XFS 파일 시스템에서 쿼터를 명령줄에서 설정함.(보통 -x -c 옵션 사용하면 이거임.)

fdisk

새로운 파티션 생성 / 기존 파티션 삭제 / 파티션의 타입 결정 등의 작업을 수행할 수 있음.

한번에 한 디스크에 대해서만 작업 수행

fdisk [옵션][장치명]

p : 디스크 정보 표시

n : 파티션 생성

t : 파티션 속성 지정

d : 파티션 삭제

du: 디렉터리 별 디스크 사용량 확인

df : 마운트 된 하드 디스크의 사용량 확인(분할 된 파티션 별로 사용량 확인)

파티션 고유번호 uuid

확인하는 명령어 blkid

  1. LOGIN : 로그인 세션을 나타내는 쉘 환경변수

  2. USER : 현재 사용자 이름을 나타내는 환경변수

  3. SHELL : 현재 사용중인 쉘경로를 나타내는 환경변수

  4. BASH : bash 쉘에 대한 정보를 나타내는 환경변수

CentOS 7부터는 기존 init프로세스에서 systemd를 쓰기로함

그 이전은 init이고 PID는 1이다

nice -n [프로세스명]

killall [프로세스명]

renice 는 pid를 인자값으로 받습니다

kill 은 pid를 인자값으로 받습니다.

nano 편집기 단축키

[Ctrl] + [a] : 행의 맨 앞으로 커서 이동

[Ctrl] + [e] : 행의 맨 끝으로 커서 이동

[Ctrl] + [c] : 현재 커서 위치 문자의 ascii 값을 표시

[Ctrl] + [x] : 나노 편집기 종료, 변경사항 저장 여부 물어봄

vi편집기

① -c : 특정 명령어 실행

② -r : 이전에 편집 중이던 파일이 중단되거나 충돌로 인해 손실된 경우 복구

③ -R : 읽기 전용 모드(파일 읽을 수 있지만 수정 불가)

④ + : 파일을 열면서 커서를 특정 위치에 놓을 때 사용

vi 편집기에서

  • -h : 커서를 한칸 왼쪽으로 이동하는 명령
  • -j : 커서를 한줄 아래로 이동하는 명령
  • -k : 커서를 한줄 위로 이동하는 명령
  • -l : 커서를 한칸 오른쪽으로 이동하는 명령

RAID-0 : 스트라이핑 : 모든 디스크 사용

RAID-1 : 미러링 : 디스크 개수의 절반을 백업에 사용 그래서 최소 2개 필요

RAID-5 : 한 개의 패리티 드라이브 사용 (디스크 개수 -1 * 용량)

RAID-6 : 두 개의 패리티 드라이브 사용 (디스크 개수 -2 * 용량)

configure(환경설정) -> make(컴파일) -> make install


압축효율

.xz > .bz2 > .gz > .Z

압축해제명령어

  • Jxvf : xz
  • jxvf : bzip2
  • zxvf : gzip
  • xvf : .tar

Evince는 PDF 형식이나 포스트스크립트 형식의 문서를 그놈 데스크톱 환경에서 읽을 수 있는 소프트웨어이다

  • ls: 현재 디렉토리에 있는 파일 및 디렉터리의 목록을 보여주는 명령어입니다. -l 옵션을 사용하면 자세한 목록이 표시되며, 이 목록에는 각 파일 또는 디렉터리의 소유자와 그룹이 표시됩니다.
  • chmod: 파일의 퍼미션을 변경하는 데 사용됩니다. 소유자를 확인하는 목적으로는 사용되지 않습니다.
  • chown: 파일이나 디렉터리의 소유자와 그룹을 변경하는 데 사용됩니다. 직접적으로 소유자를 확인하는 용도로 사용할 수 있습니다.
  • umask: 새로운 파일이나 디렉터리를 생성할 때 기본적으로 설정되는 퍼미션을 제어하는 데 사용됩니다. 소유자를 확인하는 용도로는 사용되지 않습니다.

/etc/passwd 파일은 사용자 계정 정보를 포함

/etc/shells 파일은 시스템에서 사용 가능한 셸의 목록을 제공하는 파일

/etc/bashrc 파일은 Bash 셸의 전역 설정 파일로, 시스템 전체의 Bash 셸 설정을 구성

/etc/profile 파일은 사용자가 로그인할 때 실행되는 전역 프로파일 스크립트

온라인 패키지 관리 도구

dpkg는 기본 패키지 관리 도구 입니다. (온라인 아님 )

  1. dnf : 레드헷 계열인 yum 을 대체하는 온라인 패키지

  2. zypper ; 수세 계열 온라인 패키지

  3. apt-get : 데미안 계열 온라인 패키지

소스 설치 방법 cmake 선택 프로젝트 - MySQL, KDE, LMMS

<문제 해설>

-Z: compress 압축 적용 옵션

-z: gzip 압축 적용 옵션.

-j: bzip2 압축 적용 옵션.

-J: xz 압축 적용 옵션.

압축률: compress<gzip<bz2<xz

압축 파일 용량이 가장 큰 compress 방식이 마지막 알파벳의 대문자Z그 다음으로 압축이 덜되는 gz가 소문자z압축률이 제일 좋은 xz가 J이렇게 외워봅시다.

LVM의 구성 순서

PV - VG - LV

X Window 시스템에 할당된 TCP 포트 번호는 6000+

Xlib - XCB

KDE - Qt

GTK+ - GNOME

세트라고 외우시면 최소 한 문제는 먹고 들어갑니다.

IPv4 32bit

IPv6 128bit

MAC 48bit

ISO -> OSI

EIA -> LAN 케이블 관련 표준

IEEE -> LAN 관련 표준

평문사용으로 보안에 취약하지면 원격 접속이 된다 = Telnet

보안강화가 되며 원격 접속이 된다 = SSH

전가상화 방식 : KVM

반가상화 방식 : Xen

Kubernetes : 컨테이너화된 애플리케이션의 '자동' 배포, 확장 및 '관리'를 위한 오픈 소스 플랫폼, 초기 구글 개발 -> cncf 기증.

Docker : 경량화된 가상화기술 / 컨테이너화된 애플리케이션의 개발, 배포 및 실행(관련 키워드:XEN, KVM)

데비안 apt-get 명령어

purge = 환경설정까지 다 지움

remove = remove랑 erase는 동일한 기능 수행. 환경설정파일은 남겨둠.

erase = remove

delete = 유효하지 않은 명령어

dnf - 페도라 온라인 패키지 관리 도구

rpm - 레드햇 오프라인 패키지 관리 도구

zypper - 수세 온라인 패키지 관리 도구

apt-get - 데비안 온라인 패키지 관리 도구

  1. /etc/bashrc : 모든 사용자에 적용되는 alias와 함수 설정

  2. /etc/profile : 모든 사용자에 적용되는 환경변수와 시작관련 프로그램 설정 지정파일

  3. ~/.bashrc :개인 사용자가 정의한 alias와 함수들이 있는 파일

  4. ~/.bash_profile : 개인 사용자가 정의한  alias와 함수 설정파일

/etc/passwd

시스템에 등록된 각 사용자의 계정 정보를 저장, 사용자 ID, 그룹 ID, 홈 디렉토리, 로그인 셸 등의 정보를 포함. 사용자의 로그인 셸 정보는 각 사용자의 레코드 마지막 부분에 위치.

/etc/shells: 시스템에서 사용 가능한 셸의 목록을 포함. 사용자가 chsh 명령어를 사용하여 변경할 수 있는 유효한 셸을 나열.

/etc/bashrc: 시스템 전체의 기본 설정을 위한 bash 셸 스크립트 파일. 모든 사용자의 bash 셸 세션에 대한 글로벌 구성을 제공.

/etc/profile: 시스템 전체의 로그인 셸 세션을 위한 초기화 스크립트 파일. 모든 사용자의 로그인 셸 세션 시작 시 실행.

R : 복잡한 데이터 분석과 시각화를 위한 강력한 도구를 제공

Hadoop: 대규모 데이터 세트를 분산 처리하기 위한 프레임워크. 데이터 저장과 처리에 유용

NoSQL: 관계형 데이터베이스의 대안으로, 빅데이터와 실시간 웹 애플리케이션을 위한 다양한 데이터베이스 기술

Cassandra: 고가용성과 확장성을 제공하는 분산 NoSQL 데이터베이스 시스템

FTP 서버에 파일을 업로드하는 명령어 = put

FTP 서버에서 파일을 다운로드하는 명령어 = get


telnet 옵션

  • u : UDP 모드로 telnet을 실행
  • n : 호스트 이름을 숫자로 변환하지 않고, 주소로 처리
  • p : 원격 호스트이 포트를 지정
  • l : 로그인 할 때 사용 할 사용자 이름을 지정
  1. .Xsession: 사용자가 로그인할 때 실행되는 스크립트로, 사용자가 세션을 시작할 때 실행되는 명령을 포함할 수 있습니다.

  2. .Xsetup: 일반적으로 XDM(X Display Manager)과 관련된 설정 파일로, XDM을 사용하는 로그인 화면 설정에 사용됩니다.

  3. .Xinitrc: 사용자가 startx 명령을 통해 X 윈도우 시스템을 시작할 때 실행되는 스크립트로, 사용자 정의 초기화 명령을 포함할 수 있습니다.

  4. .Xauthority: X 서버에 대한 인증 정보를 저장하는 파일로, X 클라이언트가 X 서버에 접근할 수 있도록 하는 인증 키를 저장합니다.

윈도 매니저 : x-윈도우 상에서 윈도의 배치와 표현을 담당하는 시스템 프로그램

디스플레이 매니저 : x-윈도우 구성 요소 중 사용자 로그인 및 세션 관리 수행 프로그램

ps명령 상태 코드

  • R (Running): 프로세스가 현재 실행 중인 상태
  • S (Sleeping): 프로세스가 현재 실행 대기 중인 상태. 실행 대기 중이지만 사용자 입력이나 이벤트를 기다리고 있다. 대부분의 프로세스가 이 상태에 있다.
  • T (Stopped): 프로세스가 현재 중지된 상태. 보통은 SIGSTOP 시그널을 받아 중지된 상태이며, 실행을 일시 중지한 후에 다시 시작할 수 있다
  • Z (Zombie): 프로세스가 종료되었지만 부모 프로세스가 아직 종료 상태를 확인하지 않은 상태. 일반적으로 시스템 리소스를 소비하지 않으며, 부모 프로세스가 해당 종료 상태를 처리할 때까지 존재.

ps : 현재 실행 중인 프로세스

bg : 중지된(background)작업을 다시 실행

jobs : 현재 셸에서 실행 중인 작업의 목록(백그라운드, 포그라운드 모두 표시)

exec : 셸 스크립트가 다른 프로세스로 대체

SIGTSTP - 20 : Terminal Stop Signal (POSIX)

SIGKILL - 9 : Kill(can't be caught or ignored) (POSIX)

SIGINT - 2 : Terminal Interrupt (ANSI)

SIGTERM - 15 : Termination (ANSI)

chsh

  • l = list shells : 셸의 목록을 출력하여 사용자가 사용할 수 있는 셀의 종류를 확인
  • u = help : 명령어의 사용법과 가능한 옵션에 대한 간단한 설명 제공
  • s : 사용자의 기본 셸을 변경
  • c = comment : 변경된 셸에 대한 추가적인 설명을 제공

/etc/fstab 은 파일 시스템 테이블을 나타내는 파일

/etc/mtab 파일은 현재 마운트된 파일 시스템에 관한 정보

/etc/mounts 파일은 파일 시스템이 실제로 마운트되어 있는지 여부와 관계없이 보여줍니다.

/proc/partitions 파일은 현재 시스템에 있는 파티션 정보를 제공

NFS (Network File System) : 네트워크를 통해 파일을 공유할 수 있게 해주는 시스템임. 리눅스나 유닉스 시스템끼리 파일 공유할 때 주로 사용함.

SAMBA : 윈도우 파일 공유 프로토콜인 SMB/CIFS를 구현한 거임. 윈도우와 리눅스/유닉스 시스템 간에 파일이나 프린터를 공유할 수 있게 해줌.

Gopher : 인터넷 초기에 사용되던 정보 검색 프로토콜임. 웹이 널리 퍼지기 전에 문서나 파일을 계층적으로 찾아볼 수 있게 해주는 시스템이었지만, 지금은 거의 안 쓰임.

FTP (File Transfer Protocol) : 파일을 컴퓨터와 컴퓨터 사이에 전송하기 위해 사용되는 프로토콜임. 웹 브라우저나 전용 클라이언트를 통해 파일 업로드, 다운로드 할 때 사용됨.

A클래스: 0.0.0.0 ~ 127.255.255.255

B클래스: 128.0.0.0 ~ 191.255.255.255

C클래스: 192.0.0.0 ~ 223.255.255.255

1계층 물리 계층 - bit

2계층 데이터 링크 계층 - frame

3계층 네트워크 계층 - packet

4계층 전송 계층 - segment

DISPLAY=원격지로 전송하기 위해 변경하는 변수

VISUAL = 사용자의 기본 텍스트 에디터를 나타내는 환경 변수

TERM = 터미널 유형을 나타내는 환경 변수

XTERM =  X 윈도우 시스템에서 사용되는 터미널 에뮬레이터의 종류를 나타내는 환경 변수

mount 와 umount
 마운트는 특정 디바이스를 특정 디렉터리처럼 사용하기 위해 장치와 디렉터리를 연결한
다.
 리눅스는 PnP 기능을 지원하지만 지원하는 하드웨어가 많지 않으므로 시스템 부팅후에
수동으로 마운트해서 사용을 하고 사용이 끝난 후에는 언마운트를 시킨다.
 파일 /etc/mtab 은 현재 마운트된 블록 시스템 정보를 표시한다.

eject
 이동식 보조기억장치등과 같은 미디어를 해제하고 장치를 제거하는 명령어이다.

fdisk
 새로운 파티션의 생성, 기존 파티션의 삭제, 파티션의 타입 결정 등의 작업을 수행할 수
있다.
 한 번에 한 디스크에 대해서만 작업을 수행한다.

mkfs
 리눅스 파일 시스템을 생성한다.
 fdisk로 하드디스크를 파티션을 나눈 후 해당 파티션에 맞는 파일 시스템을 생성한다.

mke2fs
 ext2, ext3, ext4 타입의 리눅스 파일 시스템을 생성하는 명령어이다.

fsck
 파일 시스템의 무결성을 점검하고 대화식으로 복구하는 명령어이다.
 디렉터리 /lost+found 는 fsck 에서 사용하는 디렉터리이다.

e2fsck
 ext2, ext3, ext4 타입의 리눅스 파일 시스템을 복구하는 명령어이다.

du
 Disk Usage의 약자로 디렉터리별로 디스크 사용량을 확인할 수 있다.

df
 시스템에 마운트된 하드 디스크의 남은 용량을 확인할 때 사용하는 명령어이다.
 기본적으로 1024 Byte 블록 단위로 출력한다

 TCP/IP주소 설정 정보 확인: ifconfig, nslookup
 네트워크 경로 상태 확인: ping, traceroute
 네트워크 연결 상태 확인: netstat
 라우팅 테이블 확인: route
 NIC 상태 확인: ethtool, mii-tool, arp

profile
포토폴리오 https://wikidocs.net/book/10969 유튜브 링크 https://www.youtube.com/@%EC%B5%9C%EC%9B%90%EC%9D%BC-n5r

0개의 댓글