'vi 명령어'에 해당되는 글 2건

  1. 2015.03.27 [07] vi(2), 유용한 vi 명령어 메모
  2. 2015.03.27 [06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집)

[07] vi(2), 유용한 vi 명령어 메모

|


- 2014.11.14 수업




1. vi



1) 라인명령모드


행번호  출력하기

:set nu = :se nu              // set number


행번호 삭제

:set nonu = :se nonu       // set no number


치환 명령어

:[범위]s/[old]/[new]


ex)

5번째 행 치환

:5s/passwd/samadal


20~23행 치환

:20,23/PASS/madal


문서 전체 치환

:%s/MAX/dalma


g:중복문자도 모두 치환

:56s/i/a/g



외부명령어 실행

:! [command] // 잠시 vi 멈추고 외부 명령어 실행, alias작동 안함

:.! [command] // 내 커서가 있는 곳에 결과물 입력


ex)

:!ifconfig

:.!ifconfig



화면 분할

Ctrl + n w  // 수평으로 화면 분할

Ctrl + w w  // 창 이동

Ctrl + w q or :q  // 창 닫기



:f                                   // 현재 편집중인 파일 정보 보여줌

:e                                  // 문서 열어주는 기호. e! 하면 강제로 염

:w [경로]                        // 저장

:w >> [filename]             // 결과물을 다른 파일에 추가


:nr [filename]                // n라인 다음줄 밑에 [filename] 내용을 삽입

  ex) :3r ./b                    // 3라인 다음줄에 ./b 파일 내용 삽입


:nr! [command]              // n라인 다음줄에 [command] 결과물 삽입

  ex) :5r! ls -d                // 5라인 다음줄에 ls -d 결과물 삽입


:n(숫자)                          // n번째 행으로 이동



vi a b c 처럼 동시에 여러개의 창을 띄웠을 경우

:n // 다음 파일 보기

:N // 이전 파일 보기

:args // 내가 열어놓은 파일 목록 보기

:nn // n번째 뒤 파일 보기

  ex):3n // 3번째 뒤 파일 보기



vi 내에서 복사

5,12 co 2 // 5~12 줄을 2번째 밑에 복사. 이동은 co -> m




[문제]


/home/samadal/ 에 있는 모든 파일 삭제

        :!rm ./*


20번째 라인 밑에 자세한 출력내용(samadal 디렉터리에 있는 모든 파일들(a, b, c, d, e))을 삽입

        :!touch ./a ./b ./c ./d ./e


파일 안에 있는 내용 변경 : etc(madal), rc(sam)

        :%s/etc/madal/g

        :%s/rc/sam/g


5~12번째 라인을 2번째 라인 밑에 복사

        :5 8yy :2 p     or     :5,12 co 2


지금까지 작업한 모든 내용을 /test/sam.test 파일로 저장

        :!mkdir /test/

        :w /test/sam.test


/home/.sam.test 파일로 저장

        :w /home/.sam.test


/backup/madal 파일로 저장

        :w /backup/madal


빈문서 파일을 연 후 /backup/madal 파일 열기

        :enew!

        :e /backup/madal





2014.02.04 추가


유용한 vi명령어 (출처 : http://koreahojin.egloos.com/512216)



삽입 

I: 줄의 제일 앞에서 입력 

A: 줄의 제일 끝에서 입력 


콤보 command

4w: 4단어 skip후 이동 

4b: 4단어 skip후 이동 

4j,h,k,l: 커서이동시 지정한 수만큼 건너뛰므로 이동을 좀 더 빨리 할 수 있다. 



줄의 결합(J) 

2줄이 있고, 2째줄을 1째줄 끝에 붙이고 싶다면, 1째줄에서 J를 입력하면 된다. 



커서이동 

0: 줄의 처음 

^: 줄의 처음(글자가 시작되는 처음) 

$: 줄의 끝 

w: 단어단위 이동 

e: w와 같으나 단어의 끝으로 이동 

b: w의 반대방향으로 이동 

H, M, L: 커서를 화면 상,중,하로 이동 


검색(/후 검색할 단어입력) 

n: 뒤로 검색 

N: 앞으로 검색 



매크로 

ab aa aaaa: aa를 입력하면 aaaa로 자동변환 



치환 

s/pattern/replace: 현재줄의 첫번째 matching pattern치환 

s/pattern/replace/g: 현재줄의 모든 matching pattern치환 

%s/pattern/replace/g: 모든 줄의 치환 

line,lines/pattern/replace: 해당 범위의 치환 



저장 

w>> file: 지정한 파일에 추가 



윈도 split 

vi내에서 위아래로 윈도가 분활되면서 2개의 파일을 동시에 open/편집할 수 있다. 

ex-mode(:프롬프트상태)에서 'sp 파일이름' 

윈도우가 전환은 Ctrl+ww 



기타 

1). d의 경우 command모드로 계속 남아 있으나 c는 삭제후 insert모드로 변환한다. 

cc, c$, cw등은 유용하게 사용될 수 있다. 

2) .은 마지막 명령을 되풀이한다. 



visual모드 

윈도의 텍스트 에디터와 같이 선택부분이 반전되면서 복사,삭제등을 할 수 있다. 

v로 visual모드로 집입하여 커서키를 사용해 원하는 부분을 선택한다. 

복사는 y, 삭제/잘라내기는 d로 할 수 있다. 



vi설정(vim설정) 

자신의 홈디렉토리에 .vimrc를 생성하고 다음과 같이 할 수 있다. 

set ai 

set ts=4 

set nu 


각각 auto-indent, tab stop, numbering 



윈도에서 작업중 vi에 붙여넣기시 계단현상발생 방지 

:set paste 



위치기억(UltraEdit의 ALT-F2, F2와 동일한 기능) 

m{a-z}: 현재위치를 {a-z}로 북마크함 

`{a-z}: 기억해둔 {a-z}로 이동. 보통 한개만 등록했다면 그냥 ``를 사용하면 된다. 



레코딩 

설정파일의 주석추가/삭제시 유용하게 사용할 수 있다.(이미 vi에 매크로기능이 있지만, 레코딩이 

UltraEdit의 매크로기능과 유사하다.) 

q{a-z}: {a-z}로 레코딩 시작. {a-z}만 가능한게 아니고 실제 {0-9a-zA-Z"}를 적기 번거로워 이렇게 

표시만 한 것이다. 

q: 레코딩 종료 

@{a-z}: 레코딩 내용 적용(@@를 하면 바로 이전의 레코딩내용을 적용, N@@은 N으로 지정한 

숫자만큼 적용)




And


[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집)

|


- 2014.11.13 수업



1. find


find [경로] [-옵션] [이름]

        [경로] -name [이름] : 이름 검색

        [경로] -newer [이름] : 이름의 파일 이후에 수정, 변경한 것 검색

                -> touch 명령어와 함께 사용하면 효과적


* 추가 옵션

   -exec rm{} \;    : 찾아서 삭제하라는 추가 옵션

   -type f                : 파일 타입 검색하라는 추가 옵션

   -type d               : 디렉터리 타입 검색하라는 추가 옵션


ex)

# ll

합계 1

-rw-r--r-- 1 root root   0 2014-11-13 12:50 inittab

-rw-r--r-- 1 root root 884 2014-11-13 12:45 test


최근파일 검색

# find /home/ -newer test

/home/samadal

/home/samadal/inittab


검색하여 삭제

# find . -name "test*" -exec rm {} \;

# ll

합계 0

-rw-r--r-- 1 root root 0 2014-11-13 12:50 inittab


파일 타입 검색

# find / -name samadal -type f

/var/spool/mail/samadal


디렉터리 타입 검색

# find / -name samadal -type d

/home/samadal




[연습문제] p14


1) /down/ directory 생성

2) /down/ 에 test1, test2 생성

3) /down/ 에 test1, test2 를 /tmp에 각각 test3, test4로 복사

4) /down/test/ directory 생성

5) /down/test/ directory를 /tmp 로 이동

6) find 명령어를 통해 파일명 앞부분에 "test"문자열이 섞인 파일을 검색하면서 삭제

    (단, /tmp/와 /down/ 만 부분검색 하고 명령어는 한줄로)



# mkdir /down

# touch /down/test1 /down/test2

# ll /down

합계 0

-rw-r--r-- 1 root root 0 2014-11-13 13:01 test1

-rw-r--r-- 1 root root 0 2014-11-13 13:01 test2


# cp /down/test1 /tmp/test3

# cp /down/test2 /tmp/test4


# mkdir /down/test

# mv /down/test/ /tmp


부분 검색, 파일만 검색, 삭제 진행.

(사실 rm 은 파일만 지우기 때문에 구지 -type f 필요 없음)

# find /tmp /down -name "test*" -type f -exec rm {} \;





2. shutdown


시스템 종료

shutdown -h now = init 0 = halt = poweroff



시스템 재시작

shutdown -r now = init 6 = reboot



ex)

10분 뒤 종료

# shutdown -h +10


Broadcast message from root@samadal.madalgyo

        (/dev/pts/0) at 13:24 ...


The system is going down for halt in 10 minutes!


Ctro+c 눌러서 취소. shutdown -c 로도 가능.

^Cshutdown: Shutdown cancelled


shutdown 명령어를 실행할 구체적인 시간 설정

# shutdown -r 13:30


Broadcast message from root@samadal.madalgyo

        (/dev/pts/0) at 13:26 ...


The system is going down for reboot in 4 minutes!





3. vi


vi [파일명]


1) 라인명령모드


명령모드에서 :, /, ? 로 접근하게 되는 모드.


:q     종료

:q!    강제종료

/      글자 검색(위->아래)

?      글자 검색(아래->위)



2) 명령모드


기본 모드. 여러 명령어 옵션 실행 가능


h : 왼

j : 아래

k : 위

l : 오른

w : 단어의 처음, 왼->오, 공간 인식, 특수기호 인식 // forward

b : 단어의 처음, 오->왼, 공간 인식, 특수기호 인식 // back

W : 단어의 처음, 왼->오, 공간인식

B : 단어의 처음, 오->왼, 공간인식

e : 단어의 끝, 왼->오, 공간인식, 특수기호 인식 // end

E : 단어의 끝, 왼->오, 공간인식 // 각각의 대문자는 특수기호 인식 하지 않고 넘어간다.


^, 0 : HOME

$ : END

gg, [[ : 문서의 제일 처음으로 이동

G, ]] : 문서의 제일 마지막으로 이동

H : 화면의 처음 (Head)

M : 화면의 중간 (Middle)

L : 화면의 마지막 (taiL)


책갈피

        m + a~z : 지정

            A~Z

        ` + a~z : 이동         (쉬프트 안누른 ~)

          + A~Z

        ``      : 마지막 위치 이동


x : delete -> backspace

X : backspace (no delete)

dd : 행 삭제

숫자 + dd : 숫자 행만큼 삭제

u : 되돌리기

Ctrl + r : 앞으로

v : visual mode, 블럭지정



3) 입력(INSERT)모드


키보드로 내용물을 직접 입력하는 모드. 명령모드에서 아래들의 특정 키를 눌러 모드 진입 가능.


i : 커서 앞에서 입력

I : 맨 앞 행에서 입력

a : 커서 뒤에서 입력

A : 맨 뒤 행에서 입력

o : 커서 아래쪽에 행 삽입하여 입력

O : 커서 위쪽에 행 삽입하여 입력

s : 커서 내용 삭제한 뒤 커서 앞에서 입력

S : 행 삭제한 뒤 입력

r : 커서 내용 변경(한글자)

R : 수정 모드로 변경(한글의 insert)



4) 응용


커서 뒤에 모두 지우기 : d + $, D, n + x

커서 앞에 모두 지우기 : n + X, d + ^ , d + 0

단어지우기 : d + e, d + w

단어 복사하기 : y + e, y + w





* 집에서 FTP 사용하는 방법(방화벽 허용)


방화벽 - 허용되는 프로그램 - 다른프로그램 허용 - 찾아보기

- windows - system32 - ftp.exe - 열기 - 추가 - 목록 중 개인, 공용 추가 하기




And


prev | 1 | next