- 유닉스 편집행 단위 편집기(라인편집기) · ed 유닉스 초기에 사용 지금은 거의 사용하지 않음
- · 단독으로 사용하기보다는 vi와 연결하여 사용
- · sed: 스트림 편집 지시된 명령에 따라 파일의 내용을 일괄적으로 변경하고 출력 쉘 스크립트에서 가져온 파일을 편집할 때 사용
- 화면 단위 편집기 vi (visualeditor) 모든 UNIX에서 사용 가능 (ex 기반)
- 모드형 명령 모드에서 입력한 키는 명령으로 간주 입력 모드에서 입력한 키는 데이터로 간주 모드를 전환하기 위한 특수 키가 있다.
- 비모드형 입력한 모든 키는 데이터로 간주 명령은 특수키(Ctrl, Alt 등)와 일반키의 조합으로 구성된다.
- 2.vi 사용방법
파일 내용 잘못 수정 시 버퍼 내용 무시 작업, 취소 기능 제공
vi시작 vi새파일시작파일저장했을때이름지정
vi 파일의 이름 지정한 이름이 없으면 새 파일 생성 지정한 이름이 있으면 기존 파일의 열기
입력명령 입력명령(커맨드 모드→입력 모드) 명룡기 수행 작업 i커서 앞에 삽입 [insert] a 어른이 되어서 후에 삽입 [append]o, 현재 주는 다음에 삽입 I 현재 하는 첫 칸 영화제 전에 텍스트 입력 A 현재, 줄의 끝에 텍스트 입력 O 현재, 줄의 선두에 삽입.입력이 끝나면 “입력모드”에서 “커맨드 모드”로 돌아가야 함!
(ESC키)
저장과 종료 명령 저장 명령을 저장하거나 종료하려면 “명령 모드”로 돌아가야 한다.
면 료은키 수행 작업:w”현재의 파일명에 파일 저장:w파일명”지정한 파일 이름으로 파일 저장 종료 명령(저장 후 종료 또는 그대로 종료)면 료은키 수행 작업:q”작업 내용을 저장하면 vi의 종료:q!
”작업 내용을 보존하지 않고, vi의 종료:wq”작업 내용을 보존하고 vi의 종료:wq파일명”작업 내용을 지정한 파일 이름에 저장한 뒤 vi의 종료 ZZ[shift-zz]”작업 내용을 보존하고 vi의 종료 커서 이동 명령 화살표 이용 H, J, K, L키 이용의 이동 명령어한 행 위 k, 일언 지하 j 있다 한 문자 오른쪽 l한일자 왼쪽 h들의 시작)또는 O행의 마지막$, 이전 행의 처음 다음 행의 처음+또는”현재 화면에서 커서 이동 명령 키키 화면 맨 위로 H키 화면의 중간에 M키 화면 하단에 L다음의 단어 첫머리의 글글씨에서 w이전 단어의 첫 글자에서 b다음 단어의 끝 글자로 e지정한 장소에 이동이 동묘은료은키쥬루 번호 n의 위치에:n또는 nG파일 맨 뒷자리에 이동::$또는 Gn열 만큼 향후, 이동 n+n열 만큼 뒤로 이동 n-현재, 문장의 처음에[다음 문장의 처음이자 현재 문단의 처음에[다음 문단의 처음 화면 이동 이동묘은료은키발 화면 위에. u클래스의 화면 아래에^d한 화면 위에^b화면 아래에. f한줄만 위로^y한줄만 아래로^e파일 내용을 다시 출력^l의 내용 제거 및 취소(명령 모드로 동작)명령어의 삭제 대상 수행 작업 x,#x문자의 커서 위치의 문자 삭제 dw#dw의 단어의 커서 위치의 단어 삭제 dd,#dd열의 커서 위치의 주는 삭제 D(shift-d)줄의 일부 커서 위치에서 주는 마지막까지삭제u
방금 수행한 명령 취소 U와 해당 열의 모든 편집 취소:e!
파일의 마지막 저장 후 모든 편집 취소 #위치에 숫자를 넣으면 해당 숫자만큼 작업의 반복.
내용 수정 (명령 모드에서 동작) 키 수정 대상 수행 작업 r문자 현재 커서 위치의 일자 변경 R자 열 현재 커서에서 ESC 입력까지 변경 cw단어의 커서 위치에서 현재 단어의 끝까지 내용 변경 cc 열, 커서가 위치한 열의 내용 변경 s, #s 문자열 현재 커서 위치의 문자를 ESC 키 입력 때까지 내용 변경 C와 일부 커서 위치에서 주는 마지막까지 내용 변경 r 명령 외에는 자동으로 입력 모드로 전환.
3.vi의 고급 편집할 복사, 잘라내기, 붙여넣기 명령어 모드에서 동작 명령어 수행 작업 yy, #yy 현재 행을 버퍼에 복사p 현재 행 다음에 버퍼 내용 삽입 P 현재 행 위쪽에 버퍼 내용 삽입 dd, #d 현재 행 잘라내기(= 행 삭제), 버퍼 사용 버퍼 ▶ vi는 작업 내용을 버퍼에 저장-실행 취소 가능 ▶ 복사, 잘라내기에 사용
버퍼 종류 ▶ Unnamed buffer (무명 버퍼) – 한 번에 하나의 내용만 저장 ▶ Named buffers (이름 있는 버퍼) ▶ Numbered buffers (번호가 있는 버퍼)
범위 지정 방법 ▶ 편집할 범위를 지정하는 방법 ▶ 마지막 줄 모드에서 사용 ▶ “: 범위 편집 명령” 형태로 사용 범위 의미 1, $ 첫 번째 줄에서 마지막 줄까지 (파일 내의 모든 주다) 1, 첫 줄에서 현재 줄까지. , $ 현재 줄에서 마지막 줄까지. , – 2 현재 열에서 전면에 두 번째 주는 10, 2010 번째 줄에서 20번째 줄까지 마지막 줄 모드 편집 명령 실행 작업: #y #에 지정한 줄 복사: <범위y>열 탐색. 문자열 현재 위치에서 파일 후방으로 문자열 탐색 n 다음 문자열 탐색 N 역방향으로 문자열 탐색 전환 기능(마지막 행 모드에서 사용) 명령어 수행 작업: s/문자열 1/문자열 2/커서가 위치한 열에서만 문자열 2로 바꾼다: <범위> s/문자열 1/문자열 2/<범위> 내의 모든 행에 대해 각 행의 첫 번째 문자열 1을 찾아 문자열 2로 바꾼다: <범위> s/문자열 2/g <범위> 내의 모든 문자열 1을 문자열 2로 바꾼다:<범위>(vi로 돌아갈 때 : exit) ▶ 알아두면 유용한 명령 키 명령 수행 : f파일명 파일명을 지정한 이름으로 변경 : w%.old 현재 파일을 .old 이름으로 저장해 놓을 때 ^g 기본적인 파일 정보 출력 (파일명, 라인 수 등) J 현재 행과 다음 행에 연결.직전에 실행한 명령 재실행 ~ 현재 커서 위치의 한 글자를 소문자 혹은 대문자로 전환하여 비주얼 모드 ▶ 편집할 부분을 선택하면 블록으로 표시하는 모드 ▶ 블록이 선택된 후 편집 키 사용 가능 ▶ vim으로 추가된 기능 구분 명령 키 기능 비주얼 v 현재 커서 위치에서 블록 지정 비주얼 블록 Ctrl + v 현재 커서 위치의 열 단위로 블록 지정 04. 환경설정 명령어 수행 작업: setnu 파일 내용의 각 열 번호 표시: setnow 라인 번호 취소: setnow