728x90

 

Command mode(명령 모드) - vi의 기본모드이며 vi를 실행하면 뜨는 기본화면이다.

Edit mode(입력 모드) - a, i, o등을 누르면 이동하는 모드이며 내용 입력 또는 C코딩이 가능하다.(오른쪽 아래에 --Insert-- 가 뜬다.)

Last line mode(실행 모드) - 입력모드에서 저장종료, 강제종료 등의 명령어를 입력하는 모드이다.(:, /, ? 등의 명령으로 동작)

<vi 에디터 명령어>

1. vi 시작 명령어

명령어

명령어 동작 설명

vi [file name]

파일 열기, 작성

vi +18 [file name]

18행으로 파일 열기

vi +/"문자열" fn

"문자열"의 처음 발생 단어부터 열기

vi -r [file name]

손상된 파일 회복

view [file name]

읽기 전용으로 파일 열기

2. vi 커서 이동 명령어

명령어

명령어 동작 설명

h(←)

왼쪽으로 커서 이동

j(↓)

아래로 커서 이동

k(↑)

위로 커서 이동

l(→)

오른쪽으로 커서 이동

w

오른쪽 한 단어의 끝 부분으로 커서 이동

e

오른쪽 한 단어의 앞 부분으로 커서 이동

b

왼쪽 한 단어의 앞 부분으로 커서 이동

Enter

한 행 아래로 커서 이동

Back space

한 문자 왼쪽으로 커서 이동

Space bar

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

^

행의 맨 왼쪽으로 커서 이동

$

행의 맨 오른쪽으로 커서 이동

H

화면의 맨 위로 이동

M

화면의 중간으로 이동

L

화면의 맨 아래로 이동

"숫자"G

"숫자"만큼 지정한 줄로 커서 이동

3. 문자, 행 삽입 명령어

명령어

명령어 동작 설명

a (종료 : esc)

커서 오른쪽에 문자 삽입

A (종료 : esc)

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

i (종료 : esc)

커서 왼쪽에 문자 삽입

I (종료 : esc)

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

o (종료 : esc)

커서 아래에 행 삽입

O (종료 : esc)

커서 위에 행 삽입

4. 텍스트 변경 명령어

명령어

명령어 동작 설명

cw (종료 : esc)

단어 변경

cc (종료 : esc)

행 변경

C (종료 : esc)

커서 오른쪽의 행 변경

s (종료 : esc)

커서가 위치한 문자열 대체

S (종료 : esc)

커서가 위치한 라인의 문자열 대체

r

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

r-Enter

행 분리

J

현재 행과 아래 행 결합

xp

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

~

문자형(, 소문자) 변경

u

이전 명령 취소

U

행 변경 사항 취소

:u

이전의 최종 행 취소

.

이전 최종 명령 반복

5. 택스트 삭제 명령어

명령어

명령어 동작 설명

x

커서가 있는 문자 삭제

5x

커서가 있는 위치부터 5개의 문자를 삭제

dw

현재 커서가 있는 한 단어 삭제

dd

커서가 있는 라인 삭제

5dd

커서가 있는 라인부터 5개의 라인 삭제

db

커서의 위치에서 거꾸로 한 단어 삭제

D

커서 오른쪽 행 삭제

:5,10d

5-10번째 행 삭제

6. 복사 및 이동 명령어

명령어

명령어 동작 설명

yy

yank 또는 복사

Y

yank 또는 복사

P

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

p

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

:1,2 co 3

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

:4,5 m 6

4-5행을 6행 위로 이동

7. 행 번호 설정 명령어

명령어

명령어 동작 설명

:set nu

행 번호 표시

:set nonu

행 번호 숨기기

8. 행 찾기 명령어

명령어

명령어 동작 설명

G

파일의 마지막 행으로 가기

21G

파일의 21번째 행으로 가기

ctrl + G

현재의 filename line수를 알려줌

9. 탐색 및 대체 명령어

명령어

명령어 동작 설명

/검색할 문자열/

오른쪽 아래 방향으로 문자열 검색

?검색할 문자열?

왼쪽 위 방향으로 문자열 검색

n

문자열의 다음으로 계속 검색

N

문자열의 이전으로 계속 검색

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

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

string/gc

:s/str/rep/

현재 행의 str rep로 대체

:1,.s/str/rep/

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

:%s/str/rep/g

전체 str rep로 전부 대체

:.$/aaa/bbb/

커서의 위치로부터 파일의 끝까지 있는 모든 aaa bbb로 대체

:! [file name]

vi열린 상태에서 외부명령어 실행

10. 화면정리 명령어

명령어

명령어 동작 설명

ctrl + I

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

11. 파일 명령어

명령어

명령어 동작 설명

:r [file name]

커서 다음에 파일 삽입

:34 r [file name]

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

:e [file name]

파일 열기

12. 보관 및 종료 명령어

명령어

명령어 동작 설명

:w

변경사항 저장

:w [file name]

버퍼를 파일로 보관

:wq

변경사항 보관 후 vi 종료

:ZZ

변경사항 보관 후 vi 종료

:q!

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

:q

수정한 파일을 저장하지 않고 vi 종료

:e!

수정한 것을 무시하고 다시 편집상태로

 

 

[출처] [Linux] vi 필수 명령어 모음|작성자 Specialist

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
find와 grep을 활용한 검색  (0) 2012.08.27
linux ftp client 사용법  (0) 2012.04.10
VI Editor 사용법  (0) 2012.03.23
728x90

;;;;;;;;;;;;;;;;;;;;;;;
;
이 파일에 대해
;;;;;;;;;;;;;;;;;;;;;;;
;
;
이것은 추천 되는 설정을 기술한 PHP 4 스타일의 php.ini-dist 파일 이다.
;
이 안에는 PHP 를 보다 유용하고 안전하게 해
;
그를 지원하기 위한 약간 비표준의 설정이 있다.
;
;
이러한 설정을 실시하는 일에 의해, 몇개의 어플리케이션에 대해
; PHP
의 호환성이 없어지거나 또 개발이 곤란하게 되는 일도 있을 지도 모르다.
;
;
그런데도 이 파일의 설정을 추천하고 싶다.
;
;
표준 설정으로부터 변경하는 곳은 모두 자세하게 설명하고 있으므로,
;
각각의 엔트리에 대해서 채용해야할 것인가 어떤가를 심사숙고해 주었으면 한다.
;
; php.ini
파일에 관한 일반적인 설정에 대해서는
; PHP
의 배포물에 포함되어 있는 php.ini-dist 파일을 참조.
;
;
이 파일은 php.ini-dist 파일에 비해, 몇개의 지시문의 값이 차이가 난다.
;
이것은 퍼포먼스를 개선하는 반면 이미 동작 하고 있던 PHP3 베이스의
;
표준과는 호환성이 없어질 수도 있다.
;
이 파일을 채용한다면, 뭐가 바뀌었는지를 제대로 인식해,
;
거기에 따라서 스크립트를 고쳐 쓰는 것이 필요하다.
;
; - register_globals = Off [
시큐리티, 퍼포먼스]
;
;
입력 데이터(POST, GET, 쿠키, 환경 변수 그 외의 서버 변수)에 관해서
;
이미 글로벌 변수로서 등록하지 않게 한다.
; $foo
대신에 $_REQUEST["foo"] 를 사용할 필요가 있다.
; (request, namely, POST, GET, cookie
변수도 마찬가지)
;
특정의 $_GET["foo"], $_POST["foo"], $_COOKIE["foo"],
; $_FILES["foo"]
의 형식으로 지정해도 괜찮다.
;
게다가 import_request_variables()도 참조하면 좋을 것이다.
;
;
주의:register_globals 는 시큐리티 관련의 버그를 유발할 가능성이 있다
;
모아 두어 다음의 버젼의 PHP 에서는 추천 되지 않게 되고 있다.
; (
, 디폴트로 Off 가 될 방향)
;
상세한 것에 대하여는
; http://php.net/manual/en/security.registerglobals.php
를 참조.
;
; - display_errors = Off [
시큐리티]
;
;
이 지시문을 off 로 하면 스크립트의 실행중에 에러가 발생 하여도
;
스크립트의 출력으로서의 에러 표시를 하지 않게 되어
;
접속 사용자에게 에러가 발생한것을 모르게 한다.
;
에러가 발생하면 에러 메세지안에 그 스크립트나 웹서버,
;
데이터 베이스 서버 등에 관한 정보가 표출 되는 일이 있어 문제가 발생 할 수 있다.
;
실제 운영중이 환경에서는 이 지시문을 off 로 하는 것이 좋다.
;
; - log_errors = On [
시큐리티]
;
;
이 지시문은 위의 display_errors 를 보완한다.
;
스크립트의 실행중에 발생해 모든 에러는 로그로 남게 된다.
; (
전형적으로는 서버의 에러 로그에 저장 되지만, 그 이외의 방법도 있다)
; (
위의 설정과 함께 다루는 것으로 접속 사용자에 정보를 표출될 일이 없이
;
장해에 관한 상세 정보를 얻을 수가 있다. )
;
; - output_buffering = 4096 [
퍼포먼스]
;
;
출력 버퍼를 4KB 로 설정한다.
;
출력 버퍼링을 유효하게 하면 일반적으로는
;
기입 회수나 가끔 패킷의 송출 횟수가 줄어들어 퍼포먼스의 향상으로 연결된다.
;
이 지시문에 의해 어느 정도 퍼포먼스를 향상 시키지만
;
사용하고 있는 웹서버나 스크립트에 크게 의존한다.
;
; - register_argc_argv = Off [
퍼포먼스]
;
; $argv
$argc 글로벌 변수의 등록을 하지 않는다.
;
; - magic_quotes_gpc = Off [
퍼포먼스]
;
;
입력 데이터가 backslash로 이스케이프 되지 않게 되기 때문에
;
SQL을 데이타베이스에 보낼 수가 없게 된다.
;
이 설정으로 데이타베이스에 보내고 싶은 경우는
;
그때마다 addslashes() 함수를 사용하도록 한다.
;
; - variables_order = "GPCS" [
퍼포먼스]
;
;
환경 변수를 $HTTP_ENV_VARS[] 에 등록 하지 않게 한다.
;
환경 변수에 사용하려면 getenv()를 사용하도록 한다.
;
; - error_reporting = E_ALL [
코드의 정리, 시큐리티]
;
;
디폴트에서는 PHP E_NOTICE 형의 에러를 억제한다.
;
이러한 에러 메세지는 중대하지 않는 에러에 대해서도 표출 되지만
;
그것들은 보다 큰 문제의 징조일 수도 있다.
;
; - allow_call_time_pass_reference = Off [
코드의 정리]
;
;
함수 사용시에, 변수를 강제적으로 참조 하는 것을 금지한다.
;
이것을 PHP4 스타일로 실시하기 위해서는, 함수 정의 시에 관련하는 인수를 참조 하도록 한다.

;;;;;;;;;;;;;;;;;;;;
;
언어 옵션
;;;;;;;;;;;;;;;;;;;;

; Apache
상에서 PHP 의 스크립트 언어 엔진을 유효하게 한다
engine = On

; <?
태그의 사용을 허가한다.
;
허가하지 않는 경우는 <?php <!-- script 태그만 인식되고 <? 태그는 인식하지 않는다.
short_open_tag = On

; ASP
스타일의 <% %> 태그를 허가한다.
asp_tags = Off

;
부동 소수점을 표시할 때의 유효 자리수를 설정한다.
precision = 14

;
강제적으로 2000 년 문제를 대응하게 한다.
; (
대응하고 있지 않는 브라우저의 경우는 문제를 일으킨다)
y2k_compliance = Off

;
출력 버퍼링을 사용하면 PHP 의 출력 층에 있어서의 몇 안 되는 지연되는 곳에
;
바이 부분을 송출한 다음에도(쿠키 포함) 헤더행을 송출할 수 있다.
;
실행시에 출력 버퍼링용 함수를 콜 하는 것으로, 출력 버퍼링을 유효하게 할 수가 있다.
;
또 이 지시문을 On 으로 하면, 모든 파일에 대해 출력 버퍼링이 유효가 된다.
;
버퍼를 특정의 사이즈에 제한하고 싶은 경우는
;
이 지시문의 값으로 'On'대신에 최대의 바이트수를(output_buffering=4096 와 같이) 설정한다.
output_buffering = 4096

; implicit_flush
On 으로 설정하면 출력 층에 대해 각 출력 블록마다 자동적으로 플래시를 하게 된다.
;
이것은 즉, print(), echo() 및 각 HTML 블록의 뒤에 PHP 함수의 flush()를 부르는 것과 같은 내용이다.
;
이 옵션을 유효하게 하면 퍼포먼스의 문제와 밀접하게 관계되므로,
;
일반적으로는 디버그 용도만의 사용에 한정해야 할 것이다.
implicit_flush = Off

;
함수 사용 시에, 변수를 강제적으로 참조 하는 것을 금지한다.
;
이것을 PHP4 스타일로 실시하기 위해서는, 함수 정의 시에 관련하는 인수를 참조 하도록 한다.
allow_call_time_pass_reference = Off

;
;
세이프 모드
;
safe_mode = Off

;
세이프 모드의 디폴트에서는 파일을 오픈할 때에 UID 를 비교한다.
;
이 제한을 풀고 싶은 경우는 safe_mode_gid On 로 한다.
safe_mode_gid = Off

; safe_mode
On 의 경우 파일을
;
이 디렉토리 및 그 하위로부터 include 하는 경우는 UID/GID 의 체크가 스킵 된다.
; (
이러한 디렉토리는 include_path 에 포함되도록 하거나
;
또는 include 시에 절대 경로를 사용해야 한다.)
safe_mode_include_dir =

; safe_mode
On 의 경우 exec 관련의 함수를 통해 실행할 수 있는 권한을
; safe_mode_exec_dir
에 있는 실행 파일만으로 설정 한다.
safe_mode_exec_dir =

; open_basedir
이 설정 되었을 경우 모든 파일 조작은
;
해당 디렉토리 및 그 하위 디렉토리로 제한된다.
;open_basedir =

safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH

;
이 지시문에서는 특정의 함수를 시큐리티적인 이유로써 사용할 수 없게 할 수 있다.
;
이것은 인수로서 fopen,fwrite , 단락의 리스트로 설정한다.
;
이것은 safe_mode On/Off 에 관계없이 항상 유효하게 된다.
disable_functions =

;
문법의 하이라이트 표시할 때의 색의 지정.
; <font color="??????">
의 것이라면 설정 가능하다.
highlight.string = #CC0000
highlight.comment = #FF9900
highlight.keyword = #006600
highlight.bg = #FFFFFF
highlight.default = #0000CC
highlight.html = #000000

;
;
그 외
;
; PHP
가 해당 서버에 인스톨 되고
;
사용되고 있다는 내용을 알려주거나 알려주지 않도록 설정한다.
expose_php = On

;;;;;;;;;;;;;;;;;;;
;
자원 제한
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ;
각 스크립트의 최대 실행 시간을 초단위로
memory_limit = 8M ;
스크립트 마다의 최대 메모리 소비량


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
에러 핸들링과 로그
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; error_reporting
는 비트 필드에서, 지정한 수치까지의 에러가 보고된다.
;
; E_ALL -
모든 에러와 경고
; E_ERROR -
치명적인 실행시 에러
; E_WARNING -
실행시의 경고(치명적이지 않는 것)
; E_PARSE -
컴파일시의 퍼스 에러
; E_NOTICE -
실행시의 공지 사항(이러한 경고는 작성한 코드의 버그
;
에 기인하는 것이 많지만, 고의의 경우도 있다(,
;
초기화되어 있지 않은 변수를 사용하거나 자동적으로 공문자열
;
에 초기화된다고 하는 사실에 의존했을 경우).
; E_CORE_ERROR - PHP
의 초기화시에 발생한 치명적 에러
; E_CORE_WARNING - PHP
의 초기화시에 발생한 치명적이지 않은 경고
; E_COMPILE_ERROR -
치명적인 컴파일시의 에러
; E_COMPILE_WARNING -
컴파일시의 경고(치명적이지 않는 것)
; E_USER_ERROR -
유저가 생성한 에러 메세지
; E_USER_WARNING -
유저가 생성한 경고 메세지
; E_USER_NOTICE -
유저가 생성한 통지 메세지
;
;
사용예:
;
; -
통지를 제외한 모든 에러를 표시한다
;
;error_reporting = E_ALL & ~E_NOTICE
;
; -
에러만을 표시한다
;
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
;
; - E_NOTICE
를 제외한 모든 에러를 표시한다
;
error_reporting = E_ALL

;
에러를 표시한다. 실제 운영 환경에서는 이 기능은 오프로 해 두고
; error_log
기능을 사용하는 것을 추천한다.
;
이것은 실제 운영 환경에서 display_errors 를 유효하게 해 버리면
;
당신의 웹사이트의 파일 정보나 데이타베이스 schema등의 시큐리티 정보를
;
접속 사용자에게 표출 될 수 있기 때문이다.
display_errors = Off

; display_errors
On 의 경우여도 PHP 의 시작시의 에러는 표시되지 않는다.
;
디버그시를 제외해 display_startup_errors Off 인 채로 설정해 두는 것을 추천한다.
display_startup_errors = Off

;
로그 파일에 에러 로그를 기록 한다.
;
전에 얘기 한것과 같이 실제 운영 환경에서는 에러 표시 기능 대신에
;
에러 로그 기능을 사용하는 것을 추천한다.
log_errors = On

;
마지막 에러/경고 메세지를 $php_errormsg 에 저장한다.
track_errors = Off

;
에러 메세지중에 HTML 태그를 넣지 않게 한다.
;html_errors = Off

;
에러 메세지의 전에 출력하는 캐릭터 라인
;error_prepend_string = "<font color=ff0000>"

;
에러 메세지의 뒤에 출력하는 캐릭터 라인
;error_append_string = "</font>"

;
지정된 파일에 에러를 기록한다
;error_log = filename

; syslog
에 에러를 기록한다. (NT 에서는 이벤트 로그, Windows 95 에서는 무효)
;error_log = syslog

;
캐릭터 라인에 + 연산자가 사용되고 있으면 경고
warn_plus_overloading = Off

;;;;;;;;;;;;;;;;;
;
데이터·핸들링
;;;;;;;;;;;;;;;;;
;
;
주의 - track_vars PHP 4.0.3 현재는 *항상* 유효하다.

;arg_separator.output = "&amp;"

;
입력 URL 를 퍼스 해 변수로 하기 위해서 PHP 로 사용되는 단락 문자의 리스트.
;arg_separator.input = ";&"

;
이 지시문은 PHP 가 등록하는 GET, POST, Cookie 환경 변수
; (
순서에 G, P, C, E, S, 자주 EGPCS GPC 등으로 불린다)에 있어서의 순서를 규정한다.
;
등록은 왼쪽에서 오른쪽을 향해 행해져 새로운 값은 낡은 값을 덮어 쓴다.
variables_order = "GPCS"

; EGPCS
변수를 글로벌 변수로서 등록할지 말지를 설정한다.
;
; register_globals
Off 한 채로도 움직이는 PHP 스크립트를 쓰도록 평소부터 노력해 두면 좋다.
;
코드의 불편함을 그다지 자주 생각하지 않은 채 변수를 글로벌로서 액세스를 가능하게 하면
;
잠재적으로 세큐리티를 발생시킬 수 있다.
register_globals = Off

; argc
argv 변수
; (GET
의 정보에 포함될 가능성이 있다.)를 선언할지 말지를 규정한다.
;
이러한 변수를 사용하지 않으면 퍼포먼스를 개선한다.
register_argc_argv = Off

; PHP
가 받아들이는 일을 할 수 있는 POST 데이터의 최대 사이즈
post_max_size = 8M

;
이 지시문은 추천 되지 않는다. 대신에 variables_order 를 사용하라.
gpc_order = "GPC"

; Magic quotes
;

; GET/POST/Cookie
의 입력 데이터에 관해서 특수 문자를 이스케이프
magic_quotes_gpc = Off

;
실행시에 생성된 데이터
; (
SQL 로부터의 데이터, exec()로부터 등)에 관한 특수 문자 이스케이프
magic_quotes_runtime = Off

; sybase
스타일의 특수 문자 이스케이프( ' \' 대신에 '' 로 변환한다.)
magic_quotes_sybase = Off

; PHP
문서의 전후에 파일을 자동적으로 추가한다.
auto_prepend_file =
auto_append_file =

; PHP
4.0b4 현재의 디폴트에서는,
; Content-type:
헤더로 항상 문자 인코딩을 출력한다.
; charset
의 송신을 시키고 싶지 않으면, 설정값을 비운다.
;
;
디폴트는 text/html 이다.
default_mimetype = "text/html"
;default_charset = "iso-8859-1"

;
항상 $HTTP_RAW_POST_DATA 변수를 발생시킨다
;always_populate_raw_post_data = On

;;;;;;;;;;;;;;;;;;;;;;;;;
;
패스와 디렉토리
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/
패스1:/패스 2"
;include_path = ". :/php/includes"
;
; Windows: "\
패스1;\패스 2"
;include_path = ". ;c:\php\includes"

; PHP
페이지의 root 디렉토리
doc_root =

; /~username
로 액세스 되었을 경우에 PHP 가 스크립트를 실행한다
user_dir =

;
확장 모듈이 있는 디렉토리
extension_dir = . /

; dl()
함수를 유효하게 할지를 설정한다.
; dl()
함수는 IIS Zeus 라고 하는
;
멀티 thread 서버에서는 올바르게 동작 하지 않고 자동적으로 무효가 된다.
enable_dl = On

;;;;;;;;;;;;;;;;
;
파일의 업 로드
;;;;;;;;;;;;;;;;

;
파일의 업로드를 허가할지를 설정한다.
file_uploads = On

; HTTP
로 파일을 업 로드할 때의 임시 작업 디렉토리
; (
지정되지 않는 경우는 시스템의 디폴트(TEMP 디렉토리)가 사용된다)
;upload_tmp_dir =

;
업 로드하려는 파일의 최대 사이즈
upload_max_filesize = 2M

;;;;;;;;;;;;;;;;;;
; Fopen
의 설정
;;;;;;;;;;;;;;;;;;

; URL(http://
ftp:// )을 파일로서 취급할지를 결정한다
allow_url_fopen = On

; anonymous ftp
의 패스워드 지정(당신의 메일 주소)
;from="john@doe.com"

;;;;;;;;;;;;;;;;;;;;;;
;
동적인 확장 기능
;;;;;;;;;;;;;;;;;;;;;;
;
;
자동적으로 로드 되는 확장 기능을 사용하고 싶은 경우는 아래에서 지정한다:
;
; extension=modulename.extension
;
;
예를 들어, Windows 라면:
;
; extension=msql.dll
;
;
혹은, UNIX 라면,
;
; extension=msql.so
;
;
지정하는 것은 모듈명에만 해야 한다.
;
여기에서는 디렉토리명을 지정할 필요는 없다.
;
확장 기능의 장소는 extension_dir 디렉토리로 지정한다.
;
; Windows
의 확장 기능
;
주의:MySQL ODBC 의 기능은 표준으로 짜넣어지고 있으므로, dll 는 불필요하다.
;
;extension=php_bz2.dll
;extension=php_ctype..dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_cybercash.dll
;extension=php_db.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_domxml.dll
;extension=php_dotnet.dll
;extension=php_exif.dll
;extension=php_fbsql.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd.dll
;extension=php_gettext.dll
;extension=php_hyperwave.dll
;extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_ingres.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_overload.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_printer.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_w32api.dll
;extension=php_xslt.dll
;extension=php_yaz.dll
;extension=php_zlib.dll

## 에러 메세지 관련

error_log String

String
은 스크립트에 의해(PHP 자체가 아닌) 생성된 오류들을 기록하는 파일을 지정한다.
만약 특정값 syslog 가 사용되었다면 오류들은 대신 시스템의 로거(logger)로 보내진다.

error_reporting Integer

오류 ㄹㅗㅎ고 레벨을 설정한다.
매개변수인 Integer 는 하나 또는 다음 펴에 있는 비트값들의 합을 나타내는 정수이다.

예를 들어, 만약 일반 오류들, 일반 경고들 그리고 스타일과 연관된 경고들만 원한다면
Integer
값이 11이라고 계산을 할 수 있다. (, 1+2+8)

기본값은 7이다. , 일반 오류, 일반 경고 그리고 파서 오류 등이 보고된다.

비트값

설명

1

일반 오류

2

일반 경고

4

파서 오류

8

스타일 관련 경고(심각하지 않은)



display_errors Boolean

오류들이 HTML 출력 형식으로 화면상에 인쇄되어야 하는지 여부를 결정한다.
만약 False로 설정되어 있다면 PHP로부터 비밀스런 오류 메세지를 브라우저로 보내는 것 대신
어떤 오류 핸들링을 수행할 수 있다.

또한, @으로 시작되는 오류메세지들의 표시를 중지시킬 수도 있다.

error_prepend_string String
error_append_string String

오류 출력할때 사용하는 HTML 스트링 이다.
화면에 표시되는 오류 메세지를 HTML 로 꾸미고 싶을ㄸㅒ 사용한다.

PHP
ini_set 명령으로 사용할때는 다음과 같은 형식으로 사용할 수 있다.


<?
        ini_set("error_prepend_string", "<BR><FONT COLOR=RED><B>PHP 메세지</B></FONT> :: ");
        ini_set("error_append_string", "<BR>");
 
        // ERROR
        foreach($test As $aa);
?>



출력 결과는

Description: 에러 표시>

와 같이 표현 할 수 있다.

## 전자메일 관련 구성

PHP 는 수많은 메일 엑세스 지원 기능들을 가지고 있다.
약간의 노력만 하면 IMAP(Interactive Mail Access Protocol) POP3(Post Office Protocol) 서버에 있는 전자메일을
엑세스하는 프로그램들을 작성할 수 있다.
그 기능들을 API 들을 통해 사용할 수 있지만, 행동을 설정하는 몇 가지 구성 파일 명령어들을 사용할 수도 있다.

SMTP String

이 명령어는 Windows 플랫폼상에 PHP를 설치한 경우에만 적용된다.

여기서 String mail() 함수를 사용하여 메일을 전달하기 위해서 PHP 가 사용하는
SMTP
서버의 DNS 이름이나 IP 주소이다.

사용하는 서버(자신의 컴퓨터) SMTP 서버를 설치하였을 경우에는 localhost 를 입력하시고
그렇지 않을 경우에는 각각 사용하는 인터넷 라인의 ISP 업체의 SMTP 서버 주소를 입력합니다.

ISP
SMTP서버는 다음과 같습니다.

하이텔(Hitel):
smtp.hitel.net

코넷(Kornet):
soback.kornet.net
mail.kornet.net
ppp.kornet.net

천리안(Chollian):
mail.chollian.net

유니텔(Unitel):
203.241.132.90

나우누리(Nownuri):
mail.nownuri.net

아이프리(IFree):
mail.ifree.net

아이넷(I-net):
mail.nuri.net

두루넷(Thrunet):
smtp.korea.com

넷츠고(Netsgo):
netsgo.com

채널아이(Channel-i):
mail.channeli.net

신비로(Shinbiro):
mail.shinbiro.com

엘림넷(Elimnet):
elim.net

인터피아(Interpia):
pop3.interpia.net

키스코(Kisco):
203.233.144.1

미래텔(Miraetel):
miraetel.kornet.nm.kr

경기넷:
mail.kg21.net

하나로통신:
mail.hananet.net

에듀넷(Edunet):
edunet4u.net

보라넷:
mail.bora.net

드림라인:
mail.dreamx.net

해당 되는 ISP 업체가 없거나 해당되지 않을 경우에는 공개 SMTP 서버를 사용하셔도 됩니다.

공개 SMTP 서버:
203.252.32.3
211.40.177.184
211.45.135.11
210.182.173.132
211.32.116.33
210.119.132.13
163.152.3.17
sun.ms98.net

메일 동작 확인 방법은 간단한 mail() 함수를 사용하는 프로그램을 이용해서 할 수 있습니다.

<?
        $to_mail       = "메일주소";
        $to_title      = "제목";
        $to_message    = "메세지";
        
        $ret = mail($to_mail, $to_title, $to_message);
 
        if( $ret )
        {
               echo "메일 전송 성공";
        }
        else
        {
               echo "메일 전송 실패";
        }
?>



sendmail_from String

이 명령어는 Windows 플랫폼 상에서 PHP 를 설치한 경우에만 적용된다.

String
PHP 스크립트로부터 전달되는 메일에 사용되어야 하는 "From:" 메일 주소를 결정한다.

sendmail_path String

이 명령어는 UNIX 플랫폼 상에서 PHP 를 설치한 경우에만 적용된다.

String
은 시스템상에서 실행할 수 있는 sendmail 의 경로를 결정한다.
일반적으로, sendmail의 위치는 /usr/sbin/sendmail 이나 /usr/lib/sendmail (UNIX 상에서)이지만,
그 밖의 다른 위치에 설치한 경우에는 sendmail의 경로를 지정해야 한다.
sendmail
과 유사한 qmail 도 이 명령어로 경로를 지정할 수 있다.

sendmail_path = "/usr/sbin/sendmail -t -i"


##
일반적인 구성

PHP 의 일부 일반 기능 및 내장된 기능들에 영향을 미치는 몇 가지 구성 매게변수들에 대하여 알아보기로 하겠습니다.

auto_append_file String

메인 파일 다음에 자동으로 분석되는 파일 이름을 String 에 지정한다.
이렇게 지정된 파일은 include() 함수로 호출된 것 처럼 포함된다.
특수값인 none 은 자동 추가 기능을 중지 시킨다.
만약 스크립트가 exit() 로 종료된다면 auto-append 작업이 수행되지 않는다.
이 명령어는 특정 웹 사이트에 정형화된 모습과 느낌을 주고자 PHP가 페이지를 생성할 때 유용하다.
이 스크립트는 각 페이지마다 꼬리말을 포함할 때 사용할 수 있다.

auto_append_file = "/path/to/script/footer.php"



auto_prepend_file String

메인 파일보다 먼저 자동으로 분석되는 파일 이름을 String 에 지정한다.
이렇게 지정된 파일은 include() 함수로 호출된 것 처럼 포함된다.
특수값인 none auto-prepend 기능을 중지 시킨다.

이 명령어는 앞서의 스크립트에서처럼 동일한 종류의 시나리오에서 유용하다.
단지, 차이점이라면 모든 페이지에 표준 머리말을 생성하는 데 사용할 수있다는 점이다.

doc_root String

가상 파일 트리의 루트를 정의하며,
그 루트의 하위에 있는 파일들은 안전 모드에서 실행될때 PHP에 의해서만 서비스된다.
이 매개변수는 빈 값이 아닌 값을 가져야 하며, 그렇지 않은 경우에는 무시된다.

웹 서버의 실제 파일 시스템 트리의 특정한 하위 트리로 PHP를 제한하는 것은
보안상의 관점에서 본다면 매우 차이점이 많다.

engine Boolean

PHP
가 아파치 모듈 버전인 경우에만 실제로 유용한 명령어이다.

디렉토리 단위로 또는 가상 서버 기반 단위로 PHP Paser 기능을 켜고 끄는 사이트에서 사용된다.
httpd.conf
파일의 적당한 위치에서 engine On, Off 로 설정하면 PHP는 가능하게 되거나
불가능 하게 된다.

httpd.conf

<VirtualHost sample.com>
        ServerName www.sample.com
        DocumentRoot /home/sample/public_html
 
        php_value engine Off
</VirtualHost>



위와 같은 형식으로 사용할 수 있다.

open_basedir String

PHP
스크립트들이 특정한 디렉토리 트리나 디렉토리 트리 세트에 있는 파일들로만
엑세스 하도록 제한하기를 원하는 경우가 있을 것이다.
인수 String 은 엑세스를 허용하는 디렉토리나 디렉토리들의 리스트를 지정한다.
모든 상징적인 링크들이 사라지므로 이러한 제한 사항을 피하기 위해 symlink를 사용하는 것이 불가능하다.

특수값 '.' 은 스크립트가 저장되어 있는 디렉토리가 기본 디렉토리로 사용될 것이라는 의미한다.
Windows
의 경우에 String 에 여러개의 디렉토리들을 입력할때에는
각각의 디렉토리들을 콜론(:)으로 구분한다.
아파치 모듈인 경우, 상위 디렉토리들로부터의 open_basedir 경로는 이제 자동적으로 상속된다.
기본은 모든 파일들이 열리는 것을 허용하는 것이다.

gpc_order String

HTML
서식을 처리하는 PHP 스크립트들은 이러한 서식으로부터 변수들을 엑세스할 수 있다.
서식들은 GET, POST 메소드에 의해 제출될 것이다.
또한, 쿠키들도 변수들을 스크립트로 전달한다.
GET, POST
그리고 쿠키들로부터변수들이 분석되는 순서는 hpc_order 명령에 의해 주어진다.
인수 String G, P 그리고 C 중에서 하나나 둘, 또는 셋 모두의 조합으로 이루어진다.

예를 들어, 만약 gpc_order = GCP 라면 COOKIE 변수와 동일한 이름의 POST 변수는 COOKIE 변수로서
더높은 우선순위를 가지게 되며, POST 변수는 무시된다.
이러한 순서는 GET,POST,COOKIE 변수 분석의 순서를 결정한다.

이 명령의 기본 설정값은 "GPC" 이다.

예를 들어, "GP" 로 설정되는 경우에 PHP는 쿠키들을 완전히 무시하고
어떤 GET 메소드 변수들을 동일한 이름의 POST 메소드 변수들을
동일한 이름의 POST 메소드 변수들로 겹쳐쓰기할 것 이다.

include_path String

require(), include(), fopen_with_path()
함수들이 파일들을 찾는 디렉토리들의 리스트를 지정한다.
대부분의 시스템에서 String 의 형식은 PATH 환경 변수와 유사하다.

, UNIX에서는 콜론(:)으로, Windows 에서는 세미콜론(;)으로 디렉토리들을 구분한다.

기본값은 현재 디렉토리를 의미하는 '.' 이다.

UNIX: "/path1:/path2"

include_path = ".:/php/includes"

Windows: "\path1;\path2"

include_path = ".;c:\php\includes"



max_execution_time Integer

파서에 의해 종료되기 전, 스크립트의 작업 허용 최대 시간을 초 단위로 설정한다.
이것은 무한 루프를 돌고 있는 스크립트들에 의해 서버가 다운되는 것을 방지한다.

memory_limit Integer

Integer
인수는 스크립트가 할당할 수 있는 메모리의 최대 용량을 바이트 단위로 설정한다.
이것은 잘못 작성된 스키립트가 서버의 메모리를 모두 잠식하는 것을 방지한다.

short_open_tag Boolean

PHP
스크립트들은 원래 <?php ?> 태그 사이에 들어가지만,
단축 형식인 <? ?> 태그 사이에 입력할 수도 있다.

만약 XML 지원기능을 사용한다면 이 옵션을 Off 로 설정해야 한다.
단축 태그가 XML 파서를 혼동하게 만드므로 XML 지원 기능을 사용하려면
원래의 형식으로만 스크립트를 사용해야 한다.

upload_tmp_dir String

인수 String 은 파일 업로드가 수행될 때 파일들을 저장하는 데 사용되는 임시디렉토리를 지정한다.
이 디렉토리는 사용자 PHP가 어떤 형식으로 수행되든지 간에 기록 가능해야 한다.
PHP
가 아파치 모듈인경우 아파치의 사용자 권한을 상속하며, 일반적으로 nobody 이다.

user_dir String

웹 서버는 일반적으로 각 사용자들이 자신의 홈 디렉토리들 아래에 자신의 웹 페이지들을
유지하는 것을 허용한다. (UNIX인 경우)
인수 String PHP파일들을 위한 사용자의 홈 디렉토리에서 사용되는 디렉토리의 기본이름을 나타낸다.

예를 들어, 홈 디렉토리가 /home/okstart 인 사용자 okstart 가 있다고 가정하자.
만약 String public_html 로 설정되었다면 그 사용자는 개인적인 스크립트들이나 페이지들을
/home/okstart/public_html
아래에 저장할 수있다.

## PHP.INI 위치와 설정방법

PHP.INI 파일은 일반적으로

/etc/php.ini

디렉토리에 존재 하게 됩니다.

PHP
컴파일시

--bindir=/usr/local/php4

라고 지정했다면

/usr/local/php4/etc/php.ini

로 지정 됩니다.

만약 OS Windows 일 경우에는

Windows
디렉토리의 php.ini 가 됩니다.

정확한 php.ini 의 위치를 아는방법은.

<? phpinfo(); ?>



를 확인시에 Configuration File (php.ini) Path 을 확인하시면 됩니다.

PHP.INI
설정시에 사용하는 형식은

Integer , String , Boolean , PHP
지정 변수 등이 있습니다.

Integer
은 그냥 정수 형식을 사용하시면 됩니다.
String
은 문자열 형식입니다.

다만 문자열 중간에 빈 값이 들어갈 경우에는 "문자열" 이렇게 " 로 묶어 주셔야 정상작동 합니다.

Boolean
형식은

1, On, True, Yes
0, Off, False, No

으로 표현 됩니다.

728x90
728x90

Set objMail= CreateObject("CDO.Message") 
objMail.From = "보내는 테스트사용자<testUser@test.com>"
objMail.Subject =subject
objMail.HtmlBody = html
objMail.To = "받는 테스트사용자<receiver@test.com>"

'objMail.Bcc = toMail

objMail.BodyPart.Charset = "euc-kr"
objMail.HtmlBodyPart.Charset = "euc-kr"
objMail.fields.update
objMail.Send

Set objMail = Nothing

728x90
728x90

<html>
<head>
<style type="text/css">
ul.circle {list-style-type:circle;}
ul.disc {list-style-type:disc;}
ul.square {list-style-type:square;}
ol.decimal {list-style-type:decimal;}
ol.lower_alpha {list-style-type:lower-alpha;}
ol.lower_roman {list-style-type:lower-roman;}
ol.upper_alpha {list-style-type:upper-alpha;}
ol.upper_roman {list-style-type:upper-roman;}
ol.none {list-style-type:none;}
</style>
</head>

<body>
<ul class="circle">
    <li>Circle type</li>
    <li>HTML</li>
    <li>CSS</li>
</ul>
<ul class="disc">
<li>Circle type</li>
<li>HTML</li>
<li>CSS</li>
</ul>
<ol class="decimal ">
<li>Circle type</li>
<li>HTML</li>
<li>CSS</li>
</ol>
<ol class="upper_alpha">
<li>Circle type</li>
<li>HTML</li>
<li>CSS</li>
</ol>

</body>

</htm>

  • Circle type
  • HTML
  • CSS
  • Circle type
  • HTML
  • CSS
  1. Circle type
  2. HTML
  3. CSS
  1. Circle type
  2. HTML
  3. CSS
728x90

'프로그래밍 > CSS' 카테고리의 다른 글

CSS3 투명도(opacity) 그림자(shadow)  (0) 2013.08.26
728x90

# linux ftp client 명령어 사용법
 
리눅스 시스템을 사용하다 보면

CUI 환경에서 ftp를 사용해야 하는 경우가 종종 있다.
 
리눅스를 설치 하게 되면 기본적으로 설치가 되어 있는 ftp client 프로그램을 이용 하면 가장 간편하다.
 
만약 설치가 되어 있지 않다면 편의를 위해 설치 하여 사용 해야 할것 이다.
 
간단한 접속 방법으로
 
# ftp host_IP

ex> shell:>ftp 10.10.10.200

ftp> passive => 모드 변경

ftp> put testfile => testfile 업로드

위와 같이 사용 할 수 있으며 사용자 인증을 통해 밑에 설명하고 있는 명령어를 이용해 이용 할 수 있다.
ascii : 전송모드를 ASCII모드로 설정한다.
binary : 전송모드를 BINARY로 설정한다.
bell : 명령어 완료시에 벨소리를 나게한다.
bye : ftp접속을 종료하고 빠져나간다.
cd : remote시스템의 디렉토리를 변경한다.
cdup : remote시스템에서 하단계 사우이디렉토리로 이동한다.
chmod : remote시스테의 파일퍼미션을 변경한다.
close : ftp저속을 종료한다.
delete : remote시스템의 파일을 삭제한다.
dir : remote시스템의 디렉토리 내용을 출력한다.
disconnect : ftp접속을 종료한다.
exit : ftp접속을 종료하고 빠져나간다.
get : 지정된 파일 하나늘 가져온다.
hash : 파일전송 도중에 "#"표시를 하여 전송중임을 나타낸다.
help : ftp명령어 도움알을 볼 수 있다.
lcd : local시셈의 디렉토리를 변경한다.
ls : remote시스템의 디렉토리 내용을 출력한다.
mdelete : 여러개의 파일을 한꺼번에 지울 때 사용한다.
mget : 여러개으 파일을 한꺼번에 가져오려할 때 사용한다.
mput : 한꺼번에 여러개의 파일을 remote시스템에 올린다.
open : ftp접속을 시도한다.
prompt : 파일전송시에 확인과정을 거친다. on/off 토글
put : 하나의 파일을 remote시스템에 올린다.
pwd : remote시스템의 현재 작업디렉토리를 표시한다.
quit : ftp접속을 종료하고 빠져나간다.
rstatus : remote시스템의 상황(version, 어디서, 접속ID등)을 표시한다.
rename : remote시스템의 파일명을 바꾼다.
rmdir : remote시스템의 디렉토리를 삭제한다.
size : remote시스템에 있는 파일의 크기를 byte단위로 표시한다.
status : 현재 연결된 ftp세션 모드에 대한 설정을 보여준다.
type : 전송모드를 설정한다.

 

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
find와 grep을 활용한 검색  (0) 2012.08.27
vi 명령 정리  (0) 2012.04.18
VI Editor 사용법  (0) 2012.03.23
728x90

 

테이블 데이터 삭제 후에 테이블 identity 값 초기화를 하려면 다음과 같이 실행합니다.

dbcc checkident(테이블이름, reseed, 0);

 

728x90

'프로그래밍 > MS_SQL' 카테고리의 다른 글

MSSQL 테이블 소유자 변경  (0) 2012.09.05
트랜젝션 고립화 수준  (0) 2012.06.25
Foreign key 설정  (0) 2012.03.14
인터넷서점 모델링  (0) 2012.03.08
데이터베이스 로그 축소하기  (0) 2011.08.23
728x90

Dictionary는 List 등과 비슷한, .Net에서 지원하는 컬렉션 클래스입니다.

다른 클래스와 마찬가지로 차지하는 메모리와 크기가 동적으로 변화하며, 값을 넣을 수 있습니다.


하지만 하나 차별성이 있는데, Dictionary에 저장된 값은 각각 하나씩 짝이 지어져 있습니다.

물론, 어느 걸 짝을 짓는다던가 하는 건 코더가 임의로 지정할 수 있구요.

(ex: int형 24와 string형 "adflsdf"가 연결되어 있음)

짝이 지어진 두 개에서, 하나를 Key라고 하고(오오오오오! Key라구! Key! 오오오오오!)

하나를 Value라고 하는데요, Dictionary는 Key의 값을 주면 Value가 반환되어 나옵니다.


조금 더 이해하기 쉽게 말해 보자면, Dictionary는 사전입니다. 사전이잖아요? 딕셔너리니까.

사전은 '어떤 단어나 문장의 뜻을 알기 위해서' 쓰죠? 사용자가 단어를 주면 사전은 뜻을 주죠.


Dictionary 클래스에 투영시켜 보죠. 위의'단어'가 Key고, '뜻'이 Value입니다.

Key를 주면 Value가 반환되어 나옵니다.

==================================================================

public class DictionaryClass

{

private Dictionary<int, string> goodsDictionary = new Dictionary<int, string>();


public DictionaryClass()

{

goodsDictionary.Add(1, "Mug Cup");

goodsDictionary.Add(2, "Photo Album");

goodsDictionary.Add(3, "Clock");


Console.WriteLine("The first goods is " + goodsDictionary[1]);

Console.WriteLine("and The second goods is " + goodsDictionary[2]);

}

}


===================================================================


goodsDictionary를 선언할 때 Dictionary<int, string>으로 객체를 명시했죠?

<int, string>에서 첫번째가 Key의 유형, 두번째가 Value의 유형입니다.


여느 컬렉션과 마찬가지로, Dictionary도 추가 시에 Add() 메소드를 사용합니다.

다만 여기서는 매개변수 혹은 리터럴을 두개 받는다는 점이 틀리군요.

당연한 일이죠. 이거야말로 Dictionary의 차별성이니까!


여튼, Add()로 값을 등록한 이후에는 goodsDictionary[1] 과 같이 Key의 값을 명시해줌으로써

그 Key에 대응하는 Value를 반환해주게 됩니다. 저 경우에는 "Mug Cup"이라는 문자열이 나오겠죠?



=================================================================


private void dictionaryPractice()

{

Dictionary<int, string> imsiDic = new Dictionary<int, string>();

foreach (int key in goodsDictionary.Keys)

{

imsiDic.Add(key, "Kudryavka " + goodsDictionary[key]);

}

goodsDictionary = imsiDic;

}


=================================================================


Dictionary에 있는 Value값을 변경해주는 코드입니다. ㅇㅁㅇ;

잠깐 만들어 봤어요.


그냥 foreach(string str in goodsDictionary.Values) 한다음에 str에 문자열 더했더니 안되더라구요.

foreach 문 도는 중에는 식별자 등의 그 자체를 변경할 수가 없다는 게 생각나서 조금 더 써 봤음.



[출처]
[C#] Dictionary|작성자 에군이


728x90
728x90
Vi Editer 사용법System / Linux

2011/06/22 15:12

복사http://blog.naver.com/blueskyhom/90116331799

<<명령 모드에서 입력 모드로 전환하기 위한 키>> ㅣ <<명령 모드에서 커서를 이동하기 위한 키>>

i = 현재 커서의 위치로부터 입력 ㅣ h = 커서를 왼쪽으로 한 칸 이동

I = 현재 커서 행의 맨 압에서부터 입력 ㅣ l = 커서를 오른쪽으로 한칸 이동

ㅣ j = 커서를 아래로 한칸 이동

a = 현재 커서 위치의 다음칸 부터 입력 ㅣ k = 커서를 위로 한칸 이동

A = 현재 커서 행의 맨 마지막부터 입력 ㅣ

ㅣ ctrl+F = 다음 화면으로 이동(Page Down키)

o = 현재 커서의 다음 행에 입력 ㅣ ctrl+B = 이전 화면으로 이동(Page Up키)

O = 현재 커서의 이전 행에 입력 ㅣ ^ = 현재 행의 처음으로 이동 (Home키)

ㅣ $ = 현재 행의 마지막으로 이동 (End키)

s = 현재 커서 위치의 한 글자를 지우고 입력 ㅣ

S = 현재 커서의 한 행을 지우고 입력 ㅣ gg = 제일 첫 행으로 이동

ㅣ G = 제일 마지막 행으로 이동

----------------------------------------------------------------------------------------------------------------------

<<명령 모드에서 삭제, 복사, 붙혀넣기 관련 키>> ㅣ <<명령 모드에서 창 분할 관련 키>

x = 현재 커서의 위치한 글자 삭제 (Del) ㅣ ctrl+w s = 현재 파일을 두개의 수평창으로 나눔

X = 현재 커서의 위치한 앞 글자 삭제 (Backspace) ㅣ ctrl+w v = 현재 파일의 두개의 수직창로 나눔

d$ = 현재 커서에서 라인끝 까지 삭제, 잘라내기 ㅣ ctrl+w w = 나뉘어진 창간의 이동

dd = 현재 커서 행 삭제, 잘라내기 ㅣ

n dd = 현재 커서 부터 숫자(n)만큼의 행 삭제 ㅣ ctrl+w = = 창의크기가 균등하게 분할d

d + 숫자 + 방향기 : 숫자 만큼 방향쪽으로 잘라내기 ㅣ

y$ = 현재 커서에서 라인끝 까지 복사 ㅣ

yy = 현재 커서가 있는 행을 복사 ㅣ ctrl+w q = 현재 창 닫기

n yy = 현재 커서가 있는 행부터 숫자(n)만큼 복사 ㅣ

y + 숫자 + 방향기 : 숫자 만큼 방향쪽으로 복사 ㅣ

p = 복사행 내용을 현재 행 이후에 붙혀 넣기 ㅣ

P = 복사행 내용을 현재 행 이전에 붙혀 넣기 ㅣ

----------------------------------------------------------------------------------------------------------------------

<<그 밖의 명령 관련 키>> ㅣ

ㅣctrl + ] 함수의 정의로 이동

:/ 문자열 (Enter) = 현재 열린 파일의 문자열 찾기 ㅣctrl + t 원래의 위치로 이동

n = 찾는 문자 중에서 다음 문자로 이동 ㅣ ctrl + n 자동완정

:e FileName = 현재 창에 다른 파일을 열기 ㅣ

R 하고 문자입력 ESC 후 원하는 위치에 .을 하면입력한 문자열을 계속 입력 할수 있다.

grep -rn "변수명, 함수명" -> 하위의 파일중에 변수명, 함수명이 사용된곳을 찾아 준다.

ctags -R 하위 폴더를 포함하여 tags을 생성하여 cnt+] , cnt + t를 이용하여 코드 분석용이

1. vi 시작하기

vi : vi를 시작한다.

vi [파일] : vi를 시작하여 지정한 [파일]이 존재하면 그 파일을 열고, 존재하지 않으면 지정한 파일 이름으로 새로운 파일을 만

든다.

vi -R [파일] : 지정한 파일을 읽기 전용으로 불러들인다.

2. vi 종료하기

:q : 아무런 글을 입력하지 않았을 때, vi를 종료한다. 만약 글을 입력하였다면 종료되지 않는다.

:wq : 작성한 글을 저장하고 vi를 종료한다.

:q! : 작성한 글을 저장하지 않고 vi를 종료한다.


※ 종료하기를 포함한 앞으로 나오는 모든 vi 명령어들은 특별한 언급이 없는 이상, 위 그림에서 '명령대기상태'를 기준으로 입력해야 하는 명령어를 의미한다.

3. 저장하기

:w : 작성한 글을 저장한다.

:w [파일] : 지정한 파일로 작성한 글을 저장한다.

:w >> [파일] : 지정한 파일의 뒷부분에 작성한 글을 덧붙인다.

:w! : 읽기 전용으로 열었을 경우에 강제로 저장한다.

:w %.new : 현재 파일 이름에 .new를 붙여서 새로운 파일로 저장한다. (.new 자리에 다른 문자열이 올 수 있다.)

:50,$ w [파일] : 50줄부터 끝줄까지 [파일] 이름으로 저장한다.

:.,100 w [파일] : 현재 줄에서부터 100줄까지 [파일] 이름으로 저장한다.

:1,10 w [파일] : 1줄부터 10줄까지 파일 이름으로 저장한다.

:50,$ w >> [파일] : [숫자]번째 줄부터 끝줄까지 [파일]의 뒷부분에 저장한다.


=> [숫자 or . or $], [숫자 or . or $] w [파일] : [숫자]는 [숫자]번째 줄을, '.'은 '현재줄', '$'는 '끝줄'을 의미한다. 첫번째가 의미하는 부분부터 두번째가 의미하는 부분까지 [파일] 이름으로 저장한다.

4. 커서이동

vi를 처음 사용하는 경우에 당황해하는 부분 중 하나가 커서를 마음대로 움직이지 못한다는 것이다. 특정 설정을 해주지 않으면 윈도우에서처럼 마우스로 찍는 곳에 커서가 위치하지 않기 때문이다. 여기서는 기본 설정에서의 vi 커서 이동을 정리하였다. 커서 이동은 명령모드에서 가능하다.

h : 커서를 한 칸 왼쪽으로 이동한다 (좌).

j : 커서를 한 줄 아래로 이동한다 (하).

k : 커서를 한 줄 위로 이동한다 (상).

l, Space : 커서를 한 칸 오른쪽으로 이동한다 (우).

Backspace : 커서를 한 칸 왼쪽으로 이동한다.

- : 커서를 윗줄의 처음으로 이동한다.

+ : 커서를 다음 줄의 처음으로 이동한다.

0 : 커서를 현재 줄의 맨 앞으로 이동한다.

$ : 커서를 현재 줄의 맨 뒤로 이동한다.

^ : 커서를 현재 줄의 첫 글자로 이동한다 (공백이나 탭은 무시한다).

w, W : 커서를 다음 단어의 첫 글자로 이동한다.

e, E : 커서를 다음 단어의 끝 글자로 이동한다.

b, B : 커서를 이전 단어의 첫 글자로 이동한다.

( : 커서를 앞의 문장 처음으로 이동한다.

) : 커서를 뒤 문장 처음으로 이동한다.

{ : 커서를 앞 문단의 처음으로 이동한다.

} : 커서를 뒷 문단의 처음으로 이동한다.

H : 커서를 화면 맨 위로 이동한다.

M : 커서를 화면 중간으로 이동한다.

L : 커서를 화면 맨 아래로 이동한다.

<Ctrl> + F : 커서를 한 화면 아래로 이동한다.

<Ctrl> + B : 커서를 한 화면 위로 이동한다.

<Ctrl> + D : 커서를 반 화면 아래로 이동한다.

<Ctrl> + U : 커서를 반 화면 위로 이동한다.

[N] + <Ctrl> + F : 커서를 한 [N]화면 아래로 이동한다. (N은 양의 정수)

[N] + <Ctrl> + B : 커서를 한 [N]화면 위로 이동한다.

[N] + <Ctrl> + D : 커서를 [N] 줄 아래로 이동한다.

[N] + <Ctrl> + U : 커서를 [N] 줄 위로 이동한다.

5. 입력하기

i : 현재 커서 위치에서 글을 입력한다.

a : 현재 커서 다음부터 글을 입력한다.

o : 현재 커서가 있는 아래 줄부터 글을 입력한다.

S : 현재 커서가 있는 위치의 한 글자를 삭제하고 거기에서부터 글을 입력한다.

I : 현재 커서가 있는 줄의 맨 앞에서부터 글을 입력한다.

A : 현재 커서가 있는 줄의 맨 뒤에서부터 글을 입력한다.

O : 현재 커서가 있는 줄의 맨 위에서부터 글을 입력한다.

R : 현재 커서가 있는 곳에서부터 겹쳐쓰기(덮어쓰기)로 입력한다.

6. 삭제하기

vi에서는 윈도우에서처럼 BackSpace나 Delete 키만으로 삭제를 모두 해결하지 않는다.

x : 커서가 위치한 곳의 문자를 삭제한다.

X : 커서가 위치한 곳에서 왼쪽 문자를 삭제한다.

D : 커서가 위치한 곳에서 오른쪽 끝까지 삭제한다.

dd : 커서가 위치한 줄 전체를 삭제한다.

dG : 커서가 위치한 곳에서부터 파일의 끝까지 삭제한다.

d1G : 커서가 위치한 곳에서부터 파일의 앞까지 삭제한다.

:[N]d : N번째 줄을 삭제한다. (N은 양의 정수)

:[N], [M]d : N번째 줄부터 M번째 줄까지 삭제한다. (M은 N보다 큰 양의 정수)

[N] + dd : 커서가 위치한 곳에서부터 N 줄을 삭제한다.

7. 붙이기

p : 마지막으로 지워진 내용을 커서가 위치한 곳 뒤, 아래에 삽입한다.

P : 마지막으로 지워진 내용을 커서가 위치한 곳 앞, 위에 삽입한다.

8. 내용 고치기

:[N]co[M] : [N]줄을 [M]줄 밑에 복사해서 붙인다.

:[N], [M]col : [N]줄부터 [M]줄까지 한 줄 밑에 복사해서 붙인다.

[N]yy, [N]Y : 커서 위치에서 [N]줄만큼을 복사한다.

[N]yw : 커서 위치에서 [N]단어만큼을 복사한다.

:[A]m[B] : [A]줄을 [B]줄 밑으로 이동한다. (A, B는 양의 정수)

:[A], [B]m[C] : [A]줄부터 [B]줄까지 [C]줄 밑으로 이동한다.

:r : 마지막으로 저장되었던 파일의 전체내용이 파일 아래에 덧붙여진다.

9. 치환하기

:s/[원래내용]/[고칠내용] : 커서가 위치한 줄에서 [원래내용]을 [고칠내용]으로 치환한다.

:[N]s/[원래내용]/[고칠내용] : 지정한 [N]줄에서 [원래내용]을 [고칠내용]으로 치환한다.

:[N],[M]s/[원래내용]/[고칠내용] : 지정한 [N]줄에서 [M]줄까지의 범위 내에서 [원래내용]을 [고칠내용]으로 치환한다.

:%s/[원래내용]/[고칠내용] : 파일 전체에서 [원래내용]을 [고칠내용]으로 치환한다.

:C : 커서 위치에서 행의 끝까지를 다른 문자열로 변경한다.

:cc : 커서 행을 다른 문자열로 변경한다.

:R : 커서 위치에서 ESC를 입력한 곳까지 덮어쓴다.

10. 검색하기

검색명령은 파일의 끝에 도달하면 다시 처음부터 시작한다.

/[단어] : 현재 커서 위치에서 아래로 지정한 [단어]를 찾는다.

?[단어] : 현재 커서 위치에서 위로 지정한 [단어]를 찾는다.

/ : 전에 검색했던 단어를 아래로 반복해서 찾는다.

? : 전에 검색했던 단어를 위로 반복해서 찾는다.

n : /나 ?를 같은 방향으로 반복한다.

N : /나 ?를 반대 방향으로 반복한다.

11. 약어 사용하기

긴 단어나 문장을 짧은 단어로 쓸 수 있다.

:ab [short] [long] : [short]만 쓰면 자동으로 [long]의 내용으로 바뀐다. [long]은 단어는 물론 문장이 될 수도 있다.

:ab : 현재까지 지정된 약어 목록을 보여준다.

:una [short] : [short]를 약어에서 해제한다.

12. 화면보기

^l : 화면을 다시 뿌려준다.

:set number , se nu : 파일의 각 라인별로 번호를 붙여준다.

:set nonumber , se nonu : 파일의 각 라인별 번호를 삭제한다.

:set autoindent , se ai : 자동으로 들여쓰기를 한다.

:set noautoindent , se noai : 자동 들여쓰기를 취소한다.

:set list : 탭은 ^l로, 문장의 끝은 $로 표시한다.

:set nolist : list값을 취소한다.

:set tabstop=n ,se ts=n : 탭의 크기를 n으로 지정한다. 기본은 8이다.

13. 줄번호

[N]G, :[N] : [N]번째 줄로 바로 간다. (ex. 1G : 1번째 줄로 간다)

G : 마지막 줄로 간다.

:map [q] G : [q]가 G를 실행한 결과와 같도록 매크로를 정의한다.

14. 파일 바꾸기

:e [파일] : 현재 작성하고 있던 파일에서 지정한 파일로 바뀌어진다. 단, 작성하고 있던 파일이 저장되어 있지 않으면 바뀌지

않는다.

:e! [파일] : 현재 작성하고 있던 파일이 저장이 되지 않았더라도 지정한 파일로 바뀐다.

15. 데이터 읽기

:[N]r [파일] : [N]번째 줄에 지정한 파일의 내용이 삽입된다.

:r [파일] : 현재 커서가 위치한 곳 다음 줄에 지정한 파일의 내용이 삽입된다.

:[N]r ![명령어] : 명령어의 결과가 [N]번째 줄 다음에 삽입된다.

:r ![명령어] : 명령어의 결과가 현재 커서가 위치한 다음 줄에 삽입된다.

16. 정규 표현식을 위한 특수 기호

. : 새로운 줄을 제외한 모든 단일 문자와 대응한다.

* : 0 또는 그 이상의 선행 문자와 대응한다.

^ : 줄의 시작과 대응한다.

$ : 줄의 끝과 대응한다.

/< : 단어의 시작과 대응한다.

/> : 단어의 끝과 대응한다.

[] : 묶여진 문자 중의 하나와 대응한다.

[^ ] : 묶여진 문자를 제외한 아무 것이나 대응한다.

\ : 이어지는 기호를 문자 그대로 해석한다. (ex. \\ => \ 기호를 의미)

17. 셸 명령어 실행하기

:![명령어] : vi를 중단하고 지정한 셀 명령을 실행한다.

:!! : vi를 중단하고 이전의 셀 명령을 실행한다.

:sh : vi를 중단하고 셸을 실행한다.

:!csh : vi를 중단하고 새로운 C셸을 실행한다.

18. 데이터를 처리하기 위한 셸 명령어

[N]!![명령어] : [N]번 줄에서 명령어를 실행한다.

![M] [명령어] : 커서가 위치한 곳에서부터 [M]까지 명령어를 실행한다.

![M] fmt : 커서가 위치한 곳에서부터 [M]까지 줄들을 형식에 맞춘다.


19. 시스템이 죽었을 경우에 파일 살리기

vi -r : 되살릴 수 있는 모든 파일 이름을 보여준다.

vi -r [파일] : vi를 시작하여 지정한 [파일]을 되살린다.

20. 다중창으로 동시에 여러 파일을 열기

vs [파일] : 현재 열려 있는 vi 화면을 세로로 반 나누어, [파일]의 내용과 현재 작업중인 내용을 각각 동시에 보여준다.

split [파일] : 현재 열려 있는 vi 화면을 가로로 반 나누어, [파일]의 내용과 현재 작업중인 내용을 각각 동시에 보여준다

728x90

'프로그래밍 > 리눅스' 카테고리의 다른 글

톰켓설치  (0) 2013.09.30
Linux java 설치  (0) 2013.09.30
find와 grep을 활용한 검색  (0) 2012.08.27
vi 명령 정리  (0) 2012.04.18
linux ftp client 사용법  (0) 2012.04.10

+ Recent posts