리눅스 마스터 준비 (4)

Spirit Lab·2025년 6월 12일

  1. RPC
  • 프로세스 간 통신을 위한 기법의 하나. 분산 체계에서 다른 컴퓨터에 있는 절차를 호출할 때 그것이 마치 같은 컴퓨터에 있는 절차인 것과 같이 호출할 수 있는 구조를 말한다.
  1. IRC
  • 실시간 인터넷 채팅 프로토콜
  1. CIFS
  • SAMBA와 가장 관계가 깊은 프로토콜
  • SAMBA가 처음 등장했을 때는 SMB 프로토콜을 사용했으나, 현재는 확장된 프로토콜인 CIFS
    프로토콜을 사용한다
  1. SNMP
  • IP 네트워크상의 장치로부터 정보를 수집 및 관리하며, 또한 정보를 수정하여 장치의 동작을 변경하는 데에 사용되는 인터넷 표준 프로토콜이다. SNMP를 지원하는 대표적인 장치에는 라우터, 스위치, 서버, 워크스테이션, 프린터, 모뎀 랙 등이 포함된다

  1. .Xsession: 사용자가 로그인할 때 실행되는 스크립트로, 사용자가 세션을 시작할 때 실행되는 명령을 포함할 수 있습니다.
  2. .Xsetup: 일반적으로 XDM(X Display Manager)과 관련된 설정 파일로, XDM을 사용하는 로그인 화면 설정에 사용됩니다.
  3. .Xinitrc: 사용자가 startx 명령을 통해 X 윈도우 시스템을 시작할 때 실행되는 스크립트로, 사용자 정의 초기화 명령을 포함할 수 있습니다.
  4. .Xauthority: X 서버에 대한 인증 정보를 저장하는 파일로, X 클라이언트가 X 서버에 접근할 수 있도록 하는 인증 키를 저장합니다.

Xlib
C언어로 구현된 클라이언트 라이브러리로 X 서버와 대화를 해주는 역할을 한다. Xlib 는 저수준의 인터페이스로 키보드나 마우스에 대한 반응 등의 단순한 기능만을 가지고 있다. 최근 X.org에서는 XCB(X protocol C-language Binding) 로 대체하여 사용한다.

XCB
Xlib와 비교하여 향상된 쓰레딩 기능을 지원하고 확장성이 뛰어나다. 또한 라이브러리 크기가 작고 단순하며 직접 X 프로토콜에 접근도 가능하다.

ip주소의 확장이지 클래스가 확장되진 않음.

0번이 첫번째 디스플레이이므로 1번이 2번째 디스플레이입니다.

반가상화 : Xen
전가상화 : 하드웨어 - KVM(red hat), 소프트웨어 - VirtualBox(오라클)

○ LVS(Linux Virtual Server, 부하분산) 클러스터

  • 실제 서버를 통해 IP 로드 밸런스를 맞추기 위한 통합된 소프트웨어 구성 요소 모음

○ HA(High Availability, 고가용성) 클러스터

  • 긴 시간동안 지속적으로 운영이 가능한 시스템이나 컴포넌트를 가리킨다. 고가용성 클러스터는 로드밸러서와 백업 시스템을 이용하여 지속적인 서비스를 제공한다

○ HPC(High Performance Computing, 고가용성) 클러스터

  • 고성능의 계산 능력을 제공하기 위한 목적으로 여러대의 컴퓨터를 병렬로 묶어서 슈퍼 컴퓨터를 제작하는 방식

quotacheck - 쿼터 사전 준비 및 점검
edquota - 쿼터 설정
quotaon - 쿼터 사용 활성화

chown 명령어는 소유권 변경 명령어
사용법은 변경될 소유자명, 변경될 그룹명, 파일명

r 파일 내용을 볼 수 있는 권한 디렉터리 내부의 내용을 볼 수 있는 권한

w 파일의 내용을 수정할수 있는 권한 디렉터리 내부에 파일 생성 및 삭제 할 수 있는 권한

x 파일의 내용을 실행시킬 수 있는 권한 디렉터리 내부로 접근 할 수 있는 권한

du 디렉토리의 디스크 사용량 확인
df 디스크 전체 사용량 확인
fdisk 파티션 확인/편집

loop는 iso파일 마운트에 쓰입니다

umount : 리눅스 파일시스템 마운트 해제
unmount : 존재하지 않는 명령어
eject : 이동식 매체(주로 CD-ROM)의 마운트를 해제하고 장치를 제거하는 리눅스 명령어
fsck : 리눅스 파일 시스템을 검사하고 수리하는 명령어

umask 는 부여되지 않을 권한을 의미하고, umask -S 는 부여될 권한을 의미합니다.
즉 umask -S --> u=rwx, g=rwx, o=rw 의 의미는 umask=002 를 의미합니다.
해당 보기 박스를 보고 umask가 775가 아닌 002라는 것 을 캐치하셨어야합니다.
그 뒤 파일 기본 허가권인 666과 002를 AND연산하면 664가 도출됩니다.
이는 -rw-rw-r-- 입니다.

쉽게 말해서 디렉터리 권한을 파일권한으로 옮길 때 어떻게 할거냐는것 umask만 있으면 002가 답이었겠지만 -S가 붙어서 그렇게됨

chsh -l : 사용자가 사용 가능한 셸의 종류 확인

("-l"을 "-list"로 생각하면 쉬움. 문제에서 요구하는 것은 "여러 셸의 리스트"가 아닌 "단 한가지의 셸"을 확인하는 방법임)


  1. bash : GNU 프로젝트를 위해 브라이언 폭스가 작성한 유닉스 셸, 현재 리눅스의 표준 셸
  2. csh (C Shell) : 1978년 버클리 대학의 빌 조이가 개발한 것으로 C언어를 기반으로 만들어짐
  3. tcsh : 확장 C shell, 명령행 편집 기능 제공
  4. ksh (Korn Shell) : 1983년 AT&T사의 벨 연구소에 근무하던 데이비드 콘이 개발

1.echo /etc/shells : "echo"는 인수로 지정된 문자열을 화면에 그대로 출력. 메아리(에코)라고 볼 수 있음.
ㄴ실행 결과 : /etc/shells (echo뒤에 작성한 문자열이 그대로 출력.문자열을 출력한 것 뿐, 셸의 목록을 출력한것X)

2.echo SHELL:,뒤의문자열앞에"SHELL : 단, 뒤의 문자열 앞에 ""가 붙어있는 경우는 "$"뒤에 나오는 이름의 환경변수를 인수로 지정한다.
ㄴ실행 결과 : /bin/bash (SHELL이라는 변수를 실행한 값을 나타냄, !!현재 사용중인 쉘이 출력!! )

3.cat $SHELL : cat 명령 뒤에 파일 이름을 입력하면 그 파일의 내용을 출력함.
ㄴ실행 결과 : 셸의 목록은 안뜨고 뭐가 막 많이 뜸

4.cat /etc/shells : 사용할 수 있는 쉘의 종류를 확인하려면 /etc/shells 파일을 출력해보면 된다.
ㄴ실행 결과 : /bin/csh /bin/sh /usr/bin/es ...(생략)

user=lin : [환경변수]=[환경변수내용], "user"라는 변수에 "lin"이라는 문자열을 넣는다.
echo $user : "user"라는 변수를 호출해 변수내용을 출력.

만약 echo $USER 명령어였다면 현재 접속중인 계정명인 ihduser가 출력값으로 나온다.

alias 명령어는 단축키(명령어)를 설정하는 역할을 한다.
단축 명령어 설정 형식 : alias "단축명령어"="명령어"

ps (process status)

  • 동작중인 프로세스의 상태를 출력해주는 명령

a : 터미널과 연관된 프로세스 출력(x옵션과 연계하여 모든 프로세스를 출력 할때 사용,BSD계열)
u : 프로세스 소유자 기준으로 출력
x : 데몬프로세스처럼 터미널에 종속되지 않는 프로세스 출력

BSD 계열옵션은 "-"를 사용하지않음

[ps aux명령 실행시 출력내용]

USER - 터미널과 연관된 프로세스(사용자) 출력(BSD)
PID - 프로세스 식별번호
%CPU - CPU 사용비율(BSD)
%MEM - 메모리 사용비율(BSD)
VSZ - K 단위 또는 페이지 단위의 가상메모리 사용량.
RSS - 실제메모리사용량(Resident Set Size)
TTY - 프로세스와 연결된 터미널
STAT - 현재 프로세스의 상태
START - 프로세스의 시작시간 또는 날짜
TIME - CPU 사용 시간
COMMAND - 프로세스의 실행 명령

1.컨트롤 + c 의 시그널
2. 프로세스 종료 시그널
3. 프로세스 중지 시그널
4. 컨트롤 + z 할때 발생하는 시그널
(프로세스는 대기)

번호시그널 이름풀네임(영문)의미 요약
1️⃣SIGINTSignal InterruptCtrl + C 입력 시 발생. 현재 실행 중인 프로그램을 강제로 종료
2️⃣SIGTERMSignal Terminate정상 종료 요청 시 사용되는 신호. 우아하게 종료할 수 있는 기회 줌
3️⃣SIGSTOPSignal Stop (force)무조건 중단. 다시 시작할 수 있지만, 무시할 수 없는 정지 신호
4️⃣SIGTSTPSignal Terminal StopCtrl + Z 입력 시 발생. 일시 정지 (백그라운드로 보내짐)

m: top 출력 상단의 메모리 항목 on/off
t : top 출력 상단의 프로세스와 cpu on/off
p : 옵션에서 나오며 옵션으로 지정된 프로세스 ID들만 보여줌
k: kill 명령

"명령어 실행" = fork → exec의 조합이지, exec 단독 수행은 아님!

crontab은 리눅스에서 예약 작업(예: 특정 시간에 자동 실행)을 설정할 수 있게 해주는 명령어예요.

명령어의미
crontab -r예약된 작업(crontab) 설정 바로 삭제 (⚠ 묻지 않음)
crontab -i -r 또는 crontab -ir예약된 작업 삭제 전 사용자에게 확인함
crontab -e예약 작업 편집
crontab -l예약 작업 목록 보기

nohup

  • 사용자가 로그아웃 하거나 작업중인 터미널 창이 닫혀도 실행중인 프로세스를 백그라운드 프로세스로 작업할 수 있는 명령어
  • 실행 프로세스의 표준출력과 표준 에러를 nohup.out 파일에 저장한다

top은 네트워크 포트 정보나 8080과 같은 포트 기반 네트워크 상태는 알 수 없어요.

그런 정보는 netstat, ss, lsof, nmap 같은 명령어로 확인해야 해요.

또한 -p 옵션은 포트가 아니라 PID(프로세스 ID)를 지정하는 옵션이에요.

위의 해설이 애매하게 설명되있어서 정확히 풀어서 설명드릴게요
i:현재 커서 앞에 삽입하면서 입력모드전환 / I: 현재커서가 위치한 줄의 맨 앞에 삽입하면서 입력모드전환

a:현재 커서 뒤에 삽입하면서 입력모드전환 / A: 현재커서가 위치한 줄의 맨 뒤에 삽입하면서 입력모드 전환

o:현재 커서가 위치한곳의 아래줄에 삽입하면서 입력모드 전환 / O: 현재커서가 위치한곳의 윗줄에 삽입하면서 입력모드전환

set nu : 줄번호 표시 설정
set nonu : 줄번호 표시 해제
set ai : 자동 들여쓰기옵션, 윗라인에 맞춰 같이 자동으로 들여쓰기 해준다.
set ic : 검색 패턴 사용 시 대소문자 구별 X
set sm : 소스 코딩 작성 중 괄호를 닫을 때 어디에 있는 열기 괄호와 연관 되어있는지 표시

① 입력 모드 - i, a, o, I, A, O를 누른 후 텍스트를 입력할 수 있는 상태

② 명령 모드(Esc모드) - ESC키를 누른 상태

③ 콜론 모드(Ex모드) - ESC키를 누르고, :(콜론)을 입력한 상태

configure는 소스파일에 대한 환경설정을 해주는 명령어다.(configure뒤에 옵션을 넣음)
서버환경에 맞쳐 makefile을 생성해주는 과정이다.
소스를 사용할 컴퓨터와 사용자의 환경에 맞게 내 컴퓨터는 어떤 기종이고 컴파일에 필요한 시스템 파일들은
어디에 위치해 있으며, 어떤곳에 설치를 하겠다고 지정을 하는 것이다.

예)
'# ./configure --prefix = /usr/local/mysql 하게 되면 어떤 파일을 /usr/local/mysql 이라는 곳에 설치 하겠다는 뜻.

rpm -qa 패키지명 : 설치 확인
rpm -qf 파일경로(절대경로) : 파일을 포함하는 패키지 조회
rpm -ql 패키지명 : 특정 패키지에 포함된 파일을 확인
rpm -qi 패키지명 : 패키지 정보 조회
rpm -qc 패키지명 : 패키지와 관련된 설정 조회
rpm -V 패키지명: 파일이 침입자에 의한 권한 획득이나 변조되었는지 검사

P가 맨 끝에 있으면 프로토콜

SCSI 스캐너 : /dev/sg0, /dev/scanner
USB 스캐너 : /dev/usb/scanner, /dev/usbscanner

cdparanoia(CD 파라노이아)는 유닉스 계열 및 BeOS 운영 체제용 콤팩트 디스크 리핑 소프트웨어이다.

alsamixer는 ALSA사운드카드 오디오 믹서 프로그램이다

alsactl은 ALSA사운드카드를 제어하는 명령어로, 사운드장치를 초기화할 수 있다

고수준 : Xt, Xaw, Motif, FLTK, CTK+, Qt, TK, SDL
저수준 : Xlib, XCB

MTK, ATK 같은건 없음 개같은 문제임 이건


KDE에서 explorer는 아님

사용자 로그인 및 세션 관리
[ XDM ][ GDM ] [ KDM ]
디스플레이 매니저 런레벨 3은 텍스트 모드입니다.
4번은 xstart 입니다.

윈도우 매니저 = 윈도우 창 배치와 표현을 담당
디스플레이매니저 = 원격연결 관련 프로그램. xdm, kdm, gdm 같은거

  1. evince (에빈스) : 멀티 페이지 문서 뷰어 프로그램으로 PDF, PS, EPS 등의 형식을 지원한다.
  2. kdegraphics : KDE는 Kool Desktop Environment의 약자로, 전세계적인 오픈소스 소프트웨어 커뮤니티.
  3. Totem : 우분투 기본 제공 동영상 플레이어
  4. GIMP : (GNU Image Manipulation Program) 리눅스에서 사용 가능한 포토샵 같은 프로그램

<IPV4 사설IP주소 범위>
A클래스 : 10.0.0.0 ~ 10.255.255.255
B클래스 : 172.16.0.0 ~ 172.31.255.255
C클래스 : 192.168.0.0 ~ 192.168.255.255

OSI 7 계층

  • (7) 응용 계층 : HTTP, FTP, DNS, Telnet, DHCP
  • (6) 표현 계층 : ASCII, MPEG, JPEG, MIDI
  • (5) 세션 계층 : SSH, TLS, NetBIOS
  • (4) 전송 계층 : TCP, UDP, ARP
  • (3) 네트워크 계층 : IP, IPX
  • (2) 데이터 링크 계층 : MAC, Ethernet, FDDI
  • (1) 물리 계층 : Ethernet, RS-232C

물리 - 데이터링크 - 네트워크 - 전송계층
bit - frame - packet - segment

참고로 5계층~7계층 까지는 data로 같고 5계층만 data 외에 message도 사용한다 정도만 그냥 알고만 계시면 됩니다.

T568B가 많이 쓰입니다. 흰색은 젤 첨에 나오고 한개 건너뛰고 흰이 붙으니깐, T568은 흰주주 녹파파 녹갈갈 이렇게 외우시고 T568A를 물어보면 T568B에서 주 대신 녹으로 바꾸면 됩니다.

SMTP : 이메일을 전송할 때 사용하는 프로토콜
POP3 : 이메일을 수신할 때 사용하는 프로토콜
MAP : POP3와 마찬가지로 이메일을 수신할 때 사용하는 또 다른 프로토콜
SNMP : (Simple Network Management Protocol) 네트워크 관련 프로토콜, 메일 관련 X

  1. ssh : Secure Sell의 약어로 원격작업을 가능하게 해주는 프로그램 혹은 프로토콜. 이름처럼 암호화 기법을 사용함
  2. nfs : 공유된 원격 호스트의 파일을 로컬에서 사용할 수 있도록 개발된 파일 시스템
  3. samba : 윈도우를 사용하는 PC에서 리눅스 또는 유닉스 서버에 접속하여 사용하게 도와주는 프로그램
  4. telnet : 인터넷이나 로컬 영역 네트워크 연결에 쓰이는 네트워크 프로토콜

ipconfig는 윈도우 ip주소 확인명령

/etc/sysconfig/network
네트워크사용유무지정, 호스트명설정, 게이트웨이주소설정, 게이트웨이장치파일설정,
도메인이름등이기록되는파일

/etc/sysconfig/network-scripts
네트워크 인터페이스 환경설정과 관련된 파일들이 저장되는 곳

/etc/hosts : 호스트 이름과 IP 주소 매핑
/etc/resolv.conf : DNS 서버를 지정

  1. FTP : 파일 전송 프로토콜(File Transfer Protocol
  2. POP3 : 이메일을 수신할 때 사용하는 프로토콜
  3. IMAP : POP3와 마찬가지로 이메일을 수신할 때 사용하는 또 다른 프로토콜
  4. SMTP : 이메일을 전송할 때 사용하는 프로토콜

① IRC <-- 인터넷을 사용하여 전세계 사람들과 대화를 나눌 수 있도록 만들어진 채팅 프로그램(Internet Relay Chat)
② 고퍼 <-- 인터넷 정보검색 서비스
③ 유즈넷 <-- 인터넷을 이용하여 이야기를 나누는 토론 공간, 자유 게시판 서비스

원격을 바로 시도하고있으므로 telnet 고로 보안에 취약

  1. Tizen : 리눅스재단, 리모재단, 삼성전자, 인텔이 공동으로 개발한 모바일 및 IT기기를 지원하는 운영 체제
  2. webOS : 리눅스 커널에서 구동되는 모바일 운영 체제, 현재는 LG가 인수
  3. Bada OS : 삼성전자가 스마트폰 탑재를 위해 개발하였던 모바일 플랫폼, 현재는 개발 중단
  4. QNX : 1982년에 블랙베리서 개발한 유닉스 계열의 서버 운영 체제

Arduino(아두이노): 마이크로컨트롤러 - 외부의 기기를 컨트롤 하는데 더 유리하다.
Raspberry Pi(라즈베리 파이): 마이크로프로세서 - 외부의 신호를 받아들여 연산하는데 더 유리하다.
이탈리아 = 아두이노
영국 = 라즈베리 파이

오늘의 총평

7문제만 더 맞히자... 화이팅

profile
For the champagne

0개의 댓글