System of Infra/Linux

Linux vi 편집기

2swan 2024. 10. 11. 11:41

 명령 모드

esc로 명령 모드 진입

line 표시 :se nu 행 번호 표시
:se nonu 행 번호 표시 해제
줄 단위 이동 gg : 파일의 가장첫 줄로 이동
G 파일의 가장 마지막 줄로 이동
100G : 100번째 줄로 이동
줄 단위 복사 yy : 커서가 위치한 해당 줄 복사
5 yy : 다섯 개의 줄 복사
붙여넣기 p
삭제 dd : 커서가 위치한 해당 줄 삭제
3 dd : 세 개의 줄 삭제
모든 작업 취소 u
:q! : 편집기에서 빠져나가기
검색 :/Network : 파일에서 Network 문자열 검색
n : 누르면 아래로 검색 결과를 보여 준다
N : 누르면 위로 검색 결과를 보여 준다
커서 이동 방향키 or ajkl
리눅스 종류에 따라 방향키 입력이 불가능한 경우 존재
저장 :wq! 편집내용 저장 후 빠져나가기
명령어 실행 :![명령어] : 편집기를 빠져나가지 않으면서 명령어 실

 

:1s/services/test/

1번째 줄의 services 문자열을 test로 변경

 

:%s/text/services/g

이 파일의 처음부터 끝까지 test 문자열을 services로 변경

 

:1, $s/test/services/g

1번째 줄부터 파일의 끝($s)까지 test 문자열을 services로 변경

 

:1co6

1번째 줄을 6번째 줄로 복사(커서 이동 없이 복사 가능)

 

:1,5co1000

1번째 ~ 5번째 줄까지를 1000번째 줄에 복사

 

:1, 5000d

1번째 ~ 5000번째 줄까지 삭제

 

:!ls -al

편집기 나가지 않고도 ls -al 명령어 실행

 

 

 입력 모드

a 커서 오른쪽에 입력
A 커서 오른쪽, 해당 줄의 맨 끝에서 입력
i 커서 왼쪽에 입력
I 커서 왼쪽, 해당 줄의 맨 앞에서 입력
o 커서 아래 행에 입력
O 커서 윗 행에 입력

 

alias : 명령어를 간소화해 다른 이름(별칭)으로 사용할 수 있도록 하는 명령어

alias rm='rm -i' : rm 명령어 입력 시 rm -i으로 인식하도록 설정

 

영구 등록시(=reboot 시에도 이 alias 설정을 저장하려면) 설정 파일에 등록이 필요

 

현재 로그인되어 있는 쉘에 한정하여 적용하는 경우 ~/.bashsrc, 모든 사용자에게 적용을 하려면 /etc/profile에