형식 -> 명령 [옵션][인자]
- 명령 : 사용자가 컴퓨터 운영체제나 응용프로그램에게 어떤 서비스를 수행하도록 요구하는 것
- 옵션 : 옵션을 사용하여 명령의 세부 기능을 선택할 수 있다. 리눅스의 기능을 풍부하게 하는 중요한 특징. "-"기호로 시작하며 영문 소문자나 대문자로 구성. 명령에 따라 어떤 옵션이 있고 그 기능이 무엇인지는 해당 명령의 사용법을 참조
- 인자 : 명령으로 전달되는 값으로 주로 파일명이나 디렉터리명
- touch [옵션][파일이름]
touch 명령어는 아무것도 없는 빈 파일을 생성하거나 파일의 날짜와 시간을 수정하는 명령어이다. touch의 파일명이 이미 존재한다면 서버의 현재 시간으로 파일의 최근 사용한 시간(access time)과 최근 변경 시간(modify time)을 변경하고 파일명이 존재하지 않는다면 파일의 크기가 0인 빈 파일을 생성한다.
옵션 | 설명 |
---|---|
-a | 현 시간으로 파일의 접근 시간, 변경 시간을 수정 |
-c | 기존 파일이 없으면 파일이 생성되지 않음 |
-m | 현재 시간으로 파일의 수정 시간, 변경 시간을 수정 |
-d | 지정한 시간으로 접근 시간, 수정 시간이 변경되고 변경시간은 현제 시간으로 수정 (yyyy-MM-dd hh:mm:ss 포맷으로 지정) |
-r | 지정한 파일의 접근 시간, 수정 시간으로 파일이 수정되고 변경 시간은 현재 시간으로 수정 |
-t | 지정한 시간으로 접근 시간, 수정 시간을 수정하고 변경 시간은 현재 시간으로 수정 (yyyyMMddhhmm.ss 포맷으로 지정) |
- cat [옵션][파일이름]
리눅스의 cat명령어는 concatenate에서 따온 명칭으로 그 이름에서 유추할 수 있듯 본래의 기능은 여러 파일의 내용을 하나로 합쳐주는 역할을 한다. 리눅스에서 cat명령어는 단순히 파일을 합치는 것에만 사용하는 것이 아니고 파일의 내용을 단순 출력하여 확인하거나, > 이나 >> 와 같은 리다이랙션 기호화 함께 사용하여 파일을 생성하고 저장하는 용도로도 사용될 수 있다.
리다이렉션 기호 | 방향 | 의미 |
---|---|---|
> | 표준 출력 | 명령 > 파일 : 명령의 결과를 파일로 저장 |
>> | 표준 출력(추가) | 명령 >> 파일 : 명령의 결과를 기존 파일에 추가하여 저장 |
< | 표준 입력 | 명령 < 파일 : 파일의 내용을 명령에 입력 |
옵션 | long 옵션 | 성명 |
---|---|---|
-A | --show-all | 옵션 -vET와 같음. 탭이나 줄바꿈을 포함한 문자를 표시 |
-b | --number-nonbrank | 비어있지 않은 라인에만 첫번째 열에 번호를 표시 |
-e | - | 옵션 -ve와 같음. 줄바꿈을 포함한 문자를 표시 |
-E | --show-ends | 라인의 마지막과 비어있는 라인에도 '$'기로를 표시 |
-n | --number | 모든 라인(비어있는 라인에도) 앞 번호를 출력 |
-s | --squeeze-blank | 두번 이상 연속된 빈 라인을 출력하지 않음 |
-t | - | 옵션 -vT와 같음. 탭을 포함한 문자를 표시 |
-T | --show-tabs | 탭 문자를 ^|로 바꿔서 출력 |
-v | --show-nonprinting | 탭과 줄바꿈을 제외한 문자를 ^,M-를 사용하여 표시 |
파일이름의 파일을 생성한다.
[root@localhost ~]# touch hello
[root@localhost ~]# ls -l
합계 4
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 7월 13 10:55 hello
ls 명령어를 이용해서 확인해보면 hello라는 파일이 하나 생성된 것을 확인해 볼 수 있다.
파일이름의 시간을 날짜 정보(YYYYMMDDhhmm.SS)로 갱신해준다. (202307121132.12 -> 2023.07.12.11:32.12)
[root@localhost ~]# touch -t 202307121132.12 hello
[root@localhost ~]# ls -l
합계 4
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 7월 12 11:32 hello
기존 파일이 없으면 파일이 생성되지 않는다.
[root@localhost ~]# touch -c welcome
[root@localhost ~]# ls -l
합계 4
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 7월 12 11:32 hello
-rw-r--r--. 1 root root 0 7월 13 11:07 world
-----------------------------------------------------------------------------
[root@localhost ~]# touch -c hello
[root@localhost ~]# ls -l
합계 4
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 0 7월 13 11:07 world
위와 같이 welcome이라는 파일은 존재하지 않아 파일이 생성되지 않는다. 하지만 hello를 입력하면 시간이 바뀌어 있는것을 확인해 볼 수 있다. 즉, 현재 시간으로 갱신해주는 역할을 하는 옵션이라고 생각해볼 수 있다.
파일이름2의 날짜 정보를 파일이름1의 날짜 정보와 동일하게 변경해준다.
[root@localhost ~]# ls -l
합계 4
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 0 7월 13 11:07 world
[root@localhost ~]# touch -r hello world
[root@localhost ~]# ls -l
합계 4
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 0 7월 13 11:09 world
파일이름에 내용을 입력하고 ctrl+D로 내용편집을 종료하면 파일이름1이라는 파일이 내용과 함께 생성된다.
[root@localhost ~]# cat > hi
dfd <- 입력한 내용
[root@localhost ~]# ls -l
합계 8
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 4 7월 13 12:01 hi
-rw-r--r--. 1 root root 0 7월 13 11:09 world
기존파일의 내용이 새로운파일에 복사되어 파일이 생성된다.
[root@localhost ~]# cat hi > bro
[root@localhost ~]# ls -l
합계 12
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 4 7월 13 13:14 bro
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 4 7월 13 12:01 hi
-rw-r--r--. 1 root root 0 7월 13 11:09 world
[root@localhost ~]# cat bro
dfd
bro라는 파일이 생성되고 hi에 들어있는 내용(dfd)이 bro에 들어간 것을 확인할 수 있다.
다른기존파일에 기존파일 내용이 이어써진다.
[root@localhost ~]# cat > file.txt
Hello World
[root@localhost ~]# cat > text.txt
My name is Kim
[root@localhost ~]# cat file.txt >> text.txt
[root@localhost ~]# cat text.txt
My name is Kim
Hello World
기존파일 여러개를 하나로 합쳐서 새로운파일로 생성한다.
[root@localhost ~]# cat > file.txt
Hello World
[root@localhost ~]# cat > text.txt
My name is Kim
[root@localhost ~]# cat file.txt text.txt >> newfile
[root@localhost ~]# cat newfile
Hello World
My name is Kim
기존파일 여러개를 하나로 합쳐 기존다른파일에 이어써진다.
[root@localhost ~]# cat > file.txt
Hello World
[root@localhost ~]# cat > text.txt
My name is Kim
[root@localhost ~]# cat > welcome.txt
Welcome~~
[root@localhost ~]# cat file.txt text.txt >> welcome.txt
[root@localhost ~]# cat welcome.txt
Welcome~~
Hello World
My name is Kim
하나의 파일 또는 여러게의 파일을 출력할 수 있다.
[root@localhost ~]# cat > file.txt
Hello World
[root@localhost ~]# cat > text.txt
My name is Kim
[root@localhost ~]# cat file.txt text.txt
Hello World
My name is Kim
탭 또는 줄바꿈을 포함한 문자를 표시한다. -A 옵션을 사용하면 탭(^|$)과 줄바꿈($)이 표시가 된다. cat -A 옵션은 탭 또는 줄 바꿈이 들어가면 안 되는 파일, 소스파일 등 파일의 내용을 검사할 떼 유용하다.
[root@localhost ~]# cat > name.txt
My name is Kim
My name is Lee
[root@localhost ~]# cat -A name.txt
My name is Kim^I$
$
My name is Lee$
비어있지 않은 라인에만 첫번째 열에 번호를 표시한다. 즉, 공백 라인은 번호를 표시하지 않는다.
[root@localhost ~]# cat > number.txt
This is number one
This is number two
This is number three
[root@localhost ~]# cat -b number.txt
1 This is number one
2 This is number two
3 This is number three
줄바꿈을 포함한 문자를 표시한다.
[root@localhost ~]# cat > number.txt
This is number one
This is number two
This is number three
[root@localhost ~]# cat -e number.txt
This is number one$
$
This is number two$
This is number three[
비어있는 라인을 포함해 모든 라인의 앞 번호를 출력한다.
[root@localhost ~]# cat > number.txt
This is number one
This is number two
This is number three
[root@localhost ~]# cat -n number.txt
1 This is number one
2
3 This is number two
4 This is number three
두 번이상 연속된 빈 라인을 출력하지 않는다.
[root@localhost ~]# cat > number.txt
This is number one
This is number two
This is number three
[root@localhost ~]# cat -s number.txt
This is number one
This is number two
This is number three
탭을 포함한 문자를 표시한다.
[root@localhost ~]# cat > name.txt
My name is Kim
My name is Lee
[root@localhost ~]# cat -t name.txt
My name is Kim^I
My name is Lee