미디어의 마운트 상태를 해제한 다음 배출하는 명령어이다. 리눅스 설치가 끝난후 CD가 자동으로 튀어나오는 것도 바로 이 명령을 사용한 것이다.

사용법 : eject [옵션] [장치] 
-h, --help : 간단한 사용법을 보여준다. 
-v, --verbose : 명령이 실행되는 동안 좀 더 자세한 설명을 보여준다. 
-d, --default : eject가 실행되는 기본 장치의 이름을 보여준다. 
-a, --auto on|1|off|0 : auto-eject 모드를 on/off 설정한다. 
-c, --changerslot <slot> : ATAPI/IDE 시디롬 체인저에서 시디 슬롯을 선택할 수 있다. 이는 리눅스 커널 2.0 이상에서 작동한다. 시디롬 드라이브가 작동하는 동안(데이터 시디가 마운트 되었거나, 음악 시디가 플레이되고 있는 중에는 쓰일 수 없다. 참고로 첫 번째 슬롯은 1이 아니라, 0이다. 
-t, --trayclose : 시디롬 트레이를 닫는 명령어이나, 모든 장치에 지원되는 것은 아니다. 
-x, --cdspeed <speed> : 시디롬 스피드를 선택하는 명령이다. speed는 만일 8배속이라면 8을 입력하나, 모든 장치에 지원되는 것은 아니다. 
-n, --noop : 실제 실행되는 것이 아니라, eject되는 장치를 보여준다. 
-r, -cdrom : 시디롬을 eject한다. 
-s, scsi : 스카시 장치를 eject한다. 
-f, --floppy : 플로피를 eject한다. 
-p, --proc : /etc/mtab 대신 /proc/mounts 파일을 이용한다. 
-V, --version : 버전 정보를 보여준다. 

eject는 시디롬, 플로피 디스크, 테이프, JAZ나 ZIP디스크 같은 장치를 명령어 제어로 제거할수 있다. 이는 멀티 디스크 시디롬 체인저나 auto-eject 를 지원하는 장치들을 제어할 수도 있으며, 몇 몇 시디롬 드라이브의 디스크 트레이를 닫을 수도 있다.
기본 장치인 시디롬 트레이가 배출된다.

# eject 

-t 옵션으로 시디롬 트레이를 한 번 넣어보자.

# eject -t 

-e 옵션으로 eject가 실행되는 기본 장치 이름을 살펴 볼 수 있다.

# eject -d 
eject : default device: cdrom' 
2005/06/21 20:20 2005/06/21 20:20
환경 변수를 보고 기본 환경 변수 값을 바꾸는 명령어이다.

사용법 : env [옵션] [변수=값...] [명령 [인수...]] 
-, -i, --ignore-environment : 현재 환경을 무시하고 지정한 변수=값을 따른다. 
-u, --unset name : 지정한 변수를 제거한다. 
--help : 사용법을 보여준다. 
--version : 버전 정보를 보여준다. 

env 명령은 사용자의 현재 환경을 보여주거나, 환경변수를 새로운 값으로 설정하고 변경된 환경을 보여 주는 명령어이다. 만일, 명령이 지정되었다면 이 명령은 변경된 환경에서 실행될 것이다.

# env 
PWD=/root 
HOSTNAME=web2 
LESSOPEN=|/usr/bin/lesspipe.sh %s 
USER=root 
-----------------중략---------------- 
MAIL=/var/spool/mail/root 
INPUTRC=/etc/inputrc 
BASH_ENV=/root/.bashrc 
LANG=ko_KR.eucKR 
LOGNAME=root 
SHLVL=1 
SHELL=/bin/bash 
USERNAME=root 
HISTSIZE=1000 
TERM=linux 
HOME=/root 
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin: 
/usr/local/sbin:/usr/bin/X11:/ 
usr/X11R6/bin:/root/bin 
JLESSCHARSET=ko 
_=/usr/bin/env 

[관련 명령어]
export 환경 변수를 확인/수정하는 명령어
2005/06/21 20:19 2005/06/21 20:19
라인 단위의 대화식 텍스트 에디터
ex는 라인 단위의 대화식 테스트 에디터로 지금은 따로 상용되지 않으나 vi 에디터에 내장되어 기존의 ex 에디터의 여러 기능을 vi를 통해 구현된다. 그러므로 ex 에디터의 기능은 vi에서 설명한다.
2005/06/21 20:19 2005/06/21 20:19
탭을 빈칸으로 만들어 주는 명령어

사용법 : expand [옵션][파일명...] 
-t, --tabs=NUMBER : 탭의 간격을 조절한다. 기본은 8칸으로 되어 있으나, 지정한 숫자에 따라 탭의 칸을 조정 가능하게 한다. 
--help : 사용법을 보여준다. 
--version : 버전정보를 보여준다. 

expand는 파일내의 탭을 적당한 공백의 수로 변환하는 역할을 한다. 예제로 간단히 살펴보자.
아래 내용을 가진 test파일이 있다. 탭으로 구분되어 있는 것은 3번째 줄의 1234와 56사이와 4번째 줄의 123사이와 456사이 그리고, 789사이에 있다.

# cat test 
123456789 
12 34 56789 
1234     56 789 
123      456     789 

이를 expand명령어로 탭 간격을 조절해 보자. 탭의 간격을 3칸으로 지정하였다.

# expand -t 3 test 
123456789 
12 34 56789 
1234   56 789 
123   456   789 
123456789 
12 34 56789 
1234            56 789 
123             456           789 
2005/06/21 20:18 2005/06/21 20:18
지정한 인수를 표현식으로 인식하는 명령어
셸 스크립트를 만들 때 참고할 만한 명령어이다. 자세한 사용법은 셸 스크립트에서 설명할 것이다.
예컨대 이 명령은 주어진 인수를 계산이 가능한 표현식으로 인식하여 계산이 가능하게 하는 명령이다. 간단한 예로, 셸 상에서 덧셈을 해 보자.

# expr 1+2 
3 

일반적으로 문자열로 인식해 버릴 내용을 계산이 가능한 식으로 인식하여 결과값을 돌려준다.
2005/06/21 20:17 2005/06/21 20:17
주로 셀 스크립트에서 사용하며 아무 것도 하지 않고 항상 실패 혹은 거짓을 반환한다.

사용법 : false, false {--help, --version} 
--help : 사용법을 출력한다. 
--version : 버전정보를 출력한다. 

자세한 사용법은 셀 스크립트에서 설명한다.
2005/06/21 20:16 2005/06/21 20:16
리눅스에서 플로피 디스크를 포맷하는 명령어이다.

사용법 : fdformat [-n] 장치이름 
-n : 포맷을 실행한 뒤, 디스크 표면 검사를 하지 않는다. 

리눅스에서 플로피 디스크를 가리키는 장치명은 /dev/fd0 /dev/fd1이다. 하지만 포맷을 하려면 용량을 지정해야 하는데, 만일 1.44MB의 플로피 디스크라면 /dev/fd0H1440로 장치명을 포맷해야 한다. 아래는 장치이름을 나열한 것이다. 현 시스템에 인식되어 있는 장치명을 살펴 보려면, 가장 쉽게 dmesg 명령으로 알아 볼 수 있다.

# dmesg | grep floppy 
Floppy drive(s): fd0 is 1.44M 

현재 시스템이 인식되어 있는 플로피 디스크 장치명은 fd0이므로 이를, 포맷해 보자.

# fdformat /dev/fd0 
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB. 
Formatting ... Done 
Verifying ... Problem reading cylinder 0, expected 18432, read 8192 

플로피 디스켓을 넣고 /dev/fd0를 포맷한다.
플로피 장치가 1.44M용이므로, /dev/fd0H1440을 지정하여도 된다.

# fdformat /dev/fd0H1440 
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB. 
Formatting ... Done 
Verifying ... Done 

# ls /dev/fd0* 명령으로 장치들을 살펴보면 용량에 따라 아래와 같은 장치 이름을 살펴 볼 수 있다. 이것들은 모두 플로피 디스크에 해당하며, 대부분 사용하는 것은 /dev/fd0H1440이다.

# ls /dev/fd0* 
/dev/fd0        /dev/fd0h1200  /dev/fd0h720   /dev/fd0u1743  /dev/fd0u3840 
/dev/fd0CompaQ  /dev/fd0h1440  /dev/fd0h880   /dev/fd0u1760  /dev/fd0u720 
/dev/fd0D360    /dev/fd0h1476  /dev/fd0u1040  /dev/fd0u1840  /dev/fd0u800 
/dev/fd0D720    /dev/fd0h1494  /dev/fd0u1120  /dev/fd0u1920  /dev/fd0u820 
/dev/fd0H1440   /dev/fd0h1660  /dev/fd0u1440  /dev/fd0u2880  /dev/fd0u830 
/dev/fd0H360    /dev/fd0h360   /dev/fd0u1660  /dev/fd0u3200 
/dev/fd0H720    /dev/fd0h410   /dev/fd0u1680  /dev/fd0u3520 
/dev/fd0d360    /dev/fd0h420   /dev/fd0u1722  /dev/fd0u360
2005/06/21 20:16 2005/06/21 20:16
파티션 설정 명령어

사용법 : fdisk[옵션] [장치이름] 
-v : 버전 정보를 보여준다. 
-l : 현재 시스템의 파티션 테이블을 보여준다. 
-s 파티션 : 도스파티션이 아닌 한, 파티션의 크기를 보여준다. 

리눅스를 설치할 때 파티션 설정은 보통 Disk Druid와 fdisk, cfdisk로 하게 된다.
Disk Druid의 경우 대부분 간단히 설정할 수 있으나 파티션에 관한 좀더 세부적인 설정을 할 때는 fdisk 를 이용하여 파티션 설정을 해야 한다.
먼저, 설치되어 있는 리눅스에서 /dev/hda 디바이스를 fdisk 명령으로 보도록 하자.
-l 옵션을 이용하면, 지정한 파티션의 정보를 볼 수 있다.

# fdisk -l /dev/sda 

Disk /dev/sda: 255 heads, 63 sectors, 2231 cylinders 
Units = cylinders of 16065 * 512 bytes 

   Device Boot    Start       End    Blocks   Id  System 
/dev/sda1   *         1        13    104391   83  Linux 
/dev/sda2            14       650   5116702+  83  Linux 
/dev/sda3           651       715    522112+  82  Linux swap 
/dev/sda4           716      2231  12177270    f  Win95 Ext'd (LBA) 
/dev/sda5           716      2231  12177238+  83  Linux 

-s 옵션으로 각각의 지정한 파티션의 크기를 살펴 볼 수 있다.

# fdisk -s /dev/hda 
14668416 

# fdisk -s /dev/hda1 
56196 

# fdisk -s /dev/hda2 
104422 

자, 그럼 직접 fdisk를 통해 /dev/hda 파티션을 설정할 사용법을 살펴 보도록하자.

# fdisk /dev/sda 

The number of cylinders for this disk is set to 2231. 
There is nothing wrong with that, but this is larger than 1024, 
and could in certain setups cause problems with: 
1) software that runs at boot time (e.g., old versions of LILO) 
2) booting and partitioning software from other OSs 
   (e.g., DOS FDISK, OS/2 FDISK) 

Command (m for help): 

m을 입력하면 사용법을 볼 수 있다.

Command (m for help): m 
Command action 
   a   toggle a bootable flag 
   b   edit bsd disklabel 
   c   toggle the dos compatibility flag 
   d   delete a partition 
   l   list known partition types 
   m   print this menu 
   n   add a new partition 
   o   create a new empty DOS partition table 
   p   print the partition table 
   q   quit without saving changes 
   s   create a new empty Sun disklabel 
   t   change a partition's system id 
   u   change display/entry units 
   v   verify the partition table 
   w   write table to disk and exit 
   x   extra functionality (experts only) 

Command (m for help): 

p는 현재 파티션 테이블을 볼 수 있다.

Command (m for help): p 

Disk /dev/sda: 255 heads, 63 sectors, 2231 cylinders 
Units = cylinders of 16065 * 512 bytes 

   Device Boot    Start       End    Blocks   Id  System 
/dev/sda1   *         1        13    104391   83  Linux 
/dev/sda2            14       650   5116702+  83  Linux 
/dev/sda3           651       715    522112+  82  Linux swap 
/dev/sda4           716      2231  12177270    f  Win95 Ext'd (LBA) 
/dev/sda5           716      2231  12177238+  83  Linux 

command(m for help:)에 입력 할 수 있는 명령어
a : 부팅 가능한 플래그로 변경
b : bad 디스크 레이블을 편집
c : 도스 호환 플래그로 변경
d : 파티션 삭제
l : 알려진 파티션 형태의 목록
m : 이 메뉴를 출력
n : 새로운 파티션 추가
o : 새로운 도스 파티션 테이블을 생성
p : 파티션 테이블을 출력
q : 변경을 저장하지 않고 종료
s : 새로운 Sun 디스크 레이블을 생성
t : 파티션의 시스템 id를 변경
u : 표시/엔트리 단위를 변경
v : 파티션 테이블을 점검
w : 디스크에 테이블을 기록하고 빠져나감
x : 다른 기능(숙력자만이 이용할 것)
파티션 타입 코드 및 종류

0  Empty           1c  Hidden Win95 FA 65  Novell Netware  bb  Boot Wizard hid 
 1  FAT12           1e  Hidden Win95 FA 70  DiskSecure Mult c1  DRDOS/sec (FAT- 
 2  XENIX root      24  NEC DOS         75  PC/IX           c4  DRDOS/sec (FAT- 
 3  XENIX usr       39  Plan 9          80  Old Minix       c6  DRDOS/sec (FAT- 
 4  FAT16 <32M      3c  PartitionMagic  81  Minix / old Lin c7  Syrinx          
 5  Extended        40  Venix 80286     82  Linux swap      da  Non-FS data    
 6  FAT16           41  PPC PReP Boot   83  Linux           db  CP/M / CTOS / . 
 7  HPFS/NTFS       42  SFS             84  OS/2 hidden C:  de  Dell Utility    
 8  AIX             4d  QNX4.x          85  Linux extended  df  BootIt          
 9  AIX bootable    4e  QNX4.x 2nd part 86  NTFS volume set e1  DOS access      
 a  OS/2 Boot Manag 4f  QNX4.x 3rd part 87  NTFS volume set e3  DOS R/O        
 b  Win95 FAT32     50  OnTrack DM      8e  Linux LVM       e4  SpeedStor      
 c  Win95 FAT32 (LB 51  OnTrack DM6 Aux 93  Amoeba          eb  BeOS fs        
 e  Win95 FAT16 (LB 52  CP/M            94  Amoeba BBT      ee  EFI GPT        
 f  Win95 Ext'd (LB 53  OnTrack DM6 Aux 9f  BSD/OS          ef  EFI (FAT-12/16/ 
10  OPUS            54  OnTrackDM6      a0  IBM Thinkpad hi f0  Linux/PA-RISC b 
11  Hidden FAT12    55  EZ-Drive        a5  FreeBSD         f1  SpeedStor      
12  Compaq diagnost 56  Golden Bow      a6  OpenBSD         f4  SpeedStor      
14  Hidden FAT16 <3 5c  Priam Edisk     a7  NeXTSTEP        f2  DOS secondary  
16  Hidden FAT16    61  SpeedStor       a9  NetBSD          fd  Linux raid auto 
17  Hidden HPFS/NTF 63  GNU HURD or Sys b7  BSDI fs         fe  LANstep        
18  AST SmartSleep  64  Novell Netware  b8  BSDI swap       ff  BBT            
1b  Hidden Win95 FA 

그려면, 자세한 fdisk 사용법을 실제 예를 들어 사용해보자. 20GB 하드디스크를 예로 하여 크게 여러가지 파티션 설정 형태가 있겠지만, 아래 2가지 겨우로 살펴보자.
A.윈도 6GB, 리눅스 6GB, 나머지 영역은 윈도 백업 영역으로 설정할 경우
1.윈도 상에서 fdisk를 입력하여 약 6GB 정도 설정 후 설치한다.
(dev/hda1에 6GB용량의 파티션 설정)
2.리눅스 설치 과정 중 파티션 설정에서 fdisk로 들어간다.
3.'P'를 입력하여 파티션 정보를 본다.
4.hda1을 제외한 모든 영역을 삭제한다.
5.새로운 파티션 생성후, 파티션 타입을 지정한다.
n -> p -> 2 -> -> +6000M
6./dev/hda3 영역에 스왑으로 128M를 생성한다.
n -> p -> 3 -> -> +128M -> t -> 82
7./dev/hda4 영역에 나머지 남은 디스크 용량을 모두 백영역으로 만든다.
n -> p -> 4 -> -> -> t -> c
8.파티션 설정 저장(w)후 리눅스설치한다.
B.20GB 하드디스크에 모두 리눅스를 설치할 경우
1.리눅스 설치 과정 중 파티션 설정에서 fdisk로 들어간다.
2.'p'를 입력하여 파티션 정보를 본 후 모두 삭제한다.
3./dev/hda1 영역에 스왑으로 128M를 생성한다.
n -> p -> 1 ->-> +128M -t -> 1 -> 82
4./dev/hda2 영역에 나머지 용량 모두를 리눅스 native 영역으로 생성한다.
n -> p -> 2 ->->
5.파티션 설정 저장(w)후 리눅스를 설치한다.

[관련 명령어]
cfdisk 커서 기반 메뉴의 파티션 설정 명령어
2005/06/21 20:14 2005/06/21 20:14
서버에서 메일을 검색하여 가져오는 유틸리티이다.

사용법 : fetchmail [옵션] [메일서버] 
-V --version : 버전 정보를 보여준다. 
-c --check : 실제로 메일을 가져오거나 삭제하지 않고 대기하는 상태 
-s --silent : 메시지를 보이지 않는다. 
-v --verbose : 진행상황을 자세히 보여준다. 
-u --username : 메일서버에 접속할 사용자 계정을 지정한다. 
-p --protocol : 프로토콜을 지정한다. 아래는 지정 가능한 프로토콜이다. 
AUTO, POP2, POP3, APOP, RPOP, KPOP, SDPS, IMAP, ETRN, ODMR 
-K --nokeep : 메일을 검색한 후 새로운 메시지를 서버상에서 삭제한다. 
-k --keep : 메일을 검색한 후 새로운 메시지를 서버상에서 저장한다. 

fetchmail은 POP2, POP3, IMAP2bis, IMAP4, IMAPrevl 같은 프로토콜을 통해 서버에서 메일을 가지고 오고, 메시지는 로컬에 있는 센드메일을 통해 25포트로 전달하게 된다.
먼저, 테스트를 위해 메일을 mail 명령을 통해 메시지를 보낸다.

# mail admin@linuroot.co.kr 
Subject : fetchmail testing 
test 

. 
Cc: 
# fetchmail -p pop3 -u admin -k mail.linuxroot.co.kr 
Enter password for admin@mail.linuxroot.co.kr 
fetchmail: No mail for admin at mail.linuxroot.co.kr 
You have new mail in /var/spool/mail/root 

보낸 메일을 로컬에 저장하기 위해 아래의 명령을 실행한다.
프로토콜을 POP3로 지정하며, 검색된 메일은 POP3서버에 저장해 둔다. 확인결과 새로운 메시지가 /var/spool/mail/root 파일로 저장이 된 것을 볼 수 있다.
2005/06/21 20:12 2005/06/21 20:12
파일의 종류를 파일 정보 데이터 파일에서 검색하여 반환한다.

사용법 : file [옵션] 파일 
-b : 지정한 파일명은 보여주지 않고, 파일의 유형만을 보여준다. 
-f : 파일목록 : 파일목록에서 지정한 파일들에 대해서 명령을 실행한다. 
-i : 보통의 보기 쉬운 것보다 MIME 타입을 보여준다. 
   (예를 들면, ASCII text를 text/plain; chatset-us-ascii 형태로 보여준다.) 
-m 매직파일 : 디폴트로 지정된 /etc/magic을 사용하지 않고, 매직파일을 지정한다. 
-L : 심볼릭 링크된 파일을 추적하여 시도한다. 
-v : 버전정보를 보여준다. 
-z : 압축된 파일에 대해서 명령을 시도한다 

file 명령어는 파일 종류를 구분짓는 유틸리티로 file 명령 뒤에 파일 이름을 입력하면 ascii나 text나 date같은 파일명의 종류를 알려 준다. /usr/share/magic 혹은 /usr/lib/magic이라는 파일에 여러 파일에 대한 정보를 가지고 있어 파일의 종류를 알 수 있다.
아래 예제는, test 파일에 대한 파일 유형을 알려 준다.

# file test 
test1: ASCII text 

-b 옵션을 사용하면 저장한 파일명은 제외하고 유형만을 볼 수 있다.

# file -b test 
ASCII text 

-i 옵션은 MIME 타입을 볼 수 있다.

# file -i test1 
file: Using regular magic file /usr/share/magic.mime' 
test1: text/plain; charset=us-ascii 
2005/06/21 20:11 2005/06/21 20:11
주어진 조건에 따라 디렉토리의 트리를 검색하여 해당되는 파일을 찾는 명령어이다.

사용법 : find [패스] [옵션] [작업] 
-name name : 지정된 이름의 파일을 찾는다. 
-user name : user 소유의 파일을 찾는다. 
-type [bcdfls] : 지정된 형식의 파일을 찾는다. 
 b 블록파일 
 c 문자 
 d 디렉토리 
 f 파일 
 l 링크파일 
 s 소켓 
-size [+/-]n[bckw] : 지정된 크기의 파일을 찾는다. 
 +n n보다 크다 
 -n n보다 작다 
 n n이다 
 b 512-byte 
 c byte 
 k kilobytes 
 w 2-byte 
-inum number : 지정한 inode 번호와 파일을 찾는다. 
-print : 표준출력으로 검색된 파일명을 출력한다. 
-exec command {} \; : 찾은 각 파일에 대해 지정된 명령을 실행한다. 
-ok command {} \; :실행여부를 사용자에게 확인한 후 명령을 실행한다. 

find 명령어는 복잡해 보이는 파일 시스템 구조를 갖는 리눅스에서 파일을 찾는 명령어이다. 실제로 find는 파일 검색보다 선택 조건에 일치하는 파일을 찾아서 명령을 실행하는 파일 시스템으로 사용된다.
기본적으로 이름으로 찾는 find 사용법을 알아보고 명령 행을 이용한 find 사용법을 알아 보자.
find는 검색할 경로를 미리 정의한 후 옵션과 사용법이 붙게 된다. root 디렉토리에 word.awk를 검색해보자. 이름을 기준으로 검색할 경우 -name 옵션을 사용해야 한다.

# find /root -name word.awk 
/root/word.awk 

exec command \; 는 find가 찾아낸 각각의 파일에 대해 command를 실행한다.
command는 \; 로 끝나야 한다.

A.현재 디렉토리에 있는 모든 파일명 나열하기

# find . -print 

B.현재 디렉토리에 있는 디렉토리 나열하기

# find . -type d -print 

C.현재 디렉토리에서 파일 이름에 공백 문자가 들어간 모든 파일을 삭제하기

# find . -name "* *" -exec rm -f {} \; 

D. 현재 디렉토리 파일들 중 파일이름에 정상적이지 않은 글자를 포함한 파일을 지우기

# for filename in * 
>do 
>badname=echo "$filename" | sed -n >/[\+\{\;\"\\\=\?~(\)\<\>\&\*\/\$]/p 
>rm $badname 2>/dev/null 
>done 



E.원하는 파일시스템 모두 복사하기


# mkdir /hdc1 
# mount /dev/hdc1 /hdc1 
# cd /home 
# find . -depth -print | cpio -pmdvl /hdcl 

F.지난 24시간 동한 변경된 모든 파일 목록을 changelist 파일에 만들기

# find / -mtime -1 \! -type d -print > chagelist 
2005/06/21 20:10 2005/06/21 20:10
사용자 정보를 찾아보는 명령어

사용법 : finger [-lmsp] [user...] [user@host...] 
-l : 멀티라인 형식으로 사용자 홈 디렉토리, 집 전화번호, 로그인 셀, 메일 상태, 홈디렉토리 파일 등과 함께 -s 옵션으로 보이는 정보를 보여 준다. 
-s : 사용자의 로그인 이름, 실제 이름, 터미널 이름, 상태, idle시간, 로그인 시간, 사무실 위치, 사무실 전화를 보여준다. 

finger는 특정 사용자 정보를 알려주는 기능을 한다. 이것은 편리한 기능을 제공하지만 악의적인 침입자에게는 유용한 정보가 될 수 있으므로, 되도록 finger설정은 하지 않는 것이 낫다. Redhat 7.2 기준으로 finger 설정은 /etc/xinetd.d/finger 파일에서한다.

service finger 
{ 
        disable = no 
        socket_type     = stream 
        wait            = no 
        user            = nobody 
        server          = /usr/sbin/in.fingerd 
} 

disable=no로 설정한 다음 xinetd 데몬을 재실행한다. /etc/xinetd.d/finger 파일을 수정했따면, 다음과 같이 xinetd 데몬을 다시 시작한다.

# /etc/rc.d/init.d/xinetd restart 
Stopping xinetd:                                           [  OK  ] 
Starting xinetd:                                           [  OK  ] 
2005/06/21 20:08 2005/06/21 20:08
시스템의 빈 메모리와 사용한 메모리의 양을 출력하는 명령어

사용법 : free [-b | -k | -m] [-o] [-s delay] [-t] [-V] 
-b : 메모리의 양을 바이트로 표시한다. 
-k : 킬로바이트 단위로 표시한다. 
-m : 메가바이트  단위로 표시한다. 
-t : 총계가 포함된 줄을 출력한다. 
-o : 버퍼에 조정된 줄의 출력을 비 활성화한다. 
-s : delay 초마다 계속해서 출력을 하도록 한다. 질세로 delay 에 어떤 부동 소수점 수도 사용할 수 있다. 

free 명령어는 현재의 메모리 사용량을 알아볼 수 있는데, 시스템이 비어있거나 사용된 물리적인 메모리와 스왑메모리의 전체 양을 보여준다. 또한 커널에 의해 사용되는 공유 메모리와 버퍼도 보여준다.

# free                    
             total       used       free     shared    buffers     cached 
Mem:        900844     807644      93200          0      79964     629520 
-/+ buffers/cache:      98160     802684 
Swap:       522104         88     522016 

free -s 초 옵션은 초 변화로 일어나는 메모리 사용 상황을 알아 볼 수 있다.

# free -s1 
             total       used       free     shared    buffers     cached 
Mem:        900844     807640      93204          0      79964     629520 
-/+ buffers/cache:      98156     802688 
Swap:       522104         88     522016 

             total       used       free     shared    buffers     cached 
Mem:        900844     807648      93196          0      79964     629520 
-/+ buffers/cache:      98164     802680 
Swap:       522104         88     522016 

             total       used       free     shared    buffers     cached 
Mem:        900844     807648      93196          0      79964     629520 
-/+ buffers/cache:      98164     802680 
Swap:       522104         88     522016 
2005/06/21 20:06 2005/06/21 20:06
파일 시스템을 점검하고 문제 있는 부분은 수리하는 명령어로, 부팅할 때 자동으로 파일 시스템을 점검한다.

사용법 : fsck [-AVRTNP] [-s] [-t파일시스템유형] [파일시스템옵션] 파일시스템 [...] 

       -A     /etc/fstab  화일에  표시된 모든 화일 시스템을 한 번 
              씩  모두  점검한다.   보통  /etc/rc  시스템  초기화 
              화일에서  각  시스템마다  일일이 명령을 내리지 않고 
              일괄적으로 점검할 때 사용된다. 

       -R     -A 플래그와  같이  사용될  때  루트  화일  시스템은 
              제외하도록    한다.    (이미   읽기-쓰기   가능으로 
              마운트되어 있는 경우) 

       -T     시작할 때 제목을 보여주지 않는다. 

       -N     실행하지는 말고 어떤 작업을 할 것인지만 보여준다. 

       -P     -A 플래그가 설정되어 있을  때  다른  화일  시스템과 
              루트 화일 시스템을 병렬처리하여 점검한다. 루트 화일 
              시스템에 에러가 있는  경우에는  e2fscsk  바이너리와 
              같은  것들이  깨져있을 수 있기 때문에 안전한 방법은 
              아니다. 루트 화일 시스템을 좀  더  작고  컴팩트하게 
              다시   파티션하길  원하지  않는  시스템  관리자들을 
              위해서만 제공되는 옵션이다. 

       -s     fsck 동작을 시리얼화한다. 대화형 모드에서 여러 화일 
              시스템을  점검할  때  유용하다.(  주의  : e2fsck 은 
              기본값으로 대화형으로 실행한다.  e2fsck 을 비대화형 
              모드로  실행하려면  -p  또는  -a 옵션을 주어 에러를 
              자동 치유하거나  -n  을  주어  고치지  않고  그대로 
              놔두도록 해야 한다.) 

       -V     실행되는  각  화일  시스템용 명령을 포함하여 자세한 
              출력을 수행한다. 

       -t 화일시스템유형 
              점검할 화일 시스템 유형을  지정한다.   -A  플래그가 
              설정되어  있는  경우  화일시스템유형  에  맞는 것만 
              점검한다.   화일시스템유형  앞에   no   를   붙이면 
              화일시스템유형 아닌 것만 점검한다. 

              보통  /etc/fstab  화일에 들어있는 화일시스템유형 을 
              따른다.  만약 해당 유형을 알아낼 수 없을 때는  fsck 
              는  -t  옵션에서 주어진 값을 사용한다.  주어진 값이 
              유효하지  않다면  현재로서는   기본값인   ext2   가 
              사용된다. 

       화일시스템옵션 
              fsck  에  의해 이해되지 않는 옵션 또는 -- 옵션 뒤에 
              오는 옵션은 각 화일 시스템 고유의  점검  프로그램의 
              옵션으로 취급한다. 

       현재  표준적인 화일 시스템 고유의 옵션은 변동 중이다. 비록 
       확실하게 보장할 수는 없지만 다음  옵션들은  대부분의  점검 
       프로그램에서 지원한다. 

       -a     물어봄  없이  자동으로 복구한다.( 주의하여 사용하기 
              바란다 ) e2fsck 은 -a  옵션을  단지  호환성을  위해 
              제공할  뿐이다.  이  옵션은  e2fsck의  -p  옵션으로 
              매핑된다. 

       -r     화일 시스템 복구시 질문을 하게끔 한다. 주의 :  여러 
              fsck  가  병렬모드로 작동하고 있을 때 사용하는 것은 
              좋지 않다.  e2fsck 의 기본 동작 방식이므로 주의하기 
              바란다. 이 옵션은 단지 호환성 때문에 제공될 뿐이다.

거의 모든 경우 리눅스 시스템은 부팅시 자동으로 파일 시스템을 체크하게 되는데, 이는 /etc/rc.d/rc.sysinit 파일에서 fsck 설정을 해 놓았기 때문이다. 그러므로 수동으로 fsck로 검사할 경우는 그렇게 많지 않다. 시스템을 시작할 때마다 파일시스템 검사를 하게 되고 파일시스템을 자동 복구하게 된다. 만일 다른 디렉토리가 참조하지 않는 활성 inode가 발견되면, /lost+found 디렉토리를 사용하고, 손상한 파일은 /lost+found 디렉토리에 있게 된다.
/dev/hdc1 파일시스템을 강제로 수행하고, 각 파일 시스템용 명령을 포함하여 자세한 출력을 보이도록 해 보자.

# fsck -f -V /dev/hdc1 
Parallelizing fsck version 1.23 (15-Aug-2001) 
e2fsck 1.23, 15-Aug-2001 for EXT2 FS 0.5b, 95/08/09 
Pass 1: Checking inodes, blocks, and sizes 
Pass 2: Checking directory structure 
Pass 3: Checking directory connectivity 
Pass 4: Checking reference counts 
Pass 5: Checking group summary information 

     5766 inodes used (0%) 
       107 non-contiguous inodes (1.9%) 
             # of inodes with ind/dind/tind blocks: 1696/155/0 
  1293868 blocks used (81%) 
           0 bad blocks 
           0 large files 
       4917 regular files 
        828 directories 
           0 character device files 
           0 block device files 
           0 fifos 
           0 links 
          12 symbolic links (12 fast symbolic links) 
           0 sockets 
-------------- 
         5757 files 

[관련 명령어]
ext2 파일시스템 점검. tsct -t ext 명령과 같다.
2005/06/21 20:05 2005/06/21 20:05
ftp 서버에 접속하기 위한 ftp클라이언트

사용법 : ftp [-v] [-d] [-i] [-n] [-g] [-k realm] [-f] [-x] [-u] [-t] [접속호스트명] 
-v : 데이터 전송 통계 및 서버의 반응을 모두 보여준다. 

최초의 ftp 클라이언트이며, 대부분의 리눅스 배보판에 들어있다.
접속 후 사용할 수 있는 명령어들이다.

ftp>
? 사용법 정보를 보여준다.
ascii mode : ASCII 와같다.
binary mode : binary 와 같다.
connect : 호스트 [포트] 지정한 호스트와 포트로 접속시도한다.
get 파일명 : 원격접속 호스트의 파일을 로컬 시스템에 파일 다운로드한다.
get 파일명 로컬 파일명 : 원격접속 호스트의 파일을 지정한 로컬파일명으로 다운로드한다.
get 파일명1 파일명2 파일명3...파일명N : 지정한 파일들을 다운로드한다.
mode 전송모드 : 전송모드(ASCII or binary)로 모드를 설정한다.
put 파일명 : 로컬의 파일을 원격접속 호스트에 업로드한다.
put 로컬파일명 원격파일명 : 로컬파일명을 원격접속 호스트에 지정한 원격 파일명으로 업로드한다.
put 파일명1 파일명2 파일명3...파일명N : 원격디렉토리 지정한 파일들을 지정한 원격 디렉토리에 업로드한다.
quit : ftp접속을 끝낸다.
ftp 서버 접속 방법
linux.com 호스트를 접근하는 방법은 ftp와 호스트네임을 연속해서 입력하는 방법과 ftp 명령으로 해서 open명령으로 호스트에 접속하는 방법이 있다.

# ftp linux.com 

또는 이렇게 사용할 수도 있다.

# ftp 
ftp> open linuix.com 
Connected to linux.com. 
220 ProFTPD 1.2.5rc1 Server ready. 
500 AUTH not understood. 
500 AUTH not understood. 
KERBEROS_V4 rejected as an authentication type 
Name (linux.com:root): 

admin 계정을 입력하고, 패스워드를 입력하여 접속을 한다.

# ftp linux.com 
Connected to linux.com. 
220 ProFTPD 1.2.5rc1 Server ready. 
500 AUTH not understood. 
500 AUTH not understood. 
KERBEROS_V4 rejected as an authentication type 
Name (linux.com:root): admin 
331 Password required for admin. 
Password: 
230 User admin logged in. 
Remote system type is UNIX. 
Using binary mode to transfer files. 
ftp> 

파일 전송 유형
ftp파일 전송 유형의 기본모드는 ascii로써 아스키 파일 전송에 사용된다. 바이너리 모드로 전환하려면, bin 명령을 입력한다.

ftp> bin 
200 Type set to I. 

ftp서버 목록 보기
서버의 목록을 보기 위해서는 ls 명령을 쓴다.
디렉토리 이동하기
cd 명령을 이용하면 디렉토리를 이동할 수 있다.
"250"로 시작하는 메시지는 서버에 의해 보내지는 정보 메시지이다.

ftp> cd Desktop 
250 CWD command successful. 

파일 받기와 보내기
받기는 get 서버 파일명, 보내기는 put로컬파일명을 입력한다. 만일 다중의 파일을 받거나 보내기 위해스는 mget, mput명령을 쓴다.
현재의 로컬 디렉토리를 변경하려면 !cd 명령을 쓰도록 한다.

[관련 명령어]
ncftp ftp 서버 접속 클라이언트 프로그램. 기본적으로 전화면 모드로 동작하며, 키 완성 기능을 사용할 수 있다.
2005/06/21 20:04 2005/06/21 20:04
각 class의 현재 유저 수를 보여준다.

사용법 : ftpcount [-V] 
-V : 저작권과 버전 정보를 출력한다. 

ftpcount 명령은 ftpaccess file에서 정의된 각 class에 대한 user의 수 또는 제한된 user의 현재 접속한 수와ftp 서버의 PID를 보여준다.

# ftpcount 
Master proftpd process 2594: 
Service class        -   1 user 
2005/06/21 20:02 2005/06/21 20:02
ftp에 접속해 있는 사람과 접속 주소를 확인한다.

사용법 : ftpwho [-V] 
-V : 저작권과 버전 정보를 출력한다. 

ftp 서버를 운영하거나 혹은 개인적으로 리눅스에서 ftp 서버를 오픈한 경우, 현재 시점에서 시스템에 접근한 ftp사용자를 확인할 경우가 있다. 이럴 경우 ftpwho 명령을 사용하면 간단하게 확인할 수 있다. 아래는 각 ftp user에 대한 현재의 프로세스 정보를 보여준다. 아래를 살펴보면, admin 계정이 접속해 있고, 127.0.0.1의 IP로부터 접속했다는 정보를 볼 수 있다

# ftpwho 
Master proftpd process 2594: 
2610       5m10s     proftpd:     admin - 127.0.0.1:   IDLE 
Service  Class                               - 1user 
2005/06/21 20:01 2005/06/21 20:01
보안을 위해 프로세스를 식별하고 통제한다.

사용법 : fuser [옵션] 

어떤 파일이나, 파일 집합, 디렉토리에 접근하고 있는 프로세스를 PID로 식별해 준다.
-k 옵션을 쓰면 해당 프로세스를 죽일 수 있다. 이 명령어는 시스템 보안 차원에서 아주 흥미로운 구현인데 주로 스크립트에서 쓰여 시스템 서비스에 대해 허가 받지 않은 사용자의 접근을 막는 용도로 쓰인다.
아래 예를 보도록 하자. 마운트 된 시디롬이 'Resource busy' 같은 에러 메세지로 umount 실패하는 경우가 있다. 이럴때 -k 옵션은 /mnt/cdrom 디렉토리 이하에 머무르는 해당 프로세스를 강제로 죽이는 기능을 한다.

# umount /mnt/cdrom 
umount: /mnt/cdrom : device is busy 

# fuser -km /mtn/cdrom 
2005/06/21 20:01 2005/06/21 20:01
게이트웨이를 설정하고 운영한다.

사용법 : gated [옵션] 
-c : 구문에 에러가 있는지 설정 파일을 분석하고, 오류가 없으면 /usr/tmp/gated_dump 파일에 내용을 저장한다. 
-C : 구문에 에러가 있는지 설정 파일을 분석한다. 
-f configfile : /etc/gated.conf 파일을 대신하여, 지정한 설정 파일로 대체한다. 
-n : 실제 커널 라우팅 테이블을 변경하지 않고, 테스트만 진행한다. 
-N : 데몬을 활성화하지 않는다. 
-t traceoption : gated 시작시 지정한 traceoption 옵션을 사용한다. 만일 지정하지 않으면, general으로 시작한다. 아래는 지정 가능한 traceoption들이다. 

 adv : 정책 블록 관리 
 all : normal, polocy. route, state, task, timer를 포함한다 
 general : normal과 route를 포함한다. 
 iflist : 커널 인터페이스 목록 
 normal : 표준 프로토콜 단계 
 parse : 문맥 분석 및 해석 
 policy : 들어오거나 내보낸 라우트가 적용되는 단계 
 route : 라우팅 테이블을 변경 
 state : 시스템 변경보기 
 task : 시스템 작업 및 인터페이스 
 timer : 타이머 사용법 

gated 는 RIP, RIPng, EGP, BGP, BGP4+, HELLO, IS-IS, ICMP, ICMPv6 및 SNMP 프로토콜에 대한 게이트웨이 라우팅 기능을 제공한다.
gated 설정파일은 /etc/gated.conf 파일이다.

[관련 명령어]
gdc gated의 설정 명령어
2005/06/21 20:00 2005/06/21 20:00
gated 관리를 위한 TCP/IP 명령어

사용법 : gdc [옵션] 명령 
-c coresize : 지정한 크기로 코어 덤프의 최대크기를 설정한다. 
-f filesize : 지정한 크기로 최대 파일 크기를 설정한다. 
-m datasize : 지정한 크기로 최대 데이터 세그먼트 크기를 설정한다. 
-n : 커널 포워딩 테이블을 변경하지 않는다. 
-q : 경고나 로그 에러를 표준출력으로 보여주지 않고, syslogd로 로그기록된다. 
-s : stacksize : 지정한 크기로 최대 스택 크기를 설정한다. 
-t seconds : 지정한 초로 종료 및 시작 시 완료되기를 기다리는 시간을 설정한다. 

gdc는 gated에 설정 관리가 가능하도록 한다. 아래는 gdc에서 사용하는 명령어들이다.
---------------------------------------------------------------------
backout : 이전파일인 /etc/gated.conf- 파일에서 /etc/gated.conf 파일로 저장하면서, 만일 /etc/gated.conf- 파일이 없거나 빈 파일이면 실행을 하지 않는다.
BACKOUT : /etc/gated.conf- 파일이 있거나 없거나 상관없이 /etc/gated.conf 파일로 저장한다.
checkconf : /etc/gated.conf 설정파일의 문법을 체크한다.
checknew : 새로운 파일인 /etc/gated.conf+의 문법을 체크한다.
COREDUMP : GATED의 덤프 코어 파일을 만든다.
creteconf : 새로운 /etc/gated.conf+의 빈 파일을 생성한다. 이는 소유자가 root, 파일 그룹이 gdmaint로 생성된다.
dump : gated에서 현재의 상태를 /usr/tmp/gated_dump에 덤프한다.
interface : 설정을 다시 읽어 들인다.
KILL : dated를 종료시킨다.
modeconf : 모든 설정 파일의 모드 644의 소유자 root, 그룹을 gdmaint로 설정한다.
newconf : /etc/gated.conf+파일을 /etc/gated.conf로 생성한다.
reconfig : 설정 파일을 다시 읽어들인다.
restart : gated를 중지 후 다시 시작한다.
rmcore : 코어파일을 삭제한다.
rmdump : 덤프파일을 삭제한다.
rmparse : 파서 에러 파일을 삭제한다.
running : gated가 현재 실행중이면, 상태 0으로 종료하고, 그렇지 않으면 0이 아닌 상태로 종료한다.
start : gated를 시작한다.
stop : gated를 가능하면 순차적으로 정지시킨다.
term : 순차적으로 종료시킨다.
toggletrace : gated 추적을 실행/정지 시킨다
version : 버전정보를 보여준다.
--------------------------------------------------------------------
gdc 명령은 gated 서버 데몬 설정을 위한 명령이다. 이는 서버를 구동 및 정지시키며, 구성 설정 파일의 유지 보수 및 구문을 점검하고, 수행 상태를 체크할 수 있다.
아래는 gated 서버를 위한 설정 파일인 /etc/gated.conf+를 생성하는 방법이다.

# gdc creteconf 
gdc: the "creatconf" command requires group gdmaint to exist 
Permission denied 

새로운 /etc/gated.conf+을 생성해보자. gdmaint 그룹이 없어서 생성이 되지않는다.

# vi /etc/group 
gdmaint:x:6000 
"/etc/group" 55L, 760C written 

/etc/group 파일을 열어, gdmaint 그룹을 추가하자.
다시 gdc createconf 명령으로 생성된 파일을 살펴 볼 수 있다.

# gdc createconf 
# ls -al /etc/gated.conf+ 
-rw-rw-r--    1 root    gdmaint     0   7월   6 20:22   /etc/gated.conf+ 

[관련 명령어]
gated 게이트웨이를 설정하고 운영하는 서버
2005/06/21 19:59 2005/06/21 19:59