리눅스마스터 2차 필기 정리

llunaB·2024년 5월 1일
0

2024 5월 기출정리

https://chat.openai.com/share/8d38bc24-26d1-4f19-8c24-0f719f757109

1과목 : 리눅스 운영 및 관리

프린터작업

  • BSD계열
    lpr : 프린터출력(/usr/bin/lpr)
    lpq : q에있는 작업의 목록 출력(/usr/bin/lpq)
    lprm : 프린터 큐에 대기중인 작업을 삭제
    lpc : 프린터가 안쇄 가능한 상태인지 확인
  • System V 계열
    lp : 프린터 Path 지정 후 인쇄
    lpstat : 작업번호 확인
    cancel : 작업취소 'cancel requestID'

IPP : 원격 인쇄 프로토콜

  • CentOS7에서 X윈도 기반으로 프린터 설정 : system-config-printer

하드웨어 설치 패키지

프린터 : LPRng / CUPS(리눅스에서 프린터서버로 사용하기 위해 설치)
사운드 : ALSA / OSS (리눅스 유닉스 사운드 인터페이스, 표준 유닉스 시스템콜 사용,Hannu Savolaonen, 4종 라이센스 옵션 기반 배포)

초기 리눅스에선 OSS 상ㅇ했으나 ALSA 로 전환

스캐너 : SANE / XSANE

소스파일 설치방법

  • 방법 a : Apache httpd, PHP, Nmap
  • 방법 b : MySQL

패키지 관리도구(기본-온라인)

           기본    온라인
  • 레드햇 리눅스: RPM - YUM (dnf)
  • 데비안 리눅스: dpkg(-i *.deb) - apt-get(zypper)
  • 온라인 기반 패키지 관리도구가 아닌것 : YaST
  • 수세 리눅스 : YaST, zypper
  • dselect : 데비안 리눅스에서 사용하는 curses 메뉴방식 도구

RAID 구성 레벨

  • RAID0 : 스트라이핑 미사용, 한개라도 오류시 데이터 복구 불가
  • RAID1 : 미러링, 디스크 용량 효율성 50%, 스트라이핑(라운드로빈으로 여러개의 디스크에 연속된데이터 기록, 빠른 데이터 rw시간)
  • RAID5 : 디스크 개수 -1개 , 최소 3개이상, 패리티 1개
  • RAID6 : 디스크 용량 효율성 50%
  • 하나의 디스크 오류 발생해도 데이터 손실없는 조합 : RAID-1, RAID-5

LVM 용어

  • LVM : 로지컬 볼륨 매니저
  • PV : 피지컬 볼륨
  • PE : 피지컬 볼륨 단위, 일반 하드디스크의 블록에 해당한다.
  • VG : 볼륨 그룹, PV 여러개를 묶음
  • LV : 논리 볼륨, 마운트포인터로 사용할 실질적 파티션
  • 구성순서 : PV -> VG -> LV
  • 물리디스크 2개를 1개의 파티션 구성가능, 물리디스크 1개로 2개의 파티션 구성가능
  • 그러나 파티션 크기 축소시 데이터 손실은 발생가능

yum 명령어

  • yum install
  • yum list
  • yum info
  • yum remove 패키지명 : 제거

rpm 명령어

설치 : rpm -i 패키지명
확인 : rpm -qa 패키지명
제거 : rpm -e 패키지명
-q : 패키지 설치 여부 확인
-a : 모든 패키지 확인
-i : 패키지 설치
-U : 설치 + 업데이트

  • rpm -e httpd --nodeps : 의존선있는 httpd 패키지 강제 제거

편집기

  • emacs : 리처드 스톨먼
  • vi
    - 줄의 시작에서 linux 를 Linux로 치환
    :% s/^linux/Linux/
    • 현재 커서가 위치한 줄부터 아래 방향으로 3줄 복사
      3yy
    • 자동으로 행 번호 나오게하기
      cat > .exrc set nu
  • 워싱턴대학에서 만든 유닉스용 "pico" 편집기 -> 최근에는 이 복제판인 "nano" 사용

압축(해제)

  • 압축률 : compress < gzip(zxvf) < bzip2(jxvf) < xz(Jxvf)
  • tar(묶기)tvf (xvf)
  • 압축풀이
    gxvf zxvf jxvf Jxvf
    zxvf : gzip
    jxvf : bzip2 (bz2)
    Jxvf : xz

-J 옵션 : xz명령어

chmod

chmod u+x /aa.txt

Sticky-Bit 특수권한 (1000) chmod 1777

project 그룹에 속한 사용자들이 /project 디렉터리에서 파일 생성은 자유로우나 삭제는 본인이 생성한 파일만 가능하도록 설정(공유 모드)

  • chmod o+t /project

기존 권한에 상관없이 rwxrwxrwxt로 설정
chmod 1777 /home

Set-UID 특수권한 (4000) chnod 4777

사용자가 아닌 파일의 소유자 권한으로 인식함
일반 사용자도 /usr/bin/passwd 로 자신의 로그인 암호를 변경할 수 있는 이유는 이 파일에 설정되어있기 때문

  • 소유자 권한부분의 x 자리에 s

  • 권한

    소유자(user) 그룹 타인
    rws r-x r-x

권한 사용자 소유권 그룹 소유권
-rwsr-x-rx root project

  • chmod u+s example.txt

Set-GID 특수권한 (2000) chmod 2777

  • chmod g+s example.txt

디렉토리에 setgid 가 설정되어 있다면 해당 디렉토리에서 파일을 생성 했을 때 파일의 사용자 그룹은 파일을 생성한 사용자의 기본 그룹으로 지정되지 않고 setgid가 설정된 디렉토리의 사용자 그룹으로 상속

권한 사용자 소유권 그룹 소유권
-rwsr-x-rx root project

이미 그룹소유권이 project
chmod 3070 /project

chgrp

/project 하위까지 모두 그룹 소유권을 project로 변경
chgrp -R project /project

chown

권한 사용자 소유권 그룹 소유권
-rwsr-x-rx root root

파일 소유자를 변경
chown :ihd example.txt

파일 그룹소유권은 kait, 소유자는 ihduser 로 설정
chown ihduser:kait example.txt

umask

  • 0022 기본값(022)

  • 0002 : 002 -> u=rwx(7), g=rwx(7), o=rx(5)

  • umask000 디렉터리 기본 777, 파일 기본 666

  • umask -S : 문자표현(u=rwx) -> 유마스크 결과값. 이대로 생성됨(디렉터리기준)

mkdir

U G O
d rwx rwx rwx
d 7 7 7
0 0 2 2
0 7 5 5
drwx r-x r-x

touch

U G O

  • rw- rw- rw-
  • 6 6 6
    0 0 0 2
    0 6 6 4 U G O
  • rw- rw- rw-
  • 6 6 6
    0 0 2 2
    0 6 4 4
    -rw- r-- r--

인터페이스 명칭

  • OSS : 리눅스 유닉스 계열에서 사운드를 만들고 캡처
  • SANE : 스캐너
  • ALSA
  • CUPS

디스크관련 명령어

  • df : 리눅스 시스템 전체 / 현재 마운트된 디스크 사용량 확인
  • du : 현재 디렉토리(-s)

rpm 명령어

-i 새로운패키지 설치 install
-U 업그레이드 또는 설치
-F 이전버전이 설치 되어있는 경우 설치 (--freshen)
-e 설치된 패키지 삭제
-v rpm 명령어를 수행하면서 메시지를 잘 보여준다.
-h 진행상황을 Hash(#)로 보여준다.
-g 패키지가 설치 되어 있는지 확인하고 있으면 이름과 버전을 출력한다 ex) rpm -qa | grep httpd
-qa 설치된 모든패지키를 보여준다.
(없는것 : -f)

?
rpm -qf /bin/ls
coreutils-8.22-24.el7.x86_64

(커널)컴파일 순서(소스파일 설치단계)

  • configure - make - make install
    커널이란? 쉘 - 커널 - 하드웨어
    엔진개념! 모듈사용, c언어로 받은 커널소스를 컴파일
  • configure -> make -> make install

configure : Makefile 파일을 생성한다(소스 설치)
make : Makefile 파일을 읽어 타깃과 의존성 관련 작업을 수행

  • cmake : 소스 설치방법 (MySQL, KDE, LMMS) PHP는 아님
  • make clean : 소스파일의 압축 푼 디렉터리에서 한번 작업한 설정과 관련파일을 삭제하고 다시 설정작업을 진행할때 사용(어쨌든 make 전에)

편집기

  • vi : 커서 마지막줄 위치 vi + a.txt
    ex 모드설정 : set ai (엔터키 행바꿈시 같은 열에 위치)
    j 아래방향 이동사용법 : /로 검색, n 다음 문자열
  • emacs : 리차드 스톨만
  • nano : ctrl x 프로그램 종료
  • kwrite : X윈도 환경에서만 사용
  • gedit : X윈도 환경에서만 사용

crontab

  • 분 시 일 월 요일

ex. 매주 토 일 오전 4시 1분 1 4 * 0,6
ex. 매주 1회 4 0
* 2

1-월 2-화 3-수 4-목 5-금 6-토 0,7-일

프로세스 명령어

  • ps
  • pgrep [name]
  • fg
  • bg / 또는 sleep 1000& (&붙이기)
  • bg->fg 전환 : fg %작업번호
  • fg->bg 전환 : 일시중단 후 bg %작업번호
  • ctrl + c / z : 종료/일시정지(SIGTSTP, 20)

백그라운드

  • & : 백그라운드 실행되나 터미널 끊기면 종료
  • nohup : 터미널 닫혀도 프로세스 유지
  • jobs : 백그라운드로 수행중인 프로세스 확인

우선순위 변경

  • nice (프로세스명) / renice (PID) : 실행중이 아닌/실행중인 프로세스의 우선순위값 변경
    기본NI 0, 기본값 10, 최소 -20~ 19
    nice -10 bash : bash NI 10만큼 증가
    nice bash : 동일
    nice -n 10 bash : 동일
    nice --10 bash : bash NI 10감소시켜 우선순위를 높인다

프로세스 종료

  • kill : 기본 SIGTERM 15, killall 프로세스명

시그널 번호

SIGHUP 1

프로세스 상태코드값

Z : 좀비, 작업 종료되었으나 부모로부터 회수x, 메모리 차지

기타

프로세스명을 인자값으로 사용 : killall, nice

프로세스 용어

  • daemon : 주기적 지속적 서비스 요청 처리 위해 계속 실행되는 background 프로세스
  • standalone 방식 : 부팅시 실행되어 프로세스가 메모리에 계속 상주하며 클라이언트 서비스 요청을 처리하는 데몬프로세스 실행방법
  • top
  • free
  • systemd : CentOS7 최초 프로세스, PID 1 부여

프로세스 주기

  • fork : 프로세스가 다른 프로세스 실행시 호출하는 방법, 자식 프로세스 생성
  • exec : 기존 프로세스 교체하며 새로운 프로세스 발생

/etc files

/etc/shells : 특정 사용자가 로그인 한 후 현재 사용가능한 쉘 목록 정보 저장
/etc/passwd : 특정 사용자에게 부여된 로그인 쉘이 기록
/etc/mtab : 현재 마운트 정보 파일
/etc/default/useradd
/etc/login.defs
/etc/fstab : 파일시스템에 대한 정보를 담고있으며 부팅시 마운트할 파티션 정보 기록
/etc/profile : 시스템 전체 사용자에게 적용되는 환경변수 및 시작관련 프로그램 설정
/etc/resolve.conf : DNS (nameserver)

bash : 1989년 브라이언 폭스가 GNU프로젝트를 위해 개발
bourne shell : 오래된 쉘.....

chsh -l : 이용가능한 쉘 확인
chsh -s /bin/sch : 다른 쉘로 변경

!?al : 최근 실시한 명령 중 'al'문자열을 포함한 명령을 찾아 실행
.bash_history : 사용자가 로그인한 후 입력한 명령은 로그아웃할때 여기 저장

alias

w + 명령어 : alias 무시

변수

  • 쉘 변수 : 부모쉘에만 적용 set / unset
  • 환경변수 : 시스템 전체에 적용, 쉘 상속된다 env / env -u
  • 쉘->환경변수 : export '변수명'

환경변수

※ 시스템에 미리 선언(예약)되어 있는 환경 변수의 종류 ※

$PATH 실행 파일을 찾을 경로

$HOME 현재 로그인한 사용자의 홈 디렉토리 경로

$LANG 쉘에서 사용하는 언어

$SHELL 로그인 시 사용하는 쉘 실행 파일 경로(로그인 시 부여받은)

$PS1 프롬프트 구조 정보

$HISTSIZE 히스토리 파일에 저장되는 명령어의 수

$HISTFILE 히스토리 파일의 경로

$TMOUT 세션 유지 시간 (보안상 설정해두는 것이 좋음)

※ 그 외에 미리 선언(예약) 되어 있는 변수 ※

1) HOME : 사용자의 홈디렉토리
2) PATH : 실행파일을 찾는 경로
3) LANG : 프로그램 사용시 기본 지원되는 언어
4) PWD : 사용자의 현재 작업하는 디렉토리
5) TERM : 로긴 터미널 타입
6) SHELL : 로그인해서 사용하는 쉘
7) USER : 사용자의 이름
8) DISPLAY : X 디스플레이 이름
9) VISUAL : visual 편집기의 이름
10) EDITOR : 기본 편집기의 이름
11) COLUMNS : 현재 터미널이나 윈도우 터미널의 컬럼수
12) PS1 : 명령프롬프트변수
13) PS2 : 2차 명령프롬프트이다. 명령행에서 \를 사용하여 명령행을 연장했을 때 나타난다.
14) BASH : 사용하는 bash 쉘의 경로
15) BASH_VERSION : bash의 버전
16) HISTFILE : history 파일의 경로
17) HISTFILESIZE : history 파일의 크기
18) HISTSIZE : history에 저장되는 갯수
19) HISTCONTROL : 중복되어지는 명령에 대한 기록 유무를 지정하는 변수이다.
20) HOSTNAME : 호스트의 이름
21) LINES : 터미널의 라인 수
22) LOGNAME :로그인이름
23) LS_COLORS : ls 명령의 색상관련 옵션
24) MAIL : 메일을 보관하는 경로
25) MAILCHECK : 메일확인시간
26) OSTYPE : 운영체제 타입
27) SHLVL :쉘의 레벨
28) TERM :터미널종류
29) UID : 사용자의 UID
30) USERNAME : 사용자이름

파일

~/.bash_profile : 환경변수 PATH
/sbin/nologin : 시스템 계정에 설정되는 쉘

파티션 관련

/dev/sdb1 파티션 복구 : xfs_repair /dev/sdb1
/dev/sdb1 파티션을 ext4 파일시스템으로 포맷 : mke2fs -t ext4 /dev/sdb1

리눅스 파티션 생성시 uuid 부여, blkid 로 확인
/etc/fastab 에 정보가 있음

mount

mount <디스크> <마운트포인트>
/dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)

/dev/sda1 : 장치 이름
/boot : 마운트 포인트
type xfs : 파일시스템 타입

디스크 쿼터 설정(/etc/fstab)

edquota user1 : user1에게 쿼터를 설정한다
quota user1 : user1 쿼터정보 확인
usrquota : 4번째 필드에 usrquota 설정
uquota
(userquota는 x)
quotacheck /home : 사용자 쿼터정보가 기록되는 파일을 생성

데몬프로세스 실행방법

standalone : 해당 프로세스가 메모리에 계속 상주하며 서비스요청을 처리

2과목 : 리눅스 활용

운영체제

  • 리눅스 커널 기반 : webOS(모바일 운영체제, Palm OS 계승), GENIVI, Tizen
  • 기타 : QNX

X윈도 프로젝트

XFree86 : IBM호환 유닉스 운영체제를 위한, 1992년 시작
부팅 모드 확인 : #systemctl get-default / graphical.target
X window TCP port : 6000

프로그램

Docker : 컨테이너

VMWare

VMDK : 가상머신 파일형식

라이브러리

Qt : KDE와 관계
XCB : Xlib 대체

데스크톱 환경

GNOME : GTK+ 라이브러리 사용해 만든 공개형 데스크톱 환경

클라이언트와 서버

A 시스템 프로그램 을 원격지 B 시스템이 전송해서 실행
-> A 시스템은 X 클라이언트가 되고, 환경변수인 DISPLAY를 변경한다.
-> B 시스템은 X 서버가 되고 xhost 명령을 사용해 제어한다.

윈도 매니저 종류

  • AfterStep, Xfwm, Enlightenment
  • Xface

클러스터 기법

  • 고가용성 클러스터 : 지속적인 서비스 제공, 프라이머리노드-백업노드
  • 베어울프 클러스터 : 고성능 계산, 과학 계산, 슈퍼컴퓨터

빅데이터 관련기술

  • Hadoop : 분산 응용 프로그램

가상화 기술

KVM : 하이퍼바이저, CPU전가상화 방식, Qumranet에서 개발

서버 접근 명령

xhost : 서버에 접근할 수 있는 IP 주소 확인

도메인 설정

/etc/hosts

DNS 설정

/etc/resolv.conf
nameserver IP

네트워크 인터페이스 환경 설정

/etc/sysconfig/network-scripts

FTP서비스

FTP 서비스는 20번 포트로 데이터를 전송하고, 21번 포트로 제어한다.

인터넷 서비스

SSH : 패킷 암호화하여 원격 로그인 지원(scp, rsh, sftp)
ssh -l 계정 IP
NFS
FTP : get 으로 파일 가져옴
telnet

웹브라우저

파이어폭스 : 모질라재단 자유 소프트웨어
크롬
사파리
오페라

프로토콜

전자우편 : SMTP, IMAP(143), POP3
? : SNMP(포트번호 161)
SAMBA : 리눅스 유닉스 와 윈도우간 자료공유, 초기에는 SMB 프로토콜을 사용했으나 현재는 CIFS 프로토콜로 확정
ICMP : 메세지에 대한 오류 보고와 피드백을 호스트에게 보고한다
IRC : 실시간 채팅 프로토콜

네트워크 종류

LAN : 학교, 회사
MAN : 도시
WAN : 국가, 대륙 등 넓은 지역 연결

LAN 구성방식

MESH 망형 : 장애발생시 영향이 적고 우회방법 존재, 설치비용 많이든다. 운영 어렵다.
링형
버스형 : 하나의 통신회선에 여러 컴퓨터를 연결하여 전송한다. 한번에 한 컴퓨터만 전송.
스타형 : 중앙제어기 중심, 고장시 전체 네트워크 중단

케이블 종류

UTP
STP
BNC
Fiber Cable

OSI 7계층

7 응용프로그램 HTTP, SMTP
6 프레젠테이션
5 세션 접속 설정 및 유지, 통신관리
4 전송 TCP, UDP(세그먼트를 보내기만 한다)
3 네트워크 IP, ICMP, IGMP
2 데이터 연결 계층
1 물리 계층

  • Gateway 장치 : 가장 많은 계층을 지원
  • Ethernet : 각 기기는 48bit 고유 mac 주소를 기반으로 데이터 주고받음, 허브 스위치 등 장치 이용

네트워크 주소 대역

A 0.0.0.0 ~ 127.0.0.0
B 128.0.0.0 ~ 191.255.0.0
C 192.0.0.0 ~ 223.255.255.0 (256개 할당)
D 224.0.0.0 ~ 239.255.255.255

IP

초기에는 IANA 현재는 ICANN 관리

네트워크

DQDB : 도시 등 공중영역 연결, IEEE 802.6

게이트웨이 주소값

IP 192.168.5.150
서브넷마스크 255.255.255.192
게이트웨이 192.168.5.129

IP 192.168.5.66
서브넷마스크 255.255.255.192
게이트웨이 192.168.5.126

게이트웨이 주소정보 출력 ip route show

https://minha0220.tistory.com/8

즉, /28은
서브넷 마스크 11111111.11111111.11111111.11110000

10진수로 바꾸면 255.255.255.240 를 의미합니다.

/16은
11111111.11111111.00000000.00000000
255.255.0.0

패킷 교환 방식

패킷별 우선순위 부여
각 패킷마다 오버헤드 비트 존재
이론상 무제한 수용 가능

LAN 케이블 규격

CAT-5E : 대역폭 100MHz, 최대 전송속도 1Gbps

  • EIA : 미국 전자산업 협회, 규격

program

LibreOffice Impress : 파워포인트 대체
eog : 이미지 뷰어
totem
evolution
evince

라이브러리

GTK+ : GNOME 과 관련
Qt
Xlib
XCB

서버 접근 허용

xhost 192.168.5.13

윈도 매니저

  • Metacity, Mutter, Kwin
  • Xfce

시스템 시작시 텍스트모드로 부팅이 되도록 설정하기

systemctl - default multi - user.target

X 윈도 터미널 해상도 변경

xrandr -s 1024x768

기타

Telnet : 원격 서버 서버 접속 서비스 , 최근 사용 안함
WWW 는 각 웹페이지를 연결하는 하이퍼텍스트 방식의 정보검색 시스템으로 URL 사용
telnet-server : CentOS7 시스템을 텔넷 서버로 사용하기 위한 패키지

profile
안녕하세요. 성장하는 주니어 개발자입니다. :-)

0개의 댓글