#5 리눅스 | 리눅스(유닉스) 셸 사용 2

HYUN·2021년 3월 7일
0
post-thumbnail

셸 사용법 | 리눅스 리다이렉션(redirection)과 파이프(pipe)

Standard Stream (표준 입출력)
리눅스 환경에서 커맨드로 실행되는 프로세스는 세 가지의 표준 스트림을 가지고 있습니다.

  • 표준 입력 스트림 | Standard Input Stream (stdin)

  • 표준 출력 스트림 | Standard Output Stream (stdout)

    • 보통 화면에 출력합니다.
  • 오류 출력 스트림 | standard Error Stream (stderr)

위와 같은 모든 스트림은 일반적인 plain text로 console(터미널)에 출력하도록 되어 있습니다.


리다이렉션 | redirection

앞에서 말했듯 터미널에 출력하는 일반적인 표준 스트림 흐름을 바꿔줄 수 있는 방법입니다.
>,< 을 사용하여 명령어 표준 출력(저장)을 화면이 아닌 파일에 할 수 있습니다.

ls 명령은 파일의 리스트를 화면(터미널)에 출력합니다.
ls > flies.txt 명령을 사용하면 ls로 출력되는 표준 출력 스트림의 방향을 files.txt로 바꿔줍니다. files.text에 ls의 출력 결과를 저장한다는 의미이며 파일이 없더라도 새로 생성해서 저장해줍니다.

head명령은 파일의 앞 10줄만 출력해서 화면(터미널)에 출력합니다.
head < files.tet 명령을 사용하면 files.txt의 내용이 head 명령을 통해서 앞 10줄만 출력해줍니다.

혹은 head < files.txt > files2.txt 처럼 사용할 수 있습니다.

혹은 ls >> files.txt 명령으로 files.txt 파일의 기존 내용을 수정하지 않고 >>를 사용해서 내용을 추가할 수 있습니다.

파이프 | pipe

두 프로세스 사이에서 한 프로세스의 출력 스트림을 다른 프로세스의 입력 스트림으로 사용할 때 사용합니다.

| 를 사용하여 사용할 수 있습니다.
ls | grep files.txt 명령을 사용하면 ls를 통해서 출력된 결과를 grep 명령의 입력 스트림으로 들어가 ls 출력 결과 중에 files.txt 라는 파일이 있는지 찾아줍니다.

  • grep [-option] [pattern] [file or directory name]: 입력으로 들어오는 데이터 중 특정한 키워드와 관련된 데이터를 찾습니다.
    • grep -i: 대소문자를 구별하지 않습니다.(영문)
    • grep -v: pattern을 포함하지 않는 라인을 출력합니다.
    • grep -n: 검색 결과의 각 행의 선두에 행 번호를 넣습니다.
    • grep -l: 파일의 이름만 검색합니다.
    • grep -c: pattern과 일치하는 라인의 개수만 출력합니다.
    • grep -r: 하위 디렉토리까지 검색합니다.
profile
자바스크립트를 좋아합니다. | 이유를 알고 있는 것과 모르는 것의 차이는 분명하다.

0개의 댓글