파일 내용 확인 및 비교

LinuxBeginner
지금 연습하기

소개

Linux 에서 파일을 다루는 실습에 오신 것을 환영합니다! Linux 가 처음이어도 걱정하지 마세요. 각 단계를 차근차근 안내합니다. 이 실습에서는 파일 내용을 확인하고, 파일의 특정 부분을 살펴보고, 파일을 비교하는 방법을 배웁니다. 이러한 기술은 Linux 파일 시스템을 탐색하고 이해하는 데 필요한 기본 역량입니다.

파일 내용 출력

먼저 Desktop 에서 터미널을 열거나 실습 환경의 터미널 탭으로 전환합니다.

터미널 창 스크린샷

터미널을 열면 일반적으로 $ 기호로 끝나는 셸 프롬프트가 표시됩니다. 여기에 명령을 입력합니다.

이제 cat 명령으로 파일 내용을 표시합니다.

  1. 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
cat /tmp/hello

여기서 /tmp/hello는 확인할 파일의 경로입니다. /tmp는 시스템의 디렉터리 (폴더) 이고, hello는 해당 디렉터리에 있는 파일 이름입니다.

  1. Enter 키를 누르면 다음과 같이 파일 내용이 표시됩니다.
Hi,
I am Labby!

이 내용은 /tmp/hello 파일에 들어 있는 전체 내용입니다. cat 명령이 파일 내용을 터미널에 표시했습니다.

줄 번호와 함께 파일 내용 표시

이번에는 cat 명령을 다시 사용하되, 출력에 줄 번호를 추가합니다.

  1. 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
cat -n /tmp/hello

여기서 -n은 옵션 또는 플래그라고 합니다. 이 옵션은 cat이 모든 출력 줄에 번호를 매기도록 합니다.

  1. 이제 다음과 같이 줄 번호가 포함된 파일 내용이 표시됩니다.
     1 Hi,
     2 I am Labby!

이 기능은 긴 파일을 다루면서 특정 줄을 참조해야 할 때 매우 유용합니다.

파일의 앞부분 줄 출력

다음으로 head 명령을 사용합니다. 이름에서 알 수 있듯이 head는 파일의 시작 부분, 즉 파일의“머리”를 확인할 때 사용합니다.

  1. 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
head -n1 /tmp/hello

여기서 -n1head가 첫 번째 줄만 표시하도록 하는 옵션입니다. 1을 다른 숫자로 바꾸면 해당 개수만큼의 줄을 표시할 수 있습니다.

  1. 다음과 같은 출력이 표시됩니다.
Hi,

파일의 첫 번째 줄만 표시된 것입니다. 기본적으로 -n1 옵션을 지정하지 않으면 head는 파일의 처음 10 줄을 표시합니다.

파일의 처음 몇 바이트 확인

이번에는 head 명령으로 파일 시작 부분에서 지정한 개수의 바이트를 확인합니다.

  1. 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
head -c1 /tmp/hello

-c1 옵션은 파일의 첫 번째 바이트 (문자) 만 표시하도록 head에 지시합니다. -n과 마찬가지로 1을 다른 숫자로 바꾸면 해당 개수만큼의 바이트를 확인할 수 있습니다.

  1. 다음과 같은 출력이 표시됩니다.
H

파일의 첫 번째 문자만 표시된 것입니다. 텍스트 파일에서는 일반적으로 문자 하나가 1 바이트입니다.

파일의 마지막 줄 출력

이제 tail 명령을 살펴봅니다. 예상할 수 있듯이 tailhead와 반대로 파일의 끝부분을 표시합니다.

  1. 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
tail -n1 /tmp/hello

head와 마찬가지로 -n1 옵션은 tail이 한 줄만 표시하도록 합니다. 여기서는 파일의 마지막 줄을 표시합니다.

  1. 다음과 같은 출력이 표시됩니다.
I am Labby!

파일의 마지막 줄입니다. -n1 옵션을 지정하지 않으면 tail은 기본적으로 마지막 10 줄을 표시합니다.

파일의 마지막 몇 바이트 확인

앞에서 head로 수행한 작업과 비슷하게, tail을 사용하면 파일 끝부분에서 지정한 개수의 바이트를 표시할 수 있습니다.

  1. 먼저 마지막 바이트를 확인해 보겠습니다. 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
tail -c1 /tmp/hello

출력이 표시되지 않을 수도 있습니다. 마지막 문자가 보이지 않는 줄 바꿈 문자일 가능성이 있기 때문입니다.

  1. 이번에는 마지막 두 바이트를 확인합니다. 다음 명령을 입력하고 Enter 키를 누릅니다.
tail -c2 /tmp/hello
  1. 이제 다음과 같은 출력이 표시됩니다.
!

-c2 옵션은 파일의 마지막 2 바이트 (문자) 를 표시하도록 tail에 지시합니다. 여기서는 파일에서 마지막으로 보이는 문자인 느낌표가 표시됩니다.

파일 비교

이제 diff 명령으로 두 파일을 비교하고 서로 다른 부분을 확인하는 방법을 배웁니다.

  1. 먼저 올바른 디렉터리 (폴더) 에 있는지 확인합니다. 다음 명령을 입력하고 Enter 키를 누릅니다.
cd ~/project

이 명령은 현재 디렉터리를 홈 디렉터리 안의 project 폴더로 변경합니다. ~ 기호는 홈 디렉터리를 나타내는 단축 표현입니다.

  1. 이제 두 파일을 비교합니다. 다음 명령을 입력하고 Enter 키를 누릅니다.
diff file1 file2

이 명령은 difffile1file2의 내용을 비교하도록 합니다.

  1. 다음과 비슷한 출력이 표시됩니다.
1c1
< this is file1
---
> this is file2

이 출력이 의미하는 내용을 살펴보겠습니다. diff 명령은 첫 번째 파일을 두 번째 파일과 동일하게 만들기 위해 필요한 변경 사항을 설명하는 출력을 생성합니다. 어느 파일을 먼저 만들었거나 수정했는지는 중요하지 않습니다. diff는 명령을 실행한 시점의 파일 내용만 비교합니다.

  • 1c1: 첫 번째 파일의 1 번 줄을 두 번째 파일의 1 번 줄과 일치하도록 change(변경) 해야 한다는 뜻입니다.
  • < this is file1: < 기호는 첫 번째 파일 (file1) 의 줄임을 나타냅니다.
  • ---: file1file2의 줄 사이를 구분하는 구분선입니다.
  • > this is file2: > 기호는 두 번째 파일 (file2) 의 줄임을 나타냅니다.

간단히 말하면, diff는 두 파일에서 1 번 줄의 내용이 서로 다르다는 것을 보여줍니다. file1file2와 일치시키려면 "this is file1" 줄을 "this is file2"로 바꿔야 합니다.

디렉터리 비교

마지막으로 diff 명령으로 전체 디렉터리를 비교합니다.

  1. 터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.
diff -r ~/Desktop ~/Code

-r 옵션은 하위 디렉터리까지 재귀적으로 비교하도록 diff에 지시합니다. ~/Desktop~/Code는 비교할 두 디렉터리의 경로입니다.

  1. 다음과 비슷한 출력이 표시될 수 있습니다.
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 개 있다는 뜻입니다.

요약

축하합니다! 파일 내용 확인 및 비교 실습을 완료했습니다. 이번 실습에서 배운 내용을 정리하면 다음과 같습니다.

  1. cat을 사용해 파일 전체 내용을 확인했습니다.
  2. cat -n을 사용해 줄 번호와 함께 파일 내용을 확인하는 방법을 배웠습니다.
  3. head를 사용해 줄 단위와 바이트 단위로 파일의 시작 부분을 확인했습니다.
  4. tail을 사용해 줄 단위와 바이트 단위로 파일의 끝부분을 확인했습니다.
  5. diff를 사용해 파일 내용을 비교하는 방법을 배웠습니다.
  6. 마지막으로 diff -r을 사용해 전체 디렉터리를 비교했습니다.

이 명령들은 Linux 의 기본 도구입니다. Linux 를 계속 사용하다 보면 파일과 디렉터리를 검사하고 비교할 때 이러한 명령을 자주 사용하게 됩니다.

명령 사용법을 잊었다면 언제든지 man 다음에 명령 이름을 입력해 해당 명령의 매뉴얼 페이지를 확인할 수 있습니다 (예: man cat). 각 명령에서 사용할 수 있는 모든 옵션에 대한 자세한 정보를 확인할 수 있습니다.

다양한 파일과 디렉터리에 이 명령들을 반복해서 사용하며 익숙해지세요. 많이 사용할수록 자연스럽게 사용할 수 있습니다!