[Linux] 리눅스 명령어 - 파일 보기(cat, more, less, head, tail, grep ..)Linux2022. 2. 16. 10:51
Table of Contents
728x90
✅ cat 명령어
- concatenate에서 따온 명칭으로 여러 파일의 내용을 하나로 합쳐주는 역할
- 텍스트 파일의 내용의 화면에 출력하는 명령어
- >, >> 와 같은 리다이렉션 기호와 함께 사용하여 파일을 생성, 저장하는 용도로 사용한다.
- 텍스트로 된 파일의 경우 그 내용을 정상적으로 출력하지만 바이너리 파일의 경우 출력은 하지만, 알아볼 수 없다.
- 2개 이상의 파일이름이 지정되면 모든 파일이 연결되어 보여진다.
✅ 입출력 리다이렉션
리다이렉션 기호 | 방향 | 의미 |
> | 표준 출력 | 명령 > 파일 : 명령의 결과를 파일로 저장 |
>> | 표준 출력(추가) | 명령 >> 파일 : 명령의 결과를 기존 파일에 "추가"하여 저장 |
< | 표준 입력 | 명령 < 파일 : 파일의 내용을 명령에 입력 |
✅ cat 옵션
- -A : vET 옵션과 동일한 효과를 보여줍니다.
- -b : 줄번호 표시하지만 공백은 제외합니다
- -e : 제어문자를 ^로 출력, 행 변경시 $를 표시합니다.
- -E : 행마다 끝에 $를 표시 합니다.
- -n : 공백도 포함하여 줄번호를 표시합니다.
- -s : 반복되는 공백행을 하나의 행으로 처리합니다. (연속되는 여러 공백행을 하나의 행으로 처리)
- -t : vT 옵션과 동일한 효과를 보여줍니다.
- -T : 탭문자를 출력합니다.
- -v : 제어문자를 ^,M-형태로 출력하고, 탭과 행변경 문자를 표시하지 않습니다.
- --help : 도움말
- --version : 버전정보 확인
✅ more 명령어
- 파일을 읽어 화면 단위로 끊어서 출력하는 명령어
- 파일만 볼 수 있다.
✅ more 옵션
- h : more 명령어상태에서 사용할 수 있는 키 도움말 확인
- Space Bar : 한 화면씩 뒤로 이동하기 (f와 동일)
- Enter : 현재행에서 한 행씩 뒤로 이동하기
- q : more 명령어 종료하기
- f : 한 페이지씩 뒤로 이동하기(Space Bar 와 동일)
- b : 한 페이지씩 앞으로 이동하기
- = : 현재 위치의 행번호 표시하기
- /문자열 : 지정한 문자열을 검색하기
- n : /문자열로 검색한 문자열을 차례대로 계속해서 찾기
- !쉘명령어 : more 명령어상태에서 쉘명령어를 실행하기
- v : more 명령어로 열려있는 파일의 현재위치에서 vi를 실행하기
✅ less 명령어
- 한번에 보여지는 만큼만 읽어서 출력하기 때문에 대용량의 파일을 읽어 빠르게 사용할 수 있다.
- 명령의 결과를 다른 변수에 담아서 처리하는 형태의 프로그래밍의 경우 오류 발생 가능성이 크다.
- Enter 키를 입력하면 한줄씩 출력되고, Space bar를 입력하면 한 화면씩 출력된다.
- 방향키로 페이지 이동이 가능하며 vi 텍스트 에디터와 유사하지만 파일 수정은 불가능하다.
✅ less 옵션
- 텍스트 모드 단축키
- q: 종료 후 쉘창으로 복귀
- enter: 1행 아래로 이동
- space bar: 아래로 1페이지 이동
- 위 방향키: 위로 1행 이동
- 아래 방향키: 아래로 1행 이동
- PageUp: 위로 1페이지 이동
- PageDoen: 아래로 1페이지 이동
- -? : less에서 사용할 수 있는 명령들에 대한 도움말 출력
- -c : 필요 시 전체 화면을 다시 갱신
- -i : 대소문자를 구분하여 탐색
- -s : 연속되는 공백 라인은 하나의 행으로 처리
- -x [숫자] : 수치를 지정해서 탭 간격 조정, 기본값 8
- 행번호 : 지정된 행 다음부터의 내용을 출력
- --help : 해당 명령어의 도움말을 보여주고 실행이 종료
- --version : version 정보를 출력하고 실행이 종료
+ Tip) pipeline은 선행 프로세스의 결과를 후행 프로세스의 입력으로 넣어준다. ex) ls -al /etc | more
✅ head 명령어
- 파일의 앞부분부터 확인하는 명령어이다.
- 기본적으로 행의 앞부분부터 10 행까지만 출력한다.
- 일반적으로 text 기반의 내용을 보여주며 binary 파일은 실행은 되지만 알아볼 수 없는 문자로 출력이 되므로
binary로 된 파일에서는 거의 사용하지 않는 것이 좋다. - 기본 사용법
$ head [-n lines | -c bytes] [file ...]
✅ head 옵션
옵션 | 설명 |
-n num | num 수 만큼 출력해준다. |
-c num | num byte만큼 출력해준다. |
-q | 여러개의 파일을 출력할 때 제목을 출력하지 않는다. |
-f | 내용이 변경될 때마다 실시간으로 출력해준다. 로그파일 모니터링 등에 활용 (tail만 있음) |
✅ tail 명령어
- 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력하는 명령어
- 기본값으로 10행을 출력해준다.
- 리눅스에서 오류나 파일 로그를 실시간으로 확인할 때 유용하게 사용한다.
- 기본 사용법
tail [옵션][파일명]
✅ tail 옵션
- -f : tail을 종료하지 않고 파일의 업데이트 내용을 실시간으로 계속 출력한다.
- -n (라인 수) : 파일의 마지막줄부터 지정한 라인수까지의 내용을 출력한다.
- -c (바이트 수) : 파일의 마지막부터 지정한 바이트만큼의 내용을 출력한다.
- -q : 파일의 헤더와 상단의 파일 이름을 출력하지 않고 내용만 출력한다.
- -v : 출력하기전에 파일의 헤더와 이름 먼저 출력한 후 파일의 내용을 출력한다.
Q. 총 47라인으로 구성되어있는 파일을 10번째 라인에서 20번째 라인까지만 출력해보기
여러개의 답이 나올 수 있다.
cat -n /etc/passwd | tail -n +10 | head -11
cat -n /etc/passwd | head -n +20 | tail -n +10
tail -n +10 /etc/passwd | head -11
+ Tip
테스트 시에 다른 터미널에서 systemctl restart firewall 과 같은 시스템 명령을 하면 log 파일이 생성되고
생성되는 과정을 지속적으로 모니터링 할 수 있다.
✅ grep 명령어
- 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어
- 정규표현식에 의한 패턴 매칭 방식을 사용하여 수행된다.
- 기본 사용법
grep [옵션][패턴][파일명]
✅ grep 옵션
- -c : 일치하는 행의 수를 출력한다.
- -i : 대소문자를 구별하지 않는다.
- -v : 일치하지 않는 행만 출력한다.
- -n : 포함된 행의 번호를 함께 출력한다.
- -l : 패턴이 포함된 파일의 이름을 출력한다.
- -w : 단어와 일치하는 행만 출력한다.
- -x : 라인과 일치하는 행만 출력한다.
- -r : 하위 디렉토리를 포함한 모든 파일에서 검색한다.
- -m 숫자 : 최대로 표시될 수 있는 결과를 제한한다.
- -E : 찾을 패턴을 정규 표현식으로 찾는다.
- -F : 찾을 패턴을 문자열로 찾는다.
✅ grep 사용 예시
1) 문자열로 찾기
# 특정 파일에서 'error' 문자열 찾기
grep 'error' 파일명
# 여러개의 파일에서 'error' 문자열 찾기
grep 'error' 파일명1 파일명2
# 현재 디렉토리내에 있는 모든 파일에서 'error' 문자열 찾기
grep 'error' *
# 특정 확장자를 가진 모든 파일에서 'error' 문자열 찾기
grep 'error' *.log
2) 정규표현식으로 찾기
# 특정 파일에서 문자열이 포함된 행을 찾는다.
grep '^[ab]' 파일명
# 특정 파일에서 a로 시작하는 모든 단어를 찾는다.
grep 'a*' 파일명
# 특정 파일에서 a로 시작하고 z로 끝나는 5자리 단어를 찾는다.
grep 'a...z' 파일명
# 특정 파일에서 a,b,c로 시작하는 단어를 모두 찾는다.
grep [a-c] 파일명
# 특정 파일에서 apple 또는 Apple로 시작하는 단어를 모두 찾는다.
grep [aA]pple 파일명
# 특정 파일에서 a나 b로 시작되는 모든 행을 찾는다.
grep '^[ab]' 파일명
# 특정 파일에서 apple로 시작되고 0나 9의 숫자로 끝나로 시작되는 모든 행을 찾는다.
grep 'apple'[0-9] 파일명
✅ grep 종류
명령어 | 설명 | 정규표현식 사용 |
grep | 다중 패턴을 검색한다. | O |
egrep | 정규 표현식 패턴으로 검색한다. | O |
fgrep | 문자열 패턴으로 검색한다. | X |
📌 참고
728x90
'Linux' 카테고리의 다른 글
[Linux] 리눅스 명령어 - 파일, 디렉토리 (0) | 2022.02.17 |
---|---|
[Linux] SetUID란 ? (0) | 2022.02.16 |
[Linux] 리눅스 명령어 - 파일 생성 (0) | 2022.02.16 |
[Linux] 리눅스 명령어 - ls (0) | 2022.02.15 |
[Linux] 리눅스 명령어 - cd (디렉토리 이동) (0) | 2022.02.15 |
@TTOII :: 뭉게뭉게 클라우드
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!