Linux command

Linux 왕초보를 위한 command - 파일 내용 확인 및 출력

쥴리정 2025. 3. 29. 13:53

Linux 환경에서 터미널을 열고 디렉토리 이동, 파일 이동, 복사 등의 명령어를 마스터 했다면 이제는 파일 내용을 확인하고 편집하는 일들을 해야 할 것이다.

현업에서 업무를 할 때는 선배들이 제일 중요하게 여기는 것이 편집기 ( vi ) 를 자유자재로 사용할 수 있도록 계속 연습하라는 말을 하곤 하는데, 실제 vi 편집기 기능을 얼마나 잘 사용하느냐에 따라 업무 속도가 상당히 차이가 날 수 있기 때문이다.

 

오늘은 linux 명령어 중 파일 내용을 확인할 수 있는 명령어들을 모아서 소개해 본다.

레이아웃 및 검증 업무를 하려면 모두 외워 두는 것이 좋겠다.

 

1. 파일 편집 명령어 : vi  ,  vim  , gvim

   

vi, vim, gvim 모두 파일 내용을 편집하는 용도로 쓰이는데, 사실 필자를 포함한 초보들에게는 기능이 다 똑같이 느껴질 수 있다.

일단 linux에서 기본적으로 내장된 명령어는 vi 명령어인데, vi  (=visual editor) 에디터를 실행하면 그냥 command 창에서 파일을 편집 할 수 있다. 마우스를 사용한다거나, 글자들의 컬러를 강조하여 보기 편하게 한다거나, multi window 지원 기능들이 없기 때문에 윈도우즈 환경에 익숙한 세대들에게는 몹시 불편하게 느껴질 수도 있겠다.

쥴리가 처음 업무를 시작할 때는 vi 에디터만 있었기 때문에 불편한 지 모르고 잘 사용 중이며 사실 vi editor로 할 수 있는 것들도 무궁무진하기 때문에 아직도 모든 기능을 마스터하지 못했는데, 새로운 기능을 알아갈 때마다 vi editor의 파워풀함에 놀라게 된다.  물론 vi editor의 모든 기능은 vim, gvim에도 포함되어 있다.

 

vim 명령어는 vi improved의 약자로, vi editor의 단점인 마우스 사용 기능, 컬러감 강조, 다중 창 지원 등을 보강한 편집기인데, 사용하는 linux 서버에 설치되어 있지 않는 경우도 있어서 vim, gvim 명령어를 실행 해 보고 그 중 되는 것으로 사용하면 될 것 같다.

 

gvim 명령어도 vim 명령어와 거의 비슷한데, GUI 버전의 vim 이라고 생각하면 될 것 같다.

요즘은 거의 gvim 명령어로 파일 편집을 하는 것 같으니 초보자들은 고민 말고 파일 편집을 할 때는 gvim 명령어를 쓰면 되겠다.

쥴리는 vi 를 사용하는 것이 너무 손에 익었기 때문에(옛날사람 ㅠㅠ)  vi 를 치면 자동으로 gvim이 실행되도록 alias를 설정해 놓았다.

 

명령어 사용법 :  vi (또는 vim , gvim)  filename 

 

사실 이 편집기 안에서의 사용에 관하여 알아야 할 내용도 너무 많기 때문에 추후 별도로 포스팅하게 될 것 같다.

vi, vim, gvim 편집기의 기본 기능을 연습하고 싶으면 사용하고 있는 linux 터미널에서

 

gvimtutor  또는 vimtutor

 

명령어를 실행해 보기를 권한다.

아마 연습용 파일이 하나 뜰 것이다.

파일에서 시키는 대로 따라가면서 하다 보면 커서를 옮기고 파일의 일부를 지우고, 입력하고 하는 등의 기본 기능을 숙지할 수 있다.


2. 두 개의 파일 내용 비교  :  diff,   sdiff

 

업무를 하다 보면 많은 파일들을 다루게 된다.

Netlist 파일을 여기서 저기로 복사해서 사용하기도 하고, 그 중 일부를 수정하여 사용하기도 하다 보면, 이 파일이 아까 그 파일과 같은 파일인지 아닌지 아리송할 때도 많다.

이럴 때는 diff  또는 sdiff 명령어를 사용하여 두 파일을 비교해 볼 수 있다.

 

명령어 사용법 :  diff file1  file2

                           sdiff  file1 file2

 

아래는 aaa.log 와 bbb.log 파일을 비교해 본 예이다.

diff 명령어를 사용하면 다른 부분을 < , > 를 사용하여 출력해 주는데, 이게 보기에 많이 불편할 수 있다.

단순히 다른지 아닌지 확인하는 용도로는 diff를 사용하고, 어디가 어떻게 다른지 보고자 할 때는 sdiff을 사용하는 것이 좀 더 보기 편하다.

 

sdiff를 사용한 예. 파일 두 개가 양쪽으로 출력되며, 두 파일 중 다른 부분이 있을 때는 그 사이에 파이프라인 ( | ) 으로 표시해 준다.


3. 파일 내용 출력  :  cat  ,   more ,  less

 

vi 에디터로 파일을 직접 열어보지 않고도 파일 내용을 출력해 볼 수 있는 명령어들이다.

지난 포스팅에서 다루었던 cat 명령어가 대표적인 예가 되겠다.

이와 비슷한 명령어가 more , less 인데

 

cat 명령어 사용법 :  cat filename

                           cat file1 file2 fil3 ....  (여러개의 파일 내용 출력)

 

파일 내용이 아주 짧을 때는 괜찮은데, 파일 내용이 길 때는 cat 명령어를 사용하면 그냥 화면에 주루륵 출려되어 올라가 버리고 만다.

파일 내용을 좀 자세히 확인하면서 보고 싶을 때는 more 명령어를 쓰면 띄워 놓은 터미널에 맞게 한페이지씩 출력이 되고, 더 보고 싶으면 엔터 키를 누르면 다음 페이지가 출력이 되기 때문에 좀 편하게 볼 수 있다.

이 때 찾고 싶은 구문이나 글자가 있으면 vi editor와 같이 /AAA 처럼 입력하면 AAA가 있는 페이지로  바로 넘어가서 출력해 준다. 중간에 그만보고 싶을 때문 Ctrl + C또는 q 를 눌러 실행 중지 시키면 된다.

 

more 명령어 사용법   :  more filename

 

마지막으로 less 명령어는 파일 내용을 화면에 출력하는 중에 위, 아래 화살표와 PageUp, PageDown 키를 이용하여 위, 아래로 이동하며 볼 수 있기 때문에 편리한 명령어이다.

출력 모드를 빠져 나올 때는 q 를 누른다.

 

less 명령어 사용법   :  less filename

 

비슷한 듯 하지만 기능이 다른 세 명령어를 상황에 따라 적절히 사용할 수 있도록 연습해 두는 것이 좋겠다.


4. 파일 윗부분 출력 : head

 

파일의 윗부분 내용만 확인하고 싶을 때는 번거롭게 전체 파일을 다 출력할 필요 없이 윗부분만 일부 출력해서 볼 수 있도록 하는 명령어가 head 명령어이다.

 

명령어 사용법 :  head filename          (파일의 첫 10줄 출력, 디폴트 설정되어 있음)

                           head -30  filename  (파일의 첫 30줄만 출력)

 

옵션으로 보고자 하는 줄 수를 조절할 수 있다.

 


5. 파일 마지막 부분 출력  : tail

 

위의 head 명령어와 반대로 파일의 마지막 내용만 확인하고 싶을 때 역시 번거롭게 전체 파일을 다 출력할 필요 없이 끝부분만 일부 출력해서 볼 수 있도록 하는 명령어가 tail  명령어이다.

 

명령어 사용법 :  tail filename          (파일의 마지막 10줄 출력, 디폴트 설정되어 있음)

                           tail -30  filename  (파일의 마지막 30줄만 출력)

                           tail -f  file.log        (file.log 에 저장되는 내용을 실시간으로 보기)

 

물론 tail 명령어도 옵션으로 보고자 하는 줄 수를 조절할 수 있다.

이런 명령어는 어디다 써먹나요? 하는 궁금증이 생길 수도 있을텐데, 예를 들어 calibre DRC 를 실행했을 때, DRC 결과 에러가 몇 개 났는지는 summary file 제일 마지막 줄에 출력되어 나온다.

이 때 tail  summaryfilename 을 입력하면 summary file을 열어 볼 필요없이 DRC가 클린인지 아닌지 바로 알 수 있다.

 

그리고 tail 명령어에 -f 명령어를 사용하게 되면 특정 로그파일로 저장되고 있는 내용이 추가(변경)될 때마다 실시간으로 모니터링해 볼 수 있기 때문에 의외로 현업에서 많이 사용하게 되는 명령어이다.

즉,

calibre -drc rulefilename > DRC.log

를 실행 해 놓은 후

tail -f DRC.log 

를 실행하면 실시간으로 DRC.log에 저장되는 내용을 볼 수 있다. (즉 DRC가 어디까지 실행되고 있는지 모니터링 가능)


6. 실행 결과를  파일 및 화면으로 동시 출력  :  tee

 

레이아웃 검증을 진행 할 때 많이 사용하는 명령어이기도 한 tee 명령어도 꼭 알아두는 것이 좋겠다.

tee 명령어는 특정 명령어의 실행 결과를 지정된 파일로 저장하는 동시에 화면으로도 출력해 주는 명령어이다.

때문에 사용법이 위에서 설명한 다른 명령어들과는 다르게 특정 명령을 먼저 실행하고, 파이프라인( | )을 이용하여 그 실행결과를 입력으로 받는 형식을 취하는 것이 보통이다.

위의 tail 명령어에서 예로 든

 

calibre -drc rulefilename > DRC.log

tail -f DRC.log 

 

두 명령어를 tee를 사용하여 표현하면,

 

calibre -drc rulefilename | tee DRC.log

 

로 좀 더 간편하게 표현할 수 있는데, calibre -drc rulefilename 를 실행한 결과를 tee 입력으로 받아서 DRC.log 파일로도 저장하고, 동시에 화면으로 출력도 하라는 뜻이 된다.

 

명령어 사용법 :  선행 명령어 | tee filename  

 

레이아웃 검증 script를 짤 때 tee 명령어를 사용하면 편리하니 이 역시 잘 알아두는 것이 좋겠다.