· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/KLTP-KLDP

Korean Linux Tip Project(KLTP)

Korean Linux Tip Project(KLTP)

임 은재 ( eunjea@kldp.org) 외 다수

마지막 수정일 2000년 5월 18일
이 문서는 짧고 간단한 리눅스 사용상의 유용한 Tip과 힌트를 모은 문서입니다.

1. 소개

본 문서는 Korean Linux Tip Project(KLTP)를 운영하면서 모여지는 리눅스 팁들을 하나의 문서로 정리한 것 입니다. 팁 프로젝트에 참여하고자 하시는 분들은 한글 리눅스 팁 프로젝트로 방문 하시면 되겠습니다.

앞으로 이 문서는 주기적으로 업데이트되 더욱 많은 분들이 볼수 있도록 KLDP(리눅스 한글 문서 프로젝트)에 등록될것입니다. 많은 분들의 참여 바랍니다.

KLTP 메일링 리스트 : http://kldp.org/mailman/listinfo/tip/

1.1 팁 분류, 내용

팁은 현재 다음과 같이 분류했습니다.

팁내용 위에는 작성자와 날짜를 표기하였습니다.

2. 파일 관리

2.1 파일시스템 모두 복사하기 , 장범수(bschang@kldp.org) - 2000.05.16

파일 시스템 전체나 디렉토리 트리 구조를 동일하게 복사하기 
위해서는 다음의 명령어를 쓴다. 

# mkdir /home/bc/destination 
# cd /targetdir 
# find . -depth -print | cpio -pmdvl home/bc/destination 

이러면 /targetdir의 모든 것이 /home/bc/destination으로 복사된다. 

2.2 깨진 타 (tar) 파일 복구 시도 , 장범수(bschang@kldp.org) - 2000.05.16

기껏 다운 로드를 열심히 한 후에 보면 가끔 타 뭉치가 조금 
깨져 있는 경우가 있다.  이 때에는 다음의 방법을 써서 복구를 
"시도"해 본다. 

$ cat [tar-filename] | tar -xvf - 장소 

장소는 스텐다드 아웃풋. 

2.3 특정 사용자 소유의 모든 파일을 찾을때는? , 관리자 - 99.10.7

특정 사용자 소유의 모든 파일을 찾을때는?
find / -user "사용자 ID" -print

2.4 tar와 bzip2 , Kapsoo Jeon - 99.04.27

요즘 GNU tar는 bzip2를 지원합니다. 
tar xvjf package.tar.bz2 
이런식으로 j 옵션을 사용하면 됩니다. (gzip은 z 옵션)
debian 2.1과 redhat 5.2에 포함된 tar에서 확인

2.5 짜증나는 tarball , 관리자 - 99.04.15

가끔 다운 받은 파일을 untar하다 보면 해당 디렉토리가 생기지 않고
현재 디렉토리에 모든 파일이 풀려버려 정신없을때가 있는데...
이럴때 rm 'tar ftz stupidpackage-1.0.0.tar.gz' 하면 해당파일만
지워진다. 

2.6 파일 크기 0로 만들기 , 관리자 - 99.04.15

파일의 크기를 0으로 만들어야 할때가 있다.
가령 /var/log 속에는 관리해주지 않으면 끝없이 커지는 로그파일들이
들어있다 이럴때는 
cp -f /dev/null /var/log/messages
또는 > /var/log/messages 

2.7 gzip대신 bzip2쓰기 , 관리자 - 99.04.14

gzip대신 bzip2를 tar와 같이 쓰고 싶을땐? 다음과 같은 스크립트나 alias를 만든다.


$ cat tarx-bzip2
#!/bin/sh
tar --use-compress-program bunzip2 -xvp -f $1

$ cat tarc-bzip2 
#!/bin/sh 
tar --use-compress-program bzip2 -cvf $1.tar.bz2 $2

2.8 파일 여러개로 자르기 , 관리자 - 99.04.14

파일을 여러개로 자르고 싶을때는? 
split 를 사용한다. 
man split 

2.9 하드 공간 절약 , 관리자 - 99.04.15

하드 공간 절약을 위해 대부분의 텍스트파일들은(예를 들면 하우투 문서)
압축을 해놓고 필요할때는 zless, zgrep, zdiff 등의 유틸리티를 사용하면
된다. 

2.10 파일 정보 알아내기 , 관리자 - 99.04.15

어떤 파일에 대한 정보가 필요할때 file filename 해보라
재밌는 정보들을 보여준다 

3. 프로그램

3.1 파일을 제외하고 디렉토리 이름만 보기 , 장범수(bschang@kldp.org) - 2000.05.16

현재 디렉토리에 있는 (파일은 빼고) 디렉토리 만 보기 위해서는 

ls -la | grep "^d"    : 숨은 디렉토리까지 보여 줌. 
ls -l | grep "^d"      : 보통 디렉토리 만 보여 줌. 

이 것들을 (본인의 경우에는) .bashrc에 에일리어스로 적는다. 
경우에는 .profile에 적어도 무방하다. 

alias dra 'ls -la | grep "^d"' 
alias dr 'ls -l | grep "^d"' 

3.2 프로세스 남겨 놓고 집에 가기 , 장범수(bschang@kldp.org) - 2000.05.16

일을 하다가 보면 로그 아웃하고 집에 갈 시간인데 
작업 프로세스가 남아 있는 경우가 있다. 
이럴 때에는 'nohup' 명령어를 쓴다. 

     % nohup tar -cf /dev/tape /home/usrdirs  & 

이렇게 해 놓고 그냥 휑하니 로그아웃하지  말고, 
'ps' 등을 돌려서 프로세스가 로그아웃 한 후에도 살아 있는가를 
확인해 보고 집에 간다... 

P.S. 
집으로 가는 중간에 술 집에서 쥔 아줌마한테 "노헙 mv 나 집에" 
따위의 말을 할 정도면 이미 많이 취한 상태... 
그때는 그냥 로그 아웃하고 집으로 간다. 

3.3 grep 사용팁 , 겨울아이(winchild@kldp.org) - 2000.03.02

grep '패턴' 파일명 하면 매치된 라인만 출력되는것 아시죠? 그러나 반대의 경우 
즉 매치되지 않은 결과를 보고 싶을때는? 

grep -v '패턴' 파일명 

3.4 egrep 사용하기 , 관리자 - 2000.02.04

두세가지 문자열을 동시에 찾아야 할때는 egrep을 쓰면 아주 편합니다. 
예를 들어 
만약 그냥 grep으로 문자열1,2 를 찾으려면 
ps -ef | grep 문자열1; ps -ef | grep 문자열2 
와 같이 해야하는것을 egrep를 이용하면 

ps -ef | grep '문자열1|문자열2' 
와 같이 간단해집니다. 

egrep '(pattern1|pattern2|pattern3)' file.txt

3.5 more,less에서 편집하기 , 관리자 - 99.11.29

more 나 less 로 파일을 읽다가 편집하고 싶을때 v 를 누르면
바로 vi로 해당 파일을 편집할수 있다.
단 more filename 또는 less filename 해야한다.
cat filename | more 로 했을 경우에는 작동하지 않는다.

3.6 less 사용팁 , 박 종대 - 99.11.27

less 사용 중에 계속해서 같은 방향을 찾으려면 'n',
반대 방향으로 찾아가려면 'N'입니다.  (vi에서도 마찬가지입니다.)

파일의 맨 처음으로 가는 명령은 'g', 파일의 맨 뒤로 가는 명령은 'G'입니다.
(vi에서는 'gg' 명령과 'G' 명령. 거의 비슷하죠?)

less의 명령은 vi와 비슷합니다. 서로 비교해서 배우면 두 배로 이익이겠죠?

3.7 less 사용팁 , 문 원석 - 99.05.20

less 에서 문자열 검색 할 때 문서의 끝 쪽으로 가면서 찾기는 '/문자열' 
앞 쪽으로 가면서 찾기는 '?문자열'입니다. 
계속해서 같은 방향으로 찾으려면 'n'만 눌러도 됩니다. 
방향을 바꾸려면 원하는 방향쪽의 검색지시 '/' 또는 '?'와 엔터키를 입력합니다.

3.8 한텀에서 한자 입력 , 관리자 - 99.05.07

한텀에서 한자를 입력하려면? 
입력하려는 한자를 한글로 입력후 Ctrl-F9를 누르고 고른다

3.9 안죽는 프로그램 처리 , 관리자 - 99.04.22

kill pid번호로 프로그램이 죽지 않을때는?
kill -9 pid 해본다. 

3.10 프로그램 실행 시간 , 관리자 - 99.04.22

프로그램이 얼마동안 실행되는지 정확한 시간을 알고 싶을땐? 
time -v sh -c 'make zlilo' 
잘은 몰라도.. 해보니... 잘 안되네요... 그냥 time 'make zlilo'이러니 되네요..^^

3.11 mp3 끊김 현상 , 관리자 - 99.04.22

nfs, cdrom mount한 디렉토리에 있는 mp3를 play하면 끊김 현상이 생긴다 
mount옵션중 rsize를 변경해본다. 
mount -t iso9660 -o rsize=2048 /dev/cdrom /mnt/cdrom 

3.12 less 사용팁 , 관리자 - 99.04.15

텍스트파일을 읽을때 less를 쓰는데 찾기 기능은 어떻게?
/ 를 누르고 찾는 문자열을 입력한다.
동일한 문자열을 계속해서 찾을때는 /와 엔터만 치면 된다.(혹은 n , 뒤로찾기는 N)

4. 시스템 관리

4.1 memtest-메모리부분의 에러를 발견해주는 유틸리티 , 양유성(yooseong@kldp.org) - 2000.05.03

메모리 부분의 에러부분을 발견해주는 유틸리티인 memtest는 설치가 간단하고 사용하기가 편합니다. http://www.qcc.sk.ca/~charlesc/software/memtester/ 에서 소스를 얻어 $tar -xvzf memtester-x.xx.tar.gz 를 하고 (x는 버젼을 의미) $make 를 통해 memtest라는 실행파일을 만든 후 원하는 만큼의 메모리와 반복횟수를 정하여 테스트 할 수 있다.

4.2 리눅스 표준시간 설정하기 , 겨울아이(winchild@kldp.org) - 2000.02.07

한국표준연구소에서는 세슘원자시계를 이용한 시간 서비스를 인터넷에서 하고 있지요.
리눅스의 시간을 그 시계와 동조시키려면

# rdate -s time.kriss.re.kr

적당한 시간대에 cron에 등록해 두면 되겠습니다.

4.3 스왑 파일 만들기 , 정원영 - 2000.02.03

스왑 파티션으로 스왑용량이 모자라 파일로 스왑만드는 방법 

# dd if=/dev/zero of=/swap1 bs=1024 count=204800
(1024 바이트의 크기로 204800 블럭을 만드는거죠 즉 200M ,
만들고 싶은 크기x1024 해서 204800 대신 적어주세요.)
# mkswqp /swap1 204800      (스왑 파일 생성)
# sync; sync                (확실하게 하기위해)
# swapon /swap1             ( 스왑 파일 활성화 )

free 명령으로 확인해 보세요.

해제할때는 swapoff /swap1 하시면 되겠죠.

부팅시 마다 스왑 파일을 활성화 시킬려면 /etc/rc.d/rc.local 파일
끝에 swapon /swap1 이라고 추가하면 됩니다.

4.4 로긴 전,후 메세지 편집하기 , 관리자 - 99.05.07

로긴 전,후에 나오는 메세지를 바꾸고 싶을때는 
로긴 전에 나오는 메세지는 /etc/rc.d/rc.local 
로긴 후에 나오는 메세지는 /etc/motd 를 편집한다

4.5 메모리 절약하기 , from Small-Memory mini-HOWTO - 99.05.07

대부분의 리눅스 배포본은 기본적으로 6개 정도의 가상 콘솔이 있다.
주로 X를 쓰거나 가상 콘솔을 많이 쓰지 않을 경우 /etc/inittab 파일안에 
다음과 같은 라인을 주석처리 하여 메모리를 절약할수 있다. 

# Run gettys in standard runlevels
1:12345: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

4.6 일반 유저 마운트 허용하기 , 관리자 - 99.05.04

일반 유저에게 mount,unmount를 허용하려면? 
/etc/fstab 을 수정한다. 
/dev/cdrom     /mnt/cdrom     iso9660 noauto,ro,user 
위와 같이 user라는 옵션을 추가하면 된다. 

4.7 kernel 버젼 확인 , 관리자 - 99.04.22

현재 사용중인 Kernel 버전 확인은?
uname -a 

4.8 syslogd 사용 , 관리자 - 99.04.15

여러대의 컴퓨터가 연결되어 있는 네트워크 관리자라면
syslogd -r 옵션을 사용하여 여러대를 동시에 감시할수 있을것이다 

4.9 로드된 모듈 확인 , 관리자 - 99.04.15

lsmod 로 로드된 모듈을 확인해볼수 있다 

4.10 root의 텔넷로긴 허용 , 관리자 - 99.04.15

root의 telnet login을 허용하려면?
/etc/securetty 를 편집한다. man securetty

하지만 넷트웍상의 컴퓨터라면 어떠한 경우에라도 root의 텔넷허용은 위험합니다.
su - 하시는게 좋겠습니다.

4.11 특정 사용자, 그룹에게 root권한 명령주기 , 관리자 - 99.04.15

특정한 사용자, 그룹에게 root권한으로 명령을 수행하도록 하고 싶을땐?
sudo 를 사용한다. http://www.courtesan.com/sudo/

4.12 현재 시스템의 메모리와 스왑 상태를 알아보려면? , 관리자 - 99.04.15

현재 시스템의 메모리와 스왑 상태를 알아보려면?
free 

4.13 모니터가 없는 시스템의 halt상황은 어떻게 알것인가? , 관리자 - 99.04.15

모니터가 없는 시스템의 halt상황은 어떻게 알것인가? 
/etc/rc.d/init.d/halt를(redhat일때) edit해서 system halted라는
메세지 마지막에 ctrl-g를 넣어준다. 

4.14 idle상태에서 hardpower down시키기 , 관리자 - 99.04.15

idle상태에서 hardpower down시키기... 
hdparm -S 60 /dev/hda (5분이상 idle일때 파워다운) 

4.15 su root ? 아니면 su - ? , 관리자 - 99.04.15

root 로 telnet로긴 하는것은 위험하다 그러면 알리아스나 
ls color등의 설정이 안되어 불편한데... 
su - 로 한다. 
그러면 /etc/profile을 읽어들인다. 

4.16 nologin 안내문 , 관리자 - 99.04.15

system 공사중일때 root외에 다른 사용자는 로긴하지 못하게 한다 
/etc/nologin 이라는 파일을 만들고 공사중이라는 안내문을 넣으면 된다 

4.17 ctrl-alt-del을 shutdown으로 , 관리자 - 99.04.15

혼자만 사용하는 박스에서 가끔은 su로 shutdown시키는 것이 귀찮을때도 
있다. 더 간단한 방법이 없을까? 
/etc/inittab 을 다음과 같이 
# Trap CTRL-ALT-DELETE 
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now 
ca::ctrlaltdel:/sbin/shutdown -h now 
원래 reboot하게 되있지만 halt되게 바꿨다 reboot할때는 halt메세지후 
한번 더 누르면 된다. 더 좋은 방법은 없을까요? 

5. 메일, 뉴스

5.1 메일 같이 받아보기 , 관리자 - 99.04.15

silver계정으로 오는 메일중에 다음주소로 부터 오는 편지는 sujin으로
보낸다. 
물론 silver도 받고... 
silver home디렉토리에 다음과 같은 rc파일을 만든다. 
[ gate@silver ]cat .procmailrc 
:0 c 
* ^From: newsmail@ns.khan.co.kr 
! sujin 

5.2 pine에서 From: 바꾸기 , 관리자 - 99.04.15

pine에서 작성한 메일의 From: 라인을 내마음대로 바꾸고 싶을때는? 
.pinerc파일에 직접 다음과 같은 라인을 추가한다. 

    feature-list=enable-8bit-esmtp-negotiation, 
    enable-8bit-nntp-posting, 
    pass-control-characters-as-is, 
    allow-changing-from -- 요거

5.3 slrn에서 From: 라인 바꾸기 , 관리자 - 99.04.15

slrn에서 포스팅할때 From: 라인을 바꾸고 싶을때는? 
.slrnrc 파일을 다음과 같이 
hostname "linux.org" 
set username "silver" 
set realname "Im Eunjea" 
set replyto  "silver@linux.org"

6. 삼바

6.1 Komba , 황수현 - 2000.05.01

samba사용을 편하게 하는 툴입니다. 
윈과 공유시 상당히 편하네요. 
이웃 컴 이름과 공유 디렉토리도 보여주고 
마운트도 버튼으로 되는 군요. 

저처럼 게으른 사람에게는 상당히 편해요. 
공유로 chart를 나누는데 다들 MS라서 
불편한데 요녀석이 도와주는 군요. 

6.2 삼바 한글 사용 , 관리자 - 2000.01.10

삼바 서버상의 공유 폴더에 한글 폴더, 파일 이름을 사용하려면?
smb.conf 설정파일에 다음 옵션을 넣는다.
mangle case = no
preserve case = yes
short preserve case = yes

6.3 smbmount , 관리자 - 99.04.15

smb 2.0.0 이후부터는 다음과 같이 옵션을 주고 컴파일해야 
smbmount를 사용할수 있다, 
./configure --with-smbmount 
smbmount 등의 바이너리가 생긴다

7. 네트워크

7.1 내 시스템이 다른곳에서의 ping에 응답하지 않게 하려면? , 관리자 - 99.05.07

내 시스템이 다른곳에서의 ping에 응답하지 않게 하려면? 
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 
다시 응답하게 할때는 
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

7.2 모뎀 튜닝 , 관리자 - 99.05.06

리눅스에서 모뎀이 느리다구요? 다음과 같이 한번 해보세요. 
setserial -a -v /dev/ttyS1 spd_vhi 
물론 디바이스명은 본인에 맞게... 

7.3 BIND 버젼 확인법 , 김 승영 - 99.04.29

BIND 버젼 확인법 
dig @네임서버명 txt chaos version.bind. | grep VERSION
예: dig @ns.nobreak.com txt chaos version.bind. | grep VERSION

8. X

8.1 그놈 패널에서 아이콘 이동하기 , 특그비(ganadist@dacome.co.kr) - 2000.05.03

아이콘을 이동하려면 3번째 버튼(에물레이션 모드에선 양쪽버튼 모두)를
드래그 하면 패널상의 아이콘이나 애플릿이 이동이 됩니다.

8.2 리눅스에서 윈도우키 사용하기 , 관리자 - 99.11.04

스페이스바옆에 붙어 있는 리눅스에서는 거추장스럽기 만한 윈도우, 메뉴키등을
X 상에서 활용하려면 어떻게 해야 할까요?
일단 XF86Config 파일에 키보드 항목중 XkbModel을 microsoft로 설정해줍니다.

   Section "Keyboard"
   Protocol "Standard"
   XkbModel "microsoft"
   EndSection

저의 경우 윈도우 매니저를 afterstep을 쓰므로, 해당 feels 파일에 다음과 같은
 항목을 넣어주었습니다.

   # Window keys
   Key Menu A A Popup "Start"
   Key Meta_L A A WarpFore
   Key Meta_R A A WarpBack

메뉴키는 메뉴가 뜨도록, 윈도우키는 윈도그상에서 ALT-TAB과 비슷한 역할을 하도록
설정하였습니다. 각자 취향에 맞게 설정하시면 되겠죠?

8.3 X 배경화면 일정 시간마다 바꾸기 , 관리자 - 99.05.04

X 배경화면을 일정 시간마다 랜덤하게 바꾸고 싶은데? 
다음을 cron에 등록한다 
xv -root -quit -random /home/silver/wallpaper/* 
배경 화면이 있는 path는 본인에 맞게...

8.4 xdm에서 환경파일 , 강정희 - 99.04.20

startx로 잘 써오다가 xdm으로 바꾸고
한텀 등에서 키맵 등이 사라져 당황할 수 있다.
그럴 땐 이렇게 해보자.
/etc/X11/xdm/Xsession 파일을 에디터로 연다.
exec Xclients로 되어 있는 부분을 exec xinitrc로 바꾼다.
이제 설정이 적용된 것을 볼 수 있을 것이다.

8.5 X screenshot은 어떻게? , 관리자 - 99.04.20

X screenshot은 어떻게?
import -window root root.jpeg 

8.6 윈도 매니저 골라 쓰기 , 관리자 - 99.04.20

만약 여러개의 윈도매니저를 쓴다면 .xinitrc에 다음과 같은 문장으로
원하는 매니저를 골라 쓸수 있다. 

xmessage -center -buttons 'fvwm2':1,'fvwm':2 'AfterStep':3 "Choose window manager"
ANS=$?
if [ $ANS -eq 1 ]; then
        exec fvwm2
fi
if [ $ANS -eq 2 ]; then
        exec fvwm
fi
if [ $ANS -eq 3 ]; then
        exec afterstep
fi

8.7 마우스 포인터 속도 조절 , 김 종연 - 99.04.13

마우스 포인터를 빨리 움직이게 하려면? 
/etc/X11/XF86Config에 다음을 추가한다. 

Section "Pointer" 
... 
Resolution 200
EndSection 
*로지텍 퍼스트 마우스, PS/2 에서만 테스트 해봤음.

8.8 MC(Midnight Commander)에서 기능키 , 관리자 - 99.04.20

MC(Midnight Commander)에서 잘되던 home,end,page up,down 키등이 
X상에서는 안되는데? 
option menu에 learn key를 사용한다. 

9. 프린팅

9.1 맨 페이지 프린트하기 , 박천구(mix1009@mail.hananet.net) - 2000.05.17

PostScript 지원 프린터나 Ghostscript을 설치했다면, 
man -t lilo > lilo.ps 
를 사용하면 더 좋은 출력 결과가 나옴. 
a2ps, enscript, psutils 등의 유틸리티로 장당 
여러 페이지 인쇄가능. 

9.2 troff,groff로 문서 포맷 , 이 범석 - 99.07.11

troff 또는 groff로 포맷팅된 깨끗한 문서를 프린팅 할 수 있습니다.

9.3 man페이지 프린팅1 , 관리자 - 99.04.15

man 페이지를 프린팅할때는?
man 명령어 | lpr 

9.4 man페이지 프린팅2 , 관리자 - 99.04.15

man - vi | col -b > filename.txt 

이렇게 하시면 쓸데없는 제어문자들이 싹 빠지므로 
편집, 인쇄하기 편해집니다. 

10. bash

10.1 tcsh에서 vi 에디팅 모드 사용하기 , 김강석(kskim@rtbase.com) - 2000.03.29

vi mode는
bindkey -v 
emacs mode는 
bindkey -e 

10.2 bash에서 vi 에디팅 모드 사용하기 , 김재석(typist@hitel.net) - 2000.03.28

bash에서 기본 에디팅모드는 emacs입니다. 즉, 명령어 입력시 emacs의 
편집키들이 사용된다는 뜻입니다. 그런데, 리눅스를 제외한 다른 
Unix 계열들은 대부분 vi 에디팅모드를 사용합니다. 

그런데, 저는 리눅스가 아닌 Unix를 많이 사용해서 인지 vi 에디팅 
모드가 훨씬 편하게 느껴져서 bash에서 vi 모드를 사용하고 
있습니다. 

vi 모드를 사용하기 위해서는 bash의 입력방법 설정을 수정해야 
하는데, 그 설정은 환경변수 INPUTRC, /etc/inputrc, $HOME/.inputrc 
등에 의해서 결정됩니다. 

보통 레드햇계열은 전체입력환경으로 /etc/inputrc를 사용자별 환경 
으로 $HOME/.inputrc를 사용하며, 원하는 화일에 

set editing-mode vi 
set keymap vi 

를 삽입하면 다음 로그인부터는 vi 에디팅모드로 바뀝니다. 

10.3 bash 팁 , 이 범석 - 99.07.11

(kill-line) ctrl-k를 누르면 현재 커서위치에서 끝까지 지워집니다.
(reverse-search-history) ctrl-r을 누르고 이전에 썼던 명령어의
일부를 입력하면 히스토리에서 그 문장을 포함하는 명령어가 찾아집니다.
찾아진 명령이 원하는 것이 아닐경우 다시 ctrl-r을 눌러
검색을 반복할 수 있습니다.

10.4 bash 팁 몇가지 , 관리자 - 99.04.22

ctrl-L을 눌러보세요, clear명령어와 같은 효과가 있습니다. 

bash shell에서는 cd 명령어에 * 즉 와일드카드를 사용할수 있다.
cd blah* 

ctrl-t를 누르면 두개문자가 서로 뒤바뀐다. 

ctrl-u, ctrl-w를 누르면 현재 커서의 왼쪽에 있는 문자들만 삭제된다. 

바로 전에 위치하고 있던 디렉토리로 이동할때는?
cd - 

Bash는 tab-completion(tab 자동 채워주기?)를 지원한다.
예를 들어 blahblah라는 명령어가 있을때 bla까지만 입력하고
tab을 치면 나머지는 알아서 채워준다. 물론 디렉토리명도... 

11. rpm

11.1 SRPM 컴파일하기 , 임은재 - 2000.03.14

rpm은 RPM 패키지를 만드는 소스패키지 입니다. 
컴파일 방법은 rpm --rebuild blah.srpm 하면 쉽게 됩니다. 
성공적으로 컴파일이 끝나면 만들어진 rpm 패키지는 redhat계열이라면 
/usr/src/redhat/RPMS 안에 놓여지게 됩니다. 

11.2 rpm 패키지와 파일 용량 , from usenet - 2000.01.28

다음은 패키지의 크기만 화면에 보여주는 아주 간단한 스크립트입니다.


$ cat rpmsize

#!/bin/sh 
for i 
do 
        /bin/rpm -qi $i |
        /bin/awk '/^Size  *: / { printf "%8d %s\n", $3, "'"$i"'" }'
done

이를 rpm -qa와 결합하면 자신의 시스템에 설치된 모든 패키지의 크기를
잘 정리된 형태로 뽑아볼 수 있습니다.

$ rpm -qa | xargs rpmsize | sort -rn | less

이 예는 디스크가 모자랄 때 유용합니다.
덩치가 큰 것 중에서 잘 쓰지 않는 것을 골라서 삭제할 수 있으니까요.

11.3 rpm 패키지에서 원하는 파일만 풀어내기 , from usenet - 99.10.8

rpm 패키지를 설치하지 않고 그냥 풀거나, 특정 파일만 골라내고 싶을때는?
rpm2cpio filename.rpm | cpio -i --make-directories -E filename 

11.4 rpm 리스트 만들어 놓기 , 관리자 - 99.04.15

가끔 내가 가지고 있는 redhat 배포본 CD에 어떤 패키지가 있는지
그 rpm안에 어떤 파일들이 들었는지 찾아봐야 할때가 있다
그럴때를 위해 다음과 같은 파일을 하나 만들어 놓고
grep 같은것 으로 쉽게 찾아볼수 있다
rpm -qpil /mnt/cdrom/RedHat/RPMS/*rpm > rpm_db.txt

11.5 퍼미션 복구 , 관리자 - 99.10.7

레드햇등과 같이 rpm으로 설치했던 시스템의 파일들의 그룹과 오너등의
퍼미션이 원하지 않게 변경되었는데..., 어떻게 하면 원래대로 복구할수 있을까?
rpm --setperms -a

12. PHP

12.1 PHP Zend에서 한글깨지는 문제 , 정원영(suni00@kernel.pe.kr) - 2000.04.14

기본적으로 default_charset이 iso-8859-1로 설정되어있습니다.

html문서 <head> 부분에 
<mata http-equiv="Content-Type" content="text/html; charset=EUC-KR">

이렇게 해줘도 되겠지만 이것마저 귀찮다면

php.ini 파일에서 
default_charset = "iso-8859-1" 이부분을 찾아 주석을 풀고 
default_charset = "euc_kr" 이렇게 하시면 됩니다. 

12.2 php 3.0.16에서 문자셋을 EUC-KR로 고정하기 , 권순선(kss@kldp.org) - 2000.04.25

이상하게도 php 3.0.16에서 문자셋을 지정하는 옵션이 php3.ini에 있음에도 불구하고 여기서 문자셋을 euc-kr로 지정해 주면 IE에서 php가 들어간 페이지를 제대로 읽어내지를 못하더군요.

<? phpinfo() ?> 로 확인해 보아도 문자셋이 제대로 들어가 있는데 말입니다. 넷스케이프는 문제가 없더군요.

그래서 아예 php3.ini에서는 문자셋 쪽 옵션을 건드리지도 않고 php에서 문자셋을 euc-kr로 박아버리는 방법을 썼습니다. php 3.0.16의 mod_php3.c 를 보시면 228번째 줄 정도를


r->content_type = "text/html;charset=euc-kr"; 

이렇게 고쳐주고 컴파일하면 됩니다.

13. 초미니 하우투

  1. perl을 DSO로 설치하기
  2. 루트 패스워드의 복구 방법
  3. lxr-0.3(source browser)설치법
  4. 커널 2.3/4 를 사용하려면..
  5. SGML에 그림 넣기
  6. 신세대 메일링 리스트 관리자 mailman
  7. icecast 를 이용한 라디오 방송
  8. Linux On A Floppy
  9. Tomcat3.1m 설치 하기
  10. 리눅스 박스 한눈에 모니터링 하기
  11. [리로활용]윈도우+국내배보본(알짜,파워,미지,영문레드햇)
  12. mtrr 사용으로 X 속도 향상
  13. ATAPI CD-RW인식시키기 Ver1.02
  14. 휠 마우스 사용하기
  15. 메일 알리아스를 이용한 간단한 메일링 리스트
  16. 자동 로그인
  17. X 고해상도

13.1 perl을 DSO로 설치하기

글쓴이: 김창수 ogler@netian.com , 글쓴날: 2000-05-17

제가 perl을 DSO로 설치할려고 자료를 찾아봤더니 거의 없더군요. 
그래서 원문을 바탕으로 어렵게성공 했습니다. 

# 내가 적용한 DSO(Dynamic Shared Objet)방식은 아파치가 구동 중에 클라이언트로 
# 부터 perl스크립트의 해석을 요청 받았을 때 비로서 perl이 구동하는 방식이다. 
# 이는 항상 메모리에 상주하는 static방법보다 더 효율적이다. 
# 
# 여기에 대략적으로 설명을 남긴다. 
# DSO를 설치하는 두가지 방법 중 아파치가 이미 설치된 경우로 했다. 
# 이 경우는 apxs으로서 아파치에서 cgi스크립트가 활성화 되어야 하고 
# mod_so가 모듈화 되어 있어야한다.(httpd -l) 
# apxs setup방식 
# 
#  $ cd apache-1.3.12 
#  $ ./configure --prefix=/usr/local/apache 
#    >--enable-shared=max 
# 
# 먼저  perl모듈패키지를 적당한 곳에 다운 받는다. 
# 압축을 푼다. 
#  $ tar -xzvf mod_perl-1.23 
# 
# 압축 푼곳으로 이동한다 
#  $ cd mod_perl-1.23 
#  $ perl Makefile.PL 
#    >USE_APXS=1 
#    >WHITH_APXS=/usr/local/apache/bin/apxs 
#    >EVERYTHING=1   
#  $ make 
#  $ make install 
# 
# 이렇게 하면 자동으로 httpd.conf파일에 LoadModule과  AddModule라인이 
# 추가된다. 쌍으로 되어있기 때문에 절대 순서가 바뀌면 안되다. 
# 
# 이제 아파치를 재시작한다. 

그 밖에 httpd.conf의 cgi정의 부분도 경로에 맞게 수정해야합니다. 
그리고 설치 전에/usr/bin/에 perl5.0이후 버전이 있어야합니다.

13.2 루트 패스워드의 복구 방법

글쓴이: 장범수 bschang@kldp.org , 글쓴날: 2000-05-16

루트 패스워드가 생각이 나지 않는다면?

오랫동안 기계를 쓰지 않고 방치해 두어서 패스워드를 잃어버리거나, 다른 관리자가 쓰던 기계의 업무를 물려 받은 경우 따위로 루트 패스워드 를 아예 모르는 경우에는 다음의 방법을 써서 복구를 "시도"해 본다. (리눅스 설치 도중에 정전이 되는 등으로 루트 패스워드를 잃어 버린 경 우는 기술 상의 문제로 해당이 안됨을 미리 밝혀 둔다).

우선 릴로 프롬프트가 나올 때 [탭] 키를 눌러서 부트 가능한 이름들을 둘러 본다. 그 중에는 'linux'라는 것이나 비슷한 놈이 하나쯤 있기 마련... 'linux'라고 한다면 다음의 매개 변수를 집어 넣어 주고 [enter]를 살포시 눌러 준다..

linux init=/bin/bash

일단 프롬프트를 얻게 되면 부트 파일시스템을 리마운트 해 준다.

  mount -wno remount / :루트를 읽기-쓰기용으로 리마운트 함. 
  /bin/vi /etc/passwd  :패스워드 문서 다듬기 
                       : vi가 싫으면 아무거나 원하는 것으로... 
전통적인 방법은 패스워드 문서를 다듬어서 루트의 패스워드를 지우는 것이었다. passwd 문서에서 첫 번째 ':'와 두 번째 ':' 사이의 암호화되 어 적혀 있는 패스워드를 지워 주고 나서 다시 루트로 로그인하는 것이 었는데, 레드 햇이 범용적으로 사용된 요즘에는 (특히 레드 햇에 기존한 배포본이 거의 모두라고 할 수 있는 우리 나라의 경우에는) 이 방법은 먹혀들지가 않는다. 왜냐하면...
[1]. 쉐도우 패스워드! 
[2]. 레드 햇은 루트의 패스워드가 비어 있으면 로그인을 허락하지 않는다. 
방법: 0. 만약을 대비해서 우선 passwd 문서를 복사해 둔다. 'passwd.original' 따위 등으로...

1. 레드 햇 이외의 배포본에서 쉐도우 패스워드를 사용 안하는 경우: /etc/passwd를 다듬어서 첫 번째 ':'와 두 번째 ':' 사이에 있는 암호화된 패스워드를 지워 버린다. 저장한 후, 루트로 로그인하면 패스워드를 안 물어 올 것이다. 루트로 일단 로그인이 되었으면 반드시 새로운 패스워 드를 설정하고 적당한 곳에 이 새로운 패스워드를 적어서 보관한다. (안그럼 "언젠가는 또 이 짓을 반복하게 될 것"은 머피의 법칙 어디에서 인가 본 것 같다). 만약 이 방법이 통하지 않으면 3.1로 가라.

2. 레드 햇 이외의 배포본에서 쉐도우 패스워드. 사용의 경우: 이 경우에는 /etc/passwd를 보면 (배포본에 따라서 장소는 다를 수 있 다) ':'와 ':' 사이에 'x'가 보일 것이다. 이 때에는 /etc/passwd 대신에 /etc/shadow 등을 보듬어 주면 된다. (배포본에 따라서 shadow 문서의 위치가 다를 수 있다. 이 때에는 '/'에서 'find -name shadow'를 써서 shadow 문서가 어디에 있는지 찾아본다). 찾았으면, 여기서부터는 1의 방법과 같다.

3. 레드 햇 / 변종의 경우 (쉐도우 패스워드 사용): 레드 햇이나 이 것의 아종/변종의 경우인 경우에는 단순히 /etc/passwd 의 첫 번째 ':'와 두 번째 ':'를 비우는 짓을 했다가는 아예 로그인이 안되 는 불상사가 생길 수 있으므로 우선 passwd 명령어를 먼저 사용해 본 다. (배포본에 따라서 - ':'와 ':' 사이가 비어 있으면 passwd 명령어가 안될 수 있으므로). 만약 이 전의 패스워드를 모르더라도 passwd 명령어를 쓰면 새로운 패 스워드를 적어 넣을 수 있을 것이다. 만약 passwd를 쓰는 방법도 안된 다면 3.1을 쓰라. 당연히 새 패스워드는 적어놓고 안전한 곳에 보관할 것.

3.1 passwd 명령어가 안 먹히잖아! ':'와 ':' 사이에 "암호화된 패스워드" 중에서 아무 것이나 넣어 주면 된 다. 만약 지금 고치려는 기계에 여러분의 계정이 있는 경우에는 /etc/shadow 문서 어디엔가 여러분의 (루트가 아닌 다른 계정으로) 패스 워드가 암호화되어서 저장되어 있을 것이다. 이것을 복사해서 루트의 암호로 대신 넣어 주면 된다. 당연히 루트로 로그인한 후에는 여러분 패스워드를 넣어 주면 된다. 이 후에는 패스워드를 다시 바꾸어서 안전 한 곳에 보관한다. (사용자 계정과 루트 계정의 암호가 같으면 그것도 보안 관리 장애물이다).

그 이후에: 일단 기계를 루트 권한으로 손에 넣었으면 여기에서 일이 끝나는 것이 아니다. 이전의 사용자가 혹시 백도어용으로 쓰기 위해서 루트가 아닌 다른 이름으로 수퍼유저 계정을 만들어 놓았을 수 있으니까.

1. 패스워드나 쉐도우 문서를 잘 살펴서 UID가 0으로 되어 있는 계정을 잘 살펴보도록 하라.

2. 기계 전반의 보안을 기초부터 다시 구성하라. 리눅스 보안 하우투 문 서 및 다른 문서를 kldp.org에서 구하거나 말거나 는 여러분이 할 일이 다. (싫음 말고... 하지만 보안 책임은 전적으로 "너!"에게 있는 것이다. 루트잖아!)

3. 사정이 허락한다면 사용자 전체의 패스워드를 바꿔 준다. 갑자기 바 꿔 놓거나 무조건 바꾸라는 요구를 하면 사용자들이 개떼같이 몰려와서 여러분을 마구 갈구고 갈 수 있으므로 다소 외교적인 방법을 사용한다. 예를 들면 "여러분의 패스워드는 다음 2 주일 이내에 교체해 주십시오. 이 후에는 패스워드가 x 달마다 자동으로 교체됩니다." 하는 등의 사용 자가 이해해 줄 수 있는 보안 방법을 쓰면 된다. 패스워드를 자동으로 변환 설정해 주는 방법은 여기에서는 생략하겠다.

4. 가능하다면 기계 안에 적어 보관하는 일지 (日誌) 말고도 손으로 적는 일지 (아니면 시스템 일기장 (日記帳))을 적는 것도 좋은 방법이다. 당 연히 이 곳에는 루트 패스워드를 원본 그대로 적어 두면 안된다. 하지 만 여러분 본인이나 다음 인수자가 알아볼 수 있는 방법을 쓴다. PGP 등을 써서 암호화된 문서를 저장한다든지 하는 기법은 여러분이 알아서 구해 보시기를...

혹 위의 방법을 도용해서 다른 사람이 여러분 시스템의 패스워드를 훔쳐 가려고 할 지도 모를 일이다. 그런 만큼 보안 하우투 (선전! 선전! = 본 인이 번역했음 ^^; ) 등의 문서를 읽어 보아서 기계 전반의 보안 능력을 올려놓는 방법을 많이 많이 쓰자.

13.3 lxr-0.3(source browser)설치법

글쓴이 : 추 정태 cutetux@hanmail.net , 글쓴날 : 2000-05-15

--LXR 0.3 설치 가이드-- 
(역 : 추정태 cutetux@hanmail.net ) 
LXR을 설치하기 위해서 다음과 같은 것들이 필요하다. 
-Perl 5또는 그 이후버전 
-CGI가 가능한 웹서버 
그리고 임의 단어검색을 위해 다음이 필요하다. 
-Glimpse
만약 펄이 설치되어 있지 않다면 다음의 장소에서 구할 수 있다. http://www.perl.com/perl/info/sofrware.html

웹서버가 필요하다면 아파치를 다음의 장소에서 찾도록 하라. http:///www.apache.org/

만약 Glimpse와 임의 단어검색기가 필요하다면 다음의 장소를 찾아봐라. http://glimpse.cs.arizona.edu/ LXR은 GNU/Linux상에서 아파치 웹서버를 사용한 테스트를 최근에 끝냈다. 다른 유닉스계열의 운영체제상의 웹서버에서는 잘 작동할 것이다.

LXR을 설치하기 위하여:

-펄이 설치되어있고, LXR을 설치하기 원하는 시스템안에서 makefile안의 PERLBIN 변수와 INSTALLPREFIX변수 를 셋팅하라. [보충] 만약 perl 바이너리가 /usr/bin에 있다면 PERLBIN=/usr/bin 으로, INSTALLPREFIX는 LXR스크립트가 설치될 곳을 가리킨다. 만약 그대가 INSTALLPREFIX=/home/httpd/html/lxr로 했다면, Makefile은 몇개의 디렉토리를 그 곳에 생성할 것이다.

/home/httpd/html/lxr/source 
/home/httpd/html/lxr/bin 
/home/httpd/html/lxr/http 
바로 위와 같은 디렉토리 들이다. 소스코드 참조(cross reference)를 하고,참조데이터베이스를 만들고, 또 참조된(crose referenced) 소스코드를 탐색키 위해서 각각 다음과 같은일을 해야 한다. -"make install" root권한으로 해야한다. -$(INSTALLPREFIX)/http/lxr.conf 화일을 편집해야 한다. [보충]lxr.conf에는 LXR이 작동하기 위한 부가적인 몇몇의 설정들이 있다. 기본 설정에서 다음과 같은것들을 바꿀 수 있을 것이다.

baseurl: http://[자신의 서버]/lxr/http/ 여기서 lxr/http는 웹서버의 document root와 연결(하위 디렉토리로)되어 있어야 한 다.

예를 들어 만약 그대의 document root가 /home/httpd/html이고 INSTALLPREFIX가 /home/httpd/html/lxr이면 baseurl은 다음과 같이 되어야 한다.

baseurl : http://[자신의 서버]/lxr/http/ 
(주의)주소의 끝에 /를 쓰는것을 명심하라. 
위의 예에 이어서, 
htmlhead: /home/httpd/html/lxr/http/template-head 
htmltail: /home/httpd/html/lxr/http/template-tail 
htmldir: /home/httpd/html/lxr/httpd/template-dir 
이 설정들은 html의 head, tail, 그리고 디렉토리리스트를 세팅하는 것이다. 이 화일들의 HTML태그들은 cross-reference웹페이지에 덧붙여질 것들이다. sourceroot 항목은 참조하고 싶은 소스가 있는 디렉토리를 가리킨다. 그리고 끝에 /를 붙이는 것을 잊지마라.
dbdir 항목은 $INSTALLPREFIX/source 디렉토리를 가리킨다. 예를 들면 
dbdir: /home/httpd/html/lxr/source/ 
-$INSTALLPREFIX/http 안의 화일들은 웹브러우져가 읽을 수 있는 위치에 있어야 한다는 것을 잊지마라. 웹브러우져는 search, source, ident, diff등의 화일들을 cgi-script로 해석해서 실행하기 때문이다. 아파치웹서버를 사용한다면 다음과 같은 설정이 필요하다.
$(INSTALLPREFIX)/http/.htaccess안에 다음과 같은 설정을 해주기  바란다. 
<Files ~ (search|source|ident|diff)$>
SetHandler cgi-script 
</Files>
[보충] 아파치를 사용한다면, access.conf(혹은 httpd.conf)안에 다음과 같은 설정을 해야 한다.
<Directory /home/httpd/html/lxr>
Options All
AllowOverride All
</Directory>

위에 적은 /home/httpd/html/lxr경로는 INSTALLPREFIX와 같아야 한다. -identifier 데이터베이스의 생성. 위에서 "dbdir"로 설정을 했던 디렉토리로 가서 "./genxref [source code directory]"를 실행 시키면 된다. -이것은 옵션이지만, Glimpse 데이터베이스를 생성시킬 수 있다. "dbdir"로 설정한 디렉토리에서 "glimpseindex -H [source code directory]"를 실행시킨다. 자세한 Glimpse의 활용과 명령은 관련 문서를 참고하기 바란다.

사용:

위에 언급한 설정들이 끝나면 웹서버를 다시 시작시켜야 한다. (역자의 경우 /etc/rc.d/init.d/httpd restart) 그리고 웹브러우져에서 http://[자신의 서버]/lxr/source/ lxr/source는 INSTALLPREFIX밑이며 웹서버의 document root의 하위 디렉토리 이다.

만약 작동을 하지 않는다면:

-Permission을 확인한다. 웹서버가 실행시킬 스크립트들의 실행 권한이 올바르게 주어졌는가 확인 한다.

-Perl스크립트들이 라이브러리를 제대로 쓸 수 있는 지 확인한다. 그리고 웹서버에의한 실행권한도 있어야 한다. (genxref같은 화들일이 펄로 작성되어 있다.)

lxr.conf화일: LXR은 사용자의 디렉토리 구조에 상관없이 쓸 수 있지만, 모든 관련 경로들은 lxr.conf에 기록이 되어있어야 한다. 이 화일은 perl로 작성된 스크립트 화일들과 위치가 같아야 한다.

LXR은 다음의 설정화일 내의 옵션들을 인식한다.

htmlhead : 모든 html화일들의 헤더가 되는 템플릿 화일. 
htmltail : html페이지의 맨 밑에 쓰일 템플릿 
htmldir : 각 페이지에서 디렉토리를 리스팅하는 템플릿 
sourceroot : index를 만들기 원하는 소스코드가 있는  최상위 디렉토리 
sourcerootname : 최상위 디렉토리에 붙일 이름 
incprefix : 그 소스에 쓰이는 include 화일들의 위치
dbdir : LXR이 필요로 하는 데이터베이스화일들이 있는 위치
        (fileidx xref 그리고 glimpse화일) 
glimpsebin : glimpse 바이너리 화일이 설치된 위치
variable : 템플릿과 설정화일이 사용하는 변수들.
문법은 다음과 같다.  variable : <name>,<text>,<values>,<default> 
<name>은 변수의 이름이다.
<text>는 설명. 
<values>필드는 변수의 값으로 가능한 것들을 리스팅한것이다.
리스트는 "("으로 시작해서 ")"으로 끝난다. 이것은 [ <filename> ]과 같이 
쓰일 수도 있다. 이 경우 그 값들은 한 줄에 하나씩 하나의 파일로부터 읽어들인다.
map: 변수를 통해 디렉토리들을 다시 쓸 수 있게 한다. 리눅스의 소스코드들은 몇개의 다른
아키텍쳐를 지원한다. 
이런 경우 include화일들은 include/asm-<architecture>/. 있게 된다. 
이런 코드들은 다시 매핑시키기위해 변수 $a가 다음과 같이 쓰이게 된다.
map: /include/asm[^/]*/ /include/asm-$a/

13.4 커널 2.3/4 를 사용하려면..

글쓴이: 차 영호 ganadist@dacome.co.kr , 글쓴날 : 2000-05-12

  1. 커널 2.3/4를 사용하기 위해 꼭 필요한 것들.
  2. modutils
  3. devfs
  4. usbmouse, keyboard 사용하기
  5. 추가된 가상파일 시스템

1. 커널 2.3/4를 사용하기 위해 꼭 필요한 것들.(리눅스 커널 문서의 Changes참조) 
- Kernel modutils        2.3.10                  ; insmod -V 
- Gnu C                  2.7.2.3                 ; gcc --version 
- Binutils               2.9.1.0.7               ; ld -v 
- Linux libc5 C Library  5.4.46                  ; ls -l /lib/libc* 
- Linux libc6 C Library  2.0.7pre6               ; ls -l /lib/libc* 
- Dynamic Linker (ld.so) 1.9.9                   ; ldd --version or ldd -v 
- Linux C++ Library      2.7.2.8                 ; ls -l /usr/lib/libg++.so.* 
- Procps                 1.2.9                   ; ps --version 
- Procinfo               16                      ; procinfo -v 
- Psmisc                 17                      ; pstree -V 
- Net-tools              1.50                    ; hostname -V 
- Loadlin                1.6a 
- Sh-utils               1.16                    ; basename --v 
- Autofs                 3.1.1                   ; automount --version 
- NFS (client)           2.2beta40               ; showmount --version 
- nfs-utils (server)     0.1.4 
- Bash                   1.14.7                  ; bash -version 
- Ncpfs                  2.2.0                   ; ncpmount -v 
- Pcmcia-cs              3.1.2                   ; cardmgr -V 
- PPP                    2.4.0b1                 ; pppd --version 
- Util-linux             2.9i                    ; chsh -v 
- isdn4k-utils           v3.1beta7               ; isdnctrl 2>&1|grep version 


2. modutils 
modutils를 업데이트 하면 설정파일이 변경되어 있음을 알수 있습니다. 
conf.modules 에서 modules.conf 로 변경되어있습니다. 
(기존의 설정도구들  완전히 다 바꿔야 합니다. -.-;;) 
만약 conf.modules가 있으면 modules.conf를 읽고 conf.modules는 무시하니 지워버리라는
경고메세지가 뜹니다.(그리고 친절하게 지우는 명령까지 가르쳐 줍니다. -.-;;) 
그리고 modules.conf에 들어갈수 있는 예약어가 대폭적으로 늘었습니다. (따로 modules.conf
man페이지도 추가되었습니다.) if같은 제어문까지 사용할수 있습니다. 
다음은 modules.conf에서 사용할수 있는 예약어 리스트 입니다. 

[add] above module module_list 
alias alias_name result 
[add] below module module_list 
define VARIABLE WORD 
depfile=A_PATH 
else 
elseif EXPRESSION 
endif 
if EXPRESSION 
include PATH_TO_CONFIG_FILE 
insmod_opt=GENERIC_OPTIONS_TO_INSMOD 
install module command ... 
keep 
[add] options module MODULE_SPECIFIC_OPTIONS 
path=A_PATH 
path[TAG]=A_PATH 
[add] probe name module_list 
[add] probeall name module_list 
post-install module command ... 
post-remove module command ... 
pre-install module command ... 
pre-remove module command ... 
remove module command ... 


3. devfs 
처음 2.3.99를 설치하고 제일 황당하였던것이 이것입니다. 
부팅 하자마자 멋대로 /dev에 마운트 시켜버리더군요. 
/dev의 장치이름들이 몽땅 바뀌어져 있습니다. 파티션 마운트도 제대로 못시키더군요. -.-;; 
그리고 기타 부가장치들을 거의 사용할수 없습니다. 
예를 들어 콘솔은 tty? 라는 장치를 사용합니다. 하지만 devfs에서는 vc/?라는 장치를 사용합니다.
(로그인도 못할것입니다. -.-) 

이것을 해결하는 방법은 이만용님 홈(http://kldp.org/~yong/kernel/2.3/)에 나온것과 같이 커널옵션에
아예 devfs를 제거하던지 lilo같은데에 옵션으로 devfs=nomount를 사용하면 됩니다. 하지만 있는기능은
다써봐야 하는 극성 리눅서들을 위해(저같은) devfsd를 사용하면 됩니다. 
일종의 하위버젼 호환성을 위해 만들어진 데몬 입니다. 하는 역할은 /dev에 있는 장치파일들을 2.2이하
커널에서 사용하던 것과 같은 파일 이름으로 링크를 자동으로 걸어 줍니다. 
devfsd를 얻으려면  http://www.atnf.csiro.au/~rgooch/linux/ 에서 구할수 있습니다. 
(서기현님(nefsall@nef.sarang.net)께서 정보를 주셨습니다. 감사합니다.) 
저같은 경우에는 지금 /etc/rc.d/rc.sysinit 스크립트에 다음과 같이 적어놓았습니다 
39  # Fix console loglevel 
40  /bin/dmesg -n $LOGLEVEL 
41 
42  # Starting devfsd 
43  action "Mounting devfs filesystem" mount none /dev -t devfs 
44  action "Starting devfsd" /sbin/devfsd /dev 


그런데 이렇게 구성하고 나서 문제가 한가지 더생겼습니다. 일반유저로는 콘솔로 로그인이 잘되는데
root로는 로그인이 안되더군요. 
문제가 있는 프로그램들을 곰곰히 생각해보다가 /etc/securetty 가 생각이 났습니다. 
이 파일의 역할은 루트가 로그인 할수 있는 장치들을 나열한 것이죠. 
기본 설정은 tty[1-6] 입니다. 분명히 링크는 되어 있더군요. 그런데 일반유저로 들어 가서 다시 빠져
나간다음 다시 들어가보니 마지막 로그인 위치가 "1"이라고 나오더군요. 
앞에 있듯이 tty?는 vc/?에 링크 되어 있습니다. 링크되어 있는 파일의 실제이름을 그대로 따라간다는
뜻이죠. 그래서 저는 /etc/securetty 의 내용을 tty?대신 ?로 바꾸었습니다. 로그인 잘되더군요. :) 


4. usbmouse, keyboard 사용하기. 
module로 사용하는 것을 기준으로 설명하겠습니다. 
일단 mouse를 사용하기 위해 올려야 하는 모듈은 다음과 같습니다. 

usbcore, usb-uhci, input, usbmouse, mousedev 
이중 의존성이 걸린 모듈은 
usb-uchi 모듈을 올리면 자동으로 usbcore 
usbmouse 모듈을 올리면 자동으로 input, usbcore 
mousedev 모듈을 올리면 자동으로 input 모듈이 올라갑니다. 
그리고 이 3모듈은 어떠한 연관성이 없으므로 따로따로 올려야 합니다. 
하나라도 올리지 않으면 마우스가 작동을 하지 않습니다. -.-;; 
이것은 modules.conf에서 pre-install을 이용하면 쉽게 해결이 될껍니다. 

pre-install mousedev /sbin/modprobe usbmouse 
pre-install usbmouse /sbin/modprobe usb-uhci 

그리고 마우스를 가르키는 디바이스 파일은 /dev/input/mouse? 입니다. 
그리고 작동하는 프로토콜방식은 ps/2입니다. 

키보드를 사용하기 위해 올려야 하는 모듈은 

usbcore, usb-uhci, input, usbkbd, keybdev이고 
이중 의존성이 걸린 모듈은 
usbkdb 모듈을 올리면 자동으로 input, usbcore 
keybdev 모듈을 올리면 자동으로 input모듈이 올라갑니다. 
이또한 usb마우스관련 모듈과 같이 동작을 합니다. 


5. 추가된 가상파일 시스템 
shm     : sysv 공유메모리      : 권장 마운트 위치 : /var/shm 
devfs   : dev 파일 시스템      : 권장 마운트 위치 : /dev 
usbdevfs: usb 장치 파일 시스템 : 권장 마운트 위치 : /proc/bus/usb 

여기서 shm을 마운트 시키지 않으면 sysv 공유메모리를 사용하는 apache프로그램 등등이 동작 하지
않습니다. 

그리고 usbdevfs 같은경우에는 usb모듈을 올렸을경우에만 마운트 됩니다. 

modules.conf에 다음과 같이 하면 되겠죠? 
post-install usb-uhci /bin/mount none /proc/bus/usb -t usbdevfs

13.5 SGML에 그림 넣기

글쓴이: 선 정필 simje@maninet.com , 글쓴날: 2000-04-25

SGML은 주로 html이나 dvi 파일을 만드는 데 사용됩니다. 저도 조금 써보았는 데, 그림이 아쉽더군요. 그래서 sgml-tools의 파일들 중 dtd 파일을 읽어보고 다음과 같은 해결법을 찾았습니다.

<figure>
<eps file="images/xxxx.eps" height="yyypt">
<img src="images/xxxx.gif"> 
<caption><label id="fig_xxx">이것은 그림 설명</caption>
</figure>
이렇게 하시면 dvi의 경우 자동으로 그림 넘버링이 됩니다. 그리고 eps file 부분은 dvi에만 영향을 미치며 img src 부분은 html에만 영향을 미칩니다. height 옆에다 width를 쓸수도 있으나 이것만 쓰는 것은, 없어도 되지만 이것만 써서 그림의 확대/축소 배율을 지정할 수 있다는 것입니다.

그리고 여기에서 xxxx 및 yyy는 아시다시피 아무개 값을 말합니다. 특히 yyypt는 예를 들어서 386pt를 말합니다. ImageMagick 팩키지의 identify 라는 유틸로 eps 파일을 매개변수로 주면 이런 width x height 값들을 확인하실 수 있으실 겁니다. pt 는 point를 말한다고 합니다.

나중에는 table을 넣는 방법에 대해서 연구해보아죠....

sgmltools 팩키지는 최준호님께서 패치하신 것이 몇년째 그대로 사용만 되고 있는 것 같습니다. 메이저 버전 차이가 영문판과 벌써 생길 정도이니.... 우리의 조그만 노력이 있어야 할 것 같습니다.

13.6 신세대 메일링 리스트 관리자 mailman

글쓴이 : 권 순선 kss@kldp.org , 글쓴날 : 2000-04-17

메일링 리스트 하면 대체로 majordomo가 떠오르시죠?

mailman을 한번 써보십시오.

mailman은 거의 모든 작업이 웹브라우저를 통해서 이루어지며 사용자 입장에서는 가입/탈퇴가 매우 쉽고 관리자 입장에서는 메일링 리스트 아카이브/설정이 매우 쉽다는 장점이 있습니다.

기존의 majordomo를 통해 관리되는 메일링 리스트의 아카이브(메일 모음)를 설정하기 위해서는 따로 MHonarc등의 프로그램을 설치해야 했으나 mailman은 아카이브를 위한 프로그램이 기본적으로 내장되어 있고 아카이브를 보여줄 것인가 숨길 것인가를 관리자가 선택해 줄수도 있습니다.

또 메일-뉴스 게이트웨이를 아주 쉽게 구현할 수 있게 해줍니다.

mailman의 관리자 인터페이스에서 메일-뉴스 게이트웨이 부분을 클릭하고 뉴스 서버와 뉴스그룹을 적어주기만 하면 곧바로 뉴스그룹의 내용이 메일링 리스트로, 메일링 리스트의 내용이 뉴스그룹으로 상호 교환되기 시작합니다. 아주 간편하지요.

제가 사실 mailman을 설치해둔 것은 아주 오래전 일이었는데 이번에 gtk, qt 개발자 오픈 메일링 리스트를 만들면서 오랜만에 다시 손을 좀 대보았네요.

mailman이 동작하는 모습을 보고싶은 분은 http://list.kldp.org 를 방문하셔서 gtk, qt 개발자 메일링 리스트에 가입해 주시고 mailman을 설정하여 메일링 리스트를 구축하고자 하는 분들은 http://www.list.org 에서 mailman 소스코드를 구하시기 바랍니다.

아, mailman의 장점이 또 한가지 있군요. 라이센스가 GPL인 완전한 오픈소스 프로그램이라는것. majordomo는 완전한 오픈소스 프로그램이 아니기 때문에 데비안의 경우 majordomo는 기본 메일링 리스트 프로그램에 포함되어 있지 않습니다. 뭐 GPL이다 아니다가 중요한건 아니지만....하여간 여러모로 편리한 점이 많습니다.

mailman을 사용하시려면 python이 시스템에 설치되어 있어야 하니 최신 버전의 python을 먼저 설치하신 후 mailman을 사용하시기 바랍니다....

이 글은 오래전부터 생각해 오던 http://list.kldp.org 설정을 대충 끝낸 기념으로(?) 썼습니다. :-)

13.7 icecast 를 이용한 라디오 방송

글쓴이 : 최 민성 CHoims@hitel.net , 최종 편집일 : 2000/04/09

요즘 많은 분들이 하고 계신 인터넷 라디오 방송... 저도 관심을 갖고 해보았는데 생각보다 어렵지 않더군요.. 그런데 참고할 만한 관련 자료가 없어서... 약간 고생을 했답니다. :(

이에 방송을 해보고자 하시는 초보 리눅서를 위해 부족한 실력이지만 참고할 만한 사항을 적어 봅니다. (저와 다른 버전을 사용하시거나, 시스템의 차이로 인하여 약간씩 다른 부분이 존재 할수도 있습니다)

다음은 제가 방송 하기까지의 과정 그대로 입니다. :) 일단 방송을 위한 프로그램인 icecast 를 설치합니다. http://icecast.org에서 구하실수 있습니다.

전 1.3 정식을 다운 받았는데, 별 문제 없이 잘 돌아 가는군요. 일단 다운 받은 것을... 압축을 풀고 설치를 합니다.

tar xvzf icecast-1.3.0-p2.tar.gz 
만들어진 디렉토리에 들어가서.. 
./configure 
make 
이번엔 liveice 디렉토리로 이동후 같은 작업을 합니다. 
./configure 
make 
cd .. 
이제 설치가 다 끝났죠? /usr/local/icecast/bin 에 위치된 icecast 를 실행 시켜 봅시다. :) ./icecast

자아.. 여기까지 쉽게 하셨을걸로 믿습니다. (제가 필요 이상으로 설명을 자세히 한듯한 느낌이 드는데 아닌가요? ^^;) 여기서 방송을 어떻게 하는가... 라는 문제가 있는데.. shout 또는 liveice 를 이용해서 쉽게 MP3 를 방송할수 있습니다.

둘의 차이는.. shout 는 미리 인코딩을 하는 반면, liveice 는 실시간으로 인코딩을 하며.. 외부 입력(마이크) 까지 가능 합니다. (하이텔 습삐 님이 리눅스 동에 올리신 인터넷 라디오 방송 icecast (1) 글을 참고 하였습니다) 아무튼 둘다 실행을 시켜 보겠습니다. 우선 엠피 쓰리 방송을 위해. 리스트를 작성 해야 됩니다. 보통 디폴트값인 playlist 파일을 편집해 주시면 됩니다. 다음은 제가 예시로 만든 리스트입니다.

[root@mins bin]# cat playlist 
/mnt/mydata/My_Data/Sound/mp3/gayo/이소은 - 서방님.mp3 
/mnt/mydata/My_Data/Sound/mp3/gayo/Honey Family/02. 랩교 1막.mp3 
/mnt/mydata/My_Data/Sound/mp3/gayo/13 First Ravolution(full intro).mp3 
/mnt/mydata/My_Data/Sound/mp3/gayo/이승환 당부.mp3 
간단하게 작성을 할 수 있겠죠? 이제 모든 준비가 갖쳐 줬습니다. 그럼 shout 를 이용해서 방송을 해볼까요?

./shout localhost -P hackme -a -x -p ./playlist -l -g punk -n "A sample name" -u "http://icecast.org"

대략 무슨 옵션인지 짐작이 가시겠죠? -P 다음의 내용은 패스워드 부분입니다. -p 는 리스트 파일의 경로 이고요. -n 은 타이틀 이름을 바꾸는 옵션 같군요. 지금 잘 생각이.. ^^; 자세한 내용들은 헬프를 이용하시길 바랍니다.

최정우 yak011@hanmail.net 님의 Icecast 사용하기 에서의 명령을 약간 수정한 것입니다.

방송이 잘되시나요? 확인을 하시고 싶으시면 xmms를 실행해서 컨트롤 엘을 누르시면, 서버의 주소를 입력 시킬수 있습니다. 서버주소:8000 으로 입력 하시면 됩니다. (이런것은 설명 안해도 된다고요? ^^;)

이번엔 liveice 를 이용해서 방송을 해볼까요? 이경우 MP3 인코딩 프로램이 필요 한데, 전 lame 이란 프로그램을 사용 하였습니다. 다음의 주소에서 다운을 받으시면 될겁니다. http://hive.me.gu.edu.au/not_lame/ 각자 시스템에 맞는 것을 다운 받으시고요. 압축을 풀고 실행 파일을 /usr/local/icecast/bin/ 에 복사합니다. /usr/local/icecast/etc/liceice.cfg 파일을 ../bin 에 복사합니다. liveice.cfg 로 파일명을 바꾼후, 각자에 맞는 환경으로 화일 내용을 편집합니다.

다음은 저의 liveice.cfg 파일의 내용입니다. 다른 부분은 신경 쓸 필요 없이 제가 주석을 단 부분만 수정해 주시면 될것입니다. (제 주석은 // 뒤에 부분입니다)

# liveice configuration file 
# remote server                1st command param 
SERVER mins                     // 서버의 주소를 적습니다. 
PORT 8000 // 서비스 포트 번호입니다. 
#
# 생략 
#
USE_LAME3 ./notlame350_rh6 // 조금전에 설치한 lame 을 이용하여 인코딩을 합니다. 
#
PASSWORD hackme   // 중요 부분입니다. 꼭 hackme 로 수정 해주시길.. 
#
# playlist -p LIST playlist  // 리스트 파일입니다. 디폴트 값인 playlist 로 지정되어 있습니다.
확인을 해볼 까요...?
[root@mins bin]# ./icecast & 
[root@mins bin]# ./liveice 
xmms로 테스트 해보세요. 음악이 잘 나오죠? :) 그럼 즐거운 방송이 되시길....... - 이 문서는 GPL 라이센스를 따릅니다. 문서의 내용중 틀린 부분이나, 좀더 추가 해야할 내용이 있다면 저에게 메일 주시면 감사드리겠습니다.

13.8 Linux On A Floppy

Eric Benoit(ebenoit@ecks.org) 
1998년 12월 14일

번역자: 양 유성 (yooseong@kldp.org) 
# LOAF란 정확히 무엇인가?

LOAF는 커널과 기타 여러가지 유틸리티를 묶은 리눅스를 플로피 한장으로 구현한 것이다.

# LOAF는 어떤 일을 하는가?

LOAF는 다양한 네트워크 프로토콜에 대한 클라이언트로 사용됨을 의마한다. 이는 lynx(웹브라우저), ftp(파일전송), telnet(원격컴퓨터접속)과 ssh(원격컴퓨터의 보안접속)을 포함한다.

# 왜 LOAF를 사용하는가?

몇가지 이유가 있는데, 첫째로는 사용하고자 하는 컴퓨터에 OS가 없는 경우이다. 만일 여러분이 공용으로 사용하고 있는 컴퓨터를 쓰고 있다면 그 컴퓨터에 악의있는 사람이 만들어 놓았을 keylogger(여러분이 사용한 키보드의 문자들을 기억하게 하는 프로그램)가 있을지 모릅니다. 그렇지 않다면 여러분은 저같은 리눅서처럼 안좋은 OS쓰는 것을 달갑게 여기지 않을 것입니다. 이러한 경우에, LOAF는 이상적입니다. 더욱 많은 이유들이 있지만, 다른 것들은 여러분 자신에게 달려 있습니다.

# LOAF는 내 OS를 지우는가?

분명히 말하지만, LOAF는 절대로 여러분이 지금 사용하는 OS를 없애지 않습니다. LOAF는 플로피 디스크로 시동되기 때문에, RAM안에 자동적으로 설치되며 컴퓨터가 꺼질 때까지 작동합니다. 사실 LOAF는 하드 드라이브가 무엇인지 모릅니다.

# 어떤 컴퓨터에서 LOAF는 작동하는가?

LOAF는 최소한 다음과 같은 컴퓨터 사양이 필요합니다.

386sx CPU 
4MB RAM 
Floppy drive (3.5" 또는 5.25") 
적어도 6MB의 RAM를 권장하지만, 느리긴 하지만 4MB에서도 작동할 것입니다. LOAF는 386이상의 Intel/AMD/Cyrix/IBM CPU에서 작동합니다.

물론 NIC가 없는 컴퓨터에서 LOAF를 사용하면 많은 일을 할 수 없지만 작동을 할 것입니다.

# LOAF가 지원하는 NIC (Network Interface Card)는 어떤 것인가?

현재 다음과 같은 네트워크 카드면 가능하다.

3c503 (EtherLink II) 
3c509/579 (EtherLink III) 
3c59x와 3c90x 
NE1000/2000 (ISA) 
NE2000 (PCI) 
EtherExpress Pro PCI 10+/100B/100+ 
EtherWORKS 3 (DE203/204/205) 
WD80x3 
DECchip Tulip 
만일 여러분의 네트워크 카드가 위의 목록에 없고 커널 컴파일에 능숙하다면 여러분은 여러분의 것을 만들 수 있을 것이다. 몇몇가지 .config의 예들을 ftp://ftp.ecks.org/loaf/devel 에서 볼 수 있을 것이다. 커널은 319K가 넘어서는 안된다. 만일 그렇지 않다면, 나에게 이메일을 통해 연락을 해주면 여러분에게 내가 무엇인가 할 수 있을 것이다.

# 그러면 어떻게 LOAF를 사용할 것인가?

LOAF는 image로서 배포된다. 이는 플로피 디스크에 있는 사진과 같은 것을 가져다 사용한다는 의미이고 파일로 저장된다. 여러분이 필요한 것은 플로피 디스크 한장이고 그 안에 image를 넣으면 된다.

여러분이 DOS나 윈도우 3.1/95/98/NT를 사용한다면, 여러분은 RAWRITE라는 프로그램이 필요할 것이다. 여러분이 리눅스나 BSD, Solaris x86을 사용한다면 dd라는 프로그램을 이미 갖고 있을 것이다. 다른 OS에서는 무엇이 필요한지 나도 모른다.

다음으로 필요한 것은 LOAF이다. 다음의 목록중 적절한 것을 선택하면 된다.

ftp://ftp.ecks.org/pub/loaf/loaf1.img
ftp://ftp.ecks.org/pub/loaf/loaf2.img 
ftp://ftp.ecks.org/pub/loaf/loaf3.img 
ftp://ftp.ecks.org/pub/loaf/loaf4.img 
ftp://ftp.ecks.org/pub/loaf/loaf5.img 
ftp://ftp.ecks.org/pub/loaf/loaf6.img 
ftp://ftp.ecks.org/pub/loaf/loaf7.img 
# 이 파일을 가지고 그 다음에 할 일은?

그 다음 작업은 선택한 image를 가지고 플로피에 넣는다. 만일 RAWRITE을 사용하는 사람이면 다음과 같은 명령을 실행한다.

RAWRITE loaf#.img a:

여기서 #의 의미는 여러분이 선택한 커널이다. a:는 플로피 드라이브를 의미한다. (물론 b:도 가능하다.)

리눅스와 *BSD, Solaris x86을 사용하는 사람들은:

dd if=loaf#.img of=/dev/fd0

#은 여러분이 선택한 커널이며, fd0는 플로피 드라이브를 의미한다. (물론 fd1도 가능하다.)

chug, chug, chug ...ding!*

축하합니다. 만일 디스크가 잘못된 것이 아니라면, LOAF 디스크로서 그 디스크는 작동할 것이다. 컴퓨터에 디스크를 집어넣고 시도해보라! 만일 문제가 있다면, 나에게 이메일을 보내라.

# 실제 사용이 어떻나요?

여러분이 LOAF로 부팅을 했다면, 여러분은 스크린 상에 한때의 파리(?)와 같은 것이 날아가는 것을 볼 수 있을 것이다. 단지 부팅과정이니 걱정하지 말아라. 이러한 것이 끝나고 나면, 플로피로부터 OS의 나머지를 갖고 와서 압축이 풀리고 RAM 디스크에 놓일 것이다. 로그인 프롬프트가 나타난다면 더이상 필요한 것이 없으므로 플로피 디스크를 빼낼 수 있다. 다음으로 할 작업은 'root'로 로그인을 하는 것이고 그 후에 다른 작업을 할 수 있는 KISS라는 프롬프트를 보게 될 것이다.

프롬프트를 보는 것은 즐겁지만... 여러분은 외부와의 접속을 하고 싶을 것이다. 여기에 간단히 접속할 수 있는 방법이 있고 그 내용은 LOAF내에 있다. (단지 lynx라고 입력하라.)

ifconfig eth0 MY_IP_ADDRESS 
route add -net MY_NETWORK netmask MY_NETMASK 
route add default gw MY_GATEWAY 
첫번째 줄의 MY_IP_ADDRESS에는 현재 사용하고 있는 IP 주소를 입력한다. 예를 들어, 192.168.4.24 두번째 줄에서는 MY_NETWORK는 MY_IP_ADDRESS에서 마지막 번호대신 0을 입력한다. 예를 들어, 192.168.4.0라고 입력하면 되고, MY_NETMASK는 255.255.255.0으로 하면된다.

세번째 줄에 나타난 MY_GATEWAY는 선택사항이다 없으면 쓰지 않아도 된다. 호스트 네임을 사용하고 싶다면 /etc/resolve.conf 파일을 여러분의 DNS 서버로 변경하면 된다.

echo "nameserver MY_DNS_SERVER" > /etc/reslove.conf 
MY_DNS_SERVER는 여러분의 DNS 서버를 의미한다. 예를 들면, 192.168.4.1

만일 이러한 것들을 여러분이 잘 알지 못한다면, 여러분의 OS 의 네트워크 설정을 보거나 여러분의 시스템 관리자에게 물러보라. 위의 것들을 실행하지 않으면 커다란 문제점이 발생할 수 있다.

이러한 과정후에 잘못된 것이 없다면 여러분은 lynx를 이용하여 한번 인터넷에 접속해봐라. 네가지의 VC가 있어서 ALT-F1/F2/F3/F4를 이용해 변경할 수 있다. 로그인은 여러분이 처음 접속한 것과 동일하지만, 여러분은 네트워크를 재설정할 필요가 없다.

성공이다. 성공했다면 훌륭하다. 그리고 나서 당신이 얼마나 똑똑한가를 여러분 친구들에게 알려줘라. :) 그리고 마지막으로, 여러분은 나에게 이메일로 연락할 수 있다. 행운을 빈다!

pinkey57@netsgo.com님 추가 : 전 개인적으로 뮤리눅스를 사용하고 있답니다...^^ http://sunsite.auc.dk/mulinux/

13.9 Tomcat3.1m 설치 하기

작성자: 김 상수(http://www.game114.co.kr) 
* 최종 수정일: 2000.04.07
- 환경: Linux Allzza Red het 6.2 + Apache 1.3.9 + Tomcat3.1m

- 사전 준비

1) Linux OS를 구한다. 
2) Apache를 구한다. 
3) jdk1.2.2.를 구한다. 
4) Tomcat(jakarta_tomcat.tar.gz)을 구한다. + mod_jserv.so(apache와 tomcat을 연결 시키는 역할)
1. 먼저 하기
1) OS를 깐다(생략) 
2) Apache 설치(생략) 
3) jdk1.2.2 설치(classpath에 lib/tools.jar 잡아 준다) 
4) tomcat3.1 설치 
   예) /usr/local/jakarta-tomcat 
2. 다음에 하기
    jakarta-tomcat/bin 에서 ./startup.sh -f 한다. 
    그리고 http://localhost:8080/을 방문한다. 
    종료하기: ./shutdown.sh -f를 한다. 
    
    고양이 한 마리 봤으면 성공!! 
    일단 종료를 한다. 
    
    다음 아파치와 연동 해야 된다. 
    http://localhost를 방문하여 아파치 서버가 기동 되는지 확인 한다. 
    
    기동되고 있다면 위에서 받은 mod_jserv.so 파일을 apache/libexec에 복사 하고 
    conf/httpd.conf의 제일 마지막에 다음과 같이 쓴다. 
    
    Include /usr/local/jakarta-tomcat/conf/tomcat.conf 
    
    이렇게 하고 아파치를 다시 기동 시킨다. 
    (제대로 되지 않으면 아파치를 다시 깔아야 한다.) 
    **** 
    만약 에러가 발생하시는 분이 있을 겁니다. 
    module를 로드 할 수 없거나 파일이 없다고 나올 겁니다. 

    그런 경우 아파치를 설치할 때 RPM 등의 패키지로 하지 않고 
    직접 컴파일 한 경우입니다. 

    이때는 아파치 configure 명령 실행시 다음 옵션을 주고 다시 
    컴파일 하십시요.. 

     --enable-rule=SHARED_CORE --enable-module=so 

    tocmcat을 다시 기동 하고 
    
    이번에는 http://localhost로 방문한다. 
    잘됩니까?? 
3. 여기까지 해서 안되는 경우 또는 더 많을 것을 하고 싶은 경우는?
    1) DB에서 쓰는 드라이버는 어디에 넣고 하죠 
       /usr/local/jakarta-tomcat/lib 에 모두 넣으세요... 그러면 
       tomcat이 기동 될때 클래스 패스로 잡아 줍니다. 
        
    2) 기존에 만들어진 디렉토리는 admin, test, examples 가 있는데 
       새로운 디렉토리(context)를 만드는 방법은? 
        
       http://localhost/admin 을 방문하시면 
       context 보기, 추가, 삭제가 나옵니다. 
        
       거기서 추가 해 주면 됩니다. 
        
       예를 들어) baseball 이라는 것을 만들고 싶으면 
       /baseball  webapps/baseball 이라고 각각 쓰고 버튼 클릭을 하세요. 
        
       그리고 결과를 보세요.. 그리고 webapps/baseball 아래에 examples 와 
       동일한 디렉토리명을 만들고 conf/tomcat.conf 에 아래와 같이 적어 주세요. 
        
       ApJServMount /baseball /root 
        
       그리고 server.xml에 다음을 추가 하세요 
       <Context path="/baseball" docBase="webapps/baseball" debug="0" reloadable="true" > 
       </Context>
  
    3) 첫 화면을 index.jsp로 하고 싶은데요?? 
    
       먼저 apache의 conf/httpd.conf 파일에서 index.html 이라고 적힌 부분 뒤에 
       index.html, index.jsp로 등록 하시고 
        
       ApJServMount /  /root  로 수정 하세요. 
        
       그리고 2번에서 방법으로 baseball을 만들면 
       http://localhost/baseball 로 방문 하시면 됩니다. 
        
    4) 한 서버에 여러 사이트를 구동 하고 싶거나 한 서버를 여러 포트를 사용해서 구동 싶거나 
       기타 tomcat을 이용해서 어려운 일을 하고 싶은 사용자들은 어떻게 합니까? 
        
       아래 사이트를 방문 한다. 
http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-tomcat/src/doc/uguid/tomcat_ug.html
       faq를 둘러 보시거나.. 쭉 읽어 보시거나 메일링 리스트에 가입하세요.. 
4. 기타
    1) 아파치 기동 / 종료 / 재기동(bin 에서 한다.) 
       ./apachectl start 
       ./apachectl stop 
       ./apachectl.restart 
        
    2) tomcat 기동 / 종료 
       ./startup.sh -f 
       ./shutdown.sh -f 
5. 마치며..
    이틀동안 무지 고생 했습니다. 이것으로 자바와 리룩스를 사랑하는 
    많은 사람들에게 조금이라도 도움이 되면 좋겠습니다. 
    많은 업그레이드 부탁 드립니다. 

13.10 리눅스 박스 한눈에 모니터링 하기

글쓴이 : 송 영문(songym@kasan.com)
2000 3월 27일
필자는 리눅스 로 서버관리를 4년동안 해오면서 많은 시행 착오를 겪었다. 한때는 FWTK 로 방화벽을 구축해 사용하기도 했지만 실시간으로 리눅스 박스를 모니터링 할 수는 없었다. 한다 하더라도 무척 바빠야 가능할수 있었다. 또한 상용프로그램들은 사용이 쉽지 않았으며(? 필자에게만) 경재적인 이유로 많은 제한이 있었다.

필자가 이글에 쓰고자 하는 글은 모니터 한 대에서 10대이상의 서버를 한 눈에 모니터링 하는 방법이다. 필자보다 우수한 관리자들은 이미 알고 있겠지만, 모르는 초보관리자들을 위해 글을 쓴다.

필자가 사용한 방법은 xconsole 과 syslogd를 이용한 것이다. 방법은 의외로 간단하다.

root@lovin /etc]#vi syslog.conf를 입력한다. 
그러면 
# Log all kernel messages to the console. 
# Logging much else clutters up the screen. 
#kern.*                                       /dev/console 
# Log anything (except mail) of level info or higher. 
# Don't log private authentication messages! 
*.info;mail.none;authpriv.none          /var/log/messages (기본 설정) 
*.info;mail.none;authpriv.none         /dev/console  (필자가 추가한 부분) 
# The authpriv file has restricted access. 
authpriv.*                                    /var/log/secure(기본설정) 
authpriv.*                                    /dev/console(필자추가) 
# Log all the mail messages in one place. 
mail.*                                        /var/log/maillog 
mail.*                                        /dev/console 
# Everybody gets emergency messages, plus log them on another 
# machine. 
*.emerg                                                 * 
# Save mail and news errors of level err and higher in a 
# special file. 

위의 파일을 자신의 파일과 비교해 보면 어디가 다른지 알수 있을 것이다. 이는 위에 설정된 각종 log 들을 /dev/console 로 보내는 것이다. 자신의 파일을 고친후 /etc/rc.d/init.d 로 이동한다. 이동후 syslog 를 재시작 하면 된다.

[root@lovin init.d}#./syslog restart

기본 설정은 끝난 것이다. 무척 간단하다. 그 다음 X-window를 시동해서 아무 터미널에서 xconsole을 입력한다. 그 러면 그냥 하얀색의 조그만 창이 뜬다. 이제 시험을 해보자.

[root@lovin init.d]#ftp 0  

하면 xconsole 에 로그가 뿌려질 것이다. 이를 계속 사용하려면 X-window 로그아웃시 세션 저장을 선택하면 된다.

위와 같은 방법으로 여러대의 서버에 적용하면 쉽게 한눈에 모니터링이 가능하다.

13.11 LILO 활용하기

글쓴이 : 황병우(dmsrma@hanmail.net)
2000 3월 13일
LILO 활용하기 (Window98 + Alzza Linux 6.0 + Power Linux R2 + Mizi Linux 1.0 + RedHat 6.0설치하기)

컴퓨터 환경 ; 펜티움 II 466(셀러론), 128M, 10G, lilo-0.21-6

작성자 인사 겸 문서 쓰게 된 경위 : 안녕하세요. 황병우라고 합니다. 이번에 리눅스 설치에 성공을 하였습니다. 대단히 획기적이지도 않지만 혹시나 저같이 여러개 설치를 원하시는 분들이 있을까 해서 제가 설치해본 경험을 토대로 적습니다.

일반적으로 생각하는 윈도우98과 리눅스 배포본 하나를 설치 하는 것이 아닙니다. 윈도우98 + 리눅스 배포본 4개입니다. 우리나라에 배포되는 많은 리눅스 배포본 중 4가지를 한꺼번에 깔아 보기 위해서 필요한 리로 설정에 대해서 알아 보겠습니다. 왜 리눅스만 깔았냐고 하는 분도 있는데 제가 리눅스만 알거든요.

다음에는 FreeBSD와 BeOS 그리고 다른 유닉스를 깔아볼 생각입니다. 배포본을 많이 설치할 이유가 있어서 설치를 하게 되었습니다. 이렇게 사용하실 분은 없겠지만요. 그리고 WINDOW + LINUX + FreeBSD + BeOS를 사용하시려는 분들의 기초 자료가 되었으면 하는 마음에 제가 설치한 경험을 바탕으로 짧은 글 실력으로 올립니다. kldp 에 올라 갈수 있을지 모르겠습니다. 그럼 시작하겠습니다.

1. 설치 구상

--------------------------------------------------------------- 
먼저 각 운영체제의 버전 정보와 하드 공간 할당 내역입니다. 
윈도우에서 fdisk로 파티션은 C와 D공간만 잡았습니다. 
그리고 나머지는 리눅스에서 사용할 것이므로
비워두었습니다. 
1. 윈도그98 SE ⇒ C 드라이브(2G, /dev/hda1),  D 드라이브(1G, /dev/hda5) 
2. ALZZA LINUX ⇒ 3G, /dev/hda6 
3. POWER LINUX ⇒ 1.3G, /dev/hda8 
4. MIZI LINUX ⇒ 1.3G, /dev/hda9 
5. REDHAT ⇒ 1G, /dev/hda10 
6. SWAP ⇒ 128M, /dev/hda7 
--------------------------------------------------------------- 

참고로 lilo가 무엇인지 다 아시겠지만 잠시 설명하자면, lilo는 리눅스에서 가장 많이 사용되는 리눅스 로더입니다. 여러 운영체제를 선택적으로 부팅할 수 있도록 해줍니다. 리눅스 설치시 기본적으로 설치하여 사용할 수 있다는 것과 별다른 어려움 없이 설정하여 사용할 수 있습니다.

리눅스의 lilo는 하드의 Master Boot Recorder(MBR)에 일반적으로 설치하여 사용하는 프로그램입니다. 기타 여러 멀티부트 매니저가 있지만 다른 운영체제와 멀티 부팅을 하시길 원하시면 리로를 사용할 것을 권합니다.

2. 여러개 배포본 설치시 고려해야 할 사항

- 하나의 운영체제를 설치한 후에 다른 운영체제를 설치 하였을 때의 마운트 포인트(/etc/fstab 수정)

- 부팅 가능영역의 한계 : 리로를 설치 하는데 있어서 1024실린더 안쪽에 리로가 설치 되어야 한다. 대략 8기가 정도이다. 8기가 안에 모든 운영체제(리눅스)를 설치해야 한다.(/etc/lilo.conf 수정)

- 별로 상관은 없지만 설치의 편의상 어떤 리눅스를 디폴트값으로 사용할 것인지를 결정해야 한다. 예를 들어 알짜를 깔고 나중에 파워를 깔면 알짜는 없어지게 된다. 다시말해 파티션에는 남아 있지만 리로에는 파워의 정보가 남아 있게 된다.

3. 리눅스 설치(Window98 + Alzza Linux 6.0 + Power Linux R2 + Mizi Linux 1.0 + RedHat 6.0 설치하기)

- 먼저 나는 알짜 리눅스를 디폴트로 사용 할 것이다. 그러므로 설치 순서는 영문레드햇⇒미지 리눅스⇒파워 리눅스⇒알짜 리눅스 순서로 깔 것이다.

- 리눅스 설치 방법은 다 알 것이다. 여기서는 생략한다. 모든 리눅스가 깔렸다고 했을 때 리로의 정보는 윈도우98과 알짜의 리로가 떴다. 그렇다면 이제 무엇을 고쳐 주어야 하는가가 의문이다. 별로 어려운일은 아니다. 리눅스가 어떻게 부팅되는지 알고 마운트의 개념만 알면 쉽게 설치할수 있다.

-------------------------------------------------------------
1) 저의 리로 정보입니다. (/etc/lilo.conf) 
boot=/dev/hda 
map=/boot/map tall=/boot/boot.b 
prompt 
timeout=50 ult=windows 
image=/boot/vmlinuz-2.2.5-22 
        label=alzzalinux 
        root=/dev/hda6 ⇒알짜리눅스가 깔린 파티션 
        read-only 
image=/mnt/power/boot/vmlinuz-2.2.12-20pow 
        label=powerlinux trd=/mnt/power/boot/initrd-2.2.12-20pow.img 
        read-only 
        root=/dev/hda8 ⇒파워 리눅스가 깔린 파티션 
image=/mnt/mizi/boot/vmlinuz-2.2.13-5mz 
        label=mizilinux 
        read-only 
        root=/dev/hda9 ⇒미지 리눅스가 깔린 파티션 
image=/boot/vmlinuz-2.2.5-15 
        label=redhatlinux 
        root=/dev/hda10 ⇒영문 레드햇이 깔린 파티션 
        read-only 
other=/dev/hda1 
        label=windows table=/dev/hda ⇒윈도우가 깔린 파티션 
--------------------------------------------------------------

☞ 설명

저의 리로를 보셨듯이 아하라고 하시는 분도 계실테고 이게 뭐야라고 하는 분도 계시겠지만 저는 이것을 깔기 위해 여러 가지 리로에 대한 문서나 메일을 통해서 답변을 구했습니다. 모르시는 분들이 보면 좋은 경험이라 생각됩니다.

그럼 설명을 하면 4개의 리눅스의 리로정보를 그대로 가져다가 차례로 붙여 넣으면 됩니다. 간단하죠. 다음에 해주어야 할 일은 바로 다음에 나오는 /etc/fstab파일을 수정하는 일입니다.

저의 fstab 파일의 내용 
-------------------------------------------------------------------- 
/dev/hda6               /                    ext2    defaults        1 1 
/dev/hda7               swap                 swap    defaults        0 0 
/dev/hda8               /mnt/power           ext2    defaults        1 1 
/dev/hda9               /mnt/mizi            ext2    defaults        1 1 
/dev/hda10              /mnt/redhat          ext2    defaults        1 1 
/dev/hda1               /mnt/c               vfat    defaults       0 0 
/dev/hda5               /mnt/d               vfat    defaults       0 0 
/dev/fd0                /mnt/floppy          ext2    noauto         0 0 
/dev/cdrom              /mnt/cdrom           iso9660 noauto,ro       0 0 
none                    /proc                proc    defaults       0 0 
none                    /dev/pts             devpts  mode=0622      0 0 
-------------------------------------------------------------------- 

☞ 설명

부팅될 때 자동으로 마운트 하는 방법이죠. 윈도우의 C, D 드라이브도 이렇게 해서 사용하죠. 다른 리눅스도 이렇게 마운트 해서 서로의 파티션을 돌아 다니죠. 각각의 리눅스의 다른 부분이 무엇인가를 알수 있을까요? 이렇게 하셨으면 마지막 하나가 남았죠. 리로를 실행하셔야죠. 과감하게 lilo를 타이핑하세요.

 
[root@shark /mnt]# lilo 
Added alzzalinux 
Added powerlinux 
Added mizilinux 
Added windows *
저는 이렇게 나옵니다. 왜그러냐구요. 처음에 말씀드린 부팅가능 영역을 영문레드햇 리눅스가 위반했죠. 저의 영문레드햇 리눅스는 1116실린더에서부터 깔려 있네요. 저의 파티션 정보입니다.
--------------------------------------------------------------------- 
Disk /dev/hda: 255 heads, 63 sectors, 1240 cylinders 
Units = cylinders of 16065 * 512 bytes 
Device Boot     Start End Blocks    Id    System 
/dev/hda1       *    1  255     2048256 b       Win95 FAT32 
/dev/hda2               256     1240    7912012+        f       Win95 Ext'd (LBA) 
/dev/hda5               256     383     1028128+        b       Win95 FAT32 
/dev/hda6               384     766     3076416 83      Linux 
/dev/hda7               767     783     136521  82      Linux swap 
/dev/hda8               784     949     1333363+        83      Linux 
/dev/hda9               950     1115    1333363+        83      Linux 
/dev/hda10      1116    1240    1004031 83      Linux 
---------------------------------------------------------------------- 
이상이 저의 윈도그, 리눅스 배포본 4개를 설치한 경험입니다. 아무쪼록 많이 참고 하셨으면 합니다. 또한 이것을 응용해서 여러개(리눅스외)를 설치 할수 있죠. 리로의 막강한 힘을 느껴 보세요. 수정하실 것 있으면 과감히 하세요. 저는 최대한 자세하게 설명한 문서를 좋아합니다.

13.12 mtrr 사용으로 X 속도 향상

글쓴이 : 관리자
2000 1월 21일
mtrr은 Pentium Pro,Celeron,Pentium II,III 등의 mtrr을 지원하는 프로세서에서 사용할수 있습니다.

1. 커널 컴파일 하기

mtrr을 사용하려면 일단 커널에서 mtrr을 지원하게 컴파일 해주어야 합니다.

커널 컴파일시 다음 옵션을 선택합니다.

Processor type and features
[*] MTRR (Memory Type Range Register) support

다음 새로운 커널로 재부팅후 cat /proc/mtrr 해보면
reg00: base=0x00000000 (   0MB), size= 128MB: write-back, count=1
와 같은 문장이 보입니다.

2. 비디오 램 어드레스 알아내기

먼저 자신이 사용하는 비디오 카드의 램 주소를 알아내야 하는데 다음과 같은 방법으로 알수 있습니다.

startx -- :1 -probeonly >& /tmp/log
grep Memory /tmp/log
grep videoram /tmp/log

(--) SVGA: PCI: NVidia/SGS-Thomson Riva128 rev 16, Memory @ 0xe4000000
(--) SVGA: videoram: 4064k

위와 같은 결과를 보여주는데 제 경우에는 0xe4000000이 어드레스이고, 비디오 램은 4M 라는 것을 알수 있습니다.

3. MTRRs 만들기

이제 비디오 램의 주소와 크기를 알아내었으면 다음과 같이 해주면 됩니다.


echo "base=0xe4000000 size=0x400000 type=write-combining" > /proc/mtrr

cat /proc/mtrr 해보면 다음과 같은 결과를 볼수 있습니다.

reg00: base=0x00000000 (   0MB), size= 128MB: write-back, count=1
reg01: base=0xe4000000 (3648MB), size=   4MB: write-combining, count=1

다음과 같이 하면 설정한 mtrr을 해제할수 있습니다.
echo "disable=1" > /proc/mtrr

4. 참고 MTRR (Memory Type Range Register)이 무엇인가에 대해서는 /usr/src/linux/Documentation(커널소스를 가지고 계시다면:)) 디렉토리안에 mtrr.txt에 자세히 설명되어 있습니다.

13.13 ATAPI CD-RW인식시키기 Ver1.02

글쓴이 : 박 근렬(ritter4u@yahoo.com)
2000 1월 22일
제가 사용하는 물건은 LG에서 나온 ATAPI형식의 CD-RW입니다. 이거 인식시키느라구 486에서 커널 컴파일을 몇번 했는지... 좌우간 누군가에게 도움이 되길 바라며 시작 하겠습니다. 몇달전에 하이텔 리동에 올렸는데 최근 문의가 자주 오더군요.

이글은 GPL을 따릅니다. 수정할 사항의 지적이나 질문은 박근렬 ritter4u@yahoo.com으로 보내 주십시요.

필요한 프로그램 : 커널 2.2.X, X-CD-Roast

언젠가 얼핏읽은 기억으로 IDE CD-RW를 리눅스에서 사용해보고자 난리를 쳤지요. 중요한건 ATAPI가 SCSI에뮬레이션이 된다는 것입니다. 전 ATAPI형식의 CDROM지원을 모듈화 시켰습니다. 두번째로 SCSI에뮬레이션 기능을 켰구요. ISO9660 File System은 모듈화시켰습니다 스커지 지원을 모듈화 했습니다. 제너럴 스카시 드라이버라고 하지요... SCSI-cdrom을 모듈화 했습니다.

커널 컴파일후에는 ./MAKEDEV sg 를 이용해서 제너럴 스커시 디바이스들을 활성화 시켰습니다. CD-RW위치에 따라 hd[x]=ide-scsi 라는 문구로 CD-RW를 인식시켜 줬습니다.

 (hda=프라이머리 마스터) 
 (hdb=프라이머리 슬레이브) 
 (hdc=세컨드리 마스터) 
 (hdd=세컨드리 슬레이브)

(ABIT b*6시리즈의 Ultra DMA66 IDE를 쓰는 메인보드는 hde부터 hdh까지가 추가 됩니다) X-CD-Roast라는 프로그램을 구해서 설치를 했습니다. (최근버젼은 0.96ex입니다. 0.98 알파버젼도 있지만...)

설치후 실행을 시켜보니 셋업을 하라고 하더군요 셋업메뉴에 가면 CD-RW가 인식이 되있습니다(수십개) 그러나 신경쓰지 마세요... 이제부터는 그냥 굽기만 하면 됩니다... 다음에는 ATAPI지원을 모두끄고 스커지 CDROM과 에뮬레이션만 가지고 커널을 컴파일해 볼 생각입니다. 제 생각대로라면 그방법도 제대로 지원될 것같습니다. 그럼 조금이나마 참고가 되었기를 바라며...

참고문헌

CD Writer mini-HOWTO 
ATAPI.README (X-CD-ROAST라는 프로그램에서...)

13.14 휠 마우스 사용하기

글쓴이 : 관리자
99년 12월 29일

어제 친구들과 연말을 맞아 간만에 외식을 하러 갔다가 그 근처 컴퓨터 상가에서 마우스를 하나 사왔습니다. 200루블(한국돈으로 약 8000원정도 되려나?)주고 Genius NetMouse Pro라는 놈을 샀는데요, 가운데 휠이 달려있고, 왼쪽면에 버튼이(이것이 가운데 버튼 역활을 하고 있습니다) 하나더 달려 있는 모양새를 하고 있습니다.

이게 X상에서 휠을 사용할수 있어야 할텐데 조마조마 하면서 집으로 돌아왔는데요. 약 20분만에 설정끝내고 지금 아주 편하게 쓰고 있습니다. 특히 문서 읽을때 아주 편하군요...

필요한 것들 : 리눅스와 X 서버(XFree 3.3.2이상), 휠 마우스, IM Wheel, 시간

1. XF86Config 수정하기

다음은 저의 XF86Config Pointer 항목입니다. XFree3.x 과 4.0의 설정이 약간 틀린것에 주의하십시요.

# XFree3.x의 설정파일


Section "Pointer"
    Protocol    "IntelliMouse"
    Device      "/dev/ttyS1"
    ZAxisMapping  4 5 
EndSection

# XFree4.0의 설정파일


Section "InputDevice"
    Identifier  "Mouse1"
    Driver  "mouse"
    Option  "Protocol"      "IMPS/2"
    Option  "Device"        "/dev/mouse"
    Option  "Buttons"       "5"
    Option  "ZAxisMapping"  "4 5"
EndSection

Protocol 항목은 자신의 휠마우스가 시리얼이면 "IntelliMouse" 또는 "Auto"로, PS/2 휠마우스라면 "imps/2" 로 해줘야 합니다. Device 는 당연히 본인에 맞게 설정해야 겠지요? ZAxisMapping 4 5는 꼭 넣어줘야 휠을 사용할수 있습니다.

2. imwheel 설치.

여기까지 되었으면 imwheel을 설치합니다. X 리소스파일을 직접 고쳐서 휠을 사용할수도 있지만 이것이 있으면 휠씬 간편하게 각 프로그램 마다 휠의 역활을 정의할수 있습니다. tar볼 소스를 가져다 풀어보면 gpm에 대한 패치와 사용법도 들어있으니 콘솔상에서 gpm쓰시는 분들은 참고하시기 바랍니다. 설치는 간단하게 make ; make install하면 끝납니다. 실행은 imwheel -k 해주면 되고요. xinitrc 등 적당한 곳에 집어 넣어 항상 실행되게 하면 되겠죠?

2.1 imwheelrc 설정

imwheelrc(/etc/imwheelrc 또는  /.imwheelrc)은 imwheel의 역활을 각 프로그램마다 정의해줄수 있는 파일입니다. 다음은 제 imwheelrc파일중 hanterm에 관한것 입니다.


"Hanterm"
Shift_L,    Up,     Shift_L|Page_Up
Shift_L,    Down,   Shift_L|Page_Down
Control_L,  Up,     Page_Up
Control_L,  Down,   Page_Down
None,       Down,   Down,       7,  1000,   1000
None,       Up,     Up,         7,  1000,   1000

첫번째 줄을 설명하자면 "왼쪽 쉬프트와 휠의 위쪽을 눌렀을때 키보드로 왼쪽 쉬프트와 Page_Up을 눌렀을때와 같은 기능을 해라" 입니다. None은 물론 그냥 휠만 사용했을때의 기능입니다. 타볼안에 들어 있는 설정파일을 살펴보시면 쉽게 적용할수 있으리라 생각됩니다.

rxvt의 경우 2.4.6버젼 이상부터 휠마우스 지원이 자체 내장되어 있습니다. 해서 rc파일에 설정을 따로 해주면 약간 이상현상을 보이는데, 아예 rxvt 컴파일 할때 --disable-mousewheel을 주고 컴파일 하거나, imwheelrc에 XTerm로 설정해주고, rxvt -name xterm 과 같이 실행해주면 됩니다.

3. 참고

어떤 종류의 휠마우스를 지원하는지에 대한것과 휠 마우스 사용에 대한 더 자세한 정보는 Colas Nahaboo X mouse wheel scroll page에 가보시면 됩니다.

13.15 메일 알리아스를 이용한 간단한 메일링 리스트

글쓴이 : 정 원도 (darkmage@dreamwiz.com)
2000 2월 2일

리눅스에서 메일알리아스를 이용하면 아주 간단히 메일링리스트를 만들수가 있다. 물론 이것은 극히 초보적이고 보안이 안되어 있으나 외부에 공개하지 않고 친구나 아는 사람들끼리 서로간의 이야기를 주고 받는 다면 아주 유용할 것이다. 그러면 간단하고도 쉬운 방법인 메일알리아스를 알아보자. 알짜 리눅스 6.1의 경우에 /etc/mail/aliases에서 설정을 한다. 여기에서 자기가 원하는 메일그룹의 이름을 선택하자. 우선 나의 경우에는 jumpup이라는 이름을 선택하였다.

$ vi aliases

# Basic system aliases -- these MUST be present. 
 MAILER-DAEMON:  postmaster 
 postmaster:     root 

# General redirections for pseudo accounts. 
bin:            root 
daemon:         root 
games:          root 
ingres:         root 
nobody:         root 
system:         root 
toor:           root 
uucp:           root 

# Well-known aliases. 
manager:        root 
dumper:         root 
operator:       root 

#여기의 이부분을 추가한다. 
#Maillist maker 
jumpup: :include:/etc/maillist/jumpup 
#<------------ 여기까지는 추가하는 부분이다. 

# trap decode to catch security attacks 
decode:         root 

# Person who should get root's mail 
#root:          marc 

이렇게하고 저장을 하면 jumpup이라는 이름으로 수신되는 것은 /etc/maillist/jumpup이라는 파일에 있는 주소들로 다시 전송된다. 그러면 /etc/maillist라는 디렉토리를 만들고 다시 jumpup이라는 파일을 만든다.

$ mkdir /etc/maillist 
$ chmod 755 /etc/maillist 
$ vi /etc/maillist/jumpup 
        #여기에다가 사용자들의 주소를 적어준다. 
        user1@server.name 
        user2@server2.name 

$ chmod 755 /etc/maillist/jumpup 
$ newaliases 

이렇게 해놓으면 my.server.name이라는 서버에서 이러한 셋팅을 한경우 jumpup@my.server.name 이라는 이름으로 들어가는 메일은 user1@server.name 과 user2.server1.name 이라는 주소로 메일을 다시 전송한다.

끝으로 sendmail의 경우 파일의 퍼미션이 맞지가 않으면 에러가나면서 메일이 전송되지가 않는다. 그러므로 퍼미션을 지정해주는 것이 좋다. 또한 newaliases라는 것으로 다시 정보를 갱신해주지 않으면 이것은 작동하지않는다. 이에 유의하고 수정하면 된다.

끝으로 이것은 아주 개인적으로 사용할 경우에 유용하고 자동으로 이루어지는 것은 하나도 없으므로 일일이 수동으로 해야한다는 단점은 있다. 그러므로 작은 그룹의 메일링리스트로 쓰이기는 좋다 또한 보안성이 없으므로 외부의 스팸에 취약하니 주소를 노출시키지 않는 것이 중요하다. 문의 할것이 있으신분은 darkmage@dreamwiz.com으로 문의하시면 됩니다.

13.16 자동 로그인

글쓴이 : 관리자 (eunjea@kldp.org)
Wed Dec 15 04:47:47 MSK 1999

1. 컴퓨터 켜면 바로 X로...

보안이 필요없는 집에서 혼자만 쓰는 리눅스 박스에서 로그인 과정은 귀찮을 뿐입니다. 그래서 저는 다음과 같은 방법으로 전원을 켜면 바로 X 까지 뜨게 해놓았습니다. 일단 한가지 프로그램이 필요한데 rungetty 입니다. 이것은 mingetty를 좀더 확장한 것인데 autologin 말고도 다른 기능도 많이 가지고 있습니다. rungetty는 http://freshmeat.net/에 가시면 쉽게 찾으실수 있습니다. rungetty 설치후 /etc/inittab의 내용을 적당히 고칩니다.

# Run gettys in standard runlevels
#1:2345:respawn:/sbin/mingetty tty1 이것을
1:2345:respawn:/usr/local/sbin/rungetty --autologin silver tty1 이렇게
물론 rungetty는 /usr/local/sbin 에 설치되었고, silver는 유저 이름입니다. 시스템을 재시작해보면 자동으로 silver라는 이름으로 로그인이 이루워집니다. 다음 X를 실행시켜야 하는데 그것은 .bash_profile에 다음을 넣어주면 됩니다.

#!/bin/sh
if [ "$WINDOWID" = "" ]; then
startx
fi

자 이제 컴퓨터 전원을 넣으면 원하는 유저로 바로 X화면 까지 뜨게 됩니다. if문이 왜 있냐구요? 그럼 빼고 사용해보세요. 금방 아시게 될겁니다 ;-)

2. 자동 su, 자동 telnet로그인

여기저기서 많이들 들어보셨겠지만 혼자쓰는 박스라 해도 root계정으로 리눅스를 사용하는 것은 여러가지 위험 요소가 많습니다. 해서 일반 계정을 하나 만들어 사용하는데요. 그래도 프로그램 인스톨이나 셋업시에는 자주 root계정을 필요로 합니다. 그래서 저는 다음과 같이 root-login이라는 스크립트를 하나 만들었습니다.

#!/usr/bin/expect
spawn bash -c "su -"
expect -re "Password:"
sleep 0.2
send "xxxxxxx\r"
interact

expect를 이용한 간단한 스크립트인데요, xxxx에 패스워드를 넣어주시면 되겠죠? 다음 rxvt -e  /bin/root-login와 같이 X 윈도매니저 설정에 적당히 넣어두시면 한번 클릭으로 root계정을 사용할수 있습니다.

역시 다음과 같은 방법으로 telnet로그인에도 쓸수 있습니다.

#!/usr/bin/expect
spawn ztelnet net.silver.org
expect -re "User Name:"
sleep 1
send "silver\r"
expect -re "Password:"
sleep 1
send "xxxxxxx\r"
interact
ztelnet으로 net.silver.org에 silver로 접속하는 스크립트입니다. 이런 방법이외에도 더 낳은 방법이 분명히 있으리라 생각됩니다. KLTP에 많은 참여 바랍니다.

13.17 X 고해상도

글쓴이 : Marzio Lee (marzio@zuguri.org)
Date: Sat, 10 Apr 1999 07:13:12 GMT 

저는 사용중인 시스템 사양에서 최대로 낼 수 있는 고해상도의 화면을 선호하는 관계로 아래와 같은 특이한 해상도를 만들어서 사용하고 있습니다. 혹시 여러분들중 고해상도를 선호하시는 분은 참조하세요. 대형 모니터와 고해상도로 X를 띄우면 또다른 맛이 느껴집니다.

1. Mach64 4MB VRAM카드에서 잡아본 최대해상도 (화면이 약간 깜박임)

Modeline "1536x1152" 135.00 1536 1696 1824 1992 1152 1168 1184 1208 (수평 68KHz, 수직 56Hz)

2. 수평주파수 31.5-85KHz인 17인치 모니터와 밀레니엄 II에서 잡아본 해상도

Modeline "1800x1350" 197 1800 2000 2100 2336 1350 1366 1382 1400 (수평 84KHz, 수직 60Hz)

3. 수평주파수 31.5-96KHz인 19인치 모니터와 밀레니엄 II에서 잡아본 해상도

Modeline "1920x1440" 235 1920 2100 2300 2496 1440 1464 1476 1500 (수평 94KHz, 수직 62Hz) Modeline "2048x1536" 248 2048 2200 2400 2608 1536 1556 1576 1600 (수평 95KHz, 수직 59Hz)

주1) 위의 데이타는 정확한 사양에 의거하여 계산한 값으로 비디오모드를 만든후 테스트한 것입니다. 만약 모니터의 사양이 이에 못미치고, 범위를 벗어난 신호를 막지 못하는 모니터인 경우 모니터에 치명적인 손상을 줄 수 있으므로 주의해서 사용해야 합니다.

주2) 위 1번의 경우 RAMDAC이 135MHz까지밖에 지원하지 않아서 수직주파수를 희생하여 해상도를 올린 경우로 장시간의 작업시에는 좋지 못합니다. 또한 Mach64용 X서버는 BIOS에서 가능한 해상도를 읽어서 적합한 경우에만 올려주기 때문에 XFree86의 소스 일부분을 고쳐야 합니다.

주3) 위 2번의 사양에서 수직주파수를 희생하면 3번의 해상도를 만들수는 있으나 화면이 심하게 떨리는 증상이 나오므로 거의 사용이 불가능합니다. 그러나 Acrobat Reader로 PDF파일을 볼때 가끔 사용하기도 합니다.

주4) 위 3번의 사양으로 1800x1400해상도를 만들 경우 95KHz의 수평주파수와 68Hz의 수직주파수를 얻을 수 있습니다. 이 경우에는 위의 197이란 숫자만 222로 바꾸어주면 됩니다.

3년전부터 위와 같은 특수 해상도를 만들어서 사용하면서 이 내용을 여러사람에게 알려야 되나 말아야 되나를 생각해 보았는데, 역시 알리고, 이를 사용하시는 분이 주의해서 사용하는 것이 옳을 것이라고 생각되어 이렇게 뉴스그룹에 올립니다. 이미 시스템을 가지고 계신 분의 경우에는 그 카드에 맞게 사용하고, 새로 구입하시는 분이라면 카드의 RAMDAC특성과 모니터의 사양을 검토하여 구입하시는데도 도움이 될 수 있기를 바랍니다.

외제 모니터의 경우 수평주파수가 무려 110KHz까지 지원하는 21인치 모니터도 있더군요, 이러한 제품의 경우 최대 해상도 2048x1536에서 68Hz의 수직주파수를 얻을 수 있는데도, 1280x1024정도까지만 사용한다면 물론 화질은 좋겠지만 모니터의 사양을 놀리는 결과가 아닐까 생각됩니다.

앞으로 나오는 비디오 카드들이 RAMDAC속도가 최대 350MHz까지 간다고 하니, 고해상도로의 발전은 끝없이 이어질 것 같습니다. 윈도그에서는 해볼수 없는 X윈도우의 장점이 아닌가 생각되는군요 (물론 공개용 소프트웨어이기 때문에 가능하다고 할 수 있죠.)

from Marzio Lee

14. 기타

14.1 편집자, 참여 방법

본 문서의 편집자는 임 은재 eunjea@kldp.org입니다. 수정할 사항, 또는 이 프로젝트에 참여하실 분은 한글 리눅스 팁 프로젝트 로 방문하시면 되겠습니다.

14.2 주의사항

본 문서는 리눅스 사용상의 간단한 팁, 힌트들을 모아 놓은 문서입니다. 문서내용중 어떤 부분들은 여러분의 리눅스 상에서 똑같이 작동하지 않을수도 있을것입니다. 그럴때는 해당 하우투를 읽어보세요 ;-)

14.3 저작권

본 문서는 GPL을 따릅니다.

14.4 도움주신 분들

이 문서에 직접,간접적으로 도움주신 모든 분들께 감사드립니다. 그리고 리눅스 한글화에 힘쓰시는 모든 분들, KLDP의 관리자 권순선님, 한글 도큐멘트 프로젝트에 공헌 하신 모든 분들, 마지막으로 기숙사 룸 메이트였던 명 수진 과 Ait chitt Yamna.


ID
Password
Join
Promptness is its own reward, if one lives by the clock instead of the sword.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-09-20 02:07:03
Processing time 0.0196 sec