2. 파일 시스템 관리
파일 및 디렉터리 관리
소유권과 허가권
- 소유권은 사용자 소유권과 그룹 소유권으로 나눔
- 허가권은 user, group, other로 나눔.
- 허가권은 10개의 영역으로 나눔. 첫 번째는 파일의 타입, 나머지9개는 각각 3개씩 나누고, 첫 세자리는 파일을 소유한 사용자 권한, 두 번째는 해당 그룹에 속한 사용자들 권한, 마지막은 그 외의 다른 사용자들의 권한.
- 각 세자리는 rwx(읽기, 쓰기, 실행)로 표시. 없는 경우 -로 표시.
파일의 종류
- '-' : 일반파일
- d : 디렉터리
- l : 링크 파일
- b : 블록 디바이스
- c : 캐릭터 디바이스
- p : named pipe(FIFO)
- s : 소켓
특수 권한
리눅스의 권한 체계는 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의 값을 가짐.
관련 명령어
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 : 문자로 표시할 때
파일 링크
- 리눅스의 파일, 디렉터리는 I-node라는 번호가 임의로 부여.
- 파일명이 다르더라도 이 번호가 같다면 내부적으로는 같은 파일.
- 하나의 파일을 여러 개의 이름으로 관리하거나 디렉터리의 접근 경로를 단축하는 형태를 링크라고 함.
- 하드 링크, 심볼릭 링크로 나눔.
관련 명령어: ln
하드 링크, 심볼릭 링크를 생성하는 명령
[사용법]
$ ln [option] 파일명
옵션
- -s : 심볼릭 링크 생성 시(--symbolic)
- -v : 정보 자세히 출력
- -f : 존재시 삭제하고 생성
하드링크와 심볼릭 링크
하드링크 : 하나의 동일한 파일을 디스크의 다른 곳에 배치하여 여러 이름으로 사용되는 형식
하드 링크의 특징
- 원본과 아이노드 번호 같음
- 원본과 파일의 크기 같음
- ls -l시의 링크 숫자 올라감
- 수정시 같이 반영
- 원본 파일 삭제시 링크 파일 그대로
- 파일만 가능, 동일한 파일 시스템이어야 함
- 파티션, 디스크 드라이브 가로질러 사용 x
심볼링 링크 : 하나의 파일을 여러 이름으로 가리키게 하는것. 원본과 생성된 링크 파일은 완전히 다른 파일.
심볼릭 링크의 특징
- 아이노드 번호 서로 다름
- 링크 파일 크기가 매우 작음
- ls -l 명령 시에 권한 맨 앞 'l'로 표시
- 원본, 링크 둘 중 어떤 파일 수정해도 같이 반영
- 원본 파일 삭제시 링크 구실 못함
- 윈도의 바로가기, 단축 아이콘과 같음
- 퍼미션이 777로 표시. 원본 파일의 퍼미션과는 무관
파일 시스템 관리 및 복구
파일 시스템 생성
파일 시스템 생성 절차
- 하드 디스크 인식 여부 확인 : 'fdisk -l'
- 파티션 분할 및 생성 : fdisk 명령
- 파일 시스템 생성 : mkfs 명령어 사용
- 사용하려는 디렉터리 생성
- 마운트 : 파일 시스템이 생성된 파티션을 사용하려는 디렉터리로 연결. mount 명령.
- 관련 파일 등록 : 지속적 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 명령을 사용해서 확인.
파일 시스템 점검
관련 명령어: 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)
스왑 생성
스왑
하드 디스크의 일부를 마치 메모리처럼 사용하게 해주는 기술
관련 명령어 : 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
스왑 영역 만들기
- 스왑 파일 생성
가. dd 명령 : dd if=/dev/zero of=/swap-file bs=1k count=1024000
나. 스왑 파일 생성 : mkswap /swap-file
다. 스왑 파일 활성화 : swaopen /swap-file
라. 시스템 부팅 시마다 사용할 경우 /etc/fstab 파일에 등록 - 스왑 파티션 생성
가. fdisk 명령으로 스왑 파티션 생성 : fdisk /dev/sdb
나. 스왑 파티션 생성 : mkswap -c /dev/sdb2
다. 스왑 파티션 활성화 : swapon /dev/sdb2
라. 시스템 부팅 시마다 사용할 경우 /etc/fstab 파일에 등록
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 : 유예 기간 설정
사용자 쿼터 설정
- /etc/fstab 설정
- /home 영역 다시 마운트
$ mount -o remount /home - 쿼터 파일 생성 및 쿼터 체크
$ quotacheck -mf /home - 사용자에 대한 쿼터 설정
$ edquota ihp001 - 쿼터 시작
$ quotaon /home - 쿼터 설정 확인
$ repquota /home
그룹 쿼터 설정
- /etc/fstab 설정
- /home 영역 다시 마운트
$ mount -o remount /home - 쿼터 파일 생성 및 쿼터 체크
$ quotacheck -gm /home - 그룹에 대한 쿼터 설정
$ edquota -g IHP001 - 쿼터 시작
$ quotaon /home - 쿼터 설정 확인
$ repquota -g /home
관련 명령어
디렉터리 관련 명령어
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 : 디렉터리 제거 후 그 결과로 부모 디렉터리도 비면 부모 디렉터리까지 다 삭제
파일 관련 명령어
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
텍스트 파일 관련 명령어
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 행수 : 파일을 주어진 행 수 단위로 분리