[공부] 프로그래밍/Linux

LPIC level 1 101 공부 - 2장 정리 (정규표현과 vi에디터)

woodisco 2023. 9. 9. 09:42

 

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