linux4 Articles

  1. 2008/06/28 CVS 간편정리
  2. 2008/03/08 VNC server 설치
  3. 2008/02/29 VI 설정
  4. 2008/02/29 VI 명령어
Linux 2008/06/28 16:45

CVS 간편정리

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

한번만 설정한다.

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

0. 환경설정 (bash)

    # LOCAL : export CVSROOT=/home/cvshome

    # REMOTE : export CVSROOT=:pserver:guest@192.168.0.2:/home/cvshome

   

1. 로그인/로그아웃

    # cvs login

    # cvs logout


2. 새 저장소 생성

    # cvs init ; $(CVSROOT)에 CVSROOT/가 생긴다


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

새 프로젝트를 만들때 시작한다.

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

3. 새 프로젝트 생성 ( $(CVSROOT)/proj 에 저장 )

    # cd proj

    # cvs import -kb -I! -m "proj_name" proj VENDOR start   # -I! (capital i)


4. Check Out ( $(CVSROOT)/proj를 현재의 디렉토리로 복사 )

    # cvs co proj


5. Anonymous 로그인/Check Out

    # cvs -d:pserver:anonymous@192.168.0.2:/home/cvshome  login

    # cvs -z3 -d:pserver:anonymous@192.168.0.2:/home/cvshome co proj


6. Check In ( $(CVSROOT)/proj에 변경된 내용을 저장 )

    # cvs ci -kb -I! -m "fixed bug"

    # cvs ci -m "another bug fix" files.cpp


7. Check Out 후 업데이트 ( $(CVSROOT)/proj에서 변경된 내용을 현재의 디렉토리에 업데이트 )

    # cvs -n update; 바뀐 내용을 확인

    # cvs update -kb -I! -dP


8. 파일을 추가

    # cvs add newfile

    # cvs add newdir


9. 파일을 삭제

    # rm -f oldfile

    # cvs rm -f oldfile

    # cvs ci


    # rm -f badfile

    # cvs rm -f badfile

    # cvs -f olddir/badfiles

    # cvs rm olddir

    # cvs ci


10. 파일 이름을 변경

    # mv oldfile newfile

    # cvs remove oldfile

    # cvs add newfile

    # cvs ci -m "rename oldfile to newfile" oldfile newfile


11. 디렉토리 지우기

    # cd unneeddir

    # rm *

    # cvs remove

    # cvs ci


    # cd ..

    # cvs remove unneeddir

    # cvs update -P


12 Check Out 받은 소스를 지우자

    # cvs release -d proj


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

기타의 기능들.

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

13. 작업한 내용을 확인

    # cvs diff options


14. 누가 만든 소스인지 확인

    # cvs annotate files.cpp


15. 현재까지의 작업 내역을 보자

    # cvs st  [prog.cpp]

    # cvs st -v prog.cpp

    # cvs st prog.cpp

    # cvs log prog.cpp

    # cvs ann main.cpp


16. branch

     # cvs co proj

     # cd proj

     # cvs update foo.cpp


     # cvs tag release-1 .

     # cd ..

     # cvs release -d proj


     # cvs co -r release-1 proj

     # cvs release -d proj


17. 다른 기계로 옮기기

     통채로 복사해서 옮긴다. 퍼미션 조절해준다.



18. 배타적 락(Exclusive Lock) 걸기, watch를 사용하기를 권장

     # cvs admin -l filename


19. binary <--> text 전환

     # cvs admin -kb filenames ; text 파일을 binary 파일로 바꾸기

     # cvs admin -kkv filenames ; binary 파일을 text 파일로 바꾸기

출처 : Tong - 즐거운 하루가 되자님의 리눅스통

Linux 2008/03/08 02:29

VNC server 설치

  ◆ 설치
        # tar xvzf vnc-4_1_2-x86_linux.tar.gz
        # cd vnc-4_1_2-x86_linux
        # cat README | more


        # mkdir -p /usr/local/vnc/man/man1 /usr/local/vnc/classes
        # cp java/* /usr/local/vnc/classes

        # /usr/local/vnc/vncserver
          Password:
          Log file is /root/.vnc/kdk.localdomain:1.log

            ---> :1은 포트번호 offset (vncserver:1 = 5901, vncserver:2 = 5902)
            ※ VNC는 5900 포트 사용


       # vi /root/.vnc/xstartup
          exec gnome-session &  <-- 추가


      # pstree | grep Xvnc
      # killall Xvnc
      # /usr/local/vnc/vncserver



  ◆ 클라이언트 접속
        ☞ Linux 환경에서 접속
              # vncviewer &
                 서버 IP:(590)1


        ☞ Windows 환경에서 접속  

VNC가 설치되어있는지 확인한다.

# rpm -qa | grep vnc-server

vnc-server-3.3.3r2-47

설치가 되어있지 않다면 RPM 으로 설치

# rpm -Uvh vnc-server-3.3.3r2-47.i386.rpm

# vi /etc/sysconfig/vncservers -> 제일아래줄에 다음을 추가

VNCSERVERS="1:root"

비밀번호 설정

# vncpasswd

Password: 비밀번호
Verify: 비밀번호재입력

vnc서버 구동 및 확인

# /etc/init.d/vncserver start

VNC server를 시작합니다 : 1:root [확인]

# /etc/init.d/vncserver status

Xvnc (pid 26543 23554 25234)가 실행되고 있습니다..

루트로 접속할 것이므로 다음과 같이 파일명 수정

# mv /etc/securetty /etc/securetty.old

시스템 다시 시작했는데도 vnc서버가 자동으로 시작하지 않는다면 chkconfig 명령어를 사용하여 부팅할때 자동으로 시작하도록 설정한다.

# chkconfig vncserver on

또는

# ntsysv

vncserver 체크

풀화면 보게 하기

# vi /root/.vnc/xstartup

unset... -> 주석이 없는지 확인
exec ... -> 주석이 없는지 확인

5901 포트를 열어준다.

# vi /etc/services

vncserver 5901/tcp

Linux 2008/02/29 11:16

VI 설정

* vi 의 명령모드에서도 설정하나, 영구적으로 .vimrc 파일을 만들어 설정합니다.

1. $ sudo gedit ~/.vimrc 해서 .vimrc 에 다음 내용을 입력합니다.

사용자 삽입 이미지



2. 텍스트 편집기가 실행됩니다.

사용자 삽입 이미지



3. 위와 같이 자신에게 맞는 코드를 넣고 저장하면 완료
(주의 : 터미널을 종료하면 텍스트편집기도 같이 종료된다.)

(내용)
set autoindent " 자동으로 들여쓰기를 한다.
set cindent " C 프로그래밍을 할때 자동으로 들여쓰기를 한다.
set smartindent " 좀더 똑똑한 들여쓰기를 위한 옵션이다.
set textwidth=79 " 만약 79번째 글자를 넘어가면 \
set wrap " 자동으로 를 삽입하여 다음 줄로 넘어간다.
set nowrapscan " 검색할 때 문서의 끝에서 다시 처음으로 돌아가지 않는다.
set nobackup " 백업 파일을 만들지 않는다.
set visualbell " 키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍이게 한다.
set ruler " 화면 우측 하단에 현재 커서의 위치(줄,칸)를 보여준다.
set tabstop=3 " Tab을 눌렀을 때 8칸 대신 3칸 이동하도록 한다.
set shiftwidth=3 " 자동 들여쓰기를 할때 3칸 들여쓰도록 한다.
set number " 행번호를 사용한다.
set nobackup " 백업파일을 생성하지 않는다.
set fencs=ucs-bom,utf-8,euc-kr.latin1 "한글 파일은 euc-kr로 읽어들이며, 유니코드는 유니코드로 읽어들이도록 설정
set fileencoding=euc-kr " 실제로 파일을 저장할때 사용되는 인코딩은 euc-kr
set background=light " 하이라이팅 옵션
set expandtab " 탭을 입력하면 공백문자로 변환하는 기능을 설정
set hlsearch " 검색어를 구문강조해주는 기능
set ignorecase " 검색할 때 대소문자 무시하도록 하는 것.

if has("syntax")
syntax on " Default to no syntax highlightning
endif
"=================== 로케일 설정 =================================
if has("unix")
set encoding=euc-kr
elseif has ("win32")
set encoding=cp949
endif

"======================= UTF-8, euc-kr 한글문서 그냥 열기 ====================
if v:lang =~ "^ko"
set encoding=cp949
set fileencodings=utf-8,cp949
set guifontset=-*-*-medium-r-normal--16-*-*-*-*-*-*-*
elseif v:lang =~ "^ja_JP"
set fileencodings=euc-jp
set guifontset=-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*
elseif v:lang =~ "^zh_TW"
set fileencodings=big5
setguifontset=-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0
elseif v:lang =~ "^zh_CN"
set fileencodings=gb2312
set guifontset=*-r-*
endif

if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set encoding=utf-8
set fileencodings=utf-8,cp949
endif

"================= Key 매핑 ========================
map "맨 위로
map "맨 마지막으로
map :25vs ./ "F2: 탐색기 열기
map :only "창 최대화
map v]} zf "폴딩

"================= Gcc 컴파일 & 실행 설정 ==============
map :w! "현재 작업 저장
map :!g++ -W -Wall -O2 -g % -o %< "컴파일
map :!%< "실행

4. 실행을 했는데?! 어?! 뭔가 이상하다. 입력한 코드가 틀린것이다.
(틀린 곳을 가르쳐 준다. 다시 편집하도록 한다.)
사용자 삽입 이미지


5. 정상적으로 작동하는 vim의 모습.(왼쪽 상위를 보면 줄번호 옵션이 적용된 것을 알수 있다.)
사용자 삽입 이미지

 

출처 vi 설정|작성자 하임군

Linux 2008/02/29 09:11

VI 명령어


vi 시작 명령어  작업설명
vi filename 파일 열기, 작성
vi +18 filename 18행으로 파일 열기
vi +/"문자열" fn 문자열의 처음발생 단어부터 열기
vi -r filename 손상된 파일 회복
view filename 읽기 전용으로 파일 열기
vi 커서 이동 명령어  작업설명
h(←) 왼쪽으로 커서 이동
j(↓) 아래로 커서 이동
k(↑) 위로 커서 이동
l(→) 오른쪽으로 커서 이동
w 오른쪽 한 단어의 끝 부분으로 커서 이동
e 오른쪽 한 단어의 앞 부분으로 커서 이동
b 왼쪽 한 단어의 앞 부분으로 커서 이동
Enter 한 행 아래로 커서 이동
Back space 한 문자 왼쪽으로 커서 이동
Space Bar 한 문자 오른쪽으로 커서 이동
^ 행의 맨 왼쪽으로 커서 이동
$ 행의 맨 오른쪽으로 커서 이동
H 화면의 맨 위로 이동
M 화면의 중간으로 이동
L 화면의 맨 아래로 이동
숫자G ‘숫자’만큼 지정한 줄로 커서 이동
Ctrl + f 한 화면 위로 이동
Ctrl + b 한 화면 아래로 이동
Ctrl + d 반 화면 위로 이동
Ctrl + u 반 화면 아래로 이동
Ctrl + e 한 줄씩 위로 이동
Ctrl + y 한 줄씩 아래로 이동
문자,행 삽입 명령어  작업설명
a (종료:ESC) 커서 오른쪽에 문자 삽입
A (종료:ESC) 커서 오른쪽, 행의 끝에 문자 삽입
i (종료:ESC) 커서 왼쪽에 문자 삽입
I (종료:ESC) 커서 왼쪽, 행의 처음에 문자 삽입
o (종료:ESC) 커서 아래에 행 삽입
O (종료:ESC) 커서 위에 행 삽입
텍스트 변경 명령어  작업설명
cw (종료:ESC) 단어 변경
cc (종료:ESC) 행 변경
C (종료:ESC) 커서 오른쪽의 행 변경
s (종료:ESC) 커서가 위치한 문자열 대체
S (종료:ESC) 커서가 위치한 라인의 문자열 대체
r 커서 위치 문자를 다른 문자로 대체
r-Enter 행 분리
J 현재 행과 아래 행 결합
xp 커서 위치 문자와 오른쪽 문자 교환
~ 문자형(대,소문자) 변경
u 이전 명령 취소
U 행 변경 사항 취소
:u 이전의 최종 행 취소
. 이전 최종 명령 반복
텍스트 삭제 명령어  작업설명
x 커서가 있는 문자 삭제
5x 커서가 있는 위치부터 5개의 문자를 삭제
dw 현재 커서가 있는 한단어 삭제
dd 커서가 있는 라인 삭제
5dd 커서가 있는 라인부터 5개의 라인 삭제
db 커서의 위치에서 꺼꾸로 한단어 삭제
D 커서 오른쪽 행 삭제
:5,10d 5-10번째 행 삭제
복사 및 이동 명령어  작업설명
yy 행 yank 또는 복사
Y 행 yank 또는 복사
P yank되거나 삭제된 행 현재 행 위에 삽입
p yank되거나 삭제된 행 현재 행 아래에 삽입
:1,2 co 3 1-2행을 3행 다음으로 복사
:4,5 m 6 4-5행을 6행 위로 이동
행 번호 설정 명령어  작업설명
:set nu 행 번호 표시
:set nonu 행 번호 숨기기
행 찾기 명령어  작업설명
G 파일의 마지막 행으로 가기
21G 파일의 21번째 행으로 가기
Ctrl + G 현재의 filename과 line수를 알려줌
탐색 및 대체 명령어  작업설명
/검색할 문자열/ 오른쪽 아래 방향으로 문자열 검색
?검색할 문자열? 왼쪽 위 방향으로 문자열 검색
n 문자열의 다음으로 계속 검색
N 문자열의 이전으로 계속 검색
:g/search-string/s//replace-string/gc 각 발생 탐색 후 확인하고 대체
:s/str/rep/ 현재 행의 str을 rep로 대체
:1,.s/str/rep/ 1부터 현재 행의str을 rep로 대체
:%s/str/rep/g 파일 전체 str을 rep로 전부 대체
:.$/aaa/bbb/ 커서의 위치로부터 화일의 끝까지 있는 모든 aaa를 bbb로 대체
화면정리 명령어  작업설명
Ctrl + l  불필요한 화면정리 후 다시 표시
파일 명령어  작업설명
:r filename 커서 다음에 파일 삽입
:34 r filename 파일을 34번째 행 다음에 삽입
보관 및 종료 명령어 작업설명
:w 변경사항 보관
:w filename 버퍼를 파일로 보관
:wq 변경사항 보관 후 vi 종료
ZZ 변경사항 보관 후 vi 종료
:q! 변경사항 보관하지 않고 종료
q 수정한 파일을 저장하지 않고 vi 종료
e! 수정한 것을 무시하고 다시 편집상태로