리눅스 vi 명령어

리눅스 2011. 10. 12. 10:50

[vi 명령어]

 

- 명령모드에서 입력모드로 전환
a    현재커서의 뒤에 입력
i    현재커서의 앞에 입력

A    현재 작업줄의 가장 마지막에 글자입력

I    현재 작업줄의 가장 처음에 글자입력


- 커서의 이동
h    왼쪽으로 이동
l    오른쪽으로 이동
j    아래로 이동
k    위로 이동

$    그줄의 가장 마지막으로 이동

^    그줄의 가장 처음으로 이동

H    화면의 가장 위로 이동

L    화면의 가장 아래로 이동

}    다음단락으로 이동

{    이전단락으로 이동

:n    n번째 줄로 이동


- 페이지의 이동
Ctrl + f     아래화면으로 페이지 이동
Ctrl + b     위의 화면으로 페이지 이동
G     파일의 제일 마지막으로 이동
gg     파일의 가장 처음으로 이동
80G     파일의 80번째 줄로 이동


- 복사, 붙여넣기
yy     한 줄 복사하기
15yy     15줄 복사하기

y0    현재커서가 위치한 곳 부터 그 줄의 가장 처음까지 메모리에 저장한다.

y$    현재커서가 위치한 곳 부터 그 줄의 가장 마지막까지 메모리에 저장한다.
p     현재 커서의 아래줄에 붙여넣기
P     현재 커서가 있는 줄에 붙여넣기
dw     한 줄 잘라내기
15dw     15줄 잘나내기


- 지우기
x     한 문자만 지우기

dw    한 단어 삭제
dd     한 줄 지우기

d$    현재커서가 위치한 곳 부터 그 줄의 마지막까지 삭제
15dd     15줄 지우기


- 수정하기
r     한 문자만 변경
R     Replace

 

- 검색

/찾을문자열입력

다음단어를 찾고 싶다면 n

이전검색단어로 이동하고 싶다면 N

:%s/orange/apple    문서내의 모든 orange를 apple로 변경함

:100.200s/orange/apple    100~200번째 줄사이의 orange를 apple로 변경함


- vi 편집기 종료
:q     변경된 내용이 없을경우 그대로 종료
:q!     변경된 내용을 저장하기 않고 강제로 종료
:wq     변경된 내용을 저장하고 종료하기
:w     변경된 내용을 저장하기
:x     :wq 와 동일한 명령


- vi 편집기 환경설정
:set nu      줄번호 보이기
:set nonu     줄번호 감추기
:set ts=4     Tab 키의 공백 넓이를 지정(기본값:8)
:set paste     작업 중 vi에 붙여넣기시 계단현상 발생 방지


- .exrc 파일
vi 편집기 실행시 .exrc파일이 있다면 이 파일을 내용으로 편집기 환경을 설정할 수 있다.
root의 경우 /root/.exrc파일을 만들면 되고, 계정사용자의 경우 /home/[게정]/.exrc
파일을 만들어주면 된다.


 

 

[기본명령어]

 

cd "디렉토리명"    디렉토리를 변경할때 사용함

    ~    자신의 홈디렉토리로 이동

    -    바로 전의 디렉토리로 이동

    ..    바로 상위 디렉토리로 이동

 

chown "소유권자" "파일명 또는 디렉토리명"

chgrp "소유권자" "파일명 또는 디렉토리명"

    소유권자 또는 소유그룹을 변경한다.

    둘다 동시에 변경시에는 소유자와 소유권자 사이에 점(.)을 사용한다.

    -R    하위디렉토리 및 파일들의 소유권을 모두 변경

 

chmod 퍼미션 "파일명 또는 디렉토리명"

    -R    하위디렉토리 및 파일들의 소유권을 모두 변경

 

cp [옵션] "원본파일명" "복사할 디렉토리"

    -p    원본파일의 소유권 등의 정보를 그대로 복사

    -r    서브디렉토리 안의 모든 파일까지 전부복사

 

date [옵션] [+포맷]

    (아래의 괄호는 2003년 05월 09일 16시 02분 07초를 기준의 예)

    %a    요일(금)

    %A    요일(금요일)

    %b    월(5월)

    %B    월(오월)

    %c    날짜와 시간(2003년 05월 09일 (금) 오후 04시 02분 07초)

    %d    그 달의 날짜(09)

    %D    날짜(05/09/03)

    %e    그달의 날짜(9)

    %H    시간(16)

    %I    시간(04)

    %j    1월1일부터 지나온 날짜의 수(129)

    %k    시간(16)

    %l    시간(4)

    %m    달(05)

    %M    분(02)

    %p    오전 오후 (오후)

    %r    12시간 단위의 시간(오후 04시 02분 07초)

    %s    1970년 1월1일부터 지나온 초(1053621217)

    %S    초(07)

    %T    24시간 단위의 시간

    %U    일요일을 기준으로 한 그해의 몇번째 주인가를 표시(20)

    %V    월요일을 기준으로 한 그해의 몇번째 주인가를 표시(21)

    %w    일주일에서 몇 번째 날, 일요일이 0, 토요일이 6 (5)

    %x    전체날짜(2003년 05월 09일)

    %X    전체시간(16시 02분 07초)

    %y    년도의 마지막 두 자리(03)

    %Y    년도(2003)

 

find "디렉토리명" [옵션] "파일명"

    -name <패턴>    패턴형식으로 되어있는파일

    -amin n    n분전에 최종 접근된 파일

    -atime n    n day 전에 최종 접근된 파일

    -cmin n    n분전에 마지막으로 변경된 파일

    -ctime n    n day전에 마지막으로 변경된 파일

 

ls [옵션]    파일의 리스트를 보여준다.

    -a, --all    디렉토리 내에 있는 모든 파일 보기

    -c    파일을 최근 변경 시간으로 정렬하여 보기

    -i    파일의 inode값 보이기

    -l    퍼미션, 크기, 사이즈 등의 자세한 정보 보기

    -t    최근 파일부터 정렬하여 출력

 

mkdir "디렉토리명", rmdir "디렉토리명"

    -p    하위디렉토리까지 한번에 생성하거나 삭제

 

mv [옵션] "원본파일명", "대상 디렉토리 혹은 파일명"

    -f    대상파일이 있을경우 강제로 덮어쓴다.

 

pwd    현재위치한 디렉토리를 표시해준다.

 

rm [옵션] "파일명"

    -r    하위디렉토리 및 파일들을 모두 삭제

    -f    삭제할 것을 다시 묻지않고 강제로 삭제

 

split [옵션] "분할할 파일명" "생성될 파일명"

    -b    파일을 byte 단위로 분할

    -l    파일을 주어진 라인수 단위로 분할

 

touch "파일명"    새로운 파일을 만들때 사용한다.

    최종 수정일을 변경할 때도 사용한다.

 

wc [옵션] "파일명"

    파일내의 라인, 단어, 문자수를 출력한다.

    -c    전체 문자의 수를 출력

    -l    전체 라인의 수를 출력

    -w    전체 철자의 수를 출력

 

 

[시스템 관련 명령어]

 

chkconfig --list "데몬이름"

chkconfig --level "런레벨 번호" "데몬이름" <on|off>

    리눅스를 부팅할 때, 자동으로 데몬을 실행시키기 위해서 사용

 

df [옵션]

    하드디스크의 각 퍼미션당 전체용량과 사용중인 용량, 사용가능한 용량을 확인할때 사용

    i    inode로 디스크의 정보를 출력

    k    킬로바이트 단위로 출력

    m    메가바이트 단위로 출력

    h    파일을 보기 쉬운 용량으로 출력

    T    파일 시스템의 정보를 출력

 

du [옵션]

    'disk use'라는 의미로 현재 사용하고 있는 하드의 사용량을 나타낸다.

    옵션뒤에 원하는 디렉토리를 넣지 않으면 현재 디렉토리의 사용량을 출력한다.

    k    킬로바이트 단위로 출력

    m    메가바이트 단위로 출력

    h    파일을 보기 쉬운 용량으로 출력

    s    해당 디렉토리의 하위 디렉토리까지 합계로 출력

 

finger, who, w

    현재 리눅스에 누가 접속했는지 출력해 준다.

 

id [옵션]

    주어진 사용자에 대한 정보를 출력한다.

 

kill -{신호번호} PID

    프로세스를 강제로 종료하고자 하는 경우 사용

    -l    시그널로 사용할 수 있는 시그널 목록을 보여준다.

    -1    프로세스를 재실행한다.

    -9    프로세스를 강제 종료한다.

 

ps [옵션]

    현재 실행중인 프로세스를 알아볼때 사용하는 명령어

    a    다른사용자의 프로세스까지 출력

    u    프로세스를 실행시킨 유저와 그 시간을 출력

    x    터미널의 제어없이 프로세스의 상태를 출력

    l    상세 정보 출력

 

sleep "숫자"

    주어진 시간만큼 지연시키는 역할을 한다.

 

top

    현재 실행되고 있는 프로세스들의 cpu 사용량이나 memory사용량을 보여주며

    5초 단위로 시스템 상태와 프로세스의 상태를 갱신해서 실시간으로 화면에 보여준다.

    Space    화면을 갱신한다.

    h    도움말을 보여준다.

    r    Nice값을 변경한다.

    s    화면을 갱신하는 시간(초단위)을 변경(기본값 : 5초)

    M    프로세스를 실제 메모리 사용량(RSS) 순서로 정렬

    P    프로세스를 cpu 사용량으로 정렬(기본값)

    q    top을 종료한다.