Fundamentals

본문 바로가기
사이트 내 전체검색


RedHat Linux >> Fundamentals of the GNU/Linux
[목차]
제3장 리눅스 명령어

    3. 파일 내용 보기와 텍스트 파일 만들기 - cat


dos에서 배웠던 'type'명령어와 비슷한 명령어입니다. 바로 텍스트 파일의 내용을 볼 수 있게 하는 것입니다. 또한 간단한 텍스트 파일도 만들 수 있습니다. 그러면 먼저 텍스트 파일을 만들어 보도록 합니다. 그리고 그 파일이 제대로 만들었는지 같은 명령어인 'cat'으로 확인도 합니다. 먼저 'cat'명령어를 입력합니다.

[root@leelab /root]# cat

this is test file

this is test file

this is test file

this is test file

[ctrl+c]

[root@leelab /root]#

위의 것만 보아서는 언뜻 이해가지 않을 것입니다. 'cat' 이라는 명령어를 사용하면 그 다음 줄에 커서가 깜박이며 사용자 입력을 기다리게 됩니다. 이때 필자는 'this is test file'이라는 문장을 입력하고 [enter]를 눌렀습니다. 그리고 나니 자동으로 똑같은 문장을 화면에 출력한 것입니다. 바로 에코 기능입니다. 사용자가 입력한 것을 그대로 화면에 출력하고 있는 거죠 . 그 다음에 입력한 'test is text file

도 그대로 다시 출력하고 있습니다. 입력을 끝내기 위해서는 [ctrl]+[c]를 누르면 됩니다.

그러면 한가지 생각해 봅시다. 이 명령어를 이용해서 어떻게 텍스트 파일을 만들 수 있을까요? 어떤 문장을 입력하고 enter 키를 누르면 그 결과가 그대로 나오고 있습니다. 여러분이 입력한 것에 대한 결과를 파일로 보낼 수만 있다면 텍스트 파일을 만들 수 있겠죠? 이럴 때 사용하는 것이 리다이렉션 입니다. 그 예를 보면서 설명을 하겠습니다.

[root@leelab /root]# cat > test.txt

this is test file

this is text file

[ctrl+c]

[root@leelab /root]#

일단 눈에 띄는 것은 에코 기능이 일어나지 않는다는 것입니다. 그리고 '> test.txt'라는 것이 명령어에 추가되었습니다. 그러면 'cat > test.txt'의 의미를 알아봅시다. 여기서 중요한 것은 '>'입니다. '>'의 의미는 바로 이 기호 앞의 명령의 결과를 이 기호 뒤로 보낸다는 의미입니다. 즉 우리가 입력한 'this is test file'의 결과를 파일인 test.txt에 보낸다는 의미입니다. 'cat' 이라는 명령어를 이용해서 문장을 입력하면 그 결과는 그 문장 그대로죠? 그러므로 test.txt인 파일이 만들어지고 그 파일 안에 그 결과가 기록된 것입니다. 실제로 그 파일의 내용이 제대로 되었는지 확인해 봅시다.

[root@leelab /root]# cat test.txt

this is test file

this is text file

[root@leelab /root]#

텍스트 파일의 내용을 확인하기 위해서 'cat'이라는 명령어를 사용했습니다. 바로 텍스트 파일의 내용을 확인할 때도 'cat' 이라는 명령어를 사용합니다.

[root@leelab /root]# cat > test.txt

this is second test file

this is second text file

[ctrl+c]

[root@leelab /root]# cat test.txt

this is second test file

this is second text file

[root@leelab /root]#

이러한 결과를 보면서 깨달은 것이 있나요? 바로 리다이렉션 기호인 '>'을 이용해서 파일에 문장을 기록하면 항상 기존에 있던 파일을 무시하고 다시 새로 작성한다는 것을 알 수 있었을 것입니다. test.txt 파일은 이미 앞에서 작성한 파일이었지만 그 내용이 그대로 있지는 않습니다. 새로 작성한 문장만 기억하고 있습니다. 기존에 있던 텍스트 파일에 새로운 내용을 추가하고 싶다면 어떻게 할까요? 그럴 때는 '>' 대신 '>>'을 사용합니다.

[root@leelab /root]# cat test.txt

this is second test file

this is second text file

[root@leelab /root]# cat >> test.txt

this is test file

this is text file

[ctrl+c]

[root@leelab /root]# cat test.txt

this is second test file

this is second text file

this is test file

this is text file

[root@leelab /root]#

문장이 새로 추가되었죠?

'>>' 도 알아보았으니 한 가지 더 알아봅시다. 바로 '2>'인데 이것은 결과를 이 기호 옆으로 보내는 것이 아니라 에러를 보내는 것입니다. 에러가 없다면 보내진 파일은 비어있는 파일이 될 테고, 에러가 있다면 그 에러 메시지가 해당 파일에 기록될 것입니다. 한 번 그 예를 보도록 합니다.

[root@leelab /root]# ls 2> test.txt

gnustep/ xrootenv.0 nsmail/ test.txt

[root@leelab /root]# cat test.txt

[root@leelab /root]#

결과를 보면 'ls' 라는 정상적인 명령어의 사용을 에러가 발생될 이유가 없죠? 생성된 test.txt 파일에는 아무 내용이 없습니다. 그러면 다음의 경우를 보도록 합니다.

[root@leelab /root]# tt

bash: tt: command not found

[root@leelab /root]# tt 2> test.txt

[root@leelab /root]# cat test.txt

bash: tt: command not found

[root@leelab /root]#

처음에 'tt'라는 명령을 내리니 그런 명령어가 없다고 에러가 발생하는군요. 이번에는 '2>'기호와 같이 'tt'명령을 사용했습니다. 명령어가 없음에도 불구하고 에러가 화면에 출력되지 않았습니다. 바로 그 에러 메시지가 test.txt 파일에 기록되었기 때문입니다. 'cat' 이라는 명령어로 파일의 내용을 확인하니 에러 메시지가 기록되어 있죠?

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.