공부?/국비 지원 일기장

36일차 - 여러 리눅스 운영체제들과 이해, 명령어

무무요 2024. 8. 26. 17:53

네트워크 관리사 2급 필기를 봤다 . . 15개정도 틀린듯... 일단 합격인데 풀면서 너무 부족함을 느낌..

 

=======

Linux

운영제체 이해

하드웨어와 소프트웨어를 관리하는 시스템
- 사용자가 편하게 컴퓨터를 사용할 수 있는 환경을 제공하는 프로그램
- 컴퓨터 시스템의 자원을 효율적으로 할당, 관리, 보호
- 시스템 오류나 잘못된 자원 사용을 감시하고 입출력 장치에 대한 연산/제어를 관리하는 제어 프로그램

- 예전엔 하드웨어를 정해두고 그 하드웨어를 핸들링 하기위해 OS를 만들었다

- OS -> driver -> H/W
- 종류 : Windows, Linux, Unix, MAC OS X 등

운영 체제 구성 요소

User Interface
- 사용자가 시스템을 조작(입력), 동작결과 확인(출력)등을 조작하게 도와줌

Shell(=명령 해석기)
- 사용자가 user interface로 전달한 명령을 시스템 언어에 맞게 해석
- 사용자가 쓴 명령어를 해석해서 커널에게 전달 해준다.

Kernel
- 하드웨어,  프로세스 등을 제어하는 자원 관리자

용도별 컴퓨터 분류
- 서비스를 제공 받는 컴퓨터 = Personal Computer = Client Computer
- 서비스를 제공 해주는 컴퓨터 = Server Computer

- 윈도우는 Client용 OS와 Server용 OS를 따로 제공
- Linux/Unix는 기본 Server용 OS로 제공
- MAC OS X 는 기본 Client용 OS로 제공

Client 컴퓨터 (클라이언트)
- 일반적으로 개인이나 조직 내에서 사용하는 일반적인 컴퓨터
- 주로 사용자가 웹 브라우징, 이메일, 문서 작성, 미디어 재생 등 다양한 일상적인 작업을 수행하는데 사용
- 네트워크를 통해 서버 컴퓨터와 통신 하여 서비스나 데이터를 요청 하고, 서버로부터 받은 데이터를 화면에 표시하거나 로컬 저장 매체에 저장
- 클라이언트 컴퓨터는 종종 "엔드유저"  또는 "클라이언트 역할"을 하는 것으로 표현

Server 컴퓨터 (서버)
- 클라이언트 컴퓨터로부터 요청을 받아 서비스를 제공하거나 데이터를 제공하는 역할
- 주로 대규모 네트워크 환경에서 사용되며, 서비스의 안정성, 가용성, 처리능력 등 \을 최적화하기위해설계
되었음
- 다양한서버유형이있으며, 웹서버, 데이터베이스서버, 파일서버, 이메일서버, 게임서버등이있음
- 일반적으로 고성능 하드웨어, 대용량 스토리지, 백업 및 복구 시스템, 보안기능 등을 갖추고 있음
- 클라이언트 컴퓨터로부터 요청을 받아처리 하고, 결과를 클라이언트에 반환하는역할을 함

 Linux
- Open Source
- Linus Benedict Torvalds(리누스 베네딕트 토르발스)가 개발 함
- 기존 Unix 커널을경량화하고GNU project의 C 라이브러리를 포함한운영체제
- 기본적인 Linux 커널을 바탕으로 여러종류의 배포판이 만들어져 있음
Linux = Kernel
Linux OS = Kernel + GNU
- 버전표시
- <Major>.<Minor>.<Patch>
- Major : 커널의 큰 구조적변화
- Minor : 내부적 구현방식의변화
  - 짝수 : 안정 버전(해당 버전에 한해서 검증된 버전), 홀수 : 개발 버전
  - 윈도우는 큼직한 업데이트는 다음 버전 OS를 낸다(ex.W10에서 큰업데이트->W11 출시)
- Patch : 같은 버전에서 업데이트

Major = 5 , Minor = 14,  

배포판종류

데비안 : 데비안GNU/리눅스, 우분투, 리눅스민트, 칼리리눅스, 크런치뱅,하모니카, Damn Small, Linux, elementary OS, 스팀 OS
레드햇 : 레드햇 엔터프라이즈 리눅스, 페도라, 미고, 붉은별, CentOS, Rocky Linux
맨드리바 : Mandriva, Open Mandriva Lx, 마제야, PC Linux OS, no.1 Linux
슬랙웨어 : 슬랙웨어리눅스, 오픈수세, Slax
안드로이드:  안드로이드, 크롬OS, Remix OS, Polaris OS
기타 : 아치리눅스, Manjaro Linux , 젠투리눅스

레드햇 계열 , 데비안 계열
우리나라 기준 유명한 리눅스
레드햇 계열 : CentOS => Rocky (CentOS의 복제버전=CentOS와 똑같다고 생각)
데비안 계열 : Ubuntu

FM으로하면 BSD계열 , SystemV 계열


.dll 파일(dynamic library file) : 여러가지 프로그램, OS에 필요한 프로그램 ( dll 파일 자체에 오류가나거나 없으면 실행이 안되는게 많다)

의존성

 Rocky Linux
- RHEL(Redhat Enterprise Linux)의 소스 코드를 이용하여 만들어진 무료 리눅스 배포판
- 기존CentOS가 대표적인 RHEL의 무료 버전이었으나, 8 버전부터 더 이상 동일한 환경을 제공하지 않음
- RHEL과 동일한 환경을 제공하는 무료 배포판으로 앞으로 점유율이 증가할 것으로 기대됨
- 공식홈페이지: https://rockylinux.org org = 비영리 단체

.lck 파일 삭제

root의 UID = 0번(0번만이 막강한권한을 가진다)

일반계정에서 su - 를 치면 root계정 로그인 가능, su - 로 root 권한 획득
평상시엔 $(일반계정)에서 작업하다 root 권한이 필요할때만 su 로 루트 권한을 사용해 그때그때마다 바꿔서 사용하는게 FM
su(switch user라고 많이부름) = 계정 변경
root 아이디가 잠겨있는이유 = 평상시에는 root 아이디 말고 일반 계정으로 작업을 하라는것

리눅스 명령어

man
- 매뉴얼 확인

사용법
- # man [option] command
 -a = 모든 매뉴얼 페이지 출력
 -f = 간단한 설명만 출력
q = man 페이지 출력

date
- 시스템의 시간과 날짜 확인
- 권한이 필요함

rdate
- 원격지로부터 시간 동기화
사용법
# rdate [option] NTPserver Address
-p = NTP server 시간 출력
-s = NTP server와 시스템 시간 동기화

LG U+ time.bora.net 또는 gps.bora.net
KRISS time.kriss.re.kr 또는 203.254.163.74

hwclock
- 하드웨어(ROM-BIOS) 시간 동기화
- 권한이 필요함


NTP ( Network Time Protocol )
- 날짜, 시간이 몇시인지 알려주는 프로토콜
- 몇시인지 물어봤을때 NTP로 알려준다.

nano
- 메모장 수정 명령어
nano /etc/chrony.conf
systemctl restart chronyd

uname
- 시스템 정보 확인
사용법
# uname [option]
명령어
-a = 모든 정보 출력
-m = 하드웨어 타입(CPU정보) 출력
-n = hostname 출력
-r = kernal 릴리즈 번호 출력
-s = Kernal 이름 출력
-v = Kernal 버전 출력

which
- 명령어의 경로 확인
사용법
#which [option] command

bin = 일반 유저가 쓰는 명령어
sbin = 관리자가 쓰는 명령어

history
- 사용한 명령어 목록 확인
사용법
# history [num]
[num]을 지정하면 해당 숫자만큼 최근 사용한 명령어 출력

alias
- 별칭 확인 및 설정
사용법
# alias 별칭=command

unalias
- 별칭 해제
사용법
# unalias 별칭

.bashrc
- 본쉘의 업그레이드 버전

shutdown
- 시스템 종료 및 재부팅 명령어
사용법
# shuntdown [option] [time] [message]
option
-k(knock) = 종료를 알리는 경고 메세지 전송(실제 종료 되지 않음)
-h = Shutdown 후 종료(halt) 실행
-r = Shutdown 후 재부팅(reboot) 실행
-f(fast reboot) = 재부팅 시 fsck(fast system check)를 수행하지 않음(빠른재부팅)
-c(cancel) = 예약되어 있는 shutdown을 취소(시간 지정은 안되지만 사용자에게 메세지 전송은 가능함)
Time
- 절대 시간 지정 -> hh:mm
- 상대 시간 지정 -> +m(현재 시간부터 m분만큼 대기)

poweroff / halt
- 시스템 즉시 종료
사용법
# poweroff [option]
# halt [option]
차이점 
- poweroff 명령어는 시스템을 완전히 종료하고 전원까지 끔
그렇기에 poweroff 사용전 sync 를 최소 두번정도 입력한후 종료하기

reboot
- 시스템 재시작
사용법
# reboot [option]

파일 종류
- = 일반파일
b = 블록형 특수 장치파일(주로 디스크, /dev/sda 등) 
C = 문자형 특수 파일(주로 입/출력에 사용, /dev/console 등)
d(/) = 디렉터리 파일
P(=) = 파이프 파일
S = 소켓 파일
l(a) = 심볼릭 링크 파일

확장자의 의미
- 윈도우와 다르게 특별한 의미가 없음
- 보통 프로그램 개발 언어 등을 표시

Linux 파일

일반 파일
- 기본적인 대부분의 파일
- 원하는 형식의 데이터 저장이 가능하며 각 사용자들이 소유 권한을 가짐
- 데이터 베이스, 동영상, 음악, 실행 파일 등

디렉터리 파일
- 특수 파일
- 연관 있는 파일들을 하나의 그룹으로 만들어 저장하도록 구분되어 있는 공간
- 하나의 inode를 할당 받으며 파일 이름과 inumber를 매칭하는 항목의 리스트로 구성되어 있음
현재 디렉터리 : .  = copy랑 많이 쓰임
상위 디렉터리 : .. = cd랑 많이 쓰임

 디바이스파일
- 하드웨어를 하나의 파일로 인식하여 관리함
   - 블록 디바이스 파일 : 디스크, 테이프 등의 저장 장치
   - 문자 디바이스 파일 : 터미널, 프린터 등의 출력 장치
- 키보드 디바이스 파일에서 데이터를 읽음, 사운드 디바이스 파일에 소리 파일을 보내면 스피커로 출력 됨
 
링크 파일
- 파일과 디렉터리의 관리를 편리하게 하고자하는 목적으로 사용 됨
- 상위 디렉터리가 많은 경우 파일명만 이용하여 접근
- 긴 파일명의 파일을 자주 참조할 경우 다른 디렉터리에 연결
- 해킹에 이용될 수 있으므로 주기적으로 확인하여 불필요한 링크 파일은 삭제 하는것이 좋음
- 심볼릭 링크 방식을 더 많이 사용함

심볼릭(소프트) 링크
- 원본 파일의 위치 정보를 가지는 단축 아이콘
- 윈도우의 바로가기와 비슷한 개념으로 특정파일을 가리키고 있는 파일
- 다른 파일 시스템에서도 링크 가능
- 별도의 inode를 가지며 링크 파일이 가지고 있는 용량 만큼 디스크의 공간을 차지함
- 원본의 링크 카운트가 증가 하지않음

하드링크
- 원본 파일과 동일한 inode에 연결 되는 링크
- 하나의 파일에 여러개의 이름을 지정해서 사용하는 개념
- 다른 파일 시스템에서 링크 불가능
- 원본과 동일한 inode를 사용함
- 원본의 링크 카운트가 증가함

식별값을 붙인다.
inode number = 파일의 번호

=======