

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, 부하분산) 클러스터
○ 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.echo /etc/shells : "echo"는 인수로 지정된 문자열을 화면에 그대로 출력. 메아리(에코)라고 볼 수 있음.
ㄴ실행 결과 : /etc/shells (echo뒤에 작성한 문자열이 그대로 출력.문자열을 출력한 것 뿐, 셸의 목록을 출력한것X)
2.echo "가 붙어있는 경우는 "$"뒤에 나오는 이름의 환경변수를 인수로 지정한다.
ㄴ실행 결과 : /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️⃣ | SIGINT | Signal Interrupt | Ctrl + C 입력 시 발생. 현재 실행 중인 프로그램을 강제로 종료 |
| 2️⃣ | SIGTERM | Signal Terminate | 정상 종료 요청 시 사용되는 신호. 우아하게 종료할 수 있는 기회 줌 |
| 3️⃣ | SIGSTOP | Signal Stop (force) | 무조건 중단. 다시 시작할 수 있지만, 무시할 수 없는 정지 신호 |
| 4️⃣ | SIGTSTP | Signal Terminal Stop | Ctrl + 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

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 같은거



<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 계층

물리 - 데이터링크 - 네트워크 - 전송계층
bit - frame - packet - segment
참고로 5계층~7계층 까지는 data로 같고 5계층만 data 외에 message도 사용한다 정도만 그냥 알고만 계시면 됩니다.

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

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


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

/etc/sysconfig/network
네트워크사용유무지정, 호스트명설정, 게이트웨이주소설정, 게이트웨이장치파일설정,
도메인이름등이기록되는파일
/etc/sysconfig/network-scripts
네트워크 인터페이스 환경설정과 관련된 파일들이 저장되는 곳
/etc/hosts : 호스트 이름과 IP 주소 매핑
/etc/resolv.conf : DNS 서버를 지정


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


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



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