빅분기 이론 / 기출문제 PDF
채팅문의
Certificate
- [빅분기] 책 2025.01.24
- 리눅스마스터 2급 총정리 (이걸로 끝내자) 2023.12.07 1
- [리눅스마스터2급] 게이트웨이 값 찾기 / 브로드캐스트 주소 2023.12.07 1
- [sqld] 기출문제 및 노랭이책 관련 2023.10.11
- [ADsP] 자격증 시험 대비 정리 및 기출문제 2023.01.31
[빅분기] 책
리눅스마스터 2급 총정리 (이걸로 끝내자)
https://www.ihd.or.kr/introducesubject1.do
리눅스 일반 | 리눅스의 이해 | 리눅스의 개요, 역사, 철학 |
리눅스 설치 | 기본 설치 및 유형, 파티션과 파일 시스템, Boot Manager | |
기본 명령어 | 사용자 생성 및 계정 관리, 디렉터리 및 파일, 기타 명령어 | |
리눅스 운영 및 관리 | 파일 시스템 관련 명령어 | 권한 및 그룹 설정, 파일 시스템의 관리 |
Shell | 개념 및 종류, 환경 설정 | |
프로세스 관리 | 개념 및 유형, 프로세스 Utility | |
에디터 | 에디터의 종류, 에디터 활용 | |
소프트웨어 설치 | 개념 및 사용법, 소프트웨어 설치 및 삭제 | |
장치 설정 | 주변장치 연결 및 설정, 주변장치 활용 | |
리눅스 활용 | X 윈도 | 개념 및 사용법, X 윈도 활용 |
인터넷 활용 | 네트워크의 개념, 인터넷 서비스의 종류, 인터넷 서비스의 설정 | |
응용분야 | 기술동향, 활용기술 |
개인적인 공부방법(순공 2시간 10일 공부법)
3일 3년 기출 먼저 풀어보기 -> 2일 개념정리 -> 2일 3년 기출 -> 2일 개념외우기 -> 시험느낌으로 3년치 CBT돌리기
버릴껀 버리자!! 단 기출은 또 나올 수 있으니 반드시 외워서 가자!!
리눅스 이해
리눅스 설치
기본 명령어
1. 파일 속성 조회 방법 (ls -l)
명령어: ls -l 사용
첫 번째 필드: 파일이나 디렉터리의 허가권 (chmod, umask로 설정 가능)
세 번째 필드: 파일이나 디렉터리의 소유자 (chown로 설정 가능)
네 번째 필드: 파일이나 디렉터리의 소유그룹 (chown, chgrp로 설정 가능)
* 참고 리눅스 ls 명령어 옵션
-a: 숨겨진 파일도 출력
-l: 자세하게 출력
-s: 파일 크기 순 정렬 (-h와 함께 -sh로 자주 사용)
-h: 파일크기 보기좋게 표시 (-s와 함께 -sh로 자주 사용)
-r: 역순 정렬 (기본은 알파벳순 정렬)
-R: 하위 디렉토리도 출력
-lu: atime(접근 access 시간) 출력 - 기본은 수정시간 mtime 표시
-lc: ctime(파일 저보 변경 change 시간) 출력 - 기본은 수정시간 mtime 표시
2. 소유권 관련 명령어 (chown, chgrp)
chown
: 파일과 디렉터리의 사용자 소유권과 소유그룹 변경
: 소유권 변경 시 참조하는 파일 /etc/passwd
: 기본 변경 → chown 변경할사용자명 파일/디렉토리명 (예: chown host a.txt)
: 소유그룹 변경 → chown 변경할사용자명:변경할그룹명 파일/디렉토리명 (예: chown host:grp a.txt)
chgrp
: 파일이나 디렉터리의 그룹 소유권 변경
3. 허가권 관련 명령어 (chmod, umask)
명령어 ls -l을 사용하여 파일 유형과 허가권을 알 수 있음
파일 유형: d (디렉터리) / - (일반파일) / l (링크파일) / b (블록 디바이스) / c (문자 디바이스)
파일 허가권: 읽기(read-4), 쓰기 (write-2), 실행(execute-1)으로 구성 / 접근 제한은 -
위 내용을 예로 들면 bench.py 파일의 허가권은
- (일반파일) , rw-(6 읽기 쓰기, 소유자 권한), r--(4 읽기, 소유그룹 권한), r--(4 읽기, 그 외 권한)
0 --- 3 -wx 6 rw-
1 --x 4 r-- 7 rwx
2 -w- 5 r-x
chmod
: 파일이나 디렉터리의 접근 허가권을 변경하는 명령어
: chmod 소유자권한번호 소유그룹권한번호 그외권한번호 파일및디렉토리명 (예: chmod 744 a.txt)
umask
: 새로 생성되는 파일이나 디렉터리의 기본 허가권 값 지정
: 파일 기본 권한 666, 디렉터리 기본 권한 777
: 기본 권한 - umask value = defualt permission
: umask 숫자값임. 기본 권한에서 umask 값을 빼야 default permission 값을 알 수 있음
: umask -S 문자값임. 문자값 그대로 권한(default permission) 설정
4. 특수 권한 (SetUID, SetGID, Sticky Bit)
SetUID / SetGID
: 프로세스가 실해되는 동안 해당 프로세스의 소유자(SetUID)/소유그룹(SetGID)의 권한을 임시로 가져오는 기능
: 프로세스가 사용자보다 높은 수준의 접근을 요구할 때 파일 접근 제한 때문에 원활한 기능을 제공할 수 없기 때문에 이러한 문제 해결을 위한 방법
: 사용의 용이성을 위해 부여하나, 보안에 위협적임
: SetUID의 경우 소유자 권한으로 파일 실행시 u+s
: SetGID의 경우 소유 그룹으로 파일 실행 시 g+s
: 만약 유저/그룹 퍼미션 자리에 실행 권한이 있으면 s(정상), 없으면 권한이 비유효하므로 S(비정상)
Sticky Bit
: 일반적으로 공용 디렉터리를 사용할 때 Sticky Bit (o+t) 설정
: 유효시 소문자 t, 비유효시 대문자 T
: 공용 디렉터리에는 누구든지 파일 생성이 가능하나, 수정 및 삭제는 root와 소유자만 가능
: 대표적인 공용 디렉터리는 /tmp와 /var/tmp가 있음
5. 디스크 쿼터 (Quota)
파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량(블록단위) 및 개수(inode 수)를 제한하는 것
사용자별, 파일 시스템별로 동작! 관련 내용은 /etc/fstab에서 디스크 쿼터 관련 설정 확인 가능
그룹 단위로도 용량 제한이 가능하여, 웹 호스팅 서비스 시 유용
순서: quotacheck → edquota → quotaon →requota
quotacheck: 파일 시스템의 디스크 사용 상태를 검색. 쿼터 설정을 확인하여 쿼터가 존재할 경우에는 생성 (aquota.user, aquota.group: 사용자, 그룹의 쿼터 관련 정보 기록)
edquota: vi 편집기를 이용하여 사용자나 그룹에 디스크 사용량 할당
setquota: 편집기나 아닌 명령행에서 바로 사용자나 그룹에 디스크 사용량 할당
quotaon/off: 쿼터 서비스를 활성화/비활성화
requota: 파일 시스템 단위로 쿼터 설정 표기 확인
출처: https://thinking-developer.tistory.com/51 [생각하는 개발자:티스토리]
파일 시스템 관련 명령어
1. 파일 시스템이란
: 운영체제가 파일을 시스템의 디스크상에 구성하는 방식
: 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제:
: 하드디스크나 CD-ROM과 같은 물리적 저장소 관리
2. 리눅스 전용 디스크 기반 파일 시스템 (EXT 시리즈)
파일 시스템 | 설명 |
EXT | - 리눅스 초기에 사용되던 시스템 - 호환성 없음 - EXT2의 원형 - 2GB의 데이터와 파일명 255자까지 지정 가능 |
EXT2 | - 고용량 디스크 사용을 염두하고 설계된 파일 시스템 - 호환과 업그레이드가 쉬움 - 4TB 파일 크기까지 지원 - 설정 방법) mke2fs - t ext2 |
EXT3 | - 리눅스의 대표적인 저널링을 지원하도록 확장된 파일 시스템 - ACL (Access Control List)를 통한 접근 제어 지원 - 16TB의 파일 크기까지 지원 - 설정 방법 1) mke2fs -j - 설정 방법 2) mke2fs -t ext3 |
EXT4 | - 파일에 디스크 할당 시 물리적으로 연속적인 블록을 할당 - 64비트 기억 공간 제한을 없앰 - 16TB 파일 크기까지 지원 - 설정 방법 1) mke2fs -t ext4 |
3. 저널링 파일 시스템 (JFS, XFS, ReiserFS, EXT3)
파일 시스템 | 설명 |
JFS | - Journaling File System의 약자 - IBM사의 독자적인 저널링 파일 시스템 - GPL로 공개하여 현재 리눅스용으로 개발 |
XFS | - eXetended File System의 약자 - 고성능 저널링 시스템 (SGI 제작) - 64bit 주소 지원 및 확장성 있는 자료 구조와 알고리즘 사용 - 데이터 읽기/쓰기 트랜잭션으로 성능 저하를 최소화 - 64bit 파일 시스템으로 8EB까지의 대용량 파일도 다룰 수 있음 |
ReiserFS | - 독일의 한스 라이저가 개발한 파일 시스템 - 모든 파일 객체들을 B트리에 저장, 간결한 색인화된 디렉터리 지원 |
4. 네트워크 파일 시스템
파일 시스템 | 설명 |
SMB | - Server Message Block - 옵션) smbfs - 삼바 파일 시스템을 마운트 지정 - 윈도우 계열 OS 환경에서 사용되는 파일/프린터 공유 프로토콜 - 리눅스, 유닉스 계절 OS와 윈도우 OS와의 자료 및 하드웨어 공유 (다른 OS와 자료 및 HW 공유 용이) |
CIFS | - Common Internet File System - SMB를 확장한 파일 시스템 - SMB를 기초로 응용하여 라우터를 뛰어넘어 연결할 수 있는 프로토콜 |
NFS | - Network File System - 옵션) nfs - 동일 OS간 RPC를 기반으로 파일 공유시 사용 권장 - 파일 공유 및 파일 서버로 사용하고, 공유된 영역을 마운트할 때 지정 - HW, OS 또는 네트워크 구조가 달라도 공유 가능 - NFS 서버의 특정 디렉터리를 마운트하여 사용 가능 |
EXT4 | - 파일에 디스크 할당 시 물리적으로 연속적인 블록을 할당 - 64비트 기억 공간 제한을 없앰 - 16TB 파일 크기까지 지원 - 설정 방법 1) mke2fs-t ext4 |
5. 기타 파일 시스템
파일 시스템 | 설명 |
FAT | - Windows NT가 지원하는 파일 시스템 중 가장 간단한 시스텥ㅁ - 옵션) vfat - FAT로 포맷된 디스크는 클러스터 단위로 할당하며, 클러스터 크기는 볼륨 크기에 따라 결정 - 읽기 전용, 숨김, 시스템 및 보관 파일 특성만 지원 - 삼바 파일 시스템을 마운트 지정 |
VFAT | - Virtual FAT - FAT 파일 시스템이 확장된 것으로 FAT보다 제한이 적음 - 파일 이름도 최고 255자까지 만들 수 있음 (= EXT) - 공백이나 여러 개의 구두점도 포함 |
FAT32 | - SMB를 확장한 파일 시스템 - 다중 부팅 가능 - 파일 크기 최대 4GB, 파티션 크기 최대 32GB |
NTFS | - 윈도우에서 사용하는 파일 시스템 - 옵션) ntfs - 안정성이 뛰어나고 대용량 파일도 저장 - 파일 크기 및 볼륨은 이론상 최대 16EB이지만, 실질적으로 2TB가 한계 |
ISO 9660 | - CD-ROM의 표준 파일 시스템 - 옵션) loop - 1988년에 재정된 표준 |
UDF | - Universal Disk Format의 약자로 최신 파일 시스템 형식 - 광학 매체용 파일 시스템 표준 - ISO 9660 파일 시스템을 대체하기 위한 것으로 대부분 DVD에서 사용 |
HPFS | OS/2 운영체제를 위해 만들어진 파일 시스템 |
6. 관련 명령어
mount & umount
: mount [option] [device] [directory]
: 마운트는 특정 디바이스를 특정 디렉터리처럼 사용하기 위해 장치와 디렉터리를 연결
: 리눅스는 PnP (Plug and Play)를 지원하지만, 지원하는 HW가 많지 않으므로 시스템 부팅 후 수동으로 마운트한 뒤 사용을 끝낸 뒤에는 직접 언마운트 시켜야 함
: /etc/mtab에 현재 마운트된 블록 시스템 정보 표시
: 옵션 정보
- -a: /etc/fstab에 명시된 파일 시스템 마운트 시 사용
- -t 타입명: 파일 시스템 유형 지정 시 사용
- -o 항목명: 추가 설정 및 다수 옵션 지정시 사용
항목명 ro: 읽기 전용
항목명 rw: 읽기 및 쓰기, 기본 지정
항목명 remount: 재마운트
항목명 loop: iso 9660 마운트 시 사용
항목명 noatime: atime 변경 제어로 작업 성능 향상
eject
: 이동식 보조기억장치등과 같은 미디어를 해제하고 장치를 제거하는 명령어
: 이전에 umount (자동) 필수 수행!
fdisk
: 새로운 파티션의 생성, 기존 파티션의 삭제, 파티션의 타입 결정 등의 작업 수행
: 한 번에 한 디스크에 대해서만 작업 수행
: 명령어 저장 위치 /sbin/fdisk: 디스크 파티션에 부여된 UUID 값 확인시 'blkid' 명령어 사용
: 옵션 정보
- -l: 현재 디스크 및 파티션 조회
- -n: 신규 파티션 추가
- -t: 파티션 종류 변경
SWAP - 82, Linux - 83, LVM - 8e, RAID - fd, FAT32 - b - -p: 파티션 테이블로 설정 보기
- -m: 메뉴 보기
- -a: 부트 가능 플래그로 변경
- -d: 뒷번호부터 차례대로 파티션 삭제
- -w: 파티션 설정 저장
mkfs
: 리눅스 파일 시스템 생성
: fdisk로 하드디스크 파티션을 나눈 후 해당 파티션에 맞는 파일 시스템 생성
mke2fs
: ext2, ext3, ext4 타입의 리눅스 파일 시스템을 생성하는 명령어
fsck
: 파일 시스템의 무결성 점검 및 대화식으로 복구
: 결함이 있는 파일에 대한 정보가 저장되는 디렉토리 /etc/lost+found를 사용하여 점검 및 복구
e2fsck
: ext2, ext3, ext4 타입의 리눅스 파일 시스템을 복구하는 명령어
du
: Disk Usage 약자로 디렉터리별 디스크 사용량 확인
df
: 시스템에 마운트된 하드 디스크/파티션의 남은 용량을 확인할 때 사용하는 명령어
: 기본적으로 1024Byte 블록 단위로 출력
: 옵션 -h 보기편하게, -T 타입 출력
출처: https://thinking-developer.tistory.com/52 [생각하는 개발자:티스토리]
Shell (https://thinking-developer.tistory.com/53)
1. 셸이란
이미지 출처: https://c11.kr/kfky
: 사용자와 커널 사이의 명령어 해석기
: 로그인할 때 실행되어 사용자별로 사용 환경 설정을 가능하게 함
: 강력한 스크립트 언어
: 입출력 방향 재지정과 파이프 ( | ) 기능을 제공
: 포어/백그라운드 프로세스 실행
2. 종류
: 본셸($) 계열와 C셸(%) 계열로 나뉨
: 대부분의 셸은 본셸 계열의 기능을 포함하여 확대 발전한 혀태
: C셸은 본셸의 모든 기능과 명령어 히스토리 별명, 작업 제어 기능을 추가로 가지고 있음
: 아래의 표는 왼쪽에서 오른쪽으로 갈수록 나중에 나온 것임
: dash - POSIX와 호환되는 /bin/sh를 작계 구현한 셸로, 빠른 작업 수행이 특징이지만 히스토리 등 명령 지원 X
본셸 (bourne shell) | C셸 (csh) | tcsh | ksh | bash |
- 스티브 본 개발 - 최초의 셸 |
- 빌 조이 개발 - 히스토리 기능 제공 - 별칭(alias) 기능 제공 |
- csh를 확장한 것 - 명령어 행 자동 완성 - 명령어 행 편집 기능 |
- 데이비드 콘 개발 - csh를 포함하여 본셸과도 호환 |
- 브라이언 폭스 개발 - GNU 프로젝트에서 개발 - 히스토리, 자동완성 등 앞서 개발한 기능 대부분 제공 - 리눅스에서 가장 多 사용 |
: bash 셸의 주요 기능
1) History 기능
- 일정 개수 이상 사용했던 명령어를 bash_history에 저장해두고 다시 불러서 사용할 수 있게 하는 기능
- 대부분의 셸은 이전에 입력했던 명령어를 반복하거나 약간 변형하여 다시 사용할 수 있도록 하는 기능
2) alias 기능
- 자주 사용하는 명령어를 특정 문자로 입력해두고 간편하게 사용할 수 있게 하는 기능
- alias 별칭='명령어'
- 별칭 해제 명령어는 unalias
- 별칭 목록 확인 시 명령어는 alias
3. 셸 확인 및 변경
로그인 셸 확인
: 파일 /etc/shell 에서 사용할 수 있는 셸들을 확인할 수 있음 (ls -l /etc/shell)
: 파일 /etc/passwd 파일에서 계정마다 할당된 셸을 확인할 수 있음
: 명령어 echo $SHELL은 현재 로그인한 사용자가 사용하고 있는 셸을 확인할 수 있음
: 로그아웃 시 실행할 명령은 bash-logout에 입력
셸 변경
: 로그인 셸 변경은 반영구적인 셸 변경 방법으로 관리자가 셸 변경 후 다음 변경을 하기 전까지 지정된 셸 사용
: 명령어 chsh - 일반 사용자 환경에서 셸 변경 시 사용
: 명령어 usermod - 관리자 환경에서 지정된 계정자의 정보를 변경할 때 사용하는 명령어
4. 환경 변수와 셸 변수
환경 변수 (전역 변수, env)
: 전체 셸에서 사용 가능한 전역 변수
: 서브 셸에 기능 상속 가능
: 환경 변수 확인 명령 env (printenv)
: 대표적인 환경 변수의 예
- $SHELL: 현재 사용자가 사용중인 셸
- $TERM: 터미널 종류의 이름
- $LANG: 기본 자원 언어
- $PS1: SHELL 프롬프트 선언 (기본)
- $PS2: 2차 SHELL 프롬프트 선언 (보조)
1. LOGIN : 로그인 세션을 나타내는 쉘 환경변수
2. USER : 현재 사용자 이름을 나타내는 환경변수
3. SHELL : 현재 사용중인 쉘경로를 나타내는 환경변수
4. BASH : bash 쉘에 대한 정보를 나타내는 환경변수
셸 변수 (지역 변수, set)
: 현재 로그인 셸에서만 사용 가능한 지역 변수
: 서브 셸에 기능 상속 불가능
5. 환경 설정 파일
: 셸 시작 시 자동으로 실행되는 고유의 시작 파일이 있음. 이 파일은 사용자 운영 환경을 결정
: 배시셸의 시작 파일
- /etc/profile: 전체 환경 설정
- /etc/bashrc: 전체 변수 설정
- ~/.bash_profile: 사용자별 환경 설정
- ~/.bashrc: 사용자별 변수 설정
: 셸 파일은 전역적 파일과 지역적 파일로 나뉨
: 파일 /etc/profile.d는 몇몇 응용 프로그램들이 시작 시 자동 실행할 스크립트 파일 경로를 넣어둠
출처: https://thinking-developer.tistory.com/53 [생각하는 개발자:티스토리]
프로세스 관리
1. 프로세스란
: CPU와 메모리를 할당받아 실행중인 프로그램
: 프로세스들마다 고유의 프로세스 ID, 즉 PID를 할당받는다
리눅스 프로세스 트리. 출처: https://slidesplayer.org/slide/11214656/
2. 프로세스의 유형
포어그라운드 프로세스 (Foreground Process)
: 사용자와 상호작용하는 프로세스
: 터미널에 직접 연결되어 입출력을 주고 받는 프로세스
: 명령 입력 후 수행 종료까지 기다려야하는 프로세스
: 화면에서 실행되는 것이 보이는 프로세스
: 예) 응용프로그램, 명령어 등
: fg %작업번호 (작업번호는 jobs 명령어로 확인가능)
백그라운드 프로세스 (Background Process)
:사용자와 직접적인 대화를 하지 않고 뒤에서 실행되는 프로세스
: 최상위 프로세스 init (PID: 1)
: 사용자의 입력에 관계없이 실행되는 프로세스
: 실행은 되지만 화면에 나타나지 않고 실행되는 프로세스
: 예) 시스템 프로그램, 데몬(Demon) 등
: bg %작업번호&
데몬(Demon)
: 리눅스 시스템이 부팅 시 자동으로 실행되는 백그라운드 ㅡ로세스
: 메모리에 상주하면서 사용자의 특정 요청이 오면 즉시 실행되는 대기 중인 서버 프로세스
: 주기적이고 지속적인 서비스 요청을 처리하기 위해 사용
: 사용자들은 이 프로세스들을 볼 수 있는 권한이 없음
standalone | inetd |
- 데몬이 백그라운드에서 상시 대기하여 바로 요청처리 - 요청 시 바로 고속으로 처리 - 시스템 자원 많이 사용 |
- inetd의 확장 데몬인 xinetd의 요청이 있을 때만 동작 - 외부의 요청 시에만 저속으로 동작 - 리소스 소모가 적음 |
fork & exec
fork | exec |
- 새로운 프로세스를 만들 때 기존 프로세스를 복제 - 새로운 프로세스를 위한 메모리 할당 - 새로 생성된 프로세스는 원래의 프로세스와 똑같은 코드 有 - 원본 프로세스 = 부모 프로세스 - 복제 프로세스 = 자식 프로세스 |
-호출하는 프로세스가 새로운 프로세스로 변경 - 새로운 프로세스를 위한 메모리 할당 없음 - 호출한 프로세스의 메모리에 새로운 프로세스의 코드 덮어씌움 |
프로세스 상태 전이도. 출처: http://jangun.com/study/LINUX.html
출처: https://thinking-developer.tistory.com/54 [생각하는 개발자:티스토리]
SSH
옵션 | 내요 |
-a | 인증 에이전트 전송을 불허 |
-e | 세션에 대한 이스케이프 문자를 설정 |
-f | 인증과 전송이 설정된 후에 백그라운드에서 ssh를 설정 |
-l | 원격 시스템에 사용할 로그인 이름을 설정 |
-p | 원격 호스트에 연결할 포트를 지정 |
-v | 디버깅모드 자세한 정보 표시 모드를 활성 |
-x | X11 전송을 불가능하게 설정 |
-L | 지정된 원격 호스트와 포트에 전송할 로컬 포트 설정 |
-R | 로컬 호스트와 지정된 포트로 전송될 원격 포트 설정 |
ex ) ssh [원격 계정]@[원격지_ip] -p [변경할 포트] ( 포트 변경 시 지정해서 접속 )
ssh [원격 계정]@[원격지_ip] netstat -ntl ( 원격 접속 후 바로 수행할 명령문 입력도 가능합니다.)
1. 프로세스 관련 명령어
ps
: 현재 실행중인 프로세스의 상태를 프로세스 번호와 함께 출력해주는 명령어
: CPU 사용도가 낮은 순서로 출력
옵션
- -a: 터미널과 연관된 모든 프로세스 출력
- -u: 프로세스 소유자를 기준으로 출력
- -x: 터미널에 종속되지 않은 프로세스도 출력 (예: 데몬)
상태코드
- Z (zombie): 작업종료, 하지만 부모 프로세스부터 회수되지 않아 메모리를 차지하고 있을 경우
- T (stopped): 작업 정지
ps 명령어 실행 결과
pstree
: 실행 중인 프로세스들을 트리 구조로 출력
jobs
: 작업이 중지된 상태, 박그라운드로 진행 중인 상태, 변경되었지만 보고되지 않은 상태 등 표시
: 백그라운드로 실행중인 프로세스를 확인
: [숫자]는 작업번호
: +는 실행중인 작업, -는 실행 예정 작업
bg/fg
: 포어그라운드에서 백그라운드로 전환 (bg %작업번호 또는 bg 작업번호)
: 백그라운드에서 포어그라운드로 전환 (fg %작업번호 또는 fg 작업번호)
: 작업 전환 전 실행중인 것은 잠시 정지 필요 (프로세스 시그널 전송 필요)
kill
: 프로세스를 번호(PID)를 사용하여 종료
: 시그널 목록을 확인하는 명령어 kill -l
: 특히 HUP, INT, QUIT, KILL, TERM, STOP, TSTP와 단축키에 관련해서는 매우 자주 출제됨
번호 | 시그널명 | 설명 |
1 | HUP | HangUP. 로그아웃 등 접속 종료 시 |
2 | INT | Interrupt. 일시정지. 단축키 Ctrl+C |
3 | QUIT | 실행중지. 단축키 Ctrl+\ |
4 | ILL | Illegal Instruction |
5 | TRAP | Trace Breakpoint에서 중지점 발생 시 |
9 | KILL | 프로세스 강제 종료 |
15 | TERM | 가능한 프로세스 정상 종료 - Default |
18 | CONT | STOP으로 정지된 프로세스 실행 |
19 | STOP | 정지 시그널 |
20 | TSTP | 실행 정지 후 재실행을 위해 대기. 단축키 Ctrl+Z |
killall
: 같은 데몬의 여러 연관된 프로세스들을 프로세스 이름으로 종료
nice
: 프로세스 사이의 우선순위를 확인하고, 프로세스명을 사용하여 우선순위를 변경할 수 있는 명령어
: 조정할 수 있는 NI값의 범위는 -20 ~ 19 (우선순위 높음 ~ 낮음)
: 우선순위 default 값은 0, 값이 작을수록 우선순위가 높다
: 옵션 -n을 사용하지 않으면 default는 10
: 조정 수치가 생략되면 명령의 우선권은 10만큼 증가
: 사용자가 조정가능한 NI 값에 따라, 실제 프로세스 우선순위인 PRI가 조정됨
예) nice -10 bash: bash 프로세스 값을 10만큼 증가 (우선순위 낮춤)
예) nice --10 bash: bash 프로세스 값은 10만큼 감소 (우선순위 높임)
renice
: 이미 실행중인 프로세스의 우선순위를 PID 번호를 사용하여 변경
: nice와 달리, 지정한 NI값으로 설정
예) nice 10 PID번호: PID번호에 일치하는 프로세스 NI값을 10으로 설정
예) nice -10 PID번호: PID번호에 일치하는 프로세스 NI값을 -10으로 설정
top
: 리눅스 시스템 운영 상태를 실시간으로 모니터링, 프로세스 우선순위 변경, 프로세스 상태 확인 명령어
: top는 합산한 CPI 사용률 출력 / ps는 특정시기 CPU 사용량을 출력
추가 입력 명령
- q: 종료
- k: 프로세스 kill-9
- m: 메모리 ON/OFF
- t: 프로세스와 CPU의 ON/OFF
- p: 옵션 지정 프로세스 ID 출력
- w: 설정 저장
top 명령어 실행 결과
nohup
: 프로세스가 중단되지 않고 백그라운드로 작업을 수행할 수 있게 함
: 사용자가 로그아웃하거나, 작업 중인 터미널 창이 닫혀도 실행 중인 프로세스를 백그라운드 프로세스로 계속 작업할 수 있도록 함
: 용량이 큰 데이터 압축 해제와 같은 실행이 오래 걸리는 프로세스들에 대해 nohup으로 처리하여 작업하면, 작업 중단 없이 해당 업무를 완료할 수 있음
: 해당 작업 중 표준 출력/에러는 nohup.out에 저장
: 백그라운드로 실행될 수 있도록 명령행 뒤에 &를 명시
tail
: 파일의 마지막 행을 기준으로 지정한 행까지 파일 내용의 일부를 출력
: 기본값으로 마지막 10줄을 출력
2. 스케줄링과 cron
cron/crontab
: 사용자가 주기적인 작업을 등록할 수 있도록 함
: 스케줄링 데몬은 crond
: 관리자 시스템 작업 내용은 /etc/crontab에 저장
: 시스템 개별 사용자용 작업 내용은 /var/spool/cron에 저장
: [분] [시] [일] [월] [요일] [사용자명] [작업명령]
: n단위로 반복시에는 */n 로 표기
옵션
- -i: 확인(information)
- -l: 예약 작업 확인
- -e: 예약 작업 편짐
- -r: 예약 작업 삭제
- -u 사용자명: root가 해당 사용자의 작업 삭제/편집/조회
출처: https://thinking-developer.tistory.com/55 [생각하는 개발자:티스토리]
에디터
에디터 종류
1. 개요
: 리눅스에서 지원하는 편집기로는 vi, emacs, nano, pico, gedit, xedit 등이 있음
: 리눅스 편집기는 편집기를 통해 파일을 수정
2. 종류
pico
: 워싱턴 대학의 Aboil Kasar가 개발한 유닉스 기반의 텍스트 에디터
: 메뉴 선택 방식의 텍스트 편집기로 기본 인터페이스가 윈도우의 메모장(notepad)과 유사
: 자유 소프트웨어 라이선스가 아니기 때문에 소스 수정이 불가능
: 다른 편집기에 비해 사용하기가 쉽고 편리하지만, 기능이 부족하고 업데이트가 잘 안됨
: 단락 정의, 맞춤법 검사, 복사 및 붙여넣기 가능
nano
: GNU 프로젝트에서 pico의 복제 버전 에디터인 nano를 개발
: 자동 들여쓰기, 정규표현식 검색, 구문 강조 등의 기능 제공
: 단축키를 통한 도움말 제공
emacs (잘나옴)
스톨만!!!! 고슬링!!
: 리처드 스톨만이 매크로 기능이 있는 텍스트 교정 및 편집기로 개발
: 최초의 개발자는 리처드 스톨만이며, 이후 제임스 고슬링이 LISP 언어를 기반하여 emacs에 다양한 기능 개발 추가
: LISP에 기반을 둔 환경 설정 언어를 가지고 있음
: 텍스트 뿐만 아니라 그래픽 모드도 지원
vi
빌조이!!!
: 1976년 빌 조이가 초기 BSD 릴리즈에 포함될 편집기로 개발
: 리눅스 배포판과 유닉스에 기본적으로 포함되어 있음
: 유닉스 환경에서 가장 많이 쓰이는 문서 편집기
: 다른 편집기들과 다르게 모드형 편집기
: 명령모드, 입력모드, 편집모드로 구성
: 지속적인 vi 에디터 설정은 .exrc 파일에 설정
vim
무레나르!!
: 브람 무레나르가 만든 편집기
: vi 편집기와 호환되면서 독자적으로 다양한 기능을 추가하여 만든 편집기
: 편집 시 다양한 색상을 이용하여 가시성을 높일 수 있음
: 패턴 검색 시 하이라이트 기능을 제공하여 빠른 검색을 가능하게 해줌
: ex모드에서 히스토리 기능을 제공
: 확장된 정규 표현식 문법과 강력한 문법 강조 기능을 가짐
gedit
: GNOME 데스크톱 환경으로 개발된 자유 소프트웨어 텍스트 편집기
: 마이크로소프트 윈도우, 맥 OS 등에서도 사용 가능
: UTF-8과 호환하며 텍스트 문서를 편집하는 용도에 중점을 두었음
: X 윈도우 시스템에 맞춰 개발되었음
: GTK+와 GNOME 라이브러리를 이용하여 개발되었음
: 텔넷 접속 시나 텍스트 기반 콘솔 창에서는 사용 불가
출처: https://thinking-developer.tistory.com/56 [생각하는 개발자:티스토리]
https://thinking-developer.tistory.com/57
1. pico 에디터 사용법
: Aboil Kasar 가 개발한 유닉스 기반의 텍스트 에디터
: 윈도우의 메모장(notepad)과 유사
: 쉽고 간편하지만, 기능이 부족하며 업데이트가 잘 되지 않음
단축키 | 기능 |
[Ctrl] + [O] | 파일 저장 |
[Ctrl] + [X] | 파일 종료. 종료 시 저장이 안되어 있으면 저장할 것인지 물어봄 |
[Ctrl] + [R] | 현재 커서 위치에 다른 파일을 불러옴 |
[Ctrl] + [A] | 현재 행의 맨 앞으로 이동 |
[Ctrl] + [E] | 현재 행의 맨 끝으로 이동 |
[Ctrl] + [V] | 이전 페이지로 이동 |
[Ctrl] + [Y] | 다음 페이지로 이동 |
[Ctrl] + [C] | 현재 커서의 위치를 표시 |
[Ctrl] + [T] | 영문자의 철자를 확인 |
[Ctrl] + [W] | 키를 누르고 문자열을 입력하면 원하는 문자열을 찾음 |
[Ctrl] + [K] | 현재 라인을 삭제 |
[Ctrl] + [U] | 마지막으로 삭제된 라인을 복구 |
[Ctrl] + [I] | 화면 갱신 |
2. emacs 에디터 사용법
: 리처드 스톨만이 개발한 텍스트 교정 및 편집기
: 매크로 기능이 있음
: 이후 제임스 고슬링이 LISP 언어를 기반하여 다양한 기능을 추가
단축키 | 기능 |
[Ctrl] + [X] [Ctrl] + [S] |
파일 저장 |
[Ctrl] + [X] [Ctrl] + [C] |
편집 종료 |
[Ctrl] + [W] | 잘라내기 |
[Ctrl] + [K] | 커서 뒤에 있는 한 줄이 모두 지워짐 |
[Ctrl] + [A] | 커서를 줄의 맨 앞으로 이동 |
[Ctrl] + [E] | 커서를 줄의 맨 뒤로 이동 |
[Ctrl] + [P] | 커서를 한 줄 위로 이동 |
[Ctrl] + [N] | 커서를 한 줄 아래로 이동 |
[Ctrl] + [S] | 커서의 아랫부분에서 찾을 문자열을 검색 |
[Ctrl] + [R] | 커서의 윗부분에서 찾을 문자열을 검색 |
[Ctrl] + [G] | 진행되고 있는 명령을 끔 |
3. vi 에디터 사용법
: 1976년 빌 조이가 초기 BSD 릴리즈에 포함시키기 위하여 개발한 편집기
: 리눅스 배포판과 유닉스에 기본적으로 포함되어 있음
: 유닉스 환경에서 가장 많이 쓰이는 문서 편집기
: 다른 편집기들과 다르게 모드형 현집기
: 명령모드, 입력모드, 편집 모드로 구성
: 지속적인 vi 에디터 설정은 .exrc에 설정
분류 | 단축키 | 기능 |
명령 모드에서 입력 모드로 전환 |
a | 커서 다음(오른쪽)에 입력 |
A | 행 마지막 부분에 입력 | |
i | 커서 앞(왼쪽)에 입력 | |
I | 행 처음 부분에 입력 | |
o | 커서 밑에 빈 행을 추가하여 입력 | |
O | 커서 위에 빈 행을 추가하여 입력 | |
s | 커서에 있는 글자를 지우고 입력 | |
입력 모드에서 명령 모드로 전환 |
ESC | 입력 모드에서 명령 모드로 전환 |
저장 및 종료 | :q | 종료 |
:q! | 저장하지 않고 강제 종료 | |
:wq | 저장 후 종료 | |
ZZ | 저장 후 종료 (:wq와 동일) | |
:wq 파일 이름 | 저장 시 파일 이름 지정 가능 (비정상 종료시 .swp 파일 자동 생성) |
|
커서 이동 | h,j,k,l | 좌, 하, 상, 우 커서 이동 (방향 키 없는 키보드 사용 시 사용) |
w | 다음 단어의 첫 글자로 이동 | |
b | 이전 단어의 첫 글자로 이동 | |
G | 마지막 행으로 이동 | |
:숫자 | 지정한 숫자 행으로 이동 예) :5 | |
삭제 | x | 커서에 있는 글자 삭제 |
X | 커서 앞에 있는 글자 삭제 | |
dw | 커서 뒤에 있는 단어, 커서 포함 글자 삭제 (숫자 지정 가능) | |
db | 커서 기준 앞에 있는 단어 글자 삭제 (숫자 지정 가능) | |
dd | 커서가 있는 라인(줄) 삭제 (숫자 지정 가능) | |
복사 | yw | 커서 뒤에 있는 단어, 커서 포함 글자 복사 (숫자 지정 가능) |
yb | 커서 앞에 있는 단어 글자 복사 (숫자 지정 가능) | |
yy | 커서가 있는 라인(줄) 복사 (숫자 지정 가능 | |
붙여넣기 | p | 커서 다음에 붙여넣기 |
P | 커서 이전에 붙여넣기 | |
찾기 | /문자열 | 앞에서부터 문자열 찾기 |
?문자열 | 뒤에서부터 문자열 찾기 | |
n | 뒤로 검색 | |
N | 앞으로 검색 | |
바꾸기 | :%s/old/new | 각 행의 처음 나오는 old를 찾아 new로 바꿈 |
:%s/old/new/g | 모든 old를 찾아 new로 바꿈 | |
:%s/old/new/gc | 모든 old를 찾아 new로 바꾸기 전에 물어봄 | |
되돌리기 | u | 이전으로 되돌리기 (undo) |
다시실행 | Ctrl + r | 되돌리기 한 것을 다시 실행하기 (redo) |
그 외 | :set number | 행 번호를 출력 (간단하게 :set nu) |
:set nonumber | 행 번호를 숨김 (간단하게 :set nonu) | |
:cd | 현재 디렉토리 출력 |
출처: https://thinking-developer.tistory.com/57 [생각하는 개발자:티스토리]
소프트웨어
1. 계열
데비안(Debian) 계열
배포 업체: Debian, Ubuntu, Xandros, Linspire
패키지 툴: dbkg, apt-get, aptitude
레드햇(Red-Hat) 계열
배포 업체: Fedora, CentOS, RHEL, Mandirva
패키지 툴: rpm, yum->dnf 개선됨
오픈수세(OpenSUSE) 계열
패키지 툴: yaST, zypper
배포판 기본패키지관리기법 온라인패키지관리기법
레드햇 RPM YUM
데비안 Dpkg apt-get
수세 YaST zypper
rpm -ql~~~ : 패키지가 설치한 설치한 파일목록을 출력.
rpm -qa : 시스템에 설치된 모든 패키지 정보를 출력.
rpm -qip~~~.rpm : 패키지 파일에 대한 정보를 출력.
[검증(Verify)모드]
rpm -qV~~~ : 패키지를 검증한다.
2. 데비안 계열 패키지 툴
dpkg
: 데비안의 저레벨 패키지 관리 툴
: deb 패키지의 설치, 삭제, 정보 제공을 위해 사용
: 확장자는 .deb
: 패키지 설치 및 제거 시 rpm과 같은 의존성 무제 발생
옵션
- i: 패키지 설치
- l: (L의 소문자)설치된 패키지 목록 확인
- I: (i의 대문자) 패키지 정보
- s 패키지명: 지정된 패키지에 대한 자세한 정보
- c: 패키지 파일 정보
- L: 패키지 파일 목록
- r: 환경 설정을 제외하고 패키지 제거
- P: 환경 설정을 포함하여 패키지 제거
apt-get
: 데비안 리눅스에서 소프트웨어 설치와 제거를 위한 패키지 관리 유틸리티
: dpkg의 의존성 문제를 해결하기 위해 /etc/apt/source.list 파일 참조
aptitude
이미지 출처: https://www.tecmint.com/difference-between-apt-and-aptitude/
: 우분투 패키지 관리 유틸리티
: apt 처럼 패키지 관리를 자동화
3. 레드햇 계열 패키지 툴
rpm
: 레드햇 사에서 만들어냇 패키지 툴
: 새로운 패키지를 설치(옵션 i), 업그레이드(옵션 U)하거나, 삭제(옵션 e) 시 사용
: Windows의 setup.exe와 유사하게 만든 프로그램
: 레드햇 계열의 패키지 파일 확장명은 *.rpm
: 의존성 문제 때문에, 최근에는 yum 사용하는 것을 권장
옵션
- v: 메세지 자세히 출력
- h: 설치 과정을 '#'로 표시
- V: 검증 과정 포함
- F: 설치된 것만 업데이트하도록 함
- q: 질의 시 사용하는 옵션
- i: 질의시 패키지 정보도 함께 확인
- a: 모든 패캐지 목록 확인
- l: 패키지 내 모든 파일 확인
- R: 의존성 정보 확인
- f: 지정한 형태로 cnffur
- [설치 시 주로 사용하는 옵션조합] ivh, Uvh, Fvh
- [검색 시 주로 사용하는 옵션조합] qi, qa, ql, qf
- [검증 시 주로 사용하는 옵션조합] Va
yum
: 네트워크를 통해 기존 rpm 패키지 파일의 업데이트 자동 수행
: 새로운 패키지 설치 및 제거 수행
: 명령어 저장소 주소는 /etc/yum.repos.d
: rpm의 의존성 문제를 해결하기 위한 유틸리티
: 인터넷을 기반으로 설치하므로 네트워크가 정상적으로 연결된 상태여야 함
: yum은 Fedora 22버전 이후부터 yum의 문제점을 보완한 DNF로 전환되고 있음
주요 명령어
- install: 패키지 설치 (의존성있는 패키지도 함께 설치)
- update: 패키지 업데이트 (-y 옵션을 줄 경우, 묻지 않고 모두 업데이트)
- check-update: 업데이트 될 패키지의 목록을 출력
- remove: 패키지 삭제 (의존성있는 패키지들도 함께 삭제)
- list: 저장소 서버에 있는 모든 패키지 목록 확인
- info: 패키지 정보 확인
4. 오픈수세 계열 패키지 툴
yaST
: 패키지 설치부터 부트로더 설정까지 제공하는 리눅스 통합관리 툴
: 포트 설정, SSHD 기능 설정, 방화벽 설정, 온라인 업데이트, 소프트웨어 설치/제거, 보조 장치 관리, 시스템 백업/복구, 네트워크 설정, 서버 설정, 방화벽, 사용자 관리 등의 기능을 제공
: 명령어 입력 없이도 이용 가능
zypper
: 오픈 수세 계열의 콘솔에서 프로그램 패키지 관리와 원본 저장소를 관리하는 유틸리티
: 용도는 원보 저장소 추가 및 제거, 프로그램 설치 및 삭제로 나뉘어짐
옵션
- install: 패키지 설치
- update: 패키지 업데이트
- info: 패키지 정보 확인
- se: 문자열과 연관된 패키지 이름 출력
출처: https://thinking-developer.tistory.com/58 [생각하는 개발자:티스토리]
설치 장치 설정
출처: https://gocoder.tistory.com/1786 [고코더 IT Express:티스토리]
1. 파일 아카이브와 압축
파일 아카이브
: 아카이브는 다수 개의 파일이나 디렉터리를 하나의 파일로 묶는 것
: 아카이브 파일은 다른 시스템으로 다수 개의 파일을 한 번에 전송하거나 파일 백업용으로 사용
파일 압축과 해제
대표적인 파일 압축명과 압축률:
(압축률 높음=파일이 작아짐) xz > bzip2 > gzip > compress (압축률 낮음= 파일이 큼)
- compress ↔ uncompress: 유닉스에서 주로 사용. LZW 압축 알고리즘.
- (tar 옵션: z) gzip ↔ gunzip: 가장 많이 사용. LZ77 알고리즘. 허프만 부호화 (-l 정보, -v 과정, -d 압축해제) -
- (tar 옵션: j) bzip2 ↔ bunzip2: 가장 많이 사용. 블록정렬 알고리즘. 허프만 부호화
- ( tar 옵션: J) xz ↔ unxz: 가장 압축률이 높음
명령어 및 옵션
tar 명령어를 사용하여 다양한 압축명으로 압축 및 압축 해제 가능
- -c: tar로 파일 묶기(압축)
- -x: tar 압축 해제
- -p: 파일 권한 저장
- -v: 과정 출력
- -f: 파일 이름 지정
- -r: 마지막 추가
- -t: 목록 나열
- -C: 경로 지정
- -z: gzip 압축/해제
- -j: bzip2 압축/해제
- -J: xz 압축/해제
cvf 기본적으로 압축한다고 생각하면 됨
xvf 기본적으로 압축 풀기
tvf 기본적으로 아카이브 내용 확인이라고 생각하면 됨
z : gz 파일관련
j : bz2 파일관련
* 은 항상 뒤에 붙는다 생각!! "*" : 모든을 뜻함
2. 소스 코드 설치
[방법 1] configure → make (makefile) → make install
- 환경설정(configure): /configure 프로그램 설치 과정에서 필요로 하는 환경파일 makefile 생성
☞ 환경설정 파일의 역할: 어떤 프로그램을 컴파일하고 링크해야하는가를 make에게 설명해주는 역할
☞ make clean: configure로 생성된 다양한 파일 제거 - 컴파일(make makefile): make makefile을 기반으로 소스파일을 컴파일하여, 설치 파일(set up) 생성
☞ make dep: 컴파일 전 의존성 검사 - 파일 설치(make install): make install로 컴파일 된 실행파일을 지정된 속성으로 지정된 디렉터리에 설치
: 아카이브는 다수 개의 파일이나 디렉터리를 하나의 파일로 묶는 것
: 아카이브 파일은 다른 시스템으로 다수 개의 파일을 한 번에 전송하거나 파일 백업용으로 사용
[방법 2] cmake → make install
: cmake는 별도의 make 과정 없이 OS에 알맞는 makefile을 생성해줌으로써 훨씬 간편!
: MySQL 등이 사용
정리
- 소스파일 컴파일 설치: gcc, make, tar, cmake
- 패키지 파일 설치 (의존성 문제 有): rpm(redhat), dpkg(debian)
- 자동 설치 도구: yum(redhat), apt-get(debian)
출처: https://thinking-developer.tistory.com/59 [생각하는 개발자:티스토리]
X 윈도 https://rich-mei.tistory.com/43
(1) x-윈도우의 특징과 구성요소
# 개념과 특징
- 리눅스 환경의 각종 애플리케이션과 유틸리티에 대해 그래픽 사용자 인터페이스(GUI)를 제공한다.
참고] 원래 리눅스 환경은 CUI(Command User Interface)
- 플랫폼과 독립적으로 작동하는 그래픽 시스템이다.
- x-윈도우는 x11, x, x-windows system이라 부르기도 한다.
- 오픈 데스크톱 환경으로는 KDE, GNOME, XFCE 등이 있다.
- x-윈도우의 특징
1) 네트워크 기반의 그래픽 환경을 제공한다.
2) 이기종 시스템 사이에서도 사용 가능하다.
참고] windows에서도 삼바와 같은 프로토콜을 이용하여 x-윈도우 화면을 이용할 수 있다.
3) 스크롤바, 아이콘, 색상 등 그래픽 환경 자원들이 특정 형태로 정의되어 있지 않다.(표준화된 x-windows는 없음)
4) 디스플레이 장치에 의존적이지 않으며 원하는 인터페이스를 만들 수 있다.
- x-윈도우는 네트워크 프로토콜(x프로토콜) 기반의 클라이언트/서버 시스템이다.
> 서버 프로그램과 클라이언트 프로그램으로 나누어 작동한다.
(두 개의 개별 소프트웨어 부분에 의해 제어)
> 서버는 클라이언트의 디스플레이어 관련 접근 허용, 클라이언트 간의 자원 공유,
네트워크 메시지 전달, 클라이언트와 입출력 기기의 중계를 담당한다.
> 클라이언트는 애플리케이션으로 x 서버가 제공하는 기능들을 이용한다.
# 구성요소와 종류
1. XProtocol :
- 서버와 클라이언트 사이에서 통신되는 Request, Reply, Event, Error의 기본 메시지이다.
- 서버와 클라이언트 사이에서 정보를 주고받게 해주는 프로토콜
- 메시지 교환방법 규정, 메시지 타입 규정 등 메시지 제어
2. Xlib :
- 클라이언트에서 사용하는 라이브러리이다.
- C나 리스프(LISP) 언어로 만들어짐
- 윈도우 생성, 이벤트 처리, 창 조회, 키보드 처리 등의 라이브러리를 제공한다.
3. XCB :
- 클라이언트에서 사용하는 라이브러리이다.
- Xlib에서 XCB로 대체되어 현재는 XCB를 사용한다.
- Xlib에서 지원하는 것을 모두 XCB에서 지원한다.
- Xlib에 비해 향상된 쓰레드 기능을 가지며, 확장성이 좋다.
4. Xtookit :
- 클라이언트에서 사용하는 라이브러리이다.
- 고급레벨의 GUI 이용 가능하다. (위젯, GUI 구성하는 객체를 만들 수 있음)
5. XFree86 :
- X 윈도우 시스템의 구현체
- 인텔 x86운영체제에서 사용하는 서버 프로그램
- 무료로 사용 가능
- 다양한 환경 설정이 필요함(->xf86config에서 설정)
6. XF86Config :
- XFree86의 환경설정을 담당(설정 파일)
- 폰트, 키보드, 마우스, 모니터, 비디오 카드, 색상 등을 설정
- '/etc/X11' or '/usr/X11R6/lib/X11'에서 볼 수 있다.
- XF86Config는 세부적으로 세 개의 환경설정 파일로 나누어짐
1) Xconfigurator
2) XF86Config
3) XF86setup
참고]
xlib, xcb(저수준 라이브러리) -> GTK+, QT, FLTK, XFome 등의 라이브러리가 있다.
Xtoolkit(고수준 라이브러리) -> XView, Xaw, Motif, XtIntrinsics 등의 라이브러리가 있다.
(2) X-윈도우 설정과 실행
# 파일 /etc/inittab
- init 프로세스가 읽는 파일로, init 프로세스가 무엇을 해야할 것인가를 설정한다.
- 리눅스 사용 환경을 초기화한다.
- 형식) 이름 : 런레벨 : 옵션 : process -옵션
ex> id:3:initdefault: -> 디폴트 런레벨을 3으로 지정 (initdefault 키워드 뒤에는 process 필드가 무시된다.)
런레벨 | 설명 |
0 | halt (Do NOT set initdefault to this) |
1 | Single user mode |
2 | Multiuser, without NFS (The same as 3, if you do not have networking) |
3 | Full multiuser mode (CUI로 부팅) |
4 | unused |
5 | X11( x 윈도우로 부팅) |
6 | reboot (Do NOT set initdefault to this) |
# X-윈도우 실행
- 그래픽 환경이 아닌 터미널 윈도우로 로그인한 경우에는 몇 개의 프로그램을 실행해야 한다.
- 터미널 윈도우의 명령어 프롬프트상에서 다음의 명령어를 실행시켜야 한다.
- 형식) startx -- [인자값]
(일반적으로 화면이 하나가 나오는데 인자값을 입력하면 여러 개의 X-윈도우 프로그램을 구동할 수 있다.)
- 명령어 startx는 X윈도우를 실행하는 스크립트로 시스템 환경을 초기화하고 xint(프로세스)를 호출한다.
- 명령어 startx 실행 시 인자값(argument)을 xinit에 전달하는 옵션은 '--'이다
-> 터미널 모드로 사용하다가 GUI로 변경하려면 startx -- 명령어를 사용
# 환경변수 DISPLAY (x윈도우 관련 환경변수)
- 환경 변수는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 주는 동적인 값이다.
- 셀에서 정의되고 실행하는 동안 프로그램에 필요한 변수이다.
- 환경변수 DISPLAY는 현재 x윈도우 display 위치를 저장할 수 있다.
- 형식) export DISPLAY=IP주소:디스플레이번호.스크린번호 (x윈도우 디스플레이 위치 변경 가능)
(3) 윈도우 매니저와 데스크톱 환경
가장 핵심은 데스크톱 매니저이다.
* 데스크톱 매니저 기반으로 윈도우 매니저, 디스플레이 매니저 활성화되어 사용
# 윈도우 매니저
- 윈도우 매니저는 X-windows상에서 창(window)외 배치와 표현을 담당하는 시스템 프로그램이다.
- 창 열기와 닫기, 창의 생성 위치, 창의 크기 조정, 창의 외향과 테두리를 변화시킬 수 있다.
- 라이브러리는 Xlib와 XCB를 사용한다.
- 리눅스에서 사용 가능한 윈도우 매니저들은 다양하다.
- 윈도우 매니저의 대표적인 종류로는 fvwm, twm, windowMaker, AfterStep 등이 있다.
# 데스크톱 환경(Desktop Environment 또는 Desktop Manager)
- GUI 사용자에게 제공하는 인터페이스 스타일로 데스크톱 관리자라고도 한다.
- 윈도우 매니저, 파일 관리자, 도움말, 제어판 등 다양한 도구를 제공하는 패키지 형태의 프로그램이다.
- 아이콘, 창, 도구 모음, 폴더, 배경화면, 데스크톱 위젯도 제공한다.
- 드래그 앤 드롭(drag & drop)과 프로세스 간의 통보 가능을 지원한다.
- 대표적인 데스크톱 환경에는 KDE, GNOME, LXDE, xfce 등이 있다.
(가장 일반적인 것은 KDE, GNOME)
- 데스크톱 환경에 따라 아이콘, 창, 도구모음, 폴더 등이 다르게 지원
QT라이브러리는 KDE 환경에서 사용.
GTK+는 GNOME 환경에서 사용.
# 디스플레이 매니저
- X window system상에서 작동하는 프로그램이다.
(데스크톱 환경을 설치하면 데스크톱 환경이 사용하는 디스플레이 매니저가 있다)
- 1988년 XTIR3에서 xdm 디스플레이 매니저가 도입되었다.
- 1989년 XTIR4에서 원격제어가 가능하도록 xdmcp(X Display Manager Control Protocol)가 도입되었다.
- 디스플레이 매니저 종류들로는 XDM, GDM, KDM, dtlogin 등이 있다.
- 로컬 또는 리모트 컴퓨터의 X server의 접속과 세션 시작을 담당한다.
- 사용자에게 그래픽 로그인 화면을 띄워주고 아이디와 패스워드를 입력받아 인증을 진행한다.
- 인증이 정상적으로 완료되면 세션을 시작한다.
참고]
XDM : 초창기 사용했으며 현재는 거의 사용하지 않는다.
KDM : KDE 데스크톱 환경에서 사용하는 디스플레이 매니저이다.
GDM : GNOME 데스크톱 환경에서 사용하는 디스플레이 매니저이다. /
GNOME 그래픽 로그인 프로그램을 담당한다. /
gtk 라이브러리를 이용해서 구현되고 있다. /
gnu, gpl기반의 라이센스를 따르고 있다. /
(1) 원격지에서 X 클라이언트 이용
- (원격지에 있는 서버를 접속하기 위해서 클라이언트들이 이용하는 명령어 : xhost, xauth가 있다.)
- (접속을 위해서 인증 필요)
xhost : ip주소기반
xhost + : 모든 호스트 허용
xhost - : 모든 호스트 거부
xhost : 현재 상태 확인
xauth : 인증키 기반
서버에서 인증키 생성 -> 클라이언트 보냄 -> 홈디렉터리에 저장
# xhost :
- IP나 도메인명을 이용해서 서버 접속 요청
- 명령어 xhost는 X 서버에 접속할 수 있는 클라이언트를 지정하거나 해제한다.
- x 서버에게 디스플레이를 요청 시 해당 요청에 대한 허용 거부를 호스트 단위로 제어한다.
- 형식) xhost [+][-] [ip|도메인명]
(특정 IP를 기재하지 않으면 모든 호스트 접속 허용/금지)
- 환경변수 DISPLAY로 x 서버 프로그램이 실행될 때 표시되는 클라이언트 주소를 지정한다.
# xauth :
- xauth는 .Xauthority 파일의 쿠키 내용을 추가, 삭제, 리스트를 출력하는 유틸리티이다.
(.Xauthority 파일에는 mit magic cookie1값을 가지고 있고 이 값을 기반으로 사용자 인증을 하고, 인증된 사용자만 x 서버의 서비스를 클라이언트가 받을 수 있다.)
- 쿠키 값(키) 기반의 인증으로 인증 절차가 xhost보다 강화된 방법
- xhost가 호스트 기반 인증 방식을 사용하기 위해 필요한 유틸릴티라면, xauth는 MMC방식(사용자 인증 기반)의 인증 방식을 사용하기 위한 필수 유틸리티이다.
- 원격지에서 접속하는 x 클라이언트를 허가할 때 IP 주소나 호스트명이 아닌 x-윈도우 실행 시에 생성되는 키 값으로 인증할 때 사용한다.
- 사용자 인증 기반을 지원하기 위해 각 사용자에게 네트워크화된 홈 디렉터리에 파일 $HOME/.Xauthority에 대해 읽기 및 쓰기 권한이 있어햐 한다.
- 형식) xauth [옵션]
(2) X윈도우 응용프로그램
응용프로그램 | 설명 | |
오피스 | LibreOffice | 오피스 프로그램 패키지 |
Gedit | 텍스트 편집 프로그램 | |
Kwrite | KDE 기반의 텍스트 편집기 | |
그래픽 | GIMP | 이미지 편집 프로그램 |
ImageMegick | 이미지를 생성 및 편집을 지원하는 프로그램 | |
Eog | GNOME의 이미지 뷰어 프로그램 | |
Kolourpaint | Ubuntu이미지 편집 프로그램 | |
Gthumb | GNOME 데스트콥 이미지 뷰어 프로그램 | |
Gwenview | KDE의 기본 이미지 뷰어 | |
멀티미디어 | Totem | GNOME 기반의 사운드 및 비디오 재생 프로그램 |
RHYTHMBOX | 통합형 음악 관리 프로그램 | |
CHEESE | GNOME 기반의 카메라 동영상 프로그램 | |
개발 | ECLIPSE | 통합 개발 환경으로 자바를 비롯한 다양한 언어를 지원 |
기타 | Colphin | KDE용 파일 관리자 |
KSnapshot | 스크린샷 프로그램 |
인터넷 활용
(1) WWW(World Wide Web) 서비스 (웹 서비스)
- 프로토콜 HTTP(Hyper Text Transfer Protocol)를 기반으로 한 멀티미디어와 하이퍼텍스트를 통합한 정보 검색 시스템
- 인터넷에 연결된 전 세계 컴퓨터의 모든 문서들을 언제 어디서든 다양한 컴퓨터 환경에서 검색이 가능하게 해줌
- 다양한 그래픽 유저 인터페이스들을 사용하는 것이 가능
- 분산 클라이언트-서버 모델을 기반으로 함(1대의 서버에 여러 대의 클라이언트가 접속하여 서비스를 받음)
- 1989년 CERN(유럽입자 물리학 연구소)에서 하이퍼텍스트가 시작되었으며,
1990년 WWW라는 넥스트 플랫폼용 브라우저가 공개됨
- 표준 웹 프로토콜(HTTP, XML, SOAP, WSDL, UDDI)을 기본으로 하여
서로 다른 개발 환경과 운영체제에서도 상호 통신이 가능
- 다양한 웹 브라우저들이 있음
(2) 메일 서비스
- 전자 메일 시스템은 컴퓨터 사용자끼리 편지를 주고받는 서비스
- MTA(메일 서버에 메일을 전달), MUA(메일을 작성하는 사용자 인터페이스),
MDA(수신자 메일 박스에 메일 전달)로 구성
- 메일 클라이언트에서 송신은 SMTP(메일발송/서버간 메일교환),
수신은 POP3 or IMAP4(메일 서버에 도착한 메일을 사용자 컴퓨터에서 확인) 를 이용
- MIME(Multipurpose Internet Mail Extension)은 멀티미디어 전자우편을 위한 표준,
멀티미디어 데이터를 ASCll 형식으로 변환할 필요 없이 인터넷 전자 우편으로 송신하기 위한 SMTP의 확장 규격
(메일 송신 프로토콜)
(3) FTP 서비스(파일전송 프로토콜)
- FTP(File Transfer Protocol) TCP/IP에 의해 제공되는 호스트 간의 파일 복사를 위한 프로토콜
- 통신 모드 : 패시브 모드(passive mode: FTP 서버가 지정한 포트로 클라이언트가 트래픽 송수신) /
액티브 모드(active mode : 클라이언트가 요청한 포트로 FTP 서버가 트래픽 송수신)
- 사용 포트 : 20번(일반 데이터 전송용), 21번(제어 데이터 전송용) 포트
- FTP는 사용자 계정을 가진 사용자들의 접속과 익명(anonymous)의 로그인 허용
(4) DNS(Domain Name System) 서비스
- 호스트 이름을 기반으로 IP 주소로 변환(또는 조회) 하거나
IP 주소를 기반으로 호스트 이름으로 변환/조회 시켜주는 프로토콜
- DNS에서는 도메인명을 분산된 트리 형태의 계층적 구조로 관리
- 일반 최상위 도메인(generic top-level domain, gTLD)은 특정한 조직 계열에 따라 사용
- 도메인 길이는 3글자 이상, 조직의 종류에 따라 사용하는 이름이 다름
(5) Telnet와 SSH 서비스
- 네트워크상에 있는 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령 실행/파일 복사 등을 제공
- 사용자 서버에 접속하여 서버 관리/파일 편집 등을 Text 모드 환경에서 명령을 실행하고 결과를 화면을 통해 볼 수 있다
- Telnet은 서버와 주고 받는 정보를 Byte 스트림 형식으로 전송
- SSH는 DES,RSA 등의 암호화 기법을 사용해서 전송/ 압축 기술 제공
(6) NFS(Network Fiile System)
- 네트워크 기반에 다른 시스템과 파일 시스템을 공유하기 위한 클라이언트/서버 프로그램
- 1984년 썬 마이크로시스템즈 사에서 개발
- 원격지에 있는 리눅스 서버의 특정 디렉터리를 로컬 시스템의 하위 디렉토리 처럼 사용 가능
- 다른 컴퓨터의 파일 시스템을 마운트하고 공유하여 자신의 디렉터리인 것처럼 사용할 수 있음
- Portmap이 먼저 수행되어 있어야만 NFS 서비스가 실행됨
- Portmap은 NIS, NFS 등 RPC(Remote Procedure Call) 연결에 관여하는 데몬
- NFS 서비스는 nfsd, rpc.mounted, rpc.statd, rpc.rocked, rpc.rquotad 데몬들이 구동됨
(7) RPC(Remote Procedure Call)
- 동적으로 서비스와 포트를 연결할 때 사용하는 방법
- 기본적으로 포트와 서비스가 정적으로 구성될 때는 /etc/services 파일을 참조
- 동적으로 포트를 할당 받아 사용할 때는 RPC인 rpcbind(SUN에서는 sunrpc)를 사용
(1) 네트워크 인터페이스 설정
- 리눅스는 다양한 네트워크 인터페이스를 지원
(ex>LoopBack 인터페이스, ethernet 인터페이스, DL 인터페이스, Parallel Line 인터페이스, 슬랩 인터페이스,
ppp 인터페이스 :WAN구간 연결 또는 전화모뎀이랑 연결하여 통신이 가능하게 해 줌 )
- 일반적으로 네트워크 인터페이스는 자동으로 인식되지만 자동으로 인식되지 않을 경우 수동으로 설정해야함
- 네트워크 인터페이스 수동 설정 방법은 컴파일된 인터페이스 모듈을 커널에 적재하는 것
해당 모듈을 커널에 적재하는 방법은 수동 적재 방법과 자동 적재 방법이 있다
( * 수동: insmod 명령어를 이용해 적재, lsmod 명령어로 적재되었는지 확인 /
* 자동:etcmodprove.conf 파일에 모듈 정보 세팅 시 다음 부팅 시 자동으로 적재됨)
(2) 네트워크 설정 파일들
- 배포본 마다 파일명 차이가 있음
- 네트워크 환경 설정 정보 ex>IP, 서브넷 마스크, 게이트웨이 DNS 등..
- /etc/sysconfig/network : 네트워크의 기본 정보가 설정되어 있는 파일 (DNS 주소 기입하지 않음)
- /etc/sysconfig/network-scripts/ifcfg-ethX : 지정된 네트워크 인터페이스의 네트워크 환경 설정 정보가 저장
(DNS 주소 기입하지 않음)
- /etc/resolv.conf : 기본적으로 사용할 도메인명과 네임서버를 설정(DNS 주소 기입됨)
(cf> DNS 주소가 입력되어 있지 않으면 네트워크는 정상적으로 돌아가나 인터넷이 안 되는 것처럼 보임)
- /etc/hosts : IP 주소와 도메인 주소를 1:1로 등록하여 도메인에 대한 IP 주소를 조회(lookup)하도록 함
(내 컴퓨터가 DNS처럼 작동할 수 있게 됨)
- /etc/host.conf : DNS 서비스를 제공할 때 먼저 이 파일을 검사하여 파일의 설정에 따라 서비스함
(DNS 환경 설정을 제어함)
# IP 주소 설정(= TCP/IP 설정) <- 네트워크 인터페이스를 인식시키려면 네트워크 설정을 해야 함
- 네트워크 설정 파일로 주소 설정 :
/etc/sysconfig/network 또는 /etc/sysconfig/network-scripts/ifcfg-ethX로 IP 주소 할당
- 명령어를 이용한 주소 설정 :
명령어 ifconfig를 이용해 IP 주소 할당
- 유틸리티를 이용한 주소 설정 :
netconfig, system-config-network, redhat-config-network 등의 다양한 유틸리티를 이용하여 주소를 할당
# 라우팅 테이블 설정 및 관리
- 라우팅이란 송신 패킷이 목적지까지 전송할 수 있도록 경로를 설정하는 작업
- 송신 패킷은 라우팅 테이블에 목적지 경로 정보가 있다면 해당 경로로 패킷을 전송
- 명령어 route은 라우팅 테이블 설정하거나 확인
(옵션 net : 목적지 네트워크, dev : 어떤 인터페이스를 통해 트래픽을 내보낼지 설정)
- 목적지 경로가 라우팅 테이블에 없다면 디폴트 게이트웨이로 트래픽을 전송할 수 있게 라우팅 테이블을 설정할 수 있다.
($ route add default gw ....)
(3) 네트워크 관련 명령어
TCP/IP 주소 설정 정보 확인 | ifconfig, nslookup |
네트워크 경로 상태 확인 | ping, traceroute |
네트워크 연결 상태 확인 | netstat |
라우팅 테이블 확인 | route |
NIC 상태 확인(랜카드 상태 네트워크 인터페이스 상태) | ethtool, mii-tool, arp |
ifconfig : 네트워크 인터페이스 구성 정보 확인
(인터페이스 MAC 주소, IP 제대로 설정되어 있는지, 활성화되어 있는지 등 확인 가능)
nslookup : DNS 서버를 기반으로 특정 호스트의 IP 찾아줌
ping : 목적지까지 트래픽 전송이 가능한지 확인
traceroute : ping 사용하여 목적지까지 트래픽 전송되지 않을 시 어느 구간에서 문제가 발생하는지 확인(장애구간), 어떤 경로를 통해 트래픽이 전달되는지 확인
route : 라우팅 테이블 확인, 게이트웨이 주소 값 확인 가능, 라우팅 테이블 구성 시에도 사용
netstat : 전송 제어 프로토콜, 라우팅 테이블, 네트워크 프로토콜 통계 정보나 연결 상태 정보 확인 가능
(옵션 r:라우팅 테이블 확인, n:IP주소 형태나 포트 번호 확인, s: 프로토콜 정보도 보여줌)
mii-tool : 네트워크 인터페이스 속도, 전송 모듈 확인(하프드 플래스, 풀드 플래스..), 인터페이스가 몇 메가 속도 지원하는지 확인 가능
ethtool : 물리적 연결 허브 연결뿐 아니라 mii-tool보다 상세한 네트워크 인터페이스 상태 정보 확인 가능
arp : 동일한 LAN 내에 연결된 컴퓨터의 IP 주소를 얻는 데 사용(ARP 테이블 확인)
(보통 컴퓨터는 arp 테이블을 가지고 있음) ip를 가진 호스트의 MAC 주소를 1:1로 기록해 놓음
응용분야
cron 분 시 일 월 요일
alsa 사운드
sane 스캐너
cups 애플이 개발한 소스프린팅
oss 사운드 만들고 캡쳐
LPRng 버클리 프린팅 시스템 BSD 계열 유닉스에서 사용하기 위해 개발 / 프린터 스풀링 , 네트워크 프린트
LVM : https://tech.cloud.nongshim.co.kr/2018/11/23/lvmlogical-volume-manager-1-%EA%B0%9C%EB%85%90/
2005년 설립된 Qumranet에서 개발한 하이퍼바이저.
x86 시스템 기반으로 cpu 전 가상화 방식, QEMU라는 cpu 에뮬레이터 사용
VG(볼륨 그룹) : PV 가 모여 만들어진 그룹
PV(물리적 볼륨) : 디스크를 LVM에서 사용할 수 있게 변환하는 작업
LV(논리 볼륨) : VG 에서 사용자가 필요한 만큼 할당돼서 만들어지는 공간 (사용자가 필요한 만큼 할당하여 쓰게 되는 파티션)
PE(물리적 확장) : PV에서 나누어 사용하는 일종의 블록 기본4MB
LE(논리적확장) : LV에서 나누어 사용하는 일종의 블록 기본 4MB
만드는 순서 23년 9월 기출 : PV -> VG -> LV
https://it-life.tistory.com/161 이미지참고
고계산용(HPC) 클러스터 : 베어울프라고도 불림 (과학계산용)
부하분산 클러스터
고가용성(HA) 클라스터 : 메인과 백업 / 부하분산기
tvf
2109 11번문제
2309
cvf : 새로운 tar파일 만들때
zcvf : tar로 묶고 gzip으로 압축
xvf : tar파일을 풀때
zxvf : gzip으로 압축 풀기
tvf : 내용을볼때
rvf : 마지막에 파일추가
ztvf : 압축안풀고 내용만 확인
편집기 관련문제
치환하는 문제
2309
vi편집기 단축어 공부하기
Rpm 명령어
윈도 매니저
X-윈도우상에서 윈도우의 배치와 표현을 담당 / kwin
데스크톱 환경
GUI 환경을 이용하기 위해 사용자에게 제공되는 인터페이스
디스플레이 매니저
X-윈도우 구성요소 중 사용자 로그인 및 세션 관리 역할 수행 프로그램
데스크톱 매니저
XDM, GDM, KDM 등이 존재
------
8진수 권한표기
파일은 666 / 디렉토리는 777에서 시작
> 666에서 002 빼면
664 > -rw-rw-r--
lsblk
Blkid
Fdisk
Df
fsck
e2fsck
xfs.fsck
xfs_repair
Evince
PDF 문서 뷰어 프로그램
Gimp
이미지 편집, 변환, 생성 프로그램
Eog
이미지 뷰어 프로그램
Gwenview
KDE에서 제공하는 이미지 뷰어 프로그램
ImageMagicK
비트맵 이미지를 보여주고 생성 및 편집 지원
Totem
Move Player(미디어 플레이어)
2309월
2309월 52번
데스크톱 환경 https://honglab.tistory.com/34
레이드 관련
https://smsinfo.tistory.com/177
cups 프린트 서버
sane : 스캐너
also : 사운드
OSS : 초기리눅스 사운드 (캡쳐)
프린트관련 명령어
BSD
lpr : 프린터 출력
lprm : 대기 작업 삭제
lpc : 프린터 제어
lpq : 큐에 있는 작업 목록 출력
System V 계열
cancel : 취소, 무조건 작업번호 붙여야함
lpstat : 작업번호 확인
lp : 프린터 출력 (n 매수설정)
LibreOffice Writer -> 워드프로세서
LibreOffice Dreaw -> 드로잉프로그램
LibreOffice Calc -> 엑셀스프레드시트(엑셀)
LibreOffice Impress -> 파워포인트
xauth
- MMC 방식의 인증 방식을 사용하기 위한 필수 유틸리티
- 생성한 키 값을 확인할 때 사용하는 명령
- ex) # xauth list $DISPLAY
Xlib
- 저수준(저기능) 인터페이스
- C언어로 구현된 클라이언트 라이브러리
- X서버와 대화하는 역할을 수행
시스템 시작 시 X 윈도 모드로 부팅이 되도록 설정하는 명령은?
= systemctl set-default runlevel5.target
25 모드설정
가) 종류
① X 윈도 모드(RunLevel 5)
② 텍스트 모드(RunLevel 3)
나) X 윈도 -> 텍스트
① systemctl set-default multi-user.target
다) 텍스트 -> X 윈도
① systemctl set-default graphical.target
GNU 프로젝트때 만들어진거
Gnome (d이미지프로그램)
NANO - 메모장 pico 복제판 라이선스때문에 만듬
BASH - 본쉘 복제판
패키지관리
데비안 리눅스 : dpkg
레드헷 리눅스 : Rpm yum def
Suse 리눅스 패키지 관리
Zipper
Arch 계열 paceman
bash -본 셸을 기반으로 하여 GNU 프로젝트에 의해 개발되었다.
tcsh -켄 그리어가 테넥스(TENEX)라는 운영체제에 명령행 완성기능을 반영하게 되었고, 1981년 C셸과 통합해서 만들었다. C 셸의 기능을 강화시킨 셸로 명령어 완성기능, 명령행 편집기능 등을 추가로 지원한다. -명령행 편집 기능을 제공하는 확장 C셸
csh -버클리 대학의 빌 조이가 개발한 것으로 C언어를 기반으로 만들어졌다. -히스토리 기능, 별명(Alias)기능, 작업제어 등의 기능을 포함하였다
ksh -AT&T사의 데이비드 콘이 개발하였고, 명령어 완성 기능 및 히스토리 기능을 제공한다.
dash posix 와 호환되는 /bin/sh를 작게 구현하여 빠른 수행 / 현재 데비안 및 우분트 계열의 리눅스
Vi 편집기 관련
Set nu : 각 행 번호가 나타나다록 설정 : 취소하고싶으면 set nonu
Set no : 다양한 설정 비활성화
Set ai : 자동 들여쓰기 (auto indent) 윗줄과 같은 열에 커서
Set list : 공백이나 특수문자 시각화해줌
set ic
set sm
set ts
편집 모드실행
Top : Cpu 사용률 확인
Nice : 우선순위 설정 renice 우선순위변경
Pstree : 프로세스 트리 출력
Jobs 백그라운드 직업 확인하는 명령어 : jobs
Bg : 중지된 작업을 백그라운드에서 실행
Fg : 백그라운드에서 포그라운드로 변경
Nohup (no hangup) : 터미널 세션이 종료되어도 백그라운드에서 실행중인 프로세스가 종료되지않고 계속실행됨
~/.bashrc : alias
/etc/passwd : 로그인 셸을 변경했을때 저장되는 파일
/etc/shells : 사용가능한 쉘 목록을 저장함
/etc/profile : 시스템 전체 사용자에게 적용하는 환경 변수와 시작 관련 프로그램 설정하는 파일
/etc/hosts : 가상도메인 , 네트워크 실습용
/etc/reslov.conf : nameserver <ip주소> 적혀있음
-------------------
권한 관련
Quota
현재 사용자 단위 쿼터 정보를 출력
(사용자 디스크 쿼터 설정 정보만 확인)
Edquota
• 편집기(editor)를 사용하여 그룹에 디스크 사용량 할당
- edquota -a : 특정 사용자의 쿼터를 다른 사용자에게 동일하게 설정
- edquota -p 이름1 이름2 : 이름1에게 설정된 쿼터를 이름2에게도 적용하기 위한 방법
Re quota 시스템 단위 쿼터 정보를 요약하여 출력
xfs_quota 사용자의 디스크 사용량을 제한할 때 사용하는 명령어
set quota : vi 안쓰고 직접명령어로 (문제에서 vi로 보통내기때문에 edquota)
Chmod
Chown
Chgrp
Umask
ls : 파일이나 디렉토리에 부여된 소유권 값 확인
fdisk 파티션을 생성, 삭제
fdisk -I 정보출력
Df (마운팅된 디스크 용량정보)
• 디스크 남은공간(용량)에 대한 정보를 보여줌
- 시스템에 마운트된 하드디스크의 남은 용량을 확인
- -i : 에러가 발생하면 추가로 원인을 파악하기 위한 명령어 // inode
- -T : 파일시스템의 종류를 확인할 때 입력하는 옵션 // -t : 유형
- -h : 사람이 읽을 수 있는 형태
Du (전체 용량정보)
• 디스크 사용공간에 대한 정보를 보여줌
- 디렉터리별 디스크 사용량
- 파일이나 디렉터리들이 디스크에 차지하고 있는 용량을 출력할때 사용
- -du -sh /* : / 이하에 있는 각 디렉터리별로 크기를 합쳐서 사람이 읽기 좋은 단위로 출력하기 위한 명령
Mount
blkid 블록 디바이스 파일시스템 유형이나 속성 출력
lsblk blkid 보다 더 자세하게 출력
Fstab 6가지 정보
[파일시스템 장치] [마운트 포인트] [파일시스템 종류] [옵션] [덤프] [파일체크옵션]
네트워크관련 ---------------
https://limqoh.tistory.com/entry/linux0002-1 반드시 다시 볼거
ISO : OSI 7계층
IEEE : LAN, MAN 관련 표준
ICANN : IP
EIA : RS-232 케이블
ANSI : fddi 광섬유케이블
주요포트
1 20(active),21(passive) = FTP
- 22 = SSH
- 23 = Telnet
- 25 = SMTP
- 53 = DNS
- 69 = TFTP
- 80 = HTTP
- 110 = POP3
- 123 = NTP
- 143 = IMAP
- 161,162 = SNMP
- 443 = HTTPS
- 929,990 = FTPS
- 9418 = git
netstat ; • 소켓의 PID 및 프로그램명과 포트번호를 출력함
스타형 : 중앙 컴퓨터 / 일부장애에도 상관없다 / 단말기 추가나 오류진단에 좋다
버스형 : 연결된 수에따라 성능이 좌우/ 신호 간섭을 막기위해 종간기가 존재 / 구조가 간단하여 제거, 설치비용이 좋다
링형 : 토큰패싱, 전송상의 충돌이 없고 노드 숫자가 늘어도 성능저하가 적다
망형 : 장애발생시 서로 영향이 적다(신뢰성 높음) / 라우터이용하거나 백본망 / 고장 지점 찾기 어려움
Ansible : 프로비저닝, 레드헷인수
Docker : 하이퍼바이저나 os 없이 이미지를 만들어서 동작 (컨테이너로 실행 2013년)
Kubernetes : 컨테이너 관리
타이젠
webos
genivi : BMW, GM, 인텔 등 자동차용 IVI
최상위 도메인
com / net/ kr / org
ip : 네트워크정보 관련 출력
arp : MAC주소 조회
telnet
route : 패킷을 전송할 수 있도록 목적지까지 경로를 설정 및 관리하는 명령어
ethtool 네트워크 인터페이스의 물리적 연결 상태를 확인하는 명령어(이더넷)
ss : SYN Flooding 공격과 같은 네트워크 상태 정보 확인
IPv4 128 bit / Ip4 32bit
'Certificate > [LinuxMaster2]' 카테고리의 다른 글
[리눅스마스터2급] 게이트웨이 값 찾기 / 브로드캐스트 주소 (1) | 2023.12.07 |
---|
[리눅스마스터2급] 게이트웨이 값 찾기 / 브로드캐스트 주소
게이트웨이 주소 값
230909 문제
서브넷
서브넷 255.255.255.192 는
1111.1111.1111.1100 이니 (128/64/32/16/8/4/2/1)
ip 뒷자리만 보면 됨 그중에서 1100 이므로 11이 포함된 앞자리 2개만 보면 됨
66은
01000010 이니 (64+2) 앞 2자리(01)만 가져오고 01에서 00000 / 01에서 111111 추가
01000000 ~ 01111111 까지보면 되는데 (맨처음 1000000은 네트워크주소 / 마지막 01111111 은 멀티캐스트 주소라서 제외시켜야함)
가능한 주소는 64초과 ~ 127미만까지가능
220903 문제
서브넷
서브넷 255.255.255.192 는
1111.1111.1111.1100 이니 (128/64/32/16/8/4/2/1)
ip 뒷자리만 보면 됨 그중에서 1100 이므로 11이 포함된 앞자리 2개만 보면 됨
150은
10010110 이니
10000000 ~ 10111111 까지보면 되는데 (맨처음 1000000은 네트워크주소 / 마지막 10111111 은 멀티캐스트 주소라서 제외시켜야함)
가능한 주소는 128초과 ~ 191미만까지가능
211211 문제
서브넷 255.255.255.192 는
1111.1111.1111.1100 이니 (128/64/32/16/8/4/2/1)
1111.1111.1111.1100 이니 (128/64/32/16/8/4/2/1)
ip 뒷자리만 보면 됨 그중에서 1100 이므로 11이 포함된 앞자리 2개만 보면 됨
129은
10000001 이니
10000000 ~ 10111111 까지보면 되는데 (맨처음 1000000은 네트워크주소 / 마지막 10111111 은 멀티캐스트 주소라서 제외시켜야함)
가능한 주소는 128초과 ~ 191미만까지가능
근데 브로드캐스트값을 물어봤으니 10111111 : 191이 됨
210313 브로드캐스트 주소
서브넷
서브넷 255.255.255.192 는
1111.1111.1111.1100 이니 (128/64/32/16/8/4/2/1)
ip 뒷자리만 보면 됨 그중에서 1100 이므로 11이 포함된 앞자리 2개만 보면 됨
157
10011101 이니 2자리만 보고 나머지는 1로 채우면 끝
10000000(128) ~ 10111111(191) 은 128+63 = 191
브로드 캐스트를 물어봤으니 191
'Certificate > [LinuxMaster2]' 카테고리의 다른 글
리눅스마스터 2급 총정리 (이걸로 끝내자) (1) | 2023.12.07 |
---|
[sqld] 기출문제 및 노랭이책 관련
sqld 자격검정 실전문제 pdf 및 기출문제 덤프
채팅문의
[ADsP] 자격증 시험 대비 정리 및 기출문제
게시물 내렸습니다.
우측 하단 챗봇으로 문의 주세요!
비전공자
순공 2시간 1주 컷가능