>운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux 명령에서 vi 요약 및 공유(컬렉션)

Linux 명령에서 vi 요약 및 공유(컬렉션)

黄舟
黄舟원래의
2017-07-24 15:02:512070검색

이 글은 주로 Linux 파일 편집 명령의 세부 배열(요약)을 소개합니다. 편집자는 꽤 좋다고 생각하므로 지금 공유하고 참고용으로 제공하겠습니다. 에디터를 따라가서 살펴보겠습니다.

저는 Linux가 처음입니다. 며칠 전에 Alibaba Cloud 서버를 신청했습니다. jdk 환경 변수를 구성할 때 편집이 필요합니다. 파일.

vi 명령으로 파일을 편집하는데 바이두에서 검색했는데 답변이 포괄적이지 않은 경우가 많아 파일을 편집하는데 시간이 좀 걸렸습니다.

여기 블로거가 편집하여 모든 사람과 공유했습니다.

1. vi 편집기에는 3가지 기본 작업 모드가 있습니다.

우선 vi 편집기에는 3가지 기본 작업 모드, 즉 명령 모드, 텍스트 입력 모드, 마지막 줄 모드가 있다는 것을 알아야 합니다.

첫 번째: 명령줄 모드: 이 모드는 vi 편집기에 들어간 후 기본 모드입니다. 언제든지 사용자가 어떤 모드에 있든 ESC 키를 누르면 명령 모드로 들어갈 수 있습니다. 이 모드에서 사용자는 vi 명령을 입력하고 자신의 문서를 관리할 수 있습니다. 이때 키보드에서 입력된 모든 문자는 편집 명령으로 해석됩니다. 입력한 문자가 유효한 vi 명령인 경우 vi는 사용자 명령을 수락한 후 해당 작업을 완료합니다. 그러나 입력된 명령은 화면에 반영되지 않는다는 점에 유의해야 합니다. 입력한 문자가 vi 명령이 아닌 경우 vi는 경보를 울립니다.

두 번째: 텍스트 입력 모드: 명령 모드에서 명령 i를 입력하고, 명령 a를 추가하고, 명령 o를 열고, 명령 c를 수정하고, 명령 r을 대체하거나, 명령 s를 대체하여 텍스트 입력 모드로 들어갑니다. 이 모드에서는 사용자가 입력한 모든 문자가 vi에 의해 파일 내용으로 보호되고 화면에 표시됩니다. 문자 입력 중 명령 모드로 돌아가려면 ESC 키를 누르면 됩니다.

세 번째: 마지막 줄 모드: 마지막 줄 모드는 ex 탈출 모드라고도 합니다. 명령 모드에서 사용자는 ":" 키를 눌러 마지막 줄 모드로 들어갑니다. 이때 vi는 표시 창의 마지막 줄(보통 화면의 마지막 줄)에 지정자로 ":"를 표시합니다. 마지막 라인 모드의 사용자가 명령을 입력할 때까지 기다립니다. 대부분의 파일 관리 명령은 이 모드에서 실행됩니다(예: 편집 버퍼의 내용을 파일에 쓰기 등). 마지막 명령이 실행된 후 vi는 자동으로 명령 모드로 돌아갑니다. 명령 모드에서 편집 모드로 전환하려면 a 또는 i를 입력하면 됩니다. 텍스트 모드에서 돌아가려면 ESC를 누르세요. 마지막 줄 모드로 전환하려면 명령 모드에서 ":"를 입력한 후 명령을 입력하세요.

요약하자면 일반적으로 명령을 사용하여 파일을 열 때 명령 모드로 들어갑니다. 명령 모드에서는 문자 입력 모드와 마지막 행 모드로 전환할 수 있지만, 문자 입력 모드와 마지막 행 모드를 직접 전환할 수는 없으므로, 문자 입력 모드를 마지막 행 모드로 전환하려면 명령으로 복귀해야 합니다. 먼저 모드를 다시 전환하고 그 반대로 전환하세요.

또한 텍스트 입력 모드에서 키보드 입력으로 텍스트를 편집하거나 명령 모드에서 vi 명령을 사용하여 편집 효과를 얻을 수 있습니다.

시연 예

먼저 vi filename 명령을 사용하여 파일을 엽니다. 이때 명령 모드로 들어갑니다.

다음으로 i를 누른 다음 키보드로 내용을 입력하고 씁니다.

그런 다음 ESC를 눌러 명령 모드로 다시 들어가세요.

명령 모드에서 다음을 누르면 마지막 줄 모드로 들어갑니다.

wq!를 입력한 다음 Enter를 눌러 강제 저장하고 종료합니다.

다음에 해당 파일을 열면(less filename 명령으로 열 수 있음) 내용이 변경된 것을 볼 수 있습니다.

추가:

(1) 마지막 줄 모드에서: q! [저장하지 않고 강제 종료] q [저장하지 않고 종료] wq [종료하고 저장한 후에 하나 추가할 수도 있습니다! ]

(2) 바로 저장하고 종료하고 싶지 않다면 명령 모드에서 “ctrl+z” 단축키를 사용하거나 “shift” 키를 누른 상태에서 z 두 개를 입력하여 종료할 수 있습니다.

추가 명령

vi 입력 명령

vi 파일 이름: 새 파일을 열거나 만들고 첫 번째 줄의 시작 부분에 커서를 놓습니다.
vi +n 파일 이름: 파일을 열고 첫 번째 줄의 시작 부분에 커서 n 줄의 시작 부분
vi + 파일 이름: 파일을 열고 마지막 줄의 시작 부분에 커서를 놓습니다.
vi +/패턴 파일 이름: 파일을 열고 커서를 다음 위치에 놓습니다. 첫 번째 문자열 일치 패턴
vi -r filename: at 지난번 vi로 편집할 때 시스템이 충돌했습니다. 파일 이름 복원
vi 파일 이름….filename: 여러 파일을 열고 순서대로 편집

화면 스크롤 명령

Ctrl +u: 파일 시작 부분으로 반 화면 스크롤
Ctrl+d: 파일 끝 부분으로 화면 반 스크롤
Ctrl+f: 파일 끝 부분으로 한 화면 스크롤
Ctrl+b; 파일 시작 부분으로
nz: n번째 줄을 화면 위쪽으로 스크롤합니다. n을 지정하지 않으면 현재 줄이 화면 위쪽으로 스크롤됩니다.

텍스트 명령 삽입

i: 커서 앞
I: 현재 줄의 시작 부분
a: 커서 뒤
A: 현재 줄의 끝
o: 현재 줄 아래에 새 줄 열기
O: 새 줄 열기 현재 줄 위
r: 현재 문자 바꾸기
R: ESC 키를 누를 때까지 현재 문자와 그 이후의 문자 바꾸기
s: 현재 커서 위치부터 시작하여 지정된 수의 문자를 입력한 텍스트로 바꾸기
S: 지정된 줄 수를 삭제하고 모두로 바꿉니다. 대신 텍스트 입력
ncw 또는 nCW: 지정된 단어 수 수정
nCC: 지정된 줄 수 수정

삭제 명령

ndw 또는 ndW: n- 삭제 커서부터 시작하여 다음 1단어
do : 줄의 시작 부분까지 삭제
d$: 줄의 끝까지 삭제
ndd: 현재 줄과 그 뒤의 n-1 줄 삭제
x 또는 u: 삭제 입력 모드에서 입력한 텍스트

검색 및 바꾸기 명령

/pattern: 커서 시작부터 파일 끝까지 패턴 검색

?pattern: 커서 시작부터 파일 끝까지 패턴 검색 파일의 시작
n: In 같은 방향으로 마지막 검색 명령 반복
N: 반대 방향으로 마지막 검색 명령 반복
: s/p1/p2/g: 현재 줄의 모든 p1을 p2로 대체
: n1,n2s/p1/p2/g: n1~n2 행의 모든 ​​p1을 p2
로 대체: g/p1/s//p2/g: 파일의 모든 p1을 p2

옵션 설정으로 대체

all: 모든 옵션 나열 설정

term: 터미널 유형 설정
ignorance: 검색 시 대소문자 무시
list: 탭 정지(Ctrl+I) 및 줄 끝 플래그($) 표시
number: 줄 번호 표시
Report: 줄 단위로 표시 명령 수정 횟수
간결함: 간략한 경고 메시지 표시
warn: 다른 파일로 전환 시 현재 파일이 저장되지 않으면 NO write 메시지 표시
nomagic: 특수 문자 사용 허용 검색 모드에서 앞에 ""가 없는 단어 문자
nowrapscan: vi가 파일의 양쪽 끝에서 검색하고 반대쪽 끝에서 시작하는 것을 금지합니다.
mesg: vi가 write를 사용하여 다른 사용자가 작성한 정보를 자신의 터미널에 표시하도록 허용합니다.

마지막 줄 모드 명령

: n1, n2 co n3: n1 줄에서 n2 줄 사이의 내용을 n3 줄의 맨 아래로 복사합니다.

: n1,n2 m n3: n1 줄에서 n2 줄 사이의 내용을 다음으로 이동합니다. 줄 맨 아래 n3
: n1, n2 d: n1~n2 줄 사이 내용 삭제
: w: 현재 파일 저장
: e filename: 편집을 위해 파일 파일 이름 열기
: x: 현재 파일 저장 및 종료
: q: vi 종료
: q!: 파일을 저장하지 않고 vi 종료
: !command: 쉘 명령 명령 실행
: n1, n2 w!command: 파일의 n1 행에서 n2 행의 내용을 다음과 같이 사용합니다. n1, n2가 지정되지 않은 경우 전체 파일 내용이 명령의 입력으로 사용됨을 나타냅니다.
: r!command: 명령 명령의 출력 결과를 현재 줄에 넣습니다

등록 작업

"?nyy: 현재 행과 그 아래 n행의 내용을 저장하여 등록하시겠습니까? , 여기서 ?는 문자, n은 숫자

"?nyw: 현재 행과 다음 n 단어를 레지스터에 저장합니까?, 여기서 ?는 문자, n은 숫자
"?nyl: 현재 행을 저장하고 다음 n 단어를 레지스터에 저장하고 다음 n 문자를 레지스터에 저장하시겠습니까? , 여기서 ?는 문자이고 n은 숫자입니다.
"?p: 레지스터?의 내용을 꺼내어 커서 위치에 놓습니다. 여기서 ?는 문자나 숫자일 수 있습니다.
ndd: 현재 줄 이동 삭제 아래 총 n줄의 텍스트를 입력하고 삭제된 내용을 삭제 레지스터 1번에 넣습니다.

위 내용은 Linux 명령에서 vi 요약 및 공유(컬렉션)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.