지정한 파일의 형태와 상세한 정보를 보여주는 명령어이다

사용법 : namei [옵션] 경로이름 [경로이름...] 
x : 마운트 된 파일시스템의 경로에 대해서는 'd'대신 'D'를 표시한다. 
-m: rwxrx-rx의 형태와 같이 퍼미션을 보여 준다. 

namei 명령은 절대 경로로 지정한 파일이나 디렉토리의 이름을 지정한다. 결과로서는 절대경로인 / 디렉토리부터 하위 디렉토리까지의 경로 디렉토리를 하나 하나 보여주고, 지정된 파일의 형태가 심볼릭 파일인지, 블록 장치인지 일반 파일인지의 정보를 보여준다.
출력되는 줄의 첫 부분에 이 파일의 형태를 알리는 문자를 표시하는데, 그것은 다음과 같다.
f: = 입력된 경로이름
d = 경로
l = 심볼릭 링크 (링크 대상이 된 파일은 다음에 들여쓰기로 보여준다.)
s = 소켓
b = 블럭 장치
c = 캐릭터 장치
- = 일반 파일
= 알수 없는 파일
httpd.conf 파일을 한 번 살펴보자. 입력된 경로이름이 f: 다음에 나타나 있고, d로 해서 하위의 /, etc, httpd.conf가 디렉토리임을 알려준다. httpd.conf는 - 로 해서 일반파일임을 알 수 있다.

# namei /etc/httpd/conf/httpd.conf 
f: /etc/httpd/conf/httpd.conf 
 d / 
 d etc 
 d httpd 
 d conf 
 - httpd.conf 

-m 옵션으로 각각 해당되는 디렉토리나 파일의 퍼미션도 함께 볼 수 있다.

# namei -m /etc/httpd/conf/httpd.conf 
f: /etc/httpd/conf/httpd.conf 
 drwx-----x / 
 drwx-----x etc 
 drwxr-xr-x httpd 
 drwxr-xr-x conf 
 -rw-r--r-- httpd.conf 

[관련 명령어]
ls 디렉토리의 내용을 보여주는 명령어
stat 파일이나 파일시스템의 상태를 보여주는 명령어
2005/06/17 15:42 2005/06/17 15:42
현재 네트워크의 연결 내역과 사용되는 포트 등을 한눈에 확인하는 명령어이다.

사용법 : netstat [옵션] 
-a, --all : 모든 소켓의 상태를 보여준다. 
-c, --continuous : 매 초 마다 정보를 갱신하여 계속적으로 보여준다. 
-i, --interface : 시스템의 네트워크 인터페이스 장치 정보를 보여준다. 
-n, --numeric : 로컬 주소와 나가는 주소를 도메인 형태가 아닌 IP 주소 형태로 된 네트워크 주소를 보여준다. 
-o, --timers : 네트워킹 타이머와 관련된 정보를 추가적으로 보여준다. 
-p, --program : 각 소켓에 포함된 프로그램의 PID와 이름을 보여준다. 
-r, --route : 커널 라우팅 테이블을 보여준다. 
-s, --statistics : 각 UDP, TCP, ICMP, IP프로토콜의 주요 통계를 보여준다. 
-t, --tcp : TCP 소켓만 보여준다. 
-u, --udp : UDP 소켓만 보여준다. 
-V, --version : 버전정보를 보여준다. 
-h, --help : 도움말을 보여준다. 

netstat는 명령은 시스템에 연결된 네트워크가 관련하여 활성화된 정보를 상세하게 살펴볼 수 있다. 예제를 통애 각각을 살펴 보도록 하자.
netstat -nr 옵션은 라우팅 테이블을 볼 수 있다. 이는 route명령과 동일한 기능을 한다.
다음은 각각의 필드 내용이다.
-----------------------------------------------------
Gateway : 라우팅 항목에서의 게이트웨이
Genmask : 라우팅 항목의 넷마스크
Flags : 라우팅 경로에 관한 여러 플래그를 표시
Flags : U인터페이스가 up인상태
H : 라우팅 경로를 통해 호스트로의 연결
G : 게이트웨이의 라우트
D : 라우트가 재지정되어 동적으로 생성
M : 라우팅 경로가 ICMP 리다이렉트 메시지를 통해 수정되었을 경우
MSS : 최대 세그먼트 크기(Maximum Segment Size)
Window : 원격에서 한 번에 보내는 데이터의 수신량
irtt : initial round trip time으로, 0은 초기 설정값을 사용한다는 의미
iface : 네트워크 인터페이스
-----------------------------------------------------
netstat -i 옵션은 네트워크 인터페이스 장치 각각의 네트워크 상황 및 통계를 보여준다.

# netstat -i 
Kernel Interface table 
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR   TX-OK TX-ERR TX-DRP TX-OVR Flg 
eth0   1500   029954950      7      0      021418507      0      0      0 BMNRU 
eth1   1500   0 1063722      0      0      0 1342932      0      0      0 BMU 
lo    16436   0      80      0      0      0      80      0      0      0 LRU 

eth0, eth1, lo 각 인터페이스의 MTU(Maximum Transfer Unit)값과 송수신 패킷의 에러나 오버런 등을 살펴 볼 수 있다.
다음은 각각의 필드 내용이다.
-----------------------------------------------------
Iface : 네트워크 인터페이스
MTU : 최대 전송 단위 (Maxium Transmission Unit)
Met : 메트릭값
RX-OK/RX-ERR : 패킷 수신 /패킷 수신 에러
RX-DRP/RX-OVR : 패킷 수신/패킷 수신 오버런
TX-OK/TX-ERP : 패킷 송신/패킷 송신 에러
TX-DRP/TX-OVR : 패킷 송신 손실/패킷 송신 오버런
-----------------------------------------------------
netstat -ta 옵션은 TCP 소켓과 관련된 모든 서버의 목록을 보여주게 된다.

# netstat -ta 

netstat -anp 옵션은 흔히 네트워크 연결 상태를 살펴보는 데 많이 이용한다.

# netstat -anp | more 
Active Internet connections (servers and established) 
Proto Recv-Q Send-Q Local Address           Foreign Address         State        
PID/Program name    
tcp        0      0 0.0.0.0:199             0.0.0.0:*               LISTEN      
657/snmpd            
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      
780/mysqld          
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      
29022/xinetd        
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN 

Program name에 대한 각각의 State가 LISTEN이면 이 시스템에서 서비스 되고 있는 네트워크 서비스로 볼 수 있다. 여기에서는 lpd, mysqld, xinetd 데몬의 State 상태가 LISTEN으로 서비스 상태이며, 각각의 서비스 포트는 Send-Q 필드의 값인 515, 3306, 110과 같다.
2005/06/17 15:41 2005/06/17 15:41
자신이 소속된 그룹을 새 그룹으로 바꾸는 명령어이다.

사용법 : newgrp [그룹]

newgrp 명령은 현재 세션 사용자 그룹을 변경할 수 있다. 새로운 파일을 사용자의 그룹이 아닌 다른 그룹으로 만들고 싶은 경우 파일 생성 후 chown으로 사용하고자 하는 그룹을 지정하여야 하지만 newgrp을 사용하면 변경된 그룹 속성으로 파일이 생성된다.
newgrp에서 지정하는 그룹은 현재 존재하는 그룹 이름이나 GID이어야 한다. 현재 존재하는 그룹 이름이나 GID는 /etc/group 파일에서 살펴 볼 수 있다.
touch 명령으로 파일을 생성한 경우 소유자의 기본 그룹대로 파일의 그룹이 정해진다.
newgrptest1 파일을 touch 명령으로 생성해 보자.

# touch newgrptest1 

newgrptest1 파일의 소유자 root에 root그룹으로 생성 되었다.

newgrp 명령으로 현재 사용자 그룹을 admin으로 변경한 다음, 다시 파일을 생성해 보자.

# newgrp admin 
# tocuh newgrptest2 

현재 사용자의 그룹이 admin으로 변경되었으므로 새로 만든 파일의 그룹 또한 admin 그룹에 속하게 된다.
2005/06/17 15:39 2005/06/17 15:39
파일을 이용하여 사용자를 추가하거나 사용자 정보를 갱신하는 명령어

사용법 : newusers 파일 

newusers는 시스템 명령어로서 /etc/passwd파일과 같은 포맷의 파일로부터 사용자를 추가하거나 사용자 정보를 업데이트 한다. 하지만 pwconv 명령으로 /etc/shadow 파일이 생성 되었다면 이 명령은 수행되지 않는다. 현재 사용중인 거의 모든 시스템은 보안을 위해 shadow 파일을 사용하므로 newusers는 거의 이용되지 않는다.
2005/06/17 15:38 2005/06/17 15:38
스켈줄링 우선권을 변경하여 프로그램이 작동할 때 할당되는 순위를 변경한다.

사용법 : nice [옵션] [명령어 [인수] ... ] 
-n 조정수치, -조정수치, --adjustment=조정수치 : 
   명령의 우선권에 10 대신 조정수치를 더한다. 
--help : 사용법을 보여준다. 
--version : 버전정보를 보여준다. 

nice 명령으로 프로그램의 우선권을 변경할 수 있는데, 만약 아무런 인수도 주어지지 않으면, 상복받은 현재의 스케줄링 우선권을 출력한다. 인수가 있다면 조정된 스케줄링을 먼저 실행한다. 조정수치가 생략되면 명령의 우선권은 10으로 실행하며, nice에 의해 조정될 수 있는 범위는 -20 (가장 높은 우선권)에서 19(가장 낮은 우선권)까지이다. 참고로 수퍼 유저만이 음의 조정수치를 부여할 수 있다.
nice에서 프로그램 실행 시 우선 순위 변경을 지정하지만, renice는 실행된 프로세스가 가지게 될 우선순위를 지정한다. nice는 양수값에는 -를 음수값에는 --를 사용하지만, renice는 양수값에는 -를 사용하지 않는다.
vi를 백 그라운드 프로세스로 두 개 정도 실행해 보자.

# vi & 
# vi & 

ps aux 명령으로 vi의 프로세스 ID를 알아보자.

# ps aux | grep vi 
root      9871  0.0  0.4  4980 2184 pts/1    T    17:38   0:00 vim 
root      9872  0.0  0.4  4984 2184 pts/1    T    17:38   0:00 vim 

그럼 renice 명령으로 이 각각의 프로그램에 우선권을 변경해 보자.
renice -3 명령으로 9871 프로세스에 우선 순위 -3을 부여하였다.

# renice -3 9871 
9871: old priority 0, new priority -3 

renice -2 명령으로 9872 프로세스에 우선 순위 -2을 부여하였다.

# renice -2 9872 
9872: old priority 0, new priority -2 

이 우선 순위를 다시 6의 우선 순위로 변경도 가능하다.

# renice 6 9872 
9872: old priority -2, new priority 6 

ps l 9871 9872으로 우선 순위를 한 번 확인해 보자. 각각 -3과 6의 우선 순위를 가지고 있다.

# ps l 9871 9872 
  F   UID   PID  PPID PRI  NI   VSZ  RSS WCHAN  STAT TTY        TIME COMMAND 
100     0  9871  3806   9  -3  4980 2184 do_sig T<   pts/1      0:00 vim 
100     0  9872  3806  11   6  4984 2184 do_sig TN   pts/1      0:00 vimㅌ 

nice 명령은 실행시 우선 순위를 지정할 수 있다.
7 명령으로 7의 우선순위를 부여하였다

# nice -7 vi & 

그럼 방금 실행한 vi의 PID를 확인해 보자.

# ps aux |grep vi 
root      9871  0.0  0.4  4980 2184 pts/1    T<   17:38   0:00 vim 
root      9872  0.0  0.4  4984 2184 pts/1    TN   17:38   0:00 vim 
root      9900  0.1  0.1  2104  872 pts/1    TN   17:47   0:00 vi 
root      9902  0.0  0.1  1768  596 pts/1    S    17:47   0:00 grep vi 

ps l 명령으로 nice가 7이 부여된 것을 볼 수 있다.

# ps l 9900 
  F   UID   PID  PPID PRI  NI   VSZ  RSS WCHAN  STAT TTY        TIME COMMAND 
100     0  9900  3806  16   7  2104  872 do_sig TN   pts/1      0:00 vi
2005/06/17 15:37 2005/06/17 15:37
텍스트 파일의 각 줄에 번호를 붙이는 명령어

사용법 : nl [옵션] [파일] 
-b, --body-numbering=STYLE : 지정한 style을 이용한다. 사용 가능한 STYLE은 아래 설명에 있다. 
-d, --selection-delimiter=CC : 지정한 CC를 논리 페이지의 구분으로 한다. 
   기본은 \: 이다. 
-f, --footer-numbering=STYLE : 지정한 STYLE을 번호를 매길 논리 페이지 꼬리 표제 행으로 선택한다. 기본 값은 n이다. 
-h, --header-numbering=STYLE : 지정한 STYLE을 번호를 매길 논리 페이지 헤더 행으로 선택한다. 기본값은 n이다. 
-i, --page-increment=num : 지정한 num 만큼 논리 페이지 행 번호를 늘린다. 
-l, --join-blank-lines=num : 지정한 num 값을 공백 행수로 하여 번호를 매긴다. 
  -2 라면 매 2번째 공백 행의 번호를 매기게 된다. 
-n, --number-format=FORMAT : 지정한 FORMAT으로  행 번호 지정 형식으로 사용한다. 사용 가능한 FORMAT은 아래 설명에 있다. 
-p, --no-number : 논리 페이지 분리 문자에서 번호 매김을 재 시작하지 않는다. 
-s, --number-separator=string : 지정한 string으로 텍스트를 행 번호와 분리한다. 
-v, --first-page=num : 지정한 num 값으로 첫 번째 논리 페이지 행 번호를 설정한다. 
-w, --number-width=num : 지정한 num 값으로 행에 있는 문자의 갯수로 사용한다. 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다.

nl 명령은 지정한 파일을 읽어, 파일의 행 번호를 자동으로 매겨 표준 출력으로 보여주는 명령어이다. 이와 같은 기능으로 cat -b 명령이 있다.

아래는 지정이 가능한 STYLE 유형들이다.
a : 모든 라인에 행 번호를 출력한다.
t : 빈 공란은 제외한 행 번호를 출력한다.
n : 행 번호를 출력하지 않는다.
PREGEXP : 정규 표현식에 맞는 라인만 행 번호를 출력한다.

아래는 지정 가능한 FORMAT 유형들이다.
ln : 0을 제외한 좌측 맨 끝에 행 번호를 출력한다.
rn : 0을 제외한 우측 맨 끝에 행 번호를 출력한다.
rz : 0을 포함한 우측 맨 끝에 행 번호를 출력한다.
2005/06/17 15:34 2005/06/17 15:34
로그아웃을 한 동안에도 실행중인 명령을 정지하지 않고 수행하는 명령어

사용법 : nohup 명령 [인수...] 

대용량의 프로그램이나 고화질의 동영상 등을 다운로드 받을 때, 집에 갈 시간은 다 되었는데 아직도 다 받아 지려면 두세 시간은 더 기다려야 한다고 생각해 보자. 혹은 겨우 코딩을 마치고 컴파일을 시작했는데, 눈 좀 붙이고 싶어도 컴파일 하는 데 두세 시간은 걸린다고 생각해 보자. 답답하지 않을 수 없는 상황일 것이다. nohup은 이럴 때 사용하는 명령이다.

# nohup find / -name *.c & > result & 

nohup은 명령에 대하여 Hangup 신호를 무시하면서, 우선권을 5 만큼 증가시켜 로그아웃 후에도 계속 백그라운드로 싱행하게 한다.
로그오프한 후 백그라운드에서 명령을 수행하려면 다음과 같이 입력한다.
fine 같은 명령은 / 디렉토리부터 찾게 되면 상당한 시간이 걸릴 수 있다. nohup 명령으로 이를 로그아웃 이후에도 실행하도록 할 수 있다.
2005/06/17 15:33 2005/06/17 15:33
도메인 네임 서버에 질의하여 결과값을 돌려받는 명령어이다.

사용법 : nslookup [-옵션...] [host_to_find | -서버] 

nslookup은 네임서버 설정을 점검하는 좋은 명령어다. /etc/resolv.conf에 지정되어 있는 네임서버를 기본값으로 인식하여 쿼리를 보낸다.
네임 서버에 대한 자세한 설명은 데몬 설명 부분을 참고 하자.

# cat /etc/resolv.conf 
nameserver 61.77.63.1 
nameserver 168.126.63.1 

noninteractive 모드로 찾고자 하는 호스트의 address를 쿼리를 할 수 있다. 만일 아래와 같은 에러 메시지가 나온다면 제대로된 네임서버 설정이 제대로 안된 결과이므로, 관련 설정을 살펴보아야 한다.

# nslookup linux.net 
** server can't find linuxroot.co.kr: NXDOMAIN 

아래와 같이, Name은 linux.net로 Address는 61.77.63.1로 /etc/resolv.conf의 내용과 동일하게 나오므로 네임서버의 설정이 이상 없음을 알 수 있다.

# nslookup linux.net 
Note:  nslookup is deprecated and may be removed from future releases. 
Consider using the `dig' or `host' programs instead.  Run nslookup with 
the `-sil[ent]' option to prevent this message from appearing. 
Server:         61.77.63.1 
Address:        61.77.63.1#53 

Name:   linux.net 
Address: 207.36.86.73 

interactiv 모드로 DNS 레코드 유형에 대해 자세한 쿼리를 할 수 있다. 이는, nslookup 명령 후 나타나는 ">" 입력 부분에 네임서버의 쿼리를 위한 레코드를 set type형태로 지정하여, 자세한 정보를 볼 수 있다.
먼저 set type=SOA 모드로 linux.net에 쿼리를 해 보자. 이를 통해 네임서버의 포워드 존 파일의 SOA 레코드 값들을 살펴 볼 수 있다.

# nslookup 
Note:  nslookup is deprecated and may be removed from future releases. 
Consider using the `dig' or `host' programs instead.  Run nslookup with 
the `-sil[ent]' option to prevent this message from appearing. 
> set type=type 
unknown query type: type 
> linux.net 
Server:         61.77.63.1 
Address:        61.77.63.1#53 

Non-authoritative answer: 
Name:   linux.net 
Address: 207.36.86.73 

Name:   realname 
Address: 211.106.67.221 
> set type=SOA 
> linux.net 
Server:         61.77.63.1 
Address:        61.77.63.1#53 

linux.net 
        origin = ns1.primarydns.com 
        mail addr = hostmaster.primarydns.com 
        serial = 200404060 
        refresh = 10800 
        retry = 3600 
        expire = 21600 
        minimum = 3600 



set type=MX 모드로 MX레코드를 쿼리해 보자.


> linux.net 
Server:         61.77.63.1 
Address:        61.77.63.1#53 

linux.net       mail exchanger = 0 sitemail.everyone.net. 
> 

type ANY 옵션으로 주어진 호스트명과 관련된 모든 리소스 레코드를 볼 수 있다.
관련 type 값은 다음과 같다.

> set type=ANY 
> linux.net 
Server:         61.77.63.1 
Address:        61.77.63.1#53 

Non-authoritative answer: 
linux.net       nameserver = ns1.primarydns.com. 
linux.net       nameserver = ns2.primarydns.com. 
Name:   linux.net 
Address: 207.36.86.73 
linux.net 
        origin = ns1.primarydns.com 
        mail addr = hostmaster.primarydns.com 
        serial = 200404060 
        refresh = 10800 
        retry = 3600 
        expire = 21600 
        minimum = 3600 
linux.net       mail exchanger = 0 sitemail.everyone.net. 

Authoritative answers can be found from: 
linux.net       nameserver = ns1.primarydns.com. 
linux.net       nameserver = ns2.primarydns.com. 
ns1.primarydns.com      internet address = 216.219.239.7 
ns2.primarydns.com      internet address = 216.219.239.8 
sitemail.everyone.net   internet address = 216.200.145.35 

참고로 set type에 지정 가능한 관련 type 값을 살펴보자.
A : 호스트 어드레스
ANY : 대부분 관련된 정보
CNAME : 알리아스와 관련된 CNAME(Canonical name) 레코드 정보
HINFO : 호스트의 CPU와 운영체제를 지정하는 HINFO 레코드 정보
MD : MD(Mail Destination)레코드 정보
MG : MG(Mail group member)레코드 정보
MINFO : 메일박스나 메일리스트 관련인 MINFO(Mailbox or mail list information)레코드 정보
MR : MR(Mail rename)레코드 정보
MX : MX(Mail exchanger)레코드 정보
NS : NS(Nameserver)레코드 정보
PTR : 호스트 네임 지정 PTR 레코드 정보
SOA : SOA(Domain start-of-authortiy)레코드 정보
UINFO : UINFO(User information)레코드 정보
2005/06/17 15:32 2005/06/17 15:32
파일의 내용을 8진수 또는 다른 형식으로 덤프하여 보여준다.

사용법 : od [옵션] [FILE]... 
-a : 바이트를 문자로 표시한다. 
-b : 바이트를 부호 없는 8진수로 표시한다. 
-c : 바이트를 아스키문자 혹은 이스케이프 문자를 사용하여 표시한다. 
-d : 2바이트를 부호없는 (unsigned)십진수로 표시한다. 
-f : 4바이트를 부동소수점으로 표시한다. 
-h : 2바이트를 16진수로 표시한다. 
-i : 2바이트를 10진수로 표시한다. 
-l : 4바이트를 10진수로 표시한다. 
-o : 2바이트를 8진수로 표시한다. 
-x : 2바이트를 16진수로 표시한다. 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

파일을 원하는 형식으로 보여준다.
2005/06/17 15:29 2005/06/17 15:29
사용자 패스워드를 변경하는 명령어

사용법 : passwd [옵션] [사용자] 
-l : 지정한 사용자에게 락을 걸어 더 이상 접근하지 못하게 한다. 
-u : -l 옵션으로 락이 걸린 사용자에게 락을 풀어 준다. 
-d : 사용자의 패스워드를 삭제한다. 
-S : 지정한 사용자의 패스워드 암호화 정보를 보여준다. 

passwd 명령은 사용자의 패스워드를 변경한다. 시스템 관리에서 패스워드 보안에 매우 중요하다. 주기적으로 passwd 명령을 사용하여 패스워드를 변경함으로써 보안의 위험을 최소화할 수 있다. 또한 root는 자신뿐만 아니라 일반 사용자의 패스워드도 임의로 변경할 수 있다.
한 가지 유의할 것은 useradd 명령으로 사용자를 추가한 후 반드시 passwd 명령으로 패스워드를 생성해야 한다. 그렇지 않은 경우, 추가된 사용자는 로그인을 할 수 없다. 현재 root로 로그인하였으므로, 수퍼 유저의 패스워드를 변경하게 된다.

# passwd 
New password: 
Retype new password: 
password: all authentication tokens updated successfully 

수퍼유저는 사용자의 패스워드를 변경할 수도 있다.
passwd admin 명령으로 admin의 새로운 패스워드를 변경하여 보자.

# passwd admin 
New password: 
Retype new password: 
password: all authentication tokens updated successfully 

passwd 명령과 밀접한 관련이 있는 /etc/passwd의 형식을 한번 살펴 보자.
/etc/passwd은 username:password:uid:gid:gecos:homedir:shell의 형태로 되어 있다.

각필드는 다음과 같다.
------------------------------------------------------
username : 고유한 계정을 구별하는 사용자 아이디
password : 사용자의 패스워드가 암호화된 형태로, 사용자가 읽을 수 있다.
uid : 사용자 ID로써 계정을 구별하는 값이다.
gid : 그룹 ID로써 /etc/group과 관련된다.
gecos : 사용자의 실제이름, 주소, 전화번호 등의 정보가 있다.
homedir : 사용자의 홈 디렉토리
shell : 사용자가 로그인할 때의 셀
-------------------------------------------------------
2005/06/17 15:29 2005/06/17 15:29
하나 이상의 파일에서 행을 합치는 명령어

사용법 : paste [옵션] 파일... 
-d, --delimiters=char : 지정한 char로 칼럼 지시자를 설정한다. 
-s, --serial : 하나의 파일이 가로 일렬로 해서 합치게 한다. 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

paste 명령은 지정된 파일들의 해당 행을 합쳐 하나의 표준출력으로 보여주는 명령어이다.
2005/06/17 15:27 2005/06/17 15:27
파일 이름이 유효하며 다른 시스템으로 이식성이 있는지를 점검하는 명령어

사용법 : pathchk [옵션] 파일이름 
-p, --portability : 현재 파일 시스템에서 길이 점검을 하는 것이 아니라 다른 시스템으로의 이식 가능성을 고려하여 POSIX.1 최소규격에 맞는지 점검한다. 

pathchk 명령어는 파일명이 유효하며 이식성이 있는지 점검하는 명령어로 조건이 만족하는 경우는 다음과 같다.
. 파일 이름에 속한 모든 디렉토리에 검색(실행) 허가권을 갖고 있다.
. 파일 이름의 길이가 파일 시스템이 지원하는 최대 파일 길이를 넘지 않는다.
. 존재하는 디렉토리이름에 대한 파일명의 각 요소 길이가 파일 이름 부분에 대한 파일 시스템의 최대 길이를 넘지 않는다.

종료 상태는 다음과 같다.
. 0 : 모든 파일 이름이 검사내용에 만족할 때
. 1 : 그 외.
p 옵션을 이용하면 검색되는 파일이 POSIX 최소 규정에 맞는지 확인해 볼 수 있다.
2005/06/17 15:27 2005/06/17 15:27
실행중인 프로그램의 프로세스 ID를 찾는 명령어

사용법 : pidof [옵션] 프로그램 
-s : 지정한 프로그램 PID가 여러 개 있을 경우 하나만 보여준다. 
-x : 스크립트와 함께 실행 중인 프로그램이면 그 쉘의 id도 함께 보여준다. 
-o pids : 찾고자 하는 프로그램 이름 중 pids로 지정된 PID만 제외하고 나머지를 보여준다. 

pidof 명령은 프로그램의 프로세스 ID를 찾는다.
이것은 프로세스를 만든 명령어는 알지만 해당 PID를 모를 경우 매우 유용하게 사용 할 수있다.
2005/06/17 15:22 2005/06/17 15:22
ICMP ECHO_REQUEST 패킷을 네트워크 호스트에 전송하여 네트워크 연결성을 확인하는 명령어이다

사용법 : ping [옵션] host 
-b : 브로드캐스트 주소로 ping을 보낸다. 
-c count : 지정한 count 숫자만큼  패킷을 보낸 후 끝낸다. 
-f : ping Flooding 패킷을 보낼수 있다. 초기 유닉스 시스템의 Dos Ping공격으로 이용 되었다. 
-i wait : 지정한 wait 간격으로 패킷을 보낸다. 
-I interface_address : 발신지 주소의 인터페이스 주소를 지정한다. 
-l prelaod : 정상적인 모드에서 ping을 보내기 전에, 가능한 빨리 지정한 preload수만큼 미리 패킷을 보낸다. 
-n : ping을 보내는 대상의 패킷이 돌아오는 호스트이름을 IP 주소형태로 보여준다. 
-p pattern : 송신할 패킷을 채우기 위해 16 pad'' 바이트까지 지정한다. 이는 네트워크의 데이터 관련 문제를 진단하는 데 유용하다. 예를 들어 -p ff는 모두 1로 패킷을 채운다. 
-q : ping 패킷의 반응 상황을 보여주지 않고, 통계만 보여준다. 
-r : 라우팅 테이블을 이용하지 않고, 직접적으로 연결된 호스트에 패킷을 보낸다. 
-s packetsize : 지정한 패킷 사이즈 크기만큼의 패킷을 보낸다. 기본값은 56이며, 최대값은 65507 이다. 
-v : ECHO_RESPONSE와 함께 수신된 ICMP 패킷의 상세 정보를 보여준다. 
-V : 버전정보를 보여준다. 

ping은 네트워크에 ICMP 패킷을 보내 호스트의 연결성을 분석하는 명령어이다.
네트워크에 연결된 하나의 호스트가 다른 호스트에 ICMP 패킷을 보내게 되면, 패킷은 대상 호스트에 도착한 시간을 기록한 후 다시 패킷을 보낸 호스트로 돌아오게 된다.
이 두 호스트간에 오고 간 패킷의 왕복 시간을 계산하여, 네트워크 호스트의 연결성이나 호스트의 동작 유무를 알 수 있다. 만일 응답이 없다면, 패킷을 보낸 호스트의 연결이나 동작에 이상이 발생한 것으로 판단 할 수 있다.
2005/06/17 15:19 2005/06/17 15:19
텍스트 파일을 인쇄할 수 있는 표준 출력으로 변환하는 명령어

사용법 : pr [파일] 
-num_cols, --columns=num=num_cols : 지정한 num_cols 값만큼 칼럼의 열의 값으로 설정한다. 기본값은 1이다. 
-a, --across : 중복되는 열을 수직으로 채우지 않고, 지정하는 across 값만큼 수평으로 먼저 채운다. 
-c, --show-control-chars : 프린트 시 보이지 않는 문자들을 프린트 가능한 문자로 변환한다. 
-d, --double-space : 공백을 더블 스페이스로 출력한다. 
-D, --date-format=FORMAT : 지정한 FORMAT으로 헤더의 날짜로 사용한다. 
-e[char[width]], --expand-tabs[=char[width]] : 탭을 공백문자로 변환한다. 
 만일 char를 지정하였다면, 지정한 char를 탭 문자로 한다.(기본 탭문자). 만일 width값을 지정한다면 지정한 값을 탭 문자 크기로 설정한다. (기본값 8) 
-F, -f, --form-feed : 새로운 페이지에 출력하기 위한 개행 문자 대신 용지 공급 문자(form feed)를 사용한다. 
-h header, --header=header : 지정한 header로 헤더 문자열을 설정한다. 
-i[char[width]], --output-tabs[=char[width]] : 공백을 탭으로 바꾼다. 
 만일 char를 지정하였다면, 지정한 char를 탭 문자로 한다.(기본 탭문자). 만일 width 값을 지정한다면 지정한 값을 탭 문자 크기로 설정한다. (기본값 8) 
-J, --join-lines : 모든 줄을 합친다. -W 옵션을 무시한다. 
-l page_length, --length=page_length : 페이지 길이를 지정한 page_length 값으로 설정한다. 기본값은 66행이다. 
-m, --merge : 모든 파일을 칼럼 당 하나의 파일로 보여준다. 
-n[delimiter[digits], --number-lines[=delimiter[gigits] : 행 번호를 매긴다. 
 만일 delimiter가 지정된다면 구분자를 지정된 값으로 설정한다. (기본값은 탭). 
 만일 width 값이 지정된다면 지정된 자리수를 기준으로 행 번호를 매긴다 (기본값은 5) 
-o width, --indent=width : 지정한 width 값으로 각 행을 들여쓰기 한다.(기본값은 0) 
-r, --no-file-warning : 입력된 파일을 열 수 없더라도 경고 메시지를 보이지 않는다. 
-s[delimiter], --separator[=delimiter] : delimiter로 지정된 단일 문자로 열을 구분한다. (기본값은 탭) 
-t, --omit-header : 페이지 헤더와 꼬리 표제를 생략한다. 
-T, --show-nonprinting : -t 옵션과 비슷하나, 용지 공급 문자(form feed)까지 제거한다. 
-v, --show-nonprinting : 프린팅되지 않는 문자를 프린팅 기능 문자로 변환한다. 
-w page_width, --width=page_width : 지정한 page_width 값으로 페이지 행을 설정한다. (기본값은 72) 
-W page_width, --page-width=page_width : 지정한 page_width 값으로 페이지 행 설정을 영구히 바꾼다. (기본값은 72) 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

pr 명령어는 텍스트 파일을 프린트가 가능한 형태로 페이지를 나눈다. 여기에는 페이지 번호, 날짜, 시간 및 파일 이름을 가진 헤더가 포함된다.
아래 예제와 같이 pr 명령으로 /etc/sendmail.cf 파일을 프린트가 가능한 형태로 변경해 보자. 굵게 표시된 내용처럼 헤더 부분에 프린트 날짜와 텍스트 파일명, 페이지 번호를 볼수있다.

# pr /etc/sendmail.cf | more 


2004-02-10 12:36                 /etc/sendmail.cf                 Page 1 


# 
# Copyright (c) 1998-2001 Sendmail, Inc. and its suppliers. 
#       All rights reserved. 
# Copyright (c) 1983, 1995 Eric P. Allman.  All rights reserved. 
# Copyright (c) 1988, 1993 
#       The Regents of the University of California.  All rights reserved. 
#

pr 파일명은 화면에 내용을 보여주므로 파이프로 lpr 명령을 사용하여 직접 프린트를 실행한다.

# pr test.txt | lpr 

-h 옵션은 text.txt에 제목을 지정하여 프린팅이 가능하게 한다.

# pr -h "TEST PAGES" test.txt | lpr 

하나 이상의 파일을 하나의 종이에 프린팅이 가능하다.

# pr -m -h "TEST PAGES" test.txt tex2.txt | lp 
2005/06/17 15:17 2005/06/17 15:17
특정 계정으로 도착하는 메일을 다른 사람에게 넘겨 주는 메일 앨리어스 설정 내용을 확인하는 명령어이다.

사용법 : praliases [옵션] 
-C file : 지정한 파일에서 메일 설정파일을 읽는다. 기본값은 /etc/sendmail.cf이다. 
-f file : 지정한 file에서 메일 앨리어스 파일을 읽는다. 기본값은 /etc/aliases이다. 

메일서버로 가장 많이 사용하는 것은 센드메일 서버이다. 이는 인터넷 전자 메일의 표준 규약인 SMTP(Simple Mail Transfer Protocol)를 통해 메일 서비스를 한다. 메일 서비스중 메일 앨리어스 기능은 메일 사용자의 별명이라고 생각하면 된다. 만일, 한 메일 사용자가 admin계정과 webmaster계전 webmin 계정 등등 여러 가지를 관리한다면, 각각 메일 사용자를 생성하는 것보다 각각을 하나의 계정으로 앨리어스 시키는 것이 훨씬 낫다. 이런 앨리어스 된 내용을 볼 수 있는 것이 praliases 명령어이다.
아래 목록과 같이 /etc/aliases 파일은 메일 앨리어스를 위한 설정 파일이다. 여기에서는 postmaster, daemon, adm 등등이 계정으로 오는 메일을 모두 root 계정에서 받아 볼 수 읶게 하였다.

# praliases 
postmaster:root 
daemon:root 
adm:root 
lp:root 
shutdown:root 
operator:root 
ftp:root 
apache:root 
2005/06/17 15:15 2005/06/17 15:15
환경 변수의 값을 보여주는 명령어

사용법 : printv [이름]

printenv 명령은 환경변수들의 값을 보여준다. 이름을 지정하면 지정한 환경변수의 내용만을 보여주며, 지정하지 않으면 모든 환경변수의 값을 보여준다.

# printenv 
2005/06/17 13:15 2005/06/17 13:15
프로세스의 현재 상태를 보여주는 명령어이다.

사용법 : ps [옵션] 
전체적인 프로세스와 관련된 옵션 
-A : 모든 프로세스를 보여준다. 
-N : -A 옵션과 비슷하나, ps 명령을 위해 실행한 ps 프로세스만 제외하여 보여준다. (실행을 취소한다) 
-a : 세션 리더 및 터미널과 관련되지 않은 프로세스를 제외한 모든 프로세스를 보여준다. 
-d : 세션 리더를 제외한 모든 프로세스를 보여준다. 
-e : 커널 프로세스를 제외한 모든 프로세스를 보여준다. 
T : 현 터미널에서의 모든 프로세스를 보여준다. 
a : 한 터미널의 사용자 고유 프로세스를 보여준다. 
r : 현재 실행중인 프로세스를 보여준다. 
x : 터미널 없는 프로세스를 보여준다. 
--deselect : -N 옵션과 같다. 

특정 프로세스를 지정(선택)하여 지정한 목록만 보여주는 옵션 
-C : 지정한 명령어 이름에 관련된 정보를 보여준다. 
-G : 지정한 RGID에 관련된 정보를 보여준다. (이름도 지원) 
-U : 지정한 RUD에 관련된 정보를 보여준다. (이름도 지원) 
-g : 지정한 세션 리더 혹은 그룹 이름에 관련된 정보를 보여준다. 
-p : PID를 선택한다. 
-s : 세션에 속한 프로세스를 선택한다. 
-t : tty를 선택한다. 
-u : 사용자 ID를 지정한다 (이름도 지원) 
U : 지정한 사용자의 프로세스를 보여준다. 
p : 프로세스 ID를 선택한다. 
t : tty를 선택한다. 
--Group : 실제 그룹이름이나 ID를 선택한다. 
--User : 실제 사용자이름이나 ID를 선택한다. 
--group : 유효 그룹이름이나 ID를 선택한다. 
--pid : 프로세스 ID를 선택한다. 
--sid : 세션 ID를 선택한다. 
--tty : 터미널을 선택한다. 
--user : 유효 사용자이름이나 ID를 선택한다. 
-123 : --sid의 의미이다. 
123 : --pid의 의미이다. 

결과로써 보여지는 필드를 선택(제어)하는 옵션 
-0 : PID, TTY, STAT, TIME, COMMAND 등의 필드 목록을 보여준다. 
-c : PID, CLS, PRI, TTY ,TIME, CMD 등의 필드 목록을 보여준다. 
-f : UID, PID, PPID, C, STIME, TTY, TIME, CMD 등의 필드목록으로, CMD필드의 전체 명령어 형태를 보여준다. 
-j : PID, PGID, SID, TTY, TIME, CMD등의 필드 목록을 보여준다. 
-l : F, S, UID, PID, PPID, C, PRI, NI, ADDR, SZ, WCHAN, TTY, TIME, CMD등의 필드 목록으로, 상세한 정보를 보여준다. 
-o : 사용자 지정 형식 
-y : -l 이나 l 옵션과 함께 쓰여, ADDR 필드를 RSS필드로 보여준다. 
0 : PID, TTY, STAT, IME COMMAND 등의 필드 목록을 보여준다. 
X : PID, STACKP, ESP, EIP TMOUT, ALARM, STAT, TTY, TIME, COMMAND등의 필드 목록으로 구 리눅스 I386 레지스터 형식을 보여준다. 
j : PPID, PID, PGID, SID, TTY, TPGID, STAT, UID, TIME, COMMAND 등의 필드 목록으로 작업 제어에 관련되 형식을 보여준다. 
l : F, S, UID, PID, PPID, C, PRI, NI, ADDR, SZ, PSS, WCHAN, TTY, TIME, CMD등의 필드 목록으로, -l 옵션에 PSS 필드를 추가하여 보여준다. 
o : 사용자 지정 형식 
s : UID, PID, PENDING, BLOCKED, IGNORED, CAUGHT, STAT, TTY, TIME, COMMAND등의 필드 목록을 보여준다. 
u : USER, RID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND등의 필드 목록을 보여준다. 
v : PID, TTY, STAT, TIME, MAJFL, TRS, DRS, RSS, %MEM, COMMAND 등의 필드 목록을 보여준다. 
--format : 사용자 지정 형식 

결과로써 보여지는 필드의 내용을 변경하는 옵션 
-H : 프로세스를 계층으로 보여준다. 
-m : 쓰레드를 보여준다. 
-n : 지정한 시스템 이름 리스트 파일을 사용한다. 
-w : 필드의 너비에 맞추어 짤린 내용을 내용에 맞추어 보다 자세하게 보여준다. 
C : raw CPU 시간을 이용한다. 
N : 지정한 시스템 이름 리스트 파일을 이용한다. 
O : 정렬 순서 지정하기 위한 옵션으로 O[+|-]K[,+|-]K[,...]]의 형식으로 정력 방식을 지정한다. 여기에서 올 수 있는 k는 사용법에서 설명한다. +는 오름차순 정렬이며, -는 내림차순 정렬이다. 
S : 죽은 자식 프로세스 데이터를 포함한다. 
c : 시스템 내부에 보관된 간단한 명령 이름을 보여준다. 
e : 명령에 대한 매개 변수와 함께 환경변수도 보여준다. 
f : 아스키 아트로 프로세스 트리를 보여준다. 
h : 헤더 라인을 보여주지 않는다. 
m : 모든 쓰레드를 보여준다. 
n : WCHAN 과 USER 필드를 숫자 값으로 보여준다. 
w : 필드의 너비에 맞추어 짤린 내용을 내용에 맞추어 보다 자세하게 보여준다. 
--cols : 스크린의 너비를 설정한다. 
--columns : 스크린의 너비를 설정한다. 
--cumulative : 죽은 자식 프로세스 데이터를 포함한다. 
--forest : 아스키 아트의 프로세스 트리를 보여준다. 
--html : HTML 이스케이프로 보여준다. 
--headers : 헤더 라인을 반복한다. 
--no-headers : 헤더를 보이지 않는다. 
--lines : 스크린의 높이를 설정한다. 
--rows : 스크린의 높이를 설정한다. 
--sort : 지정한 정렬 방식으로 보여준다. 
--sor=[+|-]key[,+|-]key[,...] 형식이다. 여기서 사용할 수 있는 key는 사용법에서 설명한다. 예를 들어 ps jax --sort=uid,-ppid,+pid 형식으로 할 수 있다. 

프로그램 정보 
-V : 버전 정보를 보여준다. 
L : 모든 포맷 지시자를 보여준다. 
V : 버전 정보를 보여준다. 
--help : 도움말을 보여준다. 
--info : 디버깅 정보를 보여준다. 
--version : 버전 정보를 보여준다. 


ps 명령어는 프로세스의 현재 상태를 보여주는 명령어이다.
ps 명령으로 현재 사용하는 프로세스의 상태를 간단히 한 번 살펴 보자.

# ps 
  PID   TTY            TIME  CMD 
  3177  pts/4      00:00:00  bash 
  3599  pts/4      00:00:00  ps 

ps 명령으로 PID, TTY, TIME, CMD 헤더의 필드와 내용을 보여 준다.
그럼, 이들 필드에 대해 한 번 알아 보자.

. ADDR : 프로세스 스택의 세그먼트 번호
. BND : 커널 스레드가 바인드되는 프로세스의 논리 프로세스 번호 (-o 옵션)
. C :
. CMD : 사용자가 실행한 명령 이름
. COMMAND : 사용자가 실행한 명령 이름
. F : 프로세스 및 쓰레드에 관련된 항목
. LIM : 메모리에 대한 소프트 한계와 관련된 항목
. NI : 프로세스의 nice값, 낮을수록 CPU 시간이 높다
. PID : 프로세스 ID
. PRI : 프로세스 스케줄링 우선순위, 낮을수록 우선순위가 높다.
. RSS : 프로세스의 실제 메모리의 크기로 킬로바이트 단위
. S : 프로세스나 커널 쓰레드의 상태
. SIZE : 가상 이미지의 크기
. STAT : 실행되고 있는 프로세스의 상태

아래는 STAT 필드의 상태를 설명한 내용이다.
-D : 디스크 입출력 대기 상태로 interrupts를 걸 수 없는 상태
-R : 실행중
-S : 짧은 sleep 상태
-T : 정지상태
-Z : 좀비상태
-W : 상주한 페이지가 없는 프로세스
-< : 높은 우선권 프로세스
-N : 낮은 우선권 프로세스
-L : 페이지가 락이 걸린 상태

. STIME : 프로세스의 시작시간
. SZ : 프로세스가 사용하는 자료와 스택의 크기
. TIME : 프로세스가 소비한 총 시간
. TRS : 텍스트의 실제 메모리 크기
. TTY : 연결되어 있는 터미널
. UID : 사용자 ID
. USER : 사용자 이름
. WCHAN : 프로세스에 거주하는 커널함수
. VSZ : 가상 메모리에 적재된 프로세스의 KB단위 크기
. %CPU : 마지막 1분 동안 프로세스가 사용한 CPU 점유율
. %MEM : 마지막 1분 동안 프로세스가 사용한 메모리의 점유율
-u 옵션으로 사용자의 ID나 이름을 지정하여 지정한 사용자의 프로세스만을 살펴 볼수 있다.

# ps -u apache -l 
  F S   UID   PID  PPID  C PRI  NI ADDR    SZ WCHAN  TTY          TIME CMD 
140 S    48 10392 10605  0  69   0    - 20732 semtim ?        00:00:10 httpd 
140 S    48 10597 10605  0  69   0    - 20242 semtim ?        00:00:11 httpd 
140 S    48 10599 10605  0  69   0    - 20585 semtim ?        00:00:10 httpd 
140 S    48 10600 10605  0  69   0    - 20579 semtim ?        00:00:09 httpd 
140 S    48 10601 10605  0  69   0    - 20595 semtim ?        00:00:10 httpd 
140 S    48 10602 10605  0  71   0    - 20606 semtim ?        00:00:06 httpd 
140 S    48 10603 10605  0  69   0    - 20550 do_sel ?        00:00:09 httpd 
140 S    48 10604 10605  0  69   0    - 20582 semtim ?        00:00:11 httpd 
140 S    48 10606 10605  0  69   0    - 20736 semtim ?        00:00:10 httpd 
140 S    48 10607 10605  0  69   0    - 20266 semtim ?        00:00:07 httpd 
140 S    48 10608 10605  0  69   0    - 20556 semtim ?        00:00:11 httpd 
140 S    48 10609 10605  0  69   0    - 20221 semtim ?        00:00:11 httpd 
140 S    48 10835 10605  0  69   0    - 20604 semtim ?        00:00:07 httpd 
140 S    48 11252 10605  0  69   0    - 20259 semtim ?        00:00:01 httpd 
140 S    48 11334 10605  0  69   0    - 20559 semtim ?        00:00:02 httpd 
140 S    48 11335 10605  0  69   0    - 20592 semtim ?        00:00:03 httpd 
140 S    48 11336 10605  0  74   0    - 20215 semtim ?        00:00:03 httpd 
140 S    48 11420 10605  0  69   0    - 20374 semtim ?        00:00:03 httpd 

apache 관련 프로세스 중 PID 835를 강제로 종료시키자. 여기서 -9는 행당 프로세스를 강제로 종료 시킨다.

# kill -9 835 

관련 PID 프로세스를 다시 시작할 수도 있다.

# kill -HUP 835 

또는 이런 방법을 사용할 수도 있다.

# kill -SIGHUP 835 

보통 시스템에의 모든 프로세스를 보고자 할 경우 aux 옵션의 조합을 많이 쓴다.
많은 프로세스를 어떤 기준으로 해서 정렬을 할 경우가 많이 있다. 정렬을 위해서는 O옵션이나 --sort 옵션을 사용한다. O 옵션일 경우 O[+|-]K[,+|-]K[,...]]의 형식을 사용하며, --sort옵션일 경우 --sort=[+|-]key[,+|-]key[,...]의 형식을 사용한다.
O옵션에 -r를 붙여 RSS를 가장 큰 값을 맨 위에 보여주는 내림차순으로 정렬하였다. 만일 2개 이상의 기준으로 정렬을 한다면, 콤마 후 정렬 방식과 기준되는 k필드를 지정하면 된다.

[관련 명령어]
pstree 트리 형태로 프로세스 계층도를 보여준다.
top 실시간으로 프로세스 변화 상황을 보여준다.
2005/06/17 13:14 2005/06/17 13:14
프로세스의 부모 자식 관계를 형태로 보여주는 명령어

사용법 : 
pstree [옵션] [pid | user] 
pstree -V 
-a : 명령행에서 지정한 인수가 있다면, 명령어 라인 인수까지 보여준다. 
-c : 기본값은 동일한 트리 내의 같은 프로세스를 하나의 프로세스만 보여주고 해당 프로세스의 개수를 나타내는데, 같은 프로세스를 모두 보여준다. 
-G : 트리 형태를 보기 좋게 VT100 형태로 보여준다. 
-h : 현재 프로세스와 부모 프로세스를 하이라이트로 보여준다. 
-H pid : pid로 지정된 프로세스와 부모 프로세스를 하이라이트로 보여준다. 
-l : 긴 라인을 모두 보여준다. 
-n : PID를 기준으로 정렬하여 보여준다. 
-p : PID까지 보여준다 
-u : UID를 보여준다. 
-U : UTF-8 (Unicode) 형태로 보여준다. 
-V : 버전 정보를 출력한다. 
pid : 지정하는 pid를 보여준다. 
user : 지정하는 사용자만의 프로세스를 보여준다. 

pstree 명령어는 프로세스간의 부모 자식 관계를 트리 형태로 보여줘 이해하기 쉽게 한다.
2005/06/17 13:11 2005/06/17 13:11
패스워드 파일의 보안 문제점을 확인하는 명령어이다.

사용법 : pwck 

pwck 명령어는 /etc/passwd 파일의 내용을 분석하여 잘못된 내용이 있는지 검사한다. pwck 명령어는 /etc/passwd 파일의 내용을 분석하여 잘못된 내용이 있는지 검사한다. 이는 패스워드의 보안 문제점을 미리 발견하는 명령으로, 정기적으로 검사하자.

[관련 명령어]
grpck /etc/group파일 체크 명령어
2005/06/17 13:10 2005/06/17 13:10