LPIC level 1 101 공부 - 2장 정리 (정규표현과 vi에디터)
2-1 지정한 키워드를 기초로 파일 내를 검색 : grep
-> 텍스트 데이터 내의 문자열 검색 : grep
$ grep linux02 file1 // file1에서 linux02를 검색
$ grep '^a.*0$' file1 // file1에서 a부터 시작해서 0으로 끝나는 행 검색
$ grep '.' file1 // file1에서 공백행 이외의 행을 모두 표시
.
|
임의의 문자에 일치
|
^
|
행의 선두
|
$
|
행의 끝
|
*
|
직전의 문자가 0회 이상 반복에 일치
|
?
|
직전의 문자가 0회 또는 1회 반복에 일치
|
+
|
직전의 문자가 1회 이상 반복에 일치
|
[abAB]
|
a,b,A,B 중 어느문자
|
[^abAB]
|
a,b,A,B 이외의 문자
|
[android99.]
|
ピリオド로 끝남
$ grep '^a.*\.$' file1
|
2-2 일시, 시각이 기술된 파일에 2019년 4월을 제외한 행 표시
: $ grep -v '04-[0-3][0-9]' foo.log
-> 제외한 행 표시 : -v
2-3 fileA.txt -> fileA.bak.txt
$find -name "*.txt" | sed -e ______
: 's/.txt$/.bak.txt/'
2-4 fileA에서 2번째와 5번째가 a, 3번째가 b가 아닌 행을 표시
: $ grep '.a[^b].a' fileA
2-5 egrep command에 -v 옵션을 달아 실행 시
: 지정한 패턴을 포함하지 않는 행을 표시
2-6 설정 파일 fileA가 아닌 선두에 #이 있는 행은 코멘트로 기술되어 있다.
이 파일의 코멘트행의 수를 카운트 하기 위한 command
: $ grep ^# fileA | wc -l (= grep '^#' fileA | wc -l)
2-7 소유자가 root의 프로세스를 검색
: $ pgrep -u root
$ pgrep -U 0
-> pgrep : 현재 실행 중의 프로세스를 조사해 프로세스 ID를 검색
pgrep [옵션] [패턴]
|
|
-t 단말
|
지정한 단말에서 실행되는 프로세스 ID 검색
|
-u euid
|
지정된 실효 유저 ID에 해당하는 프로세스 ID 검색
|
-U uid
|
지정된 실 유저 ID에 해당하는 프로세스 ID 검색
|
2-8 아래의 fileA에 "$ fgrep '.a[^b].a' fileA" (=$ grep -F '.a[^b].a' fileA)의 실행 결과 : .a[^b].a
$ cat fileA
aaaaa
babba
.a[^b].a
-> fgrep : 인수로 지정된 검색 문자열을 기초로 검색
2-9 vi 화면을 1 화면을 진행하는 키 : [Ctrl]+f
-> [Ctrl]+f : 한 화면 후
[Ctrl]+b : 한 화면 전
2-10 vi 에디터에서 편집 중 내용을 전부 파기하고 종료 : [:q!]
보존
|
:w
|
파일명을 변경 X 그대로 보존
|
:w!
|
파일명을 변경 X 강제로 보존
|
|
:w 파일명
|
파일명을 변경 O 보존
|
|
종료
|
:q
|
파일 보존 X 종료
|
:q!
|
파일의 내용에 변경이 있어도 보존 X 강제적 종료
|
|
보존하고 종료
|
:wq
|
보존, 종료 동시에 진행 (=ZZ)
|
:wq!
|
강제적 보존, 종료
|
|
:wq! 파일명
|
파일명을 변경하고 보존, 종료
|
|
기타
|
: ! ls -l
|
vi에서 command 실행
|
: e!
|
편집 내용 파기하고 파일을 다시 읽어들임
|
2-11 vi에서 편집중인 내용을 보존하고 종료
: esc ZZ (=esc :wq)
esc :wq!
2-12 vi 실행 중 :w! 입력 후 -> 권한 X 書き込みX
vi에서 편집중위 파일 myfile의 파미션을 보는 command
: [:! ls -l myfile]
2-13 vi의 command 모드에서 A라고 입력 한 후, b라고 입력 했을 때
: 커서에 있는 행의 마지막에 b가 추가 된다
-> command 모드에서 A : 커서가 있는 행의 끝에 입력
i
|
커서 전에 문자를 도입
|
a
|
커서 후에 문자를 도입
|
o
|
커서 행의 밑에 새로운 행 작성
|
I
|
커서 행의 선두에 문자를 도입
|
A
|
커서 행의 끝에 문자를 도입
|
O
|
커서 행의 위에 행을 작성
|
2-14 vi에서 파일을 편집 중, 현재 커서에 있는 행과 거기서 16번째 행까지 즉 합계 17행을 삭제 : 17dd
x
|
커서상의 1문자 삭제
|
dw
|
커서로부터 다음의 단어를 삭제
|
홈dd
|
커서 행 삭제
|
nx
|
커서에서 오른쪽에 n문자 삭제
|
D
|
커서에서 행의 마지막 삭제
|
ndd
|
커서에서 n행 삭제
|
dG
|
커서에서 마지막 행까지 삭제
|
dH
|
화면의 1행번째부터 커서행까지 삭제
|
yy
|
커서 행 복사
|
yw
|
단어 복사
|
P
|
커서 행 위의 행에 붙이기
|
p
|
커서 행 아래의 행에 붙이기
|
2-15 vi 에디터 파일을 편집 중, 2행을 잘라내고 몇 행 이동 후,
커서 행 밑에 붙이는 경우 : p
2-16 파일의 맨 앞에서 yuko라는 문자열을 검색 : /yuko
?문자열
|
현재 커서 위치로부터 파일 선두에 검색
|
/문자열
|
현재 커서 위치로부터 파일 뒤에 검색
|
n
|
다음을 검색
|
N
|
전을 검색
|
취소를 행하는 vi command
|
|
u
|
마지막에 실행 한 편집을 취소
|
.
|
마지막에 실행한 편집을 반복
|
옵션 기능 설정, 삭제를 행하는 vi command
|
|
:set 옵션
|
옵션 설정
|
:set no 옵션
|
옵션 삭제
|
number
|
행 번호 표시
|
ignorecase
|
대문자, 소문자 구별 X
|
list
|
탭이나 행끝문자 등 통상 표시 되지 않는 문자를 표시
|
all
|
옵션 전부 표시
|
2-17 bash command 행 에디터는 emacs キーストローク를 인식한다.
로그인 후 bash가 vi의 キーストローク를 인식하도록 초기화 파일에 기술
: set -o vi
-> Linux 텍스트 에디터 : vi, emacs
1. vi 모드에 설정하는 경우 : set -o vi
2. emacs 모드에 설정하는 경우 : set -o emacs