DevOps/Linux
[Linux] What is Linux?
나죽못고나강뿐
2023. 7. 2. 13:58
📕 목차
1. 리눅스를 써야 하는 이유
2. Basic Concept
1. 리눅스를 써야 하는 이유
- 특징
- 오픈소스 (무료)
- 다양한 플랫폼에 포팅 가능
- GNU Software와 함께 배포
- 장점
- 대부분의 HW 지원
- 저렴한 성능 요구 사양 및 안정성
- 인터넷에 맞는 강력한 네트워크 구축
- 다양한 응용 프로그램 및 배포판(RedHat, Ubuntu, Fedora, CentOS, etc..)
- 창의적인 해법들 (ex. usb 메모리에 리눅스 라이브 부트 이미지 로드하여, 하드 디스크가 망가진 PC 부팅한 후 문제 분석 등)
- 다중 사용자 OS: 시스템의 개인 정보 보호와 안정성을 신뢰하여 팀원 전체가 로컬 및 원격에서 동시 작업 가능
🔍 사용 목적별 리눅스 배포판
목적 | 배포판 |
보안/해킹 방지 | • 칼리(Kali) 리눅스 • 패롯(Parrot) |
일반 사용자용 데스크톱 | • 민트(Mint) • 엘리멘트리(Elementary) OS |
경량 OS(오래된 하드웨어, 진단용) | • 퍼피(Puppy) 리눅스 • LXLE |
사물 인터넷 관리 | • 스내피(Snappy) • 우분투 코어(Ubuntu Core) |
기업용 서버 | • CentOS(레드햇 기업용 리눅스의 커뮤니티 버전) • openSUSE(수세 커뮤니티 버전) |
클라우딩 컴퓨팅 | • 아마존 리눅스(AWS AMI) • 우분투 서버(AWS AMI) |
범용(경량 OS 제외) | • 우분투 |
2. Basic Concept
📌 리눅스 파일 시스템
💡Linux에서는 모든 것을 파일(File)로 다룬다.
- 파일 시스템(File system)
- 물리적 디스크의 식별할 수 있는 고유 위치에 저장된 데이터와 논리적 개념 단위인 파일을 연결하는 일종의 데이터 테이블이나 인덱스(Index)
- 커널이 파일 관리를 하기 위한 방법
- 인덱스는 데이터를 신뢰성 있게 읽기 위해 필요하다.
- HDD나 USB 장치는 디렉터리(directory)를 구성할 수 있는 물리적 단위로 나누어져 있지 않다.
- 특정 파일이 몇 초 후에 만들어진 거의 똑같은 다른 파일과 물리적 위치가 멀리 떨어져 있을 수 있다.
- 동일한 파일도 구성하는 부분들이 연속적인 위치에 저장된다는 보장이 없다.
- 파일의 물리적 위치 또한 시간이 지나면 바뀔 수 있다.
- 파일 시스템은 인덱스를 사용해 파티션(partition)이라는 단일 디스크 분할 영역 안에서 구성된 디렉토리와 파일들을 제공한다.
- 디스크 파티션 안의 파일은 모두 루트 디렉토리(/) 하위 디렉토리에 보관된다.
- 디렉토리 구성 방법은 대체로 유닉스 파일 시스템 계층 구조 표준을 따른다.
📌 리눅스 탐색 도구
- ls (list)
- pwd (print working directory)
- cd (change directory)
- cat (concatenate)
- less
📌 리눅스 파일 관리 도구
- touch : 파일 내용은 건들지 않고 타임 스탬프만 갱신 (해당 파일 없으면 생성)
- stat
- 리눅스 파일 시스템의 모든 개체는 inode라는 고유 메타데이터 집합으로 표현
- 파일 시스템 인덱스는 드라이브의 inode에 연관된 메타데이터로부터 만들어진다.
- stat으로 해당 파일의 inode 정보 또한 알 수 있다.
- mkdir / rmdir
- rm
- cp
- 파일 글로빙(globbing) : 와일드카드 문자 적용하는 것
📌 키보드 트릭
- bash 쉘 세션에서는 'shift + ctrl + c'와 'shit + ctrl + v'로 복사/붙여넣기가 가능하다
- 탭 완성 기능 (진짜 많이 쓰는데, 모르는 사람 제법 많아서 답답하다..)
📌 의사 파일 시스템
- 시스템 재부팅 후에도 안정적으로 접근 가능한 일반적인 파일과 달리 sys, proc 등은 그렇지 않다.
- 리눅스 의사 파일(pseudo file 또는 virtual file) 내용은 시스템의 특정 상태를 보이고자 OS에서 동적으로 생성한다.
- 모든 시스템 프로세스는 sys 디렉토리의 의사 파일을 참고한다.
- /sys/block : 리눅스에 연결된 저장 장치(block device) 디렉토리로 이동
- sda(SCSI Device A지만 Storage Drive A가 조금 더 적합) : 시스템에서 지정한 첫 번째 저장장치, 시스템 부팅할 때 사용 (sdb, sdc, ...)
- 실제 리눅스 환경이라면 sda 디렉토리 내에 sda1, sda2 같은 이름도 존재한다.
- 리눅스가 드라이브의 데이터를 더욱 효율적으로 관리하고자 만든 디스크 파티션에 해당한다.
📌 sudo
관리자 권한이 필요할 때 명령어 앞에 sudo를 붙이면 된다.