ssh 키 가지고 로그인하기

ssh-keygen -t rsa

하면 저장위치묻고
그 키파일의 패스워드(로그인정보와 무관)
을 묻는다
fingerprint가 출력되면 제대로 생성된것.
아마 저장위치가 기본값으로 USER/.ssh/ 로 되어있을텐데
거기가보면
id_rsa
id_rsa.pub
가 생성되어있을텐데
간단하게 pub 이놈이 자물쇠 역할 (공개키) id_rsa가 열쇠역활(비밀키) 을 한다
id_rsa.pub를  authorized_keys로 이름을 변경하고
id_rsa를 클라이언트 부분으로 빼낸다. (아니면 거꾸로 authorized_keys이걸 서버에 업로드)
클라의 USER/.ssh/ 에 넣고
권한을 600 으로 준다음에
ssh-add 를 하게되면 패스워드를 묻는다.
위에 키 만들때 지정한 패스워드를 넣어주면 된다
이제 ssh host 로 패스워드 입력없이 접속할수 있다
(서버 설정에 따라 다르지만.. 일반적으로 키나 패스워드만 있으면 가능하다)

diff , patch 사용방법

간단한건데 안쓰니까 자꾸까먹네 ;;

이름        diff – 두 파일의 차이점을 비교한다.
사용법     diff [options] from-file to-file
옵션으로는 자주쓰는게
       -u     unified 출력 형식을 사용한다.
       -r     두 디렉토리를 비교할 때, 모든 하위 디렉토리는 재귀적으로(recursively) 비교한다.
       -N    –new-file    디렉토리 비교에서, 어떤 파일이 한 디렉토리에만 있다면 다른 디렉토
리에는 비어었는 파일이 있는 것처럼 비교한다. (간단하게 디렉토리내 새파일도 비교)
NAME       patch – apply a diff file to an original
SYNOPSIS       patch [options] [originalfile [patchfile]]
                      but usually just
                      patch -pnum <patchfile
이게 다인거같다 ㅇㅇ…
옵션으로 들어가는 -p는 patchfile 내 경로를 ‘ / ‘ 를 기준으로 하나를 벗겨낸다.
             /u/howard/src/blurfl/blurfl.c
          setting -p0 gives the entire file name unmodified, -p1 gives
             u/howard/src/blurfl/blurfl.c
          without the leading slash, -p4 gives
             blurfl/blurfl.c
man page 너무 잘되있다zz

시그널

 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX


시그널 이름 설명
SIGHUP 터미널을 읽어버렸을때 발생한다.
SIGABRT 프로그램의 비정상종료시 발생한다.
SIGINT Control-C 나 DELETE 키를 입력했을때 발생한다.
SIGIO 비동기적인 입출력이 발생했을때
SIGKILL 프로세스를 죽이기 위해서
SIGPIPE 단절된 파이프에 write 할경우 발생
SIGSEGV 잘못된 메모리 참조(주로 포인터를 잘못 썼을때)
SIGSTOP 프로세스의 일시중단 (Ctrl+z)
SIGSUSR1 사용자를 위해 정의된 시그널



SIGNULL …. 은 아니고 SIGNAL (시그날 인가 ;)
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/Signal/SignalHow
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/Signal/SignalHow2
http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/1/kill

런레벨 runlevel

1. 런레벨 확인 방법

Code:
runlevel
N 2

또는

Code:
who -r
        실행-수준 2 2010-02-01 12:40


2. 런레벨 변경  (실행중 바뀌므로 주의)

Code:
telinit N (N은 런레벨 숫자)

출처 : http://www.debianhelp.co.uk/runlevels.htm


3. 데비안/우분투 런레벨 구조

Quote:
* 0 – Halt
* 1 – Single
* 2 – Full multi-user with display manager (GUI) 기본값
* 3 – Full multi-user with display manager (GUI)
* 4 – Full multi-user with display manager (GUI)
* 5 – Full multi-user with display manager (GUI)
* 6 – Reboot

출처 : http://zoobave.blogspot.com/2007/08/deb … ittab.html

4. 레드헷 계열 런레벨 구조

Quote:
0 – 시스템 중지(halt)
1 – 단일 사용자 모드
2 – NFS를 제외한 다중 사용자 모드(만 네트워크와 연결되어 있지 않으면 런레벨
3과 같다)
3 – 모든 기능이 작동하는 다중 사용자 모드(default)
4 – 사용하지 않음
5 – X 윈도우 부팅(xdm, gdm)
6 – 리부팅(reboot)

출처 : http://debianusers.org/seminar/seminar5 … ervice.txt

 
우분투에서 왜 자꾸 런레벨이 2로 뜨는지 몰랐다…(2년동안쓰면서 !)
http://ubuntu.or.kr/viewtopic.php?p=4209

한글 zip 파일 풀기

9.04 까지만해도

unzip 명령어에 -O 라는게 있어서
unzip -O cp949 파일명
이런식으로 한글파일도 깔끔하게 풀수있었다 ..
근데 9.10에서는 이게 사라졌다!!..(그냥은 안된다 뭐 옵션줘서 컴파일해야되는거로앎)
우분투 채널 보니까 스크립트를 만들어서 쓰더라 (인코딩변환후 리네임방법)
perl과 ruby 스크립트중
 ruby가 맘에들어 ruby를 쓰기로했다.
#!/usr/bin/ruby
# libzip-ruby1.8 패키지를 설치한 후 사용할 수 있습니다.
# 사용법: $ ruby unzip_cp949_to_utf8 zipfile.zip
require 'fileutils'
require 'zip/zip'
require 'zip/zipfilesystem' # ruby 1.8.x
require 'iconv'

def unzip
   Zip::ZipFile.open(ARGV[0]) do |zipfile|
      zipfile.each do |f|
         # libzip-ruby1.9 아직 없음. 그래서 아래 문장 주석 처리
         #utf_string = f.name.encode("utf-8") # for ruby1.9 or higher
         # cp949 파일 이름을 utf-8로 변환
         utf_string = Iconv.conv("UTF-8", "CP949", f.name) # for both ruby1.8.x and ruby1.9.x
         FileUtils.mkdir_p(File.dirname(utf_string))
         zipfile.extract(f, utf_string)
         puts utf_string
      end
   end
end
unzip

unzip

그냥은 안된다 …
sudo apt-get install rubygems  로 루비 gem을 설치후
gem install zip/zip  으로 zip 라이브러리를 설치해준다
그다음에 네번쨋 줄쯤에 require rubygems 를 해주면 잘된다
삽질하고나서 읽어보니까 libzip-ruby 한방이면 되는거같기도하다 ;..(설명서를 읽자!)
http://ubuntu.or.kr/viewtopic.php?p=44412#p44412
Debian 8, ruby 2.1 에서는
sudo gem install zip iconv
가 필요
————————————-
업데이트
루비 2.1
#!/usr/bin/ruby
require 'fileutils'
require 'zip'

def unzip
	Zip::File.open(ARGV[0]) { |zipfile|
		zipfile.each  {|f|
			# cp949 파일 이름을 utf-8로 변환
			utf_string = f.name.force_encoding("CP949").encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => "_") # for ruby1.9 or higher
			FileUtils.mkdir_p(File.dirname(utf_string))
			#zipfile.extract(f,utf_string)
			f.extract(utf_string)
			puts utf_string
		}
	}
end
unzip