1. 파일 속성으로 파일 찾기
1) find 명령어
- 파일 이름이나 속성을 이용하여 해당하는 파일을 찾는다.
- 사용법
$ find 디렉터리 [-옵션]
: 옵션의 검색 조건에 따라 지정된 디렉터리 아래에서 해당되는 파일들을 모두 찾아 출력한다.
2) find 명령어 검색 조건
- 파일의 접근 권한(-perm)으로 검색
- 파일의 접근 시간(-atime) 혹은 수정 시간(-mtime)으로 검색
+n : 현재 시각을 기준으로 n일 이상 전
n : 현재 시각을 기준으로 n일 전
-n : 현재 시각을 기준으로 n일 이내
- 파일의 소유자(-user)로 검색
- 파일 크기(-size)로 검색
- 파일 종류(-type)로 검색
d : 디렉터리
f : 일반 파일
l : 심볼릭 링크
b : 블록 장치 파일
c : 문자 장치 파일
s : 소켓 파일
3) 검색 조건 조합
- find 명령어는 여러 검색 옵션을 조합해서 사용할 수 있다.
- 예
$ find .. -type d -perm 700 -print
$ find . -name core -size +2048 -ls
4) 검색된 파일 처리
- find 명령어의 -exec 옵션
: 검색한 모든 파일을 대상으로 동일 작업(명령어)을 수행
- 예
$ find . -name core -exec rm -i {}\;
2. 파일 필터링
1) grep 명령어
- 사용법
$ grep 패턴 파일*
파일(들)을 대상으로 지정된 패턴의 문자열을 검색하고, 해당 문자열을 포함하는 줄들을 출력한다.
2) grep 명령어의 옵션
옵션 | 기능 |
-i | 대소문자를 무시하고 검색한다. |
-l | 해당 패턴이 들어있는 파일 이름을 출력한다. |
-n | 각 줄의 줄번호도 함께 출력한다. |
-v | 명시된 패턴을 포함하지 않는 줄을 출력한다. |
-c | 패턴과 일치하는 줄 수를 출력한다. |
-w | 패턴이 하나의 단어로 된 것만 검색한다. |
3) 정규식 (Regular Expression)
문자 | 의미 | 예 |
? | 한 글자 혹은 없음을 의미한다. | 'ab?'는 ab 혹은 ab 다음에 한 글자가 오는 문자열 |
. | 임의의 한 문자를 의미한다. | 'a...b'는 a로 시작해서 b로 끝나는 5글자 문자열 |
* | 바로 앞의 것을 0번 이상 반복한다. | 'a*b'는 b, ab, aab, aaab, ... 등의 문자열 |
[] | [과 ] 사이의 문자 중 하나를 의미한다. -기호 : 문자의 범위를 지정한다. |
'[abc]d'는 ad, bc, cd를 뜻한다. [a-z]는 a부터 z까지 중 하나 |
[^...] | [^과 ] 사이의 문자를 제외한 나머지 문자 중 하나를 의미한다. | '[^abc]d'는 ad, bd, cd는 포함하지 않고 ed, fd 등은 포함한다. [^a-z]는 소문자가 아닌 모든 문자이다. |
^.$ | 각각 줄의 시작과 끝을 의미한다. | '^문자열'은 문자열로 시작하는 줄을 나타낸다. '문자열$'은 문자열로 끝나는 줄을 나타낸다. |
4) 파이프와 함께 grep 명령어 사용
- 어떤 명령어를 실행하고 그 실행 결과 중에서 원하는 단어 혹은 문자열 패턴을 찾고자 할 떄 사용함.
3. 파일 정렬
1) 정렬 : sort 명령어
- 사용법
$ sort [-옵션] 파일*
텍스트 파일(들)의 내용을 줄 단위로 정렬한다. 옵션에 따라 다양한 형태
로 정렬된다.
- 정렬 방법
정렬 피드를 기준으로 줄 단위로 오름차순으로 정렬한다.
기본적으로는 각 줄의 첫 번째 필드가 정렬 필드로 사용된다.
-r 옵션을 사용하여 내림차순으로 정렬할 수 있다.
2) 정렬 필드 지정
필드 지정 | 기능 |
-k 필드 번호 | 필드번호에 해당하는 필드를 기준으로 정렬한다. 이 옵션에서 필드번호는 1부터 시작된다. |
+시작필드 -종료필드 |
시작필드부터 종료필드 -1까지의 필드들을 기준으로 정렬한다. 이때 필드 번호는 0부터 시작된다. |
3) sort 명령어의 옵션
옵션 | 기능 |
-b | 앞에 붙는 공백은 무시한다. |
-c | 이미 정렬된 상태인지 확인한다. |
-d | 숫자, 문자, 공백만 비교하여 사전식 순서로 정렬한다. [a-zA-Z0-9] |
-f | 대소문자를 구분하지 않고 정렬한다. |
-n | 숫자 문자열의 숫자 값에 따라 비교하여 정렬한다. |
-r | 역순(내림차순)으로 정렬한다. |
-t 문자 | 지정한 문자를 필드 구분자로 사용한다. |
-o 출력파일 옵션
정렬된 내용을 지정된 파일에 저장할 수 있다.
$ sort -o sort.txt you.txt
- n 옵션
숫자 문자열의 경우에 숫자가 나타내는 값의 크기에 따라 비교하여 정렬할 수 있다.
예 : "49"와 "100"
- 필드 구분 문자 지정
4. 파일 비교
1) 파일 비교 : cmp 명령어
- 사용법
$ cmp 파일1 파일2
파일1과 파일2가 같은지 비교한다.
- 출력
두 파일이 같으면 아무것도 출력하지 않는다.
두 파일이 서로 다르면 서로 달라지는 위치를 출력한다.
2) 파일 비교 : diff
- 사용법
$ diff [-i] 파일1 파일2
파일1과 파일2를 줄 단위로 비교하여 그 차이점을 출력한다.
-i 옵션은 대소문자를 무시하여 비교한다.
- 출력
첫 번째 파일을 두 번째 파일 내용과 같도록 바꿀 수 있는 편집 명령어 형태
3) diff 출력 : 편집 명령어
- 추가(a)
첫 번째 파일의 줄 n1 이후에 두 번째 파일의 n3부터 n4까지의 줄들을 추가
n1 a n3, n4
> 추가할 두 번째 파일의 줄들
- 삭제(d)
첫 번째 파일의 n1부터 n2까지의 줄들을 삭제하면 두 번째 파일의 줄 n3 이후와 서로 같다.
n1, n2 d n3
< 삭제할 첫 번째 파일의 줄들
- 변경(c)
첫 번째 파일의 n1부터 n2까지의 줄들을 두 번째 파일의 n3부터 n4가지의 줄들로 대치하면 두 파일은 서로 같다.
n1, n2 c n3, n4
< 첫 번째 파일의 대치될 줄들
--
> 두 번째 파일의 대치할 줄들
5. 기타 파일 조작
1) 파일 나누기 : split
- 사용법
$ split [-l n] 입력파일 [출력파일]
하나의 입력파일을 일정한 크기의 여러 개 작은 파일들로 분할한다.
-l n 옵션을 이용하여 분할할 줄 수를 지정할 수 있다.
1000줄씩 분할하여 xaa, xab, ...형태의 파일명으로 저장된다.
2) 파일 합병
- cat 명령어를 이용한 파일 합병
$ cat 파일1 파일2 > 파일3
파일1과 파일2의 내용을 붙여서 새로운 파일3을 만들어준다.
- paste 명령어를 이용한 파일 병합
$ paste [-s][-d구분문자]파일*
여러 파일들을 병합하여 하나의 파일을 만들어 준다.
-s : 한 파일 끝에 다른 파일 내용을 덧붙인다.
-d구분문자 : 어떠한 문자로 열을 구분하는지 지정한다. 기본값은 탭 문자이다.
6. 명령어 스케줄링
1) 주기적 실행 cron
- cron 시스템
유닉스의 명령어 스케줄링 시스템으로 crontab 파일에 명시된 대로 주기적으로 명령을 수행한다.
- crontab 파일 등록법
$ crontab 파일
crontab 파일을 cron 시스템에 등록한다.
- crontab 파일
7개의 필드(분 시 일 월 요일 [사용자] 명령)로 구성됨.
- crontab 명령어
$ crontab -l [사용자]
사용자의 등록된 crontab 파일 리스트를 보여준다.
$ crontab -e [사용자]
사용자의 등록된 crontab 파일을 수정 혹은 생성한다.
$ crontab -r [사용자]
사용자의 등록된 crontab 파일을 삭제한다.
2) 한 번 실행 at
- at 명령어
미래의 특정 시간에 지정한 명령어가 한 번 실행되도록 한다.
실행할 명령은 표준 입력을 통해서 받는다.
- 사용법
$ at [-f 파일] 시간
지정된 시간에 명령이 실행되도록 등록한다. 실행할 명령언 표준 입력으로 받는다.
-f : 실행할 명령들을 파일로 작성해서 등록할 수도 있다.
- atq 명령어
at 시스템의 큐에 등록되어 있는 at 작업을 볼 수 있다.
사용 예 : $ atq
- at -r 옵션
$ at -r 작업번호
지정된 작업번호에 해당하는 작업을 제거한다.
사용 예 : $ at -r 3
7. 디스크 및 아카이브
1) tar 아카이브
- 아카이브
백업 또는 다른 장소로의 이동을 위해 여러 파일들을 하나로 묶어놓은 묶음
아카이브를 만들거나 푸는데 tar(tape archive) 명령어 사용
- tar 명령어
옵션 : c(create), v(verbose), x(extract), t(table of contents), f(file)
$ tar -cvg 타르파일 파일....
여러 파일들을 하나의 타르파일로 묶는다. 보통 확장자로 .tar 사용
$ tar -xvf 타르파일
하나의 타르파일을 풀어서 원래 파일들을 복원한다.
$ tar -tvf 타르파일
타르파일의 내용을 확인한다.
8. 파일 압축
1) 파일 압축 gzip
- gzip 명령어
$ gzip [옵션] 파일*
파일(들)을 압축하여 .gz 파일을 만든다.
-d : 압축을 해제한다.
-l : 압축파일 안에 있는 파일 정보(압축된 크기, 압축률)를 출력한다.
-r : 하위 디렉터리까지 모두 압축한다.
-v : 압축하거나 풀 때 압축률, 파일명을 출력한다.
- 압축 풀기
$ gzip -d 파일.gz*
gzip으로 압축된 파일들을 복원한다.
$ gunzip 파일.gz*
gzip으로 압축된 파일들을 복원한다.
- 사용 방법
파일들을 하나의 타르파일로 묶은 후 compress/gzip을 사용해 압축
파일 복원 : 압축을 해제한 후, 타르파일을 풀어서 원래 파일들을 복원
$ tar -cvf src.tar*
$ gzip src.tar
... 이 파일을 원하는 곳으로 이동
$ gzip -d src.tar.gz
$ tar -xvf src.tar
2) 파일 압축 compress
- 명령어 compress / uncompress 명령어
$ compress 파일*
파일(들)을 압축하여 .Z 파일을 만든다.
$ uncompress 파일.Z*
압축된 파일(들)을 복원한다.
2) RPM(Red Hat Package Manager)
- RPM 패키지 매니저
원래 레드햇에서 사용되었던 패키지 파일 및 관리 소프트웨어
현재는 Linux Standard Base의 표준 패키지 포맷 중 하나이다.
각종 소프트웨어의 설치 및 업데이트를 편리하게 할 수 있다.
- 소프트웨어 설치 및 업데이트
rpm -Uvh foo-1.0-1.i386.rpm
- 이미 설치된 패키지 대치
rpm -ivh --replacefiles foo-1.0-1.i386.rpm
- 패키지 제거하기
rpm -e foo-1.0-1.i386
'Linux' 카테고리의 다른 글
리눅스 스터디 7주차 (0) | 2021.01.01 |
---|---|
리눅스 스터디 6주차 (0) | 2020.12.31 |
리눅스 스터디 4주차 (0) | 2020.10.09 |
리눅스 스터디 3주차 (0) | 2020.09.28 |
리눅스 스터디 2주차 (0) | 2020.09.20 |