hoon's bLog

리눅스 시스템관리 | 일반 운영관리 2 본문

IT/Linux Master 1급

리눅스 시스템관리 | 일반 운영관리 2

개발한기발자 2021. 8. 26. 23:16
반응형

파일 시스템 관리

1. 파일 및 디렉터리 관리

 1). 소유권과 허가권

  • 소유권은 사용자 소유권과 그룹 소유권으로 나눔
  • 허가권은 user, group, other로 나눔.
  • 허가권은 10개의 영역으로 나눔. 첫 번째는 파일의 타입, 나머지9개는 각각 3개씩 나누고, 첫 세자리는 파일을 소유한 사용자 권한, 두 번째는 해당 그룹에 속한 사용자들 권한, 마지막은 그 외의 다른 사용자들의 권한.
  • 각 세자리는 rwx(읽기, 쓰기, 실행)로 표시. 없는 경우 -로 표시.

파일의 종류

  • '-' : 일반파일
  • d : 디렉터리
  • l : 링크 파일
  • b : 블록 디바이스
  • c : 캐릭터 디바이스
  • p : named pipe(FIFO)
  • s : 소켓

 

 2). 특수 권한

  • 리눅스의 권한 체계는 3계층 3권한. 그러나 이걸로 원할한 시스템 운영 X.(일반 사용자가 root 권한 필요하기 때문)
  • Set-UID : 실행 파일에 사용. 그 파일을 실행중에는 모두가 해당파일의 소유자 권한으로 인식. 설정시 소유자 권한 부분의 x자리에 s로 표기. 실행 권한이 없는 파일에 부여시 대문자 S로 표시.(password 명령)
  • Set-GID : 주로 디렉터리에 설정되고, 해당 파일을 소유한 그룹 권한으로 인식. 나머지 위와 동일.
  • Sticky-Bit : 공유 디렉터리 설정시 사용(/tmp). other 계층 권한 부분의 x자리에 t로 표기. other 계층에 실행 권한이 없는 경우, 대문자 T로 표기.

특수권한의 설정

  • Set-UID, GID는 s를 사용, Sticky-Bit는 t를 사용. 숫자 모드인 경우 천의 자리가 사용되고 Set-UID는 4, Set-GID는 2, Sticky-Bit는 1의 값을 가짐.

 

 3). 관련 명령어

chmod : 허가권을 설정하는 명령. 문자모드와 숫자모드로 지정.

  • 문자모드에서 사용하는 기호는 권한, 사용자, 설정.
  • 권한의 표시는 r, w, x를 사용.
  • 사용자의 지정은 u, g, o, a를 사용.
  • 마지막 설정 기호는 +, -, =을 사용.
  • =은 특정 권한만 지정할 때 이용.
  • 여러 사용자 계층의 권한 설정은 콤마로 분리해서 지정.
  • 숫자 모드는 숫자 4, 2, 1, 0을 조합하여 8진수의 값을 만들어 권한을 설정.
  • 읽기, 쓰기 실행 권한 각각 4, 2, 1이라는 가중치 값 부여.
  • 두 가지 이상의 권한을 설정시 가중치 값을 더해서 지정.
  • 소유자, 그룹 다른 사용자 순으로 숫자 3자리로 부여함.

[사용법]
$ chmod [option] mode file(s)

옵션

  • -R : 하위 디렉터리 포함 내부 모든 파일의 접근 권한을 변경(--recursive)
  • -c : 변경된 정보 출력(--change)
  • -f : 중요한거 아니면 출력 x(--silent)
  • --version : 버전 정보

chown : 파일이나 디렉터리의 소유권 및 그룹 소유권을 변경.

[사용법]
$ chown [option] owener[:group] file(s)

옵션

  • -R : 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 접근 권한을 변경
  • -c : 변경된 정보를 출력
  • -f : 중요 오류 메세지 아니면 출력 x
  • --version

chgrp : 파일이나 디렉터리의 소유 그룹을 바꾸는 명령. 주로 root가 사용

[사용법]
$ chgrp [option] group file(s)

옵션

  • -R
  • -c
  • -f
  • -h : 심볼릭 링크 파일의 그룹 소유권을 변경(심볼릭 링크 파일 자체만, --no-dereference)
  • --version

chown은 파일이나 디렉터리의 소유자를 변경하고, chgrp는 파일이나 디렉터리의 소유그룹을 변경한다고 이해하자.

 

umask : 기본 허가권 값을 지정

[사용법]
$ umask [option] 값

옵션

  • -S : 문자로 표시할 때

 

 4). 파일 링크

  • 리눅스의 파일, 디렉터리는 I-node라는 번호가 임의로 부여.
  • 파일명이 다르더라도 이 번호가 같다면 내부적으로는 같은 파일.
  • 하나의 파일을 여러 개의 이름으로 관리하거나 디렉터리의 접근 경로를 단축하는 형태를 링크라고 함.
  • 하드 링크, 심볼릭 링크로 나눔.

관련 명령어: ln, 하드 링크, 심볼릭 링크를 생성하는 명령

[사용법]
$ ln [option] 파일명

옵션

  • -s : 심볼릭 링크 생성 시(--symbolic)
  • -v : 정보 자세히 출력
  • -f : 존재시 삭제하고 생성

하드링크와 심볼릭 링크

하드링크 : 하나의 동일한 파일을 디스크의 다른 곳에 배치하여 여러 이름으로 사용되는 형식

하드 링크의 특징

  • 원본과 아이노드 번호 같음
  • 원본과 파일의 크기 같음
  • ls -l시의 링크 숫자 올라감
  • 수정시 같이 반영
  • 원본 파일 삭제시 링크 파일 그대로
  • 파일만 가능, 동일한 파일 시스템이어야 함
  • 파티션, 디스크 드라이브 가로질러 사용 x

심볼링 링크 : 하나의 파일을 여러 이름으로 가리키게 하는것. 원본과 생성된 링크 파일은 완전히 다른 파일.

심볼릭 링크의 특징

  • 아이노드 번호 서로 다름
  • 링크 파일 크기가 매우 작음
  • ls -l 명령 시에 권한 맨 앞 'l'로 표시
  • 원본, 링크 둘 중 어떤 파일 수정해도 같이 반영
  • 원본 파일 삭제시 링크 구실 못함
  • 윈도의 바로가기, 단축 아이콘과 같음
  • 퍼미션이 777로 표시. 원본 파일의 퍼미션과는 무관

 

2. 파일 시스템 관리 및 복구

 1). 파일 시스템 생성

파일 시스템 생성 절차

  1. 하드 디스크 인식 여부 확인 : 'fdisk -l'
  2. 파티션 분할 및 생성 : fdisk 명령
  3. 파일 시스템 생성 : mkfs 명령어 사용
  4. 사용하려는 디렉터리 생성
  5. 마운트 : 파일 시스템이 생성된 파티션을 사용하려는 디렉터리로 연결. mount 명령.
  6. 관련 파일 등록 : 지속적 mount 사용을 위해 /etc/fstab 파일에 등록

관련 명령어

fdisk : 디스크 파티션 확인, 추가/삭제. 설정후 재부팅 필요.

[사용법]
$ fdisk [option] 장치명

옵션

  • -l : 현재 디스크 파티션 테이블 정보
  • -s 파티션디렉토리 : 특정 파티션 크기
  • -v : fdisk 버전

fdisk : 실행 시 주요 명령

  • p : 현재 디스크 정보
  • d : 파티션 삭제
  • n : 파티션 생성
  • t : 파티션 속성 변경
  • w : 저장 후 종료
  • q : 저장 x 종료

mkfs : 새로운 파일 시스템을 만드는 명령. root만 사용 가능. 기본 ex2로 생성

[사용법]
$ mkfs [-t fs_type] [option] 장치명

옵션

  • -t fs_type : 파일 시스템 유형 지정. 지정 x시 ex2.
  • -c : 배드 블록을 체크 후 구축
  • -v : 결과 상세히 출력

mke2fs : ex2, 3, 4 파일 시스템을 만드는 명령. 유형 지정 안하면 ext2로 생성

[사용법]
$ mke2fs [option] 장치명

옵션

  • -j : ex3
  • -t fs_type
  • -b block_size : 블록 사이즈 지정. 1024, 2048, 4096.
  • -R raid_options : RAID옵션. argument=값 형태.
  • -T usage_Type : I-node 크기 지정 옵션. news, largefile, largefile4

mount : 보조기억장치나 파일 시스템이 다른 디스크를 /의 하위 디렉터리로 연결하여 사용 가능하게 해주는 명령.

[사용법]
$ mount [option] [device] [directory]

옵션

  • -a : /etc/fstab에 명시된 파일 시스템을 마운트
  • -t fs_type
  • -o 항목 : 추가적인 설정. 다수의 조건 적용시 콤마로 구분

unmount : 마운트된 파일 시스템을 해제시키는 명령.

[사용법]
$ umount [option] 디바이스명
$ umount [option] 마운트된_디렉터리명

옵션

  • -a
  • -t fs_type

eject : 이동식 보조기억장치의 미디어를 꺼낼 때 사용

관련 파일 : /etc/fstab

파일 시스템에 대한 다양한 정보를 담고 있는 파일. 부팅 시에 마운트할 파티션 정보가 기록. 자동 마운트시 이 파일에 등록해야 함.

fstab의 필드 구성(왼쪽부터)

  • 장치명, 볼륨 라벨, UUID
  • 마운트될 디렉터리
  • 파일 시스템 유형
  • 마운트 옵션
  • 레벨 덤프 사용 주기. 0 사용 x, 1 매일 수행, 2 이틀에 한번 수행.
  • fsck 명령의 순서. 보통 루트 파일 시스템을 1로 하여 젤 먼저 수행 0이면 부팅 시에 해당 파일 시스템 검사 x

UUID : 범용 고유 식별자. blkid 명령을 사용해서 확인.

 

 2). 파일 시스템 점검

fsck : 파일 시스템을 검사하고 수리. 손상된 디렉터리나 파일을 수정할 때 임시로 /lost+found 디렉터리에서 작업을 수행. 즉 저 디렉터리에 파일들이 많다면 깨진 파일이 많다는것.

[사용법]
$ fsck [option] 장치명

옵션

  • -a : 확인 없이 무조건 수행
  • -r : 확인 질문 ○
  • -A : /etc/fstab에 정의되어 있는 모든 파일 시스템 체크
  • -P : -A 옵션 사용시 루트 파일 시스템을 다른 파일 시스템과 병렬로 함께 체크
  • -N : 실행 하지 않고 어떤 것이 실행되는지만 보여줌
  • -T : 검사시 제목을 보여주지 않음
  • -s : fsck 동작을 시리얼화. 대화형 모드에서 여러 파일 시스템을 점검시 유용
  • -v : 버전
  • -t fs_type : 파일 시스템 앞에 no를 붙이면 지정한 파일 시스템을 제외한 나머지를 검사

e2fsck : ex2, 3, 4를 검사, 수리하는 명령

[사용법]
$ e2fsck [option] 장치명

옵션

  • -n : 모든 물음 no로 처리
  • -y : 모든 물음 yes로 처리
  • -c : Bad Block 체크
  • -f : 강제적으로 다 체크

df : 현재 마운트된 디스크의 크기, 사용량, 남아있는 용량 출력

[사용법]
$ df [option]

옵션

  • -h : 용량 단위 표시(--human --readable)
  • -k : 킬로바이트 단위로
  • -m : 메가바이트
  • -T : 각 파티션에 대한 파일 시스템 유형 출력(--print-type)
  • -i : 아이노드의 사용량

du : 파일이나 디렉터리들이 디스크에서 차지하고 있는 크기를 출력

[사용법]
$ du [option] [FILE(s)]

옵션

  • -h : 용량의 단위 표시
  • -b : --bytes
  • -k : kb
  • -m : mb
  • -a : 디렉터리에 존재하는 모든 파일의 각 크기
  • -s : 파일 전체 크기 합한 값(--summarize)

 

 3). 스왑 생성

스왑 : 하드 디스크의 일부를 마치 메모리처럼 사용하게 해주는 기술

mkswap : 스왑 파티션이나 스왑 파일을 생성하는 명령

[사용법]
$ mkswap [option] 스왑파일 [size]
$ mkswap [option] 스왑파티션

옵션

  • -c : 배드 블록 검사 후 생성

swapon : 스왑 파티션, 파일을 활성화. 상태 확인

[사용법]
$ swapon [option] 스왑파일 or 스왑파티션

옵션

  • -a : /etc/fstab 파일에 등록된 스왑 영역을 전부 활성화
  • -s : 스왑 상태 출력(--summary)

swapoff : 활성화된 스왑 파티션, 파일 중지

[사용법]
$ swaoff [option] 스왑파일 or 스왑파티션

옵션

  • -a : 모든 스왑 영역 중지

관련 명령어 : free

현재 사용 중인 메모리의 상태를 출력

[사용법]
$ free [option]

옵션

  • -m : 상태를 MB 단위로 출력
  • -k : KB

스왑 영역 만들기

  1. 스왑 파일 생성
    가. dd 명령 : dd if=/dev/zero of=/swap-file bs=1k count=1024000
    나. 스왑 파일 생성 : mkswap /swap-file
    다. 스왑 파일 활성화 : swaopen /swap-file
    라. 시스템 부팅 시마다 사용할 경우 /etc/fstab 파일에 등록
  2. 스왑 파티션 생성
    가. fdisk 명령으로 스왑 파티션 생성 : fdisk /dev/sdb
    나. 스왑 파티션 생성 : mkswap -c /dev/sdb2
    다. 스왑 파티션 활성화 : swapon /dev/sdb2
    라. 시스템 부팅 시마다 사용할 경우 /etc/fstab 파일에 등록

 

 4). Disk Quota

사용자가 많은 서버의 경우에 사용자의 디스크 사용량 제한이 필요. 디스크 쿼터는 사용자 및 그룹의 디스크 사용량과 생성할 수 있는 파일의 개수를 제한.

관련 명령어 : quotacheck

quota 기록 파일을 가장 최근의 상태로 업데이트

[사용법]
$ quotacheck [option] 디렉터리명

옵션

  • -a : 사용자, 그룹에 대한 쿼터 체크
  • -m : 마운트 안될 때 강제 체크(--no-remount)
  • -f : 초기에 안될 시 강제 인식시킬 때
  • -u : 사용자 쿼터 파일 체크
  • -g : 그룹 쿼터 파일 체크
  • -c : 기존꺼 읽지 않고 새롭게 다시 초기화(--create-files)

관련 명령어 : edquota

사용자, 그룹에 쿼터를 설정시 사용. vi 편집기가 열리고 단위는 KB.

[사용법]
$ equota [option]

옵션

  • -u : 사용자에 대한 쿼터 설정
  • -g : 그룹에 대한 쿼터를 설정
  • -t : Soft limit를 초과한 후부터 적용되는 시간제한을 설정(--edit-period)
  • -p : 특정 사용자와 동일한 설정을 적용시(--prototype)

관련 명령어 : quotaon/quotaoff

쿼터 설정을 활성화/비활성화

[사용법]
$ quotaon or quotaoff [option] 디렉터리명

옵션

  • -u : 사용자 쿼터 활성화
  • -g : 그룹 쿼터 활성화
  • -v : 메시지 자세히 출력

관련 명령어 : repquota

파일 시스템 단위로 쿼터 설정 정보를 출력

[사용법]
$ repquota [option] 디렉터리명

옵션

  • -a : 모든 파티션 정보를 출력
  • -u : 사용자 쿼터 정보를 출력
  • -g : 그룹 쿼터 정보를 출력

관련 명령어 : quota

사용자 단위로 쿼터 설정 정보를 출력

[사용법]
$ quota

옵션

  • -u
  • -g

관련 명령어 : setquota

쿼터 설정 명령 vi 대신 직접 명령 설정

[사용법]
setquota [option] 사용자명 블록약한제한 강한제한 아이노드약한제한 강한제한 파일시스템

옵션

  • -u
  • -g
  • -t : 유예 기간 설정

사용자 쿼터 설정

  1. /etc/fstab 설정
  2. /home 영역 다시 마운트
    $ mount -o remount /home
  3. 쿼터 파일 생성 및 쿼터 체크
    $ quotacheck -mf /home
  4. 사용자에 대한 쿼터 설정
    $ edquota ihp001
  5. 쿼터 시작
    $ quotaon /home
  6. 쿼터 설정 확인
    $ repquota /home

그룹 쿼터 설정

  1. /etc/fstab 설정
  2. /home 영역 다시 마운트
    $ mount -o remount /home
  3. 쿼터 파일 생성 및 쿼터 체크
    $ quotacheck -gm /home
  4. 그룹에 대한 쿼터 설정
    $ edquota -g IHP001
  5. 쿼터 시작
    $ quotaon /home
  6. 쿼터 설정 확인
    $ repquota -g /home

 

 5). 디렉터리 관련 명령어

pwd(printing working directiory)

현재 위치한 작업 디렉터리의 경로

cd

디렉터리 이동 명령. cd라고만 입력시 사용자의 홈 디렉터리로 이동.

mkdir

디렉터리를 생성

[사용법]
$ mkdir [option] directory_name(s)

옵션

  • -p : 경로로 지정된 서브 디렉터리까지 다 생성(--parents)
  • -m : 디렉터리 생성과 동시에 퍼미션까지 설정(--mode)
  • -v : 생성된 디렉터리 메세지로 출력(--verbose)

rmdir

디렉터리 삭제

[사용법]
$ rmdir [option] directory_name(s)

옵션

  • -p : 디렉터리 제거 후 그 결과로 부모 디렉터리도 비면 부모 디렉터리까지 다 삭제

 

 6). 파일 관련 명령어

ls : 디렉터리 안의 내용을 출력

[사용법]
$ ls [options] 파일, 디렉터리명

옵션

  • -a : 숨겨진 파일, 디렉터리 출력
  • -F : 관련 정보 출력(--classify)
  • -l : 정보를 한줄씩 길게 보여줌
  • -d : 해당 디렉터리에 대한 정보 출력
  • -t : 최근 수정된 파일부터 시간순으로 출력
  • -u : 최종 접근 시간순으로 출력
  • -i : 아이노드 번호를 앞에 출력
  • -r : 알파벳 역순으로 출력(--reverse)
  • -R : 하위 디렉터리별로 관련 내용을 재귀적으로 전부 출력
  • -s : 파일 크기가 큰 것부터 출력
  • --color : 파일 종류에 따라 색을 보여줌
  • -1 : 한 줄에 한 파일씩 출력
  • -h : 단위 표시(--human-readable)
  • -Z : 보안문맥 출력(--context)

cp : 파일, 디렉터리 복사

[사용법]
$ cp [options] source(s) destination

옵션

  • -r, -R : 하위 디렉터리까지 같이 복사
  • -i : 존재하면 덮어쓸거냐고 물어보는거(--interactive)
  • -f : 강제로 덮어씀
  • -b : 덮어쓰고 백업본 파일을 만듬
  • -s : 복사 대신 심볼릭 링크 만듬
  • -p : 소유권, 그룹, 허가권 정보까지 복사함(--preserve)
  • -v : 복사하기 전에 각각 파일명을 표시
  • -d : 복사할 파일이 심볼릭 파일인 경우 그 심볼릭 정보와 함께 링크 파일 그대로 복사
  • -a : -dpR. 특정 파일의 속성, 링크 정보들을 그대로 유지하고 그 하위 디렉터리까지 전부 복사(--archive)
  • -l : 복사대신 하드 링크 파일을 만듬(--link)
  • -u : 복사되는 대상이 최신의 파일이라면 복사 x(--update)

rm : 파일, 디렉터리 삭제

[사용법]
$ rm [option] file(s) 또는 directory

옵션

  • -i : 파일 삭제시 질의를 줌
  • -f : 강제로 지움
  • -r, -R
  • -- : 파일의 이름이 '-'로 시작하는 파일 지울 때

mv : 파일, 디렉터리의 이름을 변경, 이동

[사용법]
$ mv [options] source(s) destination

옵션

  • -i : 덮어 쓸지 물어봄
  • -f : 강제
  • -b : 덮어쓸 때 백업본 만듬
  • -v : 내용 출력
  • -u : 최신 파일이면 이동 x

touch : 타임스탬프 변경, 빈 파일 생성

[사용법]
$ touch [option] 파일명

옵션

  • -a : 접근 시간 바꿈(access)
  • -m : 수정 시간 바꿈(modify)
  • -t : 지정된 타임스탬프로 변경
  • -r : 어떤 파일의 Access time, Modify time으로 파일을 변경(--reference)

file : 파일의 종류

[사용법]
$ file [option] 파일명

옵션

  • -b : 파일 이름 출력 x(--brief)

find : 파일, 디렉터리를 찾아서 그 경로를 출력

[사용법]
$ find [path] options expression

옵션

  • -name : 주어진 이름의 파일, 디렉터리
  • -user
  • -group
  • -uid
  • -gid
  • -perm
  • -type : d, f, l, b(블록 디바이스), c(캐릭터 디바이스), p(파이프 파일), s(소켓 파일)
  • -atime n : +n은 n일 이전에 액세스한 파일을 찾고, -n은 n일 내에 액세스한 파일을 찾음
  • -ctime n : Change Time 기준으로 찾음
  • -mtime n : Modify Time
  • -exec : 찾아진 파일 등과 연계하여 어떤 명령을 또 내리는 옵션. 결과 값을 {}로 표시 끝낼 때 \; 붙이면 됨
  • -ok : -exec와 같고, 확인을 함 y, n
  • -print : 화면 출력 요즘은 생략해도됨
  • -fprint : 출력 결과 파일로 저장. 리다이렉션 '>'를 쓰면됨
  • -ls : 'ls -l'과 같음
  • -size n : n 블록 길이의 파일을 찾음. 보통 nc 형태로 사용
  • -inum n : node 번호가 n인 파일을 찾음
  • -iname : 대소문자를 구별하지 않고 이름을 찾음
  • maxdepth n : n만큼의 서브 디렉터리만 검색
  • -prune : 하위 디렉터리는 검색 x
  • -empty : 비어 있는 디렉터리, 파일 크기 0
  • -newer : 지정한 파일보다 뒤에 수정된 파일
  • -cnewer : 지정한 파일보다 뒤에 변화된 파일
  • 2>/dev/null : "permission Denied" 관련 리스트는 화면에 출력 x

 

 6). 텍스트 파일 관련 명령어

cat : 표준 입력으로 받는 값을 표준 출력으로 이어주는 명령으로 기본적으로는 텍스트 파일의 내용을 출력

사용법
$ cat [option] filename(s)

옵션

  • -b : 행 번호(공백 있는 줄 제외, --number-nonblank)
  • -n : 행 번호(포함)
  • -E : 각 라인의 맨 끝에 $(개행 문자)표시를 붙여 출력(--show-ends)
  • -T : 탭 문자를 ^l로 표시하여 출력
  • -v : 인쇄가 불가능한 문자를 식별
  • -A : -vET 옵션 통합. 일반적으로 출력되지 않는 문자를 출력
  • -s : 인접한 여러 공백 줄을 하나의 공백 줄로(--squeeze-blank)

head : 텍스트 파일의 첫 부분을 보여주는 명령

[사용법]
$ head [option] filename(s)

옵션

  • -n 행수 : 파일의 앞에서부터 지정된 수만큼 출력
  • -c n : n바이트까지 출력
  • -q : 여러 개의 파일이 처리될 때 파일 이름 헤더를 출력 x(--quiet)

tail : 텍스트 파일의 끝 부분을 보여주는 명령

[사용법]
$ tail [option] filename(s)

옵션

  • -n 행수
  • -c n
  • -f : 특정 파일의 끝부분에 새로운 행이 추가될 경우 실시간으로 출력
  • -q

more : 텍스트 파일의 내용이 긴 경우에 화면 단위로 출력

[사용법]
$ more [option] filename

옵션

  • -num : 한 페이지를 num의 줄 수로 지정

less : GNU에서 more 명령의 성능을 강화한 뒤에 반대의 뜻을 붙여서 만듬

[사용법]
$ less [option] filename

옵션

  • -? : 명령 도움말
  • -c : 화면을 정리하여 맨 처음에 위치하고 출력
  • -s : 인접한 여러 공백 줄을 하나의 공백 줄로 처리
  • -e : 맨 끝줄에 도달 후 엔터나 스페이스 키 누를시 자동으로 명령 끝냄
  • -N : 줄번호를 보여줌
  • +행번호 : 지정한 행 번호부터 1page씩 보여줌

grep : 텍스트 파일에서 특정 패턴을 갖는 줄을 찾아서 출력

[사용법]
$ grep [option] pattern file(s)

옵션

  • -b : 패턴과 일치하는 줄의 시작점(--byte-offset)
  • -c : 패턴과 일치하는 줄의 개수
  • -h : 여러 개의 파일을 검색 시 출력 하는 파일의 이름이 붙는 것을 방지
  • -i : 검색시 대소문자 구분 x(--ignore-case)
  • -n : 패턴과 일치하는 줄의 번호와 내용
  • -v : 패턴과 일치하지 않는 줄을 출력
  • -w : 패턴과 한 단어로 일치
  • -x : 패턴과 한 줄로 일치
  • -l : 주어진 패턴과 일치하는 패턴이 있는 파일의 이름만 출력
  • -r : 하위 디렉터리까지 주어진 패턴을 찾음
  • -o : 지정한 패턴과 매칭되는 것만 출력(--only-matching)
  • -E : |와 연계하여 여러 패턴을 찾음. egrep
  • -F : 특수문자를 기호 그대로 인식하여 출력. fgrep

wc : 텍스트 파일의 행 수, 단어 수, 문자 수를 출력

[사용법]
$ wc [option] file

옵션

  • -l : 행 수만
  • -w : 단어 수만
  • -c : 문자 수만
  • -L : 가장 긴 라인의 길이

sort : 텍스트 파일의 내용을 행 단위로 정렬

[사용법]
$ sort [option] file

옵션

  • -b : 선행하는 공백문자를 무시(--ignore-leading-blanks)
  • -d : 공백과 알파벳 숫자만으로 정렬(--dictionary-order)
  • -f : 대소문자 무시
  • -r : 내림차순으로. 정렬 순서 반대로
  • -o : 정렬한 결과를 파일명으로 저장(--output)
  • -c : 정렬 검사
  • -n : 숫자를 문자가 아닌 숫자값으로 취급해서 정렬(--numeric-sort)
  • -u : 중복되는 줄은 한줄만 출력(--unique)
  • -M : 월 표시 문자로 정렬할 때 사용(--month- )
  • -t : 필드 구분자를 지정 시 사용
  • -k n[,m] : 정렬할 위치를 지정. n 필드에서 시작해서 m 필드에서 끝냄

cut : 데이터의 열을 추출할 때 사용

[사용법]
$ cut option file

옵션

  • -c : 문자수를 기준으로 추출
  • -f : 파일의 필드를 기준으로 추출
  • -d : 필드 구분자를 지정(--delimiter)

split : 하나의 파일을 여러 개의 작은 파일로 분리

[사용법]
$ split [option] file file_name

옵션

  • -b 사이즈 : 파일을 주어진 바이트 크기로 분리
  • -C 사이즈 : 파일의 행을 주어진 사이즈에 최대한 맞춰서 분리
  • -l 행수 : 파일을 주어진 행 수 단위로 분리
728x90
반응형