DevOps/Linux

리눅스 - 파일 다루기

알로그 2021. 4. 4. 23:12
반응형

리눅스 핵심 레퍼런스 책 스터디

디렉터리 관련 명령

  • basename: 파일 경로의 최종 부분 출력
  • dirname : 최종 부분 제외한 파일 경로 출력

 

파일 속성

  • stat: 파일과 디렉터리의 속성을 출력
  • wc: 파일의 바이트, 워드, 줄과 같은 수치를 측정
    • -l: 줄 수만 출력
    • -w: 낱말 수만 출력
  • du: 파일과 디렉터리가 차지하고 있는 디스크 용량을 측정
    • -b: 바이트 단위로 사용량 측정
    • -k: 킬로바이트 단위로 사용량 측정
    • -m: 메가바이트 단위로 사용량 측정
    • -h: 사람이 이해하기 쉬운 단위로 출력

 

파일 위치 찾기

  • find: 지정된 디렉터리 계층 내부에서 파일 위치를 찾아냄
  • xargs: 찾아낸 파일들 처리 (ex. filename에 파일 경로 리스트 있다고 가정 cat filename | xargs ls -l)
  • which: 셸의 탐색 경로 내에서 실행 파일의 위치를 찾아냄

 

파일 텍스트 조작

  • grep: 파일 내에서 정규 표현식에 부합하는 줄을 찾음
    • -i: 대소문자를 구분하지 않는 매칭
  • cut: 파일에서 열을 추출
    • -d C: -f 옵션에 필드 간 입력 구분자로 문자 C를 사용함. 기본 값은 탭 문자임
    • cut -f5 -d, filename => ,를 구분하고 슬라이싱 했을때 5번째 열에 해당하는 값
  • tr: 다른 문자로 치환
    • cat filename | tr 'a-z' 'A-Z => 모든 문자를 대문자로 변경
    • tr -d '\r' < oldfile > newfile => 캐리지 리턴 삭제 예제
  • expand, unexpand: 탭과 스페이스 키를 서로 바꿈
  • sort: 정렬
  • uniq: 텍스트에서 연속적이고 중복되는 줄에 작용하는 명령어, sort와 함께 자주 사용됨
    • -c: 인접하여 중복되는 줄의 수를 카운트
  • tee: 파일을 복사하고 동시에 표준 출력에 출력
    • 예제 who | tee original_who | sort

 

더욱 강력한 조작법

  • awk: 패턴 매칭 언어로 정규 표현식으로 데이터를 대조하고 이를 기반으로 동작을 수행함
    • awk '{print $2, $4}' myfile : 각 줄의 두 번째, 네 번째 낱말을 출력
  • sed: awk와 마찬가지로 텍스트의 줄 조작을 수행하는 패턴 매칭 엔진.
    • sed 's/me/YOU/g' myfile : me를 YOU로 바꿔서 출력
    • sed '1,10d' myfile : 첫 열 줄이 제거된 파일 출력

 

파일 비교

  • diff: 두 개의 파일 또는 디렉터리를 한 줄씩 비교
  • comm: 두 개의 정렬된 파일을 한 줄씩 비교
  • md5sum: 주어진 파일의 체크섬(MD5) 산출

 

디스크와 파일 시스템

  • df: 마운트된 파일 시스템의 사용 가능한 공간을 보여줌
  • mount: 디스크 파티션에 접근 가능하게 함
  • fsck: 디스크 파티션의 에러를 확인 (프로그램이 동작하고 있는 장치에서 작동하지 않도록 하기 위해 fsck로 체크하기 전에 디스크를 언마운트 하는 것이 일반적임)

디스크는 하드웨어 장치이며 독립적인 저장 장치로 기능하는 파티션으로 나눌 수 있음.
리눅스 시스템에서 파티션은 일반적으로 /dev 디렉터리 내의 특별한 파일에 해당함. (ex /dev/sda7)

반응형