일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- RM
- 자격증
- umask
- docker create
- 디스크
- mkdir
- 레드햇
- 이미지 레지스트리
- 리눅스
- LS
- Docker
- docker logout
- 셸
- find
- 컨테이너
- docker logs
- etc
- q!
- linux
- 파일
- 도커
- lcoate 설치
- 이미지
- container
- locate 설치 방법
- 명령어
- 리눅스마스터2급
- image
- PS
- Ctrl
- Today
- Total
Bae's Digital Dialogues
리눅스[Linux] cat, grep, 리다이렉트, less, tar 본문
파일의 내용을 화인하는 cat
$ cat Docekrfile #Dockerfile의 내용 출력)
$ cat nginx.conf #nginx의 내용 출력
2024.06.03 - [Linux] - 리눅스[Linux] vi 편집기 사용
리눅스[Linux] vi 편집기 사용
가끔 편집기가 설치되어 있지 않은 환경에서 파일을 작성해야 하거나 터미널 환경에서 파일을 수정하는 것이 더 빠르게 해결할 수 있는 경우가 있다. 이번에는 Linux OS에서 기본으로 제공해주는
baddiehoon.tistory.com
저번에 vi 편집기로 만든 파일들을 모두 cat 명령으로 확인해보자
ls 명령을 사용해 저번에 만든 3개의 파일을 확인할 수 있다. (Dockerfile, nginx.conf, myfirstfile)
cat myfirstfile #myfirstfile의 내용 확인
cat Dockerfile #dockerfile의 내용 확인
cat nginx.conf #nginx.conf의 내용 확인
Hello Vi!의 내용이 출력되는것을 확인하였다
수정한 내용들이 반영되어 저장되어 있는것을 확인하였다.
nginx.conf의 내용도 잘 출력이 되는 것을 확인하였다.
출력 내용을 검색하는 grep
파이프 '|' 과 함께 사용한다
[이전 명령어] | [이후 명령어]
명령어의 출력을 다음 명령으로 전달
[출력명령어] | grep [검색어]
파일의 내용 검색:cat [파일명] | grep [검색어]
이전 n라인 출력:grep -B n [검색어]
이후 n라인 출력:grep -A n [검색어]
대소문자 구분 없이 검색:grep -i [검색어]
검색어에 공백이 있을 경우 '검색어'로 묶어서 입력한다.
grep 명령어를 사용해보겠다.
$ cat Dockerfile | grep CMD #Dockerfile의 내용중 CMD 검색
이렇게 한 줄이 검색되는 것을 확인할 수 있다.
$ cat nginx.conf | grep location #nginx.conf의 내용 중 location 검색
동일한 방식으로 nginx.conf 파일에 grep 명령을 사용해서 location 단어를 검색해 보겠다.
이렇게 총 3개의 라인이 검색되는 것을 확인할 수 있다.
$ cat Dockerfile | grep -i -B 2 cmd #dockerfile의 내용 중 대소문자 구분 없이 cmd 검색, 검색 결과의 이전 2줄까지 포함하여 출력
이번에는 grep 명령을 사용해서 먼저 -i 옵션을 줘서 대소문자 구분 없이 검색해볼겠다. 그리고 -B 옵션을 줘서 한 칸 띄고 숫자 2를 입력해서 검색된 결과의 이전 두 번째 라인까지 출력해볼것이다.
이렇게 대소문자 구분 없이 대문자 CMD가 검색된 것을 확인할 수 있다. 그리고 CMD 라인의 두 번째 전 라인까지 검색된 것을 확인할 수 있다.
$ cat nginx.conf | grep -A 2 -B 3 'access_log off' #nginx 파일의 검색된 결과에 이전 세 번째 라인과 이후 두 번째 라인까지 검색어를 출력
검색된 결과의 이전 두 번째 라인과 이후 세 번째 라인을 출력해 볼 것이다.
다음으로 출력 결과를 저장하는 리다이렉션 명령에 대해 알아보자
출력 결과를 저장하는 리다이렉션 >, >>
[이전 명령어] > 파일명
이전 명령어의 출력을 파일로 저장
>:기존 파일이 있을경우 덮어쓰기
>>:기존 파일이 있을경우 내용추가
먼저 tree 명령을 사용해서 /etc 경로를 탐색해 보겠다.
$ tree /etc | trep sh #tree /etc 명령의 결과 중 sh 검색
이렇게 sh가 붙어 있는 라인만 검색되는 것을 확인할 수 있다.
$ tree/etc | grep sh > tree_result.txt #tree /etc 명령의 결과 중 sh 검색된 결과를 파일로 저장
위의 sh만 검색된 결과를 tree-result.txt 파일로 저장해 보겠다.
cat 명령을 사용해서 tree-result.txt 파일을 열어 보면 이전에 etc 경로에서 sh를 검색한 결과를 파일로 저장할 수 있는걸 확인하였다.
$ cat nginx.conf > tree_result.txt #cat 명령의 결과를 tree_result.txt 파일로 생성
이 cat 명령의 결과를 리다이렉트 하나를 사용해서 tree_result.txt 파일에 추가하겠다.
cat 명령을 사용해서 tree_result 파일을 확인해 보면 기존에 우리가 작성했던 내용들은 사라지고 nginx.conf 파일의 내용만 있는 것을 확인할 수 있다.
$ tree /etc | trep sh >> tree_result.txt #tree /etc 명령의 결과 중 sh 검색된 결과를 tree_result.txt 파일로 저장(이미 있을경우 내용 추가)
이번에는 리다이렉션 문자를 두 개 입력해서 명령어를 실행해 보겠다.
cat 명령어로 파일의 내용을 확인해 보면 이번에는 기존의 nginx.conf의 파일의 내용이 그대로 남아있는 상태에서 새로운 내용이 추가된 것을 확인할 수 있다.
이렇게 리다이렉션 문자를 사용하면 명령어의 출력 결과를 파일로 저장할 수 있다.
다음 명령어는 큰 파일을 읽을 때 사용하는 less 명령어이다.
큰 파일을 읽을때는 less
$ less tree_result.txt #내용이 많은 tree_result.txt 파일읽기
less 명령을 사용해서 tree_result.txt 파일을 열어보겠다.
이렇게 아주 긴 파일이더라도 맨 첫 번째 라인부터 출력하는 것을 확인할 수 있다.
엔터를 누르면 바로 다음 라인을 확인할 수 있고, 스페이스를 누르면 페이지 단위로 이동할 수 있다.
그래서 큰 파일을 읽을 때는 less 명령을 사용하는 것이 더 편리하다.
다시 터미널로 돌아가려면 q를 입력하면 된다.
이번에는 tar 명령에 대해 알아보겠다.
아카이브로 묶는 tar
아카이브란?
- 여러 파일이나 디렉터리를 하나의 파일로 묶음
압축
- 데이터를 더 작은 크기로 줄이는 과정 포함
일반적으로 사용하는 압축과는 다른 개념이다.
파일이나 디렉터리 아카이브:
tar -cvf [결과파일.tar] [디렉터리 또는 파일]
파일이나 디렉터리 아카이브 해제:
tar -xvf [결과파일.tar]
$ tar -cvf hoonlinux.tar . #4개의 파일을 하나의 tar 파일로 아카이브
지금까지 실습에서 생성한 4개의 파일들을 하나의 tar 파일로 묶어 보겠다.
잘 생성이 된 것을 확인할 수 있다.
$ tar -xvf hoonlinux.tar #hoonlinux.tar 아카이브 해제
이제 현재 경로에서 tar 파일의 아카이빙을 해제해 보겠다.
현재 경로에 4개의 파일이 모두 파일로 풀린 것을 확인할 수 있다.
동일한 방식으로 압축도 실행할 수 있다.
파일이나 디렉터리 압축:
tar -czvf [압축파일.tar.gz] [디렉터리 또는 파일]
파일이나 디렉터리 압축 해제:
tar -xzvf [압축파일.tar.gz]
'Linux' 카테고리의 다른 글
리눅스[Linux] ln 명령어:링크 만들기 (0) | 2024.06.25 |
---|---|
리눅스[Linux] ifconfig, chmod, ps, kill (0) | 2024.06.11 |
리눅스[Linux] vi 편집기 사용 (2) | 2024.06.03 |
리눅스[Linux] tree, cp, mv, find, rm (0) | 2024.05.29 |
리눅스[Linux] pwd, mkdir, ls, cd (0) | 2024.05.28 |