소개
Linux 기본 파일 작업 실습에 오신 것을 환영합니다! Linux 에서는 거의 모든 것을 파일로 취급하므로 파일 작업은 시스템 사용의 기본이 됩니다. 이 실습에서는 파일과 디렉터리를 관리하는 가장 일반적인 명령어를 단계별로 실행하며, Linux 시스템을 탐색하고 정리하는 능력을 익힙니다.
작업 환경 이해하기
Linux 에서 각 사용자는 일반적으로 ~로 표시되는 "홈 디렉터리"를 가집니다. 하지만 이 실습 환경에서는 기본 작업 디렉터리인 /home/labex/project에서 시작합니다.
먼저 Desktop 에서 터미널을 열거나, 실습 환경의 터미널 탭으로 전환합니다.

현재 위치를 확인합니다.
pwd
pwd는 "print working directory"의 약자입니다. 파일 시스템에서 현재 위치를 표시합니다. 이 명령어는 Linux 파일 구조에서 현재 위치를 파악할 때 중요합니다. 출력 결과로 /home/labex/project가 표시되어야 합니다.
이제 현재 디렉터리와 홈 디렉터리의 관계를 확인합니다.
echo ~
참고: 일부 국가에서는 키보드 레이아웃 차이로 인해 Desktop 터미널에서
~기호를 입력할 수 없을 수 있습니다. 이 경우 VM 인터페이스 왼쪽 위에 있는 독립형 Terminal 탭으로 전환해 보세요.
이 명령어는 홈 디렉터리의 경로를 표시하며, /home/labex가 출력되어야 합니다.
현재 디렉터리의 내용을 확인하려면 다음 명령어를 사용합니다.
ls
현재 작업 디렉터리 (/home/labex/project) 에 있는 파일과 디렉터리 목록이 표시됩니다.
홈 디렉터리의 내용도 확인합니다.
ls ~
이 명령어는 홈 디렉터리의 내용을 표시합니다. 홈 디렉터리의 내용은 현재 작업 디렉터리의 내용과 다를 수 있습니다.
현재 작업 디렉터리와 홈 디렉터리의 차이를 이해하면 Linux 파일 시스템을 효과적으로 탐색할 수 있습니다.
파일 시스템 탐색하기
Linux 는 "계층형 파일 시스템"을 사용합니다. 가지가 뻗은 큰 나무를 떠올리면 됩니다. 가장 중심이 되는 줄기는 "루트 디렉터리"이며, 하나의 슬래시 /로 표시합니다. 다른 모든 디렉터리와 파일은 이 루트에서 가지처럼 뻗어 나옵니다.
이 트리 구조에서 이동하는 방법을 살펴봅니다.
- 현재 위치를 확인합니다.
pwd
/home/labex/project가 표시되어야 합니다. 다른 디렉터리가 표시되면 cd /home/labex/project를 사용해 시작 위치로 돌아갑니다.
- 현재 디렉터리의 내용을 확인합니다.
ls
현재 위치에 있는 모든 파일과 디렉터리가 표시됩니다. /home/labex/project는 비어 있으므로 아무것도 표시되지 않습니다.
- 상위 디렉터리로 한 단계 이동합니다.
cd ..
..은 "상위 디렉터리"를 의미합니다. 이 명령어를 실행한 후 pwd를 다시 실행합니다. 이제 /home/labex에 있어야 합니다.
- 프로젝트 디렉터리로 돌아갑니다.
cd project
/home/labex/project로 돌아갑니다.
- 홈 디렉터리로 이동합니다.
cd ~
~은 홈 디렉터리의 단축 표현입니다. pwd를 실행해 /home/labex에 있는지 확인합니다.
- 절대 경로를 사용해 프로젝트 디렉터리로 돌아갑니다.
cd /home/labex/project
이 경로는 루트 (/) 에서 시작해 전체 위치를 지정하므로 "절대 경로"라고 합니다.
파일 생성 및 디렉터리 내용 확인하기
이제 디렉터리 탐색 방법을 알았으므로 파일을 만들고 디렉터리 내용을 확인합니다.
먼저 /home/labex/project 디렉터리에 있는지 확인합니다.
cd /home/labex/project
- 파일을 몇 개 만듭니다.
touch file1.txt
touch 명령어는 빈 파일을 만들 때 사용합니다. 파일이 이미 있으면 내용을 변경하지 않고 타임스탬프를 업데이트합니다. 새 빈 파일을 간단하게 만들 수 있는 방법입니다.
echo "Hello, Linux" > file2.txt
이 명령어는 두 가지 작업을 수행합니다.
echo는 텍스트를 출력하는 명령어입니다.>기호는echo의 출력을file2.txt라는 파일로 리디렉션합니다. 파일이 없으면 새로 만들고, 이미 있으면 기존 내용을 바꿉니다.
echo "Hidden file" > .hiddenfile
숨김 파일을 만듭니다. Linux 에서는 이름이 점 (.) 으로 시작하는 파일이나 디렉터리를 숨김 항목으로 취급합니다.
- 이제 디렉터리를 만듭니다.
mkdir testdir
mkdir 명령어는 "make directory"의 약자로, testdir이라는 새 디렉터리를 만듭니다.
- 기본 목록을 확인합니다.
ls

현재 디렉터리의 내용이 표시됩니다. file1.txt, file2.txt, testdir이 표시되어야 합니다.
- 자세한 목록을 확인합니다.
ls -l
-l 옵션은 숫자 1 이 아닌 소문자 L 입니다. "긴 형식"으로 목록을 표시하며, 파일 권한, 소유자, 크기, 수정 날짜와 같은 추가 정보를 보여 줍니다.
- 숨김 파일을 표시합니다.
ls -a
이 명령어는 숨김 파일인 .hiddenfile을 포함한 모든 파일을 표시합니다.
- 옵션을 함께 사용합니다.
ls -la
긴 형식 (-l) 과 모든 파일 표시 (-a) 를 함께 사용합니다.
- 특정 디렉터리의 내용을 확인합니다.
ls -l testdir
testdir 디렉터리의 내용을 자세한 형식으로 표시합니다. 현재는 비어 있어 아무것도 표시되지 않아야 합니다.
이 단계의 목록 명령어는 직접 실행해 보고 결과를 확인하기 위한 것입니다. 진행 상황은 필요한 파일과 디렉터리가 올바르게 생성되었는지 확인하여 평가합니다.
파일과 디렉터리 복사하기
이제 작업할 파일이 있으므로 파일을 복사하는 방법을 알아봅니다.
- 파일을 복사합니다.
cp file1.txt file1_copy.txt
현재 디렉터리에 file1.txt의 복사본인 file1_copy.txt를 만듭니다.
복사 결과를 확인합니다.
ls
- 파일을 다른 디렉터리로 복사합니다.
cp file2.txt testdir/
file2.txt를 testdir 디렉터리 안으로 복사합니다.
- 디렉터리를 복사합니다.
cp -r testdir testdir_copy
-r 옵션은 "recursive"를 의미합니다. 디렉터리를 복사할 때 내부의 모든 내용도 복사하려면 이 옵션이 필요합니다.
- 복사 결과를 확인합니다.
ls
ls testdir
ls testdir_copy

파일과 디렉터리 이동 및 이름 변경하기
Linux 에서 mv 명령어는 파일과 디렉터리를 이동하거나 이름을 변경할 때 사용합니다.
- 파일 이름을 변경합니다.
mv file1.txt newname.txt
file1.txt의 이름을 newname.txt로 변경합니다.
- 파일을 디렉터리로 이동합니다.
mv newname.txt testdir/
newname.txt를 testdir 디렉터리 안으로 이동합니다.
- 디렉터리 이름을 변경합니다.
mv testdir_copy new_testdir
testdir_copy의 이름을 new_testdir로 변경합니다.
- 한 명령어로 이동과 이름 변경을 함께 수행합니다.
mv testdir/newname.txt ./original_file1.txt
testdir에서 newname.txt를 꺼내 현재 디렉터리로 이동하고, 이름을 original_file1.txt로 변경합니다.
- 변경 결과를 확인합니다.
ls
ls testdir

파일과 디렉터리 삭제하기
파일과 디렉터리 삭제는 강력한 작업입니다. 그래픽 인터페이스와 달리 명령줄에는 "Recycle Bin"이나 "Trash"가 없는 경우가 많습니다. rm으로 삭제한 항목은 일반적으로 영구적으로 삭제됩니다. 명령어를 실행하기 전에 항상 내용을 다시 확인합니다.
이제 만든 파일과 디렉터리를 정리합니다. /home/labex/project 디렉터리에 있는지 확인합니다.
pwd
ls -a
original_file1.txt, .hiddenfile, file2.txt와 같은 파일과 testdir, new_testdir와 같은 디렉터리가 표시되어야 합니다.
.
..
.hiddenfile
file1_copy.txt
file2.txt
new_testdir
original_file1.txt
testdir
파일 하나를 삭제합니다.
rm original_file1.txtrm명령어는 "remove"의 약자로, 파일을 삭제합니다. 다음 명령어로 확인합니다.lsoriginal_file1.txt가 목록에서 사라져야 합니다.대화형 방식으로 삭제합니다 (더 안전한 방법).
이번에는 대화형 옵션
-i를 사용해file2.txt를 삭제합니다.rm -i file2.txt-i옵션을 사용하면 각 파일을 삭제하기 전에 확인을 요청합니다. 삭제를 확인하려면y(yes) 를 입력하고 Enter 키를 누릅니다.n또는 다른 문자를 입력하면 파일을 삭제하지 않습니다.ls삭제를 확인했다면
file2.txt가 목록에서 사라집니다.내용이 있는 디렉터리에서 어떤 일이 발생하는지 확인합니다.
testdir_copy의 이름을 변경해 만든new_testdir를 기억하세요. 이 디렉터리에는 복사된file2.txt가 여전히 있으므로rmdir은 실패합니다. 먼저 내용을 확인합니다.ls new_testdirfile2.txt가 표시되어야 합니다. 이제rmdir을 실행합니다.rmdir new_testdirrmdir(remove directory) 은 비어 있는 디렉터리에만 사용할 수 있습니다.lsnew_testdir는 비어 있지 않으므로 삭제되지 않고 목록에 계속 표시되어야 합니다.내용이 있는 디렉터리 삭제를 시도합니다.
이번에는 Step 4 에서
file2.txt를 복사해 넣은testdir에rmdir을 실행합니다.ls testdir rmdir testdir다음과 비슷한 오류 메시지가 표시될 수 있습니다:
rmdir: failed to remove 'testdir': Directory not empty.rmdir은 파일이나 다른 디렉터리가 들어 있는 디렉터리를 삭제할 수 없으므로 정상적인 결과입니다.디렉터리와 내부 내용을 재귀적으로 삭제합니다.
비어 있지 않은 디렉터리를 삭제하려면
rm과-r(recursive) 옵션을 함께 사용해야 합니다.rm -r testdir이 명령어는
testdir디렉터리와 그 안의 모든 내용을 삭제합니다. 주의해서 사용합니다.ls이제
testdir가 목록에서 사라져야 합니다.강제로 삭제합니다 (각별히 주의).
때로는 쓰기 보호된 파일이 있더라도 확인 메시지 없이 파일을 삭제해야 할 수 있습니다.
-f(force) 옵션을 사용하면 됩니다. 이 실습에는 쓰기 보호된 파일이 없습니다.숨김 파일을 삭제합니다.
rm .hiddenfile ls -a이제
-r과-f를 함께 사용해 보겠습니다.rm -rf명령어는 매우 강력하며 잠재적으로 위험합니다. 디렉터리를 재귀적으로 삭제하고 (-r), 확인 메시지 없이 강제로 삭제합니다 (-f).!!! 위험 구역 !!!
rm -rf를 실행하기 전에 무엇을 삭제하는지 반드시 정확히 확인합니다. 경로를 조금만 잘못 입력해도 중요한 시스템 파일이나 개인 데이터가 삭제될 수 있습니다. 실행 취소할 수 없습니다. 예를 들어 권한이 있다면rm -rf /는 전체 시스템을 삭제하려고 시도할 수 있습니다. 항상 경로를 다시 확인합니다.안전하게 시연하기 위해 임시 디렉터리와 파일을 만듭니다.
mkdir temp_dir touch temp_dir/temp_file.txt ls -R temp_dir참고:
cp와rm에서 사용한-r(소문자) 대신ls에서는-R(대문자) 을 사용했습니다. 이는 단순한 대소문자 차이가 아니라 완전히 다른 옵션입니다.ls에서-R은 "재귀적 목록 표시"(하위 디렉터리 표시) 를 의미하고,-r은 "역순 정렬"을 의미합니다.cp와rm에서 재귀 옵션은-r(소문자) 입니다. 각 명령어의 옵션을 이해하려면 항상 매뉴얼 (man command) 을 확인합니다.이제 강제로 삭제합니다.
rm -rf temp_dir삭제 결과를 확인합니다.
lstemp_dir가 목록에서 사라져야 합니다.
Linux 명령줄에서 삭제한 파일은 일반적으로 영구적으로 사라집니다. rm은 신중하게 사용합니다.
요약
축하합니다! Linux 에서 다음과 같은 기본 파일 작업을 배웠습니다.
cd와pwd를 사용한 파일 시스템 탐색touch와mkdir을 사용한 파일 및 디렉터리 생성ls와 옵션을 사용한 내용 목록 확인cp를 사용한 파일 및 디렉터리 복사mv를 사용한 이동 및 이름 변경rm과rmdir을 사용한 파일 및 디렉터리 삭제
이 명령어들은 Linux 파일 관리의 기초입니다. 연습을 계속하면 명령줄에서 파일과 디렉터리를 능숙하게 관리할 수 있습니다.
특히 rm은 파일과 디렉터리를 복구할 수 없도록 영구 삭제하므로 신중하게 사용합니다.
Linux 학습을 계속하면서 매뉴얼 페이지 (예: man ls) 를 확인해 각 명령어와 옵션을 더 자세히 알아보세요. 즐겁게 탐색해 보세요!



