loading
본문 바로가기
BACK-END/CS

[리눅스] 리눅스 파일구조와 특징 - Rocky Linux 9

by pikiforyou 2024. 4. 16.

 

 

 

 

리눅스 구조

리눅스(LINUX is not UNIX)는, 계보도도 많고 배포판도 다양한 프리웨어(오픈소스) 컴퓨터 운영체제이다. 유닉스에서 갈라져나온 (그러나 유닉스 운영체제는 아닌) 리눅스는 엄밀히 말하면 '리눅스커널'을 이야기하는거지만, 리눅스커널과 자유 소프트웨어(GNU)를 합쳐서 배포하는 리눅스 배포판을 결국 리눅스라고 부른다.

리눅스의 특징은 여러가지가 있겠지만, 특징적으로 살펴보면 아래와 같다

1. 리눅스는 역트리구조( /root 을 기준)의 계층적 파일구조를 가지고 있으며 다중사용자 및 다중 처리 시스템(멀티유저&멀티태스킹)이 가능하다. 이는, 모든 것이 파일화 되어있다는 소리라 하드디스크, 키보드 같은 실제 하드웨어적인 장치도 파일로 관리한다. 

2. 이더넷을 포함하여 TCP/IP, ATM등 다양한 네트워크 환경을 지원한다

3. 가상 콘솔이 가능하다 ( ctrl+alt+F1~F6 )

4. 파이프를 통해 프로세스의 표준 출력이 다른 프로세스의 표준 입력으로 쓰이게 할 수 있다. | , |grep 

5. 리다이렉션을 통해, 출력결과를 파일로 저장하거나 파일의 내용을 프로세스의 입력등으로 사용할 수 있다.

6. 오픈소스라 다양한만큼, 기술지원이 부족할 수 있고 모든 플랫폼에서 작동하는 만능 운영체제는 아니다.

 

리눅스는 총 3가지, 커널/쉘/응용프로그램 으로 나눠져있다. 

 

 

- H/W : 말 그대로 하드웨어. CPU, RAM등의 실제 장치 부분이다.

- Kernel : 쉘에서 사용자의 명령어가 넘어오면 하드웨어를 직접 제어하고, 프로세스 관리, 메모리, 파일시스템 관리등을 수행한다. 커널은 주기억 장치에 적재되고, 리눅스가 부팅될때 메모리로 로드된다.

- Shell : 사용자가 입력하는 명령을 대신 해석해 커널에게 전달하고 실행하는 프로그램이다. 커널에서 작업이 완료된 결과는 다시 쉘로 와 유저와 대화식으로 진행이 되며 Bash, zsh, csh등이 있다

- Application : 운영체제에서 실행되는 모든 소프트웨어를 뜻하며, 각종 프로그래밍 개발도구, 문서편집도구등의 응용프로그램이다.

 

 

 

 

 

리눅스 파일구조

리눅스 배포판들은 리눅스 파일시스템 표준(FHS)를 준수하므로, 대부분의 배포판들은 골격이 비슷하다.

/  : 루트

최상위 디렉토리인 루트 디렉토리이다. 절대 경로로 표기할때 / 라고 표기한다면, 이 경로에서부터 시작한다

 

/root

root계정의 홈 디렉토리이다. (/ 최상위 루트와는 다름)

 

/bin,  /sbin

기본적인 명령어가 저장된 바이너리 디렉토리. cd, mv, rm등의 명령어들이 존재하며 사용자가 직접 작성한 명령어를 이 디렉토리에 추가해 권한을 편집하면 사용가능하다. 같은 bin파일이지만, sbin폴더는 루트 유저만이 실행할수있는 명령어가 들어있다. 

 

/boot

부트파일, 즉 리눅스 부트로더(Boot Loader) 디렉토리. GRUB와 같은 파일이 있다.

 

/dev

시스템 디바이스(Device)파일이 존재한다. 실제 장치들(하드, 키보드, 마우스, cd-rom)등의 장치파일이 존재하고 가상 파일 시스템이므로 하드디스크상에 물리적인 용량을 갖고있진 않다. 표준입출력을 통해 읽기 쓰기도 가능하다.

 

/proc

메모리에서 동작중인 시스템의 각종 프로세서, 프로그램, 하드웨어 정보가 저장되며 역시 가상 파일 시스템이라 물리적인 용량을 갖고있진않다. 커널에 의해 메모리에 저장되는 형태이다.

 

/media

장치를 파일에 연결하는 프로세스인 마운트 포인트 지점, 즉 외부장치를 연결하는 디렉토리이다

 

/var

시스템에서 사용되는 동적인 파일, 즉 로그와 시스템이 실행될때 변경되는 파일이 저장된다. 

 

/lib

라이브러리 파일들. 대부분의 라이브러리들은 링크로 연결되어있다

 

/usr

일반 사용자들을 위한 대부분의 프로그램 라이브러리 파일들이 위치

 

/home

홈 디렉토리.

 

/tmp

임시 파일 저장 공간

 

/etc

대부분의 시스템 설정 파일들이 존재하는 디렉토리. 사용자 정보, 암호, 파일시스템 정보, 네트워크 설정파일등이 있다

 

 

 

 

 

명령어 구조

리눅스 명령어의 구조는 크게 아래와 같다.

$ COMMAND [OPTION]... [ARGUMENT]...

 

Command : 실행하고자 하는 프로그램 실행 파일 명령어

[Option] : 명령어가 실행되는 방식 지정  *선택사항

[Argument] : 명령어 실행시 데이터를 전달 *선택사항

 

예를 들어,  ls -al 라는 명령어가 있다면, ls는 list(=dir. list을 줄인 명령어로, 해당 디렉토리 내의 파일목록을 나열) 명령어인데, 여기서  -a 옵션을 통해 숨김파일까지,  -l 명령어를 통해 목록을 리스트화 시켜 자세히 표시 라는 추가 옵션이 들어가면서 숨김파일까지 자세히 표시하여 목록을 보여준다

 

 

 

 

 

 

 

 

파일 시스템 관련 : https://haengsin.tistory.com/44

리눅스 파일 표준 시스템(FHS) 공식 문서 : https://www.pathname.com/fhs/

리눅스(Rocky) 명령어 문서 : https://docs.rockylinux.org/ko/books/admin_guide/03-commands/ 


- 궁금한 점 / 수정 요청사항 등은 언제든 댓글 달아주세요 :)

- 도움이 되셨다면 ❤️ 하트 한 번 눌러주세요! 감사합니다 ! 

댓글