# `/usr`는 User의 약자가 아니다? 리눅스 디렉토리의 진짜 정체 [[리눅스]]를 처음 접하면 누구나 한 번쯤 "아, `/usr`는 유저(User) 폴더구나!"라고 오해할 수 있습니다. 하지만 정작 내 파일을 저장하려고 보면 권한이 없다며 거부당하기 일쑤죠. 결론부터 말하자면, **현대 리눅스에서 `/usr`는 '사용자의 집'이 아니라 '시스템의 공용 자원 창고'입니다.** ![리눅스 파일시스템과 usr디렉토리의 개념이미지](/media/whitedec/blog_img/a8ec4afb63f44633bfe7d8ddc88d744b.webp) ## 1. `/usr`: 이름의 오해와 진짜 의미 {#sec-b849ebed1aef} 과거 유닉스 초기에는 실제로 `/usr`에 사용자 홈 디렉토리가 있었던 시절이 실제로 있었습니다. 하지만 시스템이 커지면서 역할이 분리되었고, 현재 `/usr`는 **Unix System Resources**의 약자로 해석하는 것이 적절할 것 같습니다. 분명 `user` 에서 시작은 했지만, 이제 기능적으로 더이상 user 라는 의미를 가지지 않으니까요. - **성격:** 시스템 운영에 필요한 읽기 전용(Read-only) 데이터와 프로그램의 집합소. - **핵심 역할:** OS 설치 후 추가되는 대부분의 실행 파일, 라이브러리, 공유 데이터가 이곳에 머뭅니다. --- ## 2. `/usr` 내부 살펴보기 (핵심 요약) {#sec-00d9f67269a8} `/usr` 안에는 마치 작은 [[리눅스]] 시스템이 통째로 들어있는 것 같은 구조를 띠고 있습니다. |**디렉토리**|**주요 내용**|**비고**| |---|---|---| |**`/usr/bin`**|일반 사용자용 실행 파일|`python`, `curl`, `git` 등| |**`/usr/sbin`**|시스템 관리자용 실행 파일|네트워크 설정, 데몬 관리 등| |**`/usr/lib`**|프로그램 실행에 필요한 라이브러리|Windows의 `.dll`과 유사한 `.so` 파일들| |**`/usr/share`**|아키텍처에 독립적인 공용 데이터|매뉴얼(man), 아이콘, 폰트 등| |**`/usr/local`**|**사용자가 직접 설치한 프로그램**|소스 컴파일 등으로 설치 시 우선순위 가짐| > **💡 참고: `/bin`과 `/usr/bin`의 차이는?** > > 과거에는 부팅에 필수적인 최소한의 도구만 `/bin`에 넣었으나, 최근 배포판(Ubuntu, Fedora 등)은 관리를 단순화하기 위해 `/bin`을 `/usr/bin`으로 연결(Symbolic Link)해 하나로 통합하는 추세입니다. > `/sbin`과 `/usr/sbin`의 관계도 마찬가지 입니다. --- ## 3. 헷갈리는 디렉토리 4종 세트 비교 {#sec-61ad2a15d2c6} 가장 많이 헷갈려 하시는 네 곳의 역할을 명확히 구분해 드립니다. 1. **`/home` (개인 공간):** 사용자의 개인 문서, 설정 파일(`~/.bashrc` 등)이 위치합니다. OS를 재설치해도 여기만 살리면 내 데이터는 무사합니다. 2. **`/usr` (시스템 자원):** 패키지 관리자(apt, dnf 등)가 관리하는 공용 프로그램 저장소입니다. 3. **`/opt` (외부 앱):** 구글 크롬이나 디스코드처럼 패키지 관리 시스템을 따르지 않고 "통째로" 설치되는 서드파티 앱들의 공간입니다. 4. **`/var` (변하는 데이터):** 로그 파일, 데이터베이스 파일처럼 시스템 운영 중 내용이 계속 변하는 데이터가 쌓입니다. --- ## 4. 실전 가이드: 내 파일은 어디에 둬야 할까? {#sec-456fc34dbec8} 상황에 따라 파일을 두는 위치가 달라집니다. 이 규칙만 지켜도 '[[리눅스]] 를 이해하는 사람' 소리를 듣습니다. - **나 혼자 쓸 간단한 스크립트:** `~/bin` (홈 디렉토리 아래 bin 폴더 생성) 혹은 `~/.local/bin` - **시스템 전체에서 쓸 직접 만든 프로그램:** `/usr/local/bin` (패키지 관리자와 충돌하지 않는 안전한 공용 공간) - **외부에서 다운로드한 거대한 상용 소프트웨어:** `/opt/애플리케이션이름` - **절대 건드리지 말아야 할 곳:** `/usr/bin` (시스템 패키지 관리자가 관리하므로 직접 파일을 넣거나 지우면 패키지 꼬임의 원인이 됩니다.) --- ### 4줄 요약 {#sec-8f4228f1608f} 1. `/usr`는 **사용자(User) 데이터 폴더가 아니다.** 2. 시스템이 공용으로 사용하는 **프로그램과 리소스의 창고**다. 3. 내 개인 파일은 `/home`에, 직접 설치한 공용 앱은 **`/usr/local`** 혹은 `/opt`에 두자. (필자는 `/opt`에 앱이미지를 모아둡니다.) 4. 내 개인이 쓰는 스크립트들은 `~/.local/bin` 디렉토리를 만들어서 여기서 관리하면 꽤 정리정돈이 잘되는 느낌이 든다. 이제 `/usr`를 디렉토리에 대해서 궁금증이 조금 풀렸나요? [[리눅스]]를 좋아하는 유저로서 이번 글을 통해 많은 분들이 리눅스에 대해 조금 더 이해를 함으로써 리눅스 OS의 매력에 흠뻑 빠졌으면 좋겠습니다.