<OBJECT classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-mplayer2" codebase="HTTP://ACTIVEX.MICROSOFT.COM/ACTIVEX/CONTROLS/MPLAYER/EN/NSMP2INF.CAB#VERSION=6,4,7,1112" width="367" height="274"> 

 <param name="url" value="파일명"/> 

 <param name="defaultFrame" value="content"/> 

 <param name="autoStart" value="true"/> 

 <param name="enableContextMenu" value="false"/> 

 <param name="fullScreen" value="false"/> 

 <param name="enabled" value="true"/>   

 <param name="stretchToFit" value="true"/> 

 <param name="volume" value="30"/> 

 <EMBED src="파일명" width="436" height="310" volume="30" loop="false" enableContextMenu="false" autostart="false" showstatusbar="1"/> 

 </OBJECT> 


url : 동영상파일 경로


자바스크립트 

           <script>                    
                        function pop_scroll()
                        {               
                            interval = setInterval("pop_view()", 10000);                      
                        }
                        
                        function pop_view(){                         
                                var id = "";                           
                                for(j = 1; j <3; j++){
                                    id = "divName_"+ j;                             
                                     disp = document.getElementById(id).style.display;    
                                              
                                     if(disp == "block"){
                                          if(j == 1 ) {
                                              document.getElementById("divName_1").style.display = "none";
                                              document.getElementById("divName_2").style.display = "block";
                                              
                                              break;
                                          }                                       
                                           if(j == 2 ) {
                                              document.getElementById("divName_1").style.display = "block";
                                              document.getElementById("divName_2").style.display = "none";
                                              
                                              break;
                                          }
                                          
                                         
                                        
                                     }
                                }           
             }
             
              pop_scroll();
                        
       </script>

 

div적용

 <div id="divName_1" style="display:block" >첫번째 보여질 DIV </div>

 <div id="divName_2" style="display:none" >두번째 보여질 DIV </div>   
   

출처 무시해도 될 만큼 사소한 건 없다。 | 그루밍
원문 http://eyesi.me/110097754772

/conf/web.xml에 에러 코드 유형별로 에러 페이지 설정 방법

<web-app>
    <error-page>
      <error-code>404</error-code>
      <location>/404error.jsp</location>
    </error-page>
    <error-page>
      <error-code>500</error-code>
      <location>/500error.jsp</location>
    </error-page>
    <error-page>
      <exception-type>java.lang.Throwable</exception-type>
      <location>/exception_error.jsp</location>
    </error-page>
</web-app>

 

100 : Continue 
101 : Switching protocols 
200 : OK, 에러없이 전송 성공
201 : Created, POST 명령 실행 및 성공 
202 : Accepted, 서버가 클라이언트 명령을 받음 
203 : Non-authoritative information, 서버가 클라이언트 요구 중 일부 만 전송 
204 : No content, 클라언트 요구을 처리했으나 전송할 데이터가 없음 
205 : Reset content 
206 : Partial content 
300 : Multiple choices, 최근에 옮겨진 데이터를 요청 
301 : Moved permanently, 요구한 데이터를 변경된 임시 URL에서 찾았음 
302 : Moved temporarily, 요구한 데이터가 변경된 URL에 있음을 명시 
303 : See other, 요구한 데이터를 변경하지 않았기 때문에 문제가 있음 
304 : Not modified 
305 : Use proxy 
400 : Bad request, 클라이언트의 잘못된 요청으로 처리할 수 없음 
401 : Unauthorized, 클라이언트의 인증 실패 
402 : Payment required, 예약됨 
403 : Forbidden, 접근이 거부된 문서를 요청함 
404 : Not found, 문서를 찾을 수 없음 

405 : Method not allowed, 리소스를 허용안함 
406 : Not acceptable, 허용할 수 없음 
407 : Proxy authentication required, 프록시 인증 필요 
408 : Request timeout, 요청시간이 지남 
409 : Conflict 
410 : Gone, 영구적으로 사용할 수 없음 
411 : Length required 
412 : Precondition failed, 전체조건 실패 
413 : Request entity too large, 
414 : Request-URI too long, URL이 너무 김 
415 : Unsupported media type 
500 : Internal server error, 내부서버 오류(잘못된 스크립트 실행시) 
501 : Not implemented, 클라이언트에서 서버가 수행할 수 없는 행동을 요구함 
502 : Bad gateway, 서버의 과부하 상태 
503 : Service unavailable, 외부 서비스가 죽었거나 현재 멈춤 상태 
504 : Gateway timeout 
505 : HTTP version not supported

에러페이지는 docbase 부터 시작됨

원문: http://blog.naver.com/neolithe/20024769222

 

location.reload()                                             // 현재 페이지 새로고침

top.document.(프레임이름).location.reload();      // 프레임 새로고침

top.document.location.reload();                        // 프레임 전체 새로고침

opener.location.reload();                                 // 부모창 새로고침

setTimeout("history.go(0);", 10);                       // 자동 새로고침



출처 : http://blog.naver.com/wjh13579?Redirect=Log&logNo=80155561216

// 주민등록상 생일을 현재 날짜와 비교하여 나이계산 (만)

// 8403211 일 경우 29세, 주민등록상 생일 지났으므로 28세 출력하도록

var jumin1 = document.getElementById("ssn1").value; //주민등록번호 앞

var jumin2 = document.getElementById("ssn2").value; //주민등록번호 뒤

var curDateObj = new Date(); // 날짜 Object 생성

var curDate = ""; // 현재일자

var tmpAge = 0; // 임시나이

var curYear = curDateObj.getYear(); // 현재년도

var curMonth = curDateObj.getMonth() + 1; // 현재월

if(curMonth < 10) curMonth = "0" + curMonth; // 현재 월이 10보다 작을경우 '0' 문자 합한다

var curDay = curDateObj.getDate(); // 현재일

if(curDay < 10) curDay = "0" + curDay; // 현재 일이 10보다 작을경우 '0' 문자 합한다

curDate = curYear + curMonth + curDay;

var genType = jumin2.substring(0, 1); // 주민번호 뒷자리 성별구분 문자 추출

if(genType <= 2) {

tmpAge = curYear - (1900 + parseInt(jumin1.substring(0, 2))); // 1, 2 일경우

} else {

tmpAge = curYear - (2000 + parseInt(jumin1.substring(0, 2))); // 그 외의 경우

}

var tmpBirthday = jumin1.substring(2, 6); // 주민번호 4자리 생일문자 추출

if(curDate < (curYear + tmpBirthday)) {

tmpAge += 1;

}

//alert(tmpAge); // 2012년 4월 13일 일 경우 2012413 반환

if(tmpAge > 23){

alert("만 24세이상은 예약 하실 수 없습니다.");

return false;

}


출처 : http://serve4u.co.kr/80188641887



$.noConflct();


$ 식별자를 쓰는 다른 프레임 워크간의 충돌을 방지 하기 위해서

제이쿼리에서 $를쓰지 못하게 하는 메서드


$.noConflict();


사용후에는 기본에 $로 쓰던 부분들을 jQuery로 바꾸어서 써줘야 한다

ex) jQuery(document).ready(function(){});


jQuery쓰는 것이 불편하면 변수에 대입하여 사용

var j=jQuery;

j(document).ready(function(){});



- 모던웹을 위한 자바스크립트 & 제이쿼리 책에 대해 공부중 (p 366)

UPDATE /*+ BYPASS_UJVC */

(SELECT TARGET_PATH ORG,  '/sb/'||TARGET_PATH UPD FROM WCM_FOLDER_MAP WHERE SERVER_ID = 1) A

SET A.ORG = A.UPD




update 의 서브쿼리로 자신이 필요로 하는  기존컬럼과 변경하는 컬럼들을 select해놓고 as 를 주어

 값을 뷰들로 매칭시켜서 대입한다.



오라클 힌트//

I. <jsp:include>

1. 설명

-. 서버측 include가 아닌 클라이언트측의 include라 생각하면 간단하다

즉 출력 결과만(html코드)을 include 한다

-. include 되는 페이지와 변수를 같이 사용할 수 없다

2. 속성

① page

-. 포함시키고자 하는 문서의 위치를 명시한다

-. 상대경로뿐만 아니라 절대경로도 가능하다

-. 서블릿 컨테이너에 따라 HTML 페이지는 안될 수도 있다

-. get 방식으로 파라미터를 전달 할수 없다

-. 동적으로 페이지 할당이 가능하다

        즉 <jsp:include page="<%=variable%>" flush="true"/> 가 가능하다

② flush

    -. true : 문서의 출력 결과를 항상 버퍼내에서 갱신 하라는 의미이다

3. 예제

a.jsp

...

<jsp:include page="b.jsp" flush="true"/>

...


a.jsp 결과에 b.jsp 가 실행된 결과가 include 된다

즉 따로따로 실행 된 후 그 결과(html)만을 가지고 include 한다


II. <%@ include %>

1. 설명

-. 서버측 include 라고 생각하면 된다

즉 소스 실행전에 include가 된다고 보자

-. 소스 실행전 포함됨으로 변수를 같이 사용할 수 있다

-. 동적으로 페이지 할당을 할 수가 없다

2. 속성

① file

    -. 포함될 페이지를 명시한다

3. 예제

a.jsp

...

<%@ include file="b.jsp" %>

...

b.jsp 코드자체가 a.jsp에 포함된 후 실행된다.

jsp:include

<jsp:include page="/xxx.jsp" />

1. 요청시간에 처리

2. 별도의 파일로 요청 처리 흐름을 이동

3. 화면 레이아웃의 일부분을 모듈화 할 때 주로 사용된다.

@include

디렉티브

1. JSP파일을 자바 소스로 변환할 때 처리

2. 현재 파일에 삽입시킴

연결된 파일을 포함해서 같이 컴파일 한다.

include 지시어는 다른 JSP의 소스 코드를 해당 JSP에 그대로 포함시킨다

반면에 액션 태그의 <jsp:include> 태그는 다른 JSP의 소스 코드가 아니라,

다른 JSP의 실행 결과값을 해당 JSP 페이지에 포함시킨다.

또한, include는 주로 조각난 코드를 삽입을 하고자 할때 사용되고,

<jsp:include> 액션 태그는 페이지를 모듈화할때 사용된다.

즉 템플릿 페이지를 작성할때 사용된다.

<!--
정적인 페이지 할 때 사용한다.>
-->
<%@ include file="/include/top.jsp" %>
<hr></hr>
index.jsp입니다.<br></br><br></br>
<hr></hr>
<%@ include file="/include/bottom.jsp" %>

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

<%--
동적인 페이지 할 때 사용한다.

--%>

<jsp:include page="top.jsp">
<jsp:param value="ok" name="flag"/>
</jsp:include>
<hr></hr>
main.jsp....
<hr></hr>
<jsp:include page="bottom.jsp"></jsp:include>

name - 이동할 페이지에 전달될 파라미터의 이름 ( 표현식 사용 불가 )

value - 이동할 페이지에 전달될 파라미터의 값( 표현식 사용 가능 )

받는곳에서 request.getParameter("flag");로 받는다.

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


JSP내의 Java Code를 Designer나 HTML Coder가 보기쉽고(?), 수정하기 쉽게(?) Java Code를 HTML Tag과 같은 Tag 형태로 사용할 수 있도록 한 JSP Custom Tag.

그중에 가장 많이 쓰이는 Tag인 <jsp:include /> 하지만 이 <jsp:include /> Tag의 단점은 원격지의 JSP 페이지를 include 할 수 없는데 있다.

이처럼 <jsp:include /> Tag로 할 수 없는 것을 <c:import /> Tag는 가능하게 해준다.

그럼.. 어떻게 사용하는가?

우선... 아래의 URL에서 Taglib를 다운 받는다.

http://people.apache.org/builds/jakarta-taglibs/nightly/projects/standard/

에서 JSP 버전에 맞는 Taglib 를 다운 받는다.
다운 받은 파일을 압축을 풀면... 4개의 (doc, javadoc, lib, tld) 디렉토리와, LICENSE, NOTICE, README 파일 그리고 2개의 WAR 파일이 있다.

우리가 필요한건... 다름아닌... lib 폴더 아래의 jstl.jar , standard.jar 이다.

이 두개의 jar 파일을 적용하고자 하는 JSP의 Container (WAS)의 /WEB-INF/lib/에 복사한다.

그리고는... JSP페이지에

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>을 추가하고,
<c:import />를 Tag를 사용하면 된다.

예)
<%
String url = http://xxx.xxx.xxx.xxx/naver/test.jsp;
%>
<c:import url="<%= url %>" charEncoding="EUC-KR">
<c:param name="query" value="민원" />
<c:param name="method" value="get" />
</c:import>

위와 같이 사용하면 원격지의 WEB 페이지를 include와 유사하게 사용할 수 있다.


----------------------------------------------------------------------------------------------------
위와 같은 환경에서 작업을 해야만 하는 이유가 있다.

WWW <---> [Firewall] <---> WEB <---> [Firewall] <---> WAS

와 같은 환경에서 WAS 서버에서는 외부망(인터넷망)으로 접속이 불가능하며, 오직 WAS와 WEB서버간의 특정 PORT를 열어서 둘간의 통신만 가능하는 경우가 있다.

그런데... 외부망 접속이 되지 않는 WAS에서 인터넷 상에 존재하는 데이터를 읽어와서 가공한 후
그 데이터를 JSP에 나타내야 하는 경우가 발생했다.

처음 시도는 RMI였다. RMI는 WAS와 WEB서버간 RMI Registry를 통해 원격 객체를 등록한 후 WAS에서 WEB의 JAVA Code를 로컬에 있는 객체처럼 사용할 수 있기 때문이었다.

하지만... RMI Code는 완성되었는데... WAS와 WEB서버간 열수있는 PORT가 최소 2개있어야 하는데... PORT를 추가로 OPEN할 수 없는 상황이었다. 즉, RMI로 프로그램을 작성했지만...
환경적 문제로 인하여 RMI를 사용할 수 없게된거다. ToT

그러다가... 생각해낸 방법이 Http 통신이다.
WAS와 WEB서버간 RMI를 위한 PORT를 OPEN한 상태였기 때문에... WEB서버에 추가적으로 Tomcat을 설치하고, 그 Tomcat의 서비스 포트를 RMI 등록용 PORT로 맞춰서 WAS에서 처리해야 할 Java 및 JSP 코드를 WEB서버에 Tomcat을 설치하고 Tomcat을 통해 처리한 후 WAS에 있는 JSP에서 include 할 계획이었다.

앗! 그러나... <jsp:include /> 이 Tag는 원격지 파일 include가 안되는 거다. 또한번 좌절...
하지만... 결국 해결책을 찾았다. 바로 <c:import /> Tag였다.

이 번 일을 통해서.. 중요한 2가지를 배울 수 있었다.
하나는 RMI와 관련된 내용이고, 또 하나는 여기에 서술한 <c:import /> Tag

갈증을 해소하기 위해서 삽질 중이라면... 중간에 포기하지마라...
삽질이 결국 갈증을 해소해준다. 


[출처] http://blog.naver.com/rookieangel?Redirect=Log&logNo=140110137373

'프로그래밍 > Servlet & JSP' 카테고리의 다른 글

el 표현 언어 사용 법  (0) 2014.07.28

이런 함수를 본적이 있을 것이다.
<a href="#" onclick="aaa(); return false;">Click</a>
onclick 안의 문장은 기본적으로 자바스크립트이다.
그런데 자바스크립트 뒤에 return false를 붙히는 이유는 무엇일까?
return false를 붙히면 기존에 있던 기능들이 없어진다.
<a > 함수를 클릭하면 원래는 href 로 이동하는 액션이 취해진다.
그렇지만 onclick 이벤트 핸들러를 걸어주면 onclick 을 먼저 쓰게 되고
href 로 이동하게 된다.
그렇지만 여기서 return false를 붙혀 준다면 원래 가지고 있는 기본 속성은 무시하게 된다.
즉 a 함수의 기본 속성인 링크의 기능이 수행 되지 않는다.
만약 이동할 것인지를 묻는 함수가 나온다면 다음과 같은 코드를 짜면 된다.

<a href="http://www.naver.com" onclick="return confirm('Are you sure you want to do that?');">Click Me</a>


또한 return 은 exit의 기능도 가지고 있다.
다음과 같은 코드를 짠다면
return 의 의미가 확실해 질것이다.


if(name=='') form.nm.focus(); return;
form.submit();

이름이 없으면 포커스를 맞춰주고 아니면 submit을 하는 간단한 소스코드이다.
여기서 return 이 없으면 어떻게 될까?
name=='' 일 지라도 포커스 실행 후 다시 아래로 내려가 form 을 실행하게 된다.
따라서 우리가 원하던 기능이 나오지 않는다.
이렇든 return 은 값을 반환한다는 의미로 쓰이지만 exit의 의미로도 자주 쓰인다



[출처] http://jhoonslife.tistory.com/195

정규식을 위한 특수문자 예약어 및 의미
^ : 문자열 처음 ex) ^a : 문자열 처음이 a로 시작함 $ : 문자열 끝 ex) a$ : 문자열 끝이 a로 끝남 + : 앞 글자가 1개 이상 존재함 ex) a+ : a라는 글자가 1개 이상이다. * : 앞 글자가 0개 이상 존재함 ex) a* : a라는 글자가 없거나 반복된다. ? : 앞 글자가 없거나 1개 존재 ex) a? : a라는 글자가 없거나 1개만 있다. . : 모든 글자 {} : 반복횟수 ex) a{3} : a라는 글자가 3번 반복됨. a{3,5} : a가 3번 이상 5번 이하 반복된 경우를 나타낸다.

a{3,}이면 a가 3번 이상 반복인 경우를 말한다. [] : 문자열 그룹 ex) [abc] : a or b or c 문자 , 범위는 [a-zA-Z0-9] 와 같이 -기호로 표시

[^abc] : 해당 문자들을 제외함(not)
( ) : 소괄호 ‘( )’ 특수문자는 ‘( )’ 특수문자 안의 글자들을 하나의 문자로 인식. 

ex)  ‘gu(gg){2}le’ 와 같은 패턴을 작성하게 되면  ‘guggggle' 문자열이 문자열에 포함되어 있어야 한다. | : (쉬프트 역슬래시) 패턴 안에서 OR연산을 사용할 때 사용합니다. 예를 들어 'hi|hello' 는 hi 나 hello 가 포함      있는 문자열을 의미
\w : 알파벳이나 숫자 \W : 알파벳이나 숫자를 제외한 문자 \d : 숫자 [0-9]와 동일 \D : 숫자를 제외한 모든 문자 \: 위의 각 기능에서 벗어난다(escape). (?i): 앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않는다 (물음표+소문자i(아이))

예제

1. 문자열에서 [ , ] 문자들을 찾아 제거하라

'[' , ']' 는 예약어이므로 예약어가 아닌 문자라는 의미로 '\[' 로 표기해야 한다.

하지만, 문자열내의 '\'는 다시 특수문자 예약어이기에 '\\[' 로 적어줘야 정상적이 표시가 이루어진다.

String value = "[test]";

String result = value.replaceAll( "[\\[\\]]", "");

2. < > 으로 쌓여진 문자열이 포함되는지 확인하라

<,> 는 별도의 정규식 예약어가 아니다. < 로 시작하고, >로 끊나는 문자열 들을 찾으면 된다.

<+ : < 문자가 1개 이상이어야 함.

>+ : > 문자가 1개 이상이어야 함.

[a-zA-Z]* : 알파벳(대/소)만을 가지며 그 수는 제한없음.

if( value.matches("<+[a-zA-Z]*>+") ) {


}
기본적인 문자열 검증 정규식 ^[0-9]*$ : 숫자만 ^[a-zA-Z]*$ : 영문자만 ^[가-힣]*$ : 한글만 ^[a-zA-Z0-9]*$ : 영어/숫자만 .+ : 한문자 이상의 전체문자를 표시한다. 

정규식 표현 예제 이메일 : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$ or ^[_0-9a-zA-Z-]+@[0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*$ 휴대폰 : ^01(?:01[6-9]) - (?:\d{3}\d{4}) - \d{4}$ 일반전화 : ^\d{2,3} - \d{3,4} - \d{4}$ 주민등록번호 : \d{6} \- [1-4]\d{6} IP 주소 : ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) 파일확장자: ([^\s]+(\.(?i)(jpg|png|gif|bmp))$)
클래스 사용 예. A typical invocation sequence is thus Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches(); boolean b = Pattern.matches("a*b", "aaaaab");
참고 사이트 자바, javascript, oracle 정규식: http://litlhope.springnote.com/pages/1786498 자바 정규식 간단 설명: http://twinstarbox.tistory.com/entry/Java-%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 URL 정규식으로 분리하기: http://goodidea.tistory.com/86

[출처] http://blog.naver.com/beabeak?Redirect=Log&logNo=50126941465 에서 수정 및 추가함

- 회사에 적용한 방법 <o:*> 로 시작하는 태그들  삭제(내용은 살려둠)

final Pattern HTML_VOS = Pattern.compile("\\<O:.*?\\>", Pattern.CASE_INSENSITIVE);

final Pattern HTML_VOS = Pattern.compile("\\</O:.*?\\>", Pattern.CASE_INSENSITIVE);


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

전자정부 프레임워크 3.2 공통 콤포넌트  (2) 2016.11.21
indexOf와 startwith 의 차이  (0) 2012.08.13
HashMap, HashTable의 비교  (0) 2012.08.13

- 오라클 tns설정하는 방법

오라클이 있는 폴더를 연다.

/ORACLE/product/9.2.0/network/admin/tnsnames.ora 
연결하고자 하는 오라클 host를 다음과 같이 입력한다.

 

DBTEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =xxx.xxx.xxx.xxx)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dbtest)
    )
  )

 

2대의 오라클 서버로 failover기능 부여하여 설정 시
  
TESTDB =
  (DESCRIPTION =
        (LOAD_BALANCE=OFF)
        (FAILOVER=ON)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xx1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xx2)(PORT = 1521))
    )
 (CONNECT_DATA =
                 (SERVER = DEDICATED)
                 (SERVICE_NAME =testdb)
                 (failover_mode=(type=none)(method=basic))
          )
)

 

sqlplus 가 들어있는 디렉토리로 이동후

sqlplus /nologin 하면 실행됨

 

login하려면  connect system/manager 같은 형식으로

connect id/password

 

id와 password가 있고 sysdba 권한이 있다면

 

sqlplus 'system/manager as sysdba'  가능

- 유저에 대한 테이블 스페이스 변경

alter user user명 default tablespace TBS명;


- 유저 생성과 함께 테이블 스페이스 지정

create user user명

identified by 패스워드
default tablespace TBS명;







 

리눅스명령어


2016-09-07 추가


du -hs 폴더  : 해당 폴더 용량 확인

du -hs *      : 현재폴더에 있는 폴더 및 파일 용량 확인

df -h           :  전체 용량 확인


Filesystem            Size   Used   Avail   Use%  Mounted on

/C                    100G    10G    90G     10%    /boot

/D                    200G   100G   100G     50%   /data

tmpfs                   1G      0       1G      0%    /tmp


df -h (경로) : 해당 경로가 있는 Filesystem(윈도우로보자면 드라이브개념?)만 보여줌.

 df -h /myfolder 

Filesystem            Size   Used   Avail   Use%  Mounted on

/D                    200G   100G   100G     50%   /data


pwd : 현재 경로

cd : 디렉토리 이동

  • cd . : 현재 디렉토리 로 이동

  • cd .. : 상 위 디렉토리 로이동

  • cd ~ : 홈디렉토리 로이동

  • cd - : 이전적업 디랙토리


ls -al 파일이름

  • a : 모 든 파 일

  • l : 자세히

  • n : uid, gid 출력

  • R : 하위 디렉토리 포함 모든파일 출력.


Cp


-f : 강제복사

  • r : 하위경로 포함 복사

  • v : 복사 진행 상황 출력

  • s : 링크 정보 유지 복사


mv :

  • u : 대상 위치 보다 최근 파일 시 이동

  • f: 강제

  • v: : 복사 진행 상황 출력

  • b: 대상 파일이 있어 백업 파일 생성

 


 

mkdir : 디렉토리 생성

  • m: 권한 설정하여 생성 – > mkdir -m 777 folder

  • p :상위 디렉토리 생성

    ex) mkdir -p /down/down2


rm

  • f : 강제 삭제

  • r : 하위 디렉토리 포함 삭제

  • v : 삭제 파일 정보 알려줌



touch : 파일생성

  • r: 시간 동기화 ex) touch -r 동기화대상파일 원본 파일

  • t : ex) touch -t일시간분 파일이름


more :페이지 단위 출력


rdate : 시간 동기화

  • p : 서버 시간 조회 rdate -p time.bora.net

  • s : 서버 시간 동기화 rdate -s time.bora.net



file : 파일 종류 확인

  • L : 링크 파일이면 원본 파일 정보 조회


find: 파일 찾기

  • name : 이름으로 찾기

  • -perm : 권한으로 찾기


| : 파이프 명령어 연결

  • ls -al | more => 리스트를 페이지 단위로 출 


grep : 필터

  • 필요한 내용만 뽑아 봄

  • grep abc.txt hellow

표준 오류 : 오류난 내용을 파일로 출력

  • gcc -c hellow.c 2>error.txt




[출처] 리눅스 명령어|작성자 argonz


<form method="post" name="frm" enctype="multipart/form-data"> 

 

enctype="multipart/form-data"  <-- 이것은

 

 

폼 데이터를 전송하는 방식을 기술하는 부분

 

데이터 전송방식은 get, post, multipart 으로 각각3개고

get방식은 url 부분에 파라미터가 노출되어 데이터가 전송

post 방식은 url에 노출되지 않은 상태에서 데이터가 전송됨


 이거까지는 알고 있었지만

 

get 방식과 post 방식에서는 데이터를 보낼때 양의 한계가 있는데 많은 양의 데이터 양을 전송할때는

multipart를 사용

 

첨부파일 등록일 위해 찾아보니 multipart 전송방식을 찾음


 

html style border 주기

잘 잊는듯...


 style='border-style:solid;border-width:1px'

[출처] html style border 주기|작성자 연조단

요즘 툴들이 좋아서 클릭만으로도 할 수 있지만 기본을 잊지 않기 위해서 ~~~


컬럼명 변경

ALTER TABLE board RENAME COLUMN name TO boardName;

컬럼 타입수정
ALTER TABLE board MODIFY ( boardName varchar2(100) [NULL]|[NOT NULL] );

컬럼 삭제
ALTER TABLE board DROP COLUMN boardName;

컬럼 추가
ALTER TABLE board ADD ( address varchar2(100) default '' );

컬럼의 제약조건 삭제
ALTER TABLE userTable DROP PRIMARY KEY:
ALTER TABLE userTable DROP CONSTRAINT userTb_fk_userid;

외래키 추가
ALTER TABLE [테이블이름] ADD CONSTRAINT [외래키이름] FOREIGN  KEY ([필드이름]) REFERENCES [참조테이블이름](참조필드이름);


ALTER TABLE userTable ADD CONSTRAINT [userid_fk] FOREIGN KEY (userid) REFERENCES org_user_tb(userid)

 

 

※board 는 테이블명 입니다.



[유닉스/리눅스 명령어 레퍼런스]


id
ls              : 디렉토리 목록보기
ls -al          : 숨은 파일까지 정렬된 형태로 보기      (ls -rlt| grep "11월 11일")
cd dir          : dir 디렉토리로 이동
cd -home        : 디렉토리로 이동
pwd             : 현재 위치한 디렉토리 보여주기
mkdir dir       : dir 이라는 디렉토리 만들기
rm file         : file 을 지우기
rm -r dir       : dir이라는 파일을 지우기
rm -f file      : 강제로 file 삭제
rm -rf dir      : 디렉토리와 디렉토리 아래에 있는 모든 파일을 삭제
cp file1 file2  : dir1 디렉토리에 있는 것들을 dir2라는 이름으로 복사
cp -r dir1 dir2 : dir1 디렉토리에 있는 것들을 dir2 디렉토리로 복사; dir2가 존재하지 않는다면 만듬
mv file1 file2  : file1을 file2로 이름을 바꾸거나 옮김
                  file2가 디렉토리로 존재한다면 file1을 file2 디렉토리로 옮김
in -s file link : file로 연결된 link라는 심볼릭 링크를 만듬
touch file      : file을 생성하거나 업데이트
cat > file      : file의 내용을 출력
more file       : file의 내용을 출력
head file       : file의 첫 10줄을 출력
tail file       : file의 마지막 10줄을 출력
tail -f file    : file에 추가되는 내용을 출력,마지막 10줄부터 출력함


ctrl b  : vi에서 전 페이지 보기
ctrl f  : vi에서 다음 페이지 보기

env - 환경 보기 명령어


-언어 바꾸기 명령어-
LANG = ko_KR.euckr
export LANG


압축하는 명령어

tar -cvf test.tar(압축할 파일이름) test(압축될파일)

gzip test.tar 하면 gzip 파일로 압출됨


압축푸는 명령어

gzip -d 파일명

tar -xvf 파일명



Q        :  쓰는창에서 나가기 명령어

man    :  메뉴얼 보기 명령어


모든 언어정보 보기 명령어
locale -a

사용자 추가 명령어

adduser 아이디 (adduser soundeshop )

파일찾기 명령어

find / -name apache(찾을이름) -print

find . -name "*.txt" | xargs grep 홍길동

파일 만들고 쓰는법(vi editor)
(vi filename 를 쓴다
i 는 insert 명령어
a
o는 밑에줄 O는 윗줄
jk 상하
hl 좌우 
dd 삭제
yy 복수
p 붙여넣기
복수할수 + dd 복수 삭제 
esc를 누른후 :(콜론)를 누른후 wq(w는 write q는 quit) 하면 저장하고 나간다
:q! 하면 강제족 나가기 )

rw-rw-r -- rw(작성한사람) rw(권한을 가지고 있는 그룹 r(아무나)

chmod 권한변경 할수 있음

unset LANG(하면 언어가 디폴트로 영어가 된다)

which java 라고 하면 자바 위치를 찾아간다



파일옮기기 

mv /root/jdk1.5.0_17 . (.은 현재경로 ..은 이전경로)

mv shop /usr/apache/

passwd 패스워드 변경하기

ls -al 모든 파일 보여줘기(hidden 파일도)

ps 프로세스 정보 보여주기
ps -ef

su - mihtest (이 계정으로 접속하기)


폴더 지우기 
rmdir

groupadd test (그룹을 더하고 싶을 경우)
adduser -g mihs -G local,tomcat 생성할 아이디(id) 
-- local,tomcat은 그룹으로 묶어줄 폴더들
-- mihs 생성된 아이디


[프로세스 관리]
ps              : 현재 활성화된 프로세스 보여주기
top             : 실행중인 모든 프로세스 보여주기
kill pid        : 프로세스id pid를 종료
kill proc       : proc로 시작하는 모든 프로세스 종료
bg              : 정지되있거나 화면에서 안보이게 실행중인 프로세스 보여주기; 정지된 프로세스를
                  화면에 출력하지 않고 계속 진행하기
fg              : 화면에 보이지 않기게 작동하던 작업 중 최근의 것을 화면에 출력하면서 작동시키
fg n            : 화면에 보이지 않게 작동하던 작업 중 n 번째 작업을 화면에 출력하면서 작동시키


[파일 퍼미션]
chmod 숫자 file : file의 퍼미션값을 숫자로 바꿈. 숫자는 3자리이며 첫 번째는 소유자, 755
                                                                  두 번째는 그룹,
                                                                  세 번째는 파일 퍼미션,



[SSH]
ssh 
user@host             : user로 host에 접속
ssh -p 포트넘버 
user@host: host의 지정한 포트넘버에 user로 접속
ssh-copy-id               : 
user@howt-사용자명,암호를 입력하지 않고 로그인 할 수 있도록 ssh key를 복사


[검색]
grep pattern files        : file안의 pattern을 찾기
grep -r pattern dir       : dir 디렉토리 안에서 재귀적으로 pattern 찾기
command | grep pattern    : command 명령의 출력에서 pattern을 찾는다
locate file               : 파일을 찾음


[시스템 정보보기]
date              : 현재 날짜와 시각을 출력
cal               : 이번달 달력을 출력
uptime            : 현재 기동시간을 출력
w                 : 온라인인 사용자를 출력
whoami            : 어느 사용자로 로그인 하였는지 출력
finger user       : user에 관한 정보 출력
uname -a          : 커널 정보 출력
cat /proc/cpuinfo : cpu 정보 출력
cat /proc/meminfo : 메모리 정보 출력
man command       : command에 대한 메뉴얼 출력
df                : 디스크 사용량 출력
du                : 디렉토리 사용량 출력
free              : 메모리와 스왑 정보 출력
whereis app       : app를 실현가능한 위치 출력
which app         : app가 기본으로 실행되는 곳을 보여줌


[압축]
tar cf file.tar files    : files들을 포함한 file.tar를 만듬
tar xf file.tar          : file.tar을 압축해제
tar czf file.targz files : Gzip을 이용해 압축해제
tar cjf file.tar.Bzip2   : Bzip 압축을 사용한 압축
tar xif file.tar.bz2     : Bzip 압축을 사용한 압축해제
gzip file                : file을 압축해서 file.gz로 이름변경
gzip -d file.gz          : file.gz를 fiel로 압축해제


[네트워크]
ping host     : host에 핑을 보내 결과 출력
whois domain  : domain에 대한 whois 정보를 출력
dig domain    : domain에 대한 DNS 정보를 출력
dig -x host   : 호스트까지의 경로를 되찾아가기


[설치]
소스로부터 설치
./configure
make
make install
dpkg -i pkg.deb    : 패키지 설치(Debian)
rpm -Uvh pkg.rpm   : 패키지 설치(RPM)


[단축키]
Ctrl+C   : 현재 명령의 실행을 강제로 마침
Ctrl+Z   : 현재 명령을 멈춤,fg를 이용해서 계속해서 화면에서 보이도록 실행하거나
          bg 를 이용해서 안보인채 계속 실행
Ctrl+D   : 현 세션에서 로그 아웃, exit와 비슷
Ctrl+W   : 현재 라인에서 한 단어 삭제
Ctrl+U   : 현재 줄 전체 삭제
Ctrl+R   : 최근 입력한 명령어 보여주기
!!       : 마지막 명령어 반복실행
exit     : 현재 세션에서 로그 아웃


[출처] http://adamtop.tistory.com/

1. ps ( process )

- 현재 진행중인 프로세스의 정보를 출력합니다.


2. pstree ( process tree)

- ps 에 의해 출력되는 프로세스 정보를 트리 형태로 나타냅니다.


3. top

- cpu와 메모리를 사용하는 작업들에 대한 시스템 정보를 출력합니다.


4. arch (architecture)

- 현재 사용하고 있는 cpu의 모델을 출력합니다.


5. cal (calendar)

- 현재의 달을 출력합니다. (ex : 원하는 월 ,연도)

* -j :율리우스달력


6. clock

- CMOS 설정 시간의 출력, 변경을 합니다.


7. date

- 현재 시간과 날짜를 출력합니다.


8. df (disk free)

- 하드의 전체 용량, 남은 용량을 알기위해 사용합니다.

* -h(human) 바이트 단위 출력

9. du (disk usage)

- 각각의 디렉토리, 파일들의 디스크 용량을 출력합니다.


10. free (free memory)

- 현재 사용중인 시스템 메모리 상태를 출력합니다.

* -m(Megabyte) 메가 바이트 단위 출력

* -k (Kilobyte) 킬로 바이트 단위 출력


11. hostname

- 자신의 컴퓨터에 부여된 이름을 출력합니다.


12. lsdev (list devices)

- 현재 시스템에 연결되어 있는 하드웨어에 관한 입출력 정보, IRQ 값 등을 출력합니다.


13. quota

- 각각의 사용자들이 사용할 수 있는 디스크의 용량을 나타냅니다.


14. rdev (root device)

- 내부에 ramsize, swapdev, vidmode, rootflag의 프로그램이 구성되어 있습니다.


15. uname (unix name)

- 사용중인 운영체제에 대한 정보를 출력합니다.

* - a(all) 현재 사용중인 운영체제, 커널의 컴파일 정보 등을 출력


16. su

- 다른 사용자로 login합니다.


17. shutdown

- 시스템을 종료 합니다.

* - t n 옵션 t 뒤에 n 초 후에 경고 메시지와 kill 신호 보냄

* - h (halt) 완전히 닫음

* - r (reboot) 종료후 재부팅

* - f (fast) 빠른 리부팅(파일 시스템 검사 생략 )

* - c (cancel) 예약 되어 있는 종료 취소

* - k (kidding) 정상상태에서 종료 시간시 프로그램 정지


18. reboot

- 재부팅을 합니다.

* - q 현재의 실행프로그램을 종료하지 않고 재부팅


19. kill

- 프로세스 종료, 현재 실행중인 프로세스를 강제 종료시 사용합니다.

* -2 : 실행 중인 프로세스에게 인터럽트 키 신호 보냄

* -9 : 가장 확실하게 실행 중인 프로세스를 종료


20. tty

- 현재 사용하고 있는 단말기 장치의 경로명, 파일명을 알려줍니다.


21. whereis

- 실제 프로그램이 어떤 디렉토리에 존재하는지 모든 경로명을 보여줍니다.


22. fsck (file system check)

- 파일 시스템의 상태 검사하고 잘못된 것을 수정 합니다.

* - a : 검사도중 발견된 에러를 자동 복구

* - r : 검사도중 에러가 발견되면 복구 여부 확인

* - s : 순차적인 방법으로 검색

* - V : 검색 중 각종 정보 보여줌

* - N : 실제로 검사 작업 미 실시

═════════════════════════════

텔넷에서 FTP 리눅스 명령어 정리

┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉

→ ftp> quit or bye

:ftp를 종료시킨다

→ ftp> get

:다른 사이트에 있는 파일을 현재 로그인된 ftp 사이트로 복사

예) ftp> get 다른사이트의파일명 현재사이트로복사될파일명

ps) ftp>reget remote_file [local_file] local 디렉토리에 같은 이름의 파일이 있으면 부분적으로 전송된 파일로 간주되어 이어받기


→ ftp>put

: 현재 로그인된 ftp 사이트의 파일을 다른 ftp사이트로 복사할 때


→ ftp>cd

: 상대방 사이트의 디렉토리를 이동시킬 때

예) ftp>cd 상대방사이트의 절대경로명이나 상대의 패스


→ ftp>lcd

: ftp하에서 현재로그인한 디렉토리를 이동시킬 때 사용

예)lcd 현재사이트의 절대경로명이나 상대경로명


→ ftp>type

: 파일을 전송하기전 전송하는 데이터의 단위를 선택하는 것으로 binary와 문자(ASCII) 두 가지 방법으로 나뉜다.

Binary일 경우는 전송단위가   2진법으로 실행파일이나 압축파일의 경우 사용되고 보통문자일경우는  ASCII로 전송한다

예) ftp>type binary , ftp>type ascii


→ ftp>mget

: 상대방 ftp 사이트에 있는 특정 디렉토리에서 여러 개의 파일을 동시에  가져오고자 할 때 사용하는 것으로 파일명을 하나하나 입력할 필요가 없을  때 사용. 파일의 전송중 user에게 전송여부 확인메세지가 나타나는데 y 또는   n(no)를 응답

예) ftp>mget parameter

parametet -> 메타문자(혹은 wildcard문자)를 사용한 파일명으로 이들 문자는 특정 문자열이 공통으로 들어갈 부분만 명시하고 나머지는 아스티링(astrik)를 처리함으로써 같은 문자열을 찾아내기 위한 방법으로 사용한다.

즉 파일명이  cest, test1, est, testtest, esttt는 *est*로 표시될수 있다.


→ ftp>mput

: mget의 반대로 현재의 로그인된 사이트에서 다른 사이트로 파일을 전송하고자  할 때 메타문자를 이용하여 여러 개의 파일을 전송할 수있다. 파일의 전송중  사용자에게 전송여부를 확인하는 메시지가 나타나는데 전송여부에 따라 y 또는 n으로 응답

예) ftp>mput parameter

parameter -> 메타문자(wildcard문자)를 사용한 파일명


→ ftp>prompt

: 앞의 mget나 mput는 사용자로하여금 전송여부를 시스템이 확인하는데 이때  대량의 파일을 주고받을 때 사용자는 일일이 이를 y나 n로 응답하는 불편함이  있다. 응답을 주지않고 무조건 실행하려할 때 쓰이는 명령어

예) ftp>prompt parameter

parameter -> y일 경우는 응답에 따라 실행하라는 의미, n 일 경우 무조건 실행하라는 뜻. 본래 prompt는 y 값을 가진다.

–pr 이라고 해도 됨


→ ftp>ls

: 현재 디렉토리의 파일 확인

예)ftp>ls parameter

parameter 에 –l 을 주면 각 파일에 대해 파일명과 함께 부수적인 정보를 나열 parameter 에 –al을 주면 파일인지 디렉토리 인지의 여부 및 파일의 제반특성,  크기등을 보여준다


→ ftp>pwd

: 현재 위치를 알아보는 명령어


→ ftp>mkdir

: 특정 디렉토리를 만드는 명령어, 예) mkdir 디렉토리명


→ ftp>rmdir

: 특정 디렉토리를 제거하는 명령어, 예)rmdir 디렉토리명


→ ftp>verbose -> ver 라고도 함

: ftp명령어 수행중 전송중에 발생하는 정보를 화면에 보여줄 것인지에 대한 여부를 결정하는 명령어(시간과 파일사이즈)

예) ftp>verbose parameter

parameter -> on 또는 off 로 on일 경우에 화면에 보여주고 off일 경우는 보여주지 않는다.


→ ftp> delete

: 파일을 지우는 명령어, ftp>delete 파일명


→ ftp>user

: 현재 ftp 사이트에서 다른 사용자명으로 전환하고자 할 때 사용. 동일 사이트의 다른 계정으로 옮기고자 할 때 사용

예) ftp>user parameter

parameter -> 현재 사이트의 다른 계정의 사용자명


→ ftp>open

: 일반사용자가 ftp 명령어를 입력하고 return키를 누른다음 ftp>라는  프롬프트에서도 연결시키는 경우가 있을수 있는데 이때 open 이라는  명령어를 사용

예) ftp>open parameter

parameter -> 호스트명, 호스트명.도메인명, IP Address


→ ftp> close

: 현재사이트 연결끊고 다른사이트로 연결


→ ftp>rename

: ftp로 특정 사이트를 연결시킨 후, 사용자가 현재사이트에있는 파일명을  바꿀 때 사용

예)rename 현재파일명 바꾼후의파일명


++++정리++++

open(주소 또는 도메인) - ftp 서버에 연결

close -------------- 해당ftp 접속종료

bye --------------- ftp 프로그램 종료

ls ---------------- list, 목록보기

cd(디렉토리명) ------ 디렉토리 바꾸기

ascii -------------- 텍스트 파일 전송모드

bin --------------- 이진파일 전송 모드

get 파일명 -------- 하나의 파일 내려받기

mget 파일명 ------- 여러 개의 파일 내려받기, wildcard 문자 사용가능

put 파일명 --------- 하나의 파일 올리기

mput 파일명 ------- 여러 개의 파일 올리기, wildcard 문자 사용가능

pwd -------------- 현재 경로보기

hash ------------ 파일전송과정 보여주기(버터단위 ‘#” 표시

? --------------- 도움말

rstatus ----------- remote 시스템의 상황 표시

status ----------- 현재 연결된 ftp 세션 가지 모드에 대한 설정을 보여준다

dir ------------remote 시스템의 디렉토리 내용을 디스플레이



1. FTP 서버에 접속하기


●방법 1 : ftp (도메인 네임) 혹은 (IP)를 입력한다.

예) ftp ftp1.netscape.com


●방법 2 : ftp 후에 프롬프트가 “ftp>”로 뜨면 “open (도메인 네임) 혹은 (IP주소)”를 입력한다.

예) open ftp1.netscape.com


●프롬프트가 “ftp>”인 상태에서 여러 가지 명령을 입력할 수 있다.


2. 디렉토리(Directory) 보기와 바꾸기

FTP 서버에서 자료는 디렉토리 구조에 따라서 정리되어 있다. 따라서 사용자의 컴퓨터에서처럼 디렉토리의 내용을 보거나 원하는 디렉토리로 바꾸는 등의 작업이 필요하다. 이 작업들은 “ftp>” 프롬프트 상태에서 “ls”명령어로 확인하고, ”cd” 명령어를 사용하여 바꿀 수 있다.


●ls : list라는 의미로 FTP서버의 디렉토리 구조를 보여 준다. 예) ls -al (list all)

●cd (디렉토리) : Change Directory의 약자로 원하는 디렉토리로 이동한다. 예) cd hnc


3. 전송 모드

FTP에는 아스키(ASCII)와 이진(Binary)라는 두 가지 전송 모드가 있다.


●ASCII : 일반적인 텍스트 문서 전송

●BINARY : 그림이나 실행파일 등 모든 형식 파일 지원

●모드 전환

: ascii : ASCII 전송 모드로 바뀜

: bin : 이진 모드로 바뀜. 일반적으로 이진 모드를 사용하는 것이 편리하다.


4. 파일 받기

파일 받기 명령은 get과 mget이 있다.


●get 파일명 예) get test.doc

: 파일이름으로 지정된 파일을 전송 받으므로 정확한 이름(Full Name)을 저정한다.


●mget 파일명 예) mget *.doc

: Multiple get의 뜻을 가지고 있으며 여러 개의 파일을 동시에 전송받을 때 사용한다.

  명령어. 파일이름 부분에서는 ‘*’, ’?’과 같은 만능문자(Wild Card)도 사용할 수 있다.


5. 파일 보내기

파일을 보내는 경우에는 받는 경우와 달리 계정이 필요한 경우가 많다. 일반적으로   anonymous 계정은 특정한 디렉토리를 제외하고는 쓸 수가 없으며 이는 바이러스 등의 침입을 막기위한 것이다. 파일을 전송할 때에는 put과 mput명령어를 사용한다.


●put 파일명 예) put test.doc

: 파일이름으로 지정된 파일을 전송하므로 정확한 이름(Full Name)을 입력한다.


●mput 파일명 예) mput *.doc

: Multipe put의 뜻을 가지고 있으며 여러 개의 파일을 동시에 전송할 때 사용하는 명령어이다.

   Mget처럼 파일이름 부분에서 ‘*’,’?’ 과 같은 만능문자 사용도 가능하다


6.도스 FTP명령어

ftp cim ⇒ k8317610 ⇒ 4751 ⇒ ftp> ⇒ ls -l ⇒ bin, asc ⇒ get 가져오기 ⇒ hash

(파일전송 보여주기) ⇒ !dir a:( a드라이브 보기) ⇒ put a:money.html

════════════════════════════

그냥 쓸만한 리눅스 명령어들

┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉


addbib - 도서목록 형식의 데이터베이스를 만들거나, 확장

apropos - 사용설명서의 키워드 검색

ar - 라이브러리 만들기, 관리

at, batch - 원하는 시간에 원하는 명령을 실해하게 하는 명령

awk - 패턴 검색과 언어 처리

banner - 큰 글자(배너) 만들기

basename - 경로 이름에서 마지막에 있는 이름만 출력

biff - 자신에게 편지가 배달되면 알려주는 명령

bin-mail, binmail - 예전에 사용한 전자우편 프로그램

cal - 달력보기

calendar - 간단한 일정표

cat - 파일 병합과 내용 보기

cb - 간단한 C 프로그램 beautifier(?)

cc - C 컴파일러

cd - 작업 디렉토리 바꾸기

checknr - nroff 또는 troff 입력 파일 검사; 오류를 보여준다

chgrp - 파일의 사용자 그룹 바꾸기

chmod - 파일의 접근 권한 바꾸기

clear - 터미날 화면 깨끗이 하기

cmp - 두 파일을 바이트 단위로 비교

colcrt - troff 파일의 밑줄 속성 문자 처리

comm - 지정 두파일의 줄 단위 비교와 그 처리

compress, uncompress, zcat - 파일 압축관련 유틸리티들

cp - 파일 복사

cpio - copy file archives in and out

cpp - C 언어 전처리기

csh - C 문법과 비슷한 쉘 스크립트 문법과 기타 여러 기능이 내장된 쉘

ctags - ex 나 vi 편집기에서 사용될 tag 파일을 만드는 명령

date - 시스템 시간 보기나 지정하기

dbx - 소스 수준의 디버거

deroff - nroff, troff, tbl, eqn 관련 내용 지움

df - disk free: 디스크의 남은 용량 보기

diff - 두 파일의 차이점 비교

du - disk used : 디스크 사용량 보기

echo - 인자를 표준 출력으로 출력

ed, red - 기본 줄 편집기

eqn, neqn, checkeq - 수식 표현 포멧 도구

error - 컴파일러 오류 메시지 목록

ex, edit, e - 줄 편집기

expand, unexpand - TAB 문자를 공백문자로 바꿈, 또는 그 반대로

expr - 인자를 수식으로 처리

file - 파일 형식 알아보기

find - 파일 찾기

finger - 사용자 정보 알아보기

fmt, fmt_mail - 간단한 문서나, 편지 포멧 도구

fold - 긴 줄 출력 방법 지정

ftp - 파일 전송 프로그램

gcore - 실행 중인 프로세스의 core 이미지를 구한다.

gprof - call-graph profile data(?)를 보여줌

grep - 문자열 찾기

groups - 사용자의 그룹을 보여줌

history - 이전 명령 보기

hostname - 현재 시스템 이름을 보여줌

imake - makefile 만드는 프로그램

indent - C 프로그램 소스 파일을 들여쓰기 하는 포멧 도구

install - 파일 설치

join - 관계형 데이터베이스 연산자

kill - 프로세스 죽이기 - "마누라 죽이기"와 상관없음 :-)

last - 사용자가 마지막 접속 상태를 보여줌

ld, ld.so - 링크 편집기, 동적 링크 편집기

leave - 자신의 접속 종료 시간을 알려줌

less - more 명령의 확장

lex - 어휘 분석 프로그램 생성기

lint - C 프로그램 verifier

ln - 파일의 하드, 심벌릭 링크 명령

login - 시스템 접속 명령

look - 시스템 디렉토리나, 정열된 목록에서 단어 찾기

lookbib - 도서목록형 데이타베이스에서 찾기

lorder - 오브젝트 라이브러리의 관계 찾기

lp, cancel - 인쇄 시작, 취소

lpq - 인쇄 작업 상황 보기

lpr - 인쇄

lprm - 인쇄 작업 지우기

ls - 디렉토리 내용 보기

mail, Mail - 전자 우편 프로그램

make - 실행 파일을 만들거나, 특정 작업 파일을 만들 때 사용하는 도구

man - 온라인 사용자 설명서를 보는 명령

mesg - 메시지 수신 상태를 보거나 지정

mkdir - 디렉토리 만들기

mkstr - C 소스 파일을 참조로 오류 메시지 파일을 만듬.

more, page - 텍스트 파일 보기 명령

mv - 파일 이동이나, 이름 바꾸기

nawk - 패턴 검색과 언어 처리

nice - 낮은 우선권에서 명령 실행

nm - 심블 이름 목록 보기

nroff - 문서 포멧 도구

od - 8진수, 10진수, 16진수, ascii 덤프

passwd, chfn, chsh - 비밀번호, 핑거정보, 쉘 바꾸기

paste - 여러파일의 서로 관련 있는 줄 연결시키기

pr - 문서 파일 양식화 도구

printenv - 현재 환경 변수들의 내용과 그 값 알아보기

prof - profile 자료 보기

ps - 현재 프로세스 정보 보기

ptx - permuted(순열화된?, 교환된?) 색인 만들기

pwd - 현재 작업 디렉토리 보기

quota - 한 사용자에게 지정된 디스크 할당량보기

ranlib - archive를 random 라이브러리로 변화

rcp - 리모트 카피

rcs - RCS 파일 속성 바꾸기

rcsdiff - RCS revisions 비교

rev - 한 줄의 문자열 꺼꾸로

rlogin - 리모트 로그인

rm, rmdir - 파일, 디렉토리 지우기

roffbib - 도서목록형 데이터베이스 보기 또는 양식화

rsh - 리모트 쉘

rup - 로칼 머쉰의 호스트 상태 보기(RPC version)

ruptime - 로칼 머쉰의 호스트 상태 보기

rusers - 현재 접속자 보기 (RPC version)

rwall - 모든 사용자에게 알림(RPC)

rwho - 현재 접속자 보기

sccs - Source Code Control System (SCCS)

sccs-admin, admin - SCCS 사용 내역 파일을 만들고, 관리

sccs-cdc, cdc - SCCS 델타의 델파 주석을 바꿈

sccs-comb, comb - SCCS 델타 조합

sccs-delta, delta - SCCS 파일에 데해 델타를 만듬

sccs-get, get - SCCS 파일 버전확인

sccs-help, help - SCCS 오류나 경고 메시지 검색

sccs-prs, prs - SCCS 사용내역의 선택된 부분 보기

sccs-prt, prt - SCCS 파일에서 델타 테이블 정보를 봄

sccs-rmdel, rmdel - SCCS 파일에서 델타를 지움

sccs-sact, sact - SCCS 파일의 편집 상태를 봄

sccs-sccsdiff, sccsdiff - SCCS 파일들의 버전 비교

sccs-unget, unget - SCCS 파일의 미리 얻은 것(?)을 취소한다.

sccs-val, val - SCCS 파일 유요화

script - 화면 갈무리

sed - stream editor

sh - 유닉스 표준 쉘

size - 오브젝트 파일의 크기들을 보여줌

sleep - 지정한 시간 만큼 실행 보류

sort - 줄 정열과 검색

sortbib - 도서목록형 데이터베이스 정열

spell, hashmake, spellin, hashcheck - 맞춤범 검사(물론 영어겠지요)

split - 파일 나누기

strings - 오브젝트 파일이나, 실행 파일에서 문자열 찾기

strip - 오브젝트 파일에서 심벌 테이블과 중복된 비트 삭제

stty - 터미날 설정

su - super-user, 임시적으로 새 ID로 바꿈

symorder - 심벌 순서 바꿈

tabs - 터미날 tab 크기 지정

tail - 파일의 끝 부분 보기

talk - 다른 사용자와 이야기하기

tar - 여러 파일 묶기 또는 묶긴 파일 풀기

tbl - nroff 또는 troff의 도표 작성 도구

tee - 표준 출력으로 방향 전환

telnet - TELNET 프로토콜을 이용한 원격 리모트 호스트 접속

test - 주워진 환경이 참인지, 거짓인지를 돌려줌

tftp - 간단한 ftp.

time - 명령 실행 시간 계산

touch - 파일 날짜 관련 부분을 바꿈

troff - 문서 양식화 도구

true, false - 쉘 스크립트에서 사용되는 참/거짓을 리턴하는 명령

tsort - topological sort

tty - 현재 터미날 이름 보기

ue - MICROemacs

ul - 밑줄 속성 문자 표현

unifdef - cpp 입력 줄에서 ifdef 부분 바꾸거나 지움

uniq - 중복되는 빈줄 지우기

units - 프로그램 변환도구

uptime - 시스템 부팅 기간 보기

users - 현재 접속 사용자 보기

uucp, uulog, uuname - 시스템 간의 복사

uuencode, uudecode - 이진 파일을 아스키파일로 인코딩, 반대로 디코딩

uusend - 리모트 호스트에 파일 보내기

uux - 리모트 시스템 명령 실행

vacation - 자동으로 편지 답장하기

vgrind - grind nice program listings

vi, view, vedit - ex 바탕의 편집기

vtroff - 문서 양식화 도구

w - 현재 누가 접속해 있으며, 무엇을 하고있는지

wait - 프로세스가 마치기를 기다림

wall - 모든 사용자에게 알림

wc - 단어, 줄, 바이트 계산

what - 파일에서 SCCS 버전 정보 알아냄

whatis - 명령의 간단한 설명 보여줌

whereis - 찾는 명령의 실행파일, 소스, 맨페이지가 어디 있는지 경로를 보여줌

which - 명령만 찾음.

who - 시스템에 접속되어 있는 사람만 보여줌

whoami - 현재 사용하고 있는 자신이 누군지 보여줌

write - 다른 사용자의 화면에 특정 내용을 알림

xargs - 명령행 인자 처리 명령

xstr - extract strings from C programs to implement shared strings

yacc - yet another compiler-compiler: 파싱(형태소분석) 프로그램 생성기

yes - 항상 yes만 응답하는 명령

zcat - 압축 파일 내용보기

════════════════════════════

리눅스 기본 명령어

┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉

adduser 또는 useradd---사용자 추가


# adduser thkim

thkim란 아이디를 만든다.


# adduser -p world -g class -s '/bin/bash' -d '/home/thkim' thkim

비밀번호가 world이고 그룹은 class 쉘은 bash 홈디렉토리는 /home/thkim 인 thkim란 아이디를 만든다.


userdel ---사용자 삭제


# userdel thkim

thkim란 아이디를 삭제한다.


# userdel -r thkim

thkim란 사용자의 홈 디렉토리까지 삭제한다.


passwd ---비밀번호 지정


# passwd thkim

thkim란 아이디에 패스워드를 부여한다.


ls ---파일과 디레토리에 대한 정보를 출력한다.


# ls -al

-l: 파일의 모든 정보 출력

-c: 최근 변경한 시간 순서데로 출력

-d: 디렉토리 명만 출력

-F: 파일의 특성을 출력( /디렉토리 *실행화일)

-a: dot(.)으로 시작하는 파일의 이름을 포함한 모든 내용을 출력

현재 디렉토리의 모든 파일을 상세히 본다.


cd ---디렉토리 사이를 이동한다.[현재 디렉토리 변경]


# cd -

방금 전의 디렉토리로 이동한다


# cd ~

홈 디렉토리로 이동한다


# cd ..

한 단계 위의 디렉토리로 이동한다


# cd /

최상위 디렉토리로 이동한다


# pushd .

현재 디렉토리를 기억한다


# popd

기억된 디렉토리로 이동한다[한 번만 가능]


cp ---파일을 다른 디렉토리로 복사하거나 다른 이름으로 복사한다.


# cp thkim /root

thkim란 파일을 /root 로 복사한다.


mv ---파일을 다른 디렉토리로 이동하거나 파일명을 변경한다.


# mv thkim hoho

thkim란 파일을 hoho로 바꾼다.


# mv thkim /work

thkim란 파일을 /work/로 이동 시킨다.


rm ---파일을 삭제한다.


# rm /root

/root 디렉토리를 지운다 :)


mkdir ---디렉토리를 생성한다.


# mkdir thkim

thkim란 디렉토리를 만든다.


rmdir ---디렉토리를 삭제한다.


# rmdir thkim

thkim란 디렉토리를 지운다


# rm -r tmp

tmp 디렉토리와 모든 내용을 지운다.


man ---지정한 명령어에 대한 설명 또는 도움말을 출력한다.


# man ls

ls에 대한 설명을 본다.


info ---man명령어 보다 자세히 나와 있음


# info ls

ls에 대한 설명을 본다.


more ---지정한 파일의 내용을 한 화면에 출력하면서 잠시 멈춘다.


# more thkim

thkim 파일을 본다

종료는 q


cat ---지정한 파일의 내용을 출력한다.


# cat thkim|more

thkim 파일을 한 화면씩 본다.


grep ---특정 파일내의 지정한 패터[문자열]과 일치하는 행을 출력한다.


# cat thkim|grep thkim

thkim란 파일에 thkim라는 문자열을 찾는다.


chmod ---파일의 접근권한[도스에서의 속성]을 변경한다.


# chmod go-rwx /root or chmod 700 /root

/root 디렉토리에 그룹과 기타 사용자의 읽기 쓰기 실행 권한을 없앤다.

u: 파일 소유자, g: 그룹, o: 기타 사용자, a: 모든 사용자

+: 사용허가부여, -: 사용허가박탈, =: 허가 취소

r: 읽기 허가, w:쓰기 허가, x: 실행 허가

r = 4, w = 2, x = 1


chown ---파일의 소유자를 변경한다.


# chown thkim file

file의 소유권을 thkim로 바꾼다.


df ---사용가능한 디스크의 용량을 출력한다.


# df

사용 가능한 디스크 용량을 출력한다.


du ---지정해준 디렉토리내의 파일이 차지하는 용량을 알아내는 명령어


# du -b /home

/home 디렉토리 밑의 용량을 바이트로 표시한다.


# du -sh /usr

/usr 디렉토리 밑의 용량을 메가바이트 단위로 보여준다.


cfdisk --- 디스크 정보를 출력한다.


# cfdisk


hdparm ---하드 디스크 인터페이스


# hdparm -c3 -d1 /dev/hda

hda드라이브 32bit전송 dma모드를 On 시킨다.


find ---주어진 파일명과 동일한 파일을 찾고, 그 경로를 출력한다.


# find / -name thkim -print

최상위 루트 디렉토리부터 검색하여 검색된 파일을 한 행에 하나씩 표준 출력


# find . -name thkim -print

현제의 작업 디렉토리에서 검색


# find / -size +1000 -print

최상위 루트에서 크기가 1000블록 이상인 파일 검색


# find . -size -1000 -print

현 디렉토리에서 크기가 1000블록 이하인 파일 검색


# find . -mtime +10 -print

10일 이전에 수정된 파일 검색


# find . -mtime -10 exec rm {} \:

10일 이내에 수정한 파일을 검색하여 모두 지운다


# find / -cmin 5 -print

5분전에 마지막으로 수정된 파일을 찾을 수 있다.


# find /home -empty -print

/home 디렉토리에 용량이 0인 파일과 디렉토리를 찾는다.


# find / -perm -4000 -print

퍼미션이 4000 이상인 파일을 모두 출력한다.


finger ---호스트에 사용자가 로긴했는지 검사


# finger thkim@thkim.com

thkim.com이란 호스트에 thkim란 사용자가 접속 했는지 검사하구 있다.


chfn --- finger 정보를 수정한다.


# chfn thkim

thkim의 finger정보를 수정한다.


file --- 파일에 대한 간략한 정보를 본다.


# file ls

ls파일에 대한 정보를 출력한다.


jops ---실행중인 프로그램을 확인한다.


# jops

실행중인 프로그램을 확인한다.


env ---현재 사용하고 있는 terminal 정보를 볼 수 있는 명령이다.


# env

현재 사용하고 있는 terminal 정보를 볼 수 있는 명령이다.


history ---최근에 사용했던 명령어를 기억하는 명령


# set history=100 set savehist=100

최근에 사용했던 100개의 명령어를 기억하기


whereis ---binary, source, manual page files의 위치를 찾을 수 있는 명령


# whereis ls

ls 파일의 위치를 찾아 그 경로를 표시한다.


which ---각 사용자가 정의한 ~/.cshrc 화일에서 정의 한 내용을 이용하여 사용자에게 명령의 위치를 알려줌


# which mail

which 명령이 활용하는 내용은 다음과 같다.

1 ~/.cshrc 화일의 경로를 따라 명령이 있는곳을 검색

2 ~/.cshrc 화일에서 정의한 alias의 검색


kill --- 실행중인 프로그램을 종료시킨다.


# kill -9 555

pid가 555인 프로세스를 종료 시킨다


mount ---기억장치 디렉토리에 붙여쓰기


# mount -t iso9660 /dev/cdrom/ /mnt/cdrom

시디롬을 /mnt/cdrom이란 디렉토리에 마운트 시킨다


tar ---파일들 묶기/풀기


# tar -zcvf thkim /etc

/etc 디렉토리를 thkim란 파일로 압축시킨다.


# tar -zxvf thkim /etc

압축된 thkim란 파일을 /etc디렉토리에 압축을 푼다.


# tar -zcvf thkimall thkim thkim2 thkim3

thkim thkim2 thkim3 파일을 thkimall 파일로 압축한다.


clear ---화면지우기


# clear

현재 화면을 깨끗이 한다


touch ---내용이 없는 빈 파일을 생성, 이미 생성된 파일의 수정 시간 갱신


# touch [option] [시간] [파일명]


who or w---현재 사용자 확인


# who

현재 리눅스를 이용하는 사용자를 확인한다.


ps ---프로세스 상태 보여주기


# ps ax|grep netscape

현재 netscape가 실행 되었는지 확인한다.


pwd ---현제 디렉토리 표시


# pwd

현재 디렉토리가 출력된다.


cal ---달력을 표시한다


# cal 9 1999

1999년 9월 달력을 출력한다.


date ---현재 시간과 날짜를 화면에 표시한다.


# date

현재 시간과 날짜를 화면에 표시한다.


alias ---자주 쓰이는 명령어를 쓰기 편하게 바꾸는 명령


# alias dir='ls -al'

ls -al명령어를 dir로 실행 가능하게 만든다.


# alias 복사=cp

자 이제 cp명령 대신 '복사'라는 명령을 내려도 된다.


whoami ---현재 사용자를 표시한다.


# whoami

유사 명령어 who am i


shutdown ---리눅스 시스템을 종료시 쓰는 명령어


# shutdown -h now

시스템을 종료 시킨다.


# shutdown -r now

시스템을 리부팅 시킨다.


# shutdown -r -t 12:00

시스템을 오전 12시에 리부팅 시킨다.


halt ---리눅스 시스템을 종료시 쓰는 명령어


# halt

시스템을 종료 시킨다.


reboot ---리눅스 시스템을 리부팅시 쓰는 명령어


# reboot or [ Ctrl + Alt + Del ]

시스템을 리부팅 시킨다.

════════════════════════════════════

비슷한 기능을 하는 linux / dos  명령어

┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉

list 보기                                ls          /          dir

디렉토리 생성                       mkdir        /          mkdir , md

디렉토리 삭제                       rmdir        /          rmdir , rd

디렉토리 트리                       ls -R         /          tree

파일 삭제                              rm          /          del , erase

파일 복사                              cp          /          copy

파일 이동                              mv         /          move

이름 변경                              mv         /          rename

change directory                   cd          /          cd

현재 디렉토리 표시                 pwd          /          cd

화면 정리                              clear       /          cls

명령어 해석기                    sh, csh, bash /          command.com

파일 내용 표시                      cat           /          type

도움말, 메뉴얼                      man          /          help

쉘 종료, 도스창 종료               exit           /          exit

시간 표시                             date         /          time

그대로 출력                          echo         /          echo

환경변수 표시                     set,env        /          set

경로 보기                        echo $PATH    /          path

버전 정보                         uname -a      /           ver


예전에 도스를 배울 때

내부 명령, 외부 명령 나눠서 배웠습니다.

제 기억에 위에 나열한 것은 내부 명령이 될 것이고

아래에 나열하는 명령은 외부 명령이 될 겁니다.

대부분 linux 에 있는 이름과 동일하거나 비슷하고 기능도 같거나 유사합니다.


< network 관련 프로그램 >

사용자 정보 출력                                           finger / finger

ping                                                      ping / ping

라우팅 테이블                                          route-n / route print

네임서버 쿼리 툴                                      nslookup / nslookup

telnet                                                   telnet / telnet

ftp                                                        ftp / ftp

네트워크 경로 trace                                traceroute / tracert


< 파일, 디렉토리, 문자열 관련 >

파일 안의 문자열 찾기                                    find / find

파일 안의 문자열 찾기                                   grep / findstr

긴 파일 한 화면씩 출력                                 more / more

2개 파일 내용 비교                                      diff / fc, comp

라인 에디터                                              ed / edlin

문자열, 라인별 정렬                                     sort /sort

하위 디렉토리까지 복사                                cp-R / xcopy

file 속성 표시                                        lsattr / attrib

현재 경로를 저장 후 이동                           pushd / pushd

pushd로 저장한 경로로 이동                         popd / pupd

화일 감추기                                 mv file .file / ATTRIB +h or -h

압축                                            tar, zip / pkzip

< 시스템 관련 >

프로세스 정보                                    ps, top / taskmgr

컴퓨터 호스트명                                hostname / hostname

scheduling                                       at, cron / at

프로세스 종료                                  kill, killall / tskill

시스템 종료                         shutdown, halt, init 0 / shutdown

file system 관련                                 mke2fs / format

ip표시,interface표시, 설정                        ifconfig / ipconfig

fdisk                                              fdisk / fdisk

디스크 검사                                        fsck /chkdsk

free memory 보기                              free, top / mem

scandisk                                  fsck, debugfs / scandisk


< 기타 >

파일 인쇄                                            lpr / print

프린트 큐 보기                                       lpq / print

윈도우즈 시작(windows 3.1),        X-window 시작 startx / win


[출처] http://adamtop.tistory.com/entry/


conf/web.xml 파일에 다음과 같이 추가


<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app>

...

...

 

  <!-- error page setup -->
 <error-page>
  <error-code>404</error-code>
  <location>/error/code404.jsp</location>
 </error-page>


 <error-page>
  <error-code>500</error-code>
  <location>/error/code500.jsp</location>
 </error-page>

...

...

</web-app>

 

 

설정하고 나서 code404.jsp , code500.jsp 페이지를 해당디렉토리에 만든다.

JSP 스크립트립 부분은 제외하고 나머진 알아서 디자인 하면된다.

 

code404.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%

response.setStatus(HttpServletResponse.SC_OK);

%>
<html>
<head>
<title>404 에러 페이지</title>
</head>
<body>
요청하신 페이지는 존재하지 않습니다.
</body>
</html>

 

code500.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%

response.setStatus(HttpServletResponse.SC_OK);

%>    
<html>
<head>
<title>500 에러 페이지</title>
</head>
<body>
서비스 과정에서 에러가 발생했습니다.<br>

빠른 시일안에 문제를 해결하겠습니다.
</body>
</html>

 

 

에러 발생 후 처리 예제

예) 로그인시 해당 아이디를 가진 사용자의 이름을 파싱하지 못하는 에러 발생.

 

infoForm.html


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="post" action="viewInfo.jsp">
 이 름 : <input type="text" name="name" size="20"> <br>
 나 이 : <input type="text" name="age" value="20"> <br>
<hr>
* P.S : 나이는 숫자만 입력해야 합니다. 
<hr>
<input type="submit" value="전송">
</form>

</body>
</html>

 

viewInfo.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page errorPage="error02.jsp" %>
<%! 
String s_name; 
int age;

%>   
<%
//post 전송 방식일 경우 파라메터에 대한 한글 처리
request.setCharacterEncoding("UTF-8");

s_name = request.getParameter("name");
age = Integer.parseInt(request.getParameter("age"));

%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3> 회원 정보 출력 </h3><hr>
당신의 이름은 <%= s_name %>입니다.<br>
당신의 나이는 <%= age %>살입니다.<br>
</body>
</html>

 

error02.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page isErrorPage="true"%>   
<% 
response.setStatus(HttpServletResponse.SC_OK);
%>     
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table align="center">
<tr bgcolor="#aaaaaa">
다음과 같은 에러가 발생하였습니다
</tr>
<tr>
<%= exception.getMessage() %>
</tr>
<table>
</body>
</html>

 [출처] http://www.cyworld.com/everysons/2352294

+ Recent posts