2009년 12월 30일 수요일

리눅스 압축 명령어

Linux 에서 주로 사용되는 압축 명령들

1) tar
  home 라는 디렉토리를 압축 하는 예제

  압축 : tar cvfz home.tgz /home
  압축 해제  : tar xvfz home.tar

2) tar와 gz이 같이 있을 경우 압축 해제(tgz, tar.gz)

       gzip -dc 화일명.tgz | tar -xvf -
       tar -xvfz 화일명.tgz

3) gzip 명령
    압축하기 : gzip 화일명 =>  gzip file.tar
    압축해제 : gzip -d 화일명  ==>  gzip -d file.tar.gz
 
4) compress 압축 명령
  압축하기 : compress 화일명
  압축해제 : uncompress 화일명.z
 
5) zip : unzip 화일명.zip

6) compress와 tar의 경우 해제시(tar.z)

  uncompress -c 화일명 | tar xvf -

http://www.fduser.org/blog/73

2009년 12월 12일 토요일

SSH 설치부터 접속까지. - Linux CentOS

  1. ssh 설치 - 보통은 이미 설치되어 있다.

  2. 방화벽 허용
    ssh (23) 포트를 풀어준다.

  3. Root 계정 비허용
    #vi /etc/ssh/sshd_config
    #LoginGraceTime 2m
    PermitRootLogin no
    #StrictModes yes
    #MaxAuthTries 6
    #PermitRootLogin yes 되있는 것을 PermitRootLogin no 라고 고침.

  4. 접속
    putty 라는 프로그램을 사용한다. (무설치)
    필자는 22번 포트에 아이피 주소를 적고 접속하였다.



리눅스 계정 기본 사용법

리눅스 기본 명령어

 ls 명령어 :  ls 는 파일의 목록을 보는 명령어이다. 이 명령어에는 많은 옵션이 있으며 여기에서는 가장 많이 사용되는 몇 가지만 알아보도록 한다.

 $ ls <옵션>

 F : 파일 유형을 나타내는 기호를 파일명 끝에 표시한다
 l : 파일에 관한 상세 정보를 나타낸다.
 a : dot 파일(.access 등)을 포함한 모든 파일을 나타낸다.
 t : 파일이 생성된 시간별로 나타낸다.

cat 명령어 : 파일의 내용을 화면에 출력한다.

 $ cat 파일이름

 mv 명령어 : 파일의 위치를 옮기거나 이름을 바꿀 경우 사용된다.

 이름 변경 : $ mv old_name new_name
 파일의 위치변경 : $ mv file ../main/new_file

 cp 명령어 : 파일을 복사한다

 $ cp file_a file_b (file_a을 file_b이란 이름으로 복사한다)
 $ cp file_1 ../main/file_b (file_1을 ../main/file_b이란 이름으로 복사한다)

 more 명령어 cat 명령어는 실행을 시키면 한 화면을 넘기는 파일일 경우 그 내용을 모두 볼 수가 없다. 하지만 more 명령어를 사용하면 한 화면 단위로 보여줄 수 있어 유용하게 사용된다.

 Space bar : 다음 페이지
 Return(enter) key : 다음 줄
 v : vi 편집기로 전환
 /str : str 문자를 찾음
 b : 이전 페이지
 q : more 상태를 빠져나감
 h : 도움말
 = : 현재 line number를 보여줌

 chmod 명령어 : 사용자에 대한 파일의 접근을 제한하는데 사용된다.

$ chmod 755 file_name

 rm 명령어 : 파일을 삭제한다.

 $ rm <파일이름> (파일을 삭제한다)
 $ rm -r <디렉토리> (디렉토리 전체를 삭제한다)
 $ rm -i a.* (a로 시작하는 모든 파일을 일일이 삭제할 것인지 확인하면서 삭제)

 mkdir 명령어 : 디렉토리를 만든다.

 $ mkdir <디렉토리이름>

 pwd 명령어 : 현재 자신의 작업 디렉토리를 보여준다.

 $ pwd    /home/hosting_users/jasko21/www/ec01

 who 명령어 : 현재 시스템에 login 하고 있는 사용자의 리스트를 보여준다.

 $ who

 whereis 명령어 : 소스, 실행파일, 메뉴얼 등의 위치를 알려줌

 $ whereis perl (perl의 위치를 알려준다)

 새로운 파일을 만드는 방법

 $ vi newfile (vi 편집기 상태로 들어감)
 $ touch newfile (빈 파일만 생성됨)
 $ cat > newfile (vi 편집기 상태로 들어감, 문서 작성후 Ctrl+D로 빠져나옴)

 파일 내용만 보기

 $ cat filename (파일의 내용을 모두 보여줌)
 $ head -n filename (n줄 만큼 위세서부터 보여줌)
 $ tail -n filename (n줄 만큼 아래에서부터 보여줌)

 파일 (디렉토리) 압축 하고 풀어보기

 압축파일풀기 : tar -xvf FILE_NAME.tar
 압축하기 : tar -cvf FILE_NAME.tar 압축할파일명 혹은 디렉토리명

VI 문서 편집기 사용하기

파일 열기 및 종료

 열기 : vi letter.txt
 :w ; 저장(write)
 :q ; 종료(quit)
 ZZ ; 종료
 :wq ; 저장 후 종료
 :w! ; 강제 저장
 :q! ; 강제 종료

편집모드

 i ; 커서앞에 텍스트 삽입
 a ; 커서뒤에 텍스트 삽입
 o ; 현재 행 아래에 텍스트 삽입

텍스트 교체

 r ; 한 글자만 교체
 R ; 커서가 있는 자리부터 여러문자 교체

커서이동

 ←, h, <del>
 ↓, j
 ↑, k
 →, l

신속이동

 w ; 오른쪽으로 특수문자 혹은 한단어의 처음으로 이동
 b ; 왼쪽으로 특수문자 혹은 한단어의 처음으로 이동
 W ; 오른쪽으로 한단어의 처음으로 이동
 B ; 왼쪽으로 한단어의 처음으로 이동

한 행 안에서의 이동

 0 (숫자) ; 행의 맨 처음으로 이동
 $ ; 행의 맨 마지막으로 이동

페이지 이동

 G ; 문서의 맨 끝 행으로 이동
 nG ; nqjsWo 행으로 이동
 C-f ; 한페이지 아래로 이동
 C-b ; 한페이지 위로 이동

삭제명령

 dw ; 한 단어 삭제
 dd ; 한 줄 삭제
 D ; 커서부터 행 끝까지 삭제
 x ; 한 글자 삭제

숫자와 명령의 조합 예제

 10j ; 10줄 위로 이동
 10x ; 10글자 삭제
 5dd ; 5줄 삭제

복사 & 붙여넣기

 x, dw, dd, D → p ; 커서 뒤에 임시 버퍼내용 추가
 x, dw, dd, D → P ; 커서 앞에 임시 버퍼내용 추가

텍스트 복사

 yw ; 한단어 복사
 y$ ; 커서부터 행끝까지 복사
 yy ; 한줄 모두 복사

2줄 붙이기 ; J

텍스트 탐색

 / ; 전방 탐색
 ? ; 후방 탐색
 n ; 같은방향으로 탐색 계속
 N ; 반대방향 탐색 계속
 /  ; 전방탐색 계속
 ?  ; 후방탐색 계속

행 번호 붙이기

 :set nu
 :set nonu ; 번호 없애기

특정 행 번호로 이동

 :1 ; 1번째 행으로 이동
 :$ ; 마지막 행으로 이동
 :$= ; 현재 문서의 총 줄(행)수
 :.= ; 현재위치의 행번호

범위 지정

 v

 :1,10d ; 1번행부터 10번행가지 삭제(d)
 :.,$d ; 현재부터 마지막 행까지 삭제
 :0,$-4d ; 파일의 맨처음(0;가상번호)부터 끝까지 삭제하되 4는 제외
 :.-1,.+1y(:.-,.+y)(:-,+y) ; 현재 행을 기준으로 아래위 3행을 복사
 :0,$y ; :%y ; 모든 행 복사

일부분 저장

 :1,.w part1.txt ; 1행부터 현재 행까지 part1.txt 라는 이름으로 저장
 :1,.w >>part.txt ; 1행부터 현재 행까지를 part.txt 파일에 추가

다른파일 내용 (읽기) 삽입

 :r insert.txt ; 커서위치 아래에 insert.txt  파일을 추가
 1r insert.txt ;
 0r insert.txt ;

텍스트 검색 및 교체

 :범위s/찾는문자열/교체할문자열/옵션
 :%s/girl/woman/g (※ g ; global)
 :0,.s/^/>> /g ; 맨 처음부터 현재행에 대하여 행의 맨 앞에 >>를 붙임 (※ ^ 는 가상의 맨 앞)
 :.-3,.+5s/$/<</g ; 주어진 범위의 각 행 끝에 << 문자 추가 (※ $는 가상의 맨 마지막)

※ . ; 현재 행 ^ ; 가상의 맨 처음 $ ; 가상의 맨 처음 % 현 문서 전체

특수문자가 들어간 문자열의 교체

 :%s/\/usr/\/usr/local/g ; /usr를 찾아서 /usr/local 로 교체
※ \ (역 슬래쉬) 특수문자(/)의 해석방지

외부 유닉스 명령어 실행

 :!명령
 :sh ;
 :r :ls ; 유닉스 명령의 실행 결과 화면을 현재 편집중인 내용에 불러들임

필터와 명령

 :%!tr [a-z][A-Z] ; 전체 텍스트의 영문자를 대문자로 치환
 :%!sort ; 정렬

 


http://www.jasko.co.kr/xe/?mid=extLinux

2009년 12월 11일 금요일

IE6 커닝 페이퍼: IE6 버그 25+ 해결하는 방법

웹 색상 총 정리

2009년 12월 1일 화요일

IE6 Background Flicker

메뉴부분 hover작동시 번쩍거리는 현상이 IE6에서 발생하게 되는데, 특히 IE6에서 도구->인터넷옵션->임시인터넷 파일설정->저장된 페이지의 새버전 확인->"페이지를 열때마다" 를 선택한 경우이면 확실한 번쩍거림을 볼수 있습니다.

그렇게 번쩍거리는 것은 서버로 이미지요청을 계속 하게되서 보이는 효과로, 결국 대역폭(Bandwidth)이 늘어나고 서버에도 부담을 주게 되고 사용자 환경도 느리게 할수도 있습니다. 반드시 수정해야 한다는!!

관련 내용을 검색 하면서 몇가지 해결책을 찾아 정리해봤습니다. 검색해보니 3가지 정도의 해결법이 있네요. 우선

아파치서버의 경우 아래 코드를 httpd.conf파일에 추가하면 됩니다.

#this stops screen flicker in IE 
BrowserMatch "MSIE" brokenvary=1
BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
BrowserMatch "Opera" !brokenvary
SetEnvIf brokenvary 1 force-no-vary

그러고 난후 아파치에서 mod_expires모듈을 설정 하면 문제가 해결 됩니다.

또는.htaccess파일에 아래 코드를 넣어도 됩니다.

ExpiresActive On 
ExpiresDefault A18000
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000

IIS 서버의 경우는 여기 를 방문해보시면 될것 같습니다.

CSS를 이용한 방법도 소개되고 있어 살펴보니 Background 프로퍼티에 따라서 깜빡거리는 현상이 발생한다고 합니다.

background style에

  • background-color에 특정색이 설정되는 경우
  • background-repeat 시키지 않는경우
  • background-position을 설정하는 경우

와 같이 background요소가 설정되는 경우 flick거리게 됩니다. 또 background요소로 깔리는 이미지 영역이 2500픽셀 미만이 되면 역시 flick하게 됩니다. 가령 아래와 같은 경우는 해당 영역의 총 넓이 값이 2450픽셀로 2500픽셀 미만이므로 깜빡거리게 됩니다.

a { width: 49px; height: 50px; } 

이 외에도 설정하려는 이미지가 투명이미지인 경우도 그렇습니다.

마지막으로 스크립트를 이용한 방법도 있습니다.

<script type="text/javascript"> 
(function(){
/*Use Object Detection to detect IE6*/
var m = document.uniqueID /*IE*/
document.compatMode /*>=IE6*/
!window.XMLHttpRequest /*<=IE6*/
document.execCommand ;
try{
if(!!m){
m("BackgroundImageCache", false, true) /* = IE6 only */
}
}catch(oh){};
})();
</script>

그냥 실행되고록 해놓은 코드로 삽입하면 됩니다. flicker현상을 위한 코드는 아닌데 부수적으로 flicker 효과를 없애는 역활까지 해주는거 같네요. IE6 에서만 문제되는 현상이기 때문에 해당 코드 삽입 형식에 제일 편하지 않을까 합니다 :)

참고사이트.
http://www.hedgerwow.com/360/bugs/dom-fix-ie6-background-image-flicker.html
http://www.fivesevensix.com/studies/ie6flicker/
http://dean.edwards.name/my/flicker.html

http://html.nhndesign.com/619

IE6/5.5에서 :hover :focus 속성 앵커태그 이외에 주는 법

CSS의 :hover 이벤트는 마우스가 엘리먼트 위에 올라가있을 때 발생합니다. 이것은 될 수 있으면 자바스크립트의 onmouseover 를 사용하지 않고도, 디스플레이를 컨트롤 할 수 있기 때문에 편리합니다. 최근에 나오는 브라우저는 앵커태그(a) 이 외에 다른 엘리먼트 에서도 :hover 를 사용할 수 있도록 되어있습니다.

하지만 익스플로러 6 이하 브라우저에서는 오직 앵커 태그에서만 :hover가 작동하고, 다른 엘리먼트에서는 작동하지 않는 문제가 있습니다.

지 금 제 블로그 메인 메뉴에 마우스를 올리면 뜨는 서브메뉴도 자바스크립트를 일체 사용하지 않고 CSS로만 만들어 진 것 입니다(올블로그 툴바가 있는 상태에서는 오작동합니다. 원인은 찾지 못했습니다). li:hover 기능을 이용해서 만든 것인데, 모든 최신 브라우저에서 별 문제 없이 작동을 합니다만, IE6 이하에서만 동작을 하지 않았습니다.

아래의 해결법으로 IE6에서도 문제없이 풀다운되는 메뉴를 구현할 수 있었습니다.

이 럴때는 expression을 사용하면 강력한 CSS컨트롤을 할 수 있습니다. 단점으로는 익스플로러 계열에서만 작동한다는 점인데요. 그래서 오히려 제 블로그 같은 서브메뉴를 구현할때는 장점으로 부각될 수 있습니다. li:hover 가 IE6 이하에서 인식을 못하고 다른 브라우저에서는 정상인식을 하므로 IE6 이하의 브라우저에서만 expression을 적용시키면 되기 때문입니다.

활용소스는 다음과 같습니다.

HTML 코드
<div class="menu">
 이 레이어를 컨트롤 하기 위함입니다
<div>

CSS 코드
/* IE6 이외의 브라우저 */
.menu      {
 padding:50px;
 text-align:center;
}
.menu:hover,
.menuOver  { /* menuOver는 html에 선언되지 않았지만, 마우스가 올라갔을 때를 디자인합니다. */
 background: #ff0000;
}

/* IE6과 그 이하의 브라우저 */
.menu  {
 behavior: expression(
  this.onmouseover = new Function("this.className += ' menuOver';"),
  this.onmouseout = new Function("this.className = this.className.replace(' menuOver', '');"),
  this.style.behavior = null
 );
}


일 반적인 최신 브라우저는 위 소스에서 사용된 div:hover 가 작동합니다. 하지만 IE6 이하의 브라우저에서는 작동하지 않기 때문에, expression을 활용해서 강제로 div:hover 와 똑같은 효과가 구현 가능하도록 한 것입니다.
빨간 부분을 자신에게 맞게 고쳐서 쓰시면 됩니다. CSS는 상속중심의 코드이기 때문에, 기본적으로 상속받을 것은 받고, IE6 에서 사용할 expression만 그 아래에 따로 선언을 해주면 됩니다.


http://monoeyes.com/394