2020년부터 2023년까지 4개년의 기출을 풀고
인터넷에 돌아다니는 족보들을 참고하여 직접 정리하였다
sh -> csh -> ksh -> tcsh -> bash -> zsh -> dash
set : 선언된 쉘 변수 전부 확인
$SHELL : 로그인 시 부여받은 쉘 정보
!! : 직전 실행한 명령 다시 실행
!키워드 : 특정한 키워드 시작하는 가장 최근 명령어를 다시 실행
!?키워드 : 해당 키워드를 포함한 가장 최근 명령어를 다시 실행
!숫자 : 명령어 히스토리의 번호로 명령 다시 시작
history : 기록된 명령 번호 확인 가능
계열 | 배포판 | 패키지 관리 도구 |
---|---|---|
데비안 | Ubuntu, kali, Debain(Deb) | apt, dpkg |
레드햇 | Fedora | dnf, rpm |
CentOS 8이상 | dnf, rpm | |
CentOS 7이하 | yum, rpm | |
SUSE | open SUSE | zypper, rpm, YaST |
rpm -[옵션] 패키지명
-i : 설치
-U : 설치 및 업데이트
-q : 설치 여부 확인
-qa : 모든 패키지 설치 여부 확인
-e : 제거
-F : 기존 패키지가 있는 경우에만 설치
--nodeps : 패키지 의존성 무시하고 설치/제거
--force : 기존 패키지 설치 여부 무시하고 강제로 설치/제거
remove : 제거
list : 전체 패키지 정보 출력
history list : yum 명령 사용한 작업 이력 확인
vi : 빌조이
vim : 브람 무레나르 (색깔을 바꾸어 가시성 좋게 할 수 있음)
emacs : 리처드 스톨만
pico : 아보
nano : 크리스 (GNU 프로젝트)
gedit : 파올로 메기
x : 현재 커서 위치에 있는 문자 삭제
dd : 현재 줄 삭제
dw : 현재 줄에서 다음 단어까지 삭제
cw : 단어 변경
a : 커서 뒤 부터 입력
A : 줄의 마지막에 입력
i : 현재 문자 앞에 입력
I : 줄의 시작 부분에 입력
Nyy : 아래방향으로 N줄만큼 복사
ctrl + x -> ctrl + s : 파일 저장
ctrl x -> s : 현재 열려있는 버퍼 저장
ctrl + b : 이전이동
ctrl + p : 이전 줄 이동
ctrl + f : 앞 이동
ctrl + n : 다음 줄로 이동
ctrl + a : 줄의 시작으로 이동
ctrl + e : 줄의 끝으로 이동
ctrl + d : 현재 커서 위치 문자 삭제
ctrl + k : 커서부터 줄 끝까지 삭제
ctrl + x -> ctrl + c : 편집기 종료
ctrl + A : 줄 처음으로 이동
ctrl + E : 줄 끝으로 이동
ctrl + K : 현재 줄 삭제
ctrl + D : 현재 커서 위치 문자 삭제
게층 | 계층 이름 | 데이터 단위 | 기기 |
---|---|---|---|
7 | 애플리케이션 | 메시지 or 데이터 | 서버 |
6 | 표현 | 메시지 or 데이터 | 게이트 웨이 |
5 | 세션 | 메시지 or 데이터 | |
4 | 전송 | TCP - 세그먼트 | 로드 밸런서 |
UDP - 데이터 그램 | |||
3 | 네트워크 | 패킷 | 라우터(경로 찾기) |
2 | 데이터 링크 | 프레임 | 스위치(MAC주소), 브릿지(분할/연결) |
1 | 물리 | 비트 | 허브, 리피터(확산) |
게층 | 계층 이름 | 프로토콜 |
---|---|---|
7 | 애플리케이션 | HTTP(80), HTTPS(443), FTP(ftp:21/ftp-data:20) |
6 | 표현 | SSL/TSL (HTTPS와 결합할 경우 443) |
5 | 세션 | SMPP(SMS)(2775) |
4 | 전송 | TCP |
UDP | ||
3 | 네트워크 | IP, ICMP(오류보고, 진단) |
2 | 데이터 링크 | 이더넷 |
1 | 물리 | 전기, 광 신호 사용, 프로토콜 대신 표준(IEEE) 사용 |
com, net, edu, kr, int, org, gov, mil, jp
PS1 : 기본 프롬프트 정의
PS2 : 2차 프롬프트 정의 (>)
DISPLAY : X 윈도에서 GUI 프로그램 실행시 어느 디스플레이에서 설정할 지 지정
XDM : 가장 기본적인 디스플레이 매니저, X 윈도우 초기 버전이며 밑 두개와 다르게 특정 데스크탑 환경에 종속되지 않고 매우 가벼움
KDM : KDE(플라즈마) 데스크탑 환경에서 사용하는 디스프레이 매니저
GDM : GNOME 데스크탑 환경을 위한 디스플레이 매니저
시스템 시작시 X 윈도우 모드로 부팅
systemctl set-default graphical.target
X서버에 접근할 수 있는 클라이언트를 IP 주소 기반으로 제어
xhost
사용자가 시스템과 상호작용하는 GUI 제공
GNOME : 단순함과 직관적 인터페이스, GNU에서 만든 공개형 데스크톱 환경
Xfce : 경량화를 중점으로 설계되어 저사양 컴퓨터에서도 잘 돌아감
KDE : 커스터마이징 가능한 현대적인 UI와 깔끔한 디자인
Pantheon : Elementary OS에서 개발한 데스크톱 환경으로 미니멀리즘함
totem : 사운드 및 동영상 플레이어
evolution : 메일, 주소록, 일정 등 개인정보 관리
evince : pdf 뷰어
ego : 그래픽 뷰어 (Eye of GNOME Image Viewer)
GIMP : 그래픽 편집
/etc/hosts : ip 주소와 도메인 주소 1:1 매칭
/etc/resolv.conf : DNS(네임서버) 설정 관리
/etc/shells : 사용 가능한 쉘 목록
/etc/passwd : 리눅스 계정 정보
/etc/profile : 시스템 전체(모든 사용자) 에게 적용되는 환경 변수와 시작 관련 프로그램 설정
/etc/bashrc : alias(별칭), bash 관련 설정 값
/etc/sysconfig/network : 네트워크 설정 관리 (레드햇 계열)
/etc/sysconfig/network-scripts : 네트워크 인터페이스 환경설정과 관련된 파일
/etc/services : FTP 프로토콜이 사용하는 포트 번호 확인
/etc/inittab : 리눅스 부팅 시 X윈도우 실행하기 위해 부팅모드 설정하는 파일
~/.bashrc : 개인 사용자가 정의한 alias 함수 설정
/lost+found : fcsk 명령 수행 시 손상된 디렉터리나 파일 수정을 위한 임시 디렉터리
/sbin/nologin : 시스템 계정에 설정되는 쉘
$HOME/.Xauthority: X 윈도 실행시 생성되는 키 값이 저장되는 곳
/etc/passwd : 7번째 필드 사용자 로그인 쉘
<권한 보는 방법>
파일 종류 : 특수 권한(rwx) : 소유자(rwx) : 그룹(rwx) : 기타(rwx)
읽기(r,4), 쓰기(w,2), 실행(x,1)
user(u), group user(g), other(o) 존재
기호 : +(추가), -(제거), =(권한 설정)
= (권한 설정) 에 대한 추가 정보
chmod o=r hee.txt
이 경우 other에 r권한을 제외한 모든 권한은 사라지고 other의 r권한만 남게 된다
읽기(r) : 디렉터리 안에 어떤 파일과 하위 디렉터리가 있는지 목록을 볼 수 있다
-> ls 명령어로 디렉터리 파일 목록 확인가능하나 내용이나 세부 내용을 확인하기 위해서는 실행(x) 권한이 추가로 필요하다
쓰기(w) : 디렉터리 내에서 파일이나 디렉터리를 생성, 삭제, 이름변경을 할 수 있는 권한
-> 디렉터리 내용을 수정할 수 있다
-> 파일을 수정하려면 파일 자체에 대한 쓰기 권한도 필요
-> 파일 삭제시 디렉터리의 쓰기 권한이 있다면 삭제 가능
x(실행) : 해당 디렉터리에 접근할 수 있는 권한
-> 실행권한이 있어야 디렉터리 내부로 접근할 수 있다 (cd)
ls -l : 권한 확인 명령어
chown(change owner) : 파일이나 디렉터리의 소유자를 변경
chgrp (change Group) : 파일이나 디렉터리의 그룹 소유권을 변경
chmod (change mode) : 파일이나 디렉터리의 권한을 변경
-R : 모든 그룹 설정
-h : 옵션 없이 심볼릭 링크 파일 자체의 그룹 변경, 심볼릭 링크 대상 파일으 그룹 권한은 변경되지 않는다
-t : Stikybit 설정
t는 o에만 사용 가능 g랑 같이 쓸 수 없다!!!
init : 가장 기본적인 프로세스로 시스템 부팅시 가장 먼저 실행된다 (현재는 systemd)
inetd : 네트워크 서비스 관리 데몬으로 필요할 때 만 서비스 시작
xinted : 위 버전의 확장판
standalone : 항상 메모리에 상주하며 백그라운드에서 지속적으로 실행된다
nice [옵션] -[NI] [프로세스]
nice [프로세스]
renice [NI] [옵션] [프로세스(PID)]
-p : PID 지정 시 사용
-u : 사용자 이름 지정 시 사용
-g : 프로세스 그룸 ID로 사용
kill -[시그널] [프로세스 ID or 작업 번호]
ps : 현재 실행중인 프로세스 상태 확인
Universally Unique Identifier
정의 : 네트워크 상의 개체들을 식별할 때 충돌없이 사용할 수 있도로 설계 된 값
128 비트 길이의 값을 가짐
123e4567-e89b-12d3-a456-426614174000
사용되는 곳
ext : 리눅스 전용 디스크 기반 파일 시스템
vfat : 리눅스에서 FAT 파일 시스템을 지원하기 위해 사용
ntfs : 윈도우 파일시스템이지만 드라이버를 통해 읽기/쓰기 가능
mke2fs : ext 계열 파일시스템을 생성하는 명령어 기본적으로 ext2 생성하나 옵션에 따라 ext3, 4를 생성 가능
-j : 저널링 기능 활성화 (ext3 파일시스템을 의미)
-t : ext4 파일 시스템 생성시 붙여야 하는 옵션
mount : 파일 시스템 및 이동식 장치를 디렉터리의 특정 마운트 지점에 연결하는 명령어
umount : 파일 시스템을 언마운트 하는데 사용
시그널 이름 | 번호 | 설명 |
---|---|---|
SIG HUP | 1 | 터미널 연결 종료 시 발생. 데몬 재시작에 사용 |
SIG INT | 2 | 인터럽트. Ctrl + C 로 프로세스 중단 |
SIG QUIT | 3 | 종료 시그널. Ctrl + \ 로 종료 |
SIG KILL | 9 | 강제 종료. 무시할 수 없음 |
SIG SEGV | 11 | 잘못된 메모리 접근 시 발생 |
SIG CHLD | 17 | 자식 프로세스 종료 시 부모에게 전송 |
SIG STOP | 19 | 프로세스 일시 중지. 무시할 수 없음 |
SIG TSTP | 20 | 터미널에서 Ctrl + Z 로 일시 중지 |
tar [옵션] [아카이브 파일명] [대상 파일/디렉토리]
주요 옵션
-c : 파일 생성
-C : 특정 디렉토리로 압축 해제할 경로 지정 가능
-x : 추출
-r: tar 아카이브의 마지막에 파일들 추가
-v : 작업 진행 상태 출력
-f : 파일 이름 지정
-z (giz) : 압축 / 해제
-j (bizp2) : 압축 / 해제
-J (xz) : 압축 / 해제
압축률
compress < gzip < bzip < xz (가장 고압축 = 파일 크기 가장 작음)
압축 해제, 풀기
uncompress < x’z’vf < x’j’vf < x’J’vf
확장자
.Z < .gz < .bz2 < .xz
BSD 계열: lpr, lpq, lprm, lpc
System V 계열: lp , lpstat, cancel
lp : 파일 인쇄
lpr : cups 이전 파일 인쇄 명령어
lpq : 인쇄 대기열의 상태를 보여줌
-r : 삭제
IPv4 : 32bit
IPv6 : 128bit
MAC : 48bit
netstat : 네트워크 연결 상태를 보여주는 명령어 각 TCP 연결의 상태를 확인할 수 있다
ss : 네트워크 소켓 통계확인
LISTEN: 서버가 클라이언트의 연결 요청을 대기 중인 상태
(클라이언트와 연결이 아직 이루어지지 않은 상태
SYN_SENT: 클라이언트가 서버에게 연결 요청을 보낸 상태로, SYN 패킷을 전송한 상태
SYN_RECEIVED: 서버가 클라이언트의 SYN 패킷을 받고, SYN-ACK 패킷을 전송한 상태 (연결이 완전히 성립되기 전 단계)
ESTABLISHED: TCP 3-way 핸드셰이크가 완료되어 클라이언트와 서버가 연결된 상태로, 데이터 전송이 가능한 상태
FIN_WAIT: 클라이언트 또는 서버가 연결을 종료하기 위해 FIN 패킷을 보낸 상태
CLOSE_WAIT: 연결 종료를 요청받은 후, 종료 대기 상태
TIME_WAIT: 연결이 종료된 후, 일정 시간이 지나기까지 대기하는 상태
scp : 파일 복사
sftp : 파일 전송
slogin : 로그인
ip route / route : 라우팅 테이블 정보 출력
NFS (Network File System): 리눅스-유닉스 시스템 간 파일 공유에 사용
SAMBA: 리눅스-Windows 파일 공유
가상화 기술 | 설명 |
---|---|
KVM | Qumranet에서 개발한 하이퍼바이저이다 CPU 전가상화 방식 사용 |
Docker | 운영 체제 수준의 가상화, 컨테이너 단위로 애플리케이션 격리, 가상 머신보다 가벼움 |
LXC | 컨테이너 기반 가상화, 전통적인 방식의 VM-like 환경 제공 |
Xen | 전통적인 하이퍼바이저 방식으로 호스트와 다른 아키텍처의 게스트는 실행할 수 없다 |
QEMU | CPU 에뮬레이션과 가상화를 지원, KVM과 함께 고성능 VM 생성 가능 |
VirtualBox | 인텔의 하드웨어 가상화 VT-x와 AMD의 AMD-V를 기반으로 전가상화를 지원 |
fdisk -l : 시스템에 연결된 모든 디스크의 파티션 정보 출력
-d : 파티션 삭제
-n : 새로운 파티션 추가
-w : 파티션 테이블 저장 후 종료
-t : 파티션 타입 변경
-m : 도움말 출력
Linux 파일 시스템 : 83
Linux 스왑 : 82
Linux LVM : 8e
NTFS (Windows) : 7
RAID : fd
quota : 현재 사용자 디스크 사용량과 할당된 디스크 공간 확인
quotaon : 디스크 쿼터 활성화
edquota : 사용자의 쿼터를 설정하는 명령어 (vi 편집기 사용)
setquota : 사용자의 쿼터를 설정하는 명령어 (명령어를 통해 직접 설정)
ISO : OSI 7계층
EIA : 이더넷 케이블의 배열 순서인 T568B를 표준화
IEEE = LAN 관련
GB = Giga Byte(기가 바이트) = 1024 MB
TB = Tera Byte(테라 바이트) = 1024 GB = 1,048,576 MB
PB = Peta Byte(페타 바이트) = 1024 TB = 1,048,576 GB
EB = Exa Byte(엑사 바이트) = 1024 PB = 1,048,576 PB
SMB -> CIFS
FTP (SSL/TLS)
SFTP(SSH)
설치과정 중 make 과정 없는 것 : MySQL
리눅스 커널 기반 운영 체제 : webOS, Tizen, GENIVI
대량 자료 처리 자바 소프트웨어 프레임 워크 : Hadoop