본문 바로가기

StoreHouse/Server

RedHat 리눅스 스타트 팁

[ useradd로 사용자를 생성할때의 환경설정 ]


레드헷기반의 배포본에서 사용자를 추가하게 되면 기본적으로 /home 밑에 사용자의 홈디렉토리가 생기고, bash shell을 쓰게 된다. 만일 이를 바꾸고자 한다면 /etc/default/useradd 파일을 내용을 수정하면 된다.


/etc/default/useradd

# useradd defaults file

GROUP=100 : 기본 그룹ID

HOME=/home : 사용자의 홈 디렉토리가 놓여질 디렉토리

INACTIVE=-1 : password 가 만기된뒤 계정 사용이 불가능하게 되는 날수지정

0 인경우 password가 만기되자마자 계정 사용이 불가능하게 됨

-1 인경우 이 기능이 사용안됨

EXPIRE= : passwd 만기일수 지정

SHELL=/bin/bash : 사용자가 로그인할때 실행되는 프로그램 지정

SKEL=/etc/skel : 계정이 만들어진후, 사용자의 홈디렉토리에 복사될 파일을 포함한 디렉토리지정


위의 내용에서 관리자가 원하는 내용을 수정하면 수정 내용이 적용되어 계정이 추가된다.


[ 디렉토리 생성시 모드 설정 및 여러 단계 디렉토리 생성 ]


일반적을로 디렉토리를 만들때 mkdir을 사용하는데 이때 디렉토리의 파일 모드 설정이나 여러 단계의 디렉토리를 생성 해보자.


파일 모드 설정 옵션 ( -m )

생성 현 디렉토리 아래 설정 권한을 755 즉 rwxr-xr-x 로 tmp 생성시

$ mkdir -m 755 ./tmp 또는

$ mkdir -m u=rwx,go=rw ./tmp "," 앞을 띄우지 말 것

이와 같이 권한을 줄 수 있다.

( -m 옵션 없이 생성 할 경우 umask 값에 의해 만들어 진다.)


여러 단계 생성 옵션 ( -p )

먼저 현 디렉토리에 tmp1을 만들고 tmp1아래에 tmp2를 만들 경우

$ mkdir -p ./tmp1/tmp2

라고 한다. (이때 -p 옵션 없이 만들면 에러 발생)


[ 모든 사용자가 사용한 명령어 알아내기 ]


계정사용자들이 사용한 명령어를 알아내는 법

이것을 하기 위해선 psacct라는 패키지가 있어야 한다. 설치 되지 않은 경우 rpm이나 소스등을 직접 설치 해 주면 된다.(대부분 배포본에 기본적으로 설치 되어 있다)


1.더미 로그 파일 생성(데이타를 기록할 화일 생성)

$ touch /var/log/pacct


2.체크를 시작하게하는 명령어 실행

% /sbin/accton /var/log/pacct

참고) 부팅시 항상 체크를 하게하려면 레드햇경우) /etc/rc.d/rc.local 화일에 위의 명령어를 추가 한다.


3.사용자가 수행한 명령어 체크

% lastcomm 사용자계정

(이렇게 하면 사용한 명령어가 모두 나오게 된다)


위에 명령만 해두시면 모든 명령어가 계속 저장되어

나중에 로그 용량이 엄청 크지므로 용량 제한 법

% vi /etc/logrotate.conf 에 다음을 추가한다.


/var/log/pacct {

size=5M

rotate 4

postrotate

/sbin/accton

/sbin/accton /var/log/pacct

endscript }


위와 같이 추가해 주시면 더미 화일의 크기는 5메가로 제한 되어 제한된 크기의 데이타 만을 저장하게 된다.


[ 명령어 입력시 유용한 팁 ]


1. 명령어들을 입력시 1줄을 넘어가는 경우.

./configure --with-mysql=/usr/local/mysql --with-apach

e=../apache_2.9


이럴때는


./configure --with-mysql=/usr/local/mysql

--with-apache=../apache_2.9



2. 명령어들을 연속적으로 입력해서 순차적으로 실행시킬때.

date > date.txt;ls;pwd > pwd.txt

와 같이 명령어 사이에 ';'를 넣어준다.


3. 명령어들을 그룹으로 묶기.

(date;ls;pwd) > out.txt

결과는 다음과 같은 내용의 out.txt가 만들어 진다.


Fri Jan 7 14:45:30 KST 2000

test.txt

Mail

/home/sheeta


4. 명령어 대치.


'`'기호로 둘러싸인 명령어는 실행되어 결과값이 표준출력으로 출력된다.

다음과 같이 이용할수 있다.


$ echo 현재 시스템사용자 수는 `who|wc -l` 명입니다.

현재 시스템사용자 수는 2 명입니다.


[ 안쓰는 윈도우즈 키 활용하기 ]

윈도우즈에서 스타트키를 ESC키로 변환하여 vi 작업시 멀리 떨어진

ESC까지 갈 필요가 없게 할 수 있다.


X를 띄우고, 터미널에서

# xmodmap -e "keycode 115 = Escape" 라고 실행시켜보자.

이제부터는 윈도우즈의 스타트키가 ESC역할을 하게 된다.

참고로 오른쪽 윈도우즈 스타트키는 116, 메뉴키는 117번이다.


[ 명령어를 포함하는 패키지 검색 ]


rpm명령어로 패키지를 추가 삭제하다보면 어떤 명령어의 절대경로및 이름을 알고 있는데, 설치되어 있지 않다면 어느 패키지에 포함되어 있는 지 알아야 할 것이다. 그래야 그 패키지를 설치할 수 있으니까. 패키지명을 몰라서 고생한 경험이 있을 것이다. 다음 쉘 스크립트를 이용하면 완벽하지는 않지만 찾고자하는 명령어에 해당하는 줄을 포함하는 패키지를 찾아 볼 수 있을 것이다.


#!/bin/sh

RPMLIST=`ls -1`

echo ""$1"(이)라는 단어를 포함하고 있는 패키지를 찾습니다."

for i in $RPMLIST; do

rpm -qpl $i | grep -q $1 &&

echo "*** $i 에 있습니다. ***."

done


에디터로 rpm-find.sh 같은 파일명으로 저장한 후,

$ chmod 711 rpm-find.sh

처럼 해 주어 모든 사람이 실행할 수 있게 해 주면 준다.


사용법은 간단하다.


1. rpm 패키지들이 들어 있는 디렉토리로 이동한다.

2. /usr/local/bin(여러분이 원하는 디렉토리에 두면 된다.)

에 설치하였다면


$ /usr/local/bin/rpm-find.sh 찾고자하는단어


처럼 해 주면된다. 예를 들어 telnet이 어느 패키지에

포함되어 있는지 찾으려면


$ /usr/local/bin/rpm-find.sh telnet


화면에 "에 있습니다"라는 줄이 단 하나도 출력되지 않으면

찾지 못한 경우이다.


[ proftpd.conf 설정 ]


proftpd는 standalone, inetd 두가지 형태로 구동할수 있습니다.


요즘은 proftpd package가 core, inetd, standalone으로 나누어져 배포됩니다.

core는 proftpd를 구동하기 위한 binary가 들어 있으며, ServerType에 따라 inetd 혹은 standalone 중 하나를 설치합니다.

standalone의 경우 /etc/rc.d/init.d에 proftpd가 존재하여야 하며, rc0.d rc3.d rc5.d rc6.d 등에 S(start), K(kill) 형태로 link가 걸려 있어야 합니다.

inetd의 경우 /etc/inetd.conf에 ftp영역이 proftpd로 설정되어 있어야 합니다.


# proftpd.conf에서 알아두면 편리한 설정


DefaultRoot ~

(일반 사용자가 ftp로 접속할경우 자신의 home directory를 벗어나지

못하게 함.)


TimeoutLogin 120 (login 대기 시간: 초단위)

TimeoutIdle 7200 (무 반응 대기 시간: 초단위)

TimeoutNoTransfer 7200 (무 전송 시간: 초단위)


MaxClients 10 (최대 접속자 수)


MaxClientsPerHost 3 (하나의 host당 최대 접속자수)

MaxClientsPerHost의 경우 ftp를 통해 linux를 설치할 경우 설치하고자

하는 client 에서 동시에 3번 접속하므로, 유의 하시기 바랍니다.


# 일반 계정을 anonymous로 사용하기.


mp3라는 계정을 anonymous로 사용해 봅시다.


1. adduser mp3 로 mp3라는 user를 만듭니다.

2. vi /etc/passwd 로 mp3 user의 shell 부분(/bin/bash)을 /dev/null 로

바꾼다.

(물론 /etc/shells 에 /dev/null 이 있어야 한다.)

3. proftpd.conf에 설정한다.



AnonRequirePassword off

User mp3

Group mp3

RequireValidShell off





AllowAll








4. standalone 의 경우 /etc/rc.d/init.d/proftpd restart 를 inetd의

경우 killall -HUP inetd 를 실행하여 proftpd를 다시 구동한다.


[ lilo에 패스워드걸기 ]


슈퍼유저로 로긴한 후 vi나 기타 에디터로 /etc/lilo.conf를 수정하여 주면된다.

아래는 필자의 /etc/lilo.conf의 예이다.


boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

default=linux

password=mypasswd <---

image=/boot/vmlinuz-2.2.12-20pow

label=linux

initrd=/boot/initrd-2.2.12-20pow.img

read-only

root=/dev/hda2


other=/dev/hda1

label=dos


위에서 화살표로 표시한 부분을 보라. 패스워드는 대소문자를 구분하며 암호화되지 않은 패스워드를 적어 주면 된다. 따라서 /etc/lilo.conf를 슈퍼유저만이 읽을 수 있도록 하는 것이 좋다.

다음 처럼.

# chmod 400 /etc/lilo.conf

자, 이제 lilo를 다시 심으면 된다.

# /sbin/lilo


[ expect를 이용한 통신망 자동접속 ]


expect를 이용하면 새롬데이타맨과 같이 매번 로긴을 하지 않고 자동으로 접속을 할 수가 있다.

expect를 잘 이용하면 자동응답이라던지 원하는 게시물을 자동으로 읽어오는 것들도 가능하다. 하지만 이런것들은숙제로 남겨두고 간단하게 하이텔에 접속하는 방법을 알아보자.


다음의 내용을 타이핑 한 후에 hitel이라는 파일명으로 저장을 하자.


#!/usr/bin/expect

spawn telnet home.hitel.net

expect "이용자ID :"

send "hitel_id "

expect "비밀번호 :"

send "******** "

interact


spawn을 이용하여 하이텔로 텔넷 접속을 시도한다.

다음은 "이용자ID :"라는 문자열을 기다리다가 나타나면 hitel_id를 입력해 준다.

hitel_id는 자신의 하이텔 아이디를 써주면 된다.

비밀번호 부분도 마찬가지로 ********대신에 자신의 비밀번호를 적어주면 된다.

하지만 여러사람이 사용하는 컴퓨터라면 비밀번호에 관련된 2줄은 지워주는것이 보안상 좋다.

마지막줄의 interact는 다시 원래처럼 대화모드로 돌아오게끔 해준다.


위의 내용을 저장한 파일을 hitel이라는 이름으로 저장하고 실행가능하게하기 위해서 다음과 같이 모드를 변경하자

chmod 755 hitel

이제 ./hitel이라고만 입력을 하면 하이텔에 자동으로 접속하게 된다.


[ ztelnet사용시 rz,sz사용법 ]


ztelnet을 사용하여 천리안이나 하이텔같은 통신망에 접속할때 파일의 다운로드나 업로드시에는 다음과 같은 방법을 사용한다.

다운로드

화면이 정지되고 *B00000000000같은 rz request가 뜨면 컨트롤+] 키를 누른후 rz라고 치면된다.

업로드


역시 sz request 가 뜨면 컨트롤+] 키를 누른후에 sz 업로드할파일 을 치면된다.


[ 간단한 시스템 시간 설정방법 ]


데스크탑에서는 컴퓨터가 1990년으로 셋팅이 되어있어도 별 다른 문제가 없다. 하지만 서버에서는 커다란 문제가 발생한다. 이는 파일을 가공하고 정렬하고 네트웍으로 연결된 컴퓨터들에게 파일을 보내고 받고하는데서 심각한 문제를 야기시킨다.

실제로 데이터베이스에서는 시간설정을 잘못하면 파일이 업데이트 되지않는 문제가 발생할 수도 있고 cron같이 자동으로 작업을 수행할 때에도 문제가 발생한다.


가끔 시간이 틀려져 다시 설정할 일이 있을때를 위하여 타임서버라는 것을 사용하는데 타임서버는 정확한 시간을 제공한다. 그러면 이 타임서버로부터 시간을 받아와서 자신의 리눅스박스에 정확한 시간을 설정해보도록 하자.


리눅스에서는 rdate라는 유틸리키가 있는데 이것이 바로 타임서버로부터 시간을 가져오는 기능을 한다.


# rdate -s soback.kornet.nm.kr


이것은 soback.kornet.nm.kr이라는 곳으로부터 현재 시간을 받아오는 역할을 한다. -s 옵션은 타임서버로부터 받은시간을 현재 시간으로 저장하며 이 옵션을 사용하지 않으면 단지 시간만을 보여줄 뿐이다.


# hwclock --systohc

hwclock은 하드웨어의 시간을 설정하는 유틸리티이다.

--systohc는 하드웨어의 시간을 현재 시간으로 설정하는 옵션이다.


이와 같이 간단히 두 명령의 실행만으로 이제 여러분의 컴퓨터는 정확한 시간을 가질 수 있게 되었다.

물론 위의 명령은 시스템에 밀접한 부분이므로 root 권한으로 실행해야 한다.

가끔 시간이 틀려질 경우를 대비하여 위의 명령을 crontab에 넣어 한달에 한번쯤만 실행하도록 하면 거의 정확한 시간을 유지할 수가 있을 것이다.


[ 자동 마운트 (autofs) ]


리눅스에서는 하드디스크, CD-ROM, 플로피 같은 블록 디바이스 장치를 사용하기 위해서는 마운트라는 과정을 필요로 한다. 하드디스크의 경우 자주 제거및 추가를 하지 않기 때문에 마운트 지점을 미리 알려놓고 부팅시 자동으로 마운트 하도록 하지만(/etc/fstab에 등록) CD-ROM이나 플로피 혹은 네트워크 파일 시스템 처럼 제거 및 추가가 잦은 파일시스템의 경우 매번 마운트 및 해제를 하기가 귀찮을 수도 있다.


마운트를 사용해본 사용자는 한번쯤 자동으로 CD나 플로피를 마운트 할수 없을지 생각해봤을 것이다. 이러한 사용자는 autofs라는 유틸리티를 사용하면 된다.


먼저 자신의 시스템에 autofs가 설치 되어 있는지 보자. rpm을 사용하는 배포본은 다음과 같이 검사를 해보자.

# rpm -qa | grep autofs

만약 설치가 되어있지 않다면 국내 배포본 회사의 ftp사이트에서 autofs-*.i386.rpm 파일을 받아서 다음과 같이 설치를 한다.

# rpm -Uvh autofs-*.i386.rpm

autofs를 사용하기 위해서는 두가지 설정파일을 수정해야 한다.


먼저 /etc/auto.master라는 파일을 보자.

이 파일에 대한 메뉴얼은 # man auto.master 로 알 수 있다.


간략히 설명하면 auto.master는 총 3개의 필드로 나누어 지고 필드간 공백의 수는 정해지지 않았기 때문에 tab이나 스페이스로 임의로 맞출 수 있다.

'#'로 시작하는 줄은 주석으로 해석하지 않는다.


첫번째 필드는 마운트 시킬 지점(마운트 포인트)이고

두번째 필드는 maptype을 지정한다.

끝으로 세번째 필드는 해당 마운트 포인트에 대한 설정을 담당하는 파일의 이름(mapname)을 적는다.

mapname을 적지 않으면 기본 설정값으로 된다.


예를 들어

/mnt /etc/auto.mnt

라고 적으면 /etc/auto.mnt라는 파일을 참조해서 /mnt에 어떠한 것을

마운트 시킬지 결정한다.


다음으로 mapname을 설정하는 부분을 보자.

mapname을 위처럼 /etc/auto.mnt라고 가정하고 그 내용이 다음과 같다고 해보자.

cd -fstype=iso9660,ro :/dev/cdrom

위와 같은 경우 /dev/cdrom 장치를 /mnt/cd 에 마운트 시키게 된다.


/mnt가 아닌 misc에 만들고 싶으면, /etc/auto.master에서

/misc /etc/auto.misc처럼 해주면 된다.


자동마운트를 사용하기 위해서는 autofs를 시작해 주어야 한다.

# /etc/rc.d/init.d/autofs start


autofs를 부팅시 자동으로 실행시키려면


# ntsysv를 실행시킨 후

[*] autofs 부분을 체크해주면 된다.


자, 이제 CD를 드라이브에 넣고 마운트 명령 없이

# ls /mnt/cd

혹은

# cd /mnt/cd 라고 해보자.


자동으로 CD가 마운트 되고 목록을 보여 줄 것이다.


[ File 나누기 ]

File을 플로피 디스크로 카피할때 1.4메가가 넘는 경우가 있다. 이럴때는,


# split -b 1400k test.tar.gz


1.4 메가 이하의 화일들이 생성된다. 이때 생성된 파일들을 xaa,xab,xac라 하면

# cat xaa xab xac > test.tar.gz

다시 화일이 합쳐진다.


[ man page 를 텍스트문서로 변환하기 ]


우리가 흔히 사용하는 man 명령의 결과를 텍스트문서로 변환하는 경우가 있다.

리다이랙션으로 변환할 경우에는 man자체 문법때문에 보기가 불편하다. 이럴경우에는 다음과 같이 입력하면 된다.


# man 찾는단어 | col -b > 텍스트문서이름


[ ping 무시하기 ]


리눅스는 한 줄의 명령으로 ping에 반응하지 않도록 할 수 있다.


루트에서

# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all

하면 반응을 하지 않고 다시

# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all

하면 다시 반응 할 수 있다.


[ 간단한 로그아웃과 화면지우기 ]


일반적으로 한텀을 사용하다가 창을 닫을때나 원격접속한 상태를 끊을때는 주로 logout이나 exit라는 명령어를 사용한다. 하지만 이럴때 간단하게 ctrl_d를 눌러주면 된다.

또 화면을 지우는 명령어는 clear를 주로 사용하는데 대신에 ctrl_l을 눌러주면 한번에 지워진다.


[ 도스에서 작성한 텍스트의 ^M떼기. ]


먼저 vi로 원하는 문서를 연다.

vi test.txt

다음에는 명령어모드에서 다음과 같이 입력한다.

명령어 모드로 가기위해서는 Esc를 한번 눌러주고 콜론(:)을 찍으면 된다.

아래의 명령어 입력창으로 커서가 옮겨졌으면 다음과 같이 입력한다.

%s/^M//g

여기에서 주의할 것은 ^M을 누르는 방법인데 ^키를 누르고 M을 누르는 것이 아니라

ctrl_v를 누르고 나서 엔터를 치면 된다.

또는 ctrl_v를 누르고 ctrl_m을 누르면 된다.


[ 한텀에서 특수문자와 한자 입력하기. ]


의외로 한텀에서 특수문자와 한자를 입력하는 방법을 알지 못하는 사용자가 많다.

한텀에서는 특수문자와 한자를 입력할 수 있도록 지원하는데 단축키는

ctrl_F9를 사용한다.


여기에서 주의할 사항은 alt_c나 ctrl_F3를 눌러서 채팅창으로 전환된 상태에서는 특수문자나 한자를 입력할 수가 없다는 것이다. 그 이유는 특수문자나 한자가 채팅창에 나타나기 때문이다.

그러면 먼저 한자를 입력하는 방법을 살펴보자. 한자를 입력하는 방법은 단순한데 원하는 한글을 입력한후에 커서를 움직이지말고 그자리에서 ctal_F9를 누른다. 아직까지 한자사전은 지원하지 않고 단순히 한글자만 바꿀 수 있다. 여러글자를 바꾸고자 할때에는 한자씩 바꿔주면 된다.


특수문자는 衁(기역)에서 부터 졁(티읕)까지 정의가 되어 있다.

먼저 衁(기역)을 누른상태에서 ctrl_F9키를 눌러보자 그러면 채팅창에 여러가지 특수문자가 나타난다. 그후에 커서키를 움직여 원하는 글자가 보이면 그때 그 특수문자앞에 적힌 번호를 눌러주면 입력이 된다.

만약 衁(기역)에 원하는 특수기호가 없다면 다시 遁(니은)을 눌러서 찾아본다. 이렇게 모두 졁(티읕)까지 정의가 되어 있는데 자주 사용하는 것은 외워서 사용해야 한다는 불편한 점이 있다.


[ vi에서 들여쓰기와 내어쓰기. ]


기존의 코드를 가지고 들여쓰기를 한다던지 기타 텍스트 문서를 사용할때 들여쓰기를 하기가 쉽지 않다.

수십에서 수백줄에 이르는 라인에 일일이 탭을 끼워넣기란...

vi에서는 비주얼 모드라는 것을 제공하는데 이것은 아래아한글의 블럭설정 (F3이나 F4를 눌러서)이나 MS워드의 블럭설정(shift와 화살표)과 비슷하다.


라인 블록 : 입력모드가 아닌 편집모드(문자를 입력하다가 ESC를 누른상태) 에서 v를 누르면 설정된다.

그다음부터는 커서를 이용하여 원하는 라인까지 블럭을 설정하면 된다.

원하는 글자숫자만큼만 블럭으로 설정하기 위해서는 alt_v를 사용한다.


칼럼 블록 : 다른방법으로는 ctrl_v를 눌러서 설정하는 방법인데

이것은 아래아한글의 F4를 눌러서 블럭을 설정하는 것과 같은 방법이다.


아뭏든 들여쓰기나 내어쓰기를 하기위해서는 위의 방법중 아무방법이든 블럭설정을 하자.


들여쓰기를 하기위해서는 블럭이 설정된 상태에서 > 키를(shift와 .키를 동시에) 눌러주면 탭크기만큼 들여쓰기가 되고 < 키를(shift와 ,키를 동시에) 누르면 내어쓰기가 된다.

그러면 들여쓰기를 3번하고 싶다면 블럭을 설정한 다음에 3>를 누르면 된다

(숫자키 3을 누르고 > 키를 누른다.)

vi에서 숫자를 앞에 써주는 것은 반복을 의미한다. 9개의 라인을 한꺼번에 삭제하려면 9dd를 누르는것처럼...


[ bash에서 프롬프트 바꾸기 ]


[nobody@host ~]$

위에서 nobody는 사용자의 이름이고 host는 컴퓨터 이름이다. 그리고 $는 일반유저를 묵시적으로 나타낸다. (#은 루트를 의미한다) 그렇다면 리눅스에서 쉘이 로딩될때 참조하는 파일은?

당연히 .bashrc와 .bashrc_profile이다.

그리고 일반적으로 전 사용자에게 다 적용되는 파일은 /etc/bashrc파일이다.

그러면 /etc/bashrc파일을 살펴보도록 하자. 기본설정은 다음과 같다.

PS1="[u@h W]\$ "


PS1은 프롬프트로 쓸 환경변수이다. 이 환경변수에 원하는 설정을 지정해주면 된다.

위에서 u는 User를 의미하고, h는 호스트 네임을 의미한다.

다음 W는 현재의 디렉토리를 나타내주는데 대문자로 표기를 하면 현재의 패쓰만 나타내주고 (예: src/) 소문자로 표기를 하면 풀 패쓰를 나타내준다 (예: /usr/local/src/)


이 외에도 다음과 같은 유용한 옵션이 있다.

현재시간

d 현재날짜


줄바꿈(c언어에서와 같다)

# 명령어 일련번호

! 히스토리 일련번호


[ 간단하게 하드웨어 장치보기 명령어. ]


리눅스가 설치된 하드웨어의 장치 정보는 /proc에서 확인할 수 있다는 사실은 누구나 다 잘 알것이다.

하지만 매번 번번이

more /proc/ioports

more /proc/dma

more /proc/interrupts

라고 입력해서 서로를 비교해보는 것은 불편하다.

노턴같은 유틸리티에서처럼 한번에 시스템 장치 정보를 보여주는 명령어는 없을까?


리눅스에서는 lsdev라는 명령어를 제공한다. 사용법은 단순하다.

단지 lsdev라고 입력만 하면 된다.

다음에 그 예를 보여주고 있다.


[nobody@host~]$ lsdev


Device DMA IRQ I/O Ports

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

cascade 4 2

dma 0080-008f

dma1 0000-001f

dma2 00c0-00df

eth0 9 de00-de7f

fpu 13 00f0-00ff

ide0 14 01f0-01f7 03f6-03f6 ffa0-ffa7

ide1 15 0170-0177 0376-0376 ffa8-ffaf

keyboard 1 0060-006f

Mouse 12

MPU-401 0330-0333

pic1 0020-003f

pic2 00a0-00bf

rtc 8 0070-007f

serial 02f8-02ff 03f8-03ff

soundblaster 5 0220-022f

SoundBlaster16 5

SoundBlaster8 1

timer 0 0040-005f

vga+ 03c0-03df

Yamaha 0388-038b


[ 한텀에서 단축키 재정의 하기 ]


KDE사용자의 경우에는 한텀 채팅창으로 가는 단축키가 Ctrl_F3이기 때문에

KDE 가상 윈도우의 그것과 충돌한다. 당연히 KDE 가상윈도우로 옮겨가고 채팅창으로는 옮겨갈 수 없다.

그리고 한텀의 채팅창은 윈도우용 통신에뮬레이터 대부분의 alt_c 키와는 달라서 불편한 점이 많다.

그러면 한텀의 채팅창 단축키를 alt_c나 다른 나만의 키를 재정의 해보자.


한텀의 리소스 파일은 다음의 디렉토리에 위치한다.

물론, 이 디렉토리에는 한텀 이외에도 여러 파일이 존재한다.


/usr/X11R6/lib/X11/app-defaults/Hanterm (H가 대문자)


여기에서 다음의 부분을 찾아보자.


Ctrl ~Shift ~Meta F3: toggle-chat()


Ctrl ~Shift ~Meta F9: hanja-input()


Ctrl ~Shift ~Meta space: hanja-input()


Ctrl ~Shift ~Meta F7: code-input()


Ctrl ~Shift ~Meta F2: change-code()


~Ctrl Shift ~Meta space: toggle-hangul()



위에서 첫번째 줄이 바로 ctrl_F3이 정의 된 부분이다. ~(tilt mark)는 제외를 의미한다.

즉 위에서는 ctrl키와 함께 F3을 누르라는 뜻이 되는 것이다. 만약에 ctrl_alt_F3을 채팅창 단축키로 사용하고자 하는 사람은 다음과 같이 해주면 될것이다.


Ctrl ~Shift Meta F3: toggle-chat()


여기에서 Meta키는 유닉스키보드에 달려있는 키의 이름으로 PC에서는 alt키를 의미한다.

그러면 원래하기로 했던 alt_c로 바꿔보자. 다음과 같다.

~Ctrl ~Shift Meta c: toggle-chat()


이제 채팅창 토글 단축키뿐만이 아니라 한자입력 단축키라던지 세벌식 전환 단축키를 변환시키는 것도 전혀 어려운 것이 아니다. 그리고 저장을 해보면 파일이 읽기전용이라 저장이 안되는데 :wq!라고 입력하면 저장이 된다(커멘드 모드에서) 만약에 위의 내용을 직접 바꿀 수 있는 일반유저라면 자신의 홈디렉토리의 .Xdefaults파일에서 해당부분을 적어주어도 된다. 물론 자기계정에서만....


[ 로그 아웃후에도 명령을 진행 시키기 ]


텔넷으로 접속하여 오랜 작업을 수행을 시켜야 하는데 로그아웃을 하고 나와야 하는 경우 로그아웃을 하게 되면 작업 중인 일들이 중지를 하게 된다. 그러나 로그아웃 후에도 작업을 실행을 시켜 놓고 작업을 마치게 되면

그에 관한 결과 파일을 어떤 화일에 출력을 시켜 주는 방법이 있다.

명령을 nohup 과 같이 실행을 하는 것이다. 즉 사용법은

# nohup command -arg &


예를 들어 로그 아웃후에도 "test.txt" 라는 화일을 찾고 싶으면

# nohup find / -name "test.txt" &


이와 같이 실행을 시켜 놓으면 그에 대한 결과를 즉 stdout과 stderr 로 출력 되는

결과는 명령을 실행한 디렉토리에 nohup.out 이라는 화일에 기록 되어지는 것이다