Linux & Unix2014. 8. 18. 14:32

HP-UX의 주변장치 확인


1. 하드디스크 확인

# ioscan -fnC disk


2. 테입 확인

# ioscan -fnC tape


3. Network 카드 확인

# ioscan -fnC LAN


4. Fiber Channel 확인

# ioscan -fnC FC

Posted by Tiwaz
Linux & Unix2013. 7. 10. 11:06


맥의 root  사용자의 비밀 번호 변경 방법.
최초 설치 후 root 패스워드를 변경하지 않았다면 터미널에서 쉽게 변경할 수 있습니다.

1. 변경 방법.
1) 관리자 권한이 있는 계정으로 접속.
2) 터미널을 실행
    응용프로그램 => 유틸리티 => 터미널
3) 명령어 입력
    $ sudo passwd root

2. 참조..
원문 : http://www.bloodyerror.com/2009/07/mac-os-x-what-is-my-default-sudo-password-root-password/
  • First you will have to logged in as Admin level user
  • Open your Terminal (Located Applications/Utilities/Terminal)
  • Type in command: sudo passwd root

Posted by Tiwaz
Linux & Unix2011. 6. 7. 18:18

파티션 분할은 사용자의 용도에 맞게 하는게 최적이지만 나같은 초보들을 위한 최적??의 분할율 이랄까 ;;

꼭 아래와 같이 할 필요는 없으며 용량은 상황에 맞게 설치 - !!

그냥 참조만 !!

- 퍼센트로 본 분할 예제
swap - 메모리 2배
/boot - 100m
/ - 8%
/var - 12%
/usr - 35%
/home - 나머지 (45%)

- 하드디스크가 80G라고 할때 분할 예제
swap - 2048MB
/boot - 100m
/ - 6.4
var - 9.6
/usr - 28
/home - 36

Posted by Tiwaz
Linux & Unix2010. 12. 21. 21:52
ERROR
    failed to execute child process "eclipse" (permission denie)

해결 방법
    root@localhost ~] cd /usr/local/bin
    root@localhost bin] ln -s /opt/eclipse/eclipse eclipse
Posted by Tiwaz
Linux & Unix2010. 12. 21. 21:44
ERROR
/opt/jdk1.6.0/jre/lib/i386/client/libjvm.so:
    cannot enable executable stack as shared object requires: Permission denied

해결 방법
    root@localhost ~] setsebool -P allow_execstack 1
    root@localhost ~] execstack -c /opt/jdk1.6.0/jre/lib/i386/client/libjvm.so
Posted by Tiwaz
Linux & Unix2010. 12. 16. 22:17
대학 다닐대 Centos 5에 JDK를 설치하고 정리까지 해본 경험이 있었는데 새로 설치 해보려하니 하나도 기억이 나지 않는다.
원본 출처는 http://whiteship.tistory.com/950 이며 fedora 2와 14와 크게 다른점은 없는 것 같다.
bianry 라 초보자도 쉽게 설치 가능하오니 한번쯤 기회가 되보면 해보는 것도 괜찮다는 생각이 든다.

1. 준비물
- jdk-6u23-linux-i586.bin
(아래 경로에서 Java SE Development Kit을 클릭하여 Linux Platform을 선택하여 binary 파일을 다운로드 받는다.)
http://www.oracle.com/technetwork/java/javase/downloads/index.html

[yi@localhost ~]$ su -
password:
[root@localhost ~]$ cd /home/yi/Downloads
1. 다운로드한 디렉토리에서 설치하고자 하는 디렉토리로 파일 이동
[root@localhost Downloads]$ mv jdk-6u23-linux-i586.bin /opt
[root@localhost Downloads]$ cd /opt
[root@localhost opt]$ ls -al
합계 82496
drwxr-xr-x.  2 yi yi     4096 2010-12-16 21:32 .
drwx------. 23 yi yi     4096 2010-12-16 21:04 ..
-rw-rw-r--.  1 yi yi 84461758 2010-12-16 21:32 jdk-6u23-linux-i586.bin

2. 처음 받은 binary 파일의 경우 실행권한이 없으므로 권한을 준다.
[root@localhost opt]$ chmod +x jdk-6u23-linux-i586.bin
[root@localhost opt]$ ls -al
합계 82496
drwxr-xr-x.  2 yi yi     4096 2010-12-16 21:32 .
drwx------. 23 yi yi     4096 2010-12-16 21:04 ..
-rwxrwxr-x.  1 yi yi 84461758 2010-12-16 21:32 jdk-6u23-linux-i586.bin

3. 바이너리 파일을 실행하면 아래와 같이 자동으로 unpack 및 완료가 되었다는 메세지를 확인 할 수 있다.
[root@localhost opt]$ ./jdk-6u23-linux-i586.bin
...
Java(TM) SE Development Kit 6 successfully installed.
...
Press Enter to continue.....

 
Done.
4. 다운 받았던 파일 삭제
[root@localhost opt]$ rm -rf jdk-6u23-linux-i586.bin
[root@localhost opt]# ls -al
합계 12
drwxr-xr-x.  3 root root 4096 2010-12-16 21:46 .
dr-xr-xr-x. 23 root root 4096 2010-12-16 19:08 ..
drwxr-xr-x. 10 yi   yi   4096 2010-12-16 21:36 jdk1.6.0_23
[root@localhost opt]#

5. 파이어폭스 플러그인에서 사용하는 java 링크를 변경하고자 하였는데 libjavaplugin_oji 파일이 없었는데 있는 분들은 설치시 해주시기 바랍니다.
[root@localhost /]# ln -s /opt/jdk1.6.0_23/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla/plugins/libjavaplugin_oji.so

6. 패스 설정
[root@localhost /]# vi /etc/profile.d/java.sh
export J2RE_HOME=/opt/jdk1.6.0_23/jre
export PATH=$J2RE_HOME/bin:$PATH

7. 기존 시스템에 깔린 자바 확인
[root@localhost ~]# which java
/usr/bin/java

8. 설치한 자바로 패스 설정 및 확인
[root@localhost /]# source /etc/profile.d//java.sh
[root@localhost /]# which java
/opt/jdk1.6.0_23/jre/bin/java

10. 시스템에서 사요할 자바를 설정.
[root@localhost /]# /usr/sbin/alternatives --install /usr/bin/java java /opt/jdk1.6.0_23/jre/bin/java 2
[root@localhost /]# /usr/sbin/alternatives --config java

3 개의 프로그램이 'java'를 제공합니다.

  선택    명령
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*+ 2           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
   3           /opt/jdk1.6.0_23/jre/bin/java

현재 선택[+]을 유지하려면 엔터키를 누르고, 아니면 선택 번호를 입력하십시오: 3
(위와 같이 선택할 수 있는 화면이 나오면 새로 설치한 경로의  java 를 선택하면 설치가 완료 된다.)

11. 설치된 자바 확인 및 버젼 확인
[root@localhost /]# /usr/sbin/alternatives --display java
java - 상태가 수동입니다.
현재 /opt/jdk1.6.0_23/jre/bin/java로 링크되어 있습니다
/usr/lib/jvm/jre-1.5.0-gcj/bin/java - 우선순위 1500
 슬레이브 javaws: (null)
 슬레이브 keytool: /usr/lib/jvm/jre-1.5.0-gcj/bin/keytool
 슬레이브 orbd: (null)
 슬레이브 pack200: (null)
 슬레이브 rmid: (null)
 슬레이브 rmiregistry: /usr/lib/jvm/jre-1.5.0-gcj/bin/rmiregistry
 슬레이브 servertool: (null)
 슬레이브 tnameserv: (null)
 슬레이브 unpack200: (null)
 슬레이브 jre_exports: /usr/lib/jvm-exports/jre-1.5.0-gcj
 슬레이브 jre: /usr/lib/jvm/jre-1.5.0-gcj
 슬레이브 java.1.gz: (null)
 슬레이브 javaws.1.gz: (null)
 슬레이브 keytool.1.gz: (null)
 슬레이브 orbd.1.gz: (null)
 슬레이브 pack200.1.gz: (null)
 슬레이브 rmid.1.gz: (null)
 슬레이브 rmiregistry.1.gz: (null)
 슬레이브 servertool.1.gz: (null)
 슬레이브 tnameserv.1.gz: (null)
 슬레이브 unpack200.1.gz: (null)
/usr/lib/jvm/jre-1.6.0-openjdk/bin/java - 우선순위 16000
 슬레이브 javaws: /usr/lib/jvm/jre-1.6.0-openjdk/bin/javaws
 슬레이브 keytool: /usr/lib/jvm/jre-1.6.0-openjdk/bin/keytool
 슬레이브 orbd: /usr/lib/jvm/jre-1.6.0-openjdk/bin/orbd
 슬레이브 pack200: /usr/lib/jvm/jre-1.6.0-openjdk/bin/pack200
 슬레이브 rmid: /usr/lib/jvm/jre-1.6.0-openjdk/bin/rmid
 슬레이브 rmiregistry: /usr/lib/jvm/jre-1.6.0-openjdk/bin/rmiregistry
 슬레이브 servertool: /usr/lib/jvm/jre-1.6.0-openjdk/bin/servertool
 슬레이브 tnameserv: /usr/lib/jvm/jre-1.6.0-openjdk/bin/tnameserv
 슬레이브 unpack200: /usr/lib/jvm/jre-1.6.0-openjdk/bin/unpack200
 슬레이브 jre_exports: /usr/lib/jvm-exports/jre-1.6.0-openjdk
 슬레이브 jre: /usr/lib/jvm/jre-1.6.0-openjdk
 슬레이브 java.1.gz: /usr/share/man/man1/java-java-1.6.0-openjdk.1.gz
 슬레이브 javaws.1.gz: /usr/share/man/man1/javaws-java-1.6.0-openjdk.1.gz
 슬레이브 keytool.1.gz: /usr/share/man/man1/keytool-java-1.6.0-openjdk.1.gz
 슬레이브 orbd.1.gz: /usr/share/man/man1/orbd-java-1.6.0-openjdk.1.gz
 슬레이브 pack200.1.gz: /usr/share/man/man1/pack200-java-1.6.0-openjdk.1.gz
 슬레이브 rmid.1.gz: /usr/share/man/man1/rmid-java-1.6.0-openjdk.1.gz
 슬레이브 rmiregistry.1.gz: /usr/share/man/man1/rmiregistry-java-1.6.0-openjdk.1.gz
 슬레이브 servertool.1.gz: /usr/share/man/man1/servertool-java-1.6.0-openjdk.1.gz
 슬레이브 tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.6.0-openjdk.1.gz
 슬레이브 unpack200.1.gz: /usr/share/man/man1/unpack200-java-1.6.0-openjdk.1.gz
/opt/jdk1.6.0_23/jre/bin/java - 우선순위 2
 슬레이브 javaws: (null)
 슬레이브 keytool: (null)
 슬레이브 orbd: (null)
 슬레이브 pack200: (null)
 슬레이브 rmid: (null)
 슬레이브 rmiregistry: (null)
 슬레이브 servertool: (null)
 슬레이브 tnameserv: (null)
 슬레이브 unpack200: (null)
 슬레이브 jre_exports: (null)
 슬레이브 jre: (null)
 슬레이브 java.1.gz: (null)
 슬레이브 javaws.1.gz: (null)
 슬레이브 keytool.1.gz: (null)
 슬레이브 orbd.1.gz: (null)
 슬레이브 pack200.1.gz: (null)
 슬레이브 rmid.1.gz: (null)
 슬레이브 rmiregistry.1.gz: (null)
 슬레이브 servertool.1.gz: (null)
 슬레이브 tnameserv.1.gz: (null)
 슬레이브 unpack200.1.gz: (null)
현재 '최고' 버전은 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java입니다.

[root@localhost /]# java -version
java version "1.6.0_23"
Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
Java HotSpot(TM) Server VM (build 19.0-b09, mixed mode)

Posted by Tiwaz
Linux & Unix2009. 12. 28. 23:33

  1.  o 를 입력하면 커서 *아래에* 한 줄이 열리며, 커서는 편집 모드로
     열린 줄 위에 위치하게 됩니다.
     대문자  O  를 입력하면 커서가 있는 줄의 *위로* 새 줄을 열게 됩니다.

  2.  a 를 입력하면 커서 *다음에* 글을 입력할 수 있습니다.
     대문자  A  를 입력하면 자동으로 그 줄의 끝에 글자를 추가하게 됩니다.

  3. 대문자  R  을 입력하면 <ESC> 를 눌러서 나가기 전까지 바꾸기 모드가 됩니다.

  4. ":set xxx" 를 하면 "xxx" 옵션이 설정됩니다.

Posted by Tiwaz
Linux & Unix2009. 12. 28. 23:31

  1.  :!command  를 이용하여 외부 명령을 실행합니다.

      유용한 예:
         (MS-DOS)         (Unix)
          :!dir            :!ls            -  디렉토리의 목록을 보여준다.
          :!del FILENAME   :!rm FILENAME   -  FILENAME이라는 파일을 지운다.

  2.  :w FILENAME  하면 현재 빔에서 사용하는 파일을 FILENAME이라는 이름으로
      디스크에 저장합니다.

  3.  :#,#w FILENAME  하면 #부터 #까지의 줄을 FILENAME이라는 파일로 저장합니다.

  4.  :r FILENAME  은 디스크에서 FILENAME이라는 파일을 불러들여서 커서 위치
      뒤에 현재 파일을 집어넣습니다.


 

'Linux & Unix' 카테고리의 다른 글

Fedora 14 + jdk1.6.0 Install  (0) 2010.12.16
Vim - 편집 모드  (0) 2009.12.28
Vim - 위치, 이동, 찾기, 짝 찾기  (0) 2009.12.28
Vim - 치환  (0) 2009.12.28
Vim - 삭제, Undo,Redo  (0) 2009.12.28
Posted by Tiwaz
Linux & Unix2009. 12. 28. 23:30

  1. CTRL-g  는 파일의 상태와 파일 내에서의 현재 위치를 표시합니다.
     SHIFT-G  는 파일의 끝으로 이동합니다. 줄번호를 입력한 후 SHIFT-G를
     입력하면, 그 줄로 이동합니다.

  2.  / 를 입력한 후 문구를 입력하면 그 문구를 아랫방향으로 찾습니다.
      ? 를 입력한 후 문구를 입력하면 윗방향으로 찾습니다.
     검색 후, n 을 입력하면 같은 방향으로 다음 문구를 찾으며,
     Shift-N 을 입력하면 반대 방향으로 찾습니다.

  3. 커서가 (,),[,],{,} 위에 있을 때에  % 를 입력하면 상응하는 짝을
     찾아갑니다.

  4. 어떤 줄에 처음 등장하는 old를 new로 바꾸려면          :s/old/new
     한 줄에 등장하는 모든 old를 new로 바꾸려면            :s/old/new/g
     두 줄 #,# 사이에서 치환을 하려면                      :#,#s/old/new/g
     파일 내의 모든 문구를 치환하려면                      :%s/old/new/g
     바꿀 때마다 확인을 거치려면 'c'를 붙여서              :%s/old/new/gc

 

'Linux & Unix' 카테고리의 다른 글

Vim - 편집 모드  (0) 2009.12.28
Vim - 외부명령  (0) 2009.12.28
Vim - 치환  (0) 2009.12.28
Vim - 삭제, Undo,Redo  (0) 2009.12.28
Vi Editor - 이동, 실행, 종료, 저장, 텍스트 입력  (0) 2009.12.28
Posted by Tiwaz
Linux & Unix2009. 12. 28. 23:28


  1. 이미 지운 내용을 되돌리려면,  p  를 누르십시오. 이 명령은 커서 *다음에*
     지워진 내용을 붙입니다(PUT). (한 줄을 지운 경우에는 커서 다음 줄에
     지워진 내용이 붙습니다.)

  2. 커서 아래의 글자를 치환하려면(REPLACE),  r  을 누른 후 원래 글자 대신
     바꾸어 넣을 글자를 입력합니다.

  3. 변환 명령(CHANGE)은 커서에서 부터 지정한 대상의 끝까지 바꿀 수 있는
     명령입니다. 예를 들어, 커서 위치에서 단어의 끝까지 바꾸려면,  cw  를
     입력하면 되며,  c$  는 줄 끝까지 바꾸는 데 쓰입니다.

  4. 변환 명령의 형식은 다음과 같습니다:

         [횟수]   c   대상       또는       c   [횟수]   대상

계속해서 다음 Lesson 을 진행합시다.

 

Posted by Tiwaz
Linux & Unix2009. 12. 28. 23:24

1. 커서가 위치한 곳부터 단어의 끝까지 지우려면:    dw

  2. 커서가 위치한 곳부터 줄 끝까지 지우려면:    d$

  3. 줄 전체를 지우려면:    dd

  4. 명령 모드에서 내리는 명령의 형식은 다음과 같습니다:

       [횟수]   명령   대상    또는    명령   [횟수]   대상
     여기서:
       횟수 - 그 명령을 몇 번 반복할 것인가
       명령 - 어떤 명령을 내릴 것인가 ( 예를 들어, 삭제인 경우는 d )
       대상 - 명령이 동작할 대상, 예를 들어 w (단어), $ (줄의 끝) 등.

  5. 이전 행동을 취소하려면:                 u   (소문자 u)
     한 줄에서 수정한 것을 모두 취소하려면:  U   (대문자 U)
     취소한 것을 다시 실행하려면:            CTRL-R

Posted by Tiwaz
Linux & Unix2009. 12. 28. 23:17

  1. 커서를 움직일 때에는 화살표 키나 hjkl 키를 이용합니다.
         h (왼쪽)       j (아래)       k (위)       l (오른쪽)

  2. 쉘 프롬프트에서 빔을 시작하려면
      vim FILENAME <ENTER>

  3. 수정한 내용을 무시한 채로 빔에서 빠져나가려면  
      <ESC>   :q!   <ENTER>
      저장한 후 빔에서 빠져나가려면   <ESC>   :wq   <ENTER>

  4. 명령 모드에서 커서가 위치한 곳의 글자를 지우려면   x  를 입력합니다.

  5. 명령 모드에서 커서가 위치한 곳에 텍스트를 삽입하려면
         i   를 누른 후 텍스트를 입력하고  <ESC> 를 누릅니다.

참고: <ESC>는 명령 모드로 돌아가는 데 쓰며, 원치 않는 명령이나 완전히 입력되지  않은 명령을 취소하는 데에도 씁니다.


 

Posted by Tiwaz
Linux & Unix2009. 11. 21. 13:37
본문스크랩 리눅스 무선랜카드에 대하여... [...] LINUX

2008/08/26 23:12

작성자: 베레(lsj403)

복사 http://blog.naver.com/lsj403/memo/77722190

출처 달새는달만보며산다 | 달새
원문 http://blog.naver.com/ree31206/33831633

먼저 무선랜카드 드라이버가 잡혔는지 #> dmesg | grep WLAN 명령으로
확인해보도록 하세요. 만약  조회되는 내용이 없다면 이제부터 약간의
고생이 시작됩니다.
http://ndiswrapper.sourceforge.net/에 접속하시면
Linux Driver없이 무선랜카드를 인식/사용하기위해 필요한  NDIS 함수를
구현하기 위해 운영되고 있는 오픈소스 프로그램을 다운받아 설치하여
사용하실수 있습니다. 상세한 설치 및 사용법은 사이트를 참고하세요.

만약 인텔무선랜카드( ipw2100 or ipw2200)을 사용하는 경우라면
http://www.igetlinux.com/seobbs/view.php?board=seo_pds&uid=28 에서
RPM파일(페도라코어3용)을 다운하여 쉽게 설치 사용하실수 있습니다.

아래는 제가 Orinoco wiresslancard driver를 사용하면서 정리한 내용이니
노트북에서 무선랜 카드 사용에 참고하세요. 제 경우 삼성 노트북을 사용
중인데 큰 문제 없이 페도라에서 이식되어 사용중입니다.
제가 사용해본 결과 무선랜의 연결성 면에 대해서  Orinoco가 가장 좋으며, 
문서랜카드의 지원드라이버를 감안하면 인텔사의 IPW2100/2200 을 추천함.


■ Kernel 2.6.11에서 지원되는 Wireless Lan Chip 내역
* Obsolete Wireless cards support ( pre-802.11)
  - []STRIP (Metricom starmode radio IP )
  - []Aironet Arlan 655 & IC2200 DS support
  - []AT&T/Lucent old WaveLAN & DEC RoamAbout DS ISA support

* Wireless 802.11b ISA/PCI cards support
  - []Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards
  - []Hermes Chipset 802.11b support ( Orinoco/Prism2/Symbol)
  - []Atmel at76c50x chipset 802.11b support

* Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
  - []Intersil Prism GT/Duette/Indigo PCI/Cardbus

■ 무선랜카드 칩별 모듈명
가. Intersil의 prism2 기반  무선랜 카드:  prism2_cs.o ( or orinoco_cs.o)
나. Lucent의 WaveLAN카드(Orinoco)  : orinoco_cs.o(Kernel 2.4.1 이후)
다. Intel사의 IPW2100/2200 랜카드 ( NdisWrapper )
참고: orinoco_cs.o 모듈은 PRISM-2기반의 카드와 같은 MAC칩셋을 사용한
        symbol의 카드를 기본으로 지원


■ 리눅스 지원가능한 삼성 무선랜 카드 제품
SWL2210P(삼성) (PCMCIA브릿지를 없앰.)
SWL2100P의 리눅스 사용은 불가능하며 리눅스 드라이버 개발도 안함.
http://www.magiclan.com 에 리눅스용 드라이버 swld11_cs-1.22.tar.gz 있음(삼성pci무선랜)
http://home.arcor.de/enton/vaioz1.html
http://www.linux-on-laptops.com/sony.html
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
http://www.intel.com/support/network/wireless/pro2100/

■ 인텔에세 제공하는 리눅스용 드라이버
http://support.intel.com/support/network/sb/cs-006059-prd38.htm
http://ndiswrapper.sourceforge.net/supported_chipsets.html
IPW2100은 http://ipw2100.sourceforge.net
IPW2200은
http://ipw2200.sourceforge.net
http://www.linuxant.com/company/

■ 한국통신 공중무선랜 서비스인 네스팟(Nespot) 프로젝트
http://kldp.net/projects/linspot/

■ 무선랜 작동 및 감도 측정 프로그램
드라이버 설치 후 작동 여부 확인 wireless tool을 이용하면 됩니다.
iwconfig를 실행하면 현재 설정된 무선랜의 정보가 나옵니다
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html

레드햇의 경우 'neat' 나 'redhat-config-network' ( gnome applet )을
루트 권한으로 실행 한 후 [장치들] -> [추가] -> [무선연결]을 선택 .
확실이 하기 위해서 파일 이름과 파일을 열어서 ethx가 아닌 wlan0으로
되어 있는지를 확인하도록 한다.
#>ifcfg-wlan0 or iwconfig [enter]

 

■  KDE기반 무선네트워경 감지 GUI툴 -Wireless Assistant
* RPM설치방법 (
http://www.kde-apps.org/content/show.php?content=21832)
#> wget
http://www.haansoftlinux.com/files/pds/wlassistant-0.3.9-1hs.i386.rpm
#> rpm -Uvh wlassistant-0.3.7-0.1fc3.i386.rpm (wireless-tools이 설치되어있어야 함.)
#> wlassistant &

 

■  무선랜에 관한 유용한 정보를 얻을 수 있는 주소.
*
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
* http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html
* pcmcia 소스 : http://sourceforge.net/projects/pcmcia-cs/
* orinoco 소스 : http://ozlabs.org/people/dgibson/dldwd/ ★★
* 무선랜 리소스 :
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
* 제조사(Agere System) : http://www.agere.com/
* 커널 인자 : http://www.iglu.org.il/lxr/source/Documentation/kernel-parameters.txt
* 커널에서 지원하지 않는 무선카드를 모듈로  생성
http://ndiswrapper.sourceforge.net/
   ( 윈도우용 드라이버 *.inf화일을 리눅스모듈로 만들어줌.)
*
http://wireless.joayo.net/ ★★

 

■  NDIS (Network Driver Interface Specification) drivers
* ndiswrapper
http://ndiswrapper.sourceforge.net/
* Linuxant Driverloader http://www.linuxant.com/driverloader/
* NDISulator aka Evil(freebsd)
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/compat/ndis/subr_ntoskrnl.c
* ActionTec http://www.actiontec.com/ (orinoco_pci module & prism2_pci module)
* Atheros
http://sourceforge.net/projects/madwifi/ (ar5210, ar5211, ar5212).
* BroadCom
http://tuxmobil.org/asus_l5800c.html
* Cisco http://www.thunk.org/tytso/linux/t40.html
* Intel Wireless Pro 2100/2200 (Centrino) http://tuxmobil.org/centrino.html
* Intersil ISL3874 http://www.linux-wlan.com/linux-wlan/index.html
* Intersil ISL3890 http://prism54.org/
* Texas Instruments http://acx100.sourceforge.net/
* UbiQuiti http://www.linuxdevices.com/news/NS7780516749.html
* 3 COM 3c556 http://www.scyld.com/
* 3 Com Others http://www.geocities.jp/fred_b_maciel/3c556/
* Accton EN 2242  http://www.math.u-bordeaux.fr/~depouill/XE3/
* BroadCom http://www.petitiononline.com/BCM4301/petition.html
* Intel EtherExpress Pro http://www.intel.com/support/network/adapter/1000/linux/e100.htm
* National Semiconductor http://www.national.com/appinfo/networks/macphyter2.html
* RealTek 8139(ASUS L3800C) http://tuxmobil.org/asus_l3800c_e.html


Posted by Tiwaz
Linux & Unix2009. 11. 21. 13:36

본문스크랩 무선과 리눅스(무선 리눅스를 돕는 다양한 툴과 프로젝트)(펌) LINUX

2008/08/14 02:11

작성자: 베레(lsj403)

복사 http://blog.naver.com/lsj403/memo/77722188

출처 JportalFrameworker | 오키도키
원문 http://blog.naver.com/okaydanky/5949061
Wi-Fi가 '유비쿼터스'가 되면서 리눅스도 시류에 편승했다. Roman Vichr는 리눅스가 많은 무선 툴과 프로젝트를 어떤 방식으로 지원해왔고 또 이들로부터 리눅스가 어떻게 도움을 받았는지를 설명한다.

유연성, 안정성, 확장성, 다양성, 성능 등을 겸비한 리눅스 플랫폼은 무선으로 가고있다. 거의 모든 것에 능한 범용 툴이 되고 있으며 무선 액세스를 겸비한 데스크 탑 및 서버부터 액세스 포인트 시스템에 이르기 까지, 무선 솔루션 분야로 길을 모색하고 있다. 리눅스가 무선 네트워킹을 어떻게 강화시킬 수 있는지 배워보자.

리눅스 무선 액세스 포인트: 구현할 것인가 구매할 것인가?
고정된 노드와 로밍되는 무선 클라이언트 사이를 연결할 때 무선 네트워크상에서 리눅스와 다른 액세스 포인트들이 통합할 수 있는가?

실제로 무선 랜(LAN)을 설치하는 일은 그다지 큰 일이 아니다. 중요한 것은 무엇을 구입했으며, 그것이 리눅스 시스템의 지원을 받는지의 여부이다. 특정 OS 드라이버용 하드웨어를 갖추고 있는지를 확인하라. 고성능(기가비트 데이터 전송률)을 바란다면 무선은 당신과 맞지 않다. 심지어 최신 표준들도 100Mbps 이하의 전송률이다. 로밍(roaming)도 도전이 되긴 마찬가지이다. 다양한 액세스 포인트들간 연결을 관리하는 문제도 이중 하나이다. 이를 위해 Wired Equivalent Privacy (WEP) 키를 설정하여 연결할 수 있는 액세스 포인트를 찾는다. 무엇보다도 액세스 포인트의 주요 목표는 다리(bridge) 역할임을 기억하라. 하나의 네트워크에서 또 다른 네트워크로 패킷을 라우팅해야 한다.

이 글은 이러한 액세스 포인트들을 관리할 때 필요한 다양한 옵션들과 툴에 초점을 맞춘다. 기본적으로 무선 확장을 갖춘 툴 아니면 무선 확장이 없는 툴을 선택하게 된다. (무선 확장(Wireless extensions)은 드라이버가 사용자들에게 스페이스 설정과 일반 무선 랜 스팩의 통계에 대해 알려줄 수 있도록 하는 일반적인 API의 이름이다.) 리눅스에서 액세스 포인트 소프트웨어를 설치하는 단계별 가이드는 리눅스에서 무선 액세스 포인트 구현하기(Building a wireless access point on Linux) 에 소개되어 있다. 무선 네트워크 구조에 대한 개관과, LAN과 WLAN 사이의 브릿징(bridging) 관련해서는 Linux Wireless Access Point HOWTO(참고자료)를 참조하라.

무선 시그널의 힘
박식한 사용자가 되려면 무선 시그널의 힘의 계산법을 알아야한다. 다음은 802.11b/g 액세스 포인트에서 사용된 2.45 GHz 주파수 대역에 대한 라디오 주파수 Signal Loss을 보여주는 간단한 식이다:

 SignalLoss = 40 + 20*log (d) ; 

SignalLoss는 dB로 표현되고 d는 미터(meter)로 표현되는 거리이다. 벽(wall)으로 필터링 될 때의 signal loss를 고려하지 않았기 때문에 이 식은 간단하다.

비 무선 확장
Linux Bluetooth 스택인 Linux-IrDa와 BlueZ 등, 무선 확장을 사용하지 않고 리눅스 무선 네트워킹을 설정할 수 있도록 해주는 여러 기술들이 있다. 이 둘은 리눅스 무선 네트워킹에 네트워킹에 잘 설명되어 있다. 이 외에도 ROSE (Radionet Open Source Environment; 참고자료)가 있다. 802.11 무선 액세스 포인트 구현 용 플랫폼이다. 오픈 소스 패키지로 배포되는 것과, 문서가 포함된 상용 버전으로 배포되는 것이 있다. ROSE의 장점은 어떤 플랫폼(MIPS, x86, ARM, PowerPC 등)에도 호환될 수 있다는 점이다. 지원되는 WLAN 카드는 Intersil Prism Chipset 2/2.5/3 기반이다. 5 GHz 주파수도 지원한다. 다음은 ROSE의 부가 기능들이다:

  • 액세스 포인트 개발 키트.
  • 802.11 프로토콜 및 보안, MAC 주소 필터링, IPv4 라우팅, 방화벽, RADIUS, QoS, 브릿징(bridging), NAT, DHCP. 802.11a/g/h 같은 추가 드라이버도 지원된다.
  • ROSE builder는 파이썬으로 작성되어 지원 및 관리성이 좋다.

기본적으로 (리눅스 2.4 커널과 함께) ROSE와 802.11 Intersil Prism 기반의 WLAN 카드를 사용해서 리눅스 기반의 무선 액세스 포인트를 구현할 수 있다.

무선 확장
무선 확장의 장점은 한 세트의 툴로 모든 종류의 무선 LAN을 그 유형에 상관없이(단, 하드웨어 드라이버가 무선 확장을 지원해야 한다) 지원할 수 있다는 점이다. 매개변수들이 드라이버(또는 리눅스)를 재시작하지 않고 끊임 없이 변경될 수 있는 것도 또 하나의 장점이다.

무선 확장을 조작하는 리눅스 툴 세트는 일반적으로 무선툴(wireless tools)이라고 언급된다. 이들은 텍스트 인터페이스를 사용하고 보다 간단하다. 다음은 리눅스 구현에 사용되는 것들이다:

  • iwconfig: 기본적인 무선 매개변수 조작
  • iwlist: 스캐닝 초기화 및 주파수, 비트 비율, 암호 키 나열
  • iwspy: 노드 당 링크 양 검색
  • iwpriv: Wi-Fi 드라이버 스팩의 무선 확장의 조작 허용
  • ifrename: 다양한 정적 기준에 근거한 이름 인터페이스 허용

친숙한 툴들
다음은 Wi-Fi를 관리하는데 사용할 수 있는 기타 관리 툴이다.(참고자료)

IfPlugd/waproamd
waproamd는 리눅스 무선 확장(v15 이상)을 지원하는 무선 IEEE 802.11 NICs용 로밍 데몬이고 Debian Linux에서 테스트되었다. 발견된 네트워크에 따라 WEP 키들을 설정하도록 되어 있다. waproamd 유틸리티는 무선 네트워크를 반복적으로 스캔한다. NIC가 사용가능한 네트워크와 연결될 때 waproamd는 더 이상의 스캔을 수행하지는 않지만 발견된 액세스 포인트에 NIC 카드를 붙인다. 이 스캔은 Host AP 드라이버가 정의한 host_roaming을 지원하는 iwlist scan. waproamd 명령어를 사용하여 테스트 될 수 있다. waproamd를 사용할 때 방화벽을 반드시 설치해야 한다. 유틸리티 자체로는 침입을 막을 수 없기 때문이다.

KWiFiManager
KWiFiManager는 리눅스의 KDE 환경에서 무선 LAN PC 카드를 설정 및 감시하는 툴이다. 이 툴은 KDE 3.x 버전용으로 만들어졌다. 리눅스 커널 무선 확장을 사용하기 때문에 대부분의 무선 pcmcia-cs 카드가 패키지로부터 지원된다. 카드용 wlan-ng 프로젝트에서 드라이버를 사용한다면 문제를 일으킬 소지가 있다. 이 드라이버들은 무선 확장과 백 퍼센트 호환되는 것이 아니기 때문이다. 어쨌든 이것을 시도하거나 같은 카드에 무선 확장과 호환되는 Host AP 드라이버를 사용할 수 있다.

KWiFiManager는 RPM 패키지로서 배포된다. 하지만 몇 가지 사전 설치 조건들이 있다. 사전에 갖춰야 할 것들은 Qt toolkit (version 3.0.3+), KDE 3.x, glibc2.2 이다. 이 패키지들이 준비된 후에 표준 ./configure make make install이 툴을 컴파일 및 설치한다. 이 애플리케이션은 Signal Quality, Connection Speed, Current Configuration, Access Point monitor, Statistics Viewer, Configuration Editor (마지막 디스플레이는 root 사용자들에게만 액세스 가능하다)등의 다양한 디스플레이를 제공한다.

무선 확장과 리눅스 커널을 사용하는 802.11b 카드용 링크 모니터 및 설정자인 Glink는 여기에서 GNOME과 비슷하다.

APHunter
펄로 작성된 APHunter는 텍스트 파일에서 iwlist 스캔의 아웃풋을 제공한다. 이 유틸리티의 문서는 명령어에 perldoc -t ./aphunter로 호출된다. 이 유틸리티는 아웃풋과 인디케이터를 제어하기 위해 여러 스위치를 제공한다.

GKrellMWireless
이 유틸리티는 리눅스 커널과 무선 확장을 필요로 한다. 이 유틸리티는 컴파일에 C 라이브러리가 필요하고 결과적으로 (g)make를 사용하여 설치된다. (BSD 하에서 설치용 추가 헤더를 추가해야 한다: if_wavelan_ieee.hif_aironet_ieee.h.) 이 유틸리티는 무선 링크 품질, 링크 레벨, 노이즈(noise) 등을 보여준다. 최신 버전은 리눅스의 dbm에서 레벨과 노이즈를 보여줄 수 있다.

상호운용성 문제
리눅스 플랫폼에 무선을 전개할 때, 리눅스 드라이버를 갖춘 다양한 카드들의 상호운용성은 중요한 고려 사항이다. 다양한 하드웨어 구성물들의 상호운용성 문제도 확인해야 한다. 왜냐하면 같은 스펙트럼 안에서 각각의 신호를 이해해야 하기 때문이다. 비슷하게 보이는 제품들이 상호 운용되는 것은 아니라는 것을 잊지 말라. 예를 들어 802.11과 802.11-FH 제품은 802.11-DS 제품과 상호 운용할 수 없다.

Chipsets
서로 다른 무선 제품들에 다양한 Chipset를 사용한다는 것은 도전이된다. 몇몇 카드는 지원이 되지만 같은 브랜드의 다른 카드는 그렇지 않은 경우도 있다. 가끔 같은 모델 번호의 카드들 조차 다른 Chipset를 갖는다. 이 때문에 어떤 카드가 리눅스에서 지원되는지 결정하기가 쉽지 않다. 하지만 대부분의 사용가능한 802.11b 카드는 Intersil PrismII Chipset를 사용한다. 리눅스에서 지원된다. .

802.11b 스팩은 802.11-DS의 확장이다. 속도는 강화되었지만 제품은 적어도 2Mbs(802.11-DS 모드)에서 상호 운용할 수 있다. 802.11g 표준은 802.11b의 직접 확장은 아니다. 이것의 목표는 같은 주파수에서 대역폭을 늘리는 것이다.

802.11a 제품의 상호 운용성을 시도할 때 정확히 같은 Chipset에 기반해서는 상호운용이 되지만, 802.11a와 802.11b와 작동하는 디바이스를 갖추지 않는 한 802.11b 제품과 직접 상호 운용할 수 없다는 것을 알아야 한다. Wi-Fi 주파수와 표준의 상호운용성 현황은 802.11g standard -- IEEEABCs of 802.11를 참조하라.

리눅스 무선 디바이스 드라이버를 고려할 때, 이 드라이버가 언제나 Windows 드라이버의 모든 기능들을 구현하는 것은 아니라는 것을 염두해야 한다. 이는 상호 운용성을 제한한다. 특히 보안 기능은 리눅스에서 다소 뒤떨어진다.

네트워킹 유연성과 무선 이니셔티브
무선 네트워크의 유연성을 실현하고 보안을 확고히 하기 위해 Wireless FreeNetwork Allocations와 NodeDB.com (참고자료)등 여러 이니셔티브들이 시작되었다. 특히 이들은 액세스 포인트와 고정된 클라이언트 커넥션 관련 위치 및 정보를 리스팅하는 사이트로서 지역적 디렉토리 서비스에 기반하여 이들을 배치하고 있다.

리눅스의 정신을 살려, 리눅스가 실제로 솔루션의 일부인지의 여부를 떠나 여러 무선 이니셔티브에 영향을 주고 있다. NodeDB.com의 경우 리눅스는 단지 플랫폼들 중 하나일 뿐이다. WIANA와 NoCatAuth 이니셔티브에서 리눅스는 커스터마이징 기능 때문에 이니셔티브의 핵심이 되고 있다.

WIANA
Wireless Assigned Numbers Authority(WIANA initiative(참고자료))는 무선 주소 관리용 구조를 만들려고 한다. 기존의 IP 주소 레지스트리는 정적인 계층 구조에 의존했다. 이는 무선에는 충분하지 않다. WIANA는 무선 네트워크의 특징을 고스란히 다루어야 한다. WIANA 가이드라인에 따라 공급자가 아닌 사용자들이 네트워크를 관리한다. 대규모 무선 네트워크는 전통적인 인터넷과는 다른 물리적 미디어에 기반한다. 여기에는 실제 주소 마다 인증이 필요하다. 전통적인 인터넷의 값비싼 연결 비용 때문에 무선 사용자들은 IP 주소를 얻는데 같은 접근방식을 사용할 수 없다. WIANA에서는 이러한 주소들이 무료로 제공된다. WIANA는 블로킹과 남용의 관리 중앙화를 모색하고 있다. WIANA는 LocustWorld.com에서 제공하는 미션 스테이트먼트에 따라 호환되는 무선 소프트웨어와 하드웨어를 지원한다. 하드웨어와 소프트웨어는 모든 플랫폼의 802.11 Wi-Fi에서 호환된다. 핵심 아이디어는 오픈 커뮤니티에 무선 WAN을 제공하는 것이다.

NoCatAuth
NoCatAuth도 비슷한 범주의 이니셔티브이다. 처음에는 캘리포니아의 Sonoma County 지역의 802.11b 무선 네트워크를 지원하기 위해 구현되었다. 이 구현 접근방식은 공유 인터넷 서비스들을 하나의 포인트로 모으는 권한 코드를 중앙화하는 것이다. 오픈 소스 라이센스하에서 NoCatAuth를 사용하려면 펄, GNU make, gpgv 등을 리눅스에 설치해야 한다.

리눅스 무선의 미래
리눅스는 BlueZ (2.4 및 2.6 커널에서 실행)와 Linux-IrDA 같은 제품 및 솔루션용 플랫폼으로서 존재해왔고 이제는 셀폰(cell phones)의 플랫폼이 되고있다. 셀폰 하드웨어가 다양한 기능과 복잡성을 갖춰감에 따라 많은 기능들이 구현되고 사용자 환경을 더욱 많이 제공하게 될 것이다. 리눅스 셀폰은 대부분 아시아 지역에서 사용되고 있다. 아시아에서는 3G 폰 개발 플랫폼으로서 리눅스가 각광 받고 있다. 이유는 간단하다. 리눅스의 접근방식이 개발자는 물론 사용자들에게 유연성과 자유를 제공하기 때문이다.

Posted by Tiwaz
Linux & Unix2009. 11. 21. 13:35
본문스크랩 VIM을 사용하자 LINUX

2007/10/04 20:58

작성자: 베레(lsj403)

복사 http://blog.naver.com/lsj403/memo/77722001

출처 장롱밑 동전찾기 | 스팍
원문 http://blog.naver.com/sttng/140004624822

VIM을 사용하자

윤 상배

dreamyun@yahoo.co.kr

1. vim 이란

vim 은 유닉스 계열에서 전통적으로 널리 사용도던 vi 의 improve 즉 undo, syntax coloring, split windows 등의 기능을 포함시킨 vi 의 보강된 프로그램이다.

이 문서는 vim 의 기본적인 사용법과, 프로그래밍을 위한 여러가지 팁을 담고 있다. vim 버젼은 6.0 을 기준으로 한다. vim(vi)에 대한 자세한 사용방법은 여기에서는 제시하지 않을것이다. 가장 기본적인 사항만 언급할것이며, 자세한 사용법은 vi 사용자그룹 사이트를 참고하기 바란다.


2. VIM의 기본사용법 익히기

이번장에서는 vim의 기본적인 사용법에 대해서 알아보도록 하겠다. 위에서 언급했듯이, 이문서는 VIM의 레퍼런스 가이드는 아니다. 기본적인 사용이 가능하도록 가장 기초적인 내용들만 다룰것이다.


2.1. vim 모드

다른 에디터를 사용하던 유저가 vim을 처음 접하면서 가장 난감해 하는 부분이 vim의 상태(mode)개념이다.vim은 다른 에디터들과 달리, 실행을 시켰다고 해서 즉시 입력이 이루어지지 않는다. 많은 vim을 처음 접하는 유저는 어떻게 글을 입력할지 몰라서 vim의 사용을 접게되는 경우가 발생하는데, 여기에 그 이유가 있다. vi 는 크게 세가지 상태로 나뉘어진다. 첫번째가 명령어 모드로 키입력이 바로 실행되는 상태이며, 다음은 상태모드로 실제 문서를 편집하는 모드 마지막이 ex 상태로 ex 명령을 실행시키는 상태이다.

vi 를 처음실행시키면 입력모드가 아닌 명령모드 상태에 놓이게 된다. 이 상태에서는 문자의 입력이 이루어지지 않으며, 찾기등과 같은 간단한 문서관련 명령을 실행할 수 있다. 이 명령모드 상태에서 ":" 키를 누르면 ex 상태로 a, i, o 키 등을 누르면 입력 상태로 넘어가게 된다. 일단 입력상태로 들어가게 되면 문서 편집을 할수 있게 되는데, 이때 ESC 키를 누르면 명령모드 상태로 넘어가게 된다.

표 1. vim의 상태(mode)

명령 상태 처음 vim을 실행했을때, 입력상태/명령상태에서 ESC입력시 간단한 찾기, 커서 이동, ex 상태로 넘어가기
ex 상태 명령 상태에서 (":") 각종 치환, 저장, 파일읽기, vim설정등과 같은 대부분의 작업들
입력 상태 명령 상태에서 (a,i,o 키 입력) 내용 입력


2.2. 명령어모드의 사용

우리는 명령모드에서 여러가지 명령을 입력함으로써, 복사, 붙이기, 삭제 문서입력, 문서저장, 문서불러오기, 커서이동 등의 작업을 할수 있다. 이번 장에서는 이러한 명령모드에서 사용되는 각종 명령어에 대해서 알아보도록 하겠다.


2.2.1. 커서 이동

기본적으로 vi 는 입력모드에서 방향키를 이용해서 커서 이동을 하지 못하도록 되어있다. 비록 최근의 vim 이 입력모드에서 방향키를 이용한 커서 이동을 지원하고 있기는 하지만, 명령모드에서의 키이동이 훨씬 빠르고 편하므로, 처음에는 좀 어색하더라도 명령모드에서의 키 이동을 익히도록 하자.

표 2. 커서 이동

k 커서를 위로 움직임
j 커서를 아래로 움직임
h 커서를 왼쪽으로 움직임
l 커서를 오른쪽으로 움직임
- 커서를 줄의 처음으로 옮김
e, E 다음단어의 끝으로, 문자단위 이동
w, W 다음단어의 처음으로, 문자단위 이동
$ 줄의 마지막으로
0 줄의 처음으로
^ 줄의 처음으로(공백이 아닌 처음시작되는 문자)
Shift+g 문서의 마지막으로 이동한다.
gg, 1g 문서의 처음으로 이동한다. 1대신 다른 숫자를 입력하면 해당 숫자의 라인으로 이동한다.
), ( 다음, 이전 문장의 처음으로
}, { 다음, 이전문단의 처음으로
]], [[ 다음, 이전 구절의 처음으로


2.2.2. 화면 스크롤

위의 커서명령 이동이 매우 편하기는 하지만, 만약 페이지가 한 2000라인 될경우, 위의 커서를 이용해서 한줄씩 이동하는데에는 너무 많은 시간이 걸릴것이다. 그래서 vi 에서는 화면 단위의 스크롤이 가능한 명령들을 제공한다. 아래의 화면 스크롤 명령어들을 익히면 빠른 위치이동을 위해 매우 유용하게 사용할수 있다. ^F 는 CTRL+F 를 의미한다.

표 3. 화면 스크롤

^F 한 화면 을 앞으로 스크롤
^B 한 화면 을 뒤로 스크롤
^D 반 화면 을 앞으로 스크롤
^U 반 화면 을 뒤로 스크롤
^E 한줄 앞으로 스크롤
^Y 한줄 뒤로 스크롤
Shift + h 화면의 맨 윗줄로
Shift + m 화면의 중간줄로
Shift + l 화면의 맨 아랫줄로


2.2.3. 마크 이동

일종의 책갈피 기능이라고 보면 된다. 자주 참조해야할 라인에 마크를 해놓고 필요할때 곧바로 마크된 영역으로 이동하기 위해서 사용한다. 마크는 mx 형식으로 사용할수 있다. x 는 (a~z)까지의 문자로 마크된 영역의 이름을 지정하기 위해서 사용한다. 마크된 영역으로 이동하기 위해서는 'x 와 `x 를 사용한다. 'x 는 마크된 라인의 가장 앞으로 이동하고, `x 는 마크된 라인의 정확한 위치로 이동한다.


2.2.4. 입력 명령

지금 vi 를 실행시켜보자. vi 는 기본적으로 명령모드로 실행되므로, 지금상태에서는 문서 작성을 할수 없을것이다. 우리는 다음과 같은 키입력을 통해서 입력모드 상태로 전환할수 있다.

표 4. 입력 명령

i 현재위치에서 삽입
I 현재줄의 처음위치에서 삽입
a 현재위치에서 한칸앞으로 이동해서 삽입
A 현재줄의 마지막위치에서 삽입
o 새로운 줄을 커서 아래에 연다
O 새로운 줄을 커서 위연다
s 현재 위치의 문자를 지우고 입력모드로 들어간다.
S 현재위치의 라인을 지우고 입력모드로 들어간다.


2.2.5. 편집명령

여기에서는 vi의 편집기능인 복사, 붙이기, 삭제에 대해서 알아 보도록 하겠다. 다른 에디터들은 보통 마우스를 이용해서 블럭을 지정해서 편집을 하는 반면, vi 는 명령어 모드에서 키보드 만을 이용해서 편집이 가능하므로, 매우 편리하고 빠르게 편집작업들이 가능하다. 또한 라인단위 블럭, 블럭단위 블럭등의 선택 모드를 지원함으로써, 문서에서 원하는 부분에 대한 작업을 좀더 쉽게 할수 있다.


2.2.5.1. 편집(none visual block 모드)

visual block 모드가 아닌 상태에서이 편집에 관한 내용이다.

표 5. 복사,삭제,붙이기

y 한줄 복사
yn 현재 라인에서부터 n라인만큼을 복사
p 복사된 내용 붙이기
dd 한줄삭제
dw 한단어 삭제
Shift+d, d$ 현재커서 위치에서 마지막까지 삭제
Shift+j 현재 행의 개행문자를 제거한다. 즉 아래라인을 현재라인에 덧붙인다.


2.2.5.2. Undo (되돌리기)

vim 은 다중의 undo 기능을 지원한다. 뒤로 되돌리고 싶다면 단지 'u'키만 입력하면 된다.


2.2.5.3. 블럭 지정

이번엔 블럭지정, 그중에서도 vim 에서 지원하는 visual 블럭 지정에 대해서 알아보겠다. vim visual 블럭 지정 기능을 사용할경우 지정범위가 반전되면서 눈에 보이기 때문에, 효과적인 블럭지정이 가능하도록 도와준다. 범위지정을 위해서 'hjkl', 'Shift+g,GG' 과 같은 이동명령 과 화면스크롤 명령을 사용해서 범위지정을 좀더 빠르게 할수 있다.

표 6. 블럭지정

v 단어단위로 블럭지정이 가능하다. 블럭범위는 이동명령인 'hjkl' 로 원하는 범위 만큼 지정할수 있다.
Shift+v 라인단위 블럭지정이다. 라인전체가 선택되며, 위아래 이동명령 'hj' 으로 범위 지정이 가능하다.
Ctrl+v 블럭단위 블럭지정이다. 4각형의 블럭지정이 가능하며 이동명령인 'hjkl' 로 원하는 범위를 지정할수 있다.
Shift+v 와 같이 블럭지정을 한후 Shift+G 를 입력하면 현재라인부터 마지막 라인까지가 블럭 지정이 될것이다.


2.2.5.4. 편집(visual block 모드)

일단 vim 의 visual 블럭 지정 기능을 이용해서 편집하기 원하는 블럭을 지정했다면, 각종 편집명령을 이용해서 복사, 붙이기, 삭제 작업이 가능하다. 블럭을 지정한 상태에서 아래의 명령을 이용해서 편집을 하면 된다. 명령어는 기본적으로 none visual block 모드의 편집 명령어과 같다.

표 7. 편집(복사, 삭제, 붙이기)

y 지정된 블럭을 복사한다.
p 복사된 블럭을 현재라인(커서) 아래에 붙인다.
d 지정된 블럭을 삭제한다.
dd 현재라인을 삭제한다.


2.3. ex 모드

2.3.1. 찾기/치환

vim 의 기능중 가장편리한 기능으리면 뭐니뭐니 해도, 정규표현식을 이용한 강력한 찾기기능과 치환기능이라고 할수 있을것이다. 물론 다른 대부분의 에디터들도 찾기기능과 치환기능을 제공하긴 하지만, vim 의 기능은 다른 에디터들에 비해서 정말로 독보적인 편리함과 강력함을 제공한다. vi 사용자가 다른 에디터로 넘어가기 힘든이유중 가장큰 이유가, 바로 "키를 이용한 방향입력" 과 "찾기 및 치환" 기능 때문이다.

사실 찾기 치환의 기능을 제대로 이해하고 사용하기 위해서는 정규표현식(regular expression) 에 대한 이해가 필요로 하는데, 이것은 다음의 사이트를 참조하기 바란다. 정규 표현식의 간략한 소개

먼저 찾기 기능에 대해서 알아보겠다. 찾기기능은 ':/패턴/' 를 이용 하면된다. 찾기 원하는 문자혹은 패턴을 입력하고 엔터키를 누르면 현재 커서위치에서 가장 가까운 곳에 위치한 문자열로 커서를 이동시킨다(문서 아래방향으로). 다음 문자열을 찾기를 원한다면 'n'키를 누르면 된다. 문서에서 가장 마지막에 이르르게 되면, 문서의 가장처음부터 다시 찾기 시작한다. 'Shift+n' 을 이력하면 반대 방향(문서의 위쪽으로)으로 찾기를 시작한다.

치환이야 말로 vim 의 꽃이라고 할수 있다. :[범위]s/[oldpattern]/[newpattern]/ 의 형식으로 사용하면 된다. 범위 지정은 visual block 을 이용할수도 있으며, 직접 범위를 입력할수도 있다. visual block 를 이용한 치환은 visual block 를 지정한다음 ':' 를 입력해서 ex 모드로 넘어가면 된다. 그리고나서 ':'<,'>s/[oldpattern]/[newpattern/' 과 같은 방법으로 치환하면 된다.

visual block 를 사용하지 않고 직접범위를 입력할수도 있다. :[시작],[마지막]s/[old]/[new]/ 식으로 범위를 지정하면 된다. 여기에는 몇가지 지정된 범위를 위한 특수 기호들이 있다. '%' 는 전체문서(처음부터 끝까지), '.' 은 현재, '$' 은 마지막 을 나타낸다. 숫자를 입력할경우 숫자는 라인을 나타낸다. 다음은 간단한 사용예이다.

 # 문서 처음부터 마지막까지의 char 를 _char_ 로 치환한다. 
:%s/char/_&_/g 
# 현재(커서위치)부터 마지막까지의 char 를 _char_ 로 치환한다. 
:.,$s/char/_&_/g 
# buf_.*[255], buf_in[255], buf_get[255]와 같은 문자열을 hello 로 변경한다. 
:1,10s/buf_.*\[255\]/hello/g

마지막에 쓰인 'g' 는 global 이다. 즉 해당 라인 전체에 걸쳐서 검색후 치환한다. 'g' 를 사용하지 않을경우 라인에서 처음에 검색된 문자만 치환하고 다음 라인으로 넘어간다.


2.3.2. 파일 저장, 열기, 종료

파일열기의 경우 vi 를 실행시킬대 명령행 옵션으로 열기가 가능하다. 또한 vi 를 이미 실행 시킨후에도 명령모드에서 명령을 입력함으로 파일을 열수 있다. 열고자 하는 파일이 이미 존재할경우에는 존재하는 파일이 열리고, 열고자 하는 파일이 존재하지 않을경우 새로운 파일이 만들어진다.

표 8. 저장,열기,종료

:e [filename] filename 으로 파일열기
:q, :q!, :wq 종료, 강제종료, 저장후 종료
:w, :w [filename] 현재파일명으로 저장, filename 로 저장
:<범위>w [filename] 지정한 범위만 다른 파일로 저장
:e [filename] filename 을 편집하기 위해서 연다
ZZ 지금파일을 저장하고 vim 을 종료한다.
:f 현재 작업중인 파일의 이름과, 라인수를 출력한다


3. 개발자를 위한 vim 사용팁

3.1. 화면 나누기

vim 은 수평나누기와 수직나누기를 제공한다. 수평나누기는 ":split [파일이름]" 수직나누기는 "vs [파일이름]" 으로 나눌수 있다. 파일이름을 지정한 경우, 새로 만들어진 창에는 파일이름 을 가지는 파일이 열리고, 파일이름을 지정하지 않을경우 똑같은 파일이 열린다. 이 기능은 현재 파일의 다른 부분을 참조하고 싶을때 유용하게 사용할수 있다(참조하는 부분으로 이동하기 위해서 왔다갔다 하지 않아도 되므로). 또한 ":10split [파일이름]", "10vs [파일이름]" 등으로 창의 크기를 조절해 줄수도 있다. 창 나누기는 2개 이상 나누기도 가능하다.

이렇게 창을 분할시켜 놓으면 쏘쓰를 참조하기도 편하고, 무엇보다 편집(삭제,복사,붙이기)가 가능하므로 훨씬더 작업을 수월하게 할수 있다.


3.1.1. 화면 이동

명령 모드에서 CTRL+ww 를 입력하면 된다. 그러면 아래창으로 이동한다. 임의로 이동하기 위해서는 Ctrl+w 를 입력한 상태에서 이동명령[hjkl]를 이용하면 원하는 방향으로 창이동이 가능하다.


3.1.2. 파일 네비게이션

vim 6.0 부터는 파일네비게이션 기능이 존재합니다. 예를들어 vi 로 파일을 열때 파일을 디렉토리로 지정하면 해당디렉토리의 내용이 네비게이션 되고, 디렉토리 이동및 파일 선택이 가능하다.

 vi ./ # 현재 디렉토리내용을 네비게이션 해준다. 


3.2. 파일 네비게이션 바 만들기

윈도우의 울트라 에디트와 같은 프로그램을 보면 왼쪽에 파일네비게이션이 있어서 원하는 파일을 바로 선택해서 편집하는 기능이 있다. vim 으로도 이러한 기능을 구현할수 있다. 이것은 vim 의 file navigation 기능과 창나누기 기능을 이용해서 구현하면 된다.

vi 가 실행되 상태에서 수직창 나누기 기능을 이용해서 ":20vs ./" 명령을 내려보자 그럼 그림과 같이 오른쪽에 파일 네비게이션 바가 생김을 알수 있다.

그림 1. 파일네비게이션을 만든 화면

이제 열기를 원하는 파일위치에 가서 shift+o 를 입력해보자, 그럼 옆의 편집창에 새로운 파일이 열리는것을 알수 잇을것이다. 여기에 더해서 편집장을 split 로 나누면, 여러개의 파일을 오가면서 편집이 가능해질 것이다.


3.3. 여러개의 파일 편집하기

위에서는 창나누기를 이용한 여러개의 파일편집에 대해서 알아봤는데, 또다른 방법이 있다. 처음에 vim 을 통하여 여러개의 파일을 open 하고 여러개의 열린 파일을 이동하면서 편집하는 방법이다. 먼저 vim을 다음과 같이 실행시킨다.

 [yundream@localhost test]# vim file1.txt file2.txt ... 
그러면 처음 화면은 file1.txt 편집화면일것이다. 2번째 파일인 file2.txt 편집화면으로 넘어가길 원한다면(앞에 있는 파일 편집)
:n 
file2.txt 에서 file1.txt 를 편집하길 원한다면(뒤에 있는 파일편집)
:e# 
split 를 이용해서 여러개의 파일을 편집할때와 마찬가지로, 각종 편집기능(복사,삭제,붙이기)이 서로 공유되므로 편하게 작업이 가능하다.


3.4. 잠시 쉘로 나가기

보통 vim상에서 쉘명령어를 실행시키기 위해서 :![명령어] 를 사용하는데, 이것 보다는 Ctrl+z 를 이용해서 쉘로 빠져나가서 작업하는게 더 편하다. sehll 이 job control 기능을 이용한것으로, 쉘에서 원하는 작업을 수행하후 fg 명령을 이용해서 다시 vi 편집 상태로 되돌아 올수 있다. vim 사용자를 보면 가끔 쉘작업을 하기 위해서 vim 을 아예 종료 시켜서 쉘로 빠져나간 다음에 작업을 하고 vim 을 다시 실행시키는 경우가 있는데, 이제는 그럴필요가 없이 좀더 편하게 작업을 할수 있을것이다.


3.5. 선택된 block 를 다른 이름으로 저장하기

split 기능을 이용해서 창을 나누고, 원하는 블럭을 선택해서 복사한다음에, 새로만든창에 가져다 붙이기를 하면 된다.

그러나 이방법은 조금 복잡한 감이 없잖아 있다. 이럴때는 블럭을 선택해서 :'<,'>w [파일명] 하면 좀더 간단하게 원하는 작업을 수행할수 있다.


3.6. 빠른 괄호 이동

C나 C++ 을 사용하다보면 제어문이나 함수에서 많은 괄호('{','(')를 만나게 된다. 이때 괄호의 제일 마지막으로 이동하고 싶을때가 있을것이다. 이럴때는 ']}' 를 사용하면 된다. '[{' 를 사용하면 괄호의 처음으로 이동한다.


3.7. 위치 마크(mark)하기

일종의 북마크기능으로 자주참조할만한 라인을 마킹해두고 필요할때 간단히 해당 마킹지역으로 이동하기 위해서 사용한다. 마킹을 위해서는 명령모드에서 m키를 눌러서 마킹모드로 들어가면 된다. 그리고 영문 [a-zA-Z]키중 아무거나 눌러주면 된다. 만약 a를 눌러주었다면, 현재라인은 a이름으로 마킹된다. 이후 작업을하다가 a마킹라인으로 가고 싶다면 'a 해주면된다. 이상태에서 원래라이으로 되돌아가고 싶다면 ''를 눌려주면 된다.

물론 다중마킹도 허용한다. 마킹할수 있는 문자는 단일영문자이다. 마킹에 사용되는 영문자는 대소문자를 구분함으로 최대마킹가능한 수는 27*2가 될것이다.


3.8. 폴더(접기) 기능이용하기

vim 6.0 에 새로이 포함된 좋은 기능으로 코드의 특정영역을 접을수 있다. 그럼으로 코드를 분석할때 쓸데 없는 부분을 감춰줘서 좀더 편하게 분석이 가능합니다. visual block 를 이용해서 원하는 영역을 선택한다음 :zf 를 이용하면 해당영역이 접힌다. :zo 를 사용하면 접힌영영을 원상태로 복구할수 있고 :zc 를 사용하면 해당영역을 다시 접을수 있다. 또한 다중 접기를 허용해서 접근구역을 다시 접을수도 있다.


3.9. 간단한 man 페이지 참조

vim 을 이용 코딩중에 함수의 프로토 타입이 생각나지 않을때 주로 man page 를 참조하게 된다. 보통은 창을 하나따로 띄워서 그곳에서 man page 를 보는데, 코딩중에 간단하게 해당 함수에 대한 man page 를 볼수 있다. man page 를 원하는 함수 위로 커서를 옮긴다음 Shift + k 를 입력하면 함수의 man page 가 뜰것이다. 'q' 를 입력해서 man page 를 종료시키면 원래의 vim 화면으로 되돌아온다.


3.10. 함수/변수명 자동완성

코딩중에 가장 범하기 쉬운 잘못중의 하나가 변수명및 함수명 오타일것이다. 또 변수명이 기억이 잘 나지 않아서 처음 선언한곳을 다시 확인하는 작업역시 코딩을 매우 번거롭게 한다. 이때 함수 자동완성 기능을 이용하면 이러한 염려들을 줄일수 있다.

int client_sockfd 라고 변수 선언을 했다고 하자. 코딩중에 client_sockfd 를 쓸일이 있다면 cli^p 를 입력해보자. 그러면 변수 이름이 자동으로 완성되는것을 볼수 있을것이다. ^p는 Ctrl+p 이다.


3.11. ctags 를 이용한 쏘쓰 분석

쏘쓰를 분석하는데 있어서 가장 중요한 것은 역시 함수를 분석해서, 함수가 어떤일을 하는지 알아내는 것이다. ctags 를 이용하면 이러한 쏘쓰 분석작업을 좀더 수월하게 할수 있다. ctags 와 관련된문서는 ctags 를 이용한 쏘쓰 분석 을 참고하기 바란다.


3.12. 자동들여쓰기

프로그래밍 할때 indent 는 쏘쓰코드를 보기좋게 만들기 위한 필수 사항이다. 보통 tab 을 주로 쓰는데,

:set ai 
명령을 이용하면 자동적으로 indent (auto indent) 를 적용시켜주므로, 좀더 코딩에만 집중할수 있도록 도와준다.
:set noai 
명령을 사용해서 auto indent 상태를 해제할수 있다.

요즘의 vim 은 기본적으로 auto indent 상태이므로, 별다른 설정없이 편하게 사용가능하다. 그러나 웹에서 가져다 붙이기를 할때 여기에 auto indent 가 적용되어서 것잡을수 없이 tab 이 들어가는 경우가 생길때도 있는데, 이럴때 set noai 를 이용해서 auto indent 를 해제하고 가져다 붙이기를 하면 된다.


3.13. 탭사이즈 조정하기

쏘쓰에서 indent 를 위해서 주로 탭을 사용하는데, 보통 이 탭 사이즈는 8로 되어 있다. 그런데 8이란 탭사이즈가 때로는 너무 커서, 쏘쓰가 화면밖으로 나가서 오히려 쏘쓰 보기를 어렵게 만들때도 있다. 이럴때 는 탭사이즈를 줄여야 하는데 다음과 같은 명령을 통해서 탭사이즈 변경이 가능하다.

:set ts=4 


3.14. 라인 넘버링

코딩하다보면 라인넘버가 있으면 할때가 있다. 그럴때는

:set nu 
하면 된다.

그림 2. 라인 넘버링

라인넘버를 없애고 싶다면,
:set nonu 
하면 된다.


3.15. 코드를 HTML로 저장하기

vim 은 또한 코드를 HTML 형태로 저장하는 기능을 가지고 있다. 이 기능을 이용하면 syntax highlight 된 상태 그대로 HTML로 변환이 가능하다. 쏘쓰코드의 예제를 만들어서 웹상에 올리고자 할때 유용하게 사용할수 있는 기능이다.

:so $VIMRUNTIME/syntax/2html.vim 


3.16. vim 설정파일 만들기

지금까지 우리는 다양한 설정을 통해서 vim 을 좀더 쉽게 사용하는 방법을 알아 보았다. 그런데, 탭사이즈를 적용하기 위해서 vim 을 실행시킬때 마다 ":set ts=4" 이런식으로 하면 작업이 매우 귀찮을것이다. 이럴때는 vim 을 위한 설정파일을 만들어서, vim 이 시작할때 설정파일을 읽어들여서 환경이 자동으로 설정되도록 하면된다.

자기의 계정(Home) 디렉토리에 보면, .vimrc 라는 파일이 존재 할것이다. (존재하지 않는다면 만들도록한다) 이것이 설정파일로 아래와 같은 방법으로 자기가 원하는 내용을 설정하면 된다.

set ts=4 set nu 

 

출처 : http://www.joinc.co.kr/modules.php?name=News&file=article&sid=49&mode=nested#AEN298


Posted by Tiwaz
Linux & Unix2009. 11. 21. 13:34

본문스크랩 [스크랩] LPIC Level 1의 48가지 팁 LINUX

2007/09/28 17:34

작성자: 베레(lsj403)

복사 http://blog.naver.com/lsj403/memo/77721995

출처 가지 못할 길은 없다. | 눈곰이
원문 http://blog.naver.com/snowbear/50019664077
1. 텍스트 파일 전체를 가장 손쉽게 보려면 cat명령어를 이용한다. (반대로 명령하려면 tac를 사용한다.) 페이지의 상단만 보고 싶다면 head 명령어를 하단만 보고 싶다면 tail 명령어를 사용하면 된다.
2. cut 명령어는 파일에서 항목을 불러내서 paste나 join 명령어로 항목을 결합시킬 수 있다. join이 paste보다 더 많은 특성을 제공하는데 적절히 paste나 join을 사용하면 된다.
3. expand 명령어는 tab(탭)을 빈 공간으로 바꿀 수 있다. 이에 반해 fmt 명령어는 텍스트의 행을 문자에 맞춰서 정령해 주며, pr 명령어는 페이지의 길이를 정렬해 준다. nl명령어는 순차적으로 행을 보여주며, sort는 -n 매개변수를 사용하여 알파멧순이나 숫자순으로 항목을 정렬해 준다.
4. od 명령어는 텍스트가 아닌 파일을 8진 덤프(octal dump)로 나타낸다. tr은 특수 문자를 다른 문자로 변환하며, wc는 파일 내의 행, 단어, 문자의 수를 센다.
5. cp는 파일을 복사하라는 명령어이고, mv는 파일을 옮기라는 명령어이다. rm은 삭제할 때 사용하는데 mkdir으로 생성된 디렉토리를 삭제할 경우에는 rmdir 명령어를 사용한다. 이러한 명령어를 사용할 때는 절대 주소지정이나 상대 주소지정, 그리고 와일드카드를 이용해 타겟이나 소스 항목을 명확히 해줘야 한다. 디렉토리를 변경하려면 cd명령어를 사용하고(단, 매개 변수를 지정해 주지 않으면, 홈 디렉토리로 이동하게 된다.) 현재 작업 중인 디렉토리를 확인하려면 pwd(present working directory:현재 작업중인 디렉토리) 명령어를 사용한다.
6. 일반적으로 표준 입력(stdin)은 키보드에서 그리고 표준 출력(stdout)은 모니터에서 읽는다. stdin과 stdout은 표준에러(stderr)와 마찬가지로 리다이렉트(방향 재지정)할 수 있다. 리다이렉션할 때에는 >,>>,<,| 와 같은 심볼을 사용한다. 출력을 여러곳으로 보낼 때에는 tee명령어를 사용하면 된다.
7. 명령어와 명령행은 세미콜론으로 연결하는데, 각 명령은 서로 독립적으로 작용한다.명령어에는 히스토리 기능이 있어서 한번 입력한 명령어는 재입력할 필요가 없으며, 이전에 편집해 놓은 것을 실행할 수 있다. 모든 명령어는 실행할 때 최소 하나의 프로세스를 거치는데, 이러한 프로세스는 ps나 top 명령어(계속해서 디스플레이를 업데이트한다.)로 볼 수 있다.
8. 작업을 포그라운드(foreground)에서 다시 실행하려면 ^Z를 눌러 작업을 중지하면 된다. 작업을 백그라운드로 돌리려면 bg를 백그라운드에서 실행되고 있는 작업을 포그라운드로 올리려면 fg를 이용한다. 진행중인 작업은 jobs 로 그 목록을 볼 수 있으며, 프로세스를 죽일때에는 kill명령어를 이용한다.
9. 우선순위(priority)가 있는 작업을 시작하기 전에 nice 명령어를 이용하면 낮은 우선순위의 백그라운드 프로세스를 실행할 수 있다. 하지만 작업이 시작되었다면 renice명령어만이 우선순위를 변경할 수 있다.
10. sed 편집기는 정의된 매개 변수를 사용해서 텍스트를 디스플레이한다. grep 유틸리티(grep과 유사한 기능을 하는 egrep,fgrep도 마찬가지)는 파일 내에서 특정 문자열을 찾는다. 장치, 리눅스 파일 시스템, 파일시스템 계층 표준
11. fdisk 명령어는 파티션에 사용하는데, 파티션 후엔 mkfs를 사용해서 포멧할 수도 있다. mkfs 유틸리티는 msdos를 비롯해 수많은 파일시스템 형식을 포멧할 수 있게 해준다.
12. 파일시스템은 저장된 모든 엔티티에 대한 inode(아이노드: 고유 엔트리)를 가진다. 이 inode(ls -i 명령어로 번호를 볼 수 있다.)는 생성/접근/수정(이는 touch 명령어로 변경할 수 있다.)에 대한 허가, 소유자, 멤버, 그리고 관련 날짜 등의 엔티티에 관한 정보를 담고 있다.
13. du 명령어는 디스크가 얼마나 사용되었는지를 보여주는 명령어이고, df명령어는 빈 공간이 얼마나 남았는지를 보여주는 명령어이다. 디스크와 관련된 문제를 가장 잘 해결 할 수 있는 명령어는 fsck로, inode를 포함한 파일시스템을 검사한다.
14. 루트 파일시스템은 항상 장착돼 있어야 하지만, 원격 파일시스템은 mount로 장착하거나, unmount로 철거될 수 있다. 부팅시 자동으로 장착시키려면 엔트리를 /etc/fstab에 덧붙이면 된다.
15. quatas는 사용자나 그룹이 이용할 수 있는 디스크의 여유공간을 제한한다. quatas는 quata 명령어로 초기 설정되며, quotaon과 qoutaoff로 조절할 수 있다. quotaon과 quotaoff는 edqouta로 변경/수정되며, 리포트는 repqouta로 생성된다.
16. 파일 퍼미션은 심볼이나 숫자 모드로 표현한다. 처음 파일을 생성했을 때, 디폴트 퍼미션은 666에서 umask값을 뺀 수치이다. 디렉토리에 대한 디폴트 퍼미션은 777에서 umask 값을 빼면 된다. 수치에 대한 퍼미션을 계산하면 읽기는 4. 쓰기는 2, 그리고 실행은 1의 값에 해당한다.
17. 파일 및 디렉토리 퍼미션은 chmod명령어로 바꿀 수 있다.(chmod는 숫자 모드나 심볼을 이용한다.) 모드 1000은 "스티키 비트"를 설정하고, 모드 2000은 SGID 퍼미션을, 4000은 SUID 퍼미션을 설정한다.
18. chown 명령어는 그룹의 소유자를 변경하며, chgrp 명령어는 파일의 소속 그룹을 변경한다.
19. 링크는 ln명령어로 생성한다. "하드" 링크는 파일에 대한 앨리어스(alias)로, 모든 앨리어스는 공통 inode를 공유한다. 심볼릭(소프트) 링크는 ln -s로 생성하는데, 자신의 inode가 있는 실제 파일(아주 크기가 작음)이다. 심볼릭 링크는 원 파일에 대한 포인터를 가지고 있으며, (하드링크와 달리) 파일시스템에 관계없이 작동한다.
20. 리눅스를 설치하는 과정에서 디폴트값에 의해 수많은 디렉토리가 생성된다. 이 때 생성되는 디렉토리에는 다음과 같은 것이 있다.
 /bin - 모든 사용자가 접근할 수 있는 2진(실행가능)파일이 포함된 디렉토리
 /dev - 디바이스 정의가 포함된 디렉토리
 /etc - 컴퓨터에 따라 달라지는 파일(설정 파일)을 포함한 디렉토리
 /home - 사용자의 홈 디렉토리가 포함된 디렉토리
 /mnt - mount 포인트가 포함된 디렉토리
 /root - 루트 사용자에 대한 홈 디렉토리
 /tmp - 재부팅시 필요 없는 임시 파일을 포함한 디렉토리
 /usr - 자주 바뀌지 않는 문서나 다른 엔트리를 포함한 디렉토리, 하위디렉토리에는 실행 가능한 엔트리가 들어 있다.
 /var - 로그 파일이나 스플처럼 변경된 자료가 보존되는 디렉토리
21. find 명령어는 기준에 달하는 파일/디렉토리에 대한 시스템을 검색하는데 사용한다. 시스템을 별견하면, xargs명령어가(grep과 마찬가지로) 다른 값에 대한 엔티티 내에서 더 자세하게 검색한다.
22. which 명령어는 주어진 이름으로, 경로 지정을 통해 움직이는 첫 번째 실행가능 파일을 찾는다. locate 명령어는 locatedb 데이터베이스에서 엔트리를 찾으며, 사용자의 시스템에 있는 파일을 찾게 해 준다. 이 데이터베이스는 updatedb명령어로 업데이트하면 된다.(updatedb는 /etc/updatedb.conf 파일을 통해 자동으로 설정된다.) 부트, 초기설정, 셧다운, 실행 레벨
23. 리눅스 로더(lilo)는 시스템을 부팅할 때 사용하며, 어떤 운영체제로 부팅할 것인가 선택할 수 있다. /etc/lilo.conf 파일로 lilo를 설정하며, /etc/conf.modules나 /etc/modules.conf과 같은 부가적인 모듈을 로드할 수 있다.
24. "시스템" 로그 파일은 /var/log/messages이며, 이 파일에 시스템 로그 데몬(syslogd)으로 대부분의 이벤트가 남겨진다. 특히 lilo와 관련된 메시지는 dmesg명령어로 불 수 있다.
25. 초기 데몬은 특정 실행레벨의 데몬을 알맞게 운영한다. 이 시스템은 부팅시 /etc/inittab 파일의 디폴트로 지정된 실생레벨로 맞추려고 한다.
26. 실행레벨은 init과 shutdown(half라고도 한다.)으로 변경한다. 유효한 표준 실행레벨은 다음과 같다:
 0 - 시스템을 중단한다.
 1 - 시스템을 단일 사용자 모드로 전환한다.
 2 - 네트워킹이 지원되지 않는 다중 사용자 모드
 3 - 네트워킹이 지원되는 다중 사용자 모드
 5 - X 윈도우 환경
 6 - 시스템을 재부팅한다.
27. 메뉴얼 파일은 대부분 표준 유틸리티용이며, man명령어로 읽는다. more나 less, 혹은 PAGER 변수로 정의된 비슷한 유틸리티를 이용해서, 한번에 스크린에 볼 수 있는 페이지를 조절한다.
28. /usr/man 하위에는 많은 서브디렉토리가 있는데, 이러한 /usr/man 에는 메뉴얼 페이지가 있다. 가장 중요한 것들은 다음과 같다:
 /man1 - 셀 유틸리티와 사용자 명령어를 정의해 놓았다.
 /man2 - 시스템 호출에 대한 페이지가 있다.
 /man3 - libc 호출
 /man4 - 디바이스 설명
 /man5 - /etc 하위에 있는 파일을 비롯한 설정 파일 설명
 /man6 - 게임에 대한 메뉴얼 페이지
 /man7 - 리눅스 시스템 파일과 관습
 /man8 - 관리 유틸리티 정의
29. 첫번째 디렉토리가 아닌 다른 디렉토리에서 메뉴얼 페이지를 보려면, man 명령어 뒤에 서브디렉토리의 숫자를 입력해 주면 된다. 예를 들면 man 2 nice처럼 하면된다.
30. 다른 소프트웨어는 /user/doc 디렉토리에 문서를 작성해야 한다. 유틸리티의 이름으로 하위 디렉토리를 만들어, 하이픈과 버전 넘버를 표시한다.
31. whatis 명령어로 엔트리에서 사용 가능한 메뉴얼 페이지를 불 수 있으며, whereis 명령어는 메뉴얼 페이지를 비롯하여 파일의 위치와 모든 관련 파일을 볼 수 있다.
32. 표준 유틸리티에서는 실행가능한 파일 이름 뒤에 "--help"를 입력해서 구문에 대한 정보만을 볼 수 있다. info 명령어로 /usr/info 하위에 있는 help 파일을 볼 수 있다.
33. 인터넷 사이트 Linux Documentation Project나 다른 개인적인 벤더 사이트에서 관련 문서를 많이 찾을 수 있다. 뉴스 그룹이나 메일링 리스트를 구독함으로써 문제를 해결하는 데에 도움을 받을 수도 있다.
34. 시스템과 문서에 대한 모든 변경 사항과 모든 사용자가 이용 가능한 지원 형식을 기록해야 한다.
35. 사용자가 시스템에 접근하려면 사용자명과 패스워드가 필요하다. 사용자명은 /etc/passwd/ 파일에 첫 번째 필드로 저장되어 있다. 이 파일의 다른 필드는 다음과 같다:
 second - /etc/shadow로 옮겨 놓지 않았다면, 이곳에는 사용자의 패스워드가 있다.
 third - 사용자의 고유한 ID이다. 루트 유저(root user)는 항상 0번이고, 시스템 계정은 전형적으로 번호가 작다. 표준 사용자는 대게 500에서 시작했다.
 fouth - 그룹 ID이다. 루트 그룹(root group)은 0번이고, 시스템 그룹(system group)은 번호가 작다.
 fifth - finger 명령어나 다른 유사한 유틸리티에서 반환되는 사용자 정보가 있다.
 sixth - 사용자의 홈 디렉토리
 seventh - 사용자의 셸, 이 디렉토리에 아무 것도 없으면ㅡ 디폴트 셸이 적용된다.
36. 패스워드는 보안을 더 철저히 하기 위해 /etc/shadow 파일로 옮기는 것이 낫다.(이 때, pwconv 유틸리티를 사용하며, 반대로 하려면 pwunconv를 사용한다.) 실생되면 /etc/passwd 파일의 두 번째 필드에 "x"가 나타난다. passwd로 패스워드를 변경한다.
37. 수동으로 설정 파일을 편집하거나 useradd 명령어로 사용자들 추가할 수 잇다.(userdel로 사용자를 삭제한다.) 사용자를 추가하면, 홈 디렉토리를 생성해서 여기에 /user/skel에 있는 임시 파일을 복사하게 된다.
38. 그룹 정의는 /etc/group 파일에 있다. 패스워드는 그룹 정의와 함께 /etc/group에 있거나, 보안을 위해 /etc/gshadow에 옮길 수 있다.(이 때 grpconv 유틸리티를 사용한다. 반대로 하려면 grpunconv를 사용한다.) groupadd유틸리티는 수동으로 설정 파일을 편집하지 않고도 그룹을 만들 수 있다. groupdel은 그룹을 지우는 데 사용한다. 그룹을 수정하려면 groupmod를, 사용자를 다른 그룹으로 옮기려면 newgrp 명령어를 사용한다.
39. /etc/profile 파일에는 모든 사용자에 적용하려는 변수가 있다. 사용자 로그인 파일은 홈 디렉토리 하위의 개인적인 .profile 파일로 가기 전에 작동되어 환경을 설정한다. 개별 사용자가 시스템에 마지막으로 로그인한 시간을 보려면 lastlog명령어를 사용하면 되는데, 이 명령어는lastlog파일에서 데이터를 뽑아낸다. last명령어로 가장 최근에 누가 로그인 했는지 알 수 있고, who 명령어로는 마지막 접속자가 지금도 로그인 상태인지 알 수 있다.
40. 시스템 로그 데몬(syslogd)은 로그 파일에 대부분의 이벤트를 로그하는데, 이 때 /var/log/messages라는 메인 파일을 생성한다.logratate명령어는 자동으로 이러한 로그를 저장하도록 설정하며, /etc/syslog.conf 파일에 설정된 유지보수를 수행한다. 로그 파일에 수동으로 엔트리를 작성하려면, logger 명령어를 사용한다.
41. 작업을 한 번만 부재 모드(unattended mode)로 구동하도록 예약하려면 at명령어를 사용한다. 설정한 작업을 보려면 atq명령어를, 이전에 실행한 작업을 지우려면 atrm 명령어를 사용한다.
42. at, allow 파일을 생성하여 유효한 사용자만 입력하여 at 서비스(atd)를 사용할 수 있는 사람을 제한할 수 있다. at, deny 파일을 생성하여 서비스를 사용할 수 없는 사용자면 입력하면 반대로 된다. 즉 파일에 이름이 있는 사용자를 제외하고 모두 그 서비스를 사용할 수 있다.
43. 부재 작업(unattend job)을 예약해서 일정한 간격으로 프로그램을 구동하려면, crontab(cron table) 엔트리를 만든다. crontab 파일은 cron service로 읽는데, cron service는 어떤 작업이 구동되어야 하는지 항상 감시한다.
44. cron, allow 파일을 만들어 유효한 사용자를 입력하여 cron을 사용할 수 있는 사람을 제한할 수 있다. cron, deny 파일을 만들어 서비스를 사용할 수 없는 사용자명만 입력하면 반대로 된다. 즉 파일에 이름이 있는 사용자를 제외하고 모두 그 서비스를 사용할 수 있다.
45. cron table의 각각의 엔트리에는 여섯 필드가 있다:
 몇 분에 작업을 실행하는가(0-59)
 몇 시에 작업을 실행하는가(0-23)
 일(1-31)
 달(1-12)
 주(0-6, 0은 일요일)
 실행할 작업의 경로
46. 데이터가 손상될 경우를 대비하여 데이터는 백업(backup)되어야 한다. 백업은 tar 명령어(여러개의 파일을 하나의 아카이브에 결합시킴)나, 파일을 매체 사이에서 복사하는 cpio 명령어를 사용한다.
47. compress(반대는 uncompress), gzip(반대는 gunzip), pack(반대는 unpack) 명령어로 파일을 압축할 수도 있다.
48. 전부가 아니라 일부분만 백업할 수도 있다. 만약 일부분만 백업한다면, 그것은 점증적 백업(incremental backup)(마지막으로 전부를 백업하거나 점증적으로 백업을 한 이후의 모든 파일)이거나 차동 백업(differential backup)(마지막으로 전부를 백업한 이후의 모든 것)이 될 것이다. 차동 백업과 점증적 백업을 같이 사용할 수는 없으므로, 둘 중 한 가지만 선택적으로 사용해야 한다.
Posted by Tiwaz
Linux & Unix2009. 11. 21. 13:33
Posted by Tiwaz
Linux & Unix2009. 11. 21. 13:32
본문스크랩 부트로더(GRUB)의 장점과 환경설정 및 부팅 과정 LINUX

2007/07/30 18:13

작성자: 베레(lsj403)

출처 hi.pe.kr 날으는물고기·´″°³о♡ | 물고기
원문 http://blog.naver.com/choibit/140036770502

GRUB 부트로더

 


GRUB - 리눅스의 전통적인 부트로더로 사용되어 왔던

               LILO의 단점보완


GRUB의 장점

    ① LOLO에 비해 설정 및 사용하기가 편리

    ② 부트 정보가 올바르지 않더라도 부팅시 이를 바로 수정하여 부팅

    ③ Chain-load를 이용하여 윈도우 계열 운영체제 외, 기타 운영체제 등과 멀티 부팅가능

    ④ 메뉴 인터페이스 환경을 지원하여 대화형 모드로 부트 정보를 설정

    ⑤ 네트워크상에서 부트로더의 설정을 수정

    ⑥ 파일시스템과 커널 실행 포맷을 인식하여 하드디스크 상에서 커널의 물리적 위치를

      기록하지 않고서도, 커널위치와 커널 이미지 파일명만 알고 있으면 부팅이 가능


● GRUB의 환경설정 - /etc/grub.conf

 

GRUB 패스워드 만들기

#grub   ← 입력하면

grub>   ← 이게나오고

grub>md5crypt   ←입력하면

password: *******   ← 원하는 GRUB 비밀 번호를 입력하면

Encrypted:  $1#$2@5$&*^543pa$#← 이런식으로 md5포맷의 암호화된 코드가 생긴다.

이 암호화된 코드를 복사하여 /etc/grub.conf 파일에 다음과 같이 추가해 준다.

 

 

 

리눅스의 부팅 과정은 다음과 같습니다.

 

1. Power On

2. ROM BIOS 에서 지정된 부트 드라이브로 부팅 시작

3. 부트 드라이브의 첫 번째 섹터인 부트 섹터 읽기. (MBR)

4. 부트로더(grub) 작동

5. 커널 이미지 적재

6. 루트 파일시스템 마운트

7. 시스템 초기화 프로그램 작동

8. 프롬프트

 

MBR : Master Boot Recod

 

커널 이미지 적재시에 관련 메세지들이 표시되는데 보기가 힘듭니다. 부팅이 완료된 후 다음의 명령어로 확인이 가능합니다.

- dmseg | more

- cat /var/log/dmesg

- cat /var/log/messages

 

init 프로세스가 실행되면 /etc/inittab 을 읽어 들이는데 여기서 살펴 볼 것은 Default Runlevel 입니다.

요즘 나오는 배포판의 대부분을 보면 GUI 환경에서 설치를 하고 GUI 환경으로 부팅이 됩니다.(Run Level 5)

이를 CUI 로 바꿔주기 위해서는 Run Level 3 으로 맞춰주시면 됩니다.

--> vi /etc/inittab

--> id:5:initdefault: 를 id:3:initdefault: 로 수정 후 저장

 

시스템 초기화(System initalization)

- 부팅 과정에서 Default RunLevel 을 읽은 후 시스템 초기화를 시작하는데 이때 init 은 /etc/rc.d/rc.sysinit 스크립트를 실행하고

inittab 에서 지정한 Run Level 에 따라서 실행 레벨과 일치하는 /etc/rc.d/rc 스크립트들이 동작합니다.

( 주로 /etc/rc.d/rc3.d 디렉토리의 스크립트를 많이 수정합니다. )

/etc/rc.d/rc 스크립트들을 보면 크게 K 와 S, 숫자, 프로그램명 으로 되어 있습니다. ex)S55sshd

K 는 Kill 을 의미하며 해당 프로세스를 죽이는 것을 의미하며, S 는 Start, 숫자는 실행 순서 입니다.

 

마지막으로 이 글을 작성한 목적인 GRUB 에 암호를 부여하는 것입니다.

아무리 소프트웨어 적으로 보안이 잘되어 있다하더라도 시스템에서 Single 부팅 후 암호를 재설정하면 말짱 꽝입니다.

( 하드웨어를 들고 도망치는 것은 어쩔 수가 없겠죠. 이또한 중요한 사항이라고 생각합니다. ㅡ.ㅡ;; )

GRUB 에 암호를 부여하는 방법은 다음과 같습니다.

 

1. 콘솔에서 grub 명령어를 실행

2. grub> 프롬프트에서 md5crypt 를 실행하여 해당 암호에 대한 md5 해쉬값 획득

3. 획든한 해쉬값을 /boot/grb/menu.1st( 또는 grub.conf) 파일 안에 다음과 같은 형태로 넣어주시면 됩니다.

- password --md5 [md5 해쉬값]

 

 

GRUB 에서의 single 모드 부팅

 

1. 서버가 리부팅되면서 X 화면이 뜬다.

2. X화면이 뜨면 이때 "e" 를 누른다.

3. 방향키를 이용해서 해당 커널로 이동한다.

4. 해당 커널로 이동후 다시 "e" 를 누른다.

5. 맨 마지막 라인으로 이동한다.

6. 맨 마지막 라인에서 한칸 뛰우고 "single" 를 입력한다.

  (예 : kernel /vmlinuz-2.4.6-1 ro root=/dev/hda2 single)

7. ENTER KEY 를 누른다.

8. "b" 를 누르면 리부팅되면서 single 모드로 부팅된다.

 

 

root의 패스워드 분실 후 다시 패스워드 설정

 

상황 :

2006년 1월 12일

rrlab4(Fedora Core 3<2.6.9-1.667> 설치) root의 패스워드를 잊어버렸다 -.-;;

순간 아찔했다.

패스워드를 어떻게 새로 설정해야 하는가?

 

 

키워드 :

Fedora, 페도라, grub, 그럽, password, 패스워드, 분실

 

 

해결 방법 :

 

1. single mode로 booting하기

 

시스템을 다시 시작한 후,

grub에서 자동으로 부팅으로 넘어가기 전에 아무키나 눌러

다음과 같이 부팅을 선택할 수 있는 창이 나오도록 한다.

Fedora Core (2.6.9-1.667)

 

이 때, p를 눌러 grub password를 입력한다.

(이것은 내가 fedora 설치시 grub password를 입력했기 때문에 이 작업을 해야 한다.)

 

그리고, 이 때 'a'를 누른다. 그러면 다음과 같은 문구가 나온다.

grub append> ro root=LABEL=/1 rhgb quiet

 

이 문구를 다음과 같이 수정한다.(단순히 1만 추가해준다)

grub append> ro root=LABEL=/1 rhgb quiet 1

 

그런 다음, Enter를 친다. 그러면 single mode로 부팅이 된다.

 

 

2. 패스워드 변경하기

 

single mode로 부팅하면 명령어를 입력할 수 있는 prompt가 뜬다.

이 때 다음과 같이 root의 패스워드를 입력한다.

 

sh-3.xx # passwd root

New password : ******

Retype new password : ******

passwd: all authentication ~~~~~

 

그 다음 다시 multiuser mode로 부팅한다.

sh-3.xx # exit

 

 

 

부트로더의 싱글모드 방지를 위한 패스워드 설정

 

부트로더에서 암호를 묻는다

 

[root@localhost etc]# grub-md5-crypt
Password:
Retype password:
$1$/i36S1$LqdCN5jajY8MCdqWaDxZ81
[root@localhost etc]#
 

암호생성

 

/etc/grub.conf에 입력

 

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
password --md5 $1$/i36S1$LqdCN5jajY8MCdqWaDxZ81
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.11-1.1369_FC4)
        root (hd0,0)
        kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ vga=788
        initrd /initrd-2.6.11-1.1369_FC4.img

 

------------------------------------------------------------------------------------

 

싱글모드로 들어가고자할 때

 

root의 암호를 묻는다

 

vi /etc/inittab

 

id:3:initdefault:

~~:S:wait:/sbin/sulogin --> 추가

 

 

 

--- inittab 설정 ---

 

프로세스 실행에 관한 설정 형식
id : runlevels : action : process

실행 레벨 값
0 : halt
1 : Single user mode
2 : Multiuser, wihout NFS
3 : Full multiuser mode
4 : unused
5 : X11 (X-window)
6 : reboot

기본 실행 레벨값 설정
id:3:initdefault:

로그인한 후 실행 레벨을 호출하고자 할 때
# telinit 5  (X-window 모드인 실행 레벨 5 호출)

루트 암호를 잃어버렸을 때 실행 레벨 1로 부팅한다.
실행 레벨 1은 시스템 초기화 과정이 생략된 채 쉘 프롬프트로 진입하므로
passwd 명령으로 열쇠글을 변경할 수 있다.

----------------------------------------------------------------------------------------

시스템 초기화
si::sysinit:/etc.rc.d/rc.sysinit
I0:0:wait:/etc/rc.d/rc 0
I1:0:wait:/etc/rc.d/rc 1
I2:0:wait:/etc/rc.d/rc 2
I3:0:wait:/etc/rc.d/rc 3
I4:0:wait:/etc/rc.d/rc 4
I5:0:wait:/etc/rc.d/rc 5
I6:0:wait:/etc/rc.d/rc 6
-> 실행 레벨과 일치하는 /etc/rc.d/rc 스크립트가 작동

----------------------------------------------------------------------------------------

시스템 재시작
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
-> 'shutdown -r now' 명령을 Ctrl + Alt + Del 키를 사용하여 대신할 수 있다.

----------------------------------------------------------------------------------------

UPS 전원 부족시에 자동으로 셧다운
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

UPS 전원이 충전되어 전원 공급에 문제가 없는 경우 실행한 셧다운 명령을 다음과 같이 취소
pr::powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

----------------------------------------------------------------------------------------

가상 콘솔 접속을 위한 mingetty 설정
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

리눅스에서는 6개의 가상 콘솔을 제공한다.

가상 터미널 접속을 위한 프로토콜
mingetty, uugetty, agetty, mgetty

respawn
커널 메모리상에서 프로세스가 실행되었다가 죽으면 다시 실행되도록 해주는 명령

----------------------------------------------------------------------------------------

X-window 실행 레벨
x:5:respawn:/etc/X11/prefdm -nodaemon

----------------------------------------------------------------------------------------

/etc/inittab 파일을 수정하여 적용하고자 할 때에는 init q 명령을 실행한다.


'Linux & Unix' 카테고리의 다른 글

[스크랩] LPIC Level 1의 48가지 팁  (0) 2009.11.21
보편적인 Linux의 부팅과정  (0) 2009.11.21
JDK 1.6.0 설치하기  (0) 2009.11.05
RPM으로 베릴 (Beryl) 쉽게 설치 하기  (0) 2009.11.05
proftpd 서버 설치 및 설정  (0) 2009.11.05
Posted by Tiwaz
Linux & Unix2009. 11. 5. 00:31
  • 파일다운로드
    http://sun.java.com 에서 Linux 용 JDK 또는 JRE를 다운로드 받는다.
  • 파일설치
    [root@localhost src]# chmod 755 jdk-6-linux-i586.bin
    [root@localhost src]# ./jdk-6-linux-i586.bin
    [root@localhost src]# mv jdk1.6.0 /usr/local/jdk1.6.0
  • 환경설정
    [root@localhost src]# vi /etc/profile

    PATH="$PATH:/usr/local/jdk1.6.0/bin"
    export JAVA_HOME="/usr/local/jdk1.6.0/bin"
    export CLASSPATH=.:/usr/local/jdk1.6.0/jre/lib

    [root@localhost src]# source /etc/profile
    [root@localhost src]# echo $PATH
    [root@localhost src]# echo $CLASSPATH
  • 확인
    [root@localhost /]# java -version
    java version "1.6.0"
    Java(TM) SE Runtime Environment (build 1.6.0-b105)
    Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)

  • Posted by Tiwaz
    Linux & Unix2009. 11. 5. 00:25

    ============================================================
        원문 링크 : http://cafe.naver.com/linuxcare.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=14446
        참조 글 : 우웅(daiv2blu)
        설치 환경 : CentOS 5 2.6.18-92.1.13.el5
       Beryl 버전 : beryl-core 0.2.0
        설치 방법 : rpm.pbone.net에서 검색으로 각각설치
    ============================================================
    Centos 사용은 계속하였는데, 베릴 한번써보고 싶어서 자료를 찾다보니
    네이버 리눅스 유저 클럽에 있는 우웅님의 글을 보고 해봤습니다.
    rpm 버전이나 링크된 URL이 맞지 않아 별도로 rpm.pbone.net 에서 각각 다운로드 설치하였습니다.
    어렵지 않으니 한번 해보실 분은 해보시길..;

    1.설치 드라이브 확인
     [root@localhost ~]# lspci | grep VGA
     예) 00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics  
     Controller (rev 0c)
     [root@localhost ~]#

    2. Direct Rendering이 활성화(Yes) 되어있는지 확인합니다.
     [root@localhost ~]# glxinfo | grep "direct rendering"
     libGL warning: 3D driver claims to not support visual 0x4b
     direct rendering: Yes
     [root@localhost ~]#

    3. rpm.pbone.net에서 필요한 RPM패키지를 순서대로 바로 실행으로 설치합니다.
     driconf-0.9.1-5.fc6.noarch.rpm
     
     [root@localhost ~]# driconf
     우웅님 왈: ATI 제품군에 해당하시는 분들은 driconf 실행 후
     "Use HyperZ to boost performance" 를 활성화 하라고 하였는데, 제 같은 경우는 해당 내용을 찾지 못했습니다.;;

    4. beryl 설치시 필요한 패키지들을 순서대로 찾아서 설치합니다.(자동실행)
     beryl-core-0.2.0-1.fc7.i386.rpm
     beryl-manager-0.2.0-1.fc7.i386.rpm
     beryl-plugins-0.2.0-1.fc7.i386.rpm
     beryl-plugins-unsupported-0.2.0-1.fc7.i386.rpm
     beryl-settings-0.2.0-1.fc6.i386.rpm (기존의 패키지 파일중 없어서 별도로 다른 패키지를 설치하였음)
     emerald-0.2.0-1.fc7.i386.rpm
     emerald-themes-0.2.0-1.fc7.noarch.rpm

    5. 설치가 완료되면 [Applications]-[System Tools]-[Beryl Manager] 를 실행 합니다.
     또는
     [root@localhost ~]# beryl-manager

    6. 시스템 시작시 자동실행
     [System]-[Preferences]-[More Perferences]-[Sessions]을 실행.
     [Startup Programs] 탭의 [Add] 버튼을 이용하여 beryl-manager를 추가.

     

    -----------NVidia 그래픽 드라이버를 설치한 경우 랍니다. 원문 인용---------

    구글 검색에서 찾은 내용입니다.
    우선 아래의 명령을 실행하세요. (루트계정이 아닐시 sudo <명령어>)

     [root@localhost tmp]# nvidia-xconfig --add-argb-glx-visuals

    잘 실행이 되었다면 /etc/X11/xorg.conf 파일을 수정해줘야할 필요가 있습니다.
    아래의 내용을 추가해주셔야 합니다. 이미 존재하는 Section일 경우에는 없는 부분만 추가해주시면 됩니다.

    =================================================================
    Section "Module"
     Load "extmod"
    EndSection

    Section "Extensions"
     Option "Composite" "enable"
    EndSection
    =================================================================


    'Linux & Unix' 카테고리의 다른 글

    보편적인 Linux의 부팅과정  (0) 2009.11.21
    부트로더(GRUB)의 장점과 환경설정 및 부팅 과정  (0) 2009.11.21
    JDK 1.6.0 설치하기  (0) 2009.11.05
    proftpd 서버 설치 및 설정  (0) 2009.11.05
    USB Memory stick 설정  (0) 2009.11.05
    Posted by Tiwaz
    Linux & Unix2009. 11. 5. 00:22

    Proftpd 서버 설치

    1. root 계정으로 로그인 /usr/local/src/ftpd 폴더 생성

    root@localhost ~] mkdir /usr/local/src/ftpd

    root@localhost ftpd] cd /usr/local/src/ftpd

    1. lftpget 또는 wget 프로그램을 사용하여 proftpd 배포파일을 다운로드함.

    (http://www.proftpd.org 에서 다운로드 가능)

    root@localhost ftpd] lftpget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0a.tar.gz

    1. 다운로드 파일을 압축 해제

    root@localhost ftpd] tar -xvzf proftpd-1.3.0a.tar.gz

    1. proftpd설치할 디렉토리 생성

    root@localhost ftpd] mkdir /usr/local/server

    root@localhost ftpd] mkdir /usr/local/servr/proftpd

    1. 압축 해제한 소스 디렉토리에서 환경설정 체크 스크립트 실행

    root@localhost ftpd] cd /proftpd-1.3.0a

    root@localhost proftpd-1.3.0a] ./confiugre –prefix=/usr/local/server/proftpd –enable-autoshadow –enable-shadow

    root@localhost proftpd-1.3.0a] make

    (환경설정 체크가 정상적으로 완료되면 실행파일을 만듬. Make clean 명령은 이미 만들어진 실행 파일 삭제)

    root@localhost proftpd-1.3.0a] make install

    (실행파일과 라이브러리 파일들을 환경설정에서 지정한 디렉토리로 복사하며 설치 완료)

    1. 설치가 정상적으로 완료되었는지 확인

    root@localhost proftpd-1.3.0a] cd /usr/local/server/proftpd/

    root@localhost proftpd] ls -al

     

    proftpd 서버 실행 접속 테스트

    1. proftpd 서버를 실행하기 위해 sbin 디렉토리에서 ./proftpd 실행한다.

    root@localhost sbin] ./proftpd

    -no such group ‘nogroup’

    -Fatal : Group: Unknown group ‘nogroup’ on line 27 of ‘/usr/local/server/proftpd/etc/proftpd.conf’

    (이유인즉, nogroup 찾지 못한다는 의미로써 proftpd 데몬이 실행될 유저권한과 그룹권한을 가지고 실행 되는데 실행권한에 대한 그룹 설정에 문제가 발생하였다는 것임)

    1. vi 편집기를 실행하여 에러난 부분을 수정한다.

    root@localhost sbin] vi /usr/local/server/proftpd/etc/proftpd.conf

    (27번째에 Group                   nogroup 설정된 값을 nogroup-->nobody 수정)

    1. proftpd 서버 데몬을 시작

    root@localhost sbin] /profptd &

    (& 백그라운드로 실행)

    1. 정상작동 되는지 확인.

    root@localhost sbin] ps aux | grep proftpd

    1. vi 에디터로 iptables 방화벽 설정 변경

    root@localhost sbin] vi /etc/sysconfig/iptables

    1. iptables 아래에 ftp 21 포트를 open 하는 한줄을 작성.

    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT

    1. iptables 재시작

    root@localhost sbin] /etc/rc.d/init.d/iptables restart

    proftpd 시작 스크립트 생성

    1. 압축을 해제한 폴더로 간다.

    root@localhost ~] cd /usr/local/src/ftpd/proftpd-1.3.0a

    root@localhost proftpd-1.3.0a] cd contrib/dist/rpm

    1. vi 에디터로 proftpd.init.d 열면 내부에 PATH 설정 부분을 설치한 폴더로 수정한다.

    root@localhost rpm] vi profptd.init.d

    PATH=”$PATH:/usr/local/server/proftpd/sbin”

    1. 수정한 파일을 /etc/rc.d/init.d디렉토리 아래로 proftpd 변경 복사(퍼미션 755)

    root@localhost rpm] cp proftpd.init.d /etc/rc.d/init.d/proftpd

    root@localhost rpm] chmod 755 /etc/rc.d/init.d/proftpd

    1. 재부팅후 확인가능

     

     


    Posted by Tiwaz
    Linux & Unix2009. 11. 5. 00:20
    1. USB 메모리를 리눅스서버에 꼽는다.

    2. USB 장치를 마운트할 디렉토리 생성
    # mkdir /mnt/usb

    3.modprobe명령을 이용한  ide-scsi 모듈 로드
    # modprobe ide-scsi

    4.어떤 장치명으로 할당되었는지 확인한다.
    # fdisk -l 또는 # dmesg로 확인 가능
    (기본 파티션을 제외한 /dev/sda 또는 /dev/sdb 등의 장치명이 뜬다.)

    5. USB 장치가 /dev/sdb1 이라고 예를 들고 장치를 마운트 한다.
    # mount -t vfat /dev/sdb1 /mnt/usb
                (마운트할장치명)  (마운트된위치)

    6. 그리고 사용~~~
    # cd /mnt/usb

    7. 사용이 끝나면 마운트 해제
    # umount /dev/sdb1
    또는
    # umount /mnt/usb


    ** 한글 깨짐 복구**
    mount -t vfat -o iocharset=cp949 /dev/sdb1 /mnt/usb

    **부팅시 한글 및 자동 인식**
    1. vi 편집기로 fstab를 수정
    #vi etc/fstab
    /dev/sdb1 /mnt/usb auto noauto,iocharset=cp949, user 0 0
    Posted by Tiwaz