새우의 세상사

원문 링크 : 리눅스/유닉스 에디터 'vi' (3) - ex 명령어 익히기


ex 명령어 익히기

ex 명령어의 기본형식

:k,l command m - (범위지정) (명령어) (명령이 수행될 위치)

:k,l command
m
:1,10 co 50 1 줄 부터 10 줄 까지를 50 줄 이후로 복사
:34,50 d 34 줄 부터 50 줄 까지 삭제
  :100,150 m 10 100 줄 부터 150 줄까지를 10 줄 이후로 옮김
  :.,$ d 현재줄부터 끝까지 지우기
  :.,+20 co -4 현재줄부터 20줄을, 4줄 위에 복사하기
  :-,+ t 0 위, 아래로 한줄(총 3줄)씩을, 문서 맨위에 복사하기
  :/pattern/ d pattern 이 들어있는 줄 지우기
  :/pattern/ -nd pattern 이 들어있는 줄로부터 n 번째 윗줄 지우기
  :/pattern/ +nd pattern 이 들어있는 줄로부터 n 번째 아랫줄 지우기
  :/p1/, /p2/ d p1 이 들어있는 줄부터, p2 가 들어있는 줄까지 지우기
  :.,/pa/ m 23 현재줄부터 pa 이 들어있는 줄까지, 23번줄 이후로 옮기기
g 옵션 붙이기 :g/pattern 파일전체에서 마지막으로 pattern 이 쓰여진 줄로 가기
  :g/pattern/ p 파일전체에서 pattern 이 있는줄 보여주기
  :g/pattern/ nu 파일전체에서 patterm 이 있는줄을 번호와 함께 보여주기
  :60,124 g/pa/ p 60,124 줄 사이에서 pa 이 들어있는줄 보여주기
저장 및 종료 :w 저장하기
  :q 종료하기
  :wq 저장하고 종료하기
  :x 저장하고 종료하기 (:wq 와 동일)
  :w! 강제로 저장하기 (read-only 로 열었을경우)
  :q! 편집한 내용을 저장하지 않고 종료하기
  :w new_filename new_filename으로 저장하기
  :w %.new 현재파일 이름에 .new 를 붙여서 새로운 파일로 저장
  :230,$ w filename 230 줄부터 끝줄까지 filename으로 저장하기
  :.,580 w filename 현재줄부터 580줄까지 filename으로 저장하기
  :1,10 w new_filename 1줄부터 10줄까지 new_filename으로 저장하기
  :340,$ w >>new_file 340줄부터 끝줄까지 new_file에 추가하기
읽기 :r[ead] filename 현재위치에 filename 읽어들이기
  :r /usr/local /data 현재위치에 /usr/local/data 읽어들이기
  :185 r /usr/ local/data 185줄 이후에 /usr/local/data 읽어들이기
  :$ r /usr/local/data 맨끝줄 이후에 /usr/local/data 읽어들이기
  :0 r /usr/local/data 맨윗줄에 /usr/local/data 읽어들이기
  :/pa/ r /usr/local/data pa 이 존재하는 줄에 /usr/local/data 읽어들이기
다중편집하기 vi file1 file2 file3 :args 편집중인 파일목록 보여주기
  :n[ext] 다음 파일로 넘어가기
  :prev[ious] 이전파일로 돌아가기
  sc/ESC/g BX가 있는줄 찾아서 Esc 를 ESC 로 바꾸
  :% s/editer/editor/g 처음줄부터 마지막줄까지, editer 를 editor 로 바꾸기
  :g/editer/ s//editor/g 위와 동일("s/" 다음에 인자가 없어서 윗줄과 같은효과
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : 리눅스/유닉스 에디터 'vi' (2) - VI 활용


VI 활용

커서 움직이기

글자 단위 이동 k 위쪽으로
  j 아랫쪽으로
  h 왼쪽으로
  l 오른쪽으로
줄 단위 이동 ^ 줄의 맨앞으로 (빈칸무시)
  0 줄의 맨앞으로
  $ 줄의 맨뒤로
  % 짝을 이루는 기호 확인하기
  + 다음줄의 첫번째 글자로
  - 윗줄의 첫번째 글자로
  n| 현재줄의 n 번째 열로 (n은 임의의 숫자)
  H 화면상에 처음줄로
  M 화면상의 중간줄로
  L 화면상의 마지막줄로
  nH 화면상의 처음줄로부터 n 줄 밑으로
  nL 화면상의 마지막줄로부터 n 줄 위로
  G 맨 마지막줄로 (go)
  nG n 번째줄로
  gg 맨 마지막줄로
  ngg n 번째줄로
  n n 번째줄로
단어 단위 이동 w 한단어 오른쪽으로 (word)
  b 한단어 왼쪽으로 (back)
  e 현재 단어의 끝으로 이동 (end)
  E 현재 단어의 끝으로 이동 (구두점 무시 - 영문자에 해당 - ? . !.)
  ) 다음 문장의 시작으로
  ( 이전 문장의 시작으로
  } 다음 문단의 시작으로
  { 이전 문단의 시작으로
  ]] 다음 섹션의 시작으로
  [[ 이전 섹션의 시작으로
화면단위 이동 Control - F 한화면 밑으로 이동
  Control - B 한화면 위로 이동
  Control - D 반쪽화면 밑으로 이동
  Control - U 반쪽화면 위로 이동
  Control - E 커서는 현재위치 그대로 화면만 한줄씩 위로 이동
  Control - Y 커서는 현재위치 그대로 화면만 한줄씩 아래로 이동
  z 커서의 위치와 함께, 화면상의 맨위로
  nz n번 라인을 화면상의 맨위로
  z. 커서의 위치와 함께, 화면상의 중간으로
  z- 커서의 위치와 함께, 화면상의 맨아래로
  ## Control - G 현재 편집문서의 정보 보여주기
  ## Control - L 화면 재표시 (글자가 깨졌을경우)
  ## Control - R 화면 재표시 (글자가 깨졌을경우) 편집하기 복사, 붙이기, 합치기

편집하기

복사, 붙이기,
합치기
y : 복사하기
yy 한줄복사
  2yy 두줄복사
  nyy n줄 복사 (n 은 임의의숫자)
  yw 한단어 복사
  y2w 두단어 복사
  y$ 그줄 끝까지 복사
  y0(y^) 그줄 처음까지 복사
  yG 문서의 끝까지 복사
  Y 한줄복사 (yy 와 동일)
마지막 명령어의
반복
. 마지막에 수행한 명령어를 반복한다.
2. 명령어를 2번 반복한다.
  p : 붙이기
  p 아래로(오른쪽으로) 붙이기
  2p 아래로(오른쪽으로) 두번 붙이기
  P 위로(왼쪽으로) 붙이기
  2P 위로(왼쪽으로) 두번 붙이기
  J : 두줄 합치기
  J 현재줄을 윗줄에 붙이기 (두줄 합치기)
  3J 세줄합치기
지우기, 복구
하기, 바꾸기
d : 지우기
dd 한줄지우기
  2dd 두줄지우기
  ndd n줄지우기 (n 은 임의의숫자)
  dw 한단어 지우기
  d2w 두단어 지우기
  d$ 그줄 끝까지 지우기
  d0(d^) 그줄 처음까지 지우기
  dG 문서 끝까지 지우기
  D 그줄 끝까지 지우기(d$ 와 동일)
  u : 복구하기
  u 한번복구하기
  2u 두번복구하기
  c : 바꾸기
  cc 한줄바꾸기
  2cc 두줄바꾸기
  ncc 여러줄 바꾸기 (n 은 임의의숫자)
  cw 한단어 바꾸기
  ce 한단어 바꾸기 (공백 제외)
  c2w 두단어 바꾸기
  c$ 그줄 끝까지 바꾸기
  c0(c^) 문서 끝까지 바꾸기
  C 그줄 끝까지 바꾸기 (c$ 와 동일)
  r : 한글자 바꾸기
  r 한글자 바꾸기
  2r 두글자 바꾸기 (r 명령어는 insert 모드로 바뀌지 않는다.)
  R : 바꾸면서 덮어 쓰기
  s : )한글자 지우고 insert 모드로 (cl 와 동일)
  - S : 한줄지우고 insert 모드로 (cc 와 동일)
  ~ : 대문자 <-> 소문자 바꾸기 (영문자에만 해당)
  지우기와 바꾸기의 차이점은 바꾸기 명령어 후에 vi 편집모드로 바뀐다.
찾기 /pattern pattern라는 단어 찾기 (위에서 아래로)
  ?pattern pattern라는 단어찾기 (아래로 위에서)
  / : 찾기반복 - 위에서 아래로
  n : 찾기반복 - 위에서 아래로
  ? : 찾기반복 - 아래에서 위로
  N : 찾기반복 - 아래에서 위로
  fx : 현재줄에서 x문자 찾기 (x 는 한개의 글자)
  Fx : 현재줄에서 반대방향으로 x문자 찾기 (x 는 한개의 글자)
  tx : 현재줄에서 x문자를 찾아서 바로전에 커서놓기
  Tx : 현재줄에서 반대방향으로 x문자를 찾아서 바로후에 커서놓기
  ; : 현재줄에서 한글자 찾기반복
  ' : 현재줄에서 한글자 찾기반복 (반대방향으로)
찾기와 편집
명령의 응용
d/simple simple 이라는 단어가 나올때까지 지우기
d/^scully 줄의 맨앞에 scully 라는 단어가 나올때까지 지우기
  y/yahoo yahoo 라는 단어가 나올때까지 복사하기 편집모드 지정하기
  i : insert 현재커서위치
  10i* * 문자를 10개 집어넣기
  25i=- =- 를 25개 반복하기
  I : 현재커서가 위치한 줄의 맨처음에
  a : append 현재커서위치 바로 다음에
  A : 현재커서가 위치한 줄의 맨끝에
  o : open 현재커서위치 바로 아래줄에
  O : Open 현재커서위치 바로 윗줄에 위치 기억하기
  mx : mark 현재의 커서위치를 x 라는 문자로 기억
  `x : 기억된 x 위치로 이동
  `` : 이동하기 전의 위치로 (제자리)
  'x : 기억된 x 위치의 맨 앞으로 이동
  '' : 이동하기 전 위치의 맨앞으로 이동 버퍼 이용하기
  "xyy : x 라는 이름의 버퍼에 한줄 복사 하기
  "xp : x 라는 이름의 버퍼에 저장된 내용을 붙이기
잠시 쉬었다
가기
:= 현재 줄번호 보여주기
:/pattern/ = pattern 이 위치한 줄번호 보여주기
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : 리눅스/유닉스 에디터 'vi' (1) - VI 기초 개념 잡기


VI 기초 개념 잡기

커서 움직이기

글자 단위 이동 k 위쪽으로
  j 아랫쪽으로
  h 왼쪽으로
  l 오른쪽으로
줄 단위 이동 ^ 줄의 맨앞으로 (빈칸무시)
  0 줄의 맨앞으로
  $ 줄의 맨뒤로
  % 짝을 이루는 기호 확인하기
  + 다음줄의 첫번째 글자로
  - 윗줄의 첫번째 글자로
  n| 현재줄의 n 번째 열로 (n은 임의의 숫자)
  H 화면상에 처음줄로
  M 화면상의 중간줄로
  L 화면상의 마지막줄로
  nH 화면상의 처음줄로부터 n 줄 밑으로
  nL 화면상의 마지막줄로부터 n 줄 위로
  G 맨 마지막줄로 (go)
  nG n 번째줄로
  gg 맨 마지막줄로
  ngg n 번째줄로
  n n 번째줄로
단어 단위 이동 w 한단어 오른쪽으로 (word)
  b 한단어 왼쪽으로 (back)
  e 현재 단어의 끝으로 이동 (end)
  E 현재 단어의 끝으로 이동 (구두점 무시 - 영문자에 해당 - ? . !.)
  ) 다음 문장의 시작으로
  ( 이전 문장의 시작으로
  } 다음 문단의 시작으로
  { 이전 문단의 시작으로
  ]] 다음 섹션의 시작으로
  [[ 이전 섹션의 시작으로
화면단위 이동 Control - F 한화면 밑으로 이동
  Control - B 한화면 위로 이동
  Control - D 반쪽화면 밑으로 이동
  Control - U 반쪽화면 위로 이동
  Control - E 커서는 현재위치 그대로 화면만 한줄씩 위로 이동
  Control - Y 커서는 현재위치 그대로 화면만 한줄씩 아래로 이동
  z 커서의 위치와 함께, 화면상의 맨위로
  nz n번 라인을 화면상의 맨위로
  z. 커서의 위치와 함께, 화면상의 중간으로
  z- 커서의 위치와 함께, 화면상의 맨아래로
  ## Control - G 현재 편집문서의 정보 보여주기
  ## Control - L 화면 재표시 (글자가 깨졌을경우)
  ## Control - R 화면 재표시 (글자가 깨졌을경우) 편집하기 복사, 붙이기, 합치기

편집하기

복사, 붙이기,
합치기
y : 복사하기
yy 한줄복사
  2yy 두줄복사
  nyy n줄 복사 (n 은 임의의숫자)
  yw 한단어 복사
  y2w 두단어 복사
  y$ 그줄 끝까지 복사
  y0(y^) 그줄 처음까지 복사
  yG 문서의 끝까지 복사
  Y 한줄복사 (yy 와 동일)
마지막 명령어의
반복
. 마지막에 수행한 명령어를 반복한다.
2. 명령어를 2번 반복한다.
  p : 붙이기
  p 아래로(오른쪽으로) 붙이기
  2p 아래로(오른쪽으로) 두번 붙이기
  P 위로(왼쪽으로) 붙이기
  2P 위로(왼쪽으로) 두번 붙이기
  J : 두줄 합치기
  J 현재줄을 윗줄에 붙이기 (두줄 합치기)
  3J 세줄합치기
지우기, 복구
하기, 바꾸기
d : 지우기
dd 한줄지우기
  2dd 두줄지우기
  ndd n줄지우기 (n 은 임의의숫자)
  dw 한단어 지우기
  d2w 두단어 지우기
  d$ 그줄 끝까지 지우기
  d0(d^) 그줄 처음까지 지우기
  dG 문서 끝까지 지우기
  D 그줄 끝까지 지우기(d$ 와 동일)
  u : 복구하기
  u 한번복구하기
  2u 두번복구하기
  c : 바꾸기
  cc 한줄바꾸기
  2cc 두줄바꾸기
  ncc 여러줄 바꾸기 (n 은 임의의숫자)
  cw 한단어 바꾸기
  ce 한단어 바꾸기 (공백 제외)
  c2w 두단어 바꾸기
  c$ 그줄 끝까지 바꾸기
  c0(c^) 문서 끝까지 바꾸기
  C 그줄 끝까지 바꾸기 (c$ 와 동일)
  r : 한글자 바꾸기
  r 한글자 바꾸기
  2r 두글자 바꾸기 (r 명령어는 insert 모드로 바뀌지 않는다.)
  R : 바꾸면서 덮어 쓰기
  s : )한글자 지우고 insert 모드로 (cl 와 동일)
  - S : 한줄지우고 insert 모드로 (cc 와 동일)
  ~ : 대문자 <-> 소문자 바꾸기 (영문자에만 해당)
  지우기와 바꾸기의 차이점은 바꾸기 명령어 후에 vi 편집모드로 바뀐다.
찾기 /pattern pattern라는 단어 찾기 (위에서 아래로)
  ?pattern pattern라는 단어찾기 (아래로 위에서)
  / : 찾기반복 - 위에서 아래로
  n : 찾기반복 - 위에서 아래로
  ? : 찾기반복 - 아래에서 위로
  N : 찾기반복 - 아래에서 위로
  fx : 현재줄에서 x문자 찾기 (x 는 한개의 글자)
  Fx : 현재줄에서 반대방향으로 x문자 찾기 (x 는 한개의 글자)
  tx : 현재줄에서 x문자를 찾아서 바로전에 커서놓기
  Tx : 현재줄에서 반대방향으로 x문자를 찾아서 바로후에 커서놓기
  ; : 현재줄에서 한글자 찾기반복
  ' : 현재줄에서 한글자 찾기반복 (반대방향으로)
찾기와 편집
명령의 응용
d/simple simple 이라는 단어가 나올때까지 지우기
d/^scully 줄의 맨앞에 scully 라는 단어가 나올때까지 지우기
  y/yahoo yahoo 라는 단어가 나올때까지 복사하기 편집모드 지정하기
  i : insert 현재커서위치
  10i* * 문자를 10개 집어넣기
  25i=- =- 를 25개 반복하기
  I : 현재커서가 위치한 줄의 맨처음에
  a : append 현재커서위치 바로 다음에
  A : 현재커서가 위치한 줄의 맨끝에
  o : open 현재커서위치 바로 아래줄에
  O : Open 현재커서위치 바로 윗줄에 위치 기억하기
  mx : mark 현재의 커서위치를 x 라는 문자로 기억
  `x : 기억된 x 위치로 이동
  `` : 이동하기 전의 위치로 (제자리)
  'x : 기억된 x 위치의 맨 앞으로 이동
  '' : 이동하기 전 위치의 맨앞으로 이동 버퍼 이용하기
  "xyy : x 라는 이름의 버퍼에 한줄 복사 하기
  "xp : x 라는 이름의 버퍼에 저장된 내용을 붙이기
잠시 쉬었다
가기
:= 현재 줄번호 보여주기
:/pattern/ = pattern 이 위치한 줄번호 보여주기
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요

원문 링크 : 리눅스/유닉스 에디터 'pico'


리눅스/유닉스 에디터 'pico'

홈페이지를 만들기 위해 HTML 에디터 프로그램으로 나모와 프런트 페이지등을 많이 사용하듯이 유닉스 시스템에서는 pico 나 vi 와 같은 편집기 프로그램을 많이 사용합니다.
편집기는 telnet 으로 서버에 로긴후 pico 또는 vi 라고 입력하기만 하면 되고 그중 PICO 편집기는 별도의 도움말이 필요 없을 정도로 하단의 Help 메뉴를 보면서 쉽게 사용하실 수 있습니다.
아래는 편집기 프로그램중 가장 많이 사용되고 가장 기본적인 VI 에디터에 대한 명령어에 대한 안내와 pico에 대한 설명입니다.
가급적 유닉스 기반 시스템에 익숙하지 않은 초보자라면 pico 편집기를 사용하실 것을 권하며 보다 다양한 기능을 복잡한 편집기를 원하실 경우에는 vi 를 사용하시면 됩니다.

PICO 사용법

pico 를 불러낼 땐 telnet 으로 로긴한 상태에서 pico 라고만 타이핑하시면 됩니다.
또는 직접 파일을 편집하려면 pico filename 이라고 하시면 됩니다. 그럼, pico 의 화면이 나타납니다.
왼쪽위에 pico 의 버젼이 나타나고 중간에는 편집하고 있는 파일이름이 그리고 오른쪽위 에는 처음에는 아무 것도 안 나타나다 가 글을 쓰기 시작하면 'Modified'라고 나타납니다.
Modified 란 현재의 설정 상태에서 "변경되었다" 라는 뜻입니다. 처음 파일을 불러올 때와는 어떻게든 변경이 되었다라는 표시 입니다. 그리고 화면의 하단에 보시면 몇가지 단축키에 대한 설명이 나옵니다.
pico 의 단축키를 하나씩 따라 해보도록 합시다.

먼저 ^G(Ctrl + G) 글쇠는 "도움말보기" 입니다.
Pico Help Text 라고 해서 pico 에 대한 간단한 설명이 나옵니다.

피코는 pine 메일 프로그램과 이용방법이 아주 비슷하며 간단하고 쓰기 편한 문서에디터를 위해 디자인되었습니다.
제일 상단의 라인은 피코 프로그램의 버젼을 나타냅니다.
현재의 파일을 편집하셨다면 그 변경된 내용은 아직 저장되지 않았으며 타이핑된 내용들은 현재 커서위치에서 자동적으로 버퍼로 삽입이 됩니다.
편집명령과 옆에 있는 화살 표 글쇠에 의한 커서이동은 특수한 ctrl 글쇠 조합에 의해 피코에게 전달됩니다.
'^' 표시는 'Ctrl(콘트롤)'글쇠를 나타내고 'CTRL'글쇠로 나타내기도 합니다.
따라서 Ctrl+q 글쇠는 '^Q' 로 나타납니다. 아래의 단축키는 피코에서 사용가능 한 것입니 다.

도움말 보기

현재의 상태에서 '^G'를 누르면 도움말 화면이 나타납니다.
'^V'를 누르면 다음페이지로 넘어가고(PageDown) '^Y'를 누르면 앞화면으로(PageUp) 갑니다.
도움말 에서 빠져나오시려면 '^X' (Ctrl 키를 누른 상태에서 X를 누르시면 됩니다.)

커서이동

상/하/좌/우 화살표 글쇠와 페이지 업다운 글쇠로도 이동이 됩니다.
그러나 다음과 같이 사용하셔도 됩니다.

^F 현재 커서있는데서 한글자 앞으로 가기
^B 한글자 뒤로 가기
^P 한줄위로 가기
^N 현재 줄의 처음으로 가기
^A 현재 줄의 마지막으로 가기
^V 한 쪽 앞으로 가기
^Y 한 쪽 뒤로 가기

편집기능

^W 파일내에서 특정 글자를 검색하는 키입니다. 이 글쇠를 누르시면 'search :' 라고 나옵니다.
이 부분에 찾기 원하시는 글자를 타이핑한후 엔터를 치면 해당 글자가 있을 경우는 커서가 해당 검색에로 이동이 되고 없을 경우에는 Not Found 라고 나옵니다.
^L 화면다시 보여주기(리플레쉬
^D 현재 커서 위치의 글자 지우기. 리눅스에서는 del 글쇠가 작동하지 않습니다.
이때는 백스페이스를 이용할 수도 있지만 본 명령어를 이용하실 수 있습니다. ^^
현재 커서가 있는 위치부터 블럭설정시작. 이걸 착각하기 쉬운데 'Ctrl + 6' 글쇠를 누르면 블럭설정이 됩니다. 화살표로 조정하시고요. '6'글쇠위에보면 '^'표시가 되어있습니다.
^K 블럭으로 선택된 문장 자르기. 붙이기를 하기 위해서 먼저 원하는 만큼 잘라야 합니다. 블럭을 설정않고 이 글쇠를 누르면 현재 커서 가 있는 한 줄만 자릅니다. ^U 붙이기. 커서를 원하는 데로 옮겨 놓고 이 글쇠를 누르면 그곳에 붙여 집니다. ^I 현재 위치에서 Tab 문자 넣기
^T 영어 스펠링 체크하기
^C 현재 커서위치에 대한 정보
^J 문단을 정렬하는 기능입니다.

파일관련작업

^R 현재 커서위치에 외부파일 끼워넣기. 이 글쇠를 누르면 선택할 수 있는 글쇠가 나타납니다.
'^G'는 이 명령에 대한 간단한 설명보기 이고 '^T'는 파일 이름을 잘 모를 때 파일들이 있는 곳에 가서 찾을 수 있습니다.
그 파일 위에서 엔터를 찍으면 그 위치에 그 파일의 내용이 삽입됩니다. '^C'는 당연히 명령취소입니다.
^O 현재 버퍼를 파일로 저장.
^X 피코 끝내기
Posted by 새우날다 Trackback 0 Comment 0

댓글을 달아 주세요