소개
리눅스 파일 작업에 관한 실습에 오신 것을 환영합니다! 리눅스가 처음이더라도 걱정하지 마세요. 각 단계를 차근차근 안내해 드립니다. 이번 실습에서는 파일의 내용을 확인하고, 파일의 특정 부분을 살펴보며, 서로 다른 파일을 비교하는 방법을 배웁니다. 이는 리눅스 파일 시스템을 탐색하고 이해하는 데 필요한 가장 기초적이고 중요한 기술입니다.
파일 내용 출력하기
먼저, 바탕화면에서 터미널을 열거나 실습 환경의 터미널 탭으로 전환해 주세요.

터미널을 열면 보통 $ 기호로 끝나는 명령 프롬프트가 보일 것입니다. 이곳에 명령어를 입력하게 됩니다.
이제 cat 명령어를 사용하여 파일의 내용을 화면에 표시해 보겠습니다.
- 터미널에 다음 명령어를 입력하고 Enter 를 누르세요.
cat /tmp/hello
여기서 /tmp/hello는 확인하려는 파일의 경로입니다. /tmp는 시스템의 디렉터리 (폴더) 이며, hello는 해당 디렉터리 안에 있는 파일 이름입니다.
- Enter 를 누르면 다음과 같은 파일 내용이 나타납니다.
Hi,
I am Labby!
이것이 /tmp/hello 파일에 담긴 전체 내용입니다. cat 명령어가 터미널에 이를 출력해 주었습니다.
줄 번호와 함께 파일 내용 표시하기
이번에는 cat 명령어를 다시 사용하되, 출력 결과에 줄 번호를 추가해 보겠습니다.
- 터미널에 다음 명령어를 입력하고 Enter 를 누르세요.
cat -n /tmp/hello
여기서 -n은 옵션 또는 플래그라고 불립니다. 이는 cat에게 출력되는 모든 줄에 번호를 붙이도록 지시합니다.
- 이제 줄 번호가 포함된 파일 내용을 확인할 수 있습니다.
1 Hi,
2 I am Labby!
파일의 내용이 길어질 때 특정 위치를 지칭해야 하는 경우 이 기능이 매우 유용합니다.
파일의 앞부분 출력하기
다음으로 head 명령어를 사용해 보겠습니다. 이름에서 알 수 있듯이 head는 파일의 시작 부분, 즉 "머리" 부분을 확인하는 데 사용됩니다.
- 터미널에 다음 명령어를 입력하고 Enter 를 누르세요.
head -n1 /tmp/hello
여기서 -n1 옵션은 head에게 첫 번째 줄만 보여달라고 요청하는 것입니다. 숫자 1을 원하는 숫자로 바꾸면 그만큼의 줄을 확인할 수 있습니다.
- 다음과 같은 결과가 출력됩니다.
Hi,
파일의 첫 번째 줄만 출력되었습니다. 만약 -n1 옵션 없이 head 명령어만 사용한다면, 기본적으로 파일의 처음 10 줄을 보여줍니다.
파일의 처음 몇 바이트 확인하기
이번에도 head 명령어를 사용하지만, 줄 단위가 아닌 파일 시작 부분부터 특정 바이트 수만큼 확인해 보겠습니다.
- 터미널에 다음 명령어를 입력하고 Enter 를 누르세요.
head -c1 /tmp/hello
-c1 옵션은 head에게 파일의 첫 1 바이트 (문자 하나) 만 보여주도록 지시합니다. -n과 마찬가지로 숫자 1을 변경하여 원하는 바이트 수만큼 볼 수 있습니다.
- 다음과 같은 결과가 출력됩니다.
H
파일의 첫 번째 글자만 나타났습니다. 텍스트 파일에서 일반적으로 한 문자는 1 바이트를 차지합니다.
파일의 뒷부분 출력하기
이제 tail 명령어로 넘어가 보겠습니다. 짐작하셨겠지만 tail은 head와 반대로 파일의 끝부분, 즉 "꼬리" 부분을 보여줍니다.
- 터미널에 다음 명령어를 입력하고 Enter 를 누르세요.
tail -n1 /tmp/hello
head와 마찬가지로 -n1 옵션은 tail에게 마지막 한 줄만 보여주도록 지시합니다.
- 다음과 같은 결과가 출력됩니다.
I am Labby!
파일의 마지막 줄이 출력되었습니다. 옵션을 지정하지 않으면 tail은 기본적으로 마지막 10 줄을 보여줍니다.
파일의 마지막 몇 바이트 확인하기
head에서 했던 것과 비슷하게, tail을 사용하여 파일 끝부분의 특정 바이트 수를 확인할 수 있습니다.
- 먼저 마지막 1 바이트를 확인해 보겠습니다. 터미널에 다음 명령어를 입력하고 Enter 를 누르세요.
tail -c1 /tmp/hello
아무것도 출력되지 않는 것처럼 보일 수 있습니다. 이는 파일의 마지막 문자가 눈에 보이지 않는 줄 바꿈 (newline) 문자일 가능성이 높기 때문입니다.
- 대신 마지막 2 바이트를 확인해 보겠습니다. 다음 명령어를 입력하고 Enter 를 누르세요.
tail -c2 /tmp/hello
- 이제 다음과 같은 결과가 보일 것입니다.
!
-c2 옵션은 tail에게 파일의 마지막 2 바이트 (문자) 를 보여주도록 합니다. 이 경우 우리 파일에서 마지막으로 눈에 보이는 문자인 느낌표가 출력되었습니다.
파일 비교하기
이제 diff 명령어를 사용하여 두 파일을 비교하고 그 차이점을 찾아내는 방법을 배워보겠습니다.
- 먼저 올바른 디렉터리에 있는지 확인합니다. 다음 명령어를 입력하고 Enter 를 누르세요.
cd ~/project
이 명령어는 현재 작업 디렉터리를 홈 디렉터리 아래의 "project" 폴더로 변경합니다. ~ 기호는 홈 디렉터리를 나타내는 약어입니다.
- 이제 두 파일을 비교해 보겠습니다. 다음 명령어를 입력하고 Enter 를 누르세요.
diff file1 file2
이 명령은 file1과 file2의 내용을 비교하도록 diff에 지시합니다.
- 다음과 유사한 결과가 출력될 것입니다.
1c1
< this is file1
---
> this is file2
이 출력 결과의 의미를 분석해 보겠습니다. diff 명령어는 첫 번째 파일을 두 번째 파일과 동일하게 만들기 위해 어떤 변경이 필요한지 설명합니다. 파일이 생성되거나 수정된 순서와 상관없이, 명령어를 실행하는 시점의 내용을 비교합니다.
1c1: 첫 번째 파일의 1 행이 두 번째 파일의 1 행과 일치하도록 **변경 (change)**되어야 함을 나타냅니다.< this is file1:<기호는 첫 번째 파일 (file1) 의 내용을 나타냅니다.---: 두 파일의 내용을 구분하는 구분선입니다.> this is file2:>기호는 두 번째 파일 (file2) 의 내용을 나타냅니다.
간단히 말해, diff는 두 파일의 1 행 내용이 서로 다르다는 것을 보여줍니다. file1을 file2와 똑같이 만들려면 "this is file1"이라는 줄을 "this is file2"로 바꿔야 한다는 뜻입니다.
디렉터리 비교하기
마지막으로 diff 명령어를 사용하여 디렉터리 전체를 비교해 보겠습니다.
- 터미널에 다음 명령어를 입력하고 Enter 를 누르세요.
diff -r ~/Desktop ~/Code
-r 옵션은 하위 디렉터리까지 포함하여 재귀적으로 비교하도록 diff에 지시합니다. ~/Desktop과 ~/Code는 비교할 두 디렉터리의 경로입니다.
- 다음과 유사한 결과가 나타날 수 있습니다.
Only in /home/labex/Desktop: code.desktop
Only in /home/labex/Desktop: gedit.desktop
Only in /home/labex/Desktop: gvim.desktop
Only in /home/labex/Desktop: xfce4-terminal.desktop
이 출력은 Desktop 디렉터리에는 있지만 Code 디렉터리에는 없는 4 개의 파일을 보여줍니다.
요약
축하합니다! 파일 내용 확인 및 비교 실습을 모두 마쳤습니다. 오늘 배운 내용을 정리해 보겠습니다.
cat을 사용하여 파일의 전체 내용을 확인했습니다.cat -n을 사용하여 줄 번호와 함께 내용을 보는 방법을 배웠습니다.head를 사용하여 파일의 앞부분을 줄 단위 또는 바이트 단위로 확인했습니다.tail을 사용하여 파일의 뒷부분을 줄 단위 또는 바이트 단위로 확인했습니다.diff를 사용하여 파일 간의 내용 차이를 비교하는 방법을 배웠습니다.- 마지막으로
diff -r을 사용하여 디렉터리 전체를 비교해 보았습니다.
이 명령어들은 리눅스에서 가장 기본이 되는 도구들입니다. 리눅스를 계속 사용하다 보면 파일과 디렉터리를 점검하고 비교하기 위해 이 명령어들을 자주 사용하게 될 것입니다.
명령어 사용법이 기억나지 않을 때는 언제든지 man 뒤에 명령어 이름을 입력하여 (예: man cat) 매뉴얼 페이지를 확인하세요. 각 명령어에서 사용할 수 있는 모든 옵션에 대한 상세한 정보를 얻을 수 있습니다.
다양한 파일과 디렉터리에 이 명령어들을 직접 연습해 보며 익숙해지시기 바랍니다. 더 많이 사용할수록 훨씬 자연스럽게 다룰 수 있게 될 것입니다!



