"초보 개발자의 서버 구축 및 운영하기"는 어찌하면 좋은 서비스 환경과 개발 환경을 만들 수 있을까 하며 쓰게된 글입니다. 말주변이 변변찮고 짧은 저의 경험을 토대로 작성한 글이 도움이 되었으면 좋겠습니다.
리눅스를 처음 설치하면 보고도 뭐하는 폴더 디렉토리지? 하는 경우가 많다.
그 디렉토리들을 전부다 자세하게 설명하기 보다 내 경험상 서버 구조 구축에 좀 더 중요한 디렉토리들을 중점으로 보다 쉽게 설명해보려고한다.
1. 시스템 관련 디렉토리 (/, /usr)
- OS 설치 시 기본적으로 설치되는 디렉토리 (윈도우에서 C:\Windows와 유사하다고 생각하면 된다.)
- 기본적으로 건들이면 안된다고 생각하면 편안하다. (윈도우에서 C:\Windows 진입하면 위험하다고 뜨잖아! 리눅스에서는 안뜰뿐이야~)
- 시스템의 라이브러리는 절대 Never!!! 건들지 말자!!! 괜히 건들였다가 건들인 라이브러리와 의존성 때문에 문제를 야기할 수 있다.
- 어지간한 시스템 관련 업데이트 및 업그레이드는 다운로드 매니저(yum, apt-get)를 이용해서 rpm 설치하자! 의존성까지 싹다 확인해서 설치해준다!
< 바이너리 관련 디렉토리 >
경로 | 설명 |
/bin | 가장 기본적인 시스템 명령어들이 저장되어있다. (mv, cp, rm, cd 등) |
/sbin | 시스템 관리에 필요한 명령어들이 저장되어있다. (ifconfig, arp, fsck 등) |
/usr/bin | OS 설치 시 설치되는 일반 사용자들이 사용하는 명령어들이 저장되어있다. |
/usr/sbin | 주로 네트워크 관련 명령어 및 데몬 서비스들이 저장되어있다. |
< 라이브러리 관련 디렉토리 >
경로 | 설명 |
/lib , /lib64 | /bin, /sbin 디렉토리에 있는 명령어들의 의존성이 걸려있는 라이브러리, 여기서 몇개 지우면 의존성 걸린 명령어들은 먹통이 된다. |
/usr/lib , /usr/lib64 | /usr/bin, /usr/sbin 디렉토리에 있는 명령어들의 의존성이 걸려있는 라이브러리, 위와 동일하게 여기서 몇개 지우면 의존성 걸린 명령어들은 먹통이 된다. |
< 헤더 관련 디렉토리 >
경로 | 설명 |
/usr/include | C 프로그래밍에 필요한 헤더파일이 존재하는 디렉토리 (stdio.h, stdlib.h 등이 있음) rpm으로 lib 파일을 받을때 "{프로그램 명}-devel" 이라는 |
2. 사용자 관련 디렉토리 (/usr/local)
- 윈도우의 C:\Program Files와 유사한 역할을 한다
- 윈도우에서 설치할때 설치 경로 묻는 것처럼 리눅스에서는 빌드할때 --prefix라는 옵션을 통하여 경로를 지정해줄수 있다. (경로를 지정하지 않으면 기본 경로는 보통 윈도우는 C:\Program Files, 리눅스는 /usr/local이다.)
< 바이너리 관련 디렉토리 >
경로 | 설명 |
/usr/local/bin , /usr/local/sbin |
보통 사용자가 설치한 프로그램의 바이너리 파일을 복사 또는 링크를 통하여 해당 디렉토리에 저장한다. |
/usr/local/{설치된 프로그램 명}/bin , /usr/local/{설치된 프로그램 명}/sbin |
위 디렉토리에서 복사 및 링크 대상이 해당 디렉토리에 저장된 파일들이다. |
< 라이브러리 관련 디렉토리 >
경로 | 설명 |
/usr/local/lib , /usr/local/lib64 |
보통 사용자가 설치한 프로그램의 라이브러리 파일을 복사 또는 링크를 통하여 해당 디렉토리에 저장한다. |
/usr/local/{설치된 프로그램 명}/lib , /usr/local/{설치된 프로그램 명}/lib64 |
위 디렉토리에서 복사 및 링크 대상이 해당 디렉토리에 저장된 파일들이다. |
< 헤더 관련 디렉토리 >
경로 | 설명 |
/usr/local/include , /usr/local/{설치된 프로그램 명}/include |
C 프로그래밍에 필요한 헤더 파일이 저장되는 디렉토리 예를들어 mysql 설치 시 mysql 관련 헤더는 해당 디렉토리에 저장된다. |
3. 제품 관련 디렉토리 (/opt, /flash 등등)
- 서버 장비에 탑제하는 특정 솔루션의 디렉토리 이다.
- 예를들어 우리회사는 서버장비에 인사 관리 시스템을 탑재하여 판매하는 회사이다. 그때 그 회사만의 고유한 디렉토리이다.
- 위에서 대표적으로 사용하는 디렉토리를 /opt, /flash 등으로 보여주었다. 디렉토리 명을 정하는건 자유.
- 디렉토리 예시
- /opt
- /opt/lib
- /opt/bin
- /opt/include
- /opt/script
- /opt/etc
- etc.....
- /flash
- /flash/lib
- /flash/bin
- /flash/include
- /flash/script
- /flash/etc
- etc.....
- /opt
4. 설정 관련 디렉토리 (etc 디렉토리)
- 설정에 관련된 디렉토리이다.
- 그 종류는 /etc, /usr/etc, /usr/local/etc, /usr/local/{프로그램명}/etc 이지만 다른곳은 어찌 사용하는지 모르겠지만 서버 구성 시 /etc로 심볼릭 링크를 통해서 모아둔다
'Knowledge > Linux & Container' 카테고리의 다른 글
[Linux] CentOS 새로운 HDD 추가하기 (0) | 2019.06.12 |
---|---|
[Linux] 선택된 디렉토리/파일 용량 및 합계 확인 명령어 (0) | 2019.06.07 |
[CentOS 7] vnc server 설치 방법 (0) | 2019.05.31 |
[Linux] 마운트 명령어 및 자동 마운트 방법 (0) | 2019.04.26 |
tar 명령어로 분할 압축, 압축 해제 하기 (0) | 2019.04.22 |
댓글