레이블이 Command인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Command인 게시물을 표시합니다. 모든 게시물 표시

2010년 4월 8일 목요일

drop_caches

drop_caches

Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory,

causing that memory to become free.

To free pagecache:

  • echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:

  • echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

  • echo 3 > /proc/sys/vm/drop_caches

As this is a non-destructive operation, and dirty objects are not freeable, the user should

run "sync" first in order to make sure all cached objects are freed.

 

http://www.linuxinsight.com/proc_sys_vm_drop_caches.html 

 

2010년 2월 16일 화요일

linux memory cache flush

echo 3 > /proc/sys/vm/drop_caches

-- 해당 명령어를 shell 에서 입력하면 memory 에 적재되 있던 cache 가 flush 된다.  

2010년 1월 11일 월요일

linux block trace [blktrace]

block trace 란 리눅스에서 Disk I/O 가 일어날때,
linux 하위 level 에서 어떻게 Block 단위의 I/O 가 일어났는지 알아낼수 있는 Tool
DB 접근에서 주로 DB recovery 나 join 시의 DIsk I/O 패턴을 알아내는데 유용하다.

1. yum install blktrace-1.0.1-3.XX .. 를 인스톨 한다. ( block trace 뜨는 프로그램 )
http://rpm.pbone.net/index.php3/stat/3/srodzaj/1/search/blktrace 


2. seekwatcher 다운로드 ( 생성한 block trace 를 image 로 정리해서 보여줌 )
   - 미리 설치할 package : http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-0.99.1/matplotlib-0.99.1.2.tar.gz/download 
 
   - seekwatcher http://oss.oracle.com/~mason/seekwatcher/seekwatcher-0.12.tar.bz2 

3. seekwatcher 압출을 풀면 seekwatcher 란 실행파일이 생성 됨 이 파일을 /usr/bin 에 복사후 사용

blktrace 실행


1. mkdir /trace
2. blktrace -d /dev/target_device
3. cd /trace 에 device_name.blktrace 파일이 생성 된다.

seekwatcher 실행


seekwatcher  -t trace파일


exception


 

/usr/lib/python2.6/site-packages/matplotlib/rcsetup.py:117: UserWarning: rcParams key "numerix" is obsolete and has no effect;
 please delete it from your matplotlibrc file
  warnings.warn('rcParams key "numerix" is obsolete and has no effect;\n'
   

  cd $HOME
  rm .matplotlib/



[root@ljh8324-skku /]# blktrace -d /dev/sdb1
Invalid debug path /sys/kernel/debug: 0/Success

$ mount -t debugfs debugfs /sys/kernel/debug

 


 








fedora 부트로더 복구


1. fedora cd 를 넣고 F5 ( rescue ) 모드로 진입 ..

2. shell 모드로 진입후 /sbin/grub 실행

3. grub > root (hd0, 1) 부터 해당하는 리눅스 파티션이 나올때 까지 실행 (hd0,1 ~ n )

4. setup (hd0)

5. quit 후 재부팅 ..

2009년 1월 7일 수요일

소스함수 찾기 명령어


1. Find 명령어를 이용하여 검색

$ find . -name "파일이름" -exec grep -Hn 찾을문자열 {} \;

2. grep

$ grep -RIwHn 찾을문자열 *

 -R 재귀적으로 디렉토리 검색
 -I 이진파일 건너뛰기
 -w 전체단어 일치
 -H 파일이름출력
 -n 행 번호 출력

3. ctags

$ ctags -R // tags 라는 색인 데이터베이스 파일 생성
$ vi -t 찾을함수 // 특정 함수로 이동함


3 - 1 편집 도중에 함수를 찾고자 할때

1) vi/vim 에서 명령모드로 진입후

$ tag 함수명


2) 찾고자 하는 함수의 행에서  Ctrl + ] 키를 누르면 해당 함수로 이동함
    - Ctrl + T 를 누르면 전의 위치로 돌아옴  // 스택이 되기 때문에 여러번 가능
 

2008년 12월 2일 화요일

lftp 사용법 [펌]

O 커맨드 라인 인터페이스 기반의 강력한 ftp 클라이언트 - ftp, http, fish, sftp, https, ftps 의 다양한 프로토콜을 지원 - lftp의 모든 명령어는 신뢰성있다. - 심각한 에러에 대한 예외 처리가 잘 되어 있고 실패했을시 자동으로 다시 시도한다. - 만약 ftp서버가 REST명령어를 지원하지 않더라도 lftp는 성공적으로 전송을 끝내기 위해 재시도 한다. - 백그라운드 모드를 지원한다. [/summary]


프로그램 : lftp ( ftp client )

파일 이름 : lftp-3.2.1.tar.gz (1648 kB)

운영체제 : POSIX 호환 유닉스

라이센스 : GPL

홈페이지 : http://lftp.yar.ru/




지금부터 소개할 유틸리티는 커맨드 라인 인터페이스 기반의 강력한 ftp 클라이언트인 lftp 이다.

예전에는 ncftp를 많이 사용하여 리눅스에서 기본 제공하는엣 ftp 클라이언트보다 더 쉽게 파일을 주고 받을 수 있었다. 많이 알려진 ncftp 보다 강력한 기능을 가진 lftp Redhat 7.2 버전 부터 포함하기 시작했으며, Redhat 8.0부터는 ncftp 를 선택으로 lftp를 기본으로 설치되게 하였다. 그리고 최근에 나온 Fedora Core 4에서는 ncftp패키지를 배포판에 포함하지 않았다. 현재 3.2.1버전 까지 나왔으며, 3.0 대는 커다란 변화가 있었다. lftp ftp, http, fish, sftp, https, ftps 의 다양한 프로토콜을 지원한다. lftp의 모든 명령어는 신뢰성있다. 심각한 에러에 대한 예외 처리가 잘 되어 있고 실패했을시 자동으로 다시 시도한다. 그래서 다운로드가 중지되더라도 자동으로 재 시작한다. 만약 ftp서버가 REST명령어를 지원하지 않더라도 lftp는 성공적으로 전송을 끝내기 위해 재시도 한다. 이 기능은 자주 변하는 유동 IP뿐만 아니라 불안정한 라인에서도 좋은 효과를 볼 수 있다.

그럼 이 lftp를 어떻게 설치하는지 그리고, 어떤점이 좋은지에 대해서 알아보도록 하자. 설치는 여러가지 방법이 있지만, 가장 일반적이고 배포판에 제약을 받지않는 컴파일 설치를 해 보도록 하겠다. 물론 바이너리 버전도 있으니 사용하고 있는 배포판과 동일한 바이너리 버전을 rpm등의 패키지 매니저로 설치면 된다. 먼저 lftp.yar.ru 사이트에 접속한 다음 lftp-3.2.1.tar.gz 파일을 다운로드 하 여 압축을 해제한다. configure 스크립트로 환경설정한 다음, make 명령으로 컴파일 하며, make install 로 설치하면 끝난다. 기본 설치 디렉토리는 /usr/local아래이다.


tar xvfz lftp-3.2.1.tar.gz

cd lftp-3.2.1

./configure && make && make install


다음그림은 lftp를 사용하여, help 페이지를 보았다.


일반적인 ftp클라이언트에서는 보이지 않는것들이 여럿 보인다. 가장 대표적인 몇가지를 보도록 하자.

du명령어를 사용하여 전체의 용량을 알아볼 수 있다.

 
멋진기능중의 하나인 mirror기능을 지원한다. mirror 명령을 이용하여 파일을 다운로드 받거나 업데이트가 가능하며, 또한 원격서버로 업로드 하거나 업데이트 가능하다( -R 옵션이용). 다음그림은 다양한 옵션들을 보여주고 있다.

gzip으로 압축된 파일을 전송하지 않고 볼 수 있는 zcat  zmore 명령어를 지원한다.


위와같이 sftp프로토콜을 이용하여 보안 접속을 하였다. lftp는 이런 보안 프로토콜을 제공하기 때문에 더욱 다양한 환경에서 파일전송을 쉽게 할 수 있다.


lftp http를 지원한다. 자체 파서로 링크를 분석하여 디렉토리 구조로 나타낸다. 그래서 웹 base ftp 서버에 쉽게 접근하여 원하는 자료를 다운 받을 수 있는 강력한 기능을 내장하고 있다.


만약 모든 작업이 끝나지 않은 상태에서 lftp를 정지해야 한다면, 작업 내용을을 백그라운드로 돌릴 수 있다.

lftp는 쉘과 비슷한 명령어 문법을 제공한다. background(&), () 묶여진 명령어 그룹, 하던 작업을 백그라운드로 돌리고 싶으면 Ctrl+z키를 누르고, 다시 wait명령어로 포그라운드로 돌릴 수 있다. 돌고 있는 작업들을 보려면 jobs명령으로 볼 수 있다. 어떤 명령어(cat, ls ...)는 리다이렉트를 지원한다. 그리고 이런 명령어들은 논리연산자(&&, ||)등을 사용할 수 있다.

:

lftp> cat file | gzip > file.gz

lftp> get file &

lftp> (cd /path && get file) &


첫번째 명령어는 file내용을 리다이렉트를 이용하여 gzip으로 압축하여 file.gz으로 저장하는 방법을 보여주는 것이며, 다음 라인은 백그라운드 모드로 file을 내려 받는 것을 보여 주며, 마지막 라인은 명령어들을 묶고, && 조건 연산을 사용하여 백그라운드 모드로 돌리는 것을 보여준다.

at 명령어를 사용하여 정해진 시간에 작업을 실행할수도 있며, queue명령어를 사용하여 명령어를 차례대로 실행시킬수 있다. 물론 진행상황을 보려면 jobs명령으로 가능하다.

lftp ipv6를 지원한다. 물론 ftp proxy , http proxy 등 라우레벨 까지 지원한다.

lftp ssl 지원가능하게 컴파일되었다.

lftp에대해서 전반적으로 살펴본 결과 다양한 기능을 제공하며, 기능 들의 안정성또한 뛰어났다.


참고 문서 : http://lftp.yar.ru/desc.html

test base : Fedora Core 4

작성자 : 수퍼유저코리아 정우영(dolysuperuser.co.kr)

2008년 11월 16일 일요일

Flash Memory mount 하기

메모리 디바이스 확인

fdisk -l

마운트하기

mount  /dev/sdb1 flash(마운트할 폴더)

언마운트하기

sync
mount  /dev/sdb1

2008년 11월 15일 토요일

VI / VIM 라인정렬하기

VI Command 모드에서 

gg
=
G

XXX lines indented 라고 표시가 되면 정렬 완료.

현재 쉘에서 실행된 프로세스 모두 죽이는 방법

[lukepark]$ ps
  PID TTY          TIME CMD
24437 pts/5    00:00:00 bash
24492 pts/5    00:00:00 ps

프로세스에서 첫번째 컬럼(column) 보기

[lukepark]$ ps | awk '{print $1}'
PID
24437
24673
24674



프로세스에서 첫번째 컬럼(column) 보기

[lukepark]$ ps | awk '{print $4}'
CMD
bash
ps
awk



현재 쉘에 있는 프로세스들 죽이기

- 사용중인 쉘은 죽지않는다. kill -9 해야만 죽는 프로세스 또한 죽지않느다.

[lukepark]$ ps | awk '{print $1}' | xargs kill
kill: can't find process "PID"
kill 25404: No such process
kill 25405: No such process
Terminated


- 현재 사용중인 쉘을 비롯한 모든 프로세스가 다 죽는다. X-window 에서 할 경우 쉘창이 닫히고 콘솔에서 할 경우 로그아웃된다.

[lukepark]$ ps | awk '{print $1}' | xargs kill -9



** 아래와 같이 출력되는 부분은 ps 명령을 할 경우 출력되는 head 부분(PID)과 이미 종료된 명령어의 pid를 종료하려다보니 나는 에러이고 head 부분(PID)을 빼는 방법은 awk 를 더 찾아봐야한다. 현재 쉘에서 실행된 프로세스의 종료에는 문제가 없다.

kill: can't find process "PID"
kill 25404: No such process
kill 25405: No such process



http://psuns.org/dp/node/45#comment-15 

2008년 11월 5일 수요일

ldd 명령어

ldd 명령어는 런타임 링커(로더)에 영향을 미치는 LD_TRACE_LOADED_OBJECTS로 불리는 특수한 환경 변수를 위한 래퍼로서 다양한 라이브러리를 메모리에 올리는 과정을 추적한다.

2008년 10월 17일 금요일

grep / find

1. grep 명령어
grep : 파일 전체를 검색해서 정규 표현식에 대응하는 모든 행들을 출력한다. 
egrep : extended grep, grep의 확장판으로 추가 정규 표현식, 메타 문자를 지원한다. 
fgrep : fixed character gerp, fast grep, 모든 문자를 문자 그대로 취급한다. 즉, 정규 표현식의 메타 문자도 일반 문자로 취급한다.

사용법
grep [옵션]... 패턴 [파일] ...
Search for PATTERN in each FILE or standard input.
Example: grep -i 'hello world' menu.h main.c

grep에서 사용하는 정규 표현식 메타 문자
메타 문자 / 기능 / 사용 예 / 사용 예 설명
^ / 행의 시작 시시자 / '^love' / love로 시작하는 모든 행과 대응
$ / 행의 끝 지시자 / 'love$' / love로 끝나는 모든 행과 대응
. / 하나의 문자와 대응 / 'l..e' / l 다음에 두 글자가 나오고 e로 끝나는 문자열을 포함하는 행과 대응
[] / [] 사이의 문자 집합 중 하나와 대응 / '[Ll]ove' / Love나 love를 포함하는 행과 대응
[^] / 문자 집합에 속하지 않는 한 문자와 대응 / '[^A-K]ove / A와 K 사이의 범위에 포함되지 않는 한 문자와 ove가 붙어있는 문자열과 대응

grep 옵션
-c : 일치하는 행의 총 수를 출력한다(count).
-h : 파일 이름을 출력하지 않는다.
-i : 대소문자를 구분하지 않는다(ignore).
-l : 패턴이 존재하는 파일의 이름만 출력한다(list file).
-n : 파일 내에 행 번호를 함께 출력한다(number).
-v : 패턴이 존재하지 않는 행만 출력한다(invert).
- w : 단어 단위로 찾는다(word).


2. find 명령어
find [path...] [expression]
유닉스 마다 조금씩 다른 문법을 가지고 있기 때문에 시스템의 find 맨 페이지를 살펴봐야 한다.

-name : 이름으로 파일을 찾는다(와일드 카드와 함께 사용될 때에는 반드시 따옴표로 묶어야 함).
-type [bdcplfs] : 파일의 종류(블록, 디렉토리, 문자, 파이프, 심볼릭 링크, 일반 파일, 소켓)를 지정하여 찾는다.
-user : 소유자로 파일을 찾는다(이름이나 UID).
-group : 그룹으로 파일을 찾는다(이름이나 GID).
-perm : 퍼미션으로 파일을 찾는다(권한 지정).
-size :  
-atime n : 파일이 읽힌 가장 최근 시간으로 찾는다(accessed time).
-ctime n : 파일의 소유자 권한이 바뀐 가장 최근 시간으로 찾는다(changed time)
-mtime +n/-n/n : 파일이 수정된 가장 날짜로 찾는다(modified time)
   +5 - 5일 동안 수정 되지 않은 파일
   -5 - 5일 동안에 수정된 파일
     5 - 오늘부터 5일 전에 수정된 파일
-newer file1 file2 : file1 보다는 새로운 파일이지만 file2 보다는 오래된 파일을 찾는다.
-delete : 찾은 파일을 삭제한다.
-ls : ls -dils와 같은 출력을 한다.
-print : find 명령의 실행 결과를 출력한다. 
-exec command {} \; : 파일을 찾은 후 찾은 파일들에 대해 특정 명령을 수행한다(문법 주의).
-depth : 
-maxdepth n : 0이 아닌 정수 값으로 경로 깊이를 지정하여 찾는다(1은 시작 위치로 지정한 디렉토리만 검색).
-follow : 심볼릭 링크가 있으면 심볼릭 링크를 따라가서 찾는다.
-mount : 현재 파일 시스템과 동일한 파일 시스템에서만 찾는다.
-nouser : /etc/passwd 파일에 없는 소유자의 파일을 찾는다.
-nogroup : /etc/groups 파일에 없는 그룹의 파일을 찾는다.

사용 예시
# find . -print
.은 현재 디렉토리를 의미한다. 현재 find 명령어가 실행되고 있는 디렉토리와 그 모든 서브 디렉토리에 있는 파일들을 찾아서 화면에 출력한다. 

# find . -name "*.pdf" -print
# find . -name '*.pdf' -print
# find . -name \*.pdf -print

- .pdf인 모든 파일을 모두 찾는다.
./pdfs/gdb(1).pdf
./pdfs/gdb(2).pdf
./pdfs/gdb(3).pdf
./docs/Firewall.pdf

# find . -name "*.pdf" -print | grep -v "^\./pdfs/"
- pdfs 디렉토리 내에 있지 않은 pdf 파일 만을 찾는다.
find 명령의 결과를 파이프를 통해 grep에 전달한다.
grep에서 -v는 역 필터를 설정한다. 즉, grep -v 다음에 나오는 것과 반대되는 것을 보여준다. 
전체 표현 식을 인용 부호 감싸 주었다("^./pdfs/").
   ^는 grep에게 표현 식이 각 라인의 1열에서부터 일치하는 것 만을 찾으라 말하는 것이다.
   \는 .을 특별한 문자로 해석하지 못하게 하기 위해 쓰인 추가적인 인용 부호이다.
표현 식 전체는 grep에게 ./pdfs/ 디렉토리에 있지 않는 .pdf 파일을 찾아 보여달라는 것을 의미한다.

# find . -name "*.pdf" -print | grep -v "^\./pdfs/" | xargs -J X mv X ./pdfs/
- 찾은 파일을 다른 디렉토리로 옮긴다.
grep은 find의 결과를 필터링 한다. 그 grep의 결과 값이 pipe를 통해 xargs 명령어로 전달이 되고 원하는 일이 완료된다. 
J 스위치는 xargs 명령어에게 stdin으로 들어오는 모든 파일들을 소스로, 명령어 다음에 나오는 파일을 목적지로 가정하게 한다. 예를 들면 find 명령을 내리기 전에는 얼마나 많은 파일들을 옮겨야 하는 지 알 수 없다. 찾은 파일이 몇 개인지 상관없이 xargs가 해당 파일 모두를 pdfs 디렉토리로 옮기게 하는 일종의 마법 같은 작업이 J 스위치로 인해 가능하다. 또한 J 스위치가 올바르게 작동시키기 위해 X라는 문자열을 정의하여 mv 다음에 삽입한다.

# find . -atime +30 -print
- 파일을 읽은 30일 이상이 지난 파일들을 찾아서 보여준다.

# find . -mtime -1 -print
- 24 시간 안에 수정된 파일을 찾아서 보여준다.

# find . -atime +7 -o -size +20480 -print
- 7일 이상 접근하지 않은 파일이거나 크기가 10MB 이상인 파일을 찾아서 보여준다.
여러 스위치를 결합해서 사용할 때 -o나 논리 or를 사용하지 않는다면 모든 결과는 논리적인 and의 결과이다. 
size 스위치는 크기를 512 바이트 단위로 인식한다. 

# find . -atime +7 -o -size +`expr 10 \* 1024 \* 2` -print
- size를 KB 단위로 보여준다.
backquotes(`) 사이에서 필요로 하는 계산을 한다(`는 키보드의 가장 왼쪽 상단에 있다). 

# echo find . -atime + 7 -o -size +`expr 10 \* 1024 \* 2` -print
find. -atime +7 -o -size +20480 -print
find 명령어 앞에 echo를 더해서 그 결과가 무엇인지 미리 알아 볼 수도 있다.
--------------------------------------------------------------------------------

루트 디렉토리부터 대소문자 구별해서 파일 찾기
# find / -name 파일명 -type f

루트 디렉토리부터 대소문자 구별 없이 파일 찾기 (대소문자 구별 없음)
# find / -iname 파일명 -type f 

루트 디렉토리부터 확장자가 txt인 파일 찾기 
# find / -name "*.txt"

현재 디렉토리와 한 단계 아래의 디렉토리에서만 파일 찾기
# find . -maxdepth 2 -name "*.txt"

현재 디렉토리부터 첫 글자가 영어 대문자인 파일 찾기
# find . -name "[A-Z]*"

현재 디렉토리부터 worldtop이라는 사용자 소유의 파일 찾기
# find . -user worldtop

자신의 홈 디렉토리부터 최근 3일 동안 변경된 파일 찾기
# find ~ -mtime -3

루트 디렉토리부터 suid와 guid가 설정된 파일을 찾아서 권한 확인(cracker의 침입이 의심스러운 경우)
# find / -perm +6000
# find / -type f -perm +6000 -ls

현재 디렉토리부터 하위 디렉토리 내의 파일/폴더 명에 .jsp가 들어가는 경로를 포함한 파일/폴더 보여 주기
# find . | grep .jsp
# ls -R | grep .jsp ==> 경로 미 포함 파일/폴더 보여주기

파일들을 찾아서 recursive하게 삭제하기
# fine / -name *.log -exec rm {} \;
-exec  파일을 찾은 후 다음의 명령을 실행하라.
rm {} \;  한 세트로 앞에서 찾은 파일을 삭제하라. 띄어스기 주의!

http://t3388.woweb.net/blog2/entry/grep-과-find

VI / VIM 사용법

vi 편집기 사용법
 

 vi 시작

 텍스트 삭제

 

 vi filename

 파일열기, 작성

 

 x

 문자 삭제

 

 vi +18 filename

 18행으로 파일 열기

 

 dw

 단어 삭제

 

 vi +/"string" fn

 "string"의 처음 발생 단어부터

 

 dd

 행 삭제

 

 vi -r filename

 손상된 파일 회복

 

 D

 커서 오른쪽 행 삭제

 

 view filename

 읽기 전용으로 파일 열기

 

 :5,10 d

 5-10 번째 행 삭제

 커서명령(이동)

 텍스트 복사 및 이동

 

 h(←)

 왼쪽으로 커서 이동

 

 yy

 행 yank 또는 복사

 

 j(↓)

 아래로 커서 이동

 

 Y

 행 yank 또는 복사 

 

 k(↑)

 위로 커서 이동

 

 dd

 행 삭제

 

 l(→)

 오른쪽으로 커서 이동

 

 P

 yank되거나 삭제된 행 현재 행 위에 삽입

 

 w

 한 단어 오른 쪽으로 커서 이동 

 

 p

 yank되거나 삭제된 행 현재 행 아래에 삽입

 

 b

 한 단어 왼쪽으로 커서 이동 

 

 :1,2 co 3

 1-2행을 3행 다음으로 복사

 

 Return

 한 행 아래로 커서 이동

 

 :4,5 m 6

 4-5행을 6행 위로 이동

 

 Back Space

 한 문자 왼쪽으로 커서 이동

 행 번호 설정

 

 Space Bar

 한 문자 오른 쪽으로 커서 이동

 

 :set nu

 행 번호 표시

 

 H

 화면의 맨위로 이동

 

 :set nonu

 행 번호 숨기기

 

 M

 화면의 중간으로 이동

 행 찾기

 

 L

 화면의 맨 아래로 이동

 

 G

 파일의 마지막 행으로 가기

 

 Ctrl + F

 한 화면 앞으로 이동

 

 21G

 파일의 21번째 행을 가기

 

 Ctrl + D

 반 화면 앞으로 이동

 탐사 및 대체

 

 Ctrl + B

 한 화면 뒤로 이동

 

 /string/

 string 탐색

 

 Ctrl + U

 반 화면 뒤로 이동

 

 ?string?

 string 역방향 탐색

 문자와 행 삽입

 

 n(N)

 string의 다음(이전) 계속 탐색

 

 a

 커서 오른쪽에 문자 삽입

 

 :g/search-string/s//replace-string/gc 

 

 A

 커서 오른쪽, 행의 끝에 문자 삽입

 

 

 각 발생 탐색 후 확인하고 대체

 

 i

 커서 왼쪽에 문자 삽입

 

 :s/srt/rep

 현재 행의 str을 rep로 대체

 

 I

 커서 왼쪽, 행의 처음에 문자 삽입

 

 :1,.s/str/rep/

 1부터 현재 행의 str을 rep로 대체

 

 o

 커서 아래에 행 삽입

 

 :%s/str/rep/g

  파일 전체 str을 rep로 전부 대체

 

 O

 커서 위에 행 삽입

 

 

 

 텍스트 변경

 화면정리

 

 cw  (종료:ESC)

 단어변경

 

 :Ctrl-1

 불필요한 화면정리 후 다시 표시

 

 cc  (종료:ESC)

 행 변경

 파일을 파일로 삽입

 

 C   (종료:ESC)

 커서 오른쪽의 행 변경

 

 :r filename

 커서 다음에 파일 삽입

 

 s   (종료:ESC)

 커서가 위치한 문자열 대체

 

 :34 r filename

 파일을 34번째 행 다음에 삽입

 

 r

 커서 위치의 문자를 다른 문자로 대체

 보관 및 종료

 

 r - Return

 행 분리

 

 :w

 변경사항 보관

 

 J

 현재 행과 아래 행 결합

 

 :w filename

 버퍼를 파일로 보관

 

 xp

 커서 위치 문자와 오른쪽 문자 교환

 

 :wq

 변경사항 보관 후 vi 종료

 

 ~

 문자형(대.소문자)변경

 

 ZZ

 변경사항 보관 후 vi 종료 

 

 u

 이전 명령 취소

 

 :q!

 변경사항 보관하지 않고 종료

 

 U

 행 변경 사항 취소

 

 

 

 

 :u

 이전의 최종 행 취소

 

 

 

 

 .

 이전 최종 명령 반복