VI 명령어

Programming 2010. 9. 3. 16:44

1.시작

vi file vi를 시작하여 지정한 파일 편집
vi -R file 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집
view file 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집

2.종료
:wq 데이터를 저장하고 종료
:q! 데이터를 저장하지 않고 종료

3. 시스템이 다운된 후에 되살리기
vi -r 되살릴 수 있는 모든 파일 이름 보여주기
vi -r file vi를 시작하여 지정한 파일 되살리기

4. 디스플레이 제어하기
^L 현재 화면을 다시 디스플레이하기
:set number 내부 줄 번호 디스플레이
:set nonumber 배부 줄 번호 디스플레이 않기

5. 마지막으로 지운 것 복사하기
p 마지막으로 지워진 것을 커서의 뒤/아래에 삽입
P 마지막으로 지워진 것을 커서의 앞/위에 삽입
xp 두 문자를 바꿈
deep 두 단어를 바꿈
ddp 두 줄을 바꿈

6. 패턴 검색
/rexp 지정된 정규 표현식에 대해 앞으로 이동
/ 이전의 패턴에 대해 앞으로 검색을 반복
?rexp 지정된 정규 표현식에 대해 뒤로 이동
? 이전의 패턴에 대해 뒤로 검색을 반복
n /나 ?명령에 대해 같은 방향으로 반복
N /나 ?명령에 대해 반대 방향으로 반복

7. 약어의 사용
:ab short long short를 long에 대한 약어로 변경
:ab 현재 약어 목록을 표시
:una short 약어 short를 표시

8. 줄 길이의 조정
r 문자를 뉴라인으로 변경
J 줄의 결합
:set wm=n 오른쪽으로 n문자 위치에서 자동적으로 줄 나눔

9. 커서 이동
h 커서를 한 칸 왼쪽으로 이동
j 커서를 한 줄 아래로 이동
k 커서를 한 줄 위로 이동
l 커서를 한 칸 오른쪽으로 이동
커서를 한 칸 왼쪽으로 이동
커서를 한 칸 오른쪽으로 이동
- 커서를 이전 줄의 처음으로 이동
+ 커서를 다음 줄의 처음으로 이동
커서를 다음 줄의 처음으로 이동
0 커서를 현재 줄의 맨 앞으로 이동
$ 커서를 현재 줄의 맨 끝으로 이동
^ 커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동
w 커서를 다음 단어의 첫 글자로 이동
e 커서를 다음 단어의 끝 글자로 이동
b 커서를 이전 단어의 첫 글자로 이동
W w와 같음(문장 부호 무시)
E e와 같음(문장 부호 무시)
B b와 같음(문장 부호 무시)
( 다음 문장의 처음으로 이동
) 이전 문장의 처음으로 이동
{ 다음 문단의 처음으로 이동
} 이전 문단의 처음으로 이동
H 커서를 화면 맨 위로 이동
M 커서를 중간으로 이동
L 커서를 맨 아래로 이동

10. 편집 버퍼를 통한 이동
^F 한 화면 아래로 이동
^B 한 화면 위로 이동
n^F n화면 아래로 이동
n^B n화면 위로 이동
^D 반 화면 아래로 이동
^U 반 화면 위로 이동
n^D n줄만큼 아래로 이동
n^U n줄만큼 위로 이동

11. 셸 명령 실행
:!command vi를 중단하고 지정한 셸 명령을 실행
:!! vi를 중단하고 이전의 셸 명령을 실행
:sh vi를 중단하고 셸을 실행
:!csh vi를 중단하고 새로운 C-셸을 실행

12. 패턴에 의한 치환
:s/pattern/replace/ 현재 줄의 치환
:lines/pattern/replace/ 지정한 줄의 치환
:line,lines/pattern/replace/ 지정한 범위의 치환
:%s/pattern/replace/ 모든 줄의 치환
1,$s/aaaaa/bbbbb/g 모든줄의 치환

13. 데이터 읽기
:liner file file의 내용을 지정한 줄 다음에 삽입
:r file file의 내용을 현재의 줄 다음에 삽입
:liner !command command의 결과를 지정한 줄 다음에 삽입
:r !command command의 결과를 현재의 줄 다음에 삽입
:r !look pattern 지정한 pattern으로 시작된 단어 삽입

14. 정규 표현식을 사용하기 위한 특수 기호
. 뉴라인을 제외한 모든 단일 문자와 대응
* 영 또는 그 이상의 선행 문자와 대응
^ 줄의 시작과 대응
$ 줄의 끝과 대응
\< 단어의 시작과 대응
\> 단어의 끝과 대응
[ ] 묶여진 문자중의 하나와 대응
[^ ] 묶여진 문자를 제외한 아무것하고나 대응
\ 이어지는 기호를 문자 그대로 해석

15. 줄 번호
nG 줄번호 n으로 건너뛰기
1G 편집 버퍼의 첫 줄로 건너뛰기
G 편집 버퍼의 마지막 줄로 건너뛰기
:map g lG g가 lG와 같도록 매크로 정의

16. 삽입
set noautoindent set nocindent
i 입력 모드로 전환, 커서 위치 앞에서 삽입
a 입력 모드로 전환, 커서 위치 뒤에서 삽입
I 입력 모드로 전환, 현재 줄의 앞에 삽입
A 입력 모드로 전환, 현재 줄의 끝에 삽입
o 입력 모드로 전환, 현재 줄의 아래에 전개
O 입력 모드로 전환, 현재 줄의 위에 전개

17. 편집하고 있는 파일을 바꾸기
:e file 지정한 파일의 편집
:e! file 지정한 파일의 편집, 자동 점검의 생략

18. 내용 고치기
r 단지 한 글자만 변경(입력 모드로 바뀌지 않음)
R 입력하는 대로 겹쳐 써서 변경
s 삽입에 의해 한 단어의 변경
C 커서의 위치로부터 줄 끝까지 삽입에 의한 변경
cc 전체 줄을 삽입에 의한 변경
S 전체 줄을 삽입에 의한 변경
cmove 커서부터 move까지 삽입에 의해 변경
~ 대,소문자 바꾸기

19. 고치기의 취소 또는 반복
u 편집 버퍼를 수정했던 마지막 명령을 취소
U 현재 줄을 저장
. 편집 버퍼를 수정했던 마지막 명령 반복

20. 문자 삭제
x 커서가 있는 문자 삭제
X 커서의 왼쪽 문자 삭제
D 커서부터 줄의 끝까지 삭제
dd 현재 줄의 전체 삭제
dmove 커서부터 move까지 삭제
dG 커서부터 편집 버퍼의 끝까지 삭제
d1G 커서부터 편집 버퍼의 맨 앞까지 삭제
:lined 지정한 줄의 삭제
:line, lined 지정한 범위의 삭제

21. 여러 줄의 복사와 이동
:linecotarget 지정한 줄을 복사하여 target 줄 밑에 삽입
:line, linecotarget 지정한 범위를 복사하여 target 줄 밑에 삽입
:linemtarget 지정한 줄로 이동하여 target 줄 밑에 삽입
:line, linemtarget 지정한 범위로 이동하여target 줄 밑에 삽입

22. 데이터를 처리하기 위한 셸 명령의 사용
n!!command n번 줄에서 command의 실행
!move command 커서부터 move까지 command 실행
!move fmt 커서부터 move까지 줄들을 형식 맞추기

23. 데이터 저장하기
:w 원래의 파일로 데이터를 저장
:w file 지정한 파일로 데이터를 저장
:w>> file 지정한 파일에 데이터를 추가

블로그 이미지

fridayss

,


한번도 안해봐서 애먹다가 구글링하니 Punycode(퓨니코드)로 바꿔줘야 한다길래

바꾸고 뭘해야 하나 DNS 이것저것 찾아보다가 걍 IIS->호스트 헤더값에 넣으니 잘됨 -_-
블로그 이미지

fridayss

,

언어별 Redirect

Programming 2010. 8. 31. 11:09
JSP
<% response.sendRedirect("http://blueb.net/blog"); %> 

ASP
<% Response.Redirect "http://blueb.net/blog" %> 

PHP
<? header("Location: http://blueb.net/blog"); exit; ?> 

HTML
<meta http-equiv='refresh' content='0;url=http://blueb.net/blog'>

Javascript

<script type="text/javascript"> 
window.location.href = 'http://blueb.net/blog'
</script>

블로그 이미지

fridayss

,
* frm : 폼 id

$(document).ready(function() { 
    $("#frm :input:visible:enabled:first").focus(); 
});

'Programming' 카테고리의 다른 글

IIS 한글도메인 설정  (0) 2010.08.31
언어별 Redirect  (0) 2010.08.31
MySQL root 비밀번호 분실시  (0) 2010.07.29
PHP 파일 업로드 용량제한 설정 - php.ini  (0) 2010.07.28
Asp recordcount -1 나올 때  (0) 2010.07.23
블로그 이미지

fridayss

,
Windows
  • 시작 - 제어판 - 관리도구 - 서비스 로 들어가셔서 MySQL 서비스를 중지 시킨다.
  • cmd [명령 프롬프트] 를 실행한다.
  • MySQL 이 설치된 디렉토리로 이동한다. ex> cd C:\Program File\MySQL\MySQL 5.0\bin
  • mysqld.exe -u root -p --skip-grant-tables 실행
  • mysql 실행
  • mysql> use mysql
  • mysql>UPDATE user SET Password = PASSWORD('비밀번호') WHERE user = 'root';
  • quit
  • 서비스에서 MySQL 을 재 시작한다.
블로그 이미지

fridayss

,

1. file_uploads = On

파일 업로드 허용여부

2. upload_max_filesize = 20M
최대 업로드 파일 사이즈

3. post_max_size = 20M
Post방식으로 넘겨질 최대 데이터 사이즈

4. max_execution_time = 300
최대 실행시간 (대용량 파일 일수록 실행시간을 늘려 주어야 함. 0으로 세팅하면 무한대)

5. memory_limit = 20M
최대 메모리 양
블로그 이미지

fridayss

,
mysql 이나 oracle의

mysql_num_rows or oci_num_row 가 asp에선 뭔지 몰라 겨우 찾아냈더니
결과값이 자꾸 -1 이 나와 엄청 삽질 -_-

:
Set Rs = Server.CreateObject("ADODB.RecordSet")
                
Rs.CursorType = 3
Rs.CursorLocation = 3
Rs.LockType = 3                
Rs.Open SQL, DbCon
                
RsCount = Rs.RecordCount

count하기전에 

Rs.CursorType = 3
Rs.CursorLocation = 3
Rs.LockType = 3  

지정하니 바로 됨 -_-

'Programming' 카테고리의 다른 글

MySQL root 비밀번호 분실시  (0) 2010.07.29
PHP 파일 업로드 용량제한 설정 - php.ini  (0) 2010.07.28
MySQL - 언어셋지정  (0) 2010.07.09
asp 문자열 관련 함수  (0) 2010.07.08
언어별 캐쉬 방지  (0) 2010.06.02
블로그 이미지

fridayss

,


* DB생성시 기본언어셋이 아닌 임의의 언어셋 지정하기 *

create database [DB] default character set utf8 collate utf8_general_ci

create database [DB] default character set euckr collate euckr_korean_ci



기존 DB 언어셋 변경

alter database [DB] default character set utf8 collate utf8_general_ci

alter database [DB] default character set euckr collate euckr_korean_ci

'Programming' 카테고리의 다른 글

PHP 파일 업로드 용량제한 설정 - php.ini  (0) 2010.07.28
Asp recordcount -1 나올 때  (0) 2010.07.23
asp 문자열 관련 함수  (0) 2010.07.08
언어별 캐쉬 방지  (0) 2010.06.02
PHP_Oracle 함수  (1) 2010.05.18
블로그 이미지

fridayss

,
ㅁ Len : 길이구하기            
ㅁ Left : 왼쪽에서끊기
ㅁ Right : 오른쪽에서끊기       
ㅁ Mid : 중간부터끊기
ㅁ Instr : 문자검색                
ㅁ Ltrim  왼쪽공백없애기
ㅁ Rtrim : 오른쪽공백없애기     
ㅁ Trim  왼쪽오른쪽공백없애기
ㅁ Split : 추출함수라 보면 되겠다.
ㅁ Replace :  치환
ㅁ Replace(문자열, 바꿀문자, 바꿀내용) 
ㅁ Ucase : 무조건  반환
ㅁ Lcase : 무조건 소문자로 반환


1)  결과 : <%=len(str)%>
  --str문장의 길이를 출력해준다.

2) left(str,5)의 결과  
  --str문장에서 왼쪽에서 5자리를 끊어서 출력을 해준다.

3) right(str,5)의 결과 :<%=right(str,5)%>
  --str문장에서 오른쪽에서 5자리를  출력을 해준다.

4) mid(str,4,5)의 결과 :<%=mid(str,4,5)%>
  --str문장에서 4번째 자리부터  끊어서 출력을 해준다.

5) instr(str,"Call")의 결과 :<%=instr(str,"Call")%>
  --str문장에서 "Call"이라는  있는 위치를 응답해준다.

6) replace(str,"Nice","Crazy")의 결과 :<%=replace(str,"Nice","Crazy")%>
  --str문장에서 "Nice"라는  찾아 "Crazy"로 바꾸어준다.

7) Ucase(str)의 결과:<%=Ucase(str)%>
  --str에서 전체 단어를  변환해준다.

8) Lcase(str)의 결과:<%=Lcase(str)%>
  --str에서 전체 단어를 소문자로 변환해준다.

9) <% myprofile=split(str2,",") %>
  --str2에서 ","단위로 뽑아내어서 myprofile이라는 컬렉션에 담아준다.

'Programming' 카테고리의 다른 글

Asp recordcount -1 나올 때  (0) 2010.07.23
MySQL - 언어셋지정  (0) 2010.07.09
언어별 캐쉬 방지  (0) 2010.06.02
PHP_Oracle 함수  (1) 2010.05.18
.htaccess 쉽게 작성하기  (0) 2010.05.12
블로그 이미지

fridayss

,

캐쉬 방지 이유

 - 로그아웃한 후 뒤로가기 버튼 클릭 시 로그인 상태로 되돌아간다면 보안에 취약할 수 밖에 없으므로 사용자가 조금 불편하더라도 캐쉬를 방지하는게 낫다.

 

 HTML 
<META http-equiv="Expires" content="-1"> 
<META http-equiv="Pragma" content="no-cache"> 
<META http-equiv="Cache-Control" content="No-Cache"> 

 

 

ASP   
<%   
Response.Expires = 0   
Response.AddHeader "Pragma","no-cache"   
Response.AddHeader "Cache-Control","no-cache,must-revalidate"   
%>   


JSP   
<%   
response.setHeader("Cache-Control","no-store");   
response.setHeader("Pragma","no-cache");   
response.setDateHeader("Expires",0);   
if (request.getProtocol().equals("HTTP/1.1")) 
        response.setHeader("Cache-Control", "no-cache"); 
%>   


PHP   
<?   
header("Pragma: no-cache");   
header("Cache-Control: no-cache,must-revalidate");   
?>   


WML  
<wml>  
<head>  
<meta http-equiv="Cache-Control" content="max-age=no-cache" forua="true"/>  
<meta http-equiv="Cache-Control" content="must-revalidate" forua="true"/>  
</head>  
<card>  
..  
..  
</card>  
</wml>  


JSP의 사용예   
<%@ page contentType="text/vnd.wap.wml"%>   
<%   
response.setHeader("cache-control","no-store"); // http 1.1   
response.setHeader("Pragma","no-cache"); // http 1.0   
response.setDateHeader("Expires",0); // proxy server 에 cache방지.   
%> 

'Programming' 카테고리의 다른 글

MySQL - 언어셋지정  (0) 2010.07.09
asp 문자열 관련 함수  (0) 2010.07.08
PHP_Oracle 함수  (1) 2010.05.18
.htaccess 쉽게 작성하기  (0) 2010.05.12
정규표현식 테스트  (0) 2010.05.11
블로그 이미지

fridayss

,