출력 관련 명령어
표준스트림
키보드, 마우스와 같은 단말기를 통해 문자, 파일 등의 어떠한 데이터를 입력하게 되면 컴퓨터는 프로그램을 통해 그에 알맞는 데이터를 출력 시켜준다.
여기서 사용되는 것이 표준스트림이며,
표준스트림의 사전적 정의는 유닉스(unix)와 유닉스 계열의 OS에서 컴퓨터 프로그램과 단말기 사이에 존재하는 통로이다.
표준스트림은 단말기와 프로그램 사이에 일어나는 데이터 입출력을 추상화 한 것으로,
표준스트림에는 3가지 스트림이 존재한다.
- stdin
- Standard Input(표준 입력 스트림)
- 프로그램으로 들어가는 입력값의 데이터 스트림
- stdout
- Standard Output(표준 출력 스트림)
- 프로그램이 출력 데이터를 기록하는 스트림
- stderr
- Standard Error(표준 오류 스트림)
- 프로그램에서 에러 메시지를 출력하는 스트림
리다이렉션(Redirection)
기본적으로 명령어의 결과는 표준 출력 방식인 모니터에 출력이 되지만, 리다이렉션을 이용하면 명력의 출력을 변경할 수 있고 파일에 기록할 수 있다.
리다이렉션 기호 | 방향 | 의미 |
---|---|---|
> | 표준 출력 | 명령의 결과를 파일로 저장 (기존 파일 덮어씀) |
>> | 표준 출력(append) | 명령의 결과를 기존 파일에 추가 |
< | 표준 입력 | 파일의 데이터를 명령에 입력 |
- 입력 리다이렉션
- [명령어] < [파일]
- 명령어의 입력(0)으로 파일을 사용
- 출력 리다이렉션
- [명령어] 1> [파일]
화면(표준 출력장치)에 출력되는 결과를 파일의 내용으로 사용하는 방법- 표준 출력을 의미하는 fd”1”은 생략 가능
- 파일이 이미 존재하는 경우 덮어쓰기 때문에, 저장한 파일과 동일한 이름을 가진 파일이 있는지 먼저 확인한 후에 사용해야 함
- [명령어] 1> [파일]
- 추가 리다이렉션
- [명령어] >> [파일]
표준 출력 장치에 결과를 파일에 추가
- [명령어] >> [파일]
- 오류 리다이렉션
- [명령어]2 > [파일]
리눅스 특수 장치 파일로, 해당 파일로 리다이렉션된 내용은 저장이 되지 않는다.
항상 null(0)값을 가지는 파일
- [명령어]2 > [파일]
파이프(Pipe)
기호 : |
파이프는 앞 명령어의 결과를 뒤에 나오는 명령어의 입력으로 처리하기 위해 사용하는 방법
즉, 파이프를 이용하면 명령어를 조합해서 쓸 수 있다.
- [명령어1] | [명령어2]
- 명령어 1의 결과가 명령어 2의 입력으로 전달되어 명령어 2의 결과가 출력됩니다.
파이프라인과 리다이렉션이 무엇인지 예시를 들어 설명하세요.
파이프라인(Pipeline)은 여러 개의 명령어를 조합하여 하나의 명령어처럼 사용하는 기능이다. 파이프 기호 "|"를 이용해 명령어의 출력을 다른 명령어의 입력으로 연결할 수 있다. 이를 통해 여러 개의 명령어를 조합하면 더욱 복잡한 작업도 수행할 수 있다.
예를 들어, ls 명령어로 현재 디렉토리의 파일 목록을 출력한 후, grep 명령어로 특정 파일 이름을 필터링하여 검색할 수 있다.
$ ls | grep "file"
위 명령어는 현재 디렉토리의 파일 목록을 출력하고, 그 결과에서 "file"이라는 텍스트가 포함된 파일명만 출력한다.
리다이렉션(Redirection)은 명령어 실행 결과를 터미널이 아닌 파일로 출력하거나, 파일을 입력으로 사용하는 기능이다. 명령어의 입력과 출력을 변경할 수 있다.
예를 들어, ls 명령어로 현재 디렉토리의 파일 목록을 출력한 후, 이를 파일로 저장할 수 있다.
$ ls > fileList.txt
위 명령어는 현재 디렉토리의 파일 목록을 출력하고, 그 결과를 fileList.txt 파일로 저장한다.
리다이렉션을 이용해 파일의 내용을 다른 명령어에 입력으로 넘길 수도 있다.
파이프라인을 이용해 리다이렉션으로 저장한 디렉토리 파일 목록에서 원하는 문자열이 포함된 라인만 필터링하여 출력하는 것도 가능하다.
$ cat fileList.txt | grep "file"
출력 관련 명령어 - 파일 읽기
man
- 사용법:
man [OPTION] [COMMAND]
- 리눅스 명령어의 매뉴얼 페이지(manual page)를 볼 수 있도록 하는 명령어
man ls
- ls 명령어의 매뉴얼 페이지를 보여줌
cat
- 사용법:
cat [OPTION] [FILE]
- 하나 이상의 파일을 병합(concatenate)하여 출력하는 명령어
cat file.txt
- file.txt 파일의 내용을 출력함
more
- 사용법:
more [OPTION] [FILE]
- 하나 이상의 파일을 페이지 단위로 출력하는 명령어. 스크롤 기능을 지원함.
more file.txt
- file.txt 파일의 내용을 페이지 단위로 출력함
less
- 사용법:
less [OPTION] [FILE]
- more 명령어와 유사하지만, 스크롤 기능뿐만 아니라 검색 기능 등 다양한 기능을 지원함.
less file.txt
- file.txt 파일의 내용을 출력함
head
- 사용법:
head [OPTION] [FILE]
- 파일의 처음부터 지정한 줄 수만큼 출력하는 명령어
head -n 5 file.txt
- file.txt 파일의 처음 5줄을 출력함
tail
- 사용법:
tail [OPTION] [FILE]
- 파일의 끝부터 지정한 줄 수만큼 출력하는 명령어
tail -n 5 file.txt
- file.txt 파일의 마지막 5줄을 출력함
awk
- 텍스트 데이터를 처리하는 도구로, 텍스트 파일에서 원하는 텍스트만 추출하거나, 텍스트를 조작하거나, 텍스트 파일의 데이터를 분석하는 기능을 제공하는 명령어
awk 'pattern {action}' file.txt
형식으로 사용하며, pattern과 일치하는 라인에서 action을 수행- 기본 구분자는 탭과 스페이스바
cut
- 파일의 내용에서 필드를 추출하여 출력하는 명령어
f
옵션을 사용하여 추출하고자 하는 필드 번호를 지정 가능d
옵션을 사용하여 구분자를 지정 가능
join
- 두 개의 파일을 합치는 명령어
- 공통된 열을 기준으로 두 파일을 합치며,
1
옵션과2
옵션으로 각 파일에서 합치고자 하는 열을 지정
paste
- 두 개 이상의 파일의 열을 합치는 명령어
d
옵션을 사용하여 구분자를 지정 가능
se
- 파일 내용을 수정하고 변경하는 데 사용되는 명령어
- 입력 파일을 행 단위로 읽어들이며, 텍스트를 검색하고 원하는 문자열로 대체하거나 삭제하는 등의 처리를 수행
sort
- 파일의 내용을 정렬하는 명령어
k
옵션을 사용하여 정렬 기준을 지정 가능r
옵션을 사용하여 역순으로 정렬 가능
uniq
- 파일의 중복된 내용을 제거하는 명령어
c
옵션을 사용하여 각각의 중복된 항목이 몇 번 나타났는지 표시 가능d
옵션을 사용하여 중복된 항목만 표시 가능
wc
- 파일의 행, 단어, 바이트 수를 계산하는 명령어
l
옵션을 사용하여 행 수만 계산 가능w
옵션을 사용하여 단어 수만 계산 가능c
옵션을 사용하여 바이트 수만 계산 가능
출력 관련 명령어 - 파일 및 디렉토리 찾기
find
- 주어진 경로에서 파일이나 디렉토리를 찾는 명령어
find [path] [option] [expression]
형식으로 사용
locate
- 빠르게 파일을 찾는 명령어
locate [option] [file]
형식으로 사용- 파일 정보를 데이터베이스에 저장하여 검색 속도가 빠름
which
- 특정 명령어의 경로를 찾는 명령어
which [command]
형식으로 사용- 시스템의 PATH 환경 변수에 정의된 디렉토리에서 명령어를 찾음
출력 관련 명령어 - 패턴으로 찾기 (grep)
grep 명령어란?
grep
명령어는 파일 또는 입력 스트림에서 특정 패턴의 문자열을 찾아서 출력해주는 명령어
grep 명령어 사용법
grep
명령어는 다음과 같이 사용한다.
grep [option] pattern [file ...]
option
: 옵션을 지정할 수 있다. 대표적으로i
(대소문자 구분 안함),v
(지정한 패턴을 포함하지 않는 라인 출력),r
(하위 디렉토리까지 검색) 등이 있다.pattern
: 찾고자 하는 패턴을 지정한다.file
: 검색 대상 파일을 지정한다. 생략할 경우, 표준 입력에서 검색한다.
grep 명령어 사용 예시
- 파일에서 "apple" 문자열을 찾는 예시
grep apple file.txt
- "apple"이 포함된 라인을 포함하지 않는 파일에서 "banana" 문자열을 찾는 예시
grep -v apple file.txt | grep banana
- 하위 디렉토리까지 검색하여 "keyword" 문자열을 포함하는 파일의 파일명과 해당 라인 출력
grep -r -n keyword directory/
요약
grep
명령어는 파일 또는 입력 스트림에서 패턴과 일치하는 문자열을 검색하여 출력해주는 명령어이다.i
,v
,r
등의 옵션을 사용하여 검색 조건을 지정할 수 있다.pattern
과file
을 지정하여 검색 대상과 검색할 패턴을 지정할 수 있다.
'TIL' 카테고리의 다른 글
TIL [리눅스 운영체제 - 프로세스와 서비스 관리] #23.03.13 (0) | 2023.03.13 |
---|---|
TIL [리눅스 운영체제 - 관리자로서의 리눅스] #23.03.10 (0) | 2023.03.10 |
TIL [리눅스 운영체제 - 리눅스/CLI명령어/패키지] #23.03.09 (0) | 2023.03.10 |
TIL [개발 프로세스와 DevOps 업무 개요 - (3)] #23.03.08 (0) | 2023.03.08 |
TIL [개발 프로세스와 DevOps 업무 개요 - (2)] #23.03.08 (0) | 2023.03.08 |