[Linux] 문서 편집

IkSun·2023년 4월 14일

리눅스실습

목록 보기
3/14
post-thumbnail

학습목표

  • 리눅스에서 사용하는 편집기의 종류를 알아본다
  • 대표적인 화면 편집기인 vi 를 사용할 수 있다.
  • vi 의 환경 설정을 할 수 있다.

⏹ 리눅스의 문서 편집기

  • GUI 형 편집기
  • 터미널에서 사용할 수 있는 편집기
  • 화면 단위 편집기 : vi, emacs

모드형과 비모드형 편집기

1) 모드형(vi) : 입력 모드와 명령 모드를 구분

  • 입력 모드 : 텍스트를 입력할 수 있는 모드
  • 명령 모드 : 텍스트 수정/삭제/복사/붙이기 등 편집 모드

2) 비모드형(메모장) : 모드 구분이 없음 : 한글, 워드 등

  • alt, ctrl, shift 등 특수 키를 이용하여 편집 명령 수행

⏹ vi 사용법

vi 시작과 종료

vi text.txt #text.txt 라는 파일이 열린다. 이 파일이 없으면 빈 파일이 열린다.
vi  # 빈 파일이 열리고, 나중에 파일명을 정할 수 있다.
모드명령키기능
:qvi 에서 작업한 것이 없을 때 그냥 종료한다.
마지막 행 모드:q!작업한 내용을 저장하지 않고 종료한다.
:w 파일명작업한 내용을 저장만 한다. 파일명을 저장하면 다른 파일로 저장한다.
:wq, :wq!작업한 내용을 저장하고 vi 를 종료한다.
명령모드ZZ (shift+zz)작업한 내용을 종료하고 vi 를 종료한다.

vi 모드 전환

  • 명령 모드 -> 입력 모드 전환
명령키기능
i현재 커서 자리에 입력한다.
a현재 커서 다음 자리에 입력한다.
o커서가 위치한 행의 다음 행에 입력한다.
I(대문자 i)커서가 위치한 행의 첫 칼럼으로 이동하여 입력한다.
A커서가 위치한 행의 마지막 칼럼으로 이동하여 입력한다.
O커서가 위치한 행의 이전 행에 입력한다.
  • 입력 모드 -> 명령 모드 전환 : Esc

❖ i 명령키를 사용해 입력 모드로 전환하기

내용을 작성하고 Enter키를 누르면 다음 행으로 이동한다.

Esc 키를 누르면 명령 모드로 전환

ubuntu linux study
I like linux_

명령 모드로 전환되고 커서가 x 위로 이동한다.

ubuntu linux study
I like linux

커서가 마지막 글자인 x 에 있을 때 i 키를 누르고 'ubuntu' 를 입력할 경우
커서가 u 위로 이동한다.

ubuntu linux study
I like linu ubuntux

커서가 u에 있을 때 a키를 누르고 'linu' 를 입력할 경우, 커서가 u 위로 이동한다.

ubuntu linux study
I like linu ubuntu linux

명령모드에서 o 를 입력하면 입력모드로 전환되고 커서가 아래 행으로 이동한다

ubuntu linux study
I like linu ubuntu linux
_

커서 이동하기

  • 커서 이동 명령키
명령키기능
k / j커서를 한 행 위/아래로 이동한다.
l / h커서를 한 글자 오른쪽 / 왼쪽으로 이동한다.
^ 또는 0 / $커서를 현재 행의 처음 / 마지막으로 이동한다.
- / + 또는 Enter커서를 앞 / 다음 행의 처음으로 이동한다.
H / M / L커서를 화면의 맨 위 / 중간 / 맨 아래 행으로 이동한다.
w / e커서를 다음 단어의 처음 / 마지막 글자로 이동한다.
b커서를 앞 단어의 첫 글자로 이동한다.

화면 이동하기

  • 화면 이동 명령키
기존 명령키기능추가 명령키
^u(ctrl+u)반 화면 위로 이동한다.
^d(ctrl+d)반 화면 아래로 이동한다.
^b(ctrl+b)한 화면 위로 이동한다.Page Up
^f(ctrl+f)한 화면 아래로 이동한다.Page Down
^y(ctrl+y)화면을 한 행만 위로 이동한다.
^e(ctrl+e)화면을 한 행만 아래로 이동한다.

특정 행으로 바로 이동하기

  • 특정 행으로 바로 이동하는 명령키
명령키기능
G (shift + g)파일의 마지막 행으로 커서가 이동한다.
행 번호 G(shift + g)지정한 행번호로 커서가 이동한다.
:행번호지정한 행 번호로 커서가 이동한다 (마지막 행 모드).
:$파일의 마지막 행으로 커서가 이동한다 (마지막 행 모드).

내용 수정하기

  • 내용 수정 명령키
명령키기능
r커서가 위치한 글자를 다른 글자로 수정한다
cw, #cw커서 위치부터 현재 단어의 끝까지 수정한다.
#에는 수정할 단어의 수를 지정한다.
예를 들어 3cw 는 커서 위치부터 3 단어를 수정한다.
s, #s커서 위치부터 Esc를 입력할 때까지 수정한다.
#에는 수정할 글자의 수를 지정한다.
예를 들어 5s 는 커서 위치부터 5 글자를 수정한다.
cc커서가 위치한 행의 내용을 모두 수정한다.
C커서 위치부터 행의 끝까지 수정한다.

❖ #### 수정하기 실습

한 글자 수정하기 : r

  • r 명령키로 글자를 수정한다 (ㅣ -> w)

ubuntu winux study
I like linu ubuntu linux

단어 수정하기 : cw, #s 명령키

  • winux 의 w 에 커서를 두고 cw 또는 5s 를 입력하여 수정 상태로 바꾸고 editor 입력후 Esc 키 입력

ubuntu _ study
I like linu ubuntu linux

ubuntu editor study
I like linu ubuntu linux


행 단위 수정하기 : C, cc 명령키

  • 커서의 위치부터 행의 끝까지 수정 : C 명령키

ubuntu editor study
I like linu ubuntu linux
  • 현재 행의 모든 내용 삭제하고 다시 작성 : cc 명령키
    _
    I like linu ubuntu linux

내용 삭제

  • 내용 삭제 명령키
명령키기능
x, #x커서 위치의 글자를 삭제한다. #에는 삭제할 글자 수를 지정한다.
dw, #dw커서 위치의 단어를 삭제한다. #에는 삭제할 단어 수를 지정한다.
dd, #dd커서 위치의 행를 삭제한다. #에는 삭제할 행의 수를 지정한다.
D(shift+d)커서 위치부터 행의 끝까지 삭제한다.

글자 삭제

  • x 명령키로 l 삭제

ubuntu editor vi study
I like linu ubuntu linux

ubuntu editor vi study
I like inu ubuntu linux

여러 글자 삭제

  • dw 명령키로 inu 삭제

ubuntu editor vi study
I like ubuntu linux

  • 3x 로 inu 삭제

ubuntu editor vi study
I like _ubuntu linux

행 삭제

  • 커서 위치부터 행의 끝까지 삭제 : D

ubuntu editor vi study
I like _

  • 행 전체 삭제 : dd

ubuntu editor vi study
_

명령 취소

  • 이전 명령 취소 명령키
명령키기능
u명령을 취소한다.
U해당 행에서 한 모든 명령을 취소한다.
:e!마지막으로 저장한 내용 이후의 것을 버리고 새로 작업한다.

따라해보기

  1. vi 로 새로운 파일인 exec.txt 파일을 연다
  2. i를 입력하여 입력 모드로 전환하고 내용을 입력
  3. Esc 키를 입력하여 명령모드로 전환하고 :w 명령으로 파일 내용을 저장

  1. 커서를 3행의 beginner 로 이동 : 3G(3 누르고 G),I 또는 w

  1. beginner 를 expert 로 수정 : b(4번 누르면 단어의 첫글자씩 다음으로 이동)로 커서를 움직이고 cw 또는 8s
  2. 명령모드로 바꾸고 - 명령키로 2행의 첫 글자인 N 으로 이동

  1. w 명령키로 커서를 meet로 이동하고, 단어 meet 를 dw 명령키로 삭제

  1. 단어 y부터 행의 끝까지 D 명령키로 삭제

  1. U 명령키로 2행에서 한 모든 삭제를 취소

  1. :wq 명령으로 파일 내용을 저장하고 종료

복사 및 잘라 붙이기

  • 복사하기, 잘라내기, 붙이기 명령키
명령키기능
yy, #yy커서가 위치한 행을 복사한다. #에는 복사할 행의 수를 지정한다.
p커서가 위치한 행의 아래쪽에 붙인다.
P커서가 위치한 행의 위쪽에 붙인다.
dd, #dd커서가 위치한 행을 잘라둔다. 삭제와 같은 기능이다. #에는 잘라둘 행의 수를 지정한다.

test.txt 파일 열기

1) 2yy 명령키로 두 행을 모두 복사
2) 아래 행으로 이동하여 p 명령어로 붙이기

1) dd 로 3행 잘라내기

2) 커서를 2행으로 이동하여 P 명령어키로 붙이기

네임드 버퍼 사용하기

1) 언네임드 버퍼 : 이름을 붙이지 않은 버퍼
2) 네임드 버퍼 : 이름을 붙여서 사용할 수 았는 버퍼(문자 또는 숫자)

  • 네임드 버퍼 : "a. "b, "c, ... , "z
  • 숫자 버퍼 : "1, "2, ..., "9

버퍼에 특성상, 한번에 하나의 내용밖에 저장할 수 없기때문에 불편한 점이 존재한다.
이를 보완하기 위하여 VI 에서는 사용자가 직접 정의한 버퍼(ex: 숫자버퍼, 네임드 버퍼) 를 사용할 수 있게 함.
네임드 버퍼 : (single letter)yy → single letter example : “a , “b , “c , “d ….
숫자 버퍼 : (single digit)yy → single digit example : “1 , “2 , “3 , “4 …
“ayy “a3yy “a1,5yy

2행을 잘라서 "a 버퍼에 저장 -> "add

2행을 잘라서 "b 에 저장 -> "bdd

① 커서를 1행으로 이동

② "b 버퍼의 내용을 1행 위 행에 붙여넣기 : "bP

③ "a 버퍼의 내용을 1행 아래 행에 붙여넣기 : "ap

마지막 행 모드에서 복사하기, 잘라내기, 붙이기

  • : 을 입력하여 마지막 행 모드로 전환
  • 범위 지정하기
  • 범위 지정 명령키
명령키기능
1, $ 또는 %1행부터 마지막 행까지 지정한다.
1,.1행부터 커서가 있는 행까지 지정한다.
.,$커서가 있는 행부터 마지막 행까지 지정한다.
,-3현재 행과 이전 세 행까지(총 네 행) 지정한다.
10, 2010부터 20행까지 지정한다.
  • 명령키에서 여러 행을 지정하는 경우, 숫자와 숫자 사이의 쉼표(,) 는 띄어쓰기 하지 않는다.
  • 마지막 행 모드에서의 복사하기, 잘라내기, 붙이기 명령키
명령키기능
:#y#로 지정한 행을 복사한다. 예를 들면 3y는 세 번째 행을 복사한다.
: <범위>y범위로 지정한 행을 복사한다. 예를 들면 2,4y 는 2~4 행을 복사한다.
:#d#로 지정한 행을 잘라낸다(삭제). 예를 들면 3d는 세 번째 행을 잘라낸다.
: <범위>d범위로 지정한 행을 잘라낸다(삭제). 예를 들면 1,4d 는 1~4 행을 잘라낸다.
:pu현재 행 다음에 버퍼의 내용을 붙인다.
:#pu#로 지정한 행 다음에 버퍼의 내용을 붙인다. 에를 들면 4pu 와 같이 지정한다.

현재 커서는 2행에 위치

2행, 3행 잘라내기 -> :2,3d
2행 다음에 붙이기 -> :2pu

1,2행 복사하기 -> :1,2y
4행 다음에 붙이기 -> :4pu

검색하기

  • 검색 명령키
명령키기능
/문자열문자열 아래 방향으로 검색한다.
?문자열문자열 위 방향으로 검색한다.
n원래 찾던 방향으로 다음 문자열을 검색한다.
N역방향으로 다음 문자열을 검색한다.

① 커서는 6행에 위치
② 검색하려고 /을 입력하면 커서가 마지막 행으로 이동

③ 검색할 문자열인 'ubuntu' 를 입력

④ Enter 를 누르면 6행이 파일의 마지막 행이므로 'search hit BOTTOM, continuung at TOP' 이라는 메세지를 출력
⑤ 3행의 ubuntu 로 커서 이동

계속 ubuntu 를 검색하려고 n을 입력하면 4향의 ubuntu로 커서가 이동

바꾸기

  • 바꾸기 명령키
명령키기능
:s/문자열1/문자열2/커서가 위치한 행에서 첫 번째로 나오는 문자열1 을 문자열2로 바꾼다.
:%s/문자열1/문자열2/g파일 전체에서 모든 문자열1 을 문자열2 로 바꾼다
:<범위>s/문자열1/문자열2/범위 내 모든 각 행에서 첫 번째로 나오는 문자열1 을 찾아 문자열2로 바꾼다.
:<범위>s/문자열1/문자열2/g범위 내 모든 행에서 문자열1 을 문자열2로 바꾼다.
:<범위>s/문자열1/문자열2/gc범위 내 모든 행에서 문자열1 을 문자열2로 바꿀 때 수정할지 여부를 묻는다
  • 1행의 like 를 LIKE 로 바꾸기 -> :s/like/LIKE/

  • 3,4 행의 editor 를 ubunut로 바꾸기 -> :3,4s/editor/ubuntu/

  • 3행 - :s/ubuntu/UBUNTU/
  • 4행 - :s/ubuntu/UBUNTU/g

  • like 전체를 LIKE 로 바꾸기 -> :%s/like/LIKE/g

따라해보기

파일 읽어오기, 여러 파일 편집하기

  • 파일 관련 명령키
명령키기능
:r 파일지정한 파일을 읽어들여 현재 커서 위치에 삽입한다.
:e 파일지정한 파일로 전환한다(기존 파일을 :w 로 저장한 뒤에 실행해야한다).
:nvi 시작 시 여러 파일을 지정했을 경우 다음 파일로 작업을 이동한다.

vi 에서 셸 명령 사용하기

  • 셸 명령 실행 명령키
명령키기능
:! 셸 명령vi 작업을 잠시 중단하고 셸 명령을 실행한다 (vi 로 돌아오면 Enter 를 누른다).
:shvi 를 잠시 빠져나가서 셸 명령을 실행한다 (vi 로 돌아오려면 exit 명령을 입력한다).

기타 명령키

  • 기타 명령키
명령키기능
ctrl + l(소문자 L)현재 화면을 다시 출력한다.
ctrl + g현재 커서 위치의 행 번호를 마지막 행에 출력한다.
shift + j(대문자 J)현재 행과 아래 행을 연결하여 한 행으로 만든다.
.(마침표)바로 직전에 했던 명령을 반복한다.
~(틸드)커서 위치의 글자를 대문자나 소문자로 바꾼다.

vi 환경 설정

set 명령과 옵션기능
set nu파일 내용의 각 행에 행 번호를 표시한다(보이기만 할 뿐 저장되지는 않는다).
set nonu행 번호를 감춘다.
set list눈에 보이지 않는 특수문자를 표시한다(tab: ^, eol: $ 등).
set nolist특수문자를 감춘다.
set showmode현재 모드를 표시한다.
set noshowmode현재 모드를 감춘다.
setset 으로 설정한 모든 vi 환경 설정 값을 출력한다.
set all모든 vi 환경 변수와 현재 값을 출력한다.

과제

profile
공부한 것 기록용

0개의 댓글