- $ cat [file] - 파일
내용 이어서
출력
-
more 명령, 또는 더
유용한 less 명령이
있다면 굳이 cat
명령을 기억할
필요가 없지만 -
"고양이"라는 의미가
인상적인 건지
이상하게도 cat
명령어의 인지도가
more, less보다 더 높은
것 같다.[14] 그러나
고양이에겐
미안하지만, less
정도만 있으면
cat은 거의
필요없다.
$ cat long.txt |more # more long.txt와 같다.
$ less long.txt # 그냥 이렇게 기억하면 된다.
$ cat file1 file2 > all.files # cat은 출력 즉시 종료되므로 이런 목적엔 적합
눈치챌 수 있듯이,
more와 less 명령은
파이프('|' 문자)를
통해 들어오는
입력을 받을 수도,
그리고 파일이름
자체를 처리할 수도
있다. 그리고 이들은
파일의 내용을 한
화면씩 잘라서
보여주며, 화면 전환
및 종료를 위한 키는
앞서 소개했던 man
또는 info 명령과
유사하다.
cat 명령이
필요없다면서도
자꾸만 들먹이게
되는데, 아무튼
이것처럼 파일
전체의 내용을 쏟아
보여주지 않고 각각
앞의 몇 줄 또는
뒤의 몇 줄을
보여주기 위한
명령으로 head와
tail도 있다.
기본적으로
앞(뒤)에서 10번째 줄
까지만 출력하지만
head -n 50 file.txt와 같이
이용해서 더 많은 줄
수를 출력할 수도
있다.
- $ grep [string] [files...] -
문자열 찾기
-
여러 개의 파일의
내용 중에서 특정
문자열을 찾는
명령이다. 예를들어
다음과 같이
이용한다.
$ grep 씨퓨 file*.html # file로 시작하는 모든 .html 파일에서
$ cat file*.html |grep 씨퓨 # 위와 똑같은 일을 한다.
$ ps aux |grep yoda # ps aux의 결과에서 yoda가 포함된 모든 줄
처음 두 명령은
사실 cat 명령어의
쓸모 없음을
보여주는 유명한(?)
사례에 해당되는
것이다. 하지만 grep
명령어가 보다시피
파이프를 통해
입력을 받을 수도
있음을 주목하자. 세
번째 명령에서 이
기능의 쓰임새를 볼
수 있다. 이것은
시스템에서 실행
중인 모든 프로세스
중에서 yoda 이용자가
실행한 것만을
골라서 보여주는
명령이다.
- $ diff [name1] [name2] -
다른 부분 찾기
-
두 파일을
비교해서 한 쪽에
있는데 다른 쪽에
없는 줄, 그리고
서로 다른 내용이
포함된 줄을
터미널로 쏟아내
보여준다. 두 파일에
아무 차이가 없다면
아무 것도 출력하지
않는다. 적당히 다른
두 파일을 가정하고,
diff file1.txt file2.txt를 실행한
결과를 살펴보자.
$ diff file1.txt file2.txt
매우 부담스러운(?)
화면이지만 그래도
약간은 감이 잡힐
것이다. 0a1 이니 3c6 이니
6d10 이니 하는 소리는
바로 비교된 두
파일을 똑같이
만들기 위한 일종의
암호문이다. 문자
a는 add,
c는 change,
그리고 d는 delete를
의미하며 좌우의
숫자는 각각 첫
번째 파일 및 두
번째 파일의 줄
번호다. (여러 줄에
걸친 '범위'일 때는
0a1,4 형식으로 - 즉
,
문자로 지정) 또한
>는
왼쪽에 없고
오른쪽에 있는
내용을, <는
반대인 경우를
보여준다. 따라서
3a5 표현 다음에는
>으로
시작하는 내용이
올 것이다. info diff;
인포 페이지의
도움말에 포함된
예제도 참고할
것!
- $ file [file] -
파일의 속성
보기
-
이것은 지금껏
보아온 ls -l
명령과는 또다른
종류의 '자세한
정보'를 보여주는
명령이다. 말하자면
ls -l 명령이
파일이나
디렉토리에 대한
일반 정보를 자세히
보여주는데 비해, file
[file] 명령은 파일의
종류와 고유한
속성에 대한 정보를
보여준다. 아래 실행
결과를 참고하는
것으로도 충분한
설명이 될 것이다.
$ file img-01.png
img-01.png: PNG image data, 1051 x 406, 16-bit/color RGB, non-interlaced
$ file soffice
soffice: Bourne shell script text executable
$ file /usr/share/magic
/usr/share/magic: magic text file for file(1) cmd
file 명령은 /usr/share/magic
파일에 정의되어
있는 규칙에 따라
파일의 속성을
판단한다 - 참고로
알고만 있자.
- $ touch [file] -
파일을 살짝
건드리기
-
touch 명령은 빈
파일(크기가 0)을
새롭게 만들거나,
또는 이미 있는
파일의 몇 가지
정보를 바꾸는
명령이다. 예를들어
단순히 touch file.txt라고
하면 크기가 0인
file.txt를 새로
만든다. 이미 있는
파일일 경우, 특별한
옵션 없이 이용하면
기본적으로 그
파일의 변경시각을
'현재'로 바꾼다. touch
명령은 다음과 같이
동작한다.
$ ls -l file.txt
-rw-rw-r-- 1 jedi jedi 100374 3월 26 12:22 file.txt
$ touch file.txt
-rw-rw-r-- 1 jedi jedi 100374 8월 21 14:20 file.txt
$ date # 현재 날짜와 시각을 출력한다 - 비교해 볼 것!
$ touch -r file1.txt file2.txt ; ls -l file[1,2].txt
-r file 옵션은 현재
시각 대신 특정
파일의 것을
이용한다는 의미다.
즉 보기에서의
마지막 명령은
file2.txt의 변경시각을
file1.txt의 그것으로
'슬쩍 건드려'
바꾼다. 더 세부적인
동작은 man touch
명령으로
참고하라.