우리는 앞에서 리눅스가 무엇이며 왜 서버에서 사용하는지 알아봤습니다.이제는 리눅스를 설치하고 사용해 봐야겠죠
그전에 리눅스는 우리가 주요 사용하는 윈도우와 다르게 뭔가 어색한 운영체제 입니다.
그래서 지금 부터는 리눅스의 구조를 알아보죠 정확히는 리눅스의 디렉토리 구조를 알아보겠습니다.
Root ( / )란 무엇인가?
리눅스의 가장 큰 특징이라고 하면 단연 Root의 존재 입니다.
리눅스에서 root는 2가지 의미를 가지고 있습니다. root 계정과 root 디렉토리중 하나를 의미합니다.
root 계정은 super user의 의미를 가지고 있으며 일반적인 사용자와 다르게 모든 권한을 가지고 있습니다.
root 디렉토리는 리눅스 파일체제에서 가장 최상단에 위치한 디렉토리를 의미합니다. 기호는 ' / '입니다.
가장 최상단 디렉토리라는 것은 모든 리눅스에 존재하는 디렉토리들의 시작 지점이 될 수 있다는 뜻이기도 합니다.
이건 뒤에 나오는 절대경로와 상대경로에서 중요한 의미를 지니게 됩니다.
/root를 root의 디렉토리라고 생각하는 경우가 종종 있는데 /root는 root계정의 홈 디렉토리를 의미하는 것입니다.
/ 와 /root는 다른 디렉토리 입니다. 정확히는 / 디렉토리 안에 root라는 이름을 가진 디렉토리가 있는 것입니다.
리눅스 디렉토리 구조
리눅스는 위와 같이 디렉토리 구조를 보편적으로 가집니다.(시간이 지남에 따라 업데이트는 되지만 큰 뿌리는 변하지 않습니다.)
지금 부터 가장 최상단 디렉토리 부터 하나식 살펴 보겠습니다.
/
최상단에 있는 root 디렉토리 입니다. 모든 디렉토리의 시작점이며 파티션을 설정할때 반드시 존재해야하며 가장 중요한 디렉토리 입니다. 해당 디렉토리에 손상이 간다면 리눅스 부팅이 되지 않습니다.
* 절대경로 , 상대경로
절대 경로 : 경로의 시작이 / 로 시작됩니다.
상대 경로 : 경로의 시작이 현재 자신이 위치한 디렉토리 부터 시작됩니다.
예를 들면 제가 /test 라는 곳에서 /test/dir1 으로 이동하고 싶다고 가정하겠습니다. 절대경로 일 경우에는 cd /test/dir1 이런식으로 입력해서 이동할것입니다. 상대경로라면 cd dir1 이런식으로 이동합니다.
/bin
기본적인 명령어가 저장된 디렉토리 입니다. 이곳에 저장된 명령어는 root 뿐만 아니라 일반사용자도 사용할 수 있습니다.
/usr/bin 에 심볼릭 링크로 연결 되어 있습니다.
* 심볼릭 링크 . 하드 링크
심볼릭 링크 : 원본파일에 링크를 연결해서 원본 파일을 직접 사용하는 것처럼 동작하는 것 이라고 생각하시면 됩니다. 윈도우에서 바로가기 라고 생각하시면 됩니다.
하드 링크: 원본 파일의 inode 를 공유해서 원본 파일과 완전히 동일한 파일로 하나 복제 하는 것이라고 생각하시면 됩니다.
주로 백업할때 사용됩니다.
/sbin
시스템 관리자를 위한 명령어가 저장된 디렉토리 입니다. 간단하게 시스템 관리를 위한 프로그램과 실용적인 소프트웨어 그리고 root 계정만 사용가능한 명령어가 존재합니다.
root만을 위한 명령어들은 /sbin, /usr/sbin, /usr/local/sbin 에 저장이 되고 특히 /sbin 디렉토리는 시스템의 부팅, 복구,복원을 위한 바이너리가 포함됩니다. 대체로 /usr/sbin에 심볼릭 링크 되어 있습니다.
/lib , /lib64
커널 모듈 파일과 프로그램이 의존하는 라이브러리 파일이 존재합니다. /lib64는 운영체제가 64bit일 경우를 의미합니다.
*라이브러리 : 미리 작성된 코드들의 모음을 의미합니다. 주로 반복 작업시에 코드를 새로 작성하지 않기 위해서 이미 만들어진 블록을
가져다 조립하듯이 만들 수 있습니다.
/etc
시스템의 거의 모든 설정 파일들이 모여 있는 디렉토리 입니다.
/var
시스템의 로그, 캐시 파일 등 시스템 동작중에 자주 변경되는 데이터가 모여 있는 파일입니다.
/usr
일반 사용자들이 주로 사용하는 라이브러리가 모여 있는 디렉토리입니다.
/usr/include
C 또는 C++ 프로그램에 의해 포함된 해더들이 모여 있습니다.
/usr/lib
프로그래밍에 필요한 패키지들이 모여 있는 라이브러리 디렉토리입니다,
/usr/local
해당 PC에서 사용할 소프트웨어를 시스템 관리자가 설치하는 디렉토리입니다. 시스템에 설치되는 소프트웨어는 이 디렉토리에 설치 됩니다. (= 사용자가 직접 설치한 프로그램들이 저장되는 공간)
/usr/share
읽기만 가능한 아키텍쳐 비 의존 자료들이 존재합니다. ( = 공유 파일들이 저장되는 공간)
/usr/src
/usr/bin
사용자 명령어가 포함된 디렉토리
/usr/sbin
시스템 관리자가 사용하는 비중요 시스템 바이너리가 존재합니다.
/opt
추가적인 소프트웨어를 설치하는 디렉토리 입니다. 그러나 대부분의 추가 소프트웨어들은 /usr에 저장됩니다.
/home
사용자들의 홈 디렉토리 입니다. 해당 디렉토리의 접근 권한은 기본적으로 생성된 사용자만 가능합니다.
/root
root 계정의 홈 디렉토리 입니다.
/media , /mnt
탈부탁이 가능한 마운트 포인트로 사용되는 디렉토리 입니다. (= USB 연결시 사용)
/media는 OS에서 관리하고 /mnt는 사용자가 직접 마운트 할때 사용합니다.
/boot
리눅스를 부팅할때 사용하는 부트로더 (Boot Loader)가 존재하는 디렉토리 입니다. GRUB와 같은 부트로더에 관한 파일들이 존재합니다.
*GRUB : 컴퓨터에서 어떤 운영체제로 부팅할지 선택 할 수 있도록 도와주는 역할
/dev
시스템의 장치 (device) 파일을 저장하고 있는 디렉토리 입니다. (하드디스크, CD-ROM )
/srv
시스템에 의해 제공되는 서비스 자료들이 저장되어 있습니다. 웹 서버의 데이터나 FTP에 의해 공유된 파일 같은 것들이 저장됩니다.
/tmp
임시 파일들이 저장되는 공간이며 공용 디렉토리입니다. 사용자들이 프로그램을 실행할때 임시 데이터나 ,중간 결과물이 저장되며 주기적으로 삭제됩니다.
/proc
커널과 프로세스 정보를 위한 디렉토리 입니다. 현재 메모리에 존재하는 모든 작업이 파일형태로 존재합니다. 디스크상에 실제적으로 저장되는 것이 아니라서 가상 파일 시스템이라고 하기도 합니다.
지금까지 리눅스 디렉토리에 대해서 알아봤습니다 다음글에서는 리눅스를 가상서버에 설치하고 리눅스의 기능과 기본적인 명령어 부터 시작해서하나씩 알아 보겠습니다.
'IT 공부 내용 정리 > 서버' 카테고리의 다른 글
리눅스는 무엇인가? (0) | 2024.11.19 |
---|