ETC

[ETC/시험] 리눅스 마스터 2급 2차 필기 정리 족보 (+노션pdf)

따봉치치 2024. 12. 14. 20:16
728x90

1. 리눅스 운영 및 관리

LVM (Logical Volume Manager) PV ⇒ VG ⇒ LV

  • 리눅스와 유닉스 계열 운영 체제에서 사용되는 스토리지 관리 기술
  • 물리적인 디스크를 유연하고 동적으로 관리할 수 있게 해주는 계층을 제공하여 디스크 관리의 편의성과 확장성을 높여줌
  • 유연한 디스크 파티션 관리를 가능하게 하는 기술
  • LVM 구성 흐름
    1. PV 생성 : LVM을 구성하기 위해 가장 먼저 실제 디스크나 디스크 파티션을 PV로 초기화함
    2. VG 생성 : 하나 이상의 PV를 묶어서 VG 생성
    3. LV 생성 : VG를 기반으로 LV 생성
    4. PE, 파일 시스템 및 마운트
  • 구성요소
    • PV (Physical Volume) : 물리 디스크 또는 디스크 파티션, LVM의 기본 단위
    • VG (Volume Group) : 여러 PV를 결합하여 하나의 논리적 스토리지 풀을 형성하는 단위
    • LV (Logical Volume) : 사용자가 필요한 만큼 할당해서 생성하는 논리적 파티션
    • PE (Physical Extent) : PV를 나눈 고정된 크기의 블록 단위, 파일 시스템을 구성하는 일반적인 디스크의 블록

디스크 용량 단위

  • GB < TB < PB < EB

제거

  • rpm : e(erase)
  • yum : r(remove), erase

RAID

  • 스트라이핑 : 연속된 데이터를 여러 개의 디스크에 라운드 로빈 방식으로 기록하는 기술로 하나의 디스크에서 읽어 들이는 것보다 더 빠르게 데이터를 읽거나 쓸 수 있음
  • 0
    • 스트라이핑
    • 데이터 복구 기능 제공하지 않음
  • 1
    • 미러링
  • 2
  • 3
  • 4
  • 5
    • 패리티 정보 사용 ⇒ 패리티 정보를 별도의 디스크에 저장
    • 최소 3개의 디스크 필요
    • 블록 단위로 스트라이핑
  • 6
    • 이중 패리티 사용
    • 최소 4개의 디스크 필요

프린터 큐

  • lpstat : 프린터 큐의 작업 정보를 확인하는 명령어

OSS

  • 리눅스 및 유닉스 계열 운영체제에서 사운드를 만들고 캡처하는 인터페이스
  • 표준 유닉스 시스템콜(POSIZ)에 기반을 두고 있음

SANE

  • 스캐너 하드웨어와 응용 프로그램 간의 인터페이스 제공
  • GPL 라이선스로 공개되어 있음
  • 이미지 관련 하드웨어를 사용할 수 있도록 해주는 API
  • 스캐너 관련 드라이버와 사용자 관련 명령이 있는 2개의 패키지로 구분되어서 배포됨
  • 명령
    • USB로 연결된 스캐너 검색 명령어 : sane-find-scanner -v
  • 스케너 디바이스
    • SCSI : /dev/sg0, /dev/scanner
    • USB : /dev/usb/scanner, /dev/usvscanner

XSANE

  • GTK+ 라이브러리로 만들어짐

데비안 계열 리눅스

  • 데비안 운영 체제를 기반으로 만들어진 리눅스 배포판
  • 데비안은 오랜 역사를 가진 안정적이고 강력한 리눅스 배포판
  • .deb 확장자의 패키지 형식과 APT 패키지 관리 시스템을 사용하는 것이 특징
  • 명령어
    • apt-get purge [패키지명] : 패키지를 환경 설정 파일 포함해서 완전 제거
    • apt-get remove [패키지명] : 패키지를 삭제하지만, 환경 설정 파일은 남겨둠
  • 패키지 관리 도구
    • dpkg(로컬)
    • apt-get
    • dselect : cursor 메누 방식의 도구

CentOS

  • 리눅스 배포판 중 하나
  • RHEL(Red Hat Enterprise Linux)을 기반으로 만들어진 오픈소스 운영 체제
  • 6 : init
  • 7 : systemd

레드햇 계열 리눅스

  • 패키지 관리 도구
    • dnf
    • rmp
    • yum

리눅스 온라인 패키지 관리 도구

  • 네트워크를 통해 원격 저장소에서 패키지를 다운로드하고 설치, 업데이터, 제거하는 기능 제공
  • dnf : Red hat 계열에서 사용하는 온라인 패키지 관리 도구
  • zypper : OpenSUSE 및 SUSE 계열에서 사용하는 온라인 패키지 관리 도구
  • apt-get : Debian 계열에서 사용하는 온라인 패키지 관리 도구

프로그램을 소스파일로 설치하는 과정

  1. configure : 시스템에 맞는 환경 설정 및 Makefile 생성(소스 파일 설치)
  2. make : Makefile 파일을 읽어 들여서 소스 파일 컴파일
  3. make install : 컴파일된 프로그램 설치

make 명령어

  • 소프트웨어 개발에서 자동화된 빌드 프로세스를 관리하기 위한 도구
  • Makefile 설정 파일을 기반으로 동작함
  • 종류
    • make clean : 소스 파일의 압축을 푼 디렉터리에서 한 번 작업한 설정이나 관련 파일을 삭제하고 다시 설정 작업을 진행할 때 사용
  • PHP, SAMBA, Apache HTTP

cmake 명령어

  • 소프트웨어 빌드 도구
  • 소스 컴파일 시 사용되는 Make의 대체프로그램으로 멀티플랫폼을 지원하기 위한 목적으로 등장한 오픈 소스 프로젝트
  • 프로젝트의 빌드 시스템(Makefile)을 생성함
  • MySQL, KDE, LMMS 가 사용

yum 명령어

  • Red hat 계열 리눅스에서 사용되는 패키지 관리 도구
  • yum install [패키지명]
  • yum info [패키지명] : 미설치된 패키지에 대한 자세한 정보를 확인하는 명령
  • yum history info : yum 명령을 사용한 작업 이력 확인
  • yum search 문자열 : 해당 문자열이 포함된 패키지 검색
  • yum groupinstall 패키지명 : 지정한 패키지 그룹 설치
  • yum list : 전체 패키지에 대한 정보 출력
  • yum list update : 업데이트시 필요한 패키지 정보
  • yum check-update : 업데이트가 가능한 패키지 목록 확인
  • /etc/yum.repos.d : yum 명령의 저장소 관련 파일들이 위치

rpm

  • Red hat 계열 리눅스 배포판에서 사용하는 로컬 패키지 관리 도구
  • rpm -iUF ⇒ 설치옵션

옵션 설명

-i 패키지 설치
-U 패키지 업데이트
-e 패키지 제거
-qa 설치된 모든 패키지 조회
-qi 패키지 상세 정보 조회
-qf 특정 파일이 속한 패키지 확인
-qR 패키지 의존성 확인
-V 패키지 검증
--force 강제로 설치 또는 업데이트
--nodeps 의존성 확인을 무시하고 설치/제거
-F 현재 시스템에서 설치된 패키지만 찾아서 업데이트

EPEL

  • Red hat 계열 리눅스에서 사용할 수 있는 확장 패키지 관련 저장소
  • 공식 저장소에 포함되지 않은 소프트웨어 패키지를 제공하여 시스템 관리자가 다양한 소프트웨어를 설치할 수 있도록 지원함
  • yum install epel-release

BSD 계열 유닉스

  • lpr 명령어를 사용하는 프린터 시스템
  • 명령어
    • lpr: 프린트 작업 요청
    • lpq : 대기 중인 프린트 작업 상태 확인
    • lprm : 대기중인 프린트 작업을 취소

유닉스 프린팅 명령어

  • System V계열
    • lp
      • -n : 인쇄 매수 지정
    • lpstat
    • cancel
  • BSD계열
    • lpr
      • -# : 인쇄 매수 지정
    • lpq
    • lprm
    • lpc
    • lpd

LPRng(Line Printer Next Generation)

  • BSD 계열 유닉스 시스템에서 사용하기 위해 개발된 프린터 시스템
  • 라인 프린터 데몬 프로토콜을 사용하여 프린터 스풀링과 네트워크 프린터 서버를 지원함

mkfs(Make file system) 명령어

  • 특정 디스크 파티션을 원하는 파일 시스템으로 포맷
  • 옵션
    • -t : 파일 시스템의 종류 지정

mke2kf 명령어

  • ext2/3/4 파일 시스템을 포맷하는 명령어
  • 옵션
    • -t : 파일 시스템의 종류 지정
    • -b : 블록 크기를 바이트 수로 지정
    • -c : 배드 블록 체크
    • -f : 프래그먼트 크기 바이트 수로 지정
    • -i : inode당 바이트 수 지정
    • -T : inode 크기 설정
    • -j : 저널링 파일 시스템으로 만들기
    • -m : 슈퍼유저에게 예약해둘 블록의 퍼센트 지정

mkfs.xfs 명령어

  • XFS 파일 시스템 생성

blkid 명령어

  • 파티션에 할당된 UUID 값을 확인하는 명령어

tar 명령어

  • 아카이브 파일을 생성하거나 해제할 때 사용하는 유틸리티
  • 여러 파일을 하나의 파일로 묶거나 압축하는 데 사용
  • tar [옵션] [생성할 tar 파일명] [대상 파일/렉터리]
  • 주요 옵션:
    • c (create): 아카이브 생성.
    • x (extract): 아카이브 추출.
    • t (list): 아카이브 목록 확인.
    • r (append) : 다른 파일의 내용을 추가로 묶음
    • f: 파일 이름 지정.
    • z : gzip 형식으로 압축
    • Z : compress 형식으로 압축
    • j : bzip 형식으로 압축
    • J: xz 압축 사용.
    • v: 자세한 정보 출력.
  • 압축 효율 xz(J) > bzip2(j) > gzip(z) > compress(Z)

편집기

vi ⇒ pico ⇒ gedit ⇒ nano

  • nano ⇒ GNU 프로젝트
    • 터미널 기반 텍스트 편집기
    • CLI 에서 사용 가능
    • GNU프로젝트에 의해 관리되는 편집기
  • pico ⇒ 아보일 카사르
    • nano 원조격인 CLI 기반 편집기
    • 아보일 카사르가 개발
  • kwrite
    • KDE 데스크톱 환경에서 사용되는 GUI 기반 편집기
    • X 윈도 환경에서만 사용 가능
  • gedit
    • X윈도 환경에서 실행되는 GUI 기반 편집기
  • vim ⇒ 브람 무레나르
    • 터미널 기반 텍스트 편집기
    • GUI가 없는 서버나 명령줄 환경에서도 사용 가능
    • CLI 기반
    • 브람 무레나르가 개발
    • 패턴 검색 시에 하이라이트 기능 제공하여 빠른 검색 가능
    • 히스토리 가능
    • 문법 검사 가능
    • 다중 되돌리기 가능
  • emacs ⇒ 리처드 스톨만, 제임스 고슬링
    • CLI 및 GUI 모두 지원 가능한 편집기
    • 전문가용
    • 리처드 스톨만이 개발
    • LISP에 기반을 두는 환경 설정 언어를 가지고 만듦
    • 질의를 통한 치환 가능
    • 종료 : [Ctrl] + [c] ⇒ [Ctrl] + [x]
  • gVim
    • GUI 기반으로 개발됨

vi 편집기

  • 빌 조이가 개발
  • 모드
    • 명령모드 : 처음 실행 시 접하게 되는 모드, 삭제, 복사, 붙여넣기
    • 입력모드 : a, A, i, I, o, O 누르면 모드됨
    • ex 명령모드 : 치환, 저장, 종료의 역할 수행, ‘:’ 누르면 실행
  • ex 명령어

명령어 설명

:w 현재 작업 중인 내용을 저장
:w [파일명] 지정한 파일명으로 저장
:q 편집기를 종료 (수정 사항이 있을 경우 경고)
:q! 수정 사항을 저장하지 않고 강제로 종료
:wq 변경된 내용을 저장하고 종료
:x :wq와 동일 (변경 사항 저장 후 종료)
:e [파일명] 지정한 파일을 새로 열기
:set number 줄 번호 표시
:set nonu 줄 번호 숨김
u (undo) 바로 직전에 삭제한 줄 다시 복원
:$ 편집 중인 문서 파일의 마지막 줄로 이동하기 위한 명령
  • 문자열 검색 및 탐색 명령어
    • / : 아래 방향(순방향)으로 문자열 검색
    • ? : 위 방향(역방향)으로 문자열 검색
    • n : 다음 검색 결과로 이동
    • N : 이전 검색 결과로 이동
  • 문자열 치환 명령어
    • :% : 파일 전체 범위에서 치환 수행
    • s : 치환 명령
    • /linux$/linux./ : 줄 끝에 있는 linux를 찾아 linux뒤에 . 을 덧붙이도록 치환
  • .exrc파일
    • vi 편집기의 환경 설정 파일
    • 환경 설정한 내용을 계속해서 사용할 수 있음

emacs 편집기

  • 리처드 스톨만이 개발

nano 편집기

  • 키 조합
    • [Ctrl]+[a] : 현재 줄의 시작으로 이동.
    • [Ctrl]+[e]: 현재 줄의 끝으로 이동
    • [Ctrl]+[o]: 파일 저장
    • [Ctrl]+[i]: 탭 삽입

kill 명령어

  • 프로세스 종료시키기 위해 사용
  • 기본적으로 시그널 번호 15(SIGTERM)가 전송됨
  • 작업번호를 이용하려면 % 사용 ⇒ kill %2
  • 프로세스 id를 이용하려면 그냥 숫자만 사용 ⇒ kill 2

top 명령어

  • 리눅스 시스템의 운영 상태를 실시간으로 모니터링하거나 프로세스 상태 확인 가능

jobs 명령어

  • 현재 사용자가 실행한 백그라운드 프로세서 및 일시 정지된 작업의 목룍을 표시

bg 명령어

  • 일시 정지된 프로세스를 백그라운드로 재개하는 명령어

ps 명령어

  • 시스템의 모든 프로세스 또는 사용자의 특정 프로세스 정보를 출력
  • 사용자가 로그인한 후에 이용중인 셸을 확인하는 명령어
  • 옵션
    • a : 터미널과 연관된 프로세스 출력
    • u : 프로세스의 소유자를 기준으로 출력
    • x : 데몬 프로세스 출력

df(disk free) 명령어

  • 현재 마운트된 디스크의 남아있는 용량 확인
  • 옵션
    • i: 파티션에 사용 가능한 아이노드의 수 확인

du(disk usage) 명령어

  • 파일 또는 디렉터리의 디스크 사용량을 확인하는 명령어
  • 옵션
    • -s : 총 사용량 표시
    • -h : 사람이 읽기 쉬운 형식으로 출력

lsblk 명령어

  • 시스템에 연결된 블록 장치(디스크와 파티션)을 트리 형태로 출력하는 명령어

nohub(No hang up) 명령어

  • 사용자가 로그아웃하거나 터미널 세션이 종료되어도 프로세스를 백그라운드 프로세스로 계속 실행하도록 만드는 명령어
  • 사용자가 작업 중인 터미널 창을 닫아도 백그라운드로 보내진 작업은 유지됨
  • 실행한 명령을 백그라운드로 보낼 때는 사용자가 & 명령어를 이용해 직접 명시해주어야한다(자동 X)
  • 실행중인 프로세스의 표준출력과 표준에러는 ‘nohup.out’파일을 생성하여 기록함
  • 쓰기작업 권한이 없다면 ‘$HOME/nohup.out’ 파일을 생성하여 기록함

프로세스 상태 코드

  • R (Running)
    • 현재 실행 중이거나 실행 가능한 상태
  • S (Sleeping)
    • 단기 대기 상태
  • T (Stopped)
    • 정지 상태
    • SIGSTOP 신호를 받아 일시적으로 중단
  • Z
    • 좀비 프로세스
    • 작업이 종료되었지만, 부모 프로세스가 해당 프로세스의 종료 상태를 아직 회수하지 않아 프로세스 테이블에 잔존하는 상태

프로세스 생성 및 실행

  • fork()
    • 새로운 프로세스 생성
    • 부모 프로세스를 복제하여 자식 프로세스 생성
    • 부모와 자식은 동일한 메모리 상태 공유, 분리된 메모리 가짐
  • exec()
    • 현재 프로세스를 대체
    • 기존 프로세스의 메모리를 새로운 프로그램으로 덮어씀
    • 프로세스가 증가하지 않는 방식

<aside> 💡

포어그라운드 : 사용자가 현재 직접 상호작용하고 있는 프로세스

</aside>

프로세스 관련 키 조합

  • [Ctrl] + [c] : 현재 프로세스 종료
  • [Ctrl] + [z] : 포어그라운드 프로세스를 정지 상태로 전환
  • [Ctrl] + [d] : EOF 신호를 보내고 셸을 종료

백그라운드 프로세스

  • 터미널을 차지하지 않고 실행되는 프로세스
  • 명령어 뒤에 **&기호**를 붙이면 해당 명령어가 백그라운드에서 실행됨

데몬 프로세스

  • 운영체제에서 주기적이고 지속적인 서비스 요청을 처리하기 위해 백그라운드에서 실행되는 프로세스

fg 명령어

  • 백그라운드에서 실행 중인 작업을 포그라운드로 전환
  • fp %작업번호

NI값

  • 프로세스의 우선순위를 조정하는 값
  • 프로세스의 Nice 값을 나타냄
  • **-20 ~ 19**까지의 범위를 가짐
  • 낮을수록 높은 우선순위
  • 기본 값은 0
  • 우선순위가 높아진 상태 <
  • 명령어
    • nice -조정값 [프로세스명]
      • 프로세스를 특정 NI 값으로 실행
      • 기본적으로 기본 Nice 값(0)에 +10을 적용
      • 주의할점
        • 양수는 -n
        • 음수는 —n으로 조정해야함
    • renice
      • 이미 실행 중인 프로세스의 NI 값을 변경
      • 프로세스 증가 없이 우선순위 조정 가능
      • renice [nice 값] -p [PID]

cron

  • 리눅스에서 작업을 주기적으로 실행하는 데 사용되는 스케줄링 도구
  • crontab 파일에서 작업 스케줄을 정의함
  • 분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(0~7) 명령어 형식
  • 단 요일은 일요일부터 시작 (0 : 일요일, 1 : 월요일)
  • 명령
    • cron 설정 파일 삭제 : crontab -r -u [유저이름]
    • 삭제 전 사용자 확인 : crontab -ir
    • root 사용자가 다른 사용자의 내용 작성 및 수정 : contab -e(edit) -u [유저이름]

네트워크 서비스

  • 웹 서버, FTP 서버, 메일 서버 같은 서버 프로그램으로 클라이언트 요청을 받아 처리하는 역할
  • 실행 및 관리 방식
    • Standalone 방식
      • 서비스가 독립적으로 실행
      • 항상 메모리에 상주하여 클라이언트 요청을 처리하는 방식
      • 서비스가 운영체제에 의해 직접 관리됨
      • 서비스가 항상 실행중이므로 메모리 사용량이 크지만 클라이언트 요청에 빠른 응답 가능
      • 대규모 트래픽처럼 빈번한 요청 처리에 유리
    • inetd(슈퍼서버) 방식
      • inetd 또는 xinetd라는 슈퍼서버가 클라이언트 요청을 대기하다가 요청이 있을 때 필요한 서비스 프로세스를 실행하는 방식
      • 요청이 없을 때 서비스가 실행되지 않아 메모리 사용이 적음
      • 요청이 들어올 때마다 새로운 프로세스를 실행하므로 초기 처리 시간이 걸림

리눅스 시그널

  • 리눅스 시그널은 운영체제에서 IPC의 한 형태로 프로세스에게 특정 이벤트나 상태를 알리기 위해 전달되는 소프트웨어 인터럽트
  • kill -l 명령으로 시그널의 전체 목록 확인 가능
  • 종류번호 이름 설명 기본 동작
    1 SIGHUP 프로세스의 연결 종료(로그아웃 등) 종료 및 재시작
    2 SIGINT 인터럽트(사용자가 Ctrl+C 입력 시) 종료
    3 SIGQUIT 종료(사용자가 Ctrl+\\ 입력 시) 코어 덤프 생성 후 종료
    4 SIGILL 잘못된 명령어 사용 코어 덤프 후 종료
    5 SIGTRAP trace, breakpoint에서 TRAP 발생할 때 코어 덤프
    6 SIGABRT 비정상종료 함수에 의한 발생, abort 시스템 호출 시 발생 코어 덤프
    7 SIGBUS 메모리 접근 에러시 발생 코어 덤프 후 종료
    9 SIGKILL 강제 종료(종료 불가) 종료
    11 SIGSEGV 세그멘테이션 오류(잘못된 메모리 접근 시) 코어 덤프 생성 후 종료
    15 SIGTERM 정상 종료 요청 종료
    18 SIGCONT 정지된 프로세스 재개 실행 재개
    19 SIGSTOP 프로세스 정지(사용자 복구 불가) 정지
    20 SIGTSTP 프로세스 정지(사용자 복구 가능, Ctrl+Z) 정지

kill 명령어

  • 기본적으로 SIGTERM(15)를 전달하여 정상적인 종료 요청
  • 여러 PID 한 번에 처리 가능
  • 옵션
    • -l: 시그널 전체 목록을 확인 할 수 있음

pkill 명령어

  • 프로세스 이름을 기반으로 프로세스 종료

killall 명령어

  • 지정된 이름의 모든 프로세스 종료

pgrep 명령어

  • 프로세스 이름을 기준으로 PID 검색

echo 명령어

  • 리눅스 및 유닉스 셀에서 텍스트 또는 변수를 출력하는 데 사용되는 명령어
  • 환경 변수 출력
    • echo $USER
    • echo $HOME
    • echo $PATH
    • echo $SHELL : 사용자가 로그인 시에 부여받은 셸 정보가 출력됨
    • $LANG : 시스템 언어와 문자 인코딩 정보
    • $TERM : 현재 사용하는 터미널 유형

!! 명령어

  • 가장 최근에 실행한 명령 재실행

!?문자열 명령어

  • 가장 최근에 실행한 명령 중 문자열을 포함한 명령어를 찾아서 실행

set 명령어

  • 현재 셸에서 설정된 모든 변수를 출력
  • 셸에서 선언된 셸 변수 전부 확인

unset 명령어

  • 현재 선언된 셸 변수 해제

env 명령어

  • 현재 환경 변수만 출력

export 명령어

  • 환경 변수로 내보낸 변수만 출력

ps 명령어

  • 사용자가 로그인하여 현재 실행중인 프로세스의 정보를 출력하는 데 사용
  • 백그라운드로 실행 중인 데몬 프로세스를 포함해 확인 가능

chmod 명령어

  • 옵션
    • -c : 변경된 파일만 자세히 보여줌
    • -f : 변경되지 않은 파일에 대해 오류메시지 보여주지 않음
    • -v : 작업 상태 상세히 보여줌
    • -R : 경로와 하위 파일 모두 변경

chsh 명령어

  • 사용자가 기본 로그인 셸을 변경할 때 사용하는 명령어
  • 주요 옵션 -s가 가장 많이 사용!!옵션 설명
    -s (shell) 기본 로그인 셸을 변경합니다.
    -l 시스템에서 허용된 사용 가능한 셸 목록을 출력합니다.
    -h chsh 명령어의 **사용법(도움말)**을 출력합니다.
    -u non-standard 옵션으로 일부 시스템에서만 사용되며 사용자를 업데이트.

mount 명령어

  • 파일 시스템을 특정 디렉토리(마운트 포인트)에 연결(마운트)하거나 옵션을 수정할 때 사용
  • 옵션
    • -t : 파일 시스템의 타입 지정, mount -t [파일시스템 타입] [장치 파일] [마운트 포인트]
    • -o : 추가적인 마운트 옵션 지정

umount 명령어

  • 마운트 해제

eject 명령어

  • CD-ROM 드라이브의 디스크 트레이를 여는 데 사용
  • 이동식 매체의 마운트를 해제하고 장치를 제거(꺼내기)

저널링 파일 시스템

  • 백업 및 복구 기능을 갖춘 파일 시스템
  • XFS
  • ext3 이상
  • ReiserFS
  • JFS

파일 점검 명령어

  • fsck : ext4 파일 점검 명령어
    • 손상된 디렉터리나 파일 수정을 위한 임시 디렉터리 : /lost+found
  • xfs_repair : xfs 파일 점검 명령어
  • e2fsck : ex2/ex3 파일 점검 명령어

/user/bin/passwd

  • 비밀번호를 변경하는 명령어 실행 파일로, SetUID 권한이 설정되어 있음

/sbin/nologin

  • 시스템 계정에 설정되는 셸

/etc/shadow

  • 민감함 정보가 포함된 파일로 읽기/쓰기 권한만 설정되어 있음

/etc/bashrc

  • 모든 사용자에게 적용되는 alias와 함수 설정하는 파일명

/etc/passwd

  • 리눅스 시스템에서 사용자 계정 정보를 저장하는 파일
  • 사용자가 로그인 시에 부여되는 기본 셸 정보 포함

<aside> 💡

마운트 : 리눅스 및 유닉스 계열 운영체제에서 파일 시스템을 디렉토리 구조에 연결하는 작업

</aside>

/etc/mtab

  • 현재 시스템에 마운트된 파일 시스템 정보를 저장하고 있는 파일
  • 실제 파일은 /proc/self/mounts임

/etc/fstab

  • 시스템 부팅 시 자동으로 파일 시스템을 마운트하기 위해 필요한 정보를 정의하는 파일
  • 파일 시스템에 대한 정보를 담고 있는 파일로 부팅 시 마운트할 파티션 정보가 기록되어 있음
  • 사용자 쿼터를 설정하기 위해 usrquota/grpquota 항목에에 설정함
  • <장치> <마운트 포인트> <파일 시스템 유형> <마운트 옵션> <dump> <fsck>

/etc/services

  • 시스템에서 사용되는 네트워크 프로토콜에 할당된 포트 번호와 서비스 이름을 매핑하는 파일

/etc/protocols

  • 네트워크 프로토콜 번호와 이름을 매핑하는 파일

/etc/shells

  • 특정 사용자가 로그인한 후에 사용 가능한 셸의 목록 정보를 확인할 수 있는 파일

.bash_history 파일

  • 사용자가 로그인 후에 입력한 명령어들을 기록하는 파일
  • 사용자가 실행한 명령의 목록 정보 확인

.bach_logout 파일

  • 로그아웃할 때 자동으로 생성

.bashrc 파일

  • 특정 사용자별 설정 파일로 함수 및 alias 관련 설정 파일

Shell

shcshtcshkshbashzsh ”쎈척TK바지”

  • C Shell (csh)
    • 빌 조이가 개발
    • 히스토리 기능, Alias 기능, 작업 제어 기능
  • Bourne Shell (sh)
    • 최초 개발
    • 유닉스 시스템의 기본 셀
  • Korn Shell (ksh)
    • C + Bourne 결합
    • 일반적으로 유닉스에 가장 많이 사용
  • Bash
    • 브라이언 폭스가 개발
    • GNU 프로젝트를 위해 개발된 셸
    • Bourne Shell 기반으로 확장한 셸
    • 현재 리눅스에서 가장 널리 사용됨
    • 리눅스 표준 셸
  • tch
    • C기반 확장판
  • zsh
    • Korn 셸 기반
  • dash
    • POSIX와 호환되는 /bin/sh를 가능한 작게 구한셸
    • 빠른 작업 수행
    • history 명령 등은 지원하지 않음

fdisk

  • 디스크의 파티션을 생성, 삭제, 수정하는 데 사용되는 유틸리티
  • 명령어명령어 설명
    n 새로운 파티션을 생성합니다.
    w 변경된 내용을 저장하고 프로그램을 종료합니다.
    x 고급(extra) 모드로 진입하여 추가적인 작업을 수행합니다.
    q 변경 내용을 저장하지 않고 종료합니다.
    l 장착된 디스크들의 파티션 테이블 정보 확인

파일 권한

  • 기본 권한
    • r
      • 읽기 권한
      • 파일 : 파일의 내용을 읽을 수 있는 권한
      • 디렉토리 : 디렉토리 내의 파일 목록을 볼 수 있는 권한
    • w
      • 쓰기 권한
      • 파일 : 파일의 내용을 수정하거나 삭제할 수 있는 권한
      • 디렉토리 : 디렉토리에 파일을 생성, 삭제, 이름 변경할 수 있는 권한
    • x (excute)
      • 실행 권한
      • 파일 : 파일을 실행할 수 있는 권한
      • 디렉토리 : 디렉토리에 접근할 수 있는 권한
  • 특수 권한
    • setUID: 4 ⇒ 파일
      • 해당 파일을 실행하는 사용자가 파일 소유자의 권한으로 실행할 수 있음
    • setGID: 2 ⇒ 파일, 디렉터리
      • 새로 생성된 파일과 디렉터리는 해당 디렉터리의 그룹 소유권을 상속 받음
      • s로 표시
    • sticky-bit : 1 ⇒ 디렉터리
      • 디렉터리 내 파일을 삭제하거나 이름을 변경할 수 있는 권한이 제한됨
      • 본인이 생성한 파일만 변경이나 삭제 가능
      • t 로 표시
  • 권한 표현 방식
    • 10개의 문자로 나타냄
    • 첫 번째 문자
      • 파일 : -
      • 디렉토리 : d
    • 나머지
      1. 소유자 u
      2. 그룹 g
      3. 기타 사용자 o

umask 명령어

  • 파일과 디렉토리가 생성될 때의 기본 권한 설정을 지정
  • umask -S
  • 파일
    • 기본 권한은 666 : 모든 사용자에게 읽기/쓰기
    • 실행 권한은 기본적으로 포함되지 않음
    • 666 - umask 값
  • 디렉토리
    • 기본 권한은 777 : 모든 사용자에게 읽기/쓰기/실행 권한
    • 777 - umask 값

chown 명령어

  • 파일이나 디렉터리의 소유자와 그룹 변경
  • chown [소유자]:[그룹] [파일명]

chomd 명령어

  • 파일이나 디렉터리의 권한 변경 명령어
  • 파일이나 디렉터리의 권한 변경 명령어

chgrp 명령어

  • 파일이나 디렉터리의 그룹 소유권만 변경 가능
  • 옵션
    • -R (Recursive) : 디렉터리와 하위 디렉터리를 포함하여 재귀적으로 그룹 소유권 변경
    • -c (changes) : 변경된 항목만 출력
    • -v (verbose) : 처리된 모든 파일 출력
    • -f (force) : 에러 메시지를 표시하지 않고 조용히 실행
    • -h : 원본 파일의 소유권은 그대로 둔 채 심볼릭링크 파일의 그룹 소유권만 변경

ls 명령어

  • 파일이나 디렉터리의 정보 표시
  • 옵션 -l을 사용하면 소유자와 그룹 소유자, 권한, 파일 크기, 수정 시간 등 자세한 정보 확인 가능

디스크 쿼터 설정

  1. quotacheck
    • 파일 시스템에 대해 쿼터 데이터베이스를 검사하고 갱신
    • aquota.user, aquota.group을 생성하거나 갱신
  2. edquota : 쿼터 실제로 설정
  3. quotaon/quotaoff : 디스크 쿼터 기능 활성화
  4. repquota : 쿼터 사용량과 제한을 보고서 형태로 출력

quota 명령어

  • 현재 사용자의 단위 쿼터 정보 출력

xfs_quota 명령어

  • XFS 파일 시스템에서 디스크 쿼터를 관리하고 설정하는 명령어

edquota 명령

  • 사용자나 그룹에 쿼터(디스크 사용 한도)를 설정할 때 사용하는 명령어
  • 실행하면 기본적으로 vi 편집기가 열림

alias 설정

  • 에일리어스가 설정되어 있으면 해당 명령어를 실행할 때 에일리어스가 적용됨
  • alias c=clear
  • 원래 명령어를 실행하려면 **\\(역슬래시)**를 이용하면 됨
  • 혹은 unalias 명령어 사용하기

OSS

  • 리눅스 및 유닉스에서 사운드를 만들고 캡쳐하는 인터페이스
  • 표준 유닉스 장치 시스템 콜을 기반으로 둠

ALSA

  • 리눅스에서 사운드카드 사용을 위한 오디오 시스템
  • 명령어
    • alsactl : 리눅스에서 ALSA 시스템을 제어 및 설정하는 데 사용하는 명령어

CUPS

  • 애플이 개발한 공개 소프트웨어
  • 유닉스 계열 운영체제에서 프린터 서버로 사용할 수 있는 시스템
  • 웹 서버의 Common Log Format 형태의 로그파일을 제공함
  • HTTP 기반의 IPP를 사용하고, SMB 프로토콜도 부분적으로 지원함
  • CUPS 프린트 데몬의 환경 설정 파일의 기본문법이 아파치의 httpd.conf와 유사함
  • 데몬 환경 설정 파일
    • /etc/cups/cupsd.conf

IPP (Internet Printing Protocol)

  • 인터넷에서 원격으로 인쇄하기 위해 사용하는 프로토콜

locale -a

  • 리눅스 시스템에서 현재 설정 가능한 언어셋 확인 명령어

2. 리눅스 활용

서브넷 마스크

  • 첫 주소 : 네트워크 주소
  • 두번째 : 게이트웨이 주소
  • 마지막 :

클라우드 서비스

  • 이용자 많은 순서
    • Iaas→ PaaS → SaaS

R

  • 빅데이터 환경에서 데이터 분석 기술을 통해 분석된 데이터의 의미와 가치를 시각적으로 표현할 때 유용한 프로그래밍 언어

고성능 컴퓨팅 (HPC)

  • 고성능의 계산 능력을 제공하기 위한 목적
    • 여러 컴퓨터를 병렬로 묶어서 구성함

베어울프 클러스터 = 고계산용 클러스터

  • 1990년대 초 CESDIS에서 Cray 슈퍼컴퓨터의 임대 기간 종료에 대비하기 위한 프로젝트에서 탄생
  • 고성능의 계산 능력을 제공하기 위한 목적으로 제작
  • 주로 과학계산용으로 사용됨

고가용성 클러스터링

  • 다수의 웹 서버를 운영하는 환경으로 하나의 로드밸런서 시스템으로 부하를 분산

IPv4 클래스

  • A클래스
    • 0~127
    • 루프백 네트워크가 속해 있음 : 127.0.0.0 ~ 127.255.255.255
    • 대규모 네트워크에 사용됨
  • B클래스
    • 128~191
    • 증규모 네트워크 사용됨
  • C클래스
    • 192~223
    • 소규모 네트워크에 사용됨
  • D클래스
    • 224~239
    • 멀티캐스트 전용

netstat 명령어

  • 네트워크 연결 상태 및 소켓 정보 확인
  • SYN Flooding 공격 탐지 가능
  • 열려 있는 포트, 활성 연결, 사용 중인 프로토콜 등 네트워크 정보 출력
  • 옵션
    • -r : 라우팅 테이블 정보 출력
    • -t : TCP 연결 상태 확인
    • -m : 메모리 사용 현황
    • -n : 숫자 형식의 주소와 포트 번호 출력

ss 명령어

  • 네트워크 연결 상태를 확인 할 수 있는 명령어
  • SYN Flooding 공격 탐지 가능
  • 옵션
    • -a : 모든 소켓 정보 출력
    • -t : TCP 소켓 정보만 출력
    • -n : 숫자 형태로 출력
    • -o : 타이머 정보 출력

최상위 도메인

  • com
  • org
  • net
  • deu
  • gov
  • mil : 미군전용
  • int : 정부 간 국제 규약에 의해 설립된 국제기구 등 특수한 자격조건을 갖춘 기관에서 사용 가능
  • kr
  • jp

/etc/resolv.conf

  • DNS 설정 파일
  • DNS 서버와 검색 도메인 정보 설정
  • 단축 도메인 설정!!

/etc/hosts

  • IP주소와 호스트 이름 간의 매핑 정보를 수동으로 정의하는 파일
  • DNS 서버를 사용하지 않고도 특정 도메인 이름과 IP 주소를 해석할 수 있도록 함

/etc/services

  • 프로토콜과 관련된 포트 번호 확인할 수 있는 파일

/etc/sysconfig/network

  • 네트워크 사용 유무 지정, 호스트명 설정, 게이트웨이 주소 설정, NIS 도메인 명 등이 기록되는 파일
  • 네트워크 연결을 활성화하거나 비활성화하는 주요 설정 파일

/etc/sysconfig/network-scripts

  • 네트워크 인터페이스 환경 설정과 관련된 파일들이 저장되어 있는 디렉터리

mii-tool

  • 네트워크 카드에 물리적으로 케이블이 연결되었는지를 점검할 때 사용하는 명령어

연결 상태 확인 명령어

  • ss
  • netstat

게이트웨이 주소 확인 명령어

  • ip
  • route
  • netstat
  • show

리눅스시스템에 설정된 ip 주소 확인 명령어

  • ip
  • ifconfig

ifconfig

  • 리눅스 및 유닉스 기반 시스템에서 네트워크 인터페이스를 설정, 관리, 디버깅하는 데 사용되는 명령어
  • ifconfig eth0 down

ipconfig

  • 윈도우 시스템 ip 주소 확인 명령어

ethtool

  • 이더넷 카드에 연결된 케이블의 상태를 확인할 수 있는 명령
  • 이더넷 카드의 link mode 변경할 수 있는 명령어

WWW(World Wide Web)

  • 하이퍼텍스트 기술을 사용해 웹페이지와 다른 웹페이지를 연결하는 정보 검색 시스템
  • 웹 서버의 자원에 접근하기 위해 URL을 사용함

FTP (File Transfer Protocol) 명령어

  • put
    • 로컬 시스템에서 FTP 서버로 파일을 업로드
  • get
    • FTP 서버에서 로컬 시스템로 파일을 다운로드
  • recv
    • get 명령어의 별칭으로 파일을 다운로드할 때 사용
  • mget
    • 여러 개의 파일 동시에 가져옴
  • mput

SSH 명령어

  • ssh [사용자 이름]@[원격지 IP 주소 또는 도메인]
  • 옵션옵션 설명
    -p [포트번호] 기본 포트(22)가 아닌 다른 포트로 SSH 서버에 접속할 때 사용.
    -l [사용자명] 접속할 사용자 계정을 지정 (예: ssh -l user 192.168.0.1).
    -i [파일경로] 특정 SSH 키 파일(private key)을 지정하여 접속.

Telnet 명령어

  • 원격 서버와의 통신을 위해 사용되는 네트워크 프로토콜
  • 주요 옵션옵션 설명
    -l [사용자명] 특정 사용자 계정으로 원격 서버에 접속.
    -n [파일명] Telnet 세션의 입력과 출력을 기록할 파일을 지정.
    -e [문자] Telnet의 종료 문자(Escape character)를 변경. 기본값은 ^](Ctrl + ]).
    -8 8비트 데이터 전송을 활성화.
    -d 디버깅 모드 활성화. Telnet 세션의 상세한 정보를 출력.
    -E 종료 문자(Escape character) 비활성화.
    -L **로컬 라인 모드(Local line mode)**를 활성화.
  • 클라이언트는 telnet, Telnet 서버는 telnet-server 패키지 설치해야 함

메일 관련 프로토콜

  • SMTP
    • 메일 서버 간의 메시지 교환에 사용
    • 송신용
    • 25번
  • IMAP
    • 사용자가 메일 서버에 저장된 이메일을 읽거나 관리할 때 사용
    • 수신용
  • POP3
    • 메일 클라이언트가 메일 서버에서 메일을 다운로드하여 로컬에 저장할 때 사용
    • 수신용
    • 110번

응용 계층 프로토콜

  • FTP
    • 20 - 데이터 포트
    • 21 - 제어 포트
  • SSH : 22
  • Telnel : 23
  • SMTP : 25
  • DHCP : 67,68
  • POP3 : 110
  • IMAP : 143
  • SNMP : 161, 162

SAMBA

  • 리눅스를 비롯한 유닉스 계열 운영체제와 윈도우 운영체제 간의 자료 및 하드웨어 공유 지원
  • SMB(Sercer Message Block) 프로토콜을 구현한 소프트웨어 ⇒ 최근에는 CIFS 프로토콜 사용
  • 주요 기능
    • 파일 및 디렉터리 공유
    • 프린터 공유
    • 윈도우 도메인/Active Directory와의 통합
  • SMB
    • 삼바 서비스의 핵심 프로토콜
    • 파일 및 프린터 공유 서비스를 제공하기 위해 사용
  • CIFS
    • SMB 확장 버전
    • 윈도우 네트워크 파일 공유 프로토콜과 호환성 제공
  • NetBIOS
    • 네트워크 이름 해석 및 세션 관리

CIFS (Common Internet File System)

  • 인터넷을 통해 원격지 컴퓨터상의 파일이나 서비스를 요청하는 표준 프로토콜
  • TCP/IP 프로토콜 기반

NFS (Network File System)

  • 유닉스/리눅스 계열 시스템에서 파일 공유를 위한 프로토콜
  • RPC
  • rpcbind
  • portmap

네트워크 구조

  • 링형(원형)
    • 노드들이 순환 형태로 연결되어 있으며, 데이터가 순차적으로 전송
    • 충돌이 없고 성능 저하가 적음
    • 노드 추가가 어려움
    • 노드에 문제 발생 시 전체 네트워크가 중단될 수 있음
  • 버스형
    • 네트워크 노드들이 하나의 중앙 공유 케이블에 연결된 구조
    • 노드 추가가 쉬움
    • 충돌 가능성이 높음
    • 중앙 케이블에 문제가 발생하면 네트워크 전체가 중단될 수 있음
    • 스푸핑 발생 가능성
    • 한 번에 한 컴퓨터만 전송 가능
  • 망형
    • 모든 노드가 다른 모든 노드와 연결되어 있는 구조
    • 노드 하나에 문제가 생겨도 다른 경로를 통해 데이터를 전송할 수 있어 안정적임
    • 구성과 유지보수 복잡, 비용 높음
  • 스타형
    • 중앙에 허브 또는 스위치가 있고, 각 노드가 중앙 장치에 연결되는 구조
    • 노드 추가가 쉬움

X 윈도우 시스템

  • 리눅스와 유닉스 계열 운영체제에서 GUI를 제공하는 기본 그래픽 시스템
  • 클라이언트와 서버 구조로 이루어져 있고 서로 간 통신을 위해 X 프로토콜 사용
  • X 클라이언트는 X윈도에서 동작하는 일종의 응용 프로그램
  • 역할
    • GUI 데스크톱 환경 제공 : X윈도우가 없으면 GUI 환경이 없기 때문에 텍스트 기반 콘솔만 사용가능함
    • 원격 그래픽 지원
  • 파일 종류
    • .Xauthority
      • X 윈도우 시스템에서 사용자 인증을 위해 사용되는 파일
      • 키 정보 저장
    • .Xsession
      • X 세션이 시작될 때 실행되는 사용자 정의 스크립트
    • .Xsetup
      • X 서버를 초기화할 때 실행되는 스크립트
    • .Xinitrc
      • X 서버를 시작할 때 실행되는 스크립트
  • 환경변수
    • DISPLAY : X 클라이언트를 원격지로 전송하거나 출력을 제어할 때 사용
    • TERM : 터미널 유형 정의
    • VISUAL : 기본 텍스트 편집기 설정
  • 구성요소
    • 디스플레이 매니져
      • 사용자의 로그인 및 세션 관리 담당
      • 텍스트 모드인 런레벨3
      • 그래픽 모드인 런레벨5
      • GDM
    • 데스크톱 환경
      • 전체적인 GUI 환경을 이용하기 위해 사용자에게 제공되는 인터페이스 스타일
      • 파일관리자, 아이콘, 창, 도구모음, 배경 화면, 위젯 등을 제공함
      • KDE, Xfce, GNOME
    • 윈도 매니저
      • 창의 크기, 위치, 제목 표시줄 등 관리
      • Kwin, Windowmaker, Atferstep
    • 유저 인터페이스
      • 사용자와 시스템 간의 상호작용 담당
  • X 윈도 관련 명령어
    • systemctl
      • set-default graphical : 시스템 부팅 시 X 윈도 실행 명령어
      • get-default graphical.target : 현재 설정된 기본 target(부팅 모드) 확인
    • Xauth 명령어
      • X윈도 환경에서 인증 정보를 관리하기 위한 명령어
      • X서버와 클라이언트 간에 안전한 연결을 보장하기 위해 MIT-MAGIC-COOKIE-1 인증 정보를 사용
      • Using authority file /run/user/0/gdm/Xauthority
      • xauth>
      • xauth add [display] [protocol] [key]
      • xauth list $DISPLAY
    • echo $DISPLAY
      • X 클라이언트를 실행하면 로컬 시스템의 첫 번째 X 서버에 실행됨
    • xhost 명령어
      • X서버에 대한 호스트 또는 클라이언트의 접속 권한을 제어하는 데 사용함
      • xhost +/- [도메인명]
      • access control enabled, only authorized clients can connect
      • SI:localuser:root
  • TCP 포트 번호
    • 6000번 포트

XSANE

  • X윈도 기반의 GTK+ 라이브러리로 개발된 스캐너 프로그램

X.org

  • 2004년에 시작하여 기존에 사용되던 프로젝트의 라이선스 정책 변화로 인하여 관련 개발자들 대부분이 이 프로젝트에 합류함

Xlib

  • C 언어로 구현된 클라이언트 라이브러리로 X서버와 통신을 하는 역할 담당
  • 개발자들은 Xlib를 통해서는 X서버 및 X클라이언트와 관련된 프로토콜을 잘 몰라도 됨
  • 저수준의 인터페이스로 키보드나 마우스에 대한 반응 등 단순한 기능만 가짐

XCB

  • X 서버와의 통신을 위한 라이브러리
  • Xlib을 대체해서 이보다 향상된 스레딩 기능을 지원함

윈도 매니저

  • X 윈도우 시스템에서 창의 크기, 위치, 제목 표시줄 등을 관리하는 소프트웨어
  • Metacity
  • Enlightenment
  • Window Master
  • Xfwm
  • Afterstep

XFree86

  • IBM 호환 시스템을 사용하는 유닉스 계열 운영체제를 위한 X윈도 프로젝트

GNOME

  • GNU 프로젝트에서 LGPL을 따르는 GTK+ 라이브러리를 사용해서 만든 공개형 데스크톱 환경
  • 응용 프로그램
    • Nautilus: GNOME 데스크톱 환경에서 사용하는 기본 파일 관리자
    • totem
    • evolution

KDE

  • 리눅스와 유닉스 계열 운영 체제를 위한 데스크톱 환경
  • Qt 라이브러리를 기반으로 개발됨
  • 리눅스뿐만 아니라 FreeBSD, Solaris, OS X 등도 지원
  • 응용 프로그램
    • konqueror

브라우저

  • links
    • 텍스트 기반의 웹 브라우저 ⇒ GUI를 필요로 하지 않아 X윈도가 설치되지 않은 환경에서 콘솔 창에서 사용 가능
  • firefox
    • GUI 기반의 대표적인 웹 브라우저
    • Gecko라는 독립적인 레이아웃 엔진을 사용함
  • opera
    • GUI 기반의 브라우저
    • 노르웨이의 한 회사에서 시작된 프로젝트에서 탄생한 프리웨어 웹 브라우저
    • 리눅스, 윈도우, Mac OS, X, 안드로이드, IOS에서도 사용 가능
  • safari
    • Apple에서 제공하는 GUi기반 웹 브라우저
    • macOS나 iOS 환경에서 사용
    • Webkit 엔진 사용
  • chrome
    • 구글에서 개발한 브러우저
    • 초기에는 Webkit을 사용하다가 현재는 Blink를 사용함
  • edge
    • 초기에는 마이크로소프트에서 자체개발한 EdgeHTML 엔진을 사용했으나, 현재는 Blink 엔진 사용ㄷ

ICANN (Internet Corporation for Assigned Names and Numbers)

  • 인터넷의 글로벌 운영을 지원하는 비영리 국제기구
  • IP주소, DNS, 프로토콜 범주 및 포트 할당 등의 업무를 담당

OSI 7계층과 데이터 단위

계층 번호 계층 이름 주요 역할 데이터 단위 인터네트워킹 장비

7 응용 계층 (Application) 사용자와 네트워크 간의 인터페이스 제공 데이터 (Data) 게이트웨이
6 표현 계층 (Presentation) 데이터 형식 변환 및 암호화 데이터 (Data)  
5 세션 계층 (Session) 통신 세션의 설정, 유지, 종료 데이터 (Data)  
4 전송 계층 (Transport) 데이터 전송의 신뢰성 보장 및 흐름 제어 세그먼트 (Segment, TCP) / 데이터그램 (Datagram, UDP)  
3 네트워크 계층 (Network) 네트워크 경로 설정 및 IP 주소 기반 라우팅 패킷 (Packet) 라우터
2 데이터 링크 계층 (Data Link) 물리적 링크에서 데이터 전송 관리, 오류 검출 프레임 (Frame) 브릿지, 스위치
1 물리 계층 (Physical) 실제 하드웨어를 통해 비트 데이터 전송 비트 (Bits) 리피터, 허브

비-프-패-세

  • 리피터 : 신호가 약해지거나 손실되는 것을 방지하기 위해 신호를 증폭하거나 재생하여 전송 거리와 품질을 유지

이더넷

  • LAN을 위한 네트워크 기술
  • 데이터를 전송하기 위해 고유한 MAC 주소를 사용함
  • MAC 주소는 48비트 길이를 가짐

LAN 테이블 규격

  • CAT-5 : 대역폭 100MHz, 전송 속도 100Mps
  • CAT-5E : 대역폭 100MHz, 전송 속도 1Gbps, 기가비트 이더넷인 1000BASE-T에도 적합
  • CAT-6 : 대역폭 250MHz, 전송 속도 1Gbps
  • CAT-7 : 대역폭 600MHz, 전송 속도 10Gbps

ip 명령어

  • 이더넷 카드의 MAC 주소 확인 명령어

패킷 교환 방식

  • 데이터를 작은 단위인 패킷으로 분리하여 전송하는 네트워크 방식
  • 패킷은 독립적으로 전송되며, 목적지에서 다시 조립됨
  • 패킷별로 우선순위를 부여할 수 있음
  • 각각의 패킷마다 오버헤드 비트가 존재함
  • 중간 노드에서 대기 지연이 발생할 수 있음
  • 고정된 대역을 점유하지 않아 이론상으로는 무제한 수용이 가능함
  • 인터넷, LAN 등에서 사용되는 기본적인 데이터 전송 방식

네트워크 종류

  • LAN (Local Area Network)
    • 집, 학교, 사무실 등 작은 지역 내에서 사용하는 네트워크
    • 주로 이더넷 또는 Wi-Fi를 통해 연결됨
  • MAN (Metropolitan Area Network)
    • 도시 규모 또는 캠퍼스와 같은 지역에 걸쳐 있는 네트워크
  • WAN (Wide Area Network)
    • 국가 또는 대륙 간에 걸친 대규모 네트워크

DQDB

  • MAN에 사용되는 프로토콜, IEEE802.6 규격
  • 회선 교환과 패킷 교환이 모두 가능
  • 데이터, 음성 및 비디오 등의 전송을 지원함

이미지 뷰어 프로그램

  • ImageMagicK
    • 이미지 변환 및 편집 도구
  • Eog
    • GNOME 환경의 기본 이미지 뷰어
  • GIMP
    • 이미지 편집 도구
  • Gwenview
    • KDE에서 제공하는 이미지 뷰어 프로그램
  • gThumb

동영상 프로그램

  • Totem
    • 동영상 및 음악 재생을 위한 미디어 플레이어

evince

  • PDF 문서 확인 프로그램

LibreOffice

  • Impress
    • 프레젠테이션 제작 도구
  • Calc
    • 숫자 표에서 다양한 계산을 위해 사용함
  • Writer
    • 워드 프로세서
  • Draw
    • 벡터 그래픽 및 다이어그램 제작 도구
    • 간단한 일러스트나 다이어그램 작성에 적합
  • Base
    • 데이터베이스 관리 프로그램

FDDI (Fiber Distributed Data Interface)

  • 광섬유 케이블을 기반으로 최대 100Mps의 데이터 전송 속도를 제공하기 위해 개발된 네트워크 기술
  • 이중 링 토폴리지를 사용해 네트워크의 안정성을 보장함

IEEE

  • LAN 및 MAN 관련 표준 제정 기관

ITU

  • 이동통신 분야의 5g 제정과 관련된 국제기구

EIA

  • LAN 케이블 관련 표준 제정
  • 주로 전기 및 전자 정비와 관련된 물리적 연결 표준 제정
  • 이더넷 케이블의 배열 순서인 T568B를 표준화함

<aside> 💡

에뮬레이션 : 한 시스템이 다른 시스템의 동작을 흉내 내거나 모방하여, 원래 설계된 시스템에서 실행되도록 만들어진 프로그램이나 작업

</aside>

반가상화

  • 하드웨어를 직접 에뮬레이션하지 않고 게스트 OS가 호스트 OS와 협력하여 가상화 환경에서 더 효율적으로 실행되도록 지원하는 방식

가상화기술

  • Xen
    • 리눅스에서 지원하는 가상화 기술
  • KVM
    • 리눅스 커널에 내장된 가상화 기술
  • VirtualBox
    • 크로스 플랫폼 가상화 소프트웨어
    • 리눅스, Windows, macOS에서 모두 실행 가능하며, 가상 머신 운영 가능
  • Hyper-V
    • Window Server 환경에서 사용되는 가상화 기술

Xen

  • CPU 반가상화를 지원하는 가상화 하이퍼바이저

KVM(Kernel-based Virtual Machine)

  • Qumranet에서 개발된 가상화 기술
  • x86 아키텍처를 기반으로 CPU 전가상화 방식 사용
  • 현재 레드햇사 주도로 개발되고 있음

Kubernetes

  • 소스가 공개된 컨테이너 관리 프로그램
  • 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화해줌

Docker

  • 컨테이너 엔진
  • 애플리케이션을 컨테이너화하고 실행함
  • 리눅스의 응용 프로그램들을 프로세스 격리 기술을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트
  • 경량화된 가상화 기술
  • 하이퍼바이저나 게스트 운영체제를 사용하지 않고, 응용 프로그램과 라이브러리 등을 이미지로 만들어서 프로세스처럼 동작시키는 방식
  • 2013년 3월에 탄생함

Hadoop

  • 빅데이터 인프라 구축과 관련된 프로그램으로 파일시스템 구축에 사용함

Arduino 아두이노

  • 마이크로컨트롤러를 기반으로 하드웨어와 소프트웨어를 결합하여 특정 기능을 반복적으로 수행하는 전자 제어 시스템
  • 오픈 소스를 기반으로 한 단일 보드 마이크로컨트롤러로 완성된 보드와 관련 개발 도구 및 환경을 말함
  • 2005년 이탈리아의 IDII에서 개발함

Ansible

  • 소프트웨어 프로비저닝, 구성 관리, 배포 프로그램으로 유닉스, 리눅스, 윈도우 운영체제에서 사용 가능한 공개 프로그램
  • 2025년 이후 레드햇에 인수되어 관리되고 있음
  • 오픈소스 IT 자동화 툴

OpenStack

  • XEN, KVN 등으로 나눠서 운영되는 가상화 환경 통합 관리에 유용

GENIVI

  • 2009년 2월에 BMW, 델파이, GM, 인텔, 윈드리버 등이 설립하여 만든 조직에서 리눅스 커벌 기반의 표준화된 자동차용 IVI를 위해 만든 플랫폼

Tizen

  • 리눅스 커널 기반으로 인텔, 삼성전자, 리눅스 재단, 리모 재단이 공동으로 개발한 모바일 및 IT 기기를 지원하는 운영체제

Bada OS

  • 삼성전자에서 개발한 독자적인 운영체제
  • 현재는 타이젠으로 통합됨

QNX

  • 캐나다의 QNX Software System에서 개발한 실시간 운영체제
  • 유닉스 커널 기반 운영체제

Raspberry Pi

  • 영국의 Raspberry Pi 재단에서 학교 및 개발도상국에서 컴퓨터 과학 교육을 촉진하기 위해 개발된 신용카드 크기의 싱글 보드 컴퓨터

임베디드 리눅스

  • 디바이스 드라이버 프레임 워크가 복잡함
  • 사용자 모드와 커널 모드 메모리 접근이 복잡함
  • 소스가 공개되어 있는 관계로 변경 및 재배포가 용이함
  • 큰 메모리 차지

R 언어

  • 빅데이터 환경에서 데이터 분석 기술을 통해 분석된 데이터의 의미와 가치를 시각적으로 표현할 때 유용한 프로그래밍 언어

IRC (Internet Relay Chat)

  • 실시간 채팅 프로토콜로 여러 사용자가 모여 대화를 할 수 있는 서비스
  • 개인 간의 대화와 파일 전송기능도 제공함

lo (loopback)

  • 물리적으로 존재하는 인터페이스가 아니라 가상으로 만들어진 네트워크 인터페이스 장치
  • 자체적인 ping 테스트 등 네트워크 디버깅에 사용됨

유즈넷

  • 텍스트 형태의 기사들을 전 세계의 사용자들이 공개된 공간에서 주고받으며 토론할 수 있는 자유 게시판 서비스

Juk

  • KDE 데스크톱환경의 음악 재생프로그램

 

 

 

 

 

제가 직접 정리한 자료입니다.

아래는 노션 버전입니다.

2024ver_리눅스마스터2급정리.pdf
1.01MB

728x90