Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
목 차
편집기
텍스트 조작과 필터
2
편집기
편집기
Vim 편집기
텍스트 조작과 필터
3
개발 환경
Stack Overflow
개발 환경과 툴
4
[ 출처 : “Developer Survey Results”, Stack Overflow, 2018. ][ 출처 : “GitHub Octoverse 2018”, GitHub, https://octoverse.github.com/, 2018. ]
GitHub : Top Open Source Projects
편집기 (1/6)
vi(visual edit) 편집기 : ex-vi.sourceforge.net
1976년 03월, 빌 조이(Billy Joy) 가 만든 텍스트 편집기• 최초의 유닉스 시스템용 화면 편집기
– UNIX 계열 운영체제에서 가장 많이 사용하는 텍스트 편집기
– BSD 3.0 에 C Shell 과 함께 추가된 프로그램
• 라인 편집기인 ed 의 기능을 확장시킨 ex 편집기를 개발하고 이를 확장하여 개발
vi 호환 텍스트 편집기 : Vim(vi improved)
• 1992년, 386BSD 배포판(FreeBSD, NetBSD)에서 Elvis 를 vi 대체 편집기로 채택
• FreeBSD와 NetBSD 4.4-Lite2 에서 1994년 개발된 nvi 로 전환
라이선스 : BSD License
프로그래밍 언어 : C
5
(read-only) ex-vi Project : sourceforge.net
http://ex-vi.cvs.sourceforge.net/
편집기 (2/6)
Vim(Vi improved) 편집기 : vim.org
1991년 11월, vi 호환 텍스트 편집기• gVim : GUI Vim
Vim 릴리즈
• 1991년 11월, vim 1.14 -- Vi imitation
• 1993년 12월, Vim 2.0 -- Vi improved
• 2018년 05월, Vim 8.1.0
라이선스 : Careware License, Free Software(Vim License)
프로그래밍 언어 : C, Vim script
6
Vim GitHub : github.com
https://github.com/vim/vim
편집기 (3/6)
neovim 편집기 : neovim.io
2014년, Vim 과 동일한 구성을 공유(호환) : Vim의 연장과 확장• 2015년 12월, neovim 0.1 부터 거의 모든 Vim 의 기능과 호환된다.
neovim 릴리즈
• 2015년 11월, neovim 0.1
• 2017년 05월, neovim 0.2
• 2018년 06월, neovim 0.3
라이선스 : Apache License, Vim License
프로그래밍 언어 : C, Lua, Vim script
7
neovim GitHub : github.com
https://github.com/neovim/neovim
편집기 (4/6)
Emacs(Editor MACroS) 편집기
1976년, 리차드 스톨만(Richard Stallman)이 개발한 텍스트 편집기• 간단한 문서 편집으로부터 프로그래밍까지 다양하게 사용
GNU Emacs(FSF Emacs) : gnu.org/software/emacs
XEmacs
GNU Emacs 릴리즈
• 2001년 10월, GNU Emacs 21.1
• 2018년 05월, GNU Emacs 26.1
라이선스 : GNU GPL v3
프로그래밍 언어 : C, Lisp
8
GNU Emacs GNU Savannah : savannah.gnu.org
http://savannah.gnu.org/projects/emacs/
편집기 (5/6)
Emacs 편집기 : GNU Emacs
9
편집기 (6/6)
gedit 편집기 : wiki.gnome.org/Apps/Gedit
1999년 02월, GNOME 데스크톱 환경용으로 개발된 텍스트 편집기• GTK+ 2.0과 GNOME 2.0 라이브러리를 이용
• 드래그 앱 드롭(DnD, Dorg and Drop)을 지원
gedit 릴리즈
• 2018년 09월, gedit 3.30.1
라이선스 : GNU GPL
프로그래밍 언어 : C, Vala, Python
10
10
gedit GNOME GitLab : gitlab.gnome.org
https://gitlab.gnome.org/GNOME/gedit
11
편집기
Vim 편집기
Vim 편집기
Vim 편집기 : 동작 모드
두 가지 동작 모드• 입력 모드(Insert mode)
• 명령 모드(Command mode)
12
Vim 편집기 : 실행과 종료 (1/4)
Vim 편집기 실행
view file• 파일을 읽기 전용 모드로 시작해서 편집한 후 다른 이름으로 저장할 때 사용
13
일반 형식 vi [옵션] 파일명
주요 옵션 -R (read-only) 파일을 읽기 전용으로 열 때 사용한다.
$ view 파일명
Vim 편집기 : 실행과 종료 (2/4)
Vim 편집기 실행
불확실한 종료 시 되살리기
14
명령어 내 용
vi -r 되살릴 수 있는 모든 파일의 이름을 보여준다.
vi -r filename Vim 편집기를 시작하고 나서 지정한 파일을 되살려 준다.
Vim 편집기 : 실행과 종료 (3/4)
15
파일 저장 명령어
파일 저장과 종료
명령어 내 용
:w(write) 버퍼에 내용을 파일로 저장하는 명령이다
단, Vim 편집기는 종료하지 않는다.
:w filename 문서의 내용을 지정한 파일에 저장한다.
:w! filename문서의 내용을 지정한 파일에 저장한다.
단, 기존 파일이 존재하면 삭제 후에 저장한다.
명령어 내 용
:q(quit) 버퍼에 수정 사항이 없을 시 Vim 편집기를 종료한다.
(수정 사항을 이미 저장한 상태에서만 종료가 가능하다.)
:wq 버퍼의 내용을 파일로 저장하고, Vim 편집기를 종료한다.
:q! 버퍼의 내용을 파일로 저장하지 않고, Vim 편집기를 종료한다.
:x 버퍼에 마지막으로 수정된 내용을 저장하고, Vim 편집기를 종료한다.
Vim 편집기 : 실행과 종료 (4/4)
파일 저장 명령어
16
명령어 내 용
:begin,end w filename begin 행부터 end 행까지 filename 으로 저장
:1,. w filename 1행부터 현재 행까지 filename 으로 저장
:1,. w >> filename 1행부터 현재 행까지 filename 으로 추가
Vim 편집기 : 입력 및 삭제 (1/3)
입력 명령어
17
입력 키 내 용
i 입력모드로 전환, 커서 위치 앞에 삽입
a 입력모드로 전환, 커서 위치 뒤에서 삽입
I 입력모드로 전환, 현재 줄의 앞에 삽입
A 입력모드로 전환, 현재 줄의 끝에 삽입
o 입력모드로 전환, 현재 줄의 아래에 새로운 행을 열고 텍스트를 입력
O 입력모드로 전환, 현재 줄의 위에 새로운 행을 열고 텍스트를 입력
Vim 편집기 : 입력 및 삭제 (2/3)
삭제 명령어
18
입력 키 내 용
x 현재 커서 위치의 문자를 삭제한다.
X 현재 커서 위치의 왼쪽 문자를 삭제한다.
dd 현재 줄의 전체를 삭제한다(커서를 포함하는 라인 전체 삭제).
D 현재 커서 위치부터 줄의 끝까지 삭제한다(오른쪽 라인).
dw 커서가 있는 한 단어를 삭제
db 커서 앞에 있는 한 단어를 삭제
dG 현재 커서 위치부터 편집 버퍼의 끝까지 삭제한다(파일의 끝까지).
d1G 현재 커서 위치부터 편집 버퍼의 맨 앞까지 삭제한다.
d) 문장의 나머지 삭제
d} 문단의 나머지 삭제
dH 화면의 시작까지 삭제
Vim 편집기 : 입력 및 삭제 (3/3)
복원 명령어
마지막으로 지운 내용 복사하기
19
입력 키 내 용
p 마지막으로 지워진 내용을 커서의 뒤에 삽입한다.
P 마지막으로 지워진 내용을 앞에 삽입한다.
xp 두 문자를 바꾼다.
deep 두 단어를 바꾼다.
ddp 두 줄을 바꾼다.
u 작업 내용을 이전으로 되돌린다(마지막 변경만 취소한다).
Vim 편집기 : 이동 (1/4)
이동 명령어
기본적인 커서의 이동 : 화살표 키(방향 키)를 사용하여 커서 이동
20
입력 키 내 용
h 커서를 한 칸 왼쪽으로 이동
j 커서를 한 줄 아래로 이동
k 커서를 한 줄 위로 이동
l 커서를 한 칸 오른쪽으로 이동
<Backspace> 커서를 한 칸 왼쪽으로 이동
<Space> 커서를 한 칸 오른쪽으로 이동
k
jh l
Vim 편집기 : 이동 (2/4)
이동 명령어 : 특정 행 번호 및 패턴
특정 행 번호로 이동
패턴(정규 표현식)을 이용한 이동
21
입력 키 내 용
:n n 번째 행으로 이동
:$ 마지막 행으로 이동
:$= 현재 문서의 총 줄(행) 수
:.= 현재 위치의 행 번호
입력 키 내 용
/patterns 특정 patterns 과 일치하는 곳으로 이동한다.
?patterns 검색의 방향을 뒤쪽(backward)으로 진행한다.
Vim 편집기 : 이동 (3/4)
이동 명령어 : 라인 단위
라인 단위 커서 이동
단어 단위 커서 이동
22
입력 키 내 용
- 커서를 이전 줄의 처음으로 이동
+ 커서를 다음 줄의 처음으로 이동
Enter 커서를 다음 줄의 처음으로 이동
0 커서를 현재 줄의 맨 앞으로 이동
$ 커서를 현재 줄의 맨 끝으로 이동
^ 커서를 현재 줄의 첫 글자 (공백이나 탭이 아닌)로 이동
입력 키 내 용
e 또는 E 커서를 다음 단어의 끝 글자로 이동
w 또는 W 커서를 다음 단어의 첫 글자로 이동
b 또는 B 커서를 이전 단어의 첫 글자로 이동
Vim 편집기 : 이동 (4/4)
이동 명령어 : 문단 단위
문단 단위 커서 이동
23
입력 키 내 용
( 문장의 시작으로 이동
) 문장 끝으로 이동하여 다음 단어의 시작 첫 칸으로 커서 이동
{ 문단의 시작으로 이동
} 문단 끝으로 이동
G 문서의 마지막 줄로 이동
nG n번째 줄로 이동
M 화면 중간 줄에 커서 이동
Vim 편집기 : 편집 (1/4)
문자 단위 치환 명령어
• (주의) r 명령 대신 R 명령을 사용한 경우
– ESC 키를 눌러 명령 모드로 전환한 후에 u 명령을 사용하여 변경내용 취소
24
입력 키 내 용
R커서가 있는 위치부터 덮어쓰기 시작한다.
단, ESC 키를 누를 때까지 덮어쓴다.
r 커서가 위치한 곳의 한 글자만 치환한다(덮어 쓴다).
s 커서가 있는 문자 삭제 후 입력모드로 전환
S 커서가 있는 줄을 삭제한 후 입력모드로 전환
cb 커서가 있는 앞 문자 삭제 후 입력모드
Vim 편집기 : 편집 (2/4)
문자열 단위 치환 명령어
버퍼의 x 행과 y 행 사이에서 패턴을 찾아 치환 문자열로 바꾼다.• 행 번호 지시 대신 % 문자를 사용하면 전체 파일을 지칭할 수 있다.
– $는 파일의 마지막 행을 뜻한다.
– x, y를 적지 않으면 현재 행에 적용한다.
플래그• g : 일치하는 패턴 모두를 치환하라는 지시 사항
• c : 치환할 때마다 물어 보라는 지시 사항
• 예) 1,10s/Doo-Ok/Clickseo
– 1행과 10행(10행도 포함) 사이에서 Doo-Ok 을 찾아 Clickseo 로 바꾼다.
25
:[ x, y ]s/패턴/치환문자열/플래그
Vim 편집기 : 편집 (3/4)
다른 파일 포함시키기
여러 파일 편집
여러 파일을 동시에 개방한 후에 작업한다.• 처음 Vim 편집기 실행할 때 파일명을 하나 이상 지정한 후에, ex 명령어를 이용해서
파일 사이를 이동하면서 작업 할 수 있다.
• :w 로 file1 을 저장하고 :n 으로 다음 파일(file2)을 불러올 수 있다.
다른 파일 편집
명령어 내 용
:r filename 지정한 파일의 내용을 현재 커서가 있는 줄 다음에 불러온다.
vi filename Vim 편집기를 시작할 때부터 특정 파일을 불러와서 시작한다.
$ vi file1 file2
명령어 내 용
:e filename 현재 파일의 편집을 마치고, 다른 파일을 편집하고 싶을 때 사용한다.
Vim 편집기 : 편집 (4/4)
행 번호 붙이기
쉘 명령어 실행
27
입력 키 내 용
:set number
행 번호 붙이기:set nu
:se nu
:set nonumber
행 번호 없애기:set nonu
:se nonu
입력 키 내 용
:! Vim 내부에서 주어진 명령을 실행할 수 있다.
:r! 명령이 표준 출력에 보낸 결과 내용을 버퍼에 포함시킨다.
28[ 출처 : “Vi/Vim 단축키 모음”, KLDP.org ]
텍스트 조작과 필터
편집기
텍스트 조작과 필터
파일 비교
열의 추출 및 결합
파일 정렬과 분할
문자열 패턴 검색 : grep
파일 검색 : find
29
텍스트 조작 및 필터 (1/2)
파일의 종류 확인 : file
특정 파일의 종류를 알고 싶을 때 사용
30
일반 형식 file [옵션] 파일명
주요 옵션 -z 압축 파일의 형태만 검사한다.
텍스트 조작 및 필터 (2/2)
문자 및 문자열 개수 구하기 : wc
(Word Counter) 파일의 정보를 추출하는 명령어• 파일 내의 라인 수, 단어 수, 문자 수를 세어 표시해 주는 명령어
파이프라인과 조합하여 여러 정보를 확인• 현재 디렉터리 내의 파일 개수
• 현재 시스템의 사용자 수
31
일반 형식 wc [옵션] 파일명
주요 옵션
-l 라인들의 개수만 출력
-w 단어들의 개수만 출력
-c 문자들의 개수만 출력
[clickseo@localhost clickseo]$ ls | wc -l5[clickseo@localhost clickseo]$ finger | wc -l2
32
텍스트 조작 및 필터
파일 비교
cmp, comm, diff
파일 비교 (1/3)
파일 비교 : cmp
(Compare) 유사한 두 파일을 비교• 처음으로 틀린 문자가 나타나는 위치만을 출력한다(bytes 단위로 비교).
33
일반 형식 cmp [옵션] 파일명1 파일명2
주요 옵션 -l 파일 내의 모든 차이점을 알기 위해서 사용한다.
파일 비교 (2/3)
파일 비교 : comm
(Common) 행 단위 파일 비교 명령어• 두 파일의 동일한 내용을 찾는다(즉, 두 파일에 공통으로 있는 라인 출력).
– 왼쪽 칼럼 : 첫 번째 파일에만 있는 내용
– 중간 칼럼 : 두 번째 파일에만 있는 내용
– 오른쪽 칼럼 : 두 파일에 공통으로 존재하는 행이 출력
34
일반 형식 comm [옵션] 파일명1 파일명2
파일 비교 (3/3)
파일 비교 : diff
Different File Comparator
파일 사이의 다른 내용을 찾아내는 명령어• 표본이 되는 문서는 두 번째 파일
• a (append) : (파일2)에서 (파일1)로 첨가되어야 할 것을 표시
• c (change) : 두 파일의 내용이 바뀌어야 하는 내용을 표시
• d (delete) : (파일1)에서 제거되어야 하는 내용을 표시
35
일반 형식 diff [옵션] 파일명1 파일명2
36
텍스트 조작 및 필터
열의 추출 및 결합
cut, paste
열의 추출 및 결합 (1/5)
열의 추출 : cut
특정 필드를 추출해서 가공해야 하는 경우 사용하는 명령어• 데이터의 특정 열을 선택하거나, 파일 내의 특정 필드만을 표시할 때 사용한다.
37
일반 형식 cut [옵션] 파일명
주요 옵션
-c 목록
목록에 지정한 열을 출력
-c1,2 : 1번, 2번 열을 출력
-c1-10 : 1번에서 10번 열 까지를 출력
-f 목록목록에 지정한 필드를 출력
-f1,3 : 1번 필드와 3번 필드를 출력
-d 필드 구분자 필드를 구분하는 문자를 지정한다(기본값 : 탭 문자).
-s 필드 구분자를 포함할 수 없다면 그 행은 하지 않는다.
열의 추출 및 결합 (2/5)
열의 추출 : cut 옵션
38
1 ~ 3 열 만 표시
-f 옵션 사용 시…파일 안에 각 필드를 구분하기 위해서
반드시 탭으로 필드들이 구분되어 있어야 한다.
열의 추출 및 결합 (3/5)
열의 추출 : cut 옵션
39
-d 옵션 : 필드 구분자 지정
/etc/passw 파일 추출 시 필드 구분자로 “:” 를 지정
[clickseo@localhost clickseo]$ cat /etc/passwd( …생략… )
clickseo:x:1000:1000:Clickseo,,,:/home/clickseo:/bin/bash[clickseo@localhost clickseo]$
열의 추출 및 결합 (4/5)
열의 결합 : paste
수직으로 파일을 결합하여 보여준다.• 각각의 정보를 가지고 있는 파일을 결합하여 하나로 통합된 파일을 만드는데
유용하게 사용할 수 있다.
40
일반 형식 paste [옵션] 파일명
주요 옵션-d 구분자 파일을 결합할 때 중간에 특정한 구분자를 넣고자 할 때 사용
-s 목록 연속적인 라인을 1개 라인으로 결합한다.
열의 추출 및 결합 (5/5)
열의 결합 : paste 옵션
41
-d 옵션 : 파일 결합 시 지정된 구분자를 추가하여 파일 구분
-s 옵션 : 연속적인 라인을 1개의 라인으로 결합
42
텍스트 조작 및 필터
파일 정렬과 분할
sort, split
파일 정렬과 분할 (1/5)
파일 정렬 : sort
주어진 필드나 문자의 위치를 기준으로 파일을 행 단위로 정렬• 정렬항목을 기준으로 오름차순, 내림차순으로 정렬한다.
– 알파벳 순서는 소문자보다 대문자가 우선
– 숫자들은 모든 문자보다 우선
43
일반 형식 sort [옵션] 파일명
주요 옵션
-r (Reverse) 내림차순으로 정렬한다.
-f (ignore-case) 대소문자 구분하지 않고 정렬한다.
-d (Dictionary-order)알파벳 순으로 정렬한다.
-n (Numeric-sort) 숫자 순으로 정렬한다.
-m (Merge) 정렬된 파일들을 병합한다.
-o file (Output) 표준 출력 대신에 FILE 에 출력한다.
파일 정렬과 분할 (2/5)
파일 정렬 : sort 옵션
44
-r 옵션 : 내림차순 정렬
파일 정렬과 분할 (3/5)
파일 정렬 : sort 옵션
45
-m 옵션 : 정렬된 파일의 합병
-u 옵션 : 정렬된 파일에서 중복된 라인의 제거
파일 정렬과 분할 (4/5)
파일 분할 : split
하나의 파일을 여러 개의 작은 파일로 분할• 분할된 개수만큼의 새로운 파일을 생성한다.
– 파일을 분할하면 기본적으로 1000 라인 단위로 분할된다.
• 파일명은 “x” 문자와 계속해서 두 문자를 사용하여 만들어진다.
– 예: 첫 번째 파일은 “xaa”, 두 번째 파일은 “xab”로 만들어진다.
46
일반 형식 split [옵션] 파일명
주요 옵션
-b size (Bytes) 파일을 bytes 단위로 분리
-l line (Lines) 파일을 주어진 lines 수 단위로 분리
-c size 파일을 한 줄에 최대 size 바이트만큼 씩 분리
파일 정렬과 분할 (5/5)
파일 분할 : split 옵션
47
5줄 단위로 파일을 분할
xaa, xab, xac, xad 4개의 파일로 분리하여 새로운 파일 생성
조각난 파일을 하나의 큰 파일로 병합
$ cat x?? > new
48
텍스트 조작 및 필터
문자열 패턴 검색
grep
문자열 패턴 검색 : grep (1/9)
문자열 패턴 검색 : grep
문자열 및 문자열 패턴 검색, 조건에 맞는 문자열을 찾아서 출력
49
일반 형식 grep [옵션] [경로, 파일명]
주요 옵션
-c 파일 이름 다음에 숫자를 함께 출력한다. 패턴이 들어 있는 라인의 개수
-h 파일의 이름은 출력하지 않는다.
-i 대소문자 구분을 하지 않는다.
-l 파일 이름만 출력하고 패턴이 있는 라인은 출력하지 않는다.
-n 각 라인 앞에 라인 번호를 붙인다.
-w 패턴이 원하는 단어로 독립되어 있을 경우만 찾는다.
-v 패턴이 없는 (inverse) 라인만 출력한다.
문자열 패턴 검색 : grep (2/9)
문자열 패턴 검색 : 표현식
표현식(expression)
50
간단한 문법
^ 라인의 첫 시작 ( ^a : a로 시작하는 라인)
$ 라인의 끝 ( a$ : a로 끝나는 라인 )
. 한 글자 ( a…b : a와 b 사이에 임의의 3글자를 포함하는 패턴 )
*이전의 글자나 정규식이 0회 이상 반복
abc* : ab, abc, abcc, abccc 등
+ 이전의 글자나 정규식이 1회 이상 반복
[ ]한 글자의 대체 글자의 목록
[abc] : abc 중 한 글자라도 반드시 있는 단어
[^] 예: [^abc] : abc는 반드시 없는 라인
?기호 이전의 글자가 있거나 없거나...
abc? -- 문자 c 가 있거나 없거나(즉, ab 혹은 abc)하는 패턴
문자열 패턴 검색 : grep (3/9)
문자열 패턴 검색 : 사용 예
51
$ grep test s* // s 로 시작하는 모든 파일에서 test 를 포함하는 모든 행을 찾음
문자열 패턴 검색 : grep (4/9)
문자열 패턴 검색 : 사용 예
52
$ grep ^t sample // sample 파일에서 문자 t 로 시작하는 모든 행을 출력
$ grep t$ sample // sample 파일에서 문자 t 로 끝나는 모든 행을 출력
문자열 패턴 검색 : grep (5/9)
문자열 패턴 검색 : 사용 예
53
$ grep [^0-9] sample // 숫자가 아닌 문자를 하나라도 포함하는 모든 행을 출력
문자열 패턴 검색 : grep (6/9)
문자열 패턴 검색 : 사용 예
54
// 지정된 문자 a 가 0 회 이상 반복되는 패턴 검색
$ grep a* sample$ grep aa* sample$ grep aaa* sample
문자열 패턴 검색 : grep (7/9)
문자열 패턴 검색 : 사용 예
55
// -n 옵션 : 행 번호를 함께 출력
$ grep -n test sample
// -i 옵션 : 대소문자를 구별하지 않는다.
$ grep -i test sample
// -l 옵션 : 행 번호 대신 단지 파일이름만 출력
$ grep -l test sample
문자열 패턴 검색 : grep (8/9)
문자열 패턴 검색 : 사용 예
56
// -v 옵션 : 문자열 ‘sample test’이 포함되지 않은 모든 행을 출력
$ grep -v sample sample$ grep -v ‘sample test’ sample
문자열 패턴 검색 : grep (9/9)
정규 표현식과 grep의 사용 예제
57
// -w 옵션 : 패턴이 다른 단어의 일부가 아닌 하나의 단어가 되는 경우만 찾음.
// abc나 aaa 등의 단어가 아니라, a라는 단어가 포함된 행만 출력
$ grep -w a sample
58
텍스트 조작 및 필터
파일 검색
find
파일 검색 : find (1/5)
파일 검색
find 명령어• 시스템 내에 존재하는 파일을 찾고자 할 때 사용하는 명령어
59
일반 형식 find [경로] [옵션] 파일명
주요 옵션
-name filename 찾고자 하는 파일의 이름 지정(옵션 생략 가능)
-perm mode 지정된 권한과 일치하는 파일을 찾는다.
-type filetype
파일종류, 심볼릭 링크, 디렉터리 등에 따라 검색
f : 일반 파일, d : 디렉터리, l : 심볼릭 링크,b : 블록 파일, p : 파이프 등의 기호를 사용
-size num
지정된 크기와 일치하는 파일을 찾는다.
파일 크기는 블록단위로 지정(1block == 512KB)블록 숫자 뒤에 k 를 붙이면 1KB 크기의 블록 숫자로 간주
-links num num 개의 하드 링크를 갖는 파일을 찾는다.
-user name 파일 사용자의 이름에 따라서 검색
-group gname 그룹 이름에 속한 파일을 찾는다.
파일 검색 : find (2/5)
파일 검색 : find
주요 옵션 : 시간
60
일반 형식 find [경로] [옵션] 파일명
주요 옵션
-mtime num 파일의 데이터가 최근 num * 24시간(일)이 지난 파일을 찾는다.
-mmin num 파일의 데이터가 최근 num 분전에 수정된 파일을 찾는다.
-atime num num * 24시간(일) 전에 마지막 액세스한 파일을 찾는다.
-amin num num 분 전에 마지막 액세스한 파일을 찾는다.
-ctime num num *24 분 전에 마지막 변경한 파일을 찾는다.
-cmin num num분 전에 마지막 변경한 파일을 찾는다.
-print 찾은 파일을 화면에 출력
파일 검색 : find (3/5)
파일 검색 : find 활용 예
표현식을 활용한 검색
61
$ find ./ -name sample$ find ./ -name [^a-z]*.txt
파일 검색 : find (4/5)
파일 검색 : find 활용 예
마지막 수정한 일수로 검색
62
// (+) 기호는 “~보다 이상”을 의미하고 (-) 기호는 “~보다 이하”를 의미한다.
// 5일 이상 전에 마지막으로 수정한 파일 찾기
$ find ./ –mtime +5 –print
// 적어도 20일 전에 마지막으로 수정한 파일 찾기
$ find ./ –type f –atime -20 –print
파일 검색 : find (5/5)
파일 검색 : find 활용 예
접근 권한을 이용한 검색
63
// 파일 허가권이 521인 파일 찾기# find ./ –perm -521 –print
// 모든 사용자에게 모든 허가권이 주어진 디렉터리 찾기# find ./ –type d –perm 777 –print
// 루트 계정으로 setuid 파일 찾기# find ./ –user root –perm -4000 –print
// 그룹 members에 대한 setgid 파일 찾기# find ./ –group members –perm -2000 –print
// -o 옵션을 이용하여 OR 결합되고 괄호를 이용하여 그룹을 지음# find / -type f \( -perm -2000 –o –perm -4000 \) -print
참고문헌
64
[1] 이종원, “IT CookBook, 우분투 리눅스(개정판) : 시스템 & 네트워크”, 한빛아카데미, 2018.
[2] 백창우, “유닉스 리눅스 프로그래밍 필수 유틸리티”, 한빛미디어. 2010.
이 강의자료는 저작권법에 따라 보호받는 저작물이므로 무단 전제와 무단 복제를 금지하며,
내용의 전부 또는 일부를 이용하려면 반드시 저작권자의 서면 동의를 받아야 합니다.
Copyright © Clickseo.com. All rights reserved.