오픈소스소프트웨어 정리 #05 입출력 리다이렉션, 필터, 툴 프로그램

yuju9·2022년 10월 9일
0

표준 입출력

쉘 명령에 대해서는 3가지 기본 입출력 장치 사용

stdin

  • 표준 입력장치
  • 명령에 데이터를 공급
  • 디폴트는 키보드

stdout

  • 표준 출력장치
  • 명령의 출력이 전달
  • 디폴트는 터미널 화면

stderr

  • 에러 메시지가 출력되는 장치
  • 디폴트는 터미널 화면

출력 리다이렉션

'>' 기호 사용으로 출력 스트림 변경 가능

에러 리다이렉션

파이프(|)

이전 명령의 출력을 다음 명령의 입력으로 전달

입력 리다이렉션

< 또는 0<을 사용하여 표준 입력장치를 변경

필터

  • 표준 입력장치에 전달된 데이터에 대해 특정한 동작을 수행하는 명령
    • 필터링: 문자 치환, 단어 또는 라인 수 세기, 단어 찾기 등
  • 주로 파이프와 같이 사용
  • 필터 명령
    • cat: 표준입력으로 전달된 데이터 그대로 표준출력으로 전달
    • tee: 표준입력으로 전달된 데이터를 파일과 표준출력 양쪽으로 전달
    • grep: 주어진 문자열을 포함하는 라인 찾기
    • tr: 문자단위로 치환
    • wc: 단어, 라인수, 문자수 계산
    • sort: 입력 데이터 정렬
    • uniq: 입력 데이터에서 중복 제거
    • sed: 정규식 사용하여 치환
    • head: 파일 앞쪽 일부 라인만 출력 (↔tail)
  • 예시

find

  • 주어진 조건과 일치하는 파일을 검색하기 위한 명령
  • 예시
    • find /etc > etcfiles.txt
      : /etc 디렉토리의 모든 파일명을 찾아서 etcfiles.txt에 저장
    • find . -name '*.sh'
      : 현재 디렉토리 및 서브디렉토리에서 파일명이 .sh로 끝나는 파일 모두 출력
    • find . -type d -name '*.conf'
      : /etc 디렉토리의 모든 파일명을 찾아서 etcfiles.txt에 저장
    • find . -newer example.txt
      : 현재 디렉토리 및 서브디렉토리에서 example.txt 파일보다 새 파일을 모두 출력
    • find /data -name '.*odf' -exec cp {} /backup/ \;
      : /data 디렉토리 및 서브디렉토리에서 이름이 .odf로 끝나는 파일들을 /backup디렉토리에 복사
    • find /data -name '*.odf' -ok rm {} /backup/ \;
      : /data 디렉토리 및 서브디렉토리에서 이름이 .odf로 끝나는 파일들을 찾아 사용자에게 동의를 얻은 뒤에 삭제

locate

  • 모든 디렉토리에서 주어진 패턴에 해당하는 파일을 찾음
    - 단 시스템에 구축되어 있는 인덱스를 사용하기 때문에 새로 추가된 파일들이 검색 대상에서 누락될 수 있음
    - updatedb 명령을 이용하여 최신 인덱스를 구축해야 함

sleep

  • 주어진 시간(초 단위) 동안 sleep 모드로 대기
  • 주로 쉡스크립트에서 대기를 위해 사용

time

  • 뒤에 오는 명령을 실행하는데 소요된 시간을 출력
  • ex. time sleep 5

gzip

  • 파일을 압축하고 압출된 파일은 .gz확장자가 추가됨
  • gunzip은 압축파일을 해제하는 명령
  • zcat은 gunzip -c와 동일. 압축된 파일의 내용을 화면에 출력

0개의 댓글