ROOT 파일 시스템을 마운트한다.
rev -R 옵션의 명령으로 rootflags는 심볼릭 링크 파일이다.
자세한 사항은 rdev 명령을 살펴보자.

ls -al /usr/sbin/rootflags 
lrwxrwxrwx    1 root  root      4 Nov 11 17:57 /usr/sbin/rootflags -> rdev 
2005/06/17 10:09 2005/06/17 10:09
IP 라우팅 테이블을 보여주거나 다루는 명령어이다.

사용법 : route [옵션] [명령어] 
-A family : 지정한 주소 설명해 준다. 
-v, --verbose : 보다 상세한 정보를 보여준다. 
-n, --numeric : Destination 필드 값을 모두 IP 주소로 보여준다. 
-e, --extend : 좀더 많은 라우팅 테이블 정보를 보여준다. 
-F, --fib : 기본적인 라우팅 정보를 보여준다. 
-C, --cache : 라우팅 캐시 정보를 보여준다. 
-h, --help : 도움말을 보여준다. 
-V, --version : 버전정보를 보여준다. 
add [-net|-host] IP주소 [gw gateway] [netmask 넷마스크] [mss tcp-mss] [dev 장치] 
del IP주소 

route 명령은 네트워크 라우팅 테이블에 수동 항목을 작성할 수 있다. 이는 /etc/hosts에 설정한 호스트 앨리어스 설정이나 /etc/resolve.conf 파일에 설정된 네임서버의 정보에서 주소를 해석하게 된다.

# route 
Kernel IP routing table 
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
215.127.214.111 *               255.255.255.224 U     0      0        0 eth0 
192.168.0.0     *               255.255.255.0   U     0      0        0 eth1 
127.0.0.0       *               255.0.0.0       U     0      0        0 lo 
default         218.147.234.129 0.0.0.0         UG    0      0        0 eth0 

이는 eth1 네트워크 장치는 192.168.0.0의 네트워크 주소를 가지고, Genmask 즉 넷마스크는 255.255.255.0.의 값을 가진다. eth0 네트워크 장치는 215.127.214.111의 네트워크 주소를 가지고, 255.255.255.224 의 넷마스크 값을 가진다. lo 장치는 네트워크 카드가 인식되어 있따면, 자동적으로 인식하는 장치로써, 자기 자신의 IP 즉, 로컬 호스트 주소를 가지고 있는 127.0.0.1에 대한 장치 라우팅 테이블이다. 라우팅 테에블 중 Destination 필드에 default 값은 게이트웨이 주소를 말하는 것으로 61.40.233.1의 값을 가지고 있다.
-n 옵션은 호스트명 대신 4분 표기법으로 된 어드레스 주소를 나타낸다.

# route -n 
Kernel IP routing table 
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
215.127.214.111 0.0.0.0         255.255.255.224 U     0      0        0 eth0 
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1 
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo 
0.0.0.0         218.147.234.129 0.0.0.0         UG    0      0        0 eth0 

라우팅 테이블에 나타난 기본 게이트웨이를 한 번 삭제해 보자. 이는 route del 명령과 함께 Destination의 값인 default을 지정하며 게이트웨이를 삭제할 것이므로 gw나 gatewa를 입력하며, 게이트웨이 주소를 지정하면 된다.

# route del default gw 215.127.214.111 

기본 게이트웨이 추가도 동일한 방식이나 route del 명령을 route add 명령으로만 입력한다.

# route add default gw 215.127.214.111 
2005/06/17 10:08 2005/06/17 10:08
시스템에 쉽게 프로그램을 설치하기 위한 것으로 레드햇 사에서 만들어 졌지만 대부분의 배포판에서 사용할 수 있는 패키지 관리자이다.

사용법 : rpm [옵션] 
-w : 아주 자세하게 디버깅 정보를 출력한다. 
--keep-temps : 임시 파일을 지우지 않는다. (/tmp/rpm-*).rpm을 디버깅할 때만 주로 사용한다. 
--quiet : 최대한 출력을 자제하며, 오로지 에러 메시지만 출력한다. 
--help : 좀 더 긴 사용법 설명서를 출력한다. 
--version : 사용중인 rpm의 버전을 한 줄로 표시한다. 
--rcfile <파일> : /etc/rpmcr 또는 $HOME/.rpmrc을 사용하지 않고 <file>을 사용 하도록 한다. 
--root <dir> : 모든 동작에 대하여 최상위 디렉토리를 주어진 디렉토리로 설정하고 작업한다. 예를 들어 설치할 떼 주어진 디렉토리를 / 라고 생각하고 그것을 기준으로 설치해나간다. 

------------------------------------------------
설치모드 : rpm -i [설치옵션] <패키지파일>+
질문모드 : rpm -q [질문옵션]
검증모드 : rpm-V|-y|--verify [검증옵션]
서명확인모드 : rpm --checksig <패키지파일>+
제거모드 : rpm -e <패키지명>+
제작모드 : rpm -bO [제작옵션] <패키지스팩>+
------------------------------------------------
많이 사용하는 옵션에 대해서는 위에서 설명했지만, 여기에서는 각각의 옵션에 대해 좀 더 자세히 알아 보기로 하겠다.
설치 옵션
rpm 설치 명령의 일반적인 형태는 다음과 같다.

rpm -i [설치옵션들]<패키지파일>+ 

. force : --replacepkgs, --replacefiles, --oldpackage를 모두 사용한 것과 같다.
. h, --hash : 패키지를 풀 때 해쉬마크(#)를 표시한다. 총 갯수는 50 개이다.
좀 더 나은 출력을 위해서는 -v를 함께 사용하라.
. oldpackage : 새로운 패키지를 지우고 더 예전 패키지로 교체할 때 사용한다.
. precent : 패키지 파일을 풀 때 퍼센트 표시를 한다.
. replacefiles : 이미 설치된 다른 패키지의 파일을 덮어쓰면서라도 패키지를 강제로 설치한다.
. replacefiles : 이미 설치된 다른 패키지의 파일을 덮어쓰면서라도 패키지를 강제로 설치한다.
. replacepkgs : 패키지가 이미 설치되어 있다 하더라도 다시 설치한다.
. root <디렉토리> : <디렉토리>를 루트로 하는 시스템에 설치를 수행한다. 데이터베이스는 <디렉토리> 밑에서 갱신되고 pre 또는 post 스크립트는 <디렉토리>로 chroot()한 후 실행됨을 의미한다.
. noscripts : preinstall, postinstall 스크립트를 실행하지 않는다.
. excludedocs : 문서라고 표시되어 있는 파일(맨페이지와 textinfo문서)은 설치하지 않는다.
. includedocs : 문서 파일을 포함한다. 이 옵션은 rpmrc파일에 excludedocs:1 이라는 것이 명시되어 있을 때만 필요하다.
. nodeps : 패키지를 설치하기 전에 의존성 검사를 하지 않는다.
. test : 패키지를 실제로 설치하지는 않고 충돌 사항이 있는지 점검하고 보고한다.
. -U, --upgrade : 현재 설치되어 있는 패키지를 새로운 버전의 RPM으로 업그레이드한다. -i 옵션과 같지만 예전 버전의 것이 자동으로 지워진다는 것이 다른다.

질문 옵션
rpm 질문 옵션의 일반적인 형식은 다음과 같다.

rpm -q [질문옵션] 

여기에서는 패키지 정보가 표시될 형식을 결정해주어야 한다. --queryformat옵션 뒤에 형식 문자열을 적어주면 된다.
질문 형식은 표준 printf 형식을 약간 변형한 것이다. 형식은 정적 문자열과 (개행문자,탭, 그리고 다른 특수문자에 대한 표준 C 문자 이스케이프 표기) printf 형식지정자로 구성되어 있다. rpm은 이미 출력 형태를 알고 있으므로 타입 지정자는 생략하고 {} 문자로 묶어서 헤더 태그의 이름으로 바꾸어 주어야 한다. 태그명 중 RPMTAG_ 부분은 생략해야 하며 태그명 앞에는 -문자를 적어주어야 한다.
예를 들어 질문 대상 패키지의 이름만 출력하고자 하는 경우 여러분은 %{NAME}을 형식 문자열로 사용해야 한다. 패키지명과 배포판 정보를 두 개의 칼럼으로 표시하고자 할 때는 %-30{NAME}%{DISTRIBUTION}라고 적는다.
rpm은 --querytags 옵션을 주면 인식하고 있는 모든 태그의 목록을 보여준다.
질문 옵션에는 패키지 선태과 정보 선택의 2가지가 있다. 먼저 패키지 선택 옵션을 살펴 보겠다.
. <패키지명> : 라는 이름을 패키지에 대한 질문을 수행한다.
. a : 모든 패키지에 대하여 질문을 수행한다.
. whatrequires <기능> : 제대로 작동하기 위해서는 <기능>을 필요로 하는 모든 패키지에 대하여 질문을 수행한다.
. whatprovides <가상> : 기능을 제공하는 모든 패키지에 대하여 질문을 수행한다.
. f <파일> : <파일>을 포함하는 패키지에 대하여 질문을 수행한다.
. F : -f 와 같지만 파일명을 표준 입력에서 읽는다.
. p <패키지파일> : 설치된 또는 설치되지 않은 <패키지파일> 에 대하여 질문을 수행한다.
. P : -p와 같지만 패키지 파일명을 표준 입력에서 읽는다.

다음은 정보선택 옵션을 살펴 보겠다.

. -i : 패키지 이름, 버전, 설명등의 정보를 출력한다. 만약 --queryformat이 주어져 있다면 그것을 이용하여 출력한다.
. R : 현재 패키지가 의존하고 있는 패키지 목록을 보여준다.
(--reauires와 같음)
. provides : 패키지가 제공하는 기능을 보여준다.
. l : 패키지 안의 파일을 보여준다.
. s : 패키지 안에 든 파일의 상태를 보여준다. (-l은 포함) 각 파일의 상태는 normal(정상), not installed(설치되지 않음), replaced(교체)의 값을 갖는다.
. d : 문서 파일만 보여준다.(-l은 포함)
. c : 설정 파일만 보여준다.(-l은 포함)
. scripts : 설치, 제거 과정에 사용되는 셀 스크립트가 있다면 그 내용을 출력한다.
. dump : 다음과 같은 파일 정보를 덤프한다: 경로 크기 수정일, MD5 체크섬, 모드, 소유자, 그룹, 설정 파일 여부, 문서 파일 여부, rdev, 심볼릭 링크 여부. 최소한 -l, -c, -d 이들 옵션 중 하나가 사용되어야 한다.

검증 옵션
rpm 검증 옵션의 일반적인 형태는 다음과 같다.

rpm -V|-y|--verify [검증옵션] 

설치되어 있는 파일들에 대하여 rpm 데이터베이스에 저장된 내용과 오리지널 패키지의 내용을 비교한다. 검증 내용은 크기, MD5 체크섬, 퍼미션, 타입, 소유자, 그룹 등이다. 차이점이 발견되면 출력한다. "c"은 설정 파일을 으미하며 그리고 파일명이 나타난다. 각각의 8개 문자는 RPM 데이터베이스에 저장된 속성과 비교한 결과를 나타낸다 "."(피리어드) 문자는 이상 없음을 나타낸다. 비교 결과 문제점이 발견되면 다음과 같은 문자가 나타난다.
5 : MD5체크섬
S : 파일크기
L : 심볼릭 링크
T : 갱신일
D : 장치
U : 사용자
G : 그룹
M : 퍼미션과 파일 타입을 포함함 모드

서명 확인
rpm 서명 확인 명령은 다음과 같다.

rpm --checksig <패키지파일>+ 

패키지의 오리지널 여부를 가려내기 위하여 패키지 안에 든 PGP 서명을 점검한다. PGP설정 정보는 /etc/rpmrc에서 읽어온다.

제거 옵션
rpm 제거 명령의 일반적인 형태는 다음과 같다.

rpm -e <패키지파일>+ 

. noscripts : preuninstall, postuninstall 스크립트를 실행하지 않는다.
. nodeps : 패키지 제거시 의존성을 검사하지 않는다.
. test : 실제로 패키지를 제거하는 것은 아니고 테스트해본다.

제작 옵션
rpm 제작 명령의 일반적 형식은 다음과 같다.

rpm -bO [제작옵션] <패키지스펙>+ 

-bO은 제작 단계와 제작할 패키지를 나타내는 것으로서 다음 중 하나의 값을 갖는다.
. bp : 스펙 파일의 "%prep" 단계를 실행한다. 보통 소스를 풀고 패치를 가하는 작업이다.
. bl : "목록 점검"을 한다, "%files" 섹션은 확장 메크로이다. 이 파일들이 존재하는지 여부를 알아본다.
. bc : "%build" 단계를 수행한다.(prep 단계를 한 후) 보통 make에 해당하는 일을 해낸다.
. bi : "%install" 단계를 수행한다.(prep, build단계를 거친 후) 보통 make install에 해당하는 일을 한다.
. bb : 바이너리 패키지를 만든다.(prep, build, install 단계를 수행한 후)
. ba : 바이너리와 소스 패키지를 만든다.(prep, build, intall 단계를 수행한후)

다음 옵션도 사용할 수 있다.

. short-circuit : 중간 단계를 거치지 않고 지정한 단계로 직접 이동한다. -bc와 -bi하고만 쓸 수 있다.
. timecheck : "시간점검"을 0 (불가능)으로 설정한다. 이 값은 rpmrc에서 "timecheck:"로 설정할 수 있다. 시간 점검 값은 초로 표시되는데 파일이 패키징되는 걸리는 최대 시간을 정한다. 시간을 초과하는 파일들에 대하여 경고 메시지가 출력된다.
. clean : 패키지를 만든 후 build 디렉토리를 지운다.
. test : 어떠한 build 단계를 거치지 않는다. 스펙 파일을 테스트할 때 유용한다.
. sign : 패키지 안에 PGP 서명을 넎는다. 패키지를 누가 만들었는지 확인할 수 있다.
. rpm --recompile <소스패키지파일>+ 또는 rpm --rebuild <소스패지파일>+ : rpm은 주어진 소스 패키지를 설치하고 prep, 컴파일, 설치를 해준다. --rebuild는 새로운 바이너리 패키지도 만들어준다. 제작을 마치면 build 디렉토리는 --clean 옵션에서와 마찬가지로 지워진다. 패키지로부터 나온 소스와 스펙 파일은 삭제된다.

기존의 RPM에 서명하기

rpm --resign <바이너리패키지파일>+ 

패키지 파일에 새로운 서명을 한다. 기존의 서명은 삭제된다.
서명 기능을 사용하기 위해서는 PGP를 사용할 수 있어야 한다. 그리고, RPM 공개키를 포함하는 공개키 링을 찾을 수 있어야 한다. 기본적으로 RPM은 PGPPATH에서 지시하는 PGP 기본 설정을 사용한다. PGP가 기본적으로 사용하는 키 링을 갖고 있지 않을 때는 /etc/rpmrc 파일에 설정해 두어야 한다.
pgp_path는 /usr/lib/rpm 대신 쓰일 경로 이름이다. 이 경로에는 여러분의 키 링을 포함해야 한다. 여러분이 만든 패키지에 서명을 하려면, 여러분은 자신의 공개키와 비밀키 한쌍을 만들어두어야 한다. (PGP 메뉴얼 참고) /etc/rpmrc 에 적는 것 말고도 다음 사항을 추가해야 한다.
. signature : 서명 유형. 현재로서는 pgp만 지원된다.
. pgp_name : 여러분의 패키지에 서명할 user 명을 적는다. 패키지 제작시 --sign 옵션을 추가한다. 여러분의 입력을 받고 나면 패키지가 만들어지고 동시에 서명된다.

데이터베이스 재생성 옵션
rpm 데이터베이스를 다시 만드는 명령은 다음과 같다.

rpm --rebuilddb 

패키지에서 나온 소스와 스펙 파일은 삭제된다.
rpm은 강력한 패키지 관리자로서 각각의 소프트웨어 패키지를 만들고 설치하고 질문 하고 검증하고 갱신하며 제거할 수 있다. 패키지란 설치할 파일들과 이름, 버전, 설명등을 포함하는 패키지 정보를 지닌 저장 파일이다. 기본적인 7가지 동작 모드가 있으며 각각 다른 옵션들을 갖는다. 설치, 질문, 검증, 서명확인, 제거, 제작, 그리고 데이터베이스 재건설 이 바로 그것이다.

1) RPM 파일 읽는법
패키지 이름은 일정한 규칙으로 되어 있다. 한 예로 다음과 같은 아파치 RPM 패키지가 있다고 가정한다.
apache-1.3.26-i686.rpm
. linux : RPM 패키지 이름이다.
. 2.0.2 : linux 패키지의 버전이다.
. i686 : 실행 바이너리의 시스템 아키텍쳐이다.

2) RPM 패키지 설치
보통 RPM을 설치하려면 rpm -ivh 옵션을 혼합하여 설치하고자 하는 패키지 명을 지정하게 된다.

# rpm -ivh apache-1.3.22-i686.rpm 

하지만 위의 명령처럼 쉽게 rpm이 설치되면 다행이지만 rpm은 설치 시 기존 파일 이나 의존성 관계 등으로 여러 가지 에러를 볼 수 있다. 크게 3가지 경우로 해서 각각의 에러에서의 해결 방법에 대해 알아보자

a. 이미 동일 패키지가 설치되어 있는 경우

# rpm -ivh apache-1.3.22-i686.rpm 
apache package apache-1.3.22 Is already installed 
error : apache-1.3.22-i686.rpm cannot be installed 

. 해결책 : --replacepkgs 옵션을 설치시 추가적으로 입력하여, 기존 패키지를 덮어쓴다.

b. 설치될 패키지의 파일이 총돌나는 경우.

# rpm -ivh apache-1.3.22-i686.rpm 
apache /usr/lib/xxx.a conflicts with file from mod_ssl-2.8.4 
error : apache-1.3.22-i686.rpm cannot be installed

패키지에 포함된 파일의 라이브러리가 있는데, 현재 설치하는 패키지가 동일한 라이브러리의 다른 버전을 설치하려고 하는 경우로, 차근차근 원인을 해결해야 한다. --replacepkgs 옵션으로 강제 설치하는 방법이 있다.

C. 의존성 문제가 발생하는 경우
이 경우에는 이 패키지를 설치하기 전에 먼저 설치해야 하는 패키지가 있으므로, 에러에 나타나는 패키지를 먼저 설치 진행하여야 한다.

3) 패키지 제거
rpm 패키지 제거는 rpm -e 옵션과 함께 제거하고자 하는 패키지 명을 지정한다. 패키지 제거는 패키지 명만 입력하여도 제거 가능한다.

rpm -e apache 

하지만, 이 또한 의존성 문제로 에러 메시지를 만날 수 있다.

# rpm -e apache 
removing these packages would break dependencies: 
linux is needed by mod_ssi-2.8.4 

의존성이 걸리는 패키지를 먼저 삭제하여야 한다. 만일, 의존성을 무시하려면 --nodeps 옵션으로 삭제하면 삭제하려고 하는 패키지만 삭제 가능하지만, 주의가 필요하다.

4) 패키지 업그레이드
기존 설치된 패키지에 새로 나온 패키지로 업그레이드 할 때에는 rpm -Uvh 옵션을 사용한다.

# rpm -Uvh apache-1.3.26-i686.rpm 
linux ##################### 

만일 다운 그레이드가 필요하다면, --oldpackage 옵션을 사용한다.
5) 패키지 정보 확인

# rpm -q apache 
apache-1.3.22-i686.rpm 

rpm -ql 옵션과 함께 패키지 이름을 지정하면 지정한 패키지의 설치된 디렉토리와 파일들을 볼 수 있다.

# rpm -ql apache 
/etc/httpd 
/etc/httpd/conf 
/etc/httpd/conf/access.conf 
/etc/httpd/conf/httpd.conf 
/etc/httpd/conf/magic 
/etc/httpd/conf/srm.conf 
/etc/httpd/logs 
/etc/httpd/modules 
/etc/logrotate.d/apache 
/etc/rc.d/init.d/httpd 
------생략------ 
2005/06/17 10:05 2005/06/17 10:05
레드햇 패키지(RPM)를 cpio 파일로 변환하는 명령어

사용법 : rpm2cpio [파일명] 

rpm2cpio는 .rpm 파일명을 하나 받아들여서 표준출력으로 cpio 저장 파일을 출력한다. 만약 아무런 전달인수가 없다면 표준입력으로부터 rpm 파일을 받아들인다.

# rpm2cpio rpm-1.1-1.i386.rpm 
# rpm2cpio < glint-1.0.1-1.i386.rpm 
2005/06/17 10:01 2005/06/17 10:01
원격 호스트에서 셀을 사용하여 명령을 실행할 수 있게 하는 명령어이다.

사용법 : rsh [옵션] 호스트명 [명령어] 
-l username : 호스트에 접근할 사용자 이름을 지정한다. 

rsh 명령은 원격 셀(remote shell)로써, 원격 호스트에 명령어를 실행한다. 대부분의 r명령이 보안에 취약하며 rsh도 마찬가지이다. rsh 명령 대신 ssh 명령을 사용하자.
2005/06/17 10:00 2005/06/17 10:00
허용된 호스트에 시스템 정보를 보여주는 명령어
rstat는 CPU와 가상 메모리 사용통계, 네트워크 가동시간, 하드디스크에 대한 정보를 제공하는 기능을 한다. r로 시작하는 명령어 대부분이 보안상 취약점을 가지고 있는데, rstat 또한 여기에 포함되며, 사용하기를 권장하지 않는다.
2005/06/17 10:00 2005/06/17 10:00
현재와 이전 시스템 런 레벨을 찾는 명령어

사용법 : runlevel 

runlevel 명령은 이전 시스템의 실행 레벨과 현재 시스템의 실행 레벨을 표준 출력으로 공백 문자로 나누어 보여준다. 만약 이전 시스템의 실행 레벨이 없으면, N을 표시한다.
runlevel 명령은 System-V의 who -r 명령을 대신해서 rc 스크립트 안에서 사용될수 있다. 또한, init의 새로운 버전에서, 이 정보들은 RUNLEVEL과 PRELEVEL 환경변수를 지정하는데, 사용되어 질 수 있다.

# runlevel 
N 5 

이 시스템은 현재 이전 시스템의 레벨이 없으며, 현재 실행 레벨은 5로써 X윈도우를 기본으로 사용한다. 아래는 /etc/inittab 파일에서 주석으로 각 실행 레벨에 대한 설명을 보여준다. 리눅스 배포판마다 조금씩 다를 수 있지만, /etc/inittab 파일을 살펴본 다면 각 레벨이 어떤 것인지 확인이 가능하다.

# Default runlevel. The runlevels used by RHS are: 
#   0 - halt (Do NOT set initdefault to this) 
#   1 - Single user mode 
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking) 
#   3 - Full multiuser mode 
#   4 - unused 
#   5 - X11 
#   6 - reboot (Do NOT set initdefault to this) 
2005/06/17 09:59 2005/06/17 09:59
원격 허용된 호스트를 사용하는 사용자에게 메시지를 보내는 명령어

사용법 : rwall 호스트 [파일] 

rwall은 원격 사용자가 네트워크에 있는 모든 사용자에게 메시지를 보내는 명령어이다. 이는 보안에 매우 취약하므로 사용하기를 권장하지 않는다. 레드햇 7.X이전 버전은 /etc/inetd.conf에서 서비스를 막도록 하며, 7.0.X 버전에서는 rwalld 데몬 실행하지 않도록 한다.
데몬을 죽인 후, ntsysv 유틸리티로 부팅할 때 자동 실행되는 rwalld 데몬을 제거한다.
2005/06/17 09:56 2005/06/17 09:56
허용된 호스트에 현재 로긴된 사용자의 정보를 보여주는 명령어

사용법 : rwho [옵션] 

who의 네트워크 버전으로 현재 로긴된 사용자의 정보를 보여주는 명령어이다. 허용된 호스트에게 who 명령의 결과와 같은 정보를 보여주게 된다.
이는 보안에 매우 취약하므로 사용하기를 권장하지 않는다.
2005/06/17 09:55 2005/06/17 09:55
터미널에서 발생하는 모든 세션을 기록하는 명령어

사용법 : script [-a] [파일] 
-a : 새로 기록하는 것이 아니라, 이전의 파일에 덧붙인다. 

script 명령은 터미널에서 진행되는 모든 작업을 파일에 저장한다. 추후 이전 작업 내용을 살펴 볼 경우 매우 유용하다.
scripts 명령만을 실행할 경우는 기본적으로 typescript 파일에 터미널에서 일어난 작업들의 내용이 저장된다. 만일, scripts에 파일명을 지정하면 지정한 파일에 작업 내용이 저장된다. -a 옵션은 지정한 파일이나 파일을 지정하지 않을 경우, 기본 저장파일인 typescript 파일에 추가적으로 터미널의 작업 내용을 한다.
실행중인 scripts 명령을 종료하기 위해서는, exti나 Ctrl+D, logout 명령을 입력한다.
script 명령으로 작업된 내용을 보기 위해, 작업 내용이 저장된 typescript파일을 본다.

# cat typescript 
2005/06/17 09:54 2005/06/17 09:54
원격 보안 복사 명령어(secure copy)

사용법 : 
scp [옵션] [[user@host:] file1 [...] 
-p : 원본 파일의 변경 시간, 액세스 시간, 모드를 변경하지 않고 그대로 보존한다. 
-r : 지정한 디렉토리의 하위 디렉토리 및 파일까지 복사한다. 
-v : 상세한 진행사항을 보여준다. 
-F ssh_config : 지정한 설정파일을 사용한다. 
-P port : 지정한 포트로 접속시도를 한다. 

원격 호스트의 파일을 복사하는 보안 복사 명령어로, 신원 인증 및 암호화를 써서 telnet, rlogin, rcp, rsh을 안전하게 대치한다.
예제는, webmaster 계정으로 linux.net 호스트에 /home/webmaster/ 디렉토리 밑의 모든 파일을 접근하려는 호스트의 현재 디렉토리로 복사한다.

# scp webmaster@linux.net:/home/webmaster/* ./ 

지정한 디렉토리의 하위 디렉토리까지 모두 복사하려면 -r 옵션을 사용한다.
아래 예제는, admin 계정 권한으로 linux 호스트에 있는 /home/admin/ 경로의 모든 하위 디렉토리와 파일을 로컬 호스트의 작업 디렉토리 아래에 있는 backup 디렉토리에 모두 복사한다.

# scp admin@linux.net:/home/admin/* ./backup 
2005/06/17 09:51 2005/06/17 09:51
플로피 디스크 사양을 설정하는 명령어

사용법 : sefdprm [옵션] 장치명 [이름] 
-c 장치명 : /etc/fdprm 파일의 환경 설정을 지운다. 
-n 장치명 : 포맷 검색 메시지를 비 활성화한다. 
-p 장치명 [이름] : 영구히 지정한 이름으로 장치의 설정을 바꾸어 버린다. 
-y 장치명 : 포맷 검색 메시지를 활성화 한다. 

setfdprm 명령은 플로피 장치를 자동 검색 할 수 있도록 디스크 사양을 지정하거나 이전 설정을 지우고 검사 메시지를 활성/비활성화 한다.
2005/06/17 09:45 2005/06/17 09:45
시스템 관련 명령을 설정하는 메뉴 방식 유틸리티

사용법 : setup 

setup명령은 시스템 관련 설정을 메뉴방식으로 설정하는 유틸리티이다. 사용자 정보설정, 파이어 월 설정(ipchains), 키보드 설정, 마우스 설정, 네트워크 설정, 프리터 설정, 부팅 시 데몬 선택, 사운드 카드 설정, 시간대 조절, 설정 등을 할 수 있다.
메뉴는 다음과 같다.

------------------------------------------------------------------------ 
메뉴 이름                       설명                    직접 실행 명령어        
Authentication configuration    사용자 정보 설정        authconfig 
Firewal configuration           방화벽(ipchains)설정    lokkit 
keyboard configuration          키보드 설정             kddconfig 
Mouse configuration             마우스 설정             mouseconfig 
Network configuration           네트워크 설정           netconfig 
Print configuration             프린터 설정             printconf-tui 
System service                  부팅 시 데몬 설정       ntsysv 
Sound card configuration        사운드 카드 설정        sunconfig 
Timezone configuration          시간대 조절             timeconfig 
X configuration                 X 윈도우 설정           Xconfigurator 
----------------------------------------------------------------------- 

setup 명령으로 이 메뉴 전체를 볼 수도 있으며, 각각 직접 실행 명령어를 입력하여, 각각의 메뉴를 직접 띄어 설정도 가능하다.
2005/06/17 09:44 2005/06/17 09:44
기본 셀을 호출하는 명령어
sh 명령어는 기본으로 지정된 셀을 호출한다. 본래 /bin/sh는 본 셀을 뜻했지만, 지금은 대부분 /bin/bash를 링크하여 사용한다. 다음과 같이 확인해 볼 수 있다.

# whereis sh 
sh: /bin/sh 

# ls -al /bin/sh 
lrwxrwxrwx    1 root     root            4  4월  7 20:07 /bin/sh -> bash 

만일 셀 스크립트로 작성한 ftpdown_count.sh 파일이 있다면 이는 ./명령어나 sh명령어로 실행해야 실행이 가능하다.

# sh ftpdown_count.sh 

자세한 설명은 셀 스크립트 부분을 참고하자.
2005/06/17 09:43 2005/06/17 09:43
뉴스그룹 등에서 사용하며 쉽게 내용을 열람할 수 있는 압축 유틸리티이다.
shar로 압축된 파일은 #!/bin/sh 헤더와 아카이브를 풀기 위한 명령으로 구성된 셀 스크립트로 압축이 되지 않은 파일들이 묶여 있는 형태이다. 이 파일은, 뉴스 그룹 관리자가 소스 파일을 읽고 정리하거나, 삭제가 용이하여 아직까지 인터넷 뉴스 그룹에서 종종 볼 수 있다. 하지만, 요즈음은 대부분 tar/gzip으로 대체되었다.
shar 아카이브는 unshar 명령으로 압축을 해제한다.

shar 명령으로 압축하기
C 소스 파일을 share로 압축을 해보자.

# share -o [저장할 파일] [원본파일] 

또는 다음과 같은 방법을 사용할 수도 있다.

# shar [원본파일] > [저장할파일] 

의 형식으로 shar 아카이브 형태의 압축이 가능하다.

# sh hello.c > hello.shar 

shar 형태로 된 파일을 살펴보면 셀 스크립터 형식으로 되어있다.

shar 명령으로 압축 풀기
이 hello.shar 파일을 해제 할 경우, unshar 명령을 사용한다.

# unshar hello.shar 
2005/06/17 09:42 2005/06/17 09:42
시스템 내부 및 원격으로의 마운트 정보를 보여주는 명령어이다.

사용법 : showmount [옵션] [호스트] 
-a, --all : 호스트명:디렉토리 형식으로 모든 원격 마운트 정보를 보여준다. 호스트명은 클라이언트의 이름이고 디렉토리는 마운트된 파일시스템의 디렉토리의 정보이다. 
-d, --directories : 클라이언트에서 원격으로 마운트한 디렉토리 목록을 보여준다. 
-c, --exports : export된 디렉토리의 목록을 보여준다. 
-h, --help : 도움말을 보여준다. 
-v, --version : 버전 정보를 보여준다.

showmount 명령은 NFS/NIS 명령으로 지정한 시스템에서 원격으로 파일시스템을 마운트한 클라이언트 목록들을 보여준다.
만일 호스트를 지정하지 않으면, 현재 서버에서 마운트된 디렉토리리의 정보를 보여준다.
2005/06/17 09:40 2005/06/17 09:40
정해진 지시 사항에 따라 시스템의 프로세스를 종료하고 메모리의 내용을 저장한 뒤 안전하게 종료하는 명령어이다.

사용법 : shutdown [옵션] 시간 [경고메시지] 
-c : 진행 중인 shutdown 명령을 취소한다. 
-f : 리부팅이 될 때, fsck 명령을 건너 뛰면서 빠른 리부팅을 한다. 
-h : shutdown이 완료된 후, 시스템을 종료한다. 
-k : 경고 메시지만을 보여주고, 실제적인 shutdown을 진행하지는 않는다. 
-n : shutdown을 위해 init을 호출하지 않고 shutdown을 진행한다. 
-r : 시스템 종료 후 리부팅한다. 
-t sec : 지정한 시간에 시스템을 재시동한다. 
시간 
now : 지금 바로 종료한다. 
+m : 지정한 m분 이후에 종료한다. 
hh:mm : 몇 시(hh) 몇 분(mm)에 종료한다. 

shutdown 명령은 시스템을 안전하게 종료시키는 명령어이다. 현재 접속 중인 모든 사용자는 시스템이 종료된다는 메시지를 받고 login 작업이 종료된다. 시스템을 즉시 종료하기 위해 다음과 같이 실행할 수 있다. 이는 halt, init 0 명령과 유사한 기능이다. 시스템 종료 후 리부트한다. 이 명령은 reboot, init 6 명령과 동일하다.

# shutdown -h now 

참고로, 일정시간 후 셧다운 되는것을 최소하려면 shutdown -c 옵션을 사용한다.

# shutodwn -c now 
2005/06/17 09:39 2005/06/17 09:39
직렬 회선을 네트워크 인터페이스로 연결하는 명령어

사용법 : slattach [옵션] [tty] 
-c command : 접속이 끊어질 때, 지정한 command를 실행한다. 
-d : 디버깅 모드 
-h : 접속이 끊어질 때, 빠져나온다. 
-q : 어떤 메시지도 보여주지 않는다. (quiet mode) 
-l : /var/lock에 UUCP 스타일의 락파일을 생성한다. 
-n : mesg n 명령과 동일하다. 
-m : 8비트 모드로 초기화하지 않는다. 
-e : 초기화한 후 즉시 빠져 나온다. 
-L : 3선 작용을 활성화 한다. 
-p proto : 지정한 proto로 프로토콜 종류를 선택한다. 여기에는 slip, adaptive, ppp, kiss 등이 있다. 
-s speed : 지정한 speed로 속도를 지정한다. 

slattach 명령은 TTY 회선을 네트워크 인터페이스에 지정하는 역할을 하여, 점대점 접속으로 다른 컴퓨터를 이용할 수 있게 한다.
SLIP 네트워크 인터페이스를 직접 tty1포트에 연결할 수 있다.

# slattach /dev/tty1 
2005/06/16 20:40 2005/06/16 20:40
주어진 시간만큼 아무 동작도 하지 않고 대기하는 명령어이다.

사용법 : sleep [옵션] 숫자 [단위] 
--help : 표준출력으로 사용법을 출력한다. 
--version : 표준출력으로 버전정보를 출력한다. 

셀에서 사용하는 wait 루프와 같은 기능이다. 지정한 초 단위 시간동안 아무 일도 하지 않고 대기상태로 된다. 타이밍이나 백그라운드에서 특정한 시간이 일어나기를 기다릴때 유용하게 쓰일수 있다.
지정 가능한 숫자[단위]의 기본은 초이다. 아래와 같이 지정한 숫자와 단위로 해서 시간을 지정할 수 있다.
s : 초
m : 분
h : 시간
d : 일
2005/06/16 19:35 2005/06/16 19:35
자체 데이터베이스를 통해 파일을 찾아주는 locate 명령어의 보안 강화 버전이다.

사용법 : slocate [옵션] 
-u : / 경로에서부터 slocate 데이터베이스를 만든다. 
-U dir : 지정한 디렉토리 경로에서부터 slocate 데이터베이스를 만든다. 
-c : -u나 -U옵션을 사용할 경우 /etc/updatedb.conf의 위치를 추적한다. 
-e dir1,dir2,... :  -u나 -U옵션을 사용할 경우 지정한 디렉토리를 제외한다. 
-f fs_type1,... : -u나 -U옵션을 사용할 경우 지정한 파일시스템을 제외한다. 
-l level : 보안레벨로써, 0이면 보안체크를 하지 않는 대신, 검색이 좀 더 빠르고, 1이 디폴트 값으로 보안체크를 한다. 
-q : 에러 메시지를 보여주지 않는다. 
-n num : 지정한 숫자만큼의 결과만 보여준다. 
-i : 검색에서 일일이 확인한다. 
-r regexp : POSIX 표현 방식으로 데이터베이스를 검색한다. 
-o file : 지정한 파일명으로 데이터베이스 파일을 만든다. 
-d path : 지정한 데이터베이스 경로에 찾는다. 
-h, --help : 사용법을 보여준다. 
-v, --verbose : 데이터베이스 생성시 상세 메시지를 보여준다. 
-V, --version : 버전 정보를 보여준다. 

시스템이 자동적으로 slocate 데이터베이스를 업데이트를 하지 않으면, 파일이나 디렉토리 정보를 제대로 확인할 수 없다. 이 때문에 시스템에서는 updatedb 프로그래을 하루에 한번씩 cron으로 실행하여, 데이터베이스를 업데이트 한다.
레드햇 기준으로 하루 한 번씩 실행하는 cron 설정 디렉토리인 /etc/cron.daily/slocate.cron 파일을 살펴보면 /usr/bin/updatedb 파일이 실행되는 것을 볼수 있다.

# cat /etc/cron.daily/slocate.cron 
#!/bin/sh 
renice +19 -p $$ >/dev/null 2>&1 
/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e "/tmp,/var/tmp,/usr/tmp,/afs,/net" 

find 명령과 달리 slocate명령은 데이터베이스에 미리 생성하며, 빠른 파일 찾기가 가능하다. 아래 예제와 같이 httpd.conf 파일을 slocat 명령으로 찾아보자.

# slocate httpd.conf 
/etc/httpd/conf/httpd.conf 
/usr/share/doc/mod_perl-1.26/eg/httpd.conf.pl 

[관련 명령어]
find 파일을 찾을 경로, 찾고자 하는 파일의 표현식, 찾을 경우 실행명령으로 파일을 찾는 명령어
locate 자체 데이터베이스를 통해 파일을 찾아주는 명령어
2005/06/16 19:33 2005/06/16 19:33