출처: http://ra2kstar.tistory.com


소스를 수정하고 svn commit 을 수행할때 다음과 같은 에러가 발생하는 경우가 있다. 


svn: 커밋이 실패하였습니다:

svn: 로그 메시지를 구하기 위해 외부 프로그램을 사용할 수 없습니다. SVN_EDITOR 환경변수를 설정하시거나 --message (-m) 또는 --file (-F) 옵션을 사용하세요.

svn: 환경변수 SVN_EDITOR, VISUAL, EDITOR 중 하나는 설정하거나, 'editor-cmd' 를 구성화일에 명시해야합니다.


이와 같은 문제는 연결된 에디터가 없기 때문에 발생한다. 

  해결방법 
이 문제를 해결하기 위해서는 SVN_EDITOR 나 EDITOR를 설정해주어야 한다. 

SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR

모든 사용자가 사용할 수 있도록 설정을 원한다면 /etc/profile 에 추가하고, 
개인이 사용할 경우 자신 홈 디렉토리의 .bash_profile 에 추가하면 된다. 

설정 후, 바로 적용하기 위하여 source명령을 실행한다. 

source /etc/profile (모든 사용자 설정의 경우)
source ~/.bash_profile (개인 사용자 설정의 경우)

'unix . linux' 카테고리의 다른 글

[CentOS] VMWARE 에서 CentOS 설치  (0) 2013.04.17
[unix] 원격파일전송[scp / rsync]  (0) 2013.04.01
[unix] awk  (0) 2013.04.01
[unix] sort  (0) 2013.04.01
[unix] tar.gz 압축 및 해제  (0) 2013.04.01
Posted by airlueos
,

출처http://ra2kstar.tistory.com


원격으로 파일을 전송할때 scp와 rsync 를 많이 사용한다. 

다른것도 많이 쓰겠지만, 난 저 두개를 쓴다.. 


우선, scp 와 rsync 의 차이점은 무엇일까? 

두개 다 원격 파일 전송이라는 공통점은 있지만 왜 다르게 쓸까? 

그 이유는 옵션의 차이도 있겠지만 무엇보다 symbolic link 를 처리하는데 차이가 있다. 


scp는 전송하려 하는 파일중에 symbolic link 가 있다면 링크된 원본파일이 전송된다. 

즉, symlink 가 유지 되지 않는다.


그렇다면 scp 와 rsync 의 사용법을 알아보자 


  scp 

scp -[옵션] [보낼파일] [받는서버 계정 아이디]@[받는서버 URL]:[받을 위치 절대 경로]

scp -pr ./send naddru@10.10.10.10:./receive

옵션:

     - r  = recursive 하위 폴더 포함 모두 복사

     - p = preserve 권한및 속성 유지

     - C = compression 압축




  rsync

rsync -[옵션] [보낼파일] [받을위치]

여기서 보낼 파일 및 받을 위치는 [서버 계정 아이디]@[파일 URL]:[받을 경로] 로 사용 할 수 있다. 

rsync -avzP naddru@10.10.10.10.:./send ./receive

옵션: 

-v 진행상황을 상세히 보여줌 

-r 지정한 디렉토리의 하위 디렉토리까지 재귀적으로 실행 

-p 버전속성 보존 

-z 데이터압축 전송 

-u 추가된 파일만 전송 

-b 낡은 파일은 ~가 붙음 

-u 새로운 파일을 덮어쓰지 않음 

-e ssh(rsh) 전송암호화 


'unix . linux' 카테고리의 다른 글

[CentOS] VMWARE 에서 CentOS 설치  (0) 2013.04.17
[Unix/Linux] SVN_EDITOR 설정  (0) 2013.04.01
[unix] awk  (0) 2013.04.01
[unix] sort  (0) 2013.04.01
[unix] tar.gz 압축 및 해제  (0) 2013.04.01
Posted by airlueos
,

[unix] awk

unix . linux 2013. 4. 1. 15:34

출처http://ra2kstar.tistory.com


unix나 linux 를 사용하면서 많이 쓰게 되는 awk에 대해서 공부해 본다. 사실... 쉘 스크립트를 자주 보게 되는데 awk 문법이 자주 보여서 공부해야 할 필요성을 느꼈다. 



  awk 

awk 는 필드 단위로 패턴을 검색하고, 조작하는 것을 주 목적으로 한다. 파일 내의 각 라인 (레코드)에 대한 필드 를 인식할 수 있는 패턴 검색 기능을 보유하고 있으며, 이를 이용해서 조작도 가능하다. 


awk [-f 프로그램파일] [-F 필드구분자] ["패턴{액션}"] [처리할 파일명]

옵션

-f 프로그램 파일 

awk 유틸리티의 실행 액션이 저장된 프로그램 파일을 지정

-F 필드 구분자 

필드 구분자를 지정

"패턴{액션}"       

패턴이 일치하면 액션이 실행된다. 

사용예

$> awk -F : "{print $1, $6}" ./text.txt

= text.txt 파일에서 ":" 구부자를 이용하여 1번째와 6번째 필드를 프린트




  패턴과 액션의 구조 

awk의 옵션 중의 하나였던 ["패턴{액션}"] 에서도 여러가지 구조가 존재한다. 가장 대표적인 3가지를 알아보자 


1. BEGIN 

- 첫번째 레코드를 읽기 전에 지정된 액션을 실행 

2. END 

- 마지막 레코드를 읽고 난 후, 지정된 액션을 실행 

3. PATTERN 

- 입력되는 각 라인(레코드)별로 실행되며, 만약 그 라인이 패턴과 일치할 경우 액션이 실행된다. 

- 정규표현식의 경우 "/정규식/"  으로 나타낸다. 

- 패턴만 있는 경우 : 패턴과 일치하는 라인을 화면에 출력한다. 

- 액션만 있는경우 : 모든 라인이 액션의 대상이 된다. 



  awk 시스템 변수 

awk가 내부적으로 인식하는 변수들이다. 이것을 이용하면 조금 더 효율적으로 사용 할 수 있다. 


변수명 

내용 

FILENAME 

현재 처리중인 파일명 

FS 

필드 구분자로 디폴트는 공백 

RS 

레코드 구분자로 디폴트는 새로운 라인 

NF 

현재 레코드의 필드 개수 

NR 

현재 레코드의 번호 

OFS 

출력할 때 사용하는 FS 

ORS 

출력할 때 사용하는 RS 

$0 

입력 레코드의 전체 

$n 

입력 레코드의 n번째 필드 



  awk 사용 예 

awk "{print FILENAME}" test.txt 

= test.txt 파일의 레코드 개수만큼 파일이름을 출력한다


awk "{print NR}" test.txt

= test.txt 파일의 레코드 번호를 출력한다. 


awk 'BEGIN {FS="\t"} {print $1 ,  $2}' test.txt

= test.txt 파일의 필드 구분자를 "\t" 으로 지정하고, 1번째와 2번째 필드를 프린트 한다. 

awk 'BEGIN {FS="\t"; OFS ="-"} {print $1 ,  $2} END {print "총 레코드의 수 : " NR}' test.txt
= test.txt 파일의 필드 구분자를 "\t" 로 지정하고, 1번째와 2번째 필드를 프린트 하되, 필드 구분자를 "-"
로 바꾸어 출력하고, 모든 레코드가 끝난 뒤, 총 레코드의 수를 출력한다. 


  결과화면


'unix . linux' 카테고리의 다른 글

[Unix/Linux] SVN_EDITOR 설정  (0) 2013.04.01
[unix] 원격파일전송[scp / rsync]  (0) 2013.04.01
[unix] sort  (0) 2013.04.01
[unix] tar.gz 압축 및 해제  (0) 2013.04.01
[unix] 용량확인[df/ du]  (0) 2013.04.01
Posted by airlueos
,

[unix] sort

unix . linux 2013. 4. 1. 15:34

출처: http://ra2kstar.tistory.com


지금까지 파일의 내용을 정렬하기 위해서 C 나 JAVA를 이용해서 코드를 짜고, 그것을 이용하여 정렬을 해왔다. 

그러나, 직접 프로그램을 짜지 않고도, 쉘에서 sort 명령을 이용하여 파일을 정렬할 수 있다


sort 명령은 사용자가 지정한 파일의 내용을 정렬하거나, 정렬된 파일의 내용을 병합(Merge)할 때 사용할 수 있다. 


  sort 

sort [-옵션] [-o 저장될 파일명] 정렬할 파일명 [병합할 파일명....]

옵션 

-n    라인의 각 필드를 비교하는 대상을 숫자로 한정 

-f     영어를 정렬할 때, 대소문자 구별안함 

-r     출력 순서를 역순으로 

-b    앞에 붙는 공백 무시

-t     필드 구분자 지정

-m   정렬된 파일을 병합

-u    정렬후, 중복행 제거

-o    저장할 파일명을 명시, 명시하지 않으면 화면에 출력


만약 옵션을 지정해주지 않는다면, ASCII 코드 순으로 정렬하며, 정렬할 파일을 지정해주지 않으면 커멘드 입력으로 받아들인다. 기본적으로 맨 왼쪽 부터 구분자(스페이스나 탭)을 이용하여 정렬을 하는데, '+숫자' 를 추가하면 해당 번째의 필드부터 정렬할 수 있다. 


  사용 예 

우선 sort 명령을 확인해보기 위해서 다음과 같이 sort.txt 파일을 생성했다. 

[naddru@ ~]$ cat sort.txt

banana  3

camera  1

apple   4

date    2


그 후, 기본적인 sort 명령을 사용해 보면 다음과 같은결과가 나타난다. 

sort [파일명]

[naddru@ ~]$ sort sort.txt

apple   4

banana  3

camera  1

date    2


만약 두번째 필드를 기준으로 정렬하고 싶다면, 

sort +1 [파일명]
[naddru@ ~]$ sort +1 sort.txt
camera  1
date    2
banana  3
apple   4

마지막으로 파일에 저장하고 싶다면 -o 옵션을 사용한다. 
sort [파일명] -o [저장할 파일명]


  결과화면 

'unix . linux' 카테고리의 다른 글

[unix] 원격파일전송[scp / rsync]  (0) 2013.04.01
[unix] awk  (0) 2013.04.01
[unix] tar.gz 압축 및 해제  (0) 2013.04.01
[unix] 용량확인[df/ du]  (0) 2013.04.01
[unix] 서비스 재시작(mysql, httpd, service)  (0) 2013.04.01
Posted by airlueos
,

출처: http://ra2kstar.tistory.com


tar.gz 의 압축 하는 방법과 푸는 방법이다. 

여기서 tar는 파일들을 묶어주는 일을 하고 gz는 압축을 하는 역할을 한다. 


  압축

tar 로 파일 묶기

$> tar cvf 파일명.tar [묶을 파일1] [묶을 파일2] ... 

gz로 압축하기 

$> gzip 파일명.tar

두가지 일을 동시에 

$> tar cvzf 파일명.tar.gz [파일 1] [파일 2] ....



  압축 풀기 

gz 풀기 

$> gunzip 파일명.tar.gz 

tar 풀기 

$> tar xvf 파일명.tar

두가지 일을 동시에 

$> tar xvzf 파일명.tar.gz


'unix . linux' 카테고리의 다른 글

[unix] awk  (0) 2013.04.01
[unix] sort  (0) 2013.04.01
[unix] 용량확인[df/ du]  (0) 2013.04.01
[unix] 서비스 재시작(mysql, httpd, service)  (0) 2013.04.01
[unix] 패턴 검색 [grep]  (0) 2013.04.01
Posted by airlueos
,

출처: http://ra2kstar.tistory.com


디스크 용량을 확인하는 명령어들이다. 


  df : 디스크의 남은 용량을 확인 

df -k : 킬로바이트 단위로 현재 남은 용량을 확인

df -m : 메가바이트 단위로 남은 용량을 왁인 

df -h : 보기 좋게 보여줌

df . : 현재 디렉토리가 포함된 파티션의 남은 용량을 확인




  du : 현재 디렉토리에서 서브디렉토리까지의 사용량을 확인 

du -a : 현재 디렉토리의 사용량을 파일단위 출력

du -s : 총 사용량을 확인

du -h : 보기 좋게 바꿔줌 

du -sh * : 한단계 서브디렉토리 기준으로 보여준다. 


* 의 있고 없고의 차이 

'unix . linux' 카테고리의 다른 글

[unix] sort  (0) 2013.04.01
[unix] tar.gz 압축 및 해제  (0) 2013.04.01
[unix] 서비스 재시작(mysql, httpd, service)  (0) 2013.04.01
[unix] 패턴 검색 [grep]  (0) 2013.04.01
[UNIX/LINUX] vim 설정  (0) 2013.04.01
Posted by airlueos
,

하도 이래저래 설정 해보다 보니 MySQL 재시작을 해야하는 경우가 많다. 

머리가 나빠서 자꾸 까먹는다 ㅠ


  MySQL 시작 

/etc/init.d/mysqld start 


  MySQL 정지 

/etc/init.d/mysqld stop 


  MySQL 재시작

/etc/init.d/mysqld restart


  httpd 재시작

#service httpd start


  service 명령어로도 가능하다. 

#service mysqld start

#service mysqld stop

#service mysqld restart


'unix . linux' 카테고리의 다른 글

[unix] tar.gz 압축 및 해제  (0) 2013.04.01
[unix] 용량확인[df/ du]  (0) 2013.04.01
[unix] 패턴 검색 [grep]  (0) 2013.04.01
[UNIX/LINUX] vim 설정  (0) 2013.04.01
[UNIX] Window에서 Unix(Linux)서버 원격접속  (0) 2013.04.01
Posted by airlueos
,

출처http://ra2kstar.tistory.com


  패턴 검색 [grep] 

grep 명령은 파일 내에서 지정한 패턴이나 문자열을 찾은 후에, 그 패턴을 포함하고 있는 모든 행을 표준 출력해 준다. 물론, 한 디렉토리 내에서 지정한 패턴을 포함하는 파일을 출력할 수도 있다. grep 명령은 하나 이상의 파일로부터 프로그램 수정 등을 위해 변수, 또는 함수명을 찾을때 많이 사용된다. 



  grep 명령의 기본 문법 

grep [-옵션] 패턴 파일명 


   옵션

-c : 패턴이 일치하는 행의 수를 출력 

-i : 비교시 대소문자를 구별 안함 

-v : 지정한 패턴과 일치하지 않는 행만 출력 

-n : 행의 번호를 함께 출력 

-l : 패턴이 포함된 파일의 이름을 출력 

-w : 패턴이 전체 단어와 일치하는 행만 출력 


   사용 예 

$ grep -n '삼성' token_dic

= token_dic 이라는 파일내에서 '삼성' 이라는 패턴이 들어간 문자열과 행번호를 출력 


$grep -l '삼성' * 

= 현재 디렉토리의 모든 파일에서 '삼성' 이라는 패턴이 들어간 파일의 이름을 출력 


$grep -v '삼성' * 

= 현재 디렉토리의 모든 파일에서 '삼성' 이라는 패턴이 들어가지 않은 행을 출력


$grep -r '삼성' * 

= 현재 디렉토리 및 서브디렉토리의 모든 파일에서 '삼성' 이라는 패턴이 들어간 문자열 출력



  패턴의 정규 표현식(Regular Expression) 

패턴 지정에서 사용되는 정규 표현식은 작은 따옴표 (' ')로 묶어서 표현한다. 

$ grep '^a' 파일명 

= ^는 파일의 시작을 나타냄. 파일에서 a로 시작하는 행을 찾는다. 

$ grep 'apple$' 파일명

= $는 파일의 끝을 나타냄. 파일에서 e로 끝나는 행을 찾는다. 

grep 'app*' 파일명 

= 파일에서 app로 시작하는 모든 단어를 찾는다. 

$ grep 'a.....e' 파일명 

= 파일에서 a로 시작하고 e로 끝나는 7자리 단어를 찾는다. 

$ grep [a-d] 파일명 

= 파일에서 a,b,c,d 로 시작하는 단어를 모두 찾는다. 

$ grep [aA]pple 파일명 

= 파일에서 apple 또는 Apple로 시작하는 단어를 모두 찾는다.

$ grep 'apple' d*

= d로 시작하는 모든 파일에서 apple 를 포함하는 모든 행을 찾는다. 

$ grep 'apple' 파일명1 파일명2 

= 지정된 두개의 파일에서 apple 를 포함하는 모든 행을 찾는다. 

$ grep '^[ab]' 파일명 

= 파일에서 a나 b로 시작되는 모든 행을 찾는다. 

Posted by airlueos
,

출처http://ra2kstar.tistory.com


vi 에디터의 각종 기능을 세팅하기 위한 방법이다. 


  $ vi ~/.vimrc 


자동 들여쓰기

set autoindent 


C 프로그래밍을 할때 자동으로 들여쓰기

set cindent  


검색할 때 문서의 끝에서 다시 처음으로 돌아가지 않게 하기

set nowrapscan  


백업 파일을 만들지 않기

set nobackup 


키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍이게 하기

set visualbell  


화면 우측 하단에 현재 커서의 위치보기

set ruler 


Tab을 눌렀을 때 8칸 대신 4칸 이동

set tabstop=4  


자동 들여쓰기를 할때 4칸 들여쓰기

set shiftwidth=4  


한글 처리를 하기위한 구문 

if $LANG[0] == `k' && $LANG[1] == `o'

set fileencoding=korea

endif


문법 강조 기능

if has("syntax")

syntax on " Default to no syntax highlightning 

endif




Posted by airlueos
,

출처http://ra2kstar.tistory.com


윈도우에서 Unix나 Linux 서버를 터미널이 아닌 GUI 환경으로 원격접속하여 사용하려면 어떻게 해야 할까?


우선 많은 사용자들이 사용하는 것이 VNC를 이용하는 것이다. 


  VNC 

보통 리눅스의 경우 vncserver가 깔려있으므로, 많이 사용하기때문에 나도 한번 해보려고 했다. 

하지만 설정해 주어야 할 것들이 너무 많고, 번거롭고, 까다롭고 귀찮다. 

그리고 어렵다 ㅡㅡ;; 

그 어려운 과정을 다 지나고 실행한 결과는~ !! 




10061 에러라니. 

이건 뭐 해결 방법도 모르겠다. 이것때문에 하루를 삽질로 보냈다. 그리고 결국은 해결도 못했지. 



하지만 VNC보다 더욱 쉽고 효과적인 방법을 찾아내는데는 성공했다. 


  PUTTY 의 X11과 Xming을 이용한 원격접속 

윈도우에서 리눅스나 유닉스 서버의 터미널 접속을 하기 위해 많이 사용되는 PUTTY. 이것을 이용하여 GUI환경으로도 접속 할 수 있다. 


  1. Server 설정 

우선 접속하려는 서버의 root 계정에서 설정해 줘야 할 것이 있다. 


# vi /etc/ssh/ssh_config




22번째 라인의 ForwardX11 no 를 yes 로 바꿔준다. 


그리고 sshd 서비스 재시작.


# service sshd restart

sshd 를 정지 중:                                           [  OK  ]

sshd (을)를 시작 중:                                       [  OK  ]



  2. Xming 설치 
뭐, PUTTY는 깔려 있다보고, Xming 를 설치하자. 설치 방법은 따로 없고, 그냥 링크가서 다운받고 실행하면 된다. 

다운로드 링크 :  http://sourceforge.net/projects/xming/



  3. PUTTY - X11 및 설정 

이제 마무리 단계이다. GUI 접속을 위해서 PUTTY 의 SHH 접속 옵션을 조정해야 한다. 


SSH - > X11 -> X11 포워딩 사용 체크 -> X디스플레이 위치 : localhost:0 입력 




X11 설정 화면에서 X11 포워딩 사용 박스에 체크를 한뒤, 

X 디스플레이 위치에 localhost:0을 입력한다. 

그리고 접속하려는 ip주소를 입력후 세션에 접속하면, 기존의 터미널 화면이 뜬다. 



  4. GUI로 원격 접속하기. 

이제 설정이 다 끝났으니 실행을 하자. 


# gnome-session


명령을 실행을 하면 Xming을 이용하여 Xwindow 화면이 뜬다. 




'unix . linux' 카테고리의 다른 글

[unix] 패턴 검색 [grep]  (0) 2013.04.01
[UNIX/LINUX] vim 설정  (0) 2013.04.01
[unix] 특정 문자열 찾기 (find/grep)  (0) 2013.04.01
[unix] 파일 인코딩 환경 변경  (0) 2013.04.01
[unix] vi editor 편집 명령  (0) 2013.04.01
Posted by airlueos
,