728x90
반응형
리눅스 '/bin' 디렉토리와 '/usr/bin' 디렉토리의 차이에 대해서 알아보자.
/bin과 /usr/bin의 차이는?
Centos를 사용하다가 문득 /bin과 /usr/bin의 차이가 궁금해졌다.
궁금하던 차에 정리해 보았다.
다양한 종류의 /bin
Linux와 Unix 계열의 OS에는 굉장히 다양한 .../bin 디렉토리가 존재한다.
- /bin
- /sbin
- /usr/bin
- /usr/sbin
- /usr/local/bin
- /usr/local/sbin
이런 디렉토리들은 왜 나눠져 있고, 그 역할들은 무엇일까?
/bin을 분석해 보자($ man hier 명령어)
터미널 또는 콘솔 창에서 다음의 명령어를 입력하면, Linux, Unix 계열의 file hierarchy에 관한 man page가 나온다.
$ man hier
'/'(root) 부터 '/var'까지 자세한 설명을 볼 수 있다.
여기서 우리가 궁금해하는 '/bin' 디렉토리에 대한 설명을 볼 수 있었다.
더보기
'/bin'
user utilities fundamental to both single-user and multi-user environments
- 해석하자면, "단일 사용자에게나 다중 사용자에게 모두 기본적으로 필요한 User 유틸리티"가 되겠다.
- 보통 우리가 터미널, 콘솔 창에서 실행하는 명령어들은 이곳 '/bin' 디렉토리에 정리되어 있다.
- 그렇다면 필수적인 저 유틸리티들이 왜 각기 다른 /bin 디렉토리에 나눠져 있는 걸까? 또 /sbin은 뭘까?
/sbin의 정체 & /bin이 나눠져 있는 이유와 각 역할들
/sbin의 정체
$ man hier 명령어를 이용하면 우리가 궁금해하던 /sbin의 정체를 파악해 볼 수 있다.
더보기
'/sbin'
system programs and administration utilities fundamental to both single-user and multi-user environments
- 해석하자면, "단일 사용자에게나 다중 사용자 환경에게 모두 기본적으로 필요한 System Program과 관리 유틸리티"이다.
- /bin과는 큰 차이가 없다. 다만, 저 안에 들어있는 프로그램이 일반 user들이 잘 쓰지 않는 System 관리를 위한 것이라는 점이 다르다.
- 그리고 저 유틸리티를 실행하기 위해서는 root 권한 이 필요하다.
/bin이 나눠져 있는 이유와 각 역할들
- /bin
일반적으로 아주 기본적인 프로그램이 위치, 특히 콘솔에서 필요로 하는 것들과 리눅스가 돌아가기 위해 가장 최소로 필요한 프로그램들이 보관되어 있다. 덧붙여, /usr 파티션이 마운트 되기 이전에 사용할 수 있는 바이너리 파일들이 저장되어 있다. 이에 속하는 바이너리 파일로는 흔히 쓰는 cat 명령어나 ls 명령어 등이 위치한다.
- /sbin
/bin과 같은 역할을 한다. 그러나 실행하기 위해서는 root 권한이 필요하다.
- /usr/bin
/bin과 유사한 역할을 한다. 콘솔에서 확장된 프로그램이 들어간다.
/bin과의 가장 큰 차이점은 general-system-wide 범위에서 사용가능하다는 점이다. 이에 속하는 바이너리 파일로는 sudo 명령어, vi 명령어 등이 위치한다.
- /usr/sbin
/usr/bin과 유사한 역할을 한다. 그러나 실행하기 위해서는 root 권한이 필요하다.
- /usr/local/bin
이곳에 위치한 바이너리 파일들과 스크립트들은 일반 사용자를 위한 프로그램이다. 다만, 이 프로그램들은 distribution package manager에 의해 관리되지 않는다. 예를 들어, 사용자 본인이 직접 local directory에서 compile 한 프로그램(logically compiled program)이라면, 절대로 /usr/bin에 위치시켜선 안된다. 추후 설치하는 스크립트 등에 의해 아무런 경고 없이 업그레이드되거나, 삭제될 수 있기 때문이다. 따라서 이런 프로그램들은 /usr/local/bin 디렉토리에 위치해야 한다.
- /usr/local/sbin
/usr/local/bin과 유사한 역할을 한다. 다른 /sbin들과 마찬가지로 실행하기 위해서는 root 권한이 필요하다.
- ~/bin
마지막으로 소개할 /bin 디렉토리이다. 이 폴더는 있을 수도, 없을 수도 있다. 이 디렉토리에 들어간 프로그램과 바이너리 파일들은 user-scoped이다. 즉, 현재 홈 디렉토리의 이름을 가진 사용자에게만 한정된 바이너리 파일들이다. 따라서 여기에 설치되는 바이너리 파일들은 user를 구분한다.
출처 :
반응형
'IT Technology > Linux' 카테고리의 다른 글
Linux Python 설치 방법 (0) | 2023.03.02 |
---|---|
리눅스 Configure, make, make install 개념 (0) | 2023.03.01 |
Linux에 Docker Machine 설치 방법 (0) | 2023.02.25 |
Linux에 Docker Compose 설치 (0) | 2023.02.24 |
리눅스 사용자 계정 sudo 권한 부여 (0) | 2023.02.23 |