일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Powershell
- Spring
- git
- colab
- ChatGPT
- GoogleDrive
- Spring Boot
- OSS
- cloud
- Github
- Docker
- 크롤링 개발
- Machine Learning
- 인터넷의이해
- Database
- API
- Python
- LINUX MASTER
- KAKAO
- suricata
- 고등학생 대상
- ICT멘토링
- Kubernetes
- C언어
- 코딩도장
- 국가과제
- VSCode
- Rocky Linux
- rnn
- Resnet
- Today
- Total
코딩두의 포트폴리오
리눅스 마스터 2급 2차 정리 본문
합격 기준
시험 내용
리눅스 일반
리눅스 이해 - 리눅스의 개요, 역사, 철학
특징
① 오픈 소스 운영체제
- 소스코드 및 모든 관련 자료가 공개
② 멀티유저(다중 사용자), 멀티태스킹(다중 작업)을 지원
- 멀티유저 기능은 여러 사용자가 동시에 동일한 시스템에 접근 가능
- 멀티태스킹은 여러 개의 태스크를 동시에 실행하고, 교대로 컴퓨터의 자원을 사용할 수 있는 기능
③ 다중 스레드를 지원하는 네트워크 운영체제
- 하나의 프로세스 내에서 여러 개의 네트워크 작업을 동시에 처리할 수 있기에 강력한 네트워크 지원이 가능
- 네트워크 서버로 사용이 가능하고, 인터넷과 이더넷에 안정적으로 연결이 가능
- 웹 브라우저, 메일, 뉴스, 웹 서버 등의 모든 인터넷 서비스 가능
④ 여러 종류의 파일 시스템을 지원하는 운영체제
- 리눅스의 기본 파일 시스템인 ext2, ext3, ext4, DOS의 FAT16, Window의 FAT32, NTFS, 네트워크 파일 시스템 SMB, CIFS, NFS 등도 지원
장점
- 유닉스와 완벽하게 호환
- PC용 운영체제보다 안정적
- 하드웨어 기능을 효과적으로 사용
- 오픈소스 운영체제
단점
- 공개 운영체제이기에 문제 발생 시 기술 지원을 받는데 한계가 있음
- 한글 지원 미흡
- 보안상의 취약점 쉽게 노출될 가능성 있음
역사
[1960년대 후반]
1969년 프로젝트에 참여했던 벨 연구소 연구원 켄 톰슨이 초기 형태의 UNIX를 개발
[1970년대]
1971년 벨 연구소의 데니스 리치가 C언어를 개발함으로써, 어셈블리 언어로 되어 있던 UNIX가 C언어로 재작성
[1980년대 초중반]
1985년 리처드 스톨먼은 FSF 라는 비영리 단체를 설립 후 'GNU 선언문'을 발표
1987년 앤드루 스튜어트 타넨바움은 MINIX를 개발
[1990년대 초중반]
핀란드의 헬싱키 대학의 리누스 토발즈가 MINIX의 커널 소스를 고쳐 GNU 시스템에 적합한 커널을 개발
Command Stack
명령어 | 설명 | ex | 비고 |
umask | 파일, 디렉토리 생성 시 기본 권한 설정 |
umask 0222 (file) == 666-022 = 644 | 권한 제한 |
lsblk | (ls block) 스토리지 정보 | lsblk -옵션 | lspci - 설치된 PCI 관련 장치 목록 확인 |
blkid | (block id) 블록의 UUID | blkid/dev/sda1 | |
mount | mount A B (A를 B에 mount) | mount -o remount.rw.home | -t: 파일시스템 유형 지정 -o: 마운트 시 사용할 옵션 지정 결과: dir type .. |
umount | mount 해제 | unmount (X) | |
chsh | (일반 사용자 환경에서) 셸 변경 |
chsh [옵션] [사용자명] | -s (shell) (새로운) 로그인 셸 변경/ 다른 셸 -u (UID) User ID 변경 -l (list) 목록) 시스템에서 사용 가능 셸목록 -h (help) 도움 / 설치 옵션 확인 |
nohup | (no hang up) 세션이 종료되더라도 프로그램이 종료되지 않음 |
||
fsck | (file system check) 무결성 점검과 오류 복구 |
fsck -s 장치명 | fsck - ext4 /lost+found: 손상된 디렉터리, 파일 수정 (임시 디렉토리) |
xfs_repair | 무결성 점검과 오류 복구 | xfs_repair - XFS | |
mke2fs | 파일 시스템 포맷 (변경) | mke2fs -j /dev/sdb1 mke2fs -t ext4/dev/sdb1 |
-t: 파일 시스템 지정 -o: 마운트할 옵션 지정 |
mkfs | 파일 시스템 포맷 (생성) | mkfs.xfs |
리눅스 운영 및 관리
파일 시스템 관련 명령어 - 권한 및 그룹 설정, 파일 시스템의 관리
ls 명령어
파일이나 디렉터리에 부여된 Set_UID, Set_GID와 같은 특수 권한 확인
권한
- rw-r-r--. 1 root grp 45 10월 11 13:44 tmp.txt
|영역|설명|
|--|--|
|- |파일유형 -:일반 파일, c: 문자 파일 ...|
| rw-r-r--. | 허가권 (사용자 - 그룹 - 제3자)|
|1 |링크 수|
|root | 소유자명|
|grp | 그룹명|
|45 |파일 크기|
|10월 11 13:44 | 최종 변경 시간
|tmp.txt| 파일명|
소유권 / 파일,디렉토리
명령어 | 설명 | ex | 비고 |
chown | 사용자/그룹 소유권 변경 | chown 소유자:그룹 파일명 | 루트 권한 필요 |
chgrp | 그룹 소유권 (only) 변경 | chgrp -c GROUP명 파일명 chown -R project /project |
-R (-r 옵션은 없음) -h (옵션 없이 심볼릭 링크 파일 바꿀 시 원본 파일 변경 |
허가권 (rwxrwxrwx)
명령어 | 설명 | ex | 비고 |
chmod | 파일/디렉토리 허가권 변경 | chmod g -R /dir chmod o=r -> other에 r(읽기) 권한만 부여 |
-R (recursive) |
umask | 기본 허가권 지정 | umask -S 022 -> 파일 666, 디렉터리 777 | |
SetUID | 소유자(사용자) 실행 권한에 UID 지정 | 둘 다 보안에 취약 |
|
SetGID | 그룹 실행 권한에 GID 설정 | ||
Sticky | 특정 디렉토리의 파일 삭제 권한 제 3자 실행 권한에 설정, a=w 이면 소유자/root 아니면 삭제 불가 |
Sticky-Bit 특정 디렉토리를 공유 디렉토리로 사용 stick bit은 사용자(u), 그룹(g)에 적용 X |
w권한 - 파일 생성, 수정, 삭제
사용 모드 ( 사용자 - 그룹 - 제3자 ) / +
r w x
4 2 1
ex)
리눅스 기본 허가권 - 파일(666) / 디렉터리(777)
.txt 파일은 파일 -> 666
666 - 664(-rw-rw-r--) =0002
사용 기호 ( ex- chmod g+r lin.txt)
사용자 | 연산자 | 권한 |
u/g/o/a | +-= | rwx |
user/group/other/all | - | - |
all(모든 사용자) - 소유자, 그룹, 다른 사용자 모두 포함
x (실행) 권한부여
ext/xfs
ext - 리눅스 최초의 파일 시스템
ext2 - ext의 후속 버전
ext3 - 저널링 기능 도입
ext4 - ext3의 개선 버전
xfs - 고성능, 고확장성을 지닌 저널링 파일 시스템
Command of Disk Quata
명령어 | 설명 | ex | 비고 |
df | (free) 디스크 사용 (남은)가능용량 - 분할된 파티션 단위 |
df -sh /home/USER | |
du | (used) 디스크 사용된 용량 | df -sh ~USER | |
fdisk | 파티션 생성/수정/제거/유형지정 | fdisk [옵션] [장치명] fdisk -l : 현재 디스크의 파티션 테이블 정보 t : 파티션 속성 변경 |
n(new), w(write), q(quit), x(expert), d(delete) [파티션 속성 변경 값] Swap(82) / Linux(83) / LWM(8e) / Raid(fd) |
quota | 디스크 사용량 제한 및 현재 사용량 | quota USER | |
quotaon | quota 실행 | ||
edquota | (edit quota) 쿼터 설정/변경 텍스트 편집기(인터페이스) 제공 |
edquota [옵션] [사용자/그룹명], edquota 사용자명 | 짧음 |
setquota | (텍스트 편집기 X) 쿼터 설정/변경 | -u | |
repquota | 쿼터 요약하여 출력 | ||
xfs_quota | Centos 7에서 사용자의 디스크 사용량 제한 | xfs_quota -x -c 'limit bsoft=100m USER명 /home | -x -c |
usrquota | 사용자 할당량 | ||
userquota | /etc/fstab의 옵션 값 | ||
blkid | uuid 확인 | uuid: 파티션 고유 번호 | |
mount | 사용자, 그룹 쿼터 활성화 | sudo mount -o usrquota,grpquota /dev/sda1 /mnt | sudo: 특정 명령어 실행 시 루트 사용자 권한 |
xfs.fsck -> CentOS에서 사용 X
파일들
파일명 | 설명 | 비고 |
/etc/mtab | 현재 시스템에 마운트된 파일 시스템 정보 | /proc/self/mounts |
/etc/mounts | /etc/mtab/에 현재 마운트된 파일 시스템 정보 (가상 파일) | |
-- | -- | |
/etc/fstab | (file sys table) 부팅 시 시스템의 마운트 정의 | /dev/sdb1 /home ext3 |
/etc/mounts | ||
/etc/shells | 사용 가능 셸 목록 | |
/etc/passwd | 사용자 계정 정보, 로그인 셸 정보 | 필드1 (사용자명) 필드2 (패스워드) 필드3 (사용자 uid) 필드4 (사용자 gid) 필드5 (사용자 이름) 필드6 (사용자 홈 디렉토리) 필드7 (사용자 로그인 쉘) |
-- | -- | |
~/.bashrc | 개인 사용자 alias, 함수 | |
~/.bash_profile | 개인 사용자 환경변수 | |
etc/bashrc | 모든 사용자 alias, 함수 | |
/etc/profile | 모든 사용자 환경변수, 시작 설정 | |
-- | -- | |
/etc/hosts | domain - IP / 가상의 도메인 설정 (매핑) | 별칭 부 |
/etc/resolv.conf | domain - IP alias 네임스페이스 IP / DBS 서버 목록 / 도메인 이름 -> IP 변환 |
|
-- | -- | |
/etc/services | 네트워크 프로토콜에 할당된 포트 번호 | |
/etc/sysconfig/network | 기본 게이트웨이, 호스트 이름, 네트워크 허용 여부 등 | |
~/.bash_history | 로그인 후 입력한 명령들 저장되는 파일 | |
/usr/bin/passwd | 특수 권한이 설정된 파일 | /bin - 기본적인 명령어 /sbin - 시스템 관리를 위한 명령어 |
/etc/inittab | 부팅 모드 설정 (X윈도 실행) |
리눅스 부팅 시 커널 init 1 프로세스 실행 / fork 형태로 복사
*/etc/fstab 출력 결과
[fs 장치명] [마운트포인트] [fs 유형] [fs 옵션] [dump 1-가능/0-불가능] [점검 0-X/1-루트/2-일반]
4번째 필드 == 마운트 옵션 정보 ex) noexec
<dump 명령> - 0(사용 안함) / 1(매일 수행) / 2(2일에 한 번)
Shell - 개념 및 종류, 환경설정
Command /file of Shell
명령어 | 설명 | ex |
chsh | 셸 변경 | -s (shell) 로그인 셸 변경 -u (UID) User ID 변경 -l (list) 목록 |
ps | 현재 실행 process / 로그인 후 이용 중 셸 확인 ps -l : 우선순위값 확인 |
|
/etc/shells | 사용 가능 셸 목록 | |
export | 환경변수 설정 | |
set | 로컬 셸 변수 (전부)조회 | set -o: 쉘 옵션 활성화(설정) set +o: 쉘 옵션 비활성화(설정 해제) |
unset | 셸 변수 해제 | |
env | 글로벌 셸 변수 전부 조회/등록 | |
printenv | 시스템 환경 변수 출력 | |
alias | 명령어 별칭 추가 | 자주 사용하는 명령어를 특정 문자로 입력 |
unalias | ls 명령어에 설정된 alias 해제 | unalias ls |
~/.bashrc | 개인 사용자 alias, 함수 | |
~/.bash_profile | 개인 사용자 환경변수 | |
etc/bashrc | 모든(전체) 사용자 alias, 함수 | |
/etc/profile | 모든(전체) 사용자 환경변수, 시작 설정 | |
~/.bash_history | 로그인 후 입력한 명령들(기록) 저장되는 파일 | cast -user명/ .bash_history |
history | 최근 명령어 N개 출력 | history 5 |
!! | 가장 최근(마지막) 명령 재실행 | |
!?al | 최근 실행 중 'al' 문자열을 포함하는 명령 실행 | |
!!al | 직전 실행 중 al 문자열 | |
!*al | 현재 명령 라인의 모든 단어를 포함하는 명령 실행 | |
!5 | 히스토리 5번 해당 명령 |
전역 변수
변수 | 설명 | 비고 |
SHELL | 로그인 시 부여받은 셸 정보 | echo $SHELL |
LANG | 언어 변수 | en_US, UTF-8 |
PS1 | 주 프롬프트, 사용자명, 호스트명, 현재 디렉토리 셸 프롬프트 선언 시 사용 |
해당 유저, 호스트 도메인 정보 알리는 프롬프트 변경 |
PS2 | 보조 프롬프트, 명령행 연장 | \ 2차 프롬프트 변경 |
PROMPT | 현재 프롬프트의 형식 지정 | |
USER | 사용자 명 | echo $USER != echo $user |
ex) | $USER 이므로 현재 사용자 ihduser 출력 | |
HISTSIZE | history 크기 지정, 개수 확인 | |
HISTFILESIZE | history 파일 크기 | |
HISTORY | 명령어 최근 개수만큼 | |
메일 관련 파일 | ||
MAILCHECK | 메일 확인 시간 |
명령행 히스토리 기능 - 사용한 명령어 확인
역사
- sh (Bourne Shell, 1979년): 유닉스 기본 셸로 사용됨.
- csh (C Shell, 빌 조이, 1978년): C 문법을 따름 / 히스토리, alias, 작업 제어 등
- tcsh (TENEX C Shell, 1980년대): csh의 확장판으로 자동 완성 및 히스토리 기능 강화.
- ksh (Korn Shell, 1983년): Bourne Shell 기반, C 셸 기능 통합.
- bash (Bourne Again Shell, GNU, 1989년): 리눅스 배포판에서 기본 셸로 사용됨.
- zsh (Z Shell, 1990년대): 고급 기능과 사용자 커스터마이징을 제공하는 셸.
- dash (Debian Almquist Shell, ash의 경량 버전): 주로 /bin/sh에 사용, POSIX과 호환, history 명령 지원 X
sh - csh - tcsh - ksh - bash - zsh - dash
프로스세 관리 - 개념 및 유형, 프로세스 Utility
Command / file of 프로세스
명령어 | 설명 | ex |
% | 백그라운드 작업을 종료 | kill %2: 2번 bg proc 종료 |
명령어 & | 명령어를 백그라운드 프로세스로 실행 | |
kill -l | 시그널 번호 확인 | 시그널은 프로세스 간 메시지 통신 시 이용 |
kill | 종료 + PID / 명령어 뒤에 옵션 없을 시 디폴트 값인 15번 | kill 1023 |
killall | 종료 + 프로세스명 | |
ps | fg+bg+daemon 확인 / 현재 실행중인 프로세스 상태 |
|
pstree | ps인데 트리 구조로 보여줌 | |
bg | bg process 재개 / 백그라운드로 전환 | |
jobs | 현재 셸에서 실행 proc 특정 사용자가 백그라운드로 실행중인 프로세스 확인 |
|
fork | 새로운 프로세스를 원래의 프로세스의 자식 프로세스로 관리(복제) | 복사본 |
exec | 셸 스크립트가 다른 프로세스로 대체 | |
top | 모니터링, 실시간 확인 | |
nice | 프로세스의 NI값 설정 | nice -n 10 [프로세스명] |
renice | NI값 재설정 | renice -10 10648 [PID] |
-- | -- | |
ctrl + z | 일시 중지, SIGSTSP(20) | |
ctrl * d | 현재 터미널 세션 종료 (로그아웃 원할 시 사용) | |
ctrl * \ | 종료, SIGQUIT(3) |
PID 1 = 시스템의 핵심이 되는 초기화 프로세스
PID 0 = 특별한 목적을 가진 프로세스 / idle 프로세스 나타냄 / 어떠한 작업 x -> CPU 점유
Kill (kill + PID, killall + 프로세스명)
%: 백그라운드 작업을 종료 ex) kill %2: 작업 번호 2번인 백그라운드 프로세스 종료
-l: 시그널 번호 확인 옵션
SIGNAL 이름, 번호
SIGHUP (1): 터미널 연결 끊김 또는 데몬 재시작 신호
SIGINT (2): 인터럽트 신호 (보통 Ctrl + C로 생성)
SIGQUIT (3): 종료 신호 (코어 덤프 생성) ctrl + \
SIGILL (4): 불법 명령어 실행 (코어 덤프 생성)
SIGTRAP (5): 트랩(디버거에서 사용) (코어 덤프 생성)
SIGABRT (6): 프로세스 중단 신호 (보통 abort 함수 호출로 생성) (코어 덤프 생성)
SIGBUS (7): 버스 에러 (잘못된 메모리 접근) (코어 덤프 생성)
SIGFPE (8): 부동소수점 예외 (코어 덤프 생성)
SIGKILL (9): 강제 종료 신호 (프로세스가 무시할 수 없음)
-> ex) 프로세스 식별번호 2219, 222, 2238인 프로세스 강제 종료 --> kill -9 22{1,2,3}9
SIGUSR1 (10): 사용자 정의 신호 1
SIGSEGV (11): 잘못된 메모리 접근 (세그멘테이션 폴트) (코어 덤프 생성)
SIGUSR2 (12): 사용자 정의 신호 2
SIGPIPE (13): 파이프 쓰기 에러 (리더가 없는 파이프에 쓰기)
SIGALRM (14): 타이머 신호 (일정 시간이 경과했음을 알림)
SIGTERM (15): 종료 신호 (정상적인 종료 요청)
SIGCHLD (17): 자식 프로세스 종료 시 부모 프로세스에 알림
SIGCONT (18): 중지된 프로세스를 재시작
SIGSTOP (19): 프로세스 일시 중지 (무시할 수 없음)
SIGTSTP (20): 터미널에서 중지 (보통 Ctrl + Z로 생성)
SIGTTIN (21): 백그라운드 프로세스가 터미널 입력을 읽으려 할 때
SIGTTOU (22): 백그라운드 프로세스가 터미널 출력을 쓰려 할 때
SIGURG (23): 소켓에 긴급 데이터가 도착했음을 알림
SIGXCPU (24): CPU 시간 초과 (코어 덤프 생성)
SIGXFSZ (25): 파일 크기 초과 (코어 덤프 생성)
SIGVTALRM (26): 가상 타이머 신호 (가상 시간 초과)
SIGPROF (27): 프로파일링 타이머 신호 (프로파일링 시간 초과)
SIGWINCH (28): 윈도우 크기 변경
SIGIO (29): I/O가 가능함을 알림
SIGPWR (30): 전원 실패 신호
SIGSYS (31): 잘못된 시스템 호출 (코어 덤프 생성)
PS
System V: ps -ef
ps -A : System V 계열에서 모든 프로세스를 출력
BSD: ps aux (실행중인 모든 프로세스 확인)
유형: fg / bg / daemon(3)
fg : 백그라운드 -> 포어그라운드로 전환
bg (ctrl +z) : 포어그라운드 -> 백그라운드 전환 시 실행중인 작업 일시 중지 후 ctrl+z
daemon : (백그라운드에서 실행) 주기적, 지속적인 서비스 요청을 처리하기 위해 계속 실행되는 프로세스
- Standalone: 메모리에 상주(대기)하다가, 요청 시 즉각 처리 (빈번 요청 서비스에 적합, 서버 부하됨)
- (x)inted: 잠자다가, 요청 시 구동 (메모리 관리에 좋음) / rlogin, rsh 등 자주 사용되지 않는 서비스 포트 리슨
STAT 코드
R (Running) - 실행 중
S (Sleeping) - 대기 중
T (Stopped) - 일시 중지
Z (Zombie) -부모 프로세스가 종료 상태 수집 X
H - 다중 스레드
N - 낮은 우선순위
< - 높은 우선순위
> - nice 명령에 의해 낮아진 우선순
*centOS7 리눅스에서는 부팅 시 systemd (PID 1)
~ centos6 -> eth0..eth1..
centos7 ~ -> enp0s3
NI 번호 (우선순위) nice + 명 / renice +PID
사용자 - NI / 커널 - PRI
--> ps -l 옵션을 써야 확인 가능
-20 ~ 19
nice --10 [프로세스명] (-10으로 설정)
nice bash bash 셸의 프로세스 ni값 10 ↑ == 우선순위↓
|renice| PID로 NI값 재설정 |renice -10 10648|
ex) -10으로 우선순위 설정 (명/pid 1222)
cron
7필드
[분] [시] [일] [달] [요일(0-일 ~ 6) [사용자] [명령어]
매주는 **이 두개
/ step values
* range
, list
- /var/spool/cron/에 위치
- 각 계정마다 사용 가능 /주기적인 작업 용도에 사용
ex) 5분 주기 -> */5
ex)
* * * * * 1분마다
30 * * * * 매 시 30분마다
0 0 10 * * 10일 00:00 마다
* * 10 * * 10일에 1분마다
0 0 10 4 * 4월 10일 00:00 마다
ex)
0-59/10 * * * * 10분마다
에디터 - 에디터의 종류, 에디터 활용
Command / file
명령어 | 설명 |
.exrc | vi 에디터 환경 설정 |
vi 편집기
ex) /etc/hosts 파일을 열면서 ihd라는 문자열이 있는 위치에 커서를 둔다
-> vi +/ihd /etc/hosts
검색 모드
/ : 검색어 입력
n : 다음 위치
N : 이전 위치
:^ : (Shift + 6) 맨 앞
:$ : (Shift + 4) 맨 뒤
편집 모드
c : 변경 명령 (특정 명렁어 실행)
cw : 변경 명령 of word
r : 하나의 문자를 다른 문자로 교체 / 스왑 파일 목록 확인
R : 읽기 전용 모드
p : paste
u : 명령 모드에서 바로 직전에 삭제한 줄 다시 복사
dd : 라인 잘라내기
x : 문자 잘라내기
yy : copy (현재 줄을 버퍼로 복사) -> 여러 줄 복사 시 Nyy
전환 모드
:a : 커서 한 칸 뒤로 -> 편집 모드
:i : 커서 해당 위치 -> 편집 모드
o : 커서 다음 줄 -> 편집 모드
e는 x
특정 모드 (지정 / 복구)
vi -r line.txt -> (recover) 파일 복구
vi $ line.txt -> 커서, 줄의 맨 끝
vi - line.txt -> 커서, 줄의 맨 앞
vi + line.txt -> 맨 끝 줄
vi +10 line.txt1 -> 10번째 줄
ex 명령모드
w - 작업중인 내용을 저장
w 파일명 - 지정한 파일명으로 저장
wq - 변경된 내용을 저장하고 종료
q - 수정사항 무시하고 저장x, 강제종료
커서 키가 없는 자판 이용 시
- h : 한칸 왼쪽으로
- l : 한칸 오른쪽
- k : 한줄 위로
- j : 한줄 아래로
환경설정
set ai: 자동 들여쓰기 옵션 윗 라인에 맞춰 같이 자동으로 들여쓰기
set ic: 검색 패턴 사용 시 대소문자 구별 X
set list: 눈에 보이지 않는 특수문자 표시
치환
(1) % s/linux: 찾을 패턴linux.` : 대체 문자열
ex) windows라는 문자열 -> linux 치환 --> % s/windows/linux/g
(2) % s/^linux
: 라인 끝<: 단어 시작>` : 단어 끝
(3) % s/\<linux/Linux/g
(linux (단어) -> Linux)
\< : 문장 어디에 위치하든
vim
vi 편집기의 향상된 버전의 텍스트 편집기
행 번호 자동으로 표시 -> .vimrc 파일
~/.exrc (vi, vim 텍스트 편집기에서 사용되는 설정 파일) / 환경 설정
set ~~
ai (autoindent) 자동으로 들여쓰기, 행 바꿈 / 새로운 줄에서 바로 윗줄의 시작 열과 같은 위치에 커서 위치시킴 sm (showmatch) 괄호 하이라이트 nu (number) 줄(행)(라인)번호 nonu (no number) ts (tab stop) 탭 간격 조절 ic (ignore case) list 눈에 보이지 않는 특수문자 |
텍스트 환경 기반의 콘솔 에디터 - vi, pico, emacs
편집기 개발자
- vi - 빌)(vi) 조이
- emacs - 리(e)처드 스톨만 / 제임스 고슬링이 LISP 언어 기반으로 기능 추가
편집기 옵션
- vim - 브람(m) 브레나르
- IDLE - 귀도 반 로섬
vi -> (pico -> nano) -> gedit
pico: 오픈소스 라이선스 x(아보일 카사르) / nano: (GNU) pico의 복제판
*kwrite, gedit: X윈도우에서만 사용 가능
소프트웨어 설치 - 개념 및 사용법, 소프트웨어 설치 및 삭제
패키지 관리 도구
명령어 | 온라인 / 오프라인 | 리눅스 계열 | ex 및 설명 |
.exrc | vi 에디터 환경 설정 | ||
dnf | 온라인 | 페도라 | 페도라도 레드햇 계열 |
zypper | 온라인 | 수세 | |
apt-get | 온라인 | 데비안 | apt-get purge vsftpd: vs ftp d 패키지 + 환경 설정 파일 제거 |
Yast | 오프라인 | 수세 | |
rpm | 오프라인 | 레드햇(m) | rpm -d nmap --nodeps |
yum | 오프라인 | 레드햇(m) | yum remove PKG |
dpkg | 오프라인 | 데비안 | dpkg -i tmp.deb / 기본 패키지 관리 도구 |
dselect | 오프라인 | 데비안 | 커서 사용하여 메뉴 이동, 패키지 관리 |
alien | 오프라인 | 데비안 | 다른 패키지 형식으로 변환 |
dpkg (데비안)
ex) dpkg -r cron
-r (--remove) : 제거 of 패키지
-E : 패키지가 기 설치된 경우, 설치를 무시하는 옵션
-P (--purge) : 제거 of 패키지 + 관련 설정 파일
-i (--install) : 패키지 파일 설치
-l (list) : 패키지 목록
-L [PKG] : 파일 from 패키지 목록
rpm (레드햇)
ex) rpm -e nmap --nodeps : 의존성이 있는 패키지를 제거
-f 라는 옵션은 없다~!
-e : 패키지 제거 옵션
--nodeps : 의존성 패키지 제거 옵션
-i: install
-F : freshen 업그레이드 / 기존 패키지 설치되어 있을 시
-U : upgrade 업그레이드 / 기존 패키지 설치되지 않았다면 일반적인 설치
-r : root 최상위 dir 지정
- -q : 설치여부 / 파일목록
- -qi : info / 설치된 모든 패키지 정보
- -ql : list 패키지 파일들 출력
- -qip .rpm : 패키지 파일
- -qa : all / 모든 패키지
- -qf : file 특정 파일을 설치한 패키지명 출력
- -qV : 패키지 검증
yum (레드햇)
yum [옵션] [명령어] [패키지 명]
repository에 관련 패키지 모아둔
명령어 | 설명 |
yum info [PKG] | 미설치된 pkg에 대한 정보 출력 |
yum remove [PKG] | 시스템에서 pkg 제거 |
yum list | 설치된 패키지 정보 |
yum history | 작업한 목록 정보 |
yum install epel-relase | 확장 패키지 관련 저장소 설치 |
(X) epel
(X) epel-repository
(X) epel-download
압축파일 확장자
tar
ex) tar jxvf file.bz2 압축 해제 / extratct
ex) tar jtvf file.bz2 내용 보기(리스트) / list
ex) tar cvf source.tar *.c 압축 / create
ex) tar rvf / append 아카이브의 마지막에 파일 추가
[파일확장자][공통옵션]
gzip -d 파일명: 파일 압축을 해제
gizp -l 파일명: 압축된 파일 정보 표시
gizp -v 파일명: 압축 과정을 표시
압축 효율성 좋은 순서
J(.xz) > j(.bz2) > z(.gz) > Z(compress)
공통옵션
c: create
x: 해제
t: 파일 내의 목록
v: 상세 정보 출력
f: 파일 이름 및 디렉토리 지정
p: 설치/미설치 패키지 파일 설명
-c : collect 디렉터리 묶음
-C : Change 디렉터리 변경
configure, make, make install
▶️ 프로그램을 소스 파일로 설치하는 과정
configure(Makefile 생성) → make(컴파일) → make install
PATH / 환경설정 의존성 작업 디렉터리에 설치
make clean
(소스 파일의 압출을 푼 디렉터리에서 한 번 작업한 설정이나 관련 파일을 삭제하고 다시 설정 작업을 진행할 때 사용)
ex) configure --prefix=/usr/local/apache
ex) 아파치 웹 서버 프로그램이 설치되는 디렉터리를 /usr/local/httpd2로 지정해서 운영
-> 소스 파일을 다운로드하여 디렉터리를 지정한 후에 설치
*MySQL, KDE, LMMS은 cmake로 설치함!
장치 설정 - 주변장치 연결 및 설정, 주변장치 활용
주변 장치의 종류 및 특징 (프린터 / 사운드카드 / 스캐너)
프린터
- LPRng
- BSD
- /etc/printcap
- 초기: printtool, printconf
- centOS: system-config-printer
레드햇: redhat-config-printer -> system-config-printer
2. CUPS (애플)
- UNIX
- /etc/cups
웹 서버의 Common Log Format 형태의 로그파일 제공
HTTP 기반의 IPP를 사용, SMB 프로토콜도 부분적으로 지원
CUPS 프린트 데몬의 환경 설정 파일의 기본문법인 아파치의 httpd.conf와 유사
제공하는 장치 드라이버는 어도비의 PPD 형식의 텍스트 파일 -> 이미지 파일 X
lpadmin 명령 사용
IPP(Internet Printing Protocol): 인터넷상에서 원격으로 인쇄
사운드 카드
OSS
- UNIX
- POSIX(표준 유닉스 장치시스템 콜) 기반
- hannu
ALSA
- jaroslav
- alsactl
스캐너
SANE, XSANE(GTK+)
xcam - GUI 기반의 스캐너 도구
eject - 디스크 트레이 (CD-ROM) 여는 명령
Command of 라인 프린터(lp)
계열 | 명령어 | 설명 |
BSD | lpq | 1. 프린터 큐의 상태 |
Sys V | lpstat | 1. 프린터 큐의 상태 |
BSD | lpr [OPTION][file(s)] | 2. 인쇄 작업 |
BSD | lprm | 프린터 큐 작업 삭제 |
BSD | lpc | 프린터 인쇄 가능 상태 여부 |
Sys V | lp | 프린터 작업 제출 |
Sys V | cancel | 인쇄 작업 취소 |
RAID 0, 1, 5, 6
RAID 0 (Striping) / 안전성보단 성능 위주 / 복구X
*Striping: 연속된 데이터를 여러 개의 디스크에 RR(라운드 로빈) 방식으로 기록하는 기술 / 모든 디스크 사용
RAID 1 (Mirroring)
데이터를 두 개 이상의 디스크에 미러링(복제)하여 동일한 데이터를 저장하는 방식 / 개수의 절반을 백업에 사용
RAID 5 (1 parity) (min 3)
스트라이핑 + 패리티
데이터와 패리티 정보를 여러 디스크에 스트라이핑
패리티 정보는 데이터 복구에 사용 -> 디스크 하나 장애 발생 시 데이터 복구 가능
RAID 6 (2 parity) (min 4)
스트라이핑 + 이중 패리티
RAID 5와 유사
두 개의 독립적인 패리티 블록을 사용하여 두 개의 디스크가 동시에 고장 나더라도 데이터를 복구 가능
LVM (Logical Volume Manager) - 파티션 분할
물리적 디스크 1개를 이용해서 2개의 파티션을 구성 가능
물리적 디스크 2개를 이용해서 1개의 파티션을 구성 가능
파티션의 크기를 확장해도 데이터의 손실이 발생 X
PV -> VG -> LV
(PVG - lv)
PV(Physical Volume) : 물리적 디스크 / 가장 낮은 수준의 저장공간 단위
PE (Physical Extent) : LVM 구성하는 일정한 크기, 블록 단위 / 논리적 그룹
VG (Vol Group) : PV 집합 / LV들 생성 및 관리
LV (Logical Vol) : 사용자가 필요한만큼 할당, 파티션과 같은 개념 / 실제 데이터 저장
리눅스 활용
X 윈도 - 개념 및 사용법, X 윈도 활용
X 윈도는 디스플레이 장치에 의존적이지 않고, 서로 다른 기종 함께 사용 가능
X 컨소시엄에 의해 X11 버전이 처음으로 개정되어 X11R2가 발표됨
X 윈도 서버로 사용되는 X.org에 적용된 라이선스 - MIT
프로그램
프로그램 | 설명 | 비고 |
GIMP(GTK) | image 편집 / IM보다 더 적합 | 편집기, GUI |
ImageMagick | image 편집 | 편집기, CLI |
Eog(GNOME) | image | 뷰어 |
Totem(GNOME) | video | 미디어(동영상) 플레이어 |
Evince(GNOME) | docs / PDF 문서 확인 | 뷰어 |
LibreOffice | 문서 작성, 스프레드시트, 프레젠테이션 |
부팅 시 X윈도 / 텍스트 모드
부팅 모드 확인 get-default
부팅 모드 설정 set-default
X-window : graphical.target, runlevel5 - *6000번대 포트 사용
text: : multi-user.target, runlevel3
startx: 텍스트 모드로 부팅된 상태에서 X 윈도 실행하는 명령
라이브러리
Xlib - XCB으로 대체 (C언어, X서버와 대화하는 역할, 저수준의 인터페이스)
GMWIN - 산업 자동화 시스템
KDB - Qt - KDE
GTK+ - GNOME
FLTK: 특정 데스크탑 환경과 직접 연결 X
X 클라이언트
xauth / MAC 방식으로 서버 접속
.Xauthority 키 정보
ex) xauth list $DISPLAY
xhost / IP, 도메인명을 이용해서 서버 접속
ex) xhost [옵션] [IP/도메인]
ex) xhost 192.168.5.13 -> X서버에서 이와 같은 IP 주소를 가진 X 클라이언트를 허가
+ 모두 허용
- 모두 차단
+ IP IP 허용
- IP IP 차단
매니저
윈도우 매니저
X-window 시스템의 형태를 갖추어주는 프로그램 (윈도우의 배치, 표현)
1. GNOME
- GNU Network Object Model Environment
- GNU 프로젝트에서 개발된 오픈 소스 데스크탑 환경
- GTK+ 라이브러리 기반
- 윈도우 관리자: 기본적으로 특정 윈도우 관리자에 의존하지 않으며, 사용자가 자유롭게 선택 가능
- 세션 관리자를 통해 사용자의 설정을 저장하고 유지
2. KDE
- Kool Desktop Environment
- 오픈 소스 데스크탑 환경
- Qt 툴킷 기반
- 시각적으로 풍부하고 다양한 커스터마이징 옵션을 제공하는 강력한 데스크탑 환경
- Gwenview라는 기본 이미지 뷰어 사용
3. LXDE
- Lightweight X11 Desktop Environment
- 경량 데스크탑 환경 (X 윈도 관련 X)으로, 낮은 자원 사용을 목표로 개발
- GTK 2 라이브러리 기반, 기본 윈도우 관리자로 Openbox 사용
- 저사양 PC와 모바일 기기에 적합
4. Xfce
- XForms Common Environment
- 오픈 소스 소프트웨어 데스크탑 환경
- GTK+ 2 기반, 기본 윈도우 관리자로 Xfwm 사용
- 경량성과 모듈성을 특징으로 하며, 시스템 자원을 효율적으로 사용
- 리눅스를 위한 윈도우 매니저
GNOME vs KDE
GNOME | KDE | |
그래픽 라이브러리 | GTK+ | QT |
설정 항목 수 | 필요한 것만 출력 | 최대한 많이 출력 |
기본 편집기 | gedit | kate |
기본 브라우저 | Web | konquerer |
파일 탐색기 | Nautilus | konquerer |
윈도 매니저 | Mutter or Metacity | kwin(유닉스, POSIX 호환) |
- Metacity는 GNOME 2에서 사용된 단순하고 직관적인 윈도우 매니저로, 주로 일반 사용자를 위한 환경을 제공
- Fvwm은 고도로 커스터마이즈 가능한 윈도우 매니저로, 사용자가 데스크탑 환경을 세밀하게 조정할 수 있는 기능을 제공. 고급 사용자나 리소스가 제한된 시스템에서 주로 사용
디스플레이 매니저
서버 접속(사용자 로그인)과 세션을 담당
xdcmp로 원격 제어
X-window
dtlogin (Motif, Redhat), gdm (GNOME, GNU), xdm (X11, GUI)
데스크톱 환경
GUI 스타일, 파일관리자/아이콘/창/배경화면/위젯 등
환경변수
변수 | 설명 | 비고 |
VISUAL | 기본 텍스트 에디터 | |
TERM | 터미널 유형 | |
XTERM | X-window, 터미널 에뮬레이터 종류 | |
DISPLAY | 클라이언트 -> 원격지 전송 | xauth와 연관 |
$DISPLAY (원격지 전송) 서로 간의 통신을 위해 사용
ex) echo $DISPLAY 결과: 0 -> X클라이언트를 실행하면, 로컬시스템의 첫 번째 X 서버에 실행된다
echo $DISPLAY 결과: 1 -> X클라이언트를 실행하면, 로컬시스템의 두 번째 X 서버에 실행된다
ex) xauth add $DISPLAY . f667657456t
ex) A 시스템 firefox를 B 시스템에 전송해서 실행할 수 있도록
(1) A - X client && DISPLAY 환경변수
(2) B - X server && xhost 명령
인터넷 활용 - 네트워크의 개념, 인터넷 서비스의 종류, 인터넷 서비스의 설정
Command / file
명령 | 설명 | ex | 비고 |
netstat | 네트워크 상태 정보 | netstat -an |
SYN Flooding 공격 확인 -a (all) -e (ethernet) -n (IP, port 형식) -m (소켓, 버퍼의 메모리) -r (route) -s (프로토콜 statistics) -t (tcp 연결 표시) |
arp | ARP 테이블 설정 확인 로컬 상의 다른 시스템 MAC 주소 확인 ip |
MAC 차단 -a (all) -s (static 설정) |
|
ifconfig | IP 주소 설정, 활성화/비활성화 | ||
mii-tool | 네트워크 인터페이스의 속도/ 전송모드 확인, 물리적으로 케이블이 연결되었는지 점검 | ||
ethtool | 상세 인터페이스 정보(게이트웨이 주소값 등), 물리적 연결 상태 | 이더넷 카드의 link mode 변경하는 명령 | |
route | 라우팅 테이블 확인 경로 설정 게이트웨이 주소 |
route add -host [IP addr] netmask [subnet mask] dev [인터페이스명] | |
route netstat -r | 게이트웨이 주소 확인 | ||
ip | 게이트웨이/MAC 주소 확인 라우팅 테이블 정보 출력 route보다 더 다양함 |
ip route show | |
put | local -> FTP server | send / 업로드 | |
get | FTP server -> local | recv / 다운로드 | |
ssh (https = 443) | SSH 서버 접속 명령어 | ssh USER명@domain.com | 보안 / 관련 서비스 - NFS |
telnet (http = 80) | telnet 서버 접속 명령어 telnet [호스트이름] [포트번호] |
telnet domain.com telnet -I user명 domain.com |
평문, 패키지명: telnet-server |
/etc/services | 프로토콜 관련 포트 번호 | ||
/etc/sysconfig/network | 네트워크 전반(사용 유무/호스트명/게이트웨이주소/NIS 도메인 명) | ||
/etc/sysconfig/network-scripts | 네트워크 인터페이스 환경 설정 |
Secure 기반 원격제어 서비스 - ssh, sftp, scp
ex) 운영 중인 서버의 특정 포트에 접속하여 연결된 정보를 확인하는 명령의 조합 - ss, netstat
OSI 7계층
계층 | 설명 | 데이터 단위 | 프로토콜 | 설명 | 인터네트워킹 장비 |
7 | 응용 | 게이트웨어, 프록시 서버 | |||
6 | 표현 | data | 데이터의 암호화와 해독 압축, 압축해제 코드, 문자 번역 - 일관된 이해 |
||
5 | 세션 | socket | HTTP, SSL | 전송 순서 및 동기점 위치 제공 | |
4 | 전송 | segment | TCP/UDP(DNS) | 게이트웨이 | |
3 | 네트워크 | packet | IP, ARP, ICMP, BGP | 라우터 | |
2 | (데이터)링크 | frame | 브릿지, 스위치 | ||
1 | 물리 | bit | 리피터, 허브 |
프로토콜
1. 구문 (데이터 구조)
2. 의미 (제어 정보, 오류 등)
3. 순서 (순서 제어)
- ARP : IP -> MAC
- RARP : IP <- MAC
- IPv4 (32bit) / IP 주소 대역 구분인 클래스 확장
- IPv6 (64bit) / 패킷 크기 확장, 패킷 출처 인증 및 비밀 보장 기능, 흐름 제어 기능
- MAC (48bit)
계층 | 프로토콜 | 설명 | 포트번호 | 비고 |
7 응용 | IMAP | 이메일 관리, 동기화 | 143 | |
TELNET | 원격지 시스템에 명령어 기반으로 접속 | 23 | ||
SNMP | Simple Next Management | 161, 162 | ||
5 세션 | HTTP | HyperText | 80 | |
FTP | Active, passive 모드 지원 익명 계정으로 접속, FTP 서버 필요 |
20(전송), 21(제어) | TCP, hash # | |
SSH | Secure Shell, 원격접속, 데이터 암호화 (telnet, ftp에서 암호화 기능 추가한 프로토콜) |
22(ss22) | TCP | |
SMTP | Simple Mail Transfer, 메일 서버 간 | 25 | TCP | |
3 네트워크 | ICMP | Internet Control Msg Protocol (제어 메시지) | 메시지 오류 보고 | |
DNS | 도메인 이름 변환 | 53 |
*SMTP/IMAP(143)/POP3(110) - 전자 우편 서비스 관련
SFTP (SSH File Transfer Protocol) - SSH를 사용-> 22번 포트
ss - SYN Flooding 공격과 같은 네트워크 상태 정보 확인
HTTP(www) - 80 / https - 443 / print - 631 / web - 8080
Ethernet (2) - CMSA/CD(회선 경쟁 방식)
- MAC 주소 (48bit) 기준으로 데이터 통신하도록
- BNC, UTP 케이블 사용
커넥터를 한쪽 커넥터에 삽입하여 90도 회전하여 로크하는 동축 케이블
절연체로 감싸여 있지 않고, 두가닥씩 꼬여있다
TCP (3) 3-way handshake
- LISTEN: 22번 포트(ssh)가 열린 상태
- SYN_SENT : 클라이언트가 SYN을 보냄
- SYN_RECEIVED :서버가 SYN 받음 (ACK는 아직 안 받음)
- ESTABLISHED : 연결 완료~ (클라이언트와 서버가 ACK를 주고 받은 상태)
IP (4)
IPV4 A/B/C 클래스
A: 0.0.0.0 ~ 127.255.255.255 (loopback 네트워크 포함 -> 127.0.0.0 ~ 127.255.255.255)
--> 사설 10.0.0.0 ~ 10.255.255.255
B: 128.0.0.0 ~ 191.255.255.255
--> 사설 172.16.0.0 ~ 172.31.255.255
C: 192.0.0.0 ~ 223.255.255.255 (255+1 = 256개)
--> 사설 192.168.0.0 ~ 192.168.255.255
c - IP 주소 첫 번째 부분의 3비트 110
서브넷 마스크
ex1) 255.255.255.192
192 == b 1100 0000
11 -> 네트워크 부분
00 0000 -> 호스트 부분
64 4개
맨앞 == 네트워크 ID로 사용 불가
맨뒤 == 브로드 캐스트로 사용 불가
따라서, 64*4=248
1100 0000 = 192
189 = 128 + (32 + 16 + 8 + 4 + 1)
10111101
ex2) 예시1) 192.168.100.0/24
서브넷마스크: 255.255.255.0
1) 네트워크 ID: 192.168.100.0
2) 브로드캐스트: 192.168.100.255
3) 게이트웨이: 192.168.100.254
ex3) 192.168.5.150/26
1) 서브넷 마스크: 255.255.255.192
2) 구간: 128-191 에 포함됨
3) 게이트웨이 주소: 시작 주소 + 1 -> 192.168.5.129
최상위 도메인
com, org, mil(군), net, gow, kr , edu, ...
SSH
ex) ssh USER명@192.168.5.13
ex) ssh -a 192.168.5.13:5050
-a (auto login)
-d (debugging)
-I (user명 지정)
-p (port 지정)
-n (ssh가 끝날 때까지 터미널을 차지하지 않고 ssh를 백그라운드에서 실행)
-x (X11 포워딩을 비활성화)
LAN < MAN < WAN, SAN
LAN (local area network) 근거리 통신망 / LAN구성(리피터, 허브, RJ-45(랜선))
MAN (Metropolitan) 큰 도시. 캠퍼스. 전화 TV 인터넷 (DQDB / IEEE 802.6)
SAN (Storage Area Network) 저장 장치를 네트워크로 연결
데이터 교환 방식
+ 추가 예정~~~
패킷 교환 방식은 오버헤드 비트 존재
토폴로지(Topology)
링(Ring)형
링형은 각각의 노드가 양 옆의 두 노드와 연결하여, 전체적으로 고리처럼 하나의 연속된 길을 통해 통신을 하는 형태이다.
📍장점
- 노드 수가 증가되어도, 네트워크 상의 손실이 거의 없음
- 충돌이 발생할 가능성이 적음
- 문제가 발생한 노드를 쉽게 탐색할 수 있음
💥단점
- 네트워크 구성 변경이 어려움
- 회선에 장애가 발생하면, 전체 네트워크에 영향을 미침
성(star)형
성형은 모든 노드가 중앙에 있는 노드에 연결된 형태이다. / Point-to-Point
📍장점
- 노드를 추가하거나 에러를 탐지하기 쉬움
- 패킷의 충돌 발생 가능성이 적음
- 문제가 발생한 노드를 쉽게 탐색할 수 있음
- 문제가 발생한 노드가 중앙 노드가 아니라면, 다른 노드에 영향을 끼치는 것이 적음
💥단점
- 중앙 노드에 장애가 발생하면, 전체 네트워크를 사용할 수 없음
- 설치 비용이 고가임
트리(Tree)형
계층형 토폴로지라고도 하며, 말 그대로 트리 형태로 구성된다.
📍장점
- 노드의 추가 삭제가 쉬움
💥단점
- 특정 노드에 트래픽이 집중될 때, 하위 노드에 영향을 끼치기 쉬움
버스(Bus)형
정류장을 두고 가운데 차선으로 버스가 다니듯이, 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 형태이다. 근거리 통신망(LAN)에서 사용한다.
📍장점
- 설치 비용이 적다
- 신뢰성이 우수하다
- 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉽다
💥단점
- 스푸핑 공격을 받을 위험이 있다
망(Full Connected)형
노드가 다른 노드에 전부 연결된 형태이다.
📍장점
- 한 단말 장치에 장애가 발생해도, 다른 여러 개의 경로가 존재하므로 네트워크 운영에 차질이 적다
- 트래픽이 몰려도 분산 처리가 가능하다
💥단점
- 노드의 추가가 어렵다
- 구축 비용과 운용 비용이 고가이다
관련 기술들
SAMBA: 윈도우 & Linux/Unix 간의 자료 및 하드웨어 공유 / TCP/IP 기반
프로토콜 - SMB -> CIFS: 원격지의 윈도우 시스템에 공유된 폴더 마운트
NFS: Network File Sys. 네트워크로 원격지 호스트 파일 시스템 공유 / 중앙 집중식 / 마이크로시스템즈
-> NFS 서버 사용 시 RPCBIND 데몬을 구동해야 함
IRC: 실시간 채팅 프로토콜, Xchat
브라우저
- GUI - firefox, opera, safari
- CLI - Lynx, Links / X 윈도가 설치되지 않은 환경
- 파이어폭스 - 모질라
- 오페라 - 노르웨이
- 사파리 - 애플
- 크롬 - 구글
www
- 하이퍼텍스트 : 정보검색 시스템
- URL : 서버 자원 접근
기관
이름 | 설명 | 비고 |
ICANN (Internet Corp for Assigned Names and Numbers) | IP 주소 할당/ 도메인 네임 관리 | 이전엔 IANA |
ISO (International Oraganization for Standardization) | 표준 개발 기구 | OSI 7계층 |
IEEE (Institute of Eletrical and Electronics Engineers) | 전기/전자공학 분야 전문가 단체 | LAN 관련 표준 |
EIA (Electronic Industries Alliance) | (과거) 전자산업 연합 | LAN 케이블 관련 표준 |
TIA (Telecommunications Industry Association) | 통신 분야 기업 협회 |
응용분야 - 기술동향, 활용기술
아두이노/라즈베리파이/마이크로비트
- 아두이노 (마이크로 컨트롤러)
- 라즈베리파이 (교육용, 저가의 싱글 보드 컴퓨터 )
- 마이크로비트 (초소형 컴퓨터, 기울기 센서, 나침반 등)
- 큐비보드 (안드로이드/우분투 설치 가능 미니 pc)
배포판
- Rocky Linux (cent os 종료 후, Gregory Kurtzer)
관련 기술
클러스터링
HPC cluster (고계산용, High Performance Computing) 베어울프 / 고성능, 과학 계산용
HA cluster (고가용성, High Availability) 연속적인 서비스 제공 / 부하분산기, 백업 서버 주기적인 통신 / 이상 유무 점검
LVS cluster (부하분산, Linux Virtual Server) 대규모 서비스 제공 / 여러 개의 서버가 부하분산기에 연결
VMWare - VMDK
플랫폼
- K8s
- Docker : 컨테이너 기반 (경량화된) 가상화 플랫폼 / 게스트 OS 없이 프로세스 구동 O -> 하이퍼바이저 사용 X
- Kubernetes : 컨테이너 관리 프로그램 / CNCF에서 개발
- Ansible : 오픈 소스 자동화 플랫폼 (레드햇)
- Openstack : 오픈 소스 클라우드컴퓨팅 플랫폼
임베디드
스마트TV (Tizen, WebOS)
- Tizen - 인텔, 삼성 / 모바일 운영체
- Web OS - LG 전자, palm OS 계승
- UNIX - QNX
- Linux - WebOS, Tizen, GENIVI(자동차용)
가상화
- Xen 반가상화 / 오픈소스 하이퍼바이저 / 고성능 / AWS 위주
- KVM 전가상화 / Qumranet에서 개발된 하이퍼바이저 / x86 시스템 기반
- VirtualBox 가상화 - 인텔의 하드웨어 가상화 VT-x와 AMD의 VMD-V를 기반으로 전가상화 지원
Hyper-V는 윈도우 서버
FDDI - 광섬유 케이블 (Fiber: 섬유)
Hadoop - 빅데이터 처리를 위한 분산 시스템 / 자바 프레임워크
R - 통계 및 데이터 분석을 위한 프로그래밍 언어
Cassandra - 분산형 NoSQL DB
클라우드 서비스
IaaS - PaaS - SaaS (알파벳 순)
인프라 구축 - 플랫폼 설정 - 소프트웨어 설정
IaaS(Infrastructure as a Service, 인프라 기반 서비스)
-> 업무 처리에 필요한 서버, 데스크톱 컴퓨터, 스토리지 같은 IP 하드웨어 자원을 원하는 만큼 빌려서 사용
PaaS(Platform as a Service, 플랫폼 기반 서비스)
-> 개발자가 애플리케이션을 개발할 수 있는 플랫폼을 제공하며, 인프라 관리가 필요 없는 환경
SaaS(Software as a Service, 소프트웨어 기반 서비스)
-> 완성된 소프트웨어를 구독 형태로 제공하여, 유지보수 및 설치 없이 소프트웨어 사용이 가능
'Linux > 리눅스 마스터 2급' 카테고리의 다른 글
리눅스마스터 2급 취득 (0) | 2024.10.06 |
---|