리눅스를 사용하다 보면 경로를 이동하거나 최상위 디렉터리를 지칭하는 /
와 ~/
를 자주 접하게 되는데요, 이 둘의 차이점을 정확히 알고 계신가요? 오늘은 이 두 디렉토리의 개념과 활용 방법을 상세히 알아보겠습니다.
루트 디렉토리의 개념
- 최상위 디렉토리:
/
는 리눅스 파일 시스템의 시작점이자 최상위 디렉토리입니다. - 트리 구조의 뿌리: 모든 디렉토리와 파일은
/
아래에 계층적으로 위치하며, 트리 구조를 이룹니다.
주요 디렉토리 예시
/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