[Linux]리눅스에서 `/`와 `~/`의 차이점 완벽 정리

리눅스를 사용하다 보면 경로를 이동하거나 최상위 디렉터리를 지칭하는 /~/를 자주 접하게 되는데요, 이 둘의 차이점을 정확히 알고 계신가요? 오늘은 이 두 디렉토리의 개념과 활용 방법을 상세히 알아보겠습니다.

 
 

루트 디렉토리의 개념

  • 최상위 디렉토리: /는 리눅스 파일 시스템의 시작점이자 최상위 디렉토리입니다.
  • 트리 구조의 뿌리: 모든 디렉토리와 파일은 / 아래에 계층적으로 위치하며, 트리 구조를 이룹니다.

주요 디렉토리 예시

  • /bin: 기본 실행 파일들이 저장된 디렉토리로, 시스템 부팅 및 기본 명령어 실행에 필요한 바이너리 파일들이 있습니다.
  • /etc: 시스템 설정 파일들이 위치한 디렉토리로, 네트워크 설정, 사용자 계정 정보 등 중요한 설정 파일들이 저장됩니다.
  • /usr: 사용자 프로그램과 라이브러리 파일들이 저장된 디렉토리로, 응용 프로그램 설치 시 주로 사용됩니다.
  • /var: 가변 데이터 파일들이 저장되는 디렉토리로, 로그 파일, 캐시, 스풀 등이 포함됩니다.

사용 예시

cd /            # 루트 디렉토리로 이동
ls /etc         # 시스템 설정 파일 목록 보기
sudo rm -rf /   # 절대 금지! 시스템 전체를 삭제하는 명령어입니다.

마지막 명령어는 시스템을 손상시킬 수 있으므로 절대 실행하지 마세요!
 
 

홈 디렉토리의  ~/ 개념

  • 개인 작업 공간: ~/는 현재 사용자의 홈 디렉토리를 나타내며, 개인 파일과 설정이 저장되는 공간입니다.
  • 사용자별 분리: 각 사용자마다 고유의 홈 디렉토리를 가지고 있어, 파일과 설정이 다른 사용자와 분리됩니다.

홈 디렉토리 위치

  • 일반적으로 /home/사용자이름 형태를 가지며, 시스템 사용자에 따라 경로가 결정됩니다.
    • 예: /home/kim, /home/lee
  • 관리자 계정인 root 사용자의 홈 디렉토리는 /root입니다.

사용 예시

cd ~            # 홈 디렉토리로 이동
ls ~/Documents  # 내 문서 폴더의 파일 목록 보기
mkdir ~/projects  # 홈 디렉토리 아래에 projects 폴더 생성

 
 

와 의 차이점 요약

구분 의미 주요 사용 대상
/ 루트 디렉토리 시스템 전체 파일 및 디렉토리
~/ 현재 사용자의 홈 디렉토리 개인 파일 및 설정
  • 권한 차이: / 아래의 디렉토리는 시스템 파일이므로 관리자 권한이 필요할 수 있지만, ~/ 아래의 디렉토리는 일반 사용자 권한으로 접근 가능합니다.
  • 영향 범위: /에서의 작업은 시스템 전체에 영향을 미칠 수 있지만, ~/에서의 작업은 개인 영역에만 영향을 줍니다.

 

경로 이동과 활용 방법

명령어 활용

  • 홈 디렉토리로 이동: cd 명령어 뒤에 아무 것도 입력하지 않으면 자동으로 홈 디렉토리(~/)로 이동합니다.
cd
  • 상위 디렉토리로 이동: cd .. 명령어를 사용하면 현재 디렉토리의 상위 디렉토리로 이동합니다.
cd ..
  • 절대 경로 이동: / 로 시작하는 경로는 절대 경로로, 파일 시스템의 루트부터 시작합니다.
cd /usr/local/bin
  • 상대 경로 이동: 현재 디렉토리를 기준으로 이동하며, .은 현재 디렉토리, ..은 상위 디렉토리를 의미합니다.
cd ./projects
cd ../downloads

파일 경로 지정

  • 루트 디렉토리 기준:
/etc/hosts          # 시스템 호스트 파일
/var/log/syslog     # 시스템 로그 파일
  • 홈 디렉토리 기준:
~/.bashrc           # 현재 사용자의 Bash 설정 파일
~/projects/myapp    # 개인 프로젝트 디렉토리

 
 

절대 경로와 상대 경로의 이해

절대 경로

  • 루트 디렉토리 /부터 시작: 파일 시스템의 최상위 디렉토리부터 경로를 지정합니다.
  • 예시:
/home/kim/documents/report.docx
/usr/local/bin/python3

상대 경로

  • 현재 디렉토리 기준: 현재 위치한 디렉토리를 기준으로 경로를 지정합니다.
  • 특수 기호:
    • .: 현재 디렉토리
    • ..: 상위 디렉토리
  • 예시 :
./script.sh          # 현재 디렉토리의 script.sh 실행
../images/logo.png   # 상위 디렉토리의 images 폴더의 logo.png 파일

의 활용

  • 현재 사용자의 홈 디렉토리를 의미하며, 절대 경로와 상대 경로 모두에서 사용 가능합니다.
  • 다른 사용자 홈 디렉토리 접근: ~사용자이름/ 형태로 다른 사용자의 홈 디렉토리에 접근할 수 있습니다.
ls ~lee/Documents    # 사용자 lee의 문서 폴더 내용 보기

 
 

Linux에서 활용방법

Linux에서 루트 디렉토리로 이동

cd /   # 루트 디렉토리로 이동
  • 효과: 시스템의 최상위 디렉토리로 이동하여 모든 주요 시스템 디렉토리에 접근할 수 있습니다.
  • 주의 사항: 루트 디렉토리에서의 작업은 시스템에 큰 영향을 미칠 수 있으므로 신중해야 합니다.

Linux에서 홈 디렉토리로 이동

cd ~   # 홈 디렉토리로 이동
  • 효과: 현재 사용자(예: kali 사용자)의 홈 디렉토리로 이동하여 개인 파일과 설정에 접근할 수 있습니다.
  • : cd만 입력해도 홈 디렉토리로 이동합니다.

파일 검색과 실행

  • 루트 디렉토리에서 파일 검색:
    • 시스템 전체에서 passwd라는 이름의 파일을 검색합니다.
    • 2>/dev/null은 에러 메시지를 무시하기 위한 것입니다.
find / -name "passwd" 2>/dev/null
  • 홈 디렉토리에서 스크립트 실행:
    • 홈 디렉토리 아래의 scripts 폴더로 이동하여 install.sh 스크립트를 실행합니다.
cd ~/scripts
./install.sh

 
 

마무리

지금까지 리눅스 명령어에서 /~/의 차이점과 활용 방법에 대해 상세히 알아보았습니다. 이 두 디렉토리의 개념을 명확히 이해하면 리눅스 사용시 매우 편리합니다. 특히 리눅스에서 자주 사용하는 개념인 만큼 경로 설정과 파일 관리에서 실수를 줄일 수 있어 시스템 운영 및 개발 작업에 큰 도움이 됩니다.

추가 팁:

  • 자동 완성 사용: 터미널에서 Tab 키를 활용하여 경로와 파일 이름을 자동 완성할 수 있습니다.
  • 환경 변수 활용: $HOME은 현재 사용자의 홈 디렉토리를 가리키는 환경 변수입니다.
echo $HOME   # 홈 디렉토리 경로 출력

 

  • 퍼미션 확인: 파일이나 디렉토리의 권한을 확인하여 접근 권한을 미리 파악할 수 있습니다.
ls -l /etc/passwd

 

Top