2013년 12월 1일 일요일

[Linux] vi 명령어 요약

1. 시작
2. 종료
3. 시스템이 다운된 후에 되살리기
4. 디스플레이 제어하기
5. 커서 이동
6. 편집 버퍼를 통한 이동
7. 패턴 검색
8. 정규 표현식을 사용하기 위한 특수 기호
9. 줄 번호
10. 삽입
11. 내용 고치기
12. 패턴에 의한 치환
13. 고치기의 취소 또는 반복
14. 줄 길이의 조정
15. 문자 삭제
16. 마지막으로 지운 것 복사하기
17. 여러 줄의 복사와 이동
18. 셸 명령 실행
19. 데이터 읽기
20. 데이터를 처리하기 위한 셸 명령의 사용
21. 데이터 저장하기
22. 편집하고 있는 파일을 바꾸기
23. 약어의 사용


1. 시작

vi file vi를 시작하여 지정한 파일 편집
vi -R file 읽기 전용(read-only) 편집기로서 vi를 시작하여 지정한 파일 편집
view file 읽기 전용(read-only) 편집기로서 vi를 시작하여 지정한 파일 편집

2. 종료
zz 데이터를 저장하고 종료
:q! 데이터를 저장하지 않고 종료

3. 시스템이 다운된 후에 되살리기

vi -r 되살릴 수 있는 모든 파일 이름 보여주기
vi -r file vi를 시작하여 지정한 파일 되살리기

4. 디스플레이 제어하기

^L 현재 화면을 다시 디스플레이하기
:set number 내부 줄 번호 디스플레이
:set nonumber 배부 줄 번호 디스플레이 않기

5. 커서 이동

h 커서를 한 칸 왼쪽으로 이동
j 커서를 한 줄 아래로 이동
k 커서를 한 줄 위로 이동
l 커서를 한 칸 오른쪽으로 이동
커서를 한 칸 왼쪽으로 이동
커서를 한 줄 아래로 이동
커서를 한 줄 위로 이동
커서를 한 칸 오른쪽으로 이동
커서를 한 칸 왼쪽으로 이동
커서를 한 칸 오른쪽으로 이동
- 커서를 이전 줄의 처음으로 이동
+ 커서를 다음 줄의 처음으로 이동
커서를 다음 줄의 처음으로 이동
0 커서를 현재 줄의 맨 앞으로 이동
$ 커서를 현재 줄의 맨 끝으로 이동
^ 커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동
w 커서를 다음 단어의 첫 글자로 이동
e 커서를 다음 단어의 끝 글자로 이동
b 커서를 이전 단어의 첫 글자로 이동
W w와 같음(문장 부호 무시)
E e와 같음(문장 부호 무시)
B b와 같음(문장 부호 무시)
( 다음 문장의 처음으로 이동
) 이전 문장의 처음으로 이동
{ 다음 문단의 처음으로 이동
} 이전 문단의 처음으로 이동
H 커서를 화면 맨 위로 이동
M 커서를 중간으로 이동
L 커서를 맨 아래로 이동

6. 편집 버퍼를 통한 이동

^F 한 화면 아래로 이동
^B 한 화면 위로 이동
n^F n화면 아래로 이동
n^B n화면 위로 이동
^D 반 화면 아래로 이동
^U 반 화면 위로 이동
n^D n줄만큼 아래로 이동
n^U n줄만큼 위로 이동

7. 패턴 검색

/rexp 지정된 정규 표현식에 대해 앞으로 이동
/ 이전의 패턴에 대해 앞으로 검색을 반복
?rexp 지정된 정규 표현식에 대해 뒤로 이동
? 이전의 패턴에 대해 뒤로 검색을 반복
n /나 ?명령에 대해 같은 방향으로 반복
N /나 ?명령에 대해 반대 방향으로 반복

8. 정규 표현식을 사용하기 위한 특수 기호

. 뉴라인을 제외한 모든 단일 문자와 대응
* 영 또는 그 이상의 선행 문자와 대응
^ 줄의 시작과 대응
$ 줄의 끝과 대응
\< 단어의 시작과 대응
\> 단어의 끝과 대응
[ ] 묶여진 문자중의 하나와 대응
[^ ] 묶여진 문자를 제외한 아무것하고나 대응
\ 이어지는 기호를 문자 그대로 해석

9. 줄 번호

nG 줄번호 n으로 건너뛰기
1G 편집 버퍼의 첫 줄로 건너뛰기
G 편집 버퍼의 마지막 줄로 건너뛰기
:map g lG g가 lG와 같도록 매크로 정의

10. 삽입

i 입력 모드로 전환, 커서 위치 앞에서 삽입
a 입력 모드로 전환, 커서 위치 뒤에서 삽입
I 입력 모드로 전환, 현재 줄의 앞에 삽입
A 입력 모드로 전환, 현재 줄의 끝에 삽입
o 입력 모드로 전환, 현재 줄의 아래에 전개
O 입력 모드로 전환, 현재 줄의 위에 전개

11. 내용 고치기

r 단지 한 글자만 변경(입력 모드로 바뀌지 않음)
R 입력하는 대로 겹쳐 써서 변경
s 삽입에 의해 한 단어의 변경
C 커서의 위치로부터 줄 끝까지 삽입에 의한 변경
cc 전체 줄을 삽입에 의한 변경
S 전체 줄을 삽입에 의한 변경
cmove 커서부터 move까지 삽입에 의해 변경
~ 대,소문자 바꾸기

12. 패턴에 의한 치환

:s/pattern/replace/ 현재 줄의 치환
:lines/pattern/replace/ 지정한 줄의 치환
:line,,lines/pattern/replace/ 지정한 범위의 치환
:%s/pattern/replace/ 모든 줄의 치환

13. 고치기의 취소 또는 반복

u 편집 버퍼를 수정했던 마지막 명령을 취소
U 현재 줄을 저장
. 편집 버퍼를 수정했던 마지막 명령 반복

14. 줄 길이의 조정

r 문자를 뉴라인으로 변경
J 줄의 결합
:set wm=n 오른쪽으로 n문자 위치에서 자동적으로 줄 나눔

15. 문자 삭제

x 커서가 있는 문자 삭제
X 커서의 왼쪽 문자 삭제
D 커서부터 줄의 끝까지 삭제
dd 현재 줄의 전체 삭제
dmove 커서부터 move까지 삭제
dG 커서부터 편집 버퍼의 끝까지 삭제
d1G 커서부터 편집 버퍼의 맨 앞까지 삭제
:lined 지정한 줄의 삭제
:line, lined 지정한 범위의 삭제

16. 마지막으로 지운 것 복사하기

p 마지막으로 자워진 것을 커서의 뒤/아래에 삽입
P 마지막으로 자워진 것을 커서의 앞/위에 삽입
xp 두 문자를 바꿈
deep 두 단어를 바꿈
ddp 두 줄을 바꿈

17. 여러 줄의 복사와 이동

:linecotarget 지정한 줄을 복사하여 target 줄 밑에 삽입
:line, linecotarget 지정한 범위를 복사하여 target 줄 밑에 삽입
:linemtarget 지정한 줄로 이동하여 target 줄 밑에 삽입
:line, linemtarget 지정한 범위로 이동하여 target 줄 밑에 삽입

18. 셸 명령 실행

:!command vi를 중단하고 지정한 셸 명령을 실행
:!! vi를 중단하고 이전의 셸 명령을 실행
:sh vi를 중단하고 셸을 실행
:!csh vi를 중단하고 새로운 C-셸을 실행

19. 데이터 읽기

:liner file file의 내용을 지정한 줄 다음에 삽입
:r file file의 내용을 현재의 줄 다음에 삽입
:liner !command command의 결과를 지정한 줄 다음에 삽입
:r !command command의 결과를 현재의 줄 다음에 삽입
:r !look pattern 지정한 pattern으로 시작된 단어 삽입

20. 데이터를 처리하기 위한 셸 명령의 사용

n!!command n번 줄에서 command의 실행
!move command 커서부터 move까지 command실행
!move fmt 커서부터 move까지 줄들을 형식 맞추기

21. 데이터 저장하기

:w 원래의 파일로 데이터를 저장
:w file 지정한 파일로 데이터를 저장
:w>> file 지정한 파일에 데이터를 추가

22. 편집하고 있는 파일을 바꾸기

:e file 지정한 파일의 편집
:e! file 지정한 파일의 편집, 자동 점검의 생략

23. 약어의 사용

:ab short long short를 long에 대한 약어로 변경
:ab 현재 약어 목록을 표시
:una short 약어 short를 표시

홈페이지 jQuery 라이브러리에서 CVE-2019-11358 취약점 패치 여부 확인 방법

현재 홈페이지에서 사용 중인 jQuery 라이브러리가 CVE-2019-11358 취약점 패치를 적용했는지 확인하는 방법은 다음과 같습니다. 1. jQuery 버전 확인 홈페이지 소스 코드를 확인하여 jQuery 라이브러리 버전을 직접 확인합니다. 웹 ...