Programming Insights
Linux vi 본문
vi Editor = 리눅스에서 메모장 이라고 생각!

# vi ->빈문서 편집 ( 문서 파일 작업 및 생성)

# vi 편집할 파일명 ->지정한 파일 열고 편집
**vi editor : 문서편집기
명령,실행(EX),입력모드가 있음.
명령모드
-vi의 기본모드
-vi가 처음실행되거나, 입력모드에서 ESC키 누른경우
-커서이동,문자열수정,복사&붙여넣기 등
-엔터키 누 필요 없 이 각각의 명령에 따른 버튼 누르면 바로 실행.
★커서이동 : 텍스트편집기의 방향키라고 생각
h
|
커서를 왼쪽으로 이동
|
j
|
커서를 아래로 이동
|
k
|
커서를 위로 이동
|
l
|
커서를 오른쪽으로 이동
|
★커서이동(단어단위)
W,w
|
다음 단어의 처음으로 이동
|
E,e
|
단어의 끝으로 이동
|
B,b
|
단어의 처음으로 이동
|
소문자 : 공백 및 특수기호를 기준으로 단어인식
※_(언더바)는 글자로본다.
대문자 : 공백만 기준으로 단어인식
★커서이동(행단위)
0(zero)
|
행의 처음으로 이동
|
$
|
행의 마지막으로 이동
|
★
G
|
문서의 마지막으로 이동
|
gg
|
문서의 처음으로 이동
|
★명령모드 -> 입력모드
i
|
현재 커서에서 입력모드로 변경
|
a
|
현재 커서에서 우측으로 한칸 이동 후 입력 모드로 변경
|
o
|
커서 아래에 새로운 행을 추가하고 입력모드로 변경
|
O
|
커서 위에 새로운행을 추가하고 입력모드로 변경
|
★
x
|
커서가 있는 문자 삭제(delete키와 가음)
|
X
|
커서가 있는 앞 문자 삭제(Backspace키)
|
dd
|
현재 커서의 행 삭제
|
숫자 + dd
|
현재커서부터 숫자만큼 행 삭제
ex) 5dd(커서 기준으로 3줄 삭제)
|
yy
|
현재 커서가 있는 라인을 복사
|
숫자 + yy
|
현재 커서부터 숫자만큼의 행을 복사
|
p
|
복사한 내용을 현재 커서 이후에 붙여넣기(커서이후줄)
|
P
|
복사한 내용을 현재 커서 이전에 붙여넣기(커서이전줄)
|
u
|
되돌리기(u는 undo)
|
Ctrl + r
|
앞으로(r은 redo)
|
r
|
한 글자 치환
|
☆
dw : w이동한 만큼 삭제
yw : w이동한 만큼 복사
--------------------------------------------------------------
입력모드
-버퍼에 내용을 입력할 수 있는 모드
-명령상태에서 a, i , o ,O등의 키를 누르면 진입
-왼쪽 하단에 --INSERT--라고 표시됨
--------------------------------------------------------------
EX모드(실행모드) ->실행모드는 무조건 엔터쳐야함 !
esc눌러 명령모드
검색
/Pattern
|
Pattern을 검색
|
?Pattern
|
Pattern을 검색
|
/
패턴이 검색 된 후 n 키를 통해 위 -> 아래 방향으로 계속 찾기
패턴이 검색 된 후 N 키를 통해 아래 -> 위 방향으로 계속 찾기
?
패턴이 검색 된 후 N 키를 통해 위 -> 아래 방향으로 계속 찾기
패턴이 검색 된 후 n 키를 통해 아래 -> 위 방향으로 계속 찾기
치환
:[범위]s/[Old]/[New]/[옵션] Old를 New로 치환
여기서 s는 string
[옵션]은 g만 존재.
g를 쓰면 라인의 모든 부분 변경가능.
한줄에 여러개의 단어가 존재할 경우 다 바꿔준다
g를 쓰지않을경우는
한줄에 여러개의 단어가 있어도 처음 찾은단어만 바꿔줌.
치환법
1)범위 생략
:s/[바꿀대상]/[바꾸고싶은이름]/g
g없을시 : 현재 커서에 있는 줄에서 맨 처음 찾은 것만 치환
g있을시 :현재 커서에 있는 줄에 있는 모든것 치환
2)n
:10s/sam/madal/g
10번째 줄에 있는 "sam"을 "madal"로 치환
3)n,m
:3,10s/sam/madal/g
3번째 줄~10번째까지 "sam" -> "madal"로 치환
4)%(문서전체)
:%s/sam/madal/g
문서 전체에 "sam" -> "madal"로 다 치환
shell 명령어 : 명령어 해석기, 통역사 역할!
:.! [command] : vi를 잠시 중단하고 명령어 수행
:..! [command] : 수행한 명령의 결과를 vi 편집기로 출력
:e [filename]
|
파일열기
|
:enew
|
현재 창을 닫고 빈 문서를 연다
|
:q
|
종료(변경된 내용이 없는 경우)
|
:q!
|
강제 종료(변경된 내용이 있어도 무시)
|
:w
|
현재 파일 저장
|
:w [파일이름]
|
다른이름으로 파일 저장
|
:wq
|
파일 저장 후 종료
|
파일 및 실행 관련
:w >> [filename]
|
filename에 내용추가
ex>
:w >> ./2/txt
|
:f
|
현재 작업중인 파일의 이름과 , 라인수
|
:[n]r[filename]
|
filename 파일의 내용을 현재 편집중인 파일의 n라인 아래부터 삽입
|
:[n]r![command]
|
command 실행결과를 파일을 n 라인 아래부터 삽입
|
ETC
:set nu 줄번호 매김!
**실습**
'Programming > LINUX' 카테고리의 다른 글
Linux 사용자 정보 수정 실습 (0) | 2023.10.03 |
---|---|
Linux 사용자생성,skel (0) | 2023.10.02 |
Linux |(파이프라인),cat기능들,FTP (0) | 2023.10.01 |
Linux 명령어:mkdir,rmdir,rm,touch,alias,cat,head/tail,man --help (0) | 2023.10.01 |
Linux 명령어:ls,cp,mv 옵션들 (0) | 2023.09.30 |