길을 잃지 않는 것이 첫 번째 실력
Linux에서 명령어를 잘 쓰는 사람은 먼저 자기 위치를 확인합니다. 파일을 지우거나, 설정을 고치거나, 프로그램을 실행할 때 가장 중요한 질문은 늘 같습니다.
"나는 지금 어디에 있고, 이 명령어는 무엇을 가리키는가?"
Linux 파일 시스템은 큰 건물의 주소 체계와 비슷합니다. 건물 전체의 입구가 있고, 층과 방이 있고, 각 방 안에 문서와 도구가 있습니다. 터미널에서는 이 주소를 경로라고 부릅니다. 경로를 정확히 읽으면 원하는 위치로 이동할 수 있고, 실수로 엉뚱한 파일을 건드릴 가능성도 줄어듭니다.
이번 장에서는 pwd, cd, ls 세 명령어를 반복해서 사용합니다. 이 셋은 길 찾기의 기본 도구입니다. pwd는 현재 위치를 보여 주고, cd는 위치를 바꾸며, ls는 그 위치에 무엇이 있는지 보여 줍니다.
AI 생성 이미지
Linux 디렉터리 구조 한눈에 보기
Linux의 모든 경로는 /에서 시작합니다. 이 /를 루트 디렉터리라고 합니다. 여기서 루트는 관리자 사용자 root와 이름은 같지만 의미가 다릅니다. /는 파일 시스템의 가장 위쪽 출발점입니다.
주요 디렉터리는 다음처럼 이해하면 됩니다.
| 경로 | 실무 관점의 의미 |
|---|---|
/ | 모든 파일과 디렉터리의 시작점입니다. Windows의 C:와 비슷하게 느낄 수 있지만, Linux에서는 여러 디스크도 하나의 트리 아래에 붙습니다. |
/home | 일반 사용자의 개인 공간이 모여 있는 곳입니다. 예를 들어 사용자 이름이 mina라면 보통 /home/mina가 개인 홈 디렉터리입니다. |
/etc | 시스템과 프로그램의 설정 파일이 많이 들어 있습니다. 웹 서버, SSH, 네트워크 설정을 확인할 때 자주 갑니다. 초보자는 내용을 먼저 읽고, 수정은 신중히 해야 합니다. |
/var | 자주 변하는 데이터가 들어갑니다. 로그 파일, 캐시, 메일, 서비스 실행 중 생기는 데이터가 대표적입니다. 장애 원인을 찾을 때 /var/log를 자주 확인합니다. |
/usr | 사용자가 직접 만든 파일보다는 설치된 프로그램, 라이브러리, 문서가 많이 들어 있습니다. /usr/bin에는 일반 실행 명령어가 많이 있습니다. |
/tmp | 임시 파일을 두는 공간입니다. 재부팅하거나 시스템 정책에 따라 파일이 사라질 수 있으므로 중요한 파일을 오래 보관하는 장소로 쓰면 안 됩니다. |
/root | 관리자 사용자 root의 홈 디렉터리입니다. 일반 사용자의 /home/사용자명과 구분됩니다. |
초보자가 가장 많이 오가는 곳은 홈 디렉터리입니다. 이 책에서는 앞에서 만든 ~/linux-practice를 실습 공간으로 사용합니다. 시스템 디렉터리인 /etc, /usr, /var는 주로 "읽고 확인하는 장소"로 먼저 익히면 안전합니다.
현재 위치 확인하기: pwd
터미널에서 길을 잃었다고 느껴지면 가장 먼저 pwd를 입력합니다.
pwd출력은 보통 다음처럼 나옵니다.
/home/minapwd는 print working directory의 줄임말입니다. 현재 작업 중인 디렉터리, 즉 "지금 내가 서 있는 위치"를 절대 경로로 보여 줍니다.
프롬프트에 ~가 보이더라도 실제 경로를 확인하고 싶을 때는 pwd가 더 정확합니다.
cd ~
pwd예상 출력은 사용자 이름에 따라 다릅니다.
/home/사용자명명령어를 실행하기 전 현재 위치를 확인하는 습관은 특히 중요합니다. 같은 ls라도 어디에서 실행하느냐에 따라 결과가 달라지고, 나중에 배우는 삭제나 이동 명령은 현재 위치에 따라 위험도가 크게 달라집니다.
위치 이동하기: cd
cd는 change directory의 줄임말입니다. 현재 위치를 다른 디렉터리로 바꿉니다.
홈 디렉터리로 이동하려면 다음 중 하나를 사용할 수 있습니다.
cd또는 명시적으로 ~를 사용할 수 있습니다.
cd ~~는 현재 사용자의 홈 디렉터리를 뜻합니다. 예를 들어 사용자 이름이 mina라면 ~는 /home/mina와 같은 의미입니다.
루트 디렉터리로 이동하려면 /를 사용합니다.
cd /
pwd예상 출력:
/다시 홈 디렉터리로 돌아갑니다.
cd ~
pwd부모 디렉터리로 한 단계 올라가려면 ..을 사용합니다.
cd ~/linux-practice
pwd
cd ..
pwd만약 ~/linux-practice가 /home/mina/linux-practice라면 cd .. 이후 위치는 /home/mina가 됩니다.
바로 이전 위치로 돌아가고 싶을 때는 cd -를 사용할 수 있습니다.
cd /etc
pwd
cd -
pwdcd -는 두 장소를 오가며 비교할 때 편리합니다. 예를 들어 /etc에서 설정 파일 이름을 확인하고, 다시 내 실습 디렉터리로 돌아올 때 사용할 수 있습니다.
목록 확인하기: ls
이제 현재 위치에 무엇이 있는지 확인해 봅니다.
lsls는 현재 디렉터리의 파일과 하위 디렉터리 이름을 보여 줍니다. 특정 경로를 인자로 주면 그 위치의 목록을 확인합니다.
ls /etc
ls /usr/bin
ls ~/linux-practice목록을 더 자세히 보고 싶을 때는 -l 옵션을 사용합니다.
ls -l출력은 다음과 비슷합니다.
drwxr-xr-x 2 mina mina 4096 May 23 10:20 notes
-rw-r--r-- 1 mina mina 120 May 23 10:21 memo.txt처음 글자가 d이면 디렉터리, -이면 일반 파일입니다. 그 뒤의 rwx 묶음은 권한을 나타냅니다. 권한은 뒤에서 자세히 다루지만, 지금은 "목록에 파일 종류와 소유자, 크기, 수정 시간이 함께 나온다" 정도로 읽으면 됩니다.
파일 크기를 사람이 읽기 쉽게 보려면 -h를 함께 씁니다.
ls -lh숨김 파일까지 보려면 -a를 사용합니다.
ls -a자주 쓰는 조합은 다음과 같습니다.
ls -la
ls -lah옵션은 붙여 쓸 수 있습니다. ls -lah는 -l, -a, -h를 함께 사용한다는 뜻입니다.
디렉터리와 실행 파일을 눈으로 구분하고 싶을 때는 -F도 유용합니다.
ls -F출력에서 디렉터리 뒤에는 /가 붙고, 실행 가능한 파일 뒤에는 *가 붙을 수 있습니다. 단, 이 표시는 파일 이름의 일부가 아니라 ls가 이해를 돕기 위해 붙여 주는 기호입니다.
절대 경로와 상대 경로
경로에는 두 종류가 있습니다. 절대 경로와 상대 경로입니다.
절대 경로는 항상 /에서 시작합니다.
/etc
/home/mina/linux-practice
/usr/bin절대 경로는 현재 위치가 어디든 같은 대상을 가리킵니다. 예를 들어 다음 명령은 어느 디렉터리에서 실행해도 /etc 목록을 보여 줍니다.
ls /etc상대 경로는 현재 위치를 기준으로 해석됩니다.
ls linux-practice
cd Documents
ls ../예를 들어 현재 위치가 /home/mina일 때 linux-practice는 /home/mina/linux-practice를 뜻합니다. 하지만 현재 위치가 /tmp라면 linux-practice는 /tmp/linux-practice를 뜻합니다. 같은 글자라도 현재 위치에 따라 완전히 다른 대상을 가리킬 수 있습니다.
그래서 상대 경로를 사용할 때는 먼저 pwd로 기준점을 확인해야 합니다.
pwd
ls linux-practice만약 다음과 같은 오류가 나오면,
ls: cannot access 'linux-practice': No such file or directory현재 위치 아래에 linux-practice라는 이름이 없다는 뜻입니다. 파일이 반드시 사라졌다는 뜻은 아닙니다. 내가 다른 위치에 서 있을 가능성을 먼저 확인해야 합니다.
pwd
ls ~/linux-practice~/linux-practice는 홈 디렉터리를 기준으로 한 경로이므로 현재 위치의 영향을 덜 받습니다.
., .., ~ 정확히 구분하기
경로에서 자주 보이는 세 기호를 정리해 봅시다.
| 기호 | 의미 | 예시 |
|---|---|---|
. | 현재 디렉터리 | ls .는 현재 위치의 목록을 보여 줍니다. |
.. | 부모 디렉터리 | cd ..은 한 단계 위로 이동합니다. |
~ | 현재 사용자의 홈 디렉터리 | cd ~는 /home/사용자명으로 이동합니다. |
직접 확인해 봅니다.
cd ~/linux-practice
pwd
ls .
ls ..
ls ~여기서 ls .는 현재 실습 디렉터리의 목록을 보여 줍니다. ls ..은 실습 디렉터리의 부모, 즉 홈 디렉터리의 목록을 보여 줍니다. ls ~도 홈 디렉터리의 목록을 보여 주므로, 이 상황에서는 ls ..과 비슷한 결과가 나올 수 있습니다.
하지만 .과 ~는 같은 뜻이 아닙니다. 현재 위치가 /etc라면 .은 /etc이고, ~는 여전히 내 홈 디렉터리입니다.
cd /etc
pwd
ls .
ls ~명령어가 어떤 대상을 가리키는지 헷갈릴 때는 머릿속으로 경로를 풀어 써 보세요. ~/linux-practice는 /home/내사용자/linux-practice이고, ../는 현재 위치의 부모입니다.
숨김 파일과 Linux의 파일 이름 문화
Linux에서는 이름이 .으로 시작하면 숨김 파일로 취급합니다.
cd ~
ls
ls -als만 실행했을 때 보이지 않던 .bashrc, .profile, .ssh 같은 항목이 ls -a에서는 보일 수 있습니다. 이 파일들은 사라진 것이 아니라 기본 목록에서 숨겨져 있었던 것입니다.
숨김 파일은 주로 개인 설정을 저장하는 데 사용됩니다. 예를 들어 셸 설정, Git 설정, SSH 설정이 홈 디렉터리의 숨김 파일이나 숨김 디렉터리에 들어갑니다. 이름이 점으로 시작한다고 해서 위험한 파일이라는 뜻은 아닙니다. 다만 설정 파일인 경우가 많으므로 내용을 모르고 수정하지 않는 것이 좋습니다.
또 하나 중요한 점은 Linux가 파일 확장자에만 의존하지 않는다는 것입니다. Windows에서는 .exe, .txt, .jpg 같은 확장자가 파일 종류를 판단하는 큰 단서입니다. Linux에서도 확장자는 사람이 알아보기 위해 자주 쓰지만, 시스템 동작은 확장자 하나로 결정되지 않습니다.
예를 들어 실행 가능한 파일인지 여부는 이름이 .exe로 끝나는지가 아니라 권한과 파일 내용에 따라 판단됩니다. memo.txt라는 이름이어도 실행 권한이 있으면 실행을 시도할 수 있고, 확장자가 없어도 이미지나 압축 파일일 수 있습니다.
파일 종류가 궁금할 때는 다음 명령을 사용할 수 있습니다.
file /bin/ls
file ~/.bashrcfile은 파일의 내용을 보고 종류를 추정합니다. 확장자를 보고 짐작하는 것보다 정확한 판단에 도움이 됩니다.
실습: 세 명령어로 길 찾기 반복하기
아래 실습은 파일을 수정하거나 삭제하지 않습니다. 현재 위치를 확인하고 이동하며 목록을 읽는 연습입니다.
홈 디렉터리로 이동하고 실제 경로를 확인합니다.
cd ~
pwd루트 디렉터리로 이동한 뒤 주요 디렉터리를 확인합니다.
cd /
pwd
ls출력에 home, etc, usr, var, tmp가 있는지 찾아보세요.
/etc목록을 자세히 확인합니다.
ls -lah /etc여기서는 설정 파일 이름을 읽는 연습만 합니다. 관리자 권한으로 수정하지 않습니다.
실습 디렉터리로 이동합니다.
cd ~/linux-practice
pwd
ls -la만약 No such file or directory가 나오면 ~/linux-practice가 아직 없다는 뜻입니다. 이 경우 Linux를 이해하고 학습 환경 만들기에서 만든 실습 디렉터리가 있는지 홈 디렉터리 목록부터 확인합니다.
cd ~
ls -la부모 디렉터리와 이전 위치 이동을 확인합니다.
cd ~/linux-practice
pwd
cd ..
pwd
cd -
pwd각 단계에서 pwd 출력이 어떻게 바뀌는지 눈으로 확인하세요. 명령어를 입력하는 것보다 출력 결과를 읽는 습관이 더 중요합니다.
문제 해결 시나리오: etc와 /etc는 다르다
사용자가 홈 디렉터리에서 시스템 설정 디렉터리를 보려고 다음 명령을 입력했다고 해 봅시다.
cd ~
cd etc다음과 같은 오류가 나올 수 있습니다.
bash: cd: etc: No such file or directory이 오류는 /etc가 없다는 뜻이 아닙니다. etc는 상대 경로입니다. 현재 위치가 홈 디렉터리라면 셸은 /home/사용자명/etc를 찾습니다. 홈 디렉터리 안에 etc라는 디렉터리가 없으니 오류가 난 것입니다.
시스템 설정 디렉터리로 가려면 절대 경로를 사용해야 합니다.
cd /etc
pwd출력이 다음처럼 나오면 제대로 이동한 것입니다.
/etc다시 내 실습 공간으로 돌아오려면 홈 기준 경로를 사용합니다.
cd ~/linux-practice
pwd이 시나리오에서 배울 점은 간단합니다. 앞에 /가 있으면 루트에서 시작하는 절대 경로이고, 없으면 현재 위치에서 시작하는 상대 경로입니다. 오류가 났을 때는 파일이 없다고 단정하기 전에 pwd로 기준 위치를 확인하세요.
이번 장의 핵심 정리
Linux에서 파일 작업을 시작하기 전에는 세 가지를 확인합니다.
pwd로 현재 위치를 확인합니다.cd로 의도한 위치로 이동합니다.ls로 대상이 실제로 있는지 확인합니다.
/는 전체 파일 시스템의 시작점이고, ~는 내 홈 디렉터리입니다. .은 현재 위치, ..은 부모 디렉터리입니다. 절대 경로는 어디서 실행해도 같은 대상을 가리키지만, 상대 경로는 현재 위치에 따라 달라집니다.
다음 장부터는 파일과 디렉터리를 직접 만들고 옮기고 지우는 작업을 배웁니다. 그때 실수를 줄이는 가장 좋은 방법은 이번 장의 습관을 유지하는 것입니다. 명령어를 실행하기 전에 "나는 어디에 있고, 이 경로는 무엇을 가리키는가?"를 먼저 확인하세요.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.