|
1. UNIX 사용자 설명서
제 1 장 파일 관련 명령어
□ 디렉토리 생성, 제거 명령어
∙ 생성 :mkdir 파일이름
# ls clear ntt telnet ttydefs ttydefs.000 # mkdir kkk # ls clear kkk ntt telnet ttydefs ttydefs.000 # |
∙ 상위 디렉토리까지 만들면서 디렉토리 생성 :mkdir -p 파일이름
# pwd /user/kjm # ls clear kkk ntt telnet ttydefs ttydefs.000 # mkdir -p kkk/kjm # ls clear kkk ntt telnet ttydefs ttydefs.000 # cd kkk # ls kjm # |
∙ 제거 :rmdir 파일이름
# ls clear kkk ntt telnet ttydefs ttydefs.000 # rmdir kkk # ls clear ntt telnet ttydefs ttydefs.000 # |
※ 해당 디렉토리에 파일이 있을 때는 제거가 불가능.
∙ 하위 디렉토리까지 제거하면서 디렉토리와 파일 제거 :rm -r 파일이름
# ls clear ntt telnet ttydefs ttydefs.000 # mkdir -p aaa/bbb # ls aaa clear ntt telnet ttydefs ttydefs.000 # cd aaa # ls bbb # cd .. # ls aaa clear ntt telnet ttydefs ttydefs.000 # rm -r aaa # ls clear ntt telnet ttydefs ttydefs.000 |
∙ 대화형으로 디렉토리 또는 파일 제거 : rm -i 파일이름
# ls clear ntt telnet ttydefs ttydefs.000 # rm -i ntt rm: ntt를 제거할까요 (y/n)? n |
∙ 한 라인에 여러 개의 파일을 나열 :ls -C
# ls -C Mosaic-2.6b3 dead.letter host net tmp TT_DB dev kernel network user a devices khs opt usr bin etc lib platform var cdrom export lost+found proc vol core home mnt sbin xfn |
∙ 파일의 속성을 보여줌 :ls -F
# ls -F Mosaic-2.6b3/ dead.letter host/ net/ tmp/ TT_DB/ dev/ kernel/ network user/ a/ devices/ khs/ opt/ usr/ bin@ etc/ lib@ platform/ var/ cdrom/ export/ lost+found/ proc/ vol/ core home/ mnt/ sbin/ xfn/ |
∙ 파일의 long list를 보여줌 :ls -l
# ls -l 총 10 drwxr-xr-x 2 daemon staff 512 10월 15일 11:07 hss drwxr-xr-x 3 daemon staff 512 11월 28일 15:07 jin drwxrwxrwx 2 root other 1024 10월 21일 15:19 khs drwxr-xr-x 2 kjm staff 512 12월 9일 13:37 kjm drwxr-xr-x 2 sym staff 512 11월 28일 10:11 sym |
□ 명령어 축약 명령어
∙ alias 축약 명령어 ‘실제 명령어’
ex) alias ls 'ls -aCF'
∙ 축약 명령어 보기 : alias
unix4% alias unix4% alias ls 'ls -aCF' unix4% alias ls ls -aCF unix4% |
∙ 축약 명령어 해제 : unalias
unix4% alias ls ls -aCF unix4% unalias ls unix4% alias unix4% |
□ 파일의 유형을 알아보는 명령어
∙file [경로명] 파일 이름
ex) file /*
unix4% ls hss jin khs kjm sym unix4% file kjm/* kjm/clear: 아스키 텍스트 kjm/ntt: 아스키 텍스트 kjm/telnet: 아스키 텍스트 kjm/ttydefs: 아스키 텍스트 kjm/ttydefs.000: 아스키 텍스트 unix4% |
□ 파일의 내용 보기
∙ more 파일명
ex) more /etc/passwd
unix4% more /etc/passwd root:x:0:1:Super-User:/:/sbin/sh daemon:x:1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/:/bin/sh adm:x:4:4:Admin:/var/adm:/bin/sh lp:x:71:8:Line Printer Admin:/usr/spool/lp: smtp:x:0:0:Mail Daemon User:/: uucp:x:5:5:uucp Admin:/usr/lib/uucp: nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico listen:x:37:4:Network Admin:/usr/net/nls: nobody:x:60001:60001:Nobody:/: noaccess:x:60002:60002:No Access User:/: jin:x:1:10:lee beom jin:/user/jin:/bin/csh hss:x:1:10::/user/hss:/bin/csh khs:x:100:10::/khs:/bin/csh kjm:x:1234:10::/user/kjm:/bin/csh sym:x:1235:10::/user/sym:/bin/csh |
unix4% cat hosts # Internet host table 127.0.0.1 localhost 100.100.100.204 unix4 loghost 100.100.100.201 host 100.100.100.22 tea22 100.100.100.150 NT unix4% |
∙ head [-라인수] 파일명 → 라인 수를 적지 않으면 기본 설정라인 만큼 보여짐.
ex) head -3 /etc/passwd
unix4% head -3 /etc/passwd root:x:0:1:Super-User:/:/sbin/sh daemon:x:1:1::/: bin:x:2:2::/usr/bin: unix4% |
∙ tail [-라인수] 파일명 → 라인 수를 적지 않으면 기본 설정라인 만큼 보여짐. ex) tail -3 /etc/passwd
unix4% tail -3 /etc/passwd khs:x:100:10::/khs:/bin/csh kjm:x:1234:10::/user/kjm:/bin/csh sym:x:1235:10::/user/sym:/bin/csh unix4% |
□ 파일의 작성 명령어
∙ cp, mv :기존 파일의 복사 또는 이동
ex) 하위 디렉토리까지 전부 카피 :cp -r
기존에 있는 파일에 카피 할 때 경고 메시지 :cp -i
복사할 파일의 작성 일자와 시간을 이전 파일 그대로 유지 :cp -p
퍼미션까지 똑같이 카피 :rpc -p
mv 파일이름1 파일이름2
unix4% ls /user/hss unix4% pwd / unix4% cp -r /host /user/hss cp: /user/hss/host: 권한이 거부됨 unix4% su Password: # ls Mosaic-2.6b3 dead.letter host net tmp TT_DB dev kernel network user a devices khs opt usr bin etc lib platform var cdrom export lost+found proc vol core home mnt sbin xfn # cp -r /host /user/hss # ls /user/hss host # cd host # ls install pkginfo pkgmap reloc root |
∙ vi, ed :편집기를 사용하여 프로그램 및 문서 작성
∙ cat :빨리 수행하거나 적은 용량의 파일을 만들 때 사용
∙ touch :빈 파일을 생성, 기존에 있는 파일은 그대로 두고 시간만 갱신 할 때 사용
∙ cc : 프로그램 실행 출력
□ 파일 인쇄 명령어
∙파일 인쇄 ꠏꠇꠏ 파일 인쇄 명령어 :lpr
ꠐ ex) lpr 파일이름
ꠐ 지정 프린트 명으로 파일 인쇄 :lpr -Ppr명
ꠌ ex) lpr 프린트명 파일이름
∙ 인쇄 프린터의 상태 점검 :lpq [-프린트명] 파일이름
ex) lpr -Pnew /.cshrc → 현 프린트와 대기 프린트 내용이 출력됨( 예)순번순 으로 ative 1st 2st)
∙ 인쇄 spool내 대기작업 제거 명령 : lprm 프린트명 job명
ex) lprm [-프린트명] 648
□ 파일 시스템의 퍼미션 및 소유권
8진수 |
설명 |
mode set |
mode set 설명 |
4700 |
사용자 ID 상태로 set |
-rws------ |
유저에 있기 때문에 setuid |
2700 |
그룹 ID 상태로 set |
-rwxrws--- |
그룹에 있기 때문에 setgid |
1777 |
stick bit로 설정됨 |
-rwxrwxrwt |
스티키 bit |
400 |
유저에 의한 read |
-r-------- |
유저에의한 read만 허용 |
∙ setuid :프로그램을 실행시 그 프로세스를 생성한 프로세스로부터 UID를 받는 것이 아니라 프로그램 자체의 inode 정보로부터 받는다.
ex) 4자리 숫자 퍼미션의 설명
ꋪ 자리값 4 / 2 / 1 로 구성 → -rws/---/--- → s가 user의 2진수 4자리에 있 기 때문에 setuid가되고 퍼미션 4700으로 표현 할 수 있다.
∙ setgid :프로그램을 실행시 그 프로세스를 생성한 프로세스로부터 GID를 받는 것이 아니라 프로그램 자체의 inode 정보로부터 받는다.
∙sticky bit :이렉토리에 유용하게 사용. 해당 디렉토리에 write permission이 있 어도 root와 owner 이외에는 제거가 안된다.
※sticky bit는 rm 명령어에서만 사용된다.
□ 파일 모드의 변경
∙변경법 : chmod 변경숫자 파일이름
ex) chmod 4777 text
# ls -l telnet -rw-r--r-- 1 root other 38732 11월 28일 09:56 telnet # chmod 4777 telnet # ls -l telnet -rwsrwxrwx 1 root other 38732 11월 28일 09:56 telnet |
□ 해당 허가 사항에 protect를 거는 명령어
∙ 사용법 : umask 숫자
ex) umask 022
# umask 022 # ls clear jj ntt telnet ttydefs ttydefs.000 # umask 022 # ls -l jj -rw-r--r-- 1 root other 14 12월 9일 14:28 jj # umask 777 <- 777은 아무 권한도 안주는 설정 # cat > jj dslkafjsdakfj ^D # ls -l jj -rw-r--r-- 1 root other 14 12월 9일 14:28 jj # cat > gg dfajdsafjk # ls -l gg ---------- 1 root other 11 12월 9일 14:29 gg |
∙ umask를 사용자의 ~/.cshrc 파일에 넣으면 파일이나 디렉토리 생성시 자동적 으로 권한 부여됨.
□ 파일의 소유자 및 그룹 변경
☞ 기조의 생성된 파일의 소유자 및 그룹을 변경할 때는 root만이 가능.
∙ 파일의 소유자 변경 :chown ownername filename
unix4% ls -l 총 90 -rw-r--r-- 1 root other 559 11월 28일 09:56 clear -rw-r--r-- 1 root other 14 12월 9일 14:28 jj -rw-r--r-- 1 kjm staff 213 11월 28일 12:45 ntt -rwsrwxrwx 1 root other 38732 11월 28일 09:56 telnet -rw-r--r-- 1 root other 1713 11월 28일 09:56 ttydefs -rw-r--r-- 1 root other 1713 11월 28일 09:56 ttydefs.000 unix4% chown kjm clear chown: clear: 소유자가 아님 unix4% su root Password: # chown kjm clear # ls -l clear -rw-r--r-- 1 kjm other 559 11월 28일 09:56 clear |
∙ 파일의 그룹 변경 : chgrp rgoupname filename
※ 소요자 변경과 동일
□ 덮어쓰기, ^D방지
∙ 출력 방향 전환시 overwrite 방지하는 변수 → noclobber
∙ ^D을 누를 시에 logout 방지
※ 위의 두 변수를 ~/.cshrc 파일에 넣어 놓으면 항상 service을 받을 수 있다.
□ 최근 수행했던 명령어들을 출력, 재구현
∙ history=40 (40 정도가 shell에 적당)
※ ~/.cshrc 파일에 set history=40을 추가해서 사용하면 항상 service을 받을 수 있다.
□ 명령의 대체 및 반복
∙만약 아래와 같이 잘못된 명령을 수행시 수정 방법
SDT-820% mdkir kjm
mdkir : Command not found.
SDT-820% ^dk^kd^
□ 환경 파일을 (~/.chsrc, ~/login) 변경 했을 때는 “source ~/.cshrc ∙ ~/.login'을 사용하여 환경을 즉시 재설정 할 수 있다.
□ 백그라운드 관련 명령
∙ 백그라운드 지정 명령어 :&
ex) find / -name .cshrc -print &
∙ 백그라운드로 실행중인 명령을 보고 싶을 때 :jobs
ex) jobs ꎠ
∙ 현재 foreground로 실행중인 명령을 잠시 정지(suspend) 시키고 싶을 때 : ^Z
∙ job number n을 kill하고 싶을 때 : kill %n
∙ job number n을 백그라운드로 처리하고 싶을 때 :bg %n
∙ job nunber n을 포그라운드로 처리하고 싶을 때 :fg %n
□ 프로세스의 강제 종료
∙ 현재 작동되고 있는 프로세스를 보고 싶을 때 : ps
∙ 프로세스를 종료시키고 싶을 때 : kill ps number
※ 강력한 프로세스의 종료 : kill -9 ps number
□ 특정 시간에 작업을 수행하고 싶을 때
∙at 명령을 사용하여 원하는 시간에 작업을 수행시킬 수 있다.
ex) SDT-820% at 5:00 pm
at> /usr/bin/tar cvf /dev/rfd0 /.login
at>Ctrl-D <EOT>
job 1293 at Tue May 19 17:00:00 1992
∙ 예정 작업 정보를 보고 싶을 때
SDT-820% atq
실행 시간 job number 등의 정보가 보여진다.
∙ 예정 작업을 취소하고 싶을 때
SDT-820% atrm 1293
제 2 장 vi 편집기
1. vi의 시작
명령어 |
작업 설명 |
vi filename |
파일 열기, 작성 |
vi +18 filename |
18행으로 파일 열기 |
vi +/'string' fn |
“string'의 처음발생 단어부터 열기 |
vi -r filename |
손상된 파일 회복 |
view filename |
읽기 전용으로 파일 열기 |
2. 커서의 이동 명령
명 령 어 |
작 업 설 명 |
h(←) j(↓) k(↑) l(→) |
왼쪽으로 커서 이동 아래로 커서 이동 위로 커서 이동 오른쪽으로 커서 이동 |
w b |
한 단어 오른쪽으로 커서 이동 한 단어 왼쪽으로 커서 이동 |
^ $ |
라인의 처음으로 이동 라인의 마지막으로 이동 |
H M L |
화면의 맨 위로 이동 화면의 중간으로 이동 화면의 맨 아래로 이동 |
Ctrl+F Ctrl+D Ctrl+B Ctrl+U |
한 화면 뒤로 이동 반 화면 뒤로 이동 한 화면 앞으로 이동 반 화면 앞으로 이동 |
3. 문자와 행 삽입
명 령 어 |
작 업 설 명 |
a |
커서 오른쪽에 문자 삽입 |
A |
커서 오른쪽, 행의 끝에 문자 삽입 |
i |
커서 왼쪽에 문자 삽입 |
I |
커서 왼쪽, 해의 처음에 문자 삽입 |
o |
커서 아래에 행 삽입 |
O |
커서 위에 행 삽입 |
<ESC> |
작업 종료후 <ESC> 입력 |
4. 텍스트 변경
명 령 어 |
작 업 설 명 |
cw (종료 :ESC) |
단어 변경 |
R (종료 :ESC) |
현재 커서 위치부터 대체 |
r |
커서 위치 문자를 다른 문자로 대체 |
~ |
문자형(대, 소문자)변경 |
J |
현재 행과 아래 행 결합 |
u |
이전 명령 취소 |
5. 텍스트 삭제
명령어 |
작 업 설 명 |
x |
문자 삭제 |
dw |
단어 삭제 |
dd |
행 삭제 |
D |
커서 오른쪽 행 삭제 |
;5, 10 d |
5-10번째 삭제 |
6. 텍스트 복사 및 이동
명 령 어 |
작 업 설 명 |
yy |
행 yank |
Y |
행 yank |
p |
yank되거나 삭제된 행 현재 행 아래에 삽입 |
P |
yank되거나 삭제된 행 현재 행 위에 삽입 |
:1,2 co 3 |
1-2행을 3행 다음으로 복사 |
:4,5 m 6 |
4-5행을 6행 다음으로 이동 |
7. 행 번호 설정
명 령 어 |
작 업 설 명 |
:set nu |
행 번호 표시 |
:set nonu |
행 번호 숨기기 |
8. 행 찾기
명 령 어 |
작 업 설 명 |
G |
파일의 마지막 행으로 가기 |
21G |
파일의 21번째 행으로 가기 |
:n |
n 라인으로 가기 |
9. 탐색 및 대체
명 령 어 |
작 업 설 명 |
/string |
string 탐색 |
?string? |
string 역방향 탐색 |
n |
string의 다음(이전) 계속 탐색 |
:g/search-string/s// replace-string/gc |
각 발생 탐색 후 확인하고 대체 |
:s/str/rep/ |
현재 행의 str을 rep로 대체 |
:1,.s/str/rep/ |
1부터 현재 행의 str을 rep로 대체 |
:%s/str/rep/g |
파일 전체 str을 rep로 전부 대체 |
10. 파일을 파일로 삽입
명령어 |
작 업 설 명 |
:r filename |
커서 다음에 파일 삽입 |
:34 r filename |
파일을 34번째 행 다음에 삽입 |
제 3 장 system의 자동 환경
□ Autoconfiguration이란 device나 software option을 가능하게 하거나 시스템 환경 을 새로이 할 경우 operator의 간단한 명령에 의해 해당 작업을 자동으로 처리하 는 것을 말한다.
□ 장치 이름은 시스템 관리자가 알아보기 쉽도록 설계되어 있는데 사용하는 면에서 는 다소 불편하게 구성되어 있다.
Device name ꠏꠇꠏ dev/ → Logical device name
ꠍꠏ devices/ → Physical device name
1. Autoconfiguration Process
∙Solaris 2.X의 kernel 구성은 각각이 모듈로 구성되어 있는데 부팅시 가장 기본적 인 static core와 OS에서 꼭 필요로 하는 module만 memory에 올린다.
∙ Solaris 2.X의 장점은 필요할 때마다 모듈을 부르므로 main memory를 효율 적으 로 사용할 수 있고 Driver module을 첨가하기 위해 kernel을 rebuild하기 위해서 는 system을 reboot하면 된다.
만약, 부팅시 모듈을 memory에 상주시키고 싶으면 /etc/system파일에 정의하면 된다.
∙ Boot시 시스템은 self-test를 수행하고 시스템에 접속된 모든 device를 check한다. 그런 다음 kernel은 스스로를 dynamical하게 configuration하고 필요한 module을 메모리 안에 load한다.
∙ Kernel module은 특정 device를 access 할 때 load되는 device driver이다.
2. /kernel Directory
∙ Default로 load하는 kernel module은 /kernel directory에 존재한다.
3. /usr/kernel Directory
∙ /usr/kernel directory는 kernel module을 저장하고 있는 디렉토리다. 부팅할 때의 디렉토리 실행 순서는 /kernel을 먼저 읽은 후 /usr/kernel을 찾는다.
∙ system booting시 꼭 필요하지 않은 optional kernel modules 이다.
4. /platform/platform-name/kernel
∙ 특정 platform에서 필요한 kernel module들을 가지고 있다.
※위의 세 가지(②, ③, ④) 디렉토리는 booting 과정동안 module을 load하는 데 사용 된다.
5. /etc/system Directory
∙ /etc/system 파일을 수정하여 kernel configuration 과정을 사용자 환경에 적합하 도록 변경시킬 수 있다.
∙ 보통의 SCSI의 속도는 10 ~ 20 Mbps 정도이다. 서로 틀린 속도를 해결하기 위 해서는 /etc/system파일에 set scsi_option=0x58을 넣어주면 된다.
∙ 터미널(툴)을 뛰울수 있는 개수를 정의하고 싶으면
꠆ꠏ set anutopush=32 ← 최소 32개의 터미널을 띄우겠다.
ꠌꠏ set maxusers=40 ← 최대 40개의 터미널을 띄우겠다.
※ Maxuser setting
RAM |
maxusers |
16MB |
8 |
32MB |
32 |
64MB |
40 |
128MB |
64 |
over |
128 |
※ /etc/system파일은 중요하기 때문에 backup을 시켜놓고 조작해야 한다.
6. Device Configuration
□ 서로 링크 ꠏꠇꠏ Physical :PROM에 의해 만들어진 Device name. 매우 복잡하고 ꠐ /devices에 존재.
ꠌꠏ Logical :사용자가 사용할 수 있는 이름. /dev 아래에 존재.
① Physical Device Names
∙ /devices 아래에 존재하며 full device name의 형태를 가지며 PROM level에서 사용한다.
/devices/iommu@ f, . . ./sbus@ f, . . ./espdma@ f, . . ./sd@ 3, 0:a
꠆ꠏ Slot Number → sbus
ꠐ SCSI Host Adapter → esp
ꠐ SCSI Target Number → 3
ꠐ SCSI Logical Unit Number → 0
ꠌꠏ Partition → A
② Logical Device Names
∙ logical device name은 시스템 관리자나 일반 사용자가 disk 또는 tape device 를 이용할 경우 사용하는 이름이다.
∙ 여러 개의 Sub-directory로 구성.
장 치 |
설 명 |
dsk |
Block interfaces to disk devieces |
rdsk |
Raw or character interfaces to disk devices |
rmt(테잎) |
Tape devices |
cua(모뎀) |
Dial out modems |
pts |
Pseudo terminals |
fbs(그래픽 카드) |
Frame buffers |
∙ /devices directory는 처음 system booting시에 생성된다.
∙ /devices directory를 다시 만들 경우에는 boot -r option을 사용하다.
7. The prtconf Command
∙ 시스템의 configuration을 보여주는 명령어로 memory, peripheral configuration의 정보를 화면에 보여준다.
ex) /etc/prtconf [-F] [-P] [-p] [-v] ꠏꠇꠏ F :console frame buffer의 pathname ꠐ 을 보여준다.(만약 존재한다면)
ꠐ P :PROM node 정보를 보여준다.
ꠐ p :pseude device 정보를 보여준다.
ꠌꠏ v :Verbose mode
8. The sysdef Command
∙ prtconf 이외의 추가 정보를 보여준다.
→ hostid, pseudo devices, loadavle modules, select kernel parameter values, H/W device, System device 등등
ex) ꠆ꠏ# prtconf | more
ꠍꠏ # sysdef | more
9. Reconfiguraing Deveces
# drvconfig → 피지컬 디바이스 이름이 보여짐
# disks → 논리 디바이스 이름이 보여지고 자동 링크
# tapes → ' '
제 4 장 Booting and Halting
1. Booting의 개요
∙ Boot PROM
각 W/S는 Kernel을 load하기 전에 시스템 운용을 제어하는 monitor program이 내장된 PROM Chip을 가지고 있다. 또한 PROM은 시스템에 접속된 장치들을 확 인하고 access할 수 있는 내장 device driver를 가지고 있다.
∙ Boot Blocks
시스템의 첫 번째 boot 프로그램은 bootstrap 과정에서 사용되는데, 이것은 두 번째 boot program을 load 하는데 사용된다.
두 번째 boot program은 “installboot' 명령어에 의해 root File system에 install 된다.
∙ Run Levels
Run Level은 시스템 서비스들을 설정하는 System Software Configuration이다.
∙ Run Control Scripts
File system Check 및 mount와 여러 Daemon Process를 시작하고 중지시키는 rc script들을 제공한다.
∙ Kernel Modules
Small static core와 dynamically loadable module로 구성된다.
2. 시스템 Booting 절차
1) 절차
① Boot PROM 단계 ꠏꠏꠇꠏ PROM runs self-test Diagnostics
ꠌꠏ PROM loads the bootblk program
② Boot Program 단계 ꠏꠇꠏ The bootblk program loads the second boot ꠐ program
ꠌꠏ The Secondary boot program loads the kernel
③ Kernel 초기화 단계 ꠏ The Kernel initializes itself and start the init process
④ /sbin/init 단계 ꠏ The init process starts the rc scripts
2) 상세한 절차 표현
① Boot PROM(1. 시스템 설정 banner의 표시(Model 및 Keyboard type, HostID, PROM revision Number, Ethernet Address) → 2. 자기지단 → 3. PROM에 설 정된 Boot 장치에서 boot program을 찾는다. → 4. Boot Program의 load(/platfo rm/sun4m/ufsboot)
② Boot Program(5. ufsboot 프로그램을 load한후 boot PROM은 kernel을 load한다.)
③ Kernel 초기화 단계(6. Kernel 자기자신을 초기화한 후 ufsboot program을 이 용하여 moduleemf을 load 한다.)
④ /sbin/init(7. Kernel은 사용자 process 한 개를 생성하고 /sbin/init program을 실행시킨다. → 8. /sbin/init program은 /etc/inittab 파일에 기록된 내용을 실행 한다.)
3. Booting Terminology
∙ Boot PROM
kernel이 load 되기 전에 시스템을 Control하는 Program으로 Programmable Read -Only Memory이다.
∙ Boot Blocks
첫 번째 Boot Program 또는 Boot block은 bootstrap process에 의해 읽혀진다. 이때 boot program은 Memory 안의 2번째 Boot Program을 로드 하는데 사용한 다. 이 블록은 Physical하게 처음 Partition의 1~15번 sector에 위치하고 있다. “in stallboot' 명령어는 root partition을 새로이 만들 경우 boot block을 install 할 때 사용한다.
∙ Run Levels
System Services를 구분해 주는 System Software configuration의 level이다. Run level은 8개(0 ~ 6, S) 이다.
∙ Run Control Scripts
File System을 마운트하고 Check하는 rc(Run Control) Script는 Print daemon, NFS CI inet-Server daemon, sendmail daemon등을 start/stop 시키는 프로그램이다.
4. System Run Levels
Run Level |
기 능 |
0 |
PROM Monitor Level |
1 |
시스템 관리상태(몇 개의 파일시스템이 mount 되어지고 login 환경을 지원하지 않는 Single-user |
2 |
자원을 공유할 수 없는 multiuser 상태 |
3 |
자원을 공유할 수 있는 Multiuser 상태 |
4 |
현재는 사용되지 않음 |
5 |
Halt 와 대화형 Boot(boot-a) |
6 |
Reboot to default run level 3 |
S,s |
시스템 관리상태(몇 개의 파일시스템이 mount 되어지고 login 환경을 지원하지 않는 Single-User 상태 |
※Run level은 who -r로 확인
5. System Run Level의 변경
1) boot 명령어
□ PROM monitor level의 boot 명령어는 다른 run-leveldfm 실행 시킬 수 있다.
∙ 사용법 :ok boot [device_name] [option]
> boot [device_name] [option]
∙ option
꠆ꠏ a :interactive boot
ꠐ r :reconfiguration boot
ꠐ s :run level S로 boot
ꠐ v :상세한 boot 메시지를 표시
ꠌꠏ w :File system을 쓰기 가능하게 boot
ex) ok boot, ok boot sd(0,3,0), boot net, boot -asv
2) who 명령어
□ Option 'r'을 이용하여 현재 시스템의 상태를 알 수 있다.
∙ 사용법 :who [-abdHlnpqrstTu] [am I]
∙ option
꠆ꠏ a :all
ꠐ b :boot time
ꠐ d :dead process
ꠐ l :login process
ꠐ p :process other than getty or user
ꠐ r :run level
ꠐ T :status of tty(+writable, -not writable, ? hung)
ꠌꠏ u :useful information
ex) # who -r, # who -b, # who -b
6. /sbin/init 명령어
□ init 명령어는 system run level을 변경하기 위하여 shutdown 명령어 대신 사용 할 수 있다. 그러나 init 명령어는 경고메시지를 보내지 않는다.
∙ 사용법 :init [012356QqSs]
∙ option
꠆ꠏ 0 :PROM Monitor level
ꠐ 1 :Single-User level
ꠐ 2 :Multi-user level (no resource shared)
ꠐ 3 :Multi-user level(resource shared)
ꠐ 5 :Interactive Boot
ꠐ 6 :Halt and reboot Default run Level 3
ꠐ S,s :Single-User level
ꠌꠏ Q,q :init 프로그램이 /etc/inittab 파일을 re-read
ex) # init 0, # init 6
7. /sbin/init 프로세스
□ 시스템이 booting 할 때 /etc/inittab 파일의 “initdefault'에 의하여 첫 번째 run level이 설정된다.
∙ /sbin/init 프로세스의 중요한 역할
① Scheduler 와 Page Daemon 등과 같은 모든 프로세스의 부모 프로세스 역할
② 시스템을 default run level로 설정하기 위한 프로세스들을 생성
③ /etc/inittab 파일을 참조하여 run level 간의 변화를 조절
④ Service Access Control(SAF)를 구동시키며 Port Service를 관리한다.
8. /sbin/rc* Script
□ 시스템 환경의 초기화를 수행
꠆ꠏ File system Check 및 Mounting
ꠐ Network 환경구축
ꠐ Device Configuration 및 Link
ꠌꠏ Start Daemon Process
9. /etc/init.d Directory
□ rc script는 /sbin 안에 존재하며 /etc 디렉토리 안의 file과 symbolic link 도어 있 다. /etc/init.d 안에는 run control file들이 존재하는데 process를 start 시키거나, 또는 kill 시키는 script 들이 존재한다. 실질적인 file은 이 디렉토리 안에 존재하지 만 /etc/rc* 디렉토리와 hard link 되어있다.
만약, 어떤 script를 첨가하고 싶으면 /etc/init.d 디렉토리에 해당 script를 첨가하면 된다.
☞ 쉬어 가는 곳
① login 전에 원하는 message를 띄우고 싶으면
→ /etc/issue라는 파일을 만들어서 넣으면 된다.
② login 후에 원하는 message를 띄우고 싶으면
→ /etc/motd라는 파일을 만들어서 넣으면 된다.
10. Run Control Scripts
□ 모든 Run level들은 시스템 상태에 대하여 기능별로 start 또는 stop할 수 있는 특 정 shell script를 가지고 있다. 이러한 shell script들은 각 run level 관련 디렉토리 안에 있는 실행 가능한 형태의 명령어 파일을 수행시킨다.
이 명령어 파일들은 /etc/init.d 디렉토리에 link되어 사용된다.
명 령 어 |
run control script |
run level directory |
/sbin/init0 |
/sbin/rc0 |
/etc/rc0.d |
/sbin/initS |
/sbin/rcS |
/etc/rcS.d |
/sbin/init1 |
/sbin/rc1 |
/etc/rc1.d |
/sbin/init2 |
/sbin/rc2 |
/etc/rc2.d |
/sbin/init3 |
/sbin/rc3 |
/etc/rc3.d |
/sbin/init5 |
/sbin/rc5 |
|
/sbin/init6 |
sbin/rc6 |
|
∙ 명령어 파일들의 이름
→ Sxxname or Kxxname
꠆ꠏS or K :각 run level에 대하여 명령어 파일을 start 또는 kill 할 수 있는 역 ꠐ 할을 한다.
ꠐ xx :명령어 파일들이 수행 할 때 부여되는 우선 순위
ꠌꠏname :start 또는 stop되는 명령어 파일 기능의 이름
□ Run Control Script의 요약
Script Name |
주 요 기 능 |
/sbin/rcS |
-diskless/dataless client 지원을 위한 network setup -root 와 usr File system의 check 및 mount -device 생성 및 Link |
/sbin/rc0 |
-PROM level로 System Down -시스템의 서비스와 모든 프로세스의 중지 -모든 File system의 umount |
/sbin/rc1 |
-Run level 1(Single user Mode)로 system down |
/sbin/rc2 |
-run level 2의 Multiuser 상태 -모든 File system의 mount -NFS File system Sharing을 제외한 모든 network service의 수행 |
/sbin/rc3 |
-모든 자원의 공유가 이루어지는 run level 3의 Multiuser 상태 -syslogd daemon start -NFS, RFS server Process Start |
/sbin/rc5 |
-시스템 Halt와 대화형 Booting의 실행 -모든 시스템 프로세스와 서비스의 중지 -File System의 umount |
/sbin/rc6 |
-시스템의 Halt와 Reboot -/etc/rc0.d/K* stop 수행 -시스템 프로세스와 서비스의 중지 -File system의 umount -Booting하여 /etc/inittab파일의 initdefault 수행 |
11. /etc/inittab File
□ run level과 어떤 action을 취하는지의 정보를 기록하고 init process에 의해 생성된다. init 프로세 스는 run level이 변화할 때의 signal을 받으면 /etc/inittab file에 등록된 프로세스에 따라 시스템 환 경을 처리한다.
꠆ꠏ system default run level 정의
ꠐ Process start, monitor, restart
ꠌꠏ run level 전환
12. shutdown 명령어
□ 시스템의 Run-level을 변경하면서 System process를 종료하고 File system을 umount 한다.
∙ 사용법 :shutdown [-y] [-gseconds] [-irun_level]
∙ Options
꠆ꠏ y :non-interactive mode
ꠐ g :System shutdown 시간을 count down → Default :60초
ꠌꠏ i :System의 변경코자하는 run-level을 지정 → Default :run level S
ex) # shutdown -y -g100 -iS
# shutdown -y -g600 -i6
13. Adding Run Control Files
□ run control file을 추가하고자 할 경우의 procedure 이다.
① /etc/init.d/README file을 참고한다.
② 해당 file을 /etc/rc*.d의 어느 디렉토리에 link 할 것인지 결정한다. 그리고 그 script가 start 인지 kill인지 결정한다.
③ /etc/init.d에 file을 만든 후 /etc/rc*.d에 링크 한다.
ex) # more /etc/init.d/sample
echo 'Hello Soalris'
# cd /etc/rc3.d
# in /etc/init.d/sample S22sample
# /sbin/rc3
14. 기타 명령어들
□ halt 명령어
∙ /usr/sbin/halt 명령어는 init 0과 흡사하며 완벽하게 system을 shutdown 시킨다.
□ reboot 명령어
∙ /usr/sbin/reboot 명령어는 system을 shutdown 시키고 default run level 3 multi-user mode로 설정한다. → init 6과 흡사하다.
“r' option을 사용하여 system을 reboot 시키고 kernel을 최적화 한다.
제 5 장 File system Administration
1. 디스크의 정보
□ VTOC(Volume Table of Contents)란 DISk의 정보를 가지고 있는 label의 확장 된 개념을 말한다.
VTOC의 정보를 보고 싶으면 devinfo나 prtvtoc를 사용하면 된다.
① prtvtoc: disk device의 VTOC 정보를 화면에 보여주는 명령. 이 명령어는 super-user만 사용이 가능하다.
∙ 사용법: # prtvtoc /dev/rdsk/c0t3d0s0
② devinfo: disk device의 특별한 정보를 화면에 보여주는 명령. 이 명령어는 super-user만 사용이 가능하다.
∙사용법: # devinfo [-i] [-p] /dev/rdsk/c0t3d0s0 ꎠ
/dev/rdsk/c0t3d0s0 20 18 0 103040 0 2
major넘버 minor넘버 start 할당된block수 파티션flag 파티션tag
2. 파일 관리 명령어
① 파일의 위치 검색
∙ 파일내의 용어 찾기
# env | grep PATH ꎠ PATH=.:/bin:/usr/bin:/usr/include:/usr/ucb:/usr/lib:/etc:/usr/etc:/usr/open/b in:/usr/local/lib
∙ whereis 명령어: 명령어의 절대 경로명을 안다.
# whereis vi ꎠ
vi: /usr/ucb/vi /usr/man/man1/vi.1
# whereis .cshrc ꎠ
.cshrc:
② 명령어의 상태 검색 및 파일 찾기
∙ which: 어느 명령어가 실행될까를 안다.
# which ls ꎠ
ls: aliased to ls -asCF
# which cs ꎠ
/bin/csh
③ 파일 찾기 명령어
∙ find 명령어
# find 경로명 파일명 -print
제 6 장 패스워드 변경법
□ PASSWORD 관련 file들이 손상(분실)된 경우
① ok boot cdrom -s
# cd /
# mount /dev/dsk/c0t3d0s0 /a
# TERM=vt100 ; export TERM
# vi /a/etc/shadow
root:제거시킴:--:--:--:
# vi /a/etc/passwd
root:제거시킴:--:--:--:
# umount /a
# sync
# halt
② ①번으로 안되었을 때
# cd /
# fsck /dev/dsk/c0t3d0s0
# mount /dev/dsk/c0t3d0s0 /a
# TERM=vt100 ; export TERM
# vi /a/etc/shadow
root:제거시킴:--:--:--:
# vi /a/etc/passwd
root:제거시킴:--:--:--:
# umount /a
#sync
#halt
# cp /etc/passwd /a/etc
# cp /etc/shadow /a/etc
# vi /a/etc/shadow
root:제거시킴:--:--:--:
# vi /a/etc/passwd
root:제거시킴:--:--:--:
# umount /a
제 7 장 Admintool
1. 새로운 사용자 만들기
□ 사용자(login) 이름=kjm, 그룹 이름=edps, uid=300, gid=400으로 /home/kkk라는 디렉토리 밑에 로그인 쉘을 bin/csh로 계정을 만드는 예을 아래에 기술했음
① mkdir /home/kkk
② /etc/passwd
kjm(login이름):x(passwd):300(userID):400(groupID):kjm(설명문:없어도그 만):home/kkk(home direct):/bin/csh(로그인 shell)
③ pwconv → 자동으로 /etc/shadow에 등록
④ /etc/group
kjm:::gid: → gid만 넣고 나머지는 생략 가능
⑤ chown -R kjm opt/kkk
⑥ chgrp -R kjm opt/kkk
⑦ cp /.* /opt/kkk
⑧ su -kkk로 가서 확인
2. 텍스트 모드 상에서 사용자 계정 만들기
① 사용자의 그룹을 생성
# groupadd -g 300 kkk
② 사용자를 등록하고 홈디렉토리를 생성
# useradd -u 300 -g 400 -c 'kkk' -d /home/kjm -m -s /bin/csh kjm
③ passwd 명령어로 password을 설정
④ 사용자의 홈디렉토리에 초기환경 파일을 추가
∙ /etc/skel 디렉토리 안에 default, .cshrc, .login, .logout, .porfile, .kshrc 파일 등 이 setup 되어 있다.
환경파일을 setup하고 싶으면 /etc/skel 아래의 디폴트 파일을 홈디렉토리 밑에 cp해서 사용
3. Device Administration
1) Serial Device
ꋪ Serial device는 serial printer, modem, terminal과 같은 한 bit 전송 후에 한 bit 를 전송하는 직렬 전송방식의 data 전송을 하는 통신 hardware이다.
통신 하드웨어의 또 다른 유형으로는 parallel device가 있는데 이는 한 개 이상 의 byte가 동시에 병렬로 전송된다.
통신 line은 일반적으로 직렬 line을 쓰게 되는데, 이는 modem이 직렬프트를 거 쳐 computer에 연결되기 때문이다.
Axil workstation은 아래와 같이 다른 유형의 serial device들을 연결하기 위해서 2개의 serial과 1개의 parallel를 제공한다.
∙ Printer
∙ Terminals
∙ Modems
∙ 다른 기계장치
2) Service Access Facility
ꋪ SAF는 terminal 이나 modem의 access와 remote print request와 같은 network service access를 제어한다.
SAF는 계층적 process 구조와 그와 관련된 명령어들로 이루어져 있다.
SAF는 local과 remote 자원들을 비슷한 방법으로 access 하도록 제어한다.
관리자가 1개 이상의 port에 필요한 service를 제공하기 위해서는 SAF의 port monitor들을 구성해 주어야 한다.
① Terminal 설치
ꋪsacadm 명령어
sacadm 명령어는 ttymon과 listen type의 port monitor를 추가하거나 제어하는 데 사용된다.
sac process가 start되면 port monitor를 찾기 위해 /etc/saf/_sactab 파일을 읽는다.
∙ 사용법
sacadm -a -p pmtag -t type -c cmd -v version
∙ ttymon type의 portmonitor 설치
# sacadm -a -p zsmon -t ttymon -c /usr/lib/saf/ttymon -v 1
∙ Options
꠆ꠏ -a: port monitor를 추가하다.
ꠐ -r: port monitor를 삭제한다.
ꠐ -l: port monitor의 list를 확인하다.
ꠐ -k: port monitor를 kill 시킨다.
ꠐ -s: port monitor를 start 시킨다.
ꠐ -d: port monitor를 disable 시킨다.
ꠌꠏ -e: port m onitor를 enable 시킨다.
ꋪ admintool을 사용하여 browse의 serial ports를 선택
∙ Edit menu의 modify를 지정한 후 Modify Serial Port 윈도우의 template에서 Terminal - Hardwire를 선택하고 OK 버튼을 누른다.
∙ Serial Port 윈도우에서 등록을 확인한다.
port |
Port Monitor |
Service Tag |
Comment |
a |
zsmon |
ttya |
|
∙ Modify Serial Port 윈도우의 Detail 부분에 More나 Expert를 선택하면 좀 더 자세한 정보를 변경할 수 있다.
② Modem 설치
ꋪ Dial - in Modem
이 Modem은 외부연결을 위해 Call할 수는 없고 원격지로부터 연결할 수 있도록 제공해 준다.
ꋪ Dial - out Modem
이 Modem은 외부로부터의 연결은 허용하지는 않으면서 다른 computer에 연결 될 수는 있다.
ꋪ Bidirectional Modem
이 Modem은 Dial-in과 Dial-out의 기능을 통합한 modem이다.
4. Printer Administration
□ LP Print Service
Solaris 2.5 환경은 System V의 LP print service를 이용하여 configuration 파일이 있는 /etc/lp와 LP 관련 명령어들, printer 요청을 monitor하는 몇 몇 daemon들로 이루어져있다.
□ LP Print service의 특징
∙ BSD 계열의 print service와의 호환운용
∙ Bundled postscript filter의 내장
∙ Printer job의 우선 순위
∙ Printer Class
∙ 선택적인 printer access
∙ 다양한 printer form의 제공
1) Local Printer 등록
ꋪ Admintool의 Browse의 Printers를 선택한 후 edit 메뉴의 Add local printer를 선택한다.
① 고유한 printer 이름을 등록한다. (aaa 14 pr)
② Printer에 대한 설명을 Description에 넣는다. (printer service)
③ Printer Port를 선택한다. (/dev/bpp0)
④ Printer Type을 선택한다. (자동으로 PostScripter로 선택된다.)
⑤ 출력할 파일의 내용을 선택한다. (PostScripter 선택)
⑥ Printer 경고 메시지 출력 방법의 선택 (Write to superuser)
⑦ Option Field 선택
⑧ User Access List의 편집 (all)
2) Remote Printer 등록
ꋪAdmintool의 Browse의 Printers를 선택한 후 edit 메뉴의 Add Access to printer 를 선택한다.
① Printer 이름을 등록한다. (rp)
② Print Server 이름 (axil3)
③ Printer에 대한 설명을 Description에 넣는다. (Remote Printer)
④ Option Field 선택
※ /etc/lp/interfaces/프린터이름 → nobanner = no 부분 앞에 #을 붙이면 banner가 안 뜬다.
/etc/lp/printers/프린터이름 → 프린터에 대한 정보를 출력.
3) 일반 사용자를 위한 printer 명령어
ꋪ Print Spooler User Command
∙ /usr/bin/lp
시스템 사용자가 print request를 프린터에 요청하는 명령어.
∙ /usr/bin/lpstat
print request의 상태를 확인하는 명령어.
∙ /usr/bin/cancel
print request를 cancel하는 명령어.
∙ /usr/bin/enable
특정 printer에 대하여 scheduler를 가능하도록 한다.
∙ /usr/bin/disable
특정 printer에 대하여 lp scheduler를 불가능하도록 한다.
4) System 관리자를 위한 printer 명령어
ꋪ Print Spooler Administration Commands
아래의 명령어들은 대부분 /usr/lib 디렉토리에 link되어져 있다.
∙ /usr/lib/lp/lpsched
이것은 print spooler 관리자 명령어다. 새로운 printer가 등록되면 lpsched를 재 구동 시켜준다.
변경된 print spooler 환경구축은 lpadmin utility를 이용한다.
∙ /usr/sbin/lpshut
Print scheduler를 정지시키는데 사용한다.
∙ /usr/sbin/lpmove
또 다른 프린터와 print request를 이동할 수 있는 명령어
∙ /usr/sbin/accept
지정된 프린터에게 accept request를 허용하는 명령어
∙ /usr/sbin/reject
지정된 프린터에 대하여 accepting을 거절하는 명령어
5) Print Spooler Files and Directories
∙ /etc/lp/classes
이 디렉토리 안에 class 이름으로 등록된 파일이 존재하고 각 파일마다 해당 printer들의 이름이 등록되어 있다.
∙ /etc/lp/default
이 파일은 default printer의 이름이 설정되어 있다.
∙ /etc/lp/interfaces
이 디렉토리에는 가 printer의 interface file filter program이 등록되어 있다.
Interface 파일 안에는 Shell script로 짜여있는 special post-process 명령어들이 설정되어 있다.
∙ /etc/lp/logs
Print spool system에 대한 log 파일이 생성된다.
∙ /etc/lp/printers
각각의 printer들에 대한 sub-directory가 있고, 그 directory 안에는 print queue에 설정된 파일과 명령어로 이루어져 있다.
∙ /etc/lp/Systems
Remote system에 대한 O/S 환경이 등록되어 있다.
∙ /etc/lp/model
이 디레토리는 /jsr/bib/lp/model에 링크 되어 있고, printer interface 프로그램 에 대한 예제 파일들이 들어있다.
lpadmin 명령어의 “m' option으로 필요한 interface 프로그램을 interface direct ory로 copy하여 사용할 수 있다.
∙ /var/spool/lp/requests
Printer request들이 보내지는 spool directory가 각 system 이름으로 존재한다.
이 sub-directory 안에는 printer에 보내질 실제 data file들이 존재한다.
6) Print Class Setup
① 현재 사용중인 printer를 education class에 등록한다.
accept 명령어를 사용하여 printer class를 accept 시킨다.
# lpadmin -p lp1 -c education
# lpadmin -p lp2 -c education
# accept education
destination 'education' now acceptiong requests
② Printer Class의 상태를 check 한다.
# lpstat -t
③ Printer Class에게 request를 보낸다.
$ lp -d education /etc/passwd
request id is education-1 (1 file(s))
7) Default Printer Setup
ꋪ System 관리자는 lpadmin 명령어를 사용하여 printer request의 defalt 목적지 를 지정할 수 있다. default 목적지는 printer나 class를 지정 할 수 있다.
# lpadmin -d lp1
# lpstat -d
system default destination: lp1
ꋪ Printer 일반사용자는 자신의 home directory에 있는 login 환경파일에 LPDEST 변수를 사용하여 default 목적지를 변경할 수 있다.
∙ C shell의 경우 ($HOME/.cshrc)
setenv LPDEST lp2
∙ Born shell의 경우 ($HOME/.profile)
LPDEST lp2
export LPDEST
8) Printer Queue의 관리
ꋪ Printer 사용자는 현재 queue에 쌓여있는 print requests를 필요에 따라 holding 시키고, 언제든지 해제가 가능하다.
∙ Print request holding
$ lp -i lp1-1 -H hold
$ lp -i lp1-2 -H hold
$ lpstat -o
∙ held request를 해제
$ lp -i lp1-1 -H resume
∙ 시스템 관리자로 login
∙ 지정한 request를
# lp -i lp1-2 -H immediate
9) Printing 우선 순위
ꋪ Solaris 2.x 환경에서 사용자는 print request에 높거나 낮은 우선 순위를 부여할 수 있다. 우선순위의 범위는 0(high)에서 39(low)까지 부여할 수 있고, 기본 우선 순위는 모든 사용자에 대하여 20이다.
∙ 중요한 작업에 대하여 높은 우선 순위를 부여한다.
$ lp -d lp1 -q 0 fastfile
∙ 중요도가 낮은 작업에 대하여 높은 우선 순위를 부여한다.
$ lp -d lp1 -q 0 bigtfile
10) Print Service의 Restart
ꋪ Print service scheduler는 system run-level 2에서 /etc/init.d/lpd에 의해 자동으 로 구성된다.
# /etc/init.d/lp stop
Print services stopped.
# /etc/init.d/lp start
Print service started.
# lpstat -r
scheduler is running
제 8 장 Disk Administration
1. DISK의 구성
① Sector
Disk 의 한 Sector는 512byte이다
Sector의 크기는 디스크가 format 될 때 설정된다.
Sector는 디스크에서 사용되는 최소 단위의 크기이다.
② Track
Track은 회전하는 디스크 판에 한 개의 디스크 head가 access할 수 있는 모든 sector들로 구성된다.
Track의 크기는 한 track에 sector의 수를 disk sector size와 곱한 것과 같다.
③ Cylinder
Cylinder의 크기는 디스크상의 head의 개수에 한 track당 sector의 개수와 disk 한 sector의 크기를 곱한 것과 같다.
Cylinder는 디스크 paltters spin에 모든 disk head들이 access 할 수 있는 모든 track으로 구성된다.
2. File system의 생성
□ format Utility에서 partition의 크기를 변경시키고 난 후, 새로운 data를 추가하 기 위해 file system을 생성한다. newfs 명령어는 file system을 생성한다.
∙ 사용법: newfs 디스크명
ex) # newfs /dev/rdsk/c0t1d0s6
3. Local 및 분산 File system
□ 시스템 관리자는 local 파일 시스템과 분산 파일 시스템 type로 파일 시스템을 관 리한다.
① Local File system
- ufs: Default File system으로 BSD의 fat fast File system을 기초로 한다.
- hsfs: CD-ROM File system(High Sierra File system)
- pcfs: DOS 디스켓 data의 access를 지원하는 File system
② 분산 File system
- nfs: Network Filesystem
- rfs: Remote File system
제 9 장 mount 명령어
□ mount는 disk device를 사용하기 위해 tree 구조의 임의의 디렉토리로 연결시 키는 것을 하는 명령어 이다.
1. /sbin/mount
1) File system을 사용하기 위해서는 반드시 mounting을 해야만 가능하다.
∙ mount 명령어는 아래와 같은 argument가 필요하다.
① File system Type
② Access하기 위한 directory 이름
③ Mounting하기 위한 directory 이름
ex) # mount -F ufs /dev/dsk/c0t3d0s7 /home
2) mount 명령어에 아무런 argument도 주지 않으면 현재 mount된 file system을 보여준다.
ex) # mount
3) Mount 명령어는 각 file system의 mount된 정보를 /etc/mnttab로 읽어서 보여준다.
2. 특별한 file system type의 mount
∙Solaris는 다양한 file system을 제공하므로 mount시 알맞은 file system type을 지정해야 한다.
∙mount 명령은 mount될 file system type의 지정을 위한 -F option을 갖고 있다.
① Floppy Diskette(DOS File system)
# mount -F pcfs /dev/dskkette /pcfs
② CD-ROM Driver(HSFS File system)
# mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /cdrom
③ Tempary File system
# mount -F tmpfs swap /tmp1
④ NFS File system
# mount -F nfs server:/user1 /home
⑤ Cache File system
# mount -F cachefs -o backfstype=nfs,backpath=/home\,cachedir=/cache1 serve r:/user1 /usr
⑥ mountall
- /etc/vfstab 밑의 장치들을 mount
※ /etc/vfstab에 넣어주면 부팅시 장치 인식
⑦ 부팅시가 아닌 수동으로 마운트 시키려면
∙ /etc/vold.conf 파일 앞에
꠆ꠏ # 有 → 수동 mount
ꠌꠏ # 無 → Auto mount
∙ 재부팅 하지 않고 vold.conf를 다시 읽음 ꠏꠇꠏꠏ# sh /etc/init.d/volmgt stop
ꠌꠏ # sh /etc/init.d/volmgt start
∙ # volcheck
3. /sbin/umount 명령어
□ umount 명령어를 사용하여 file system에 사용자 access가 불가능하도록 한다. umount 명령의 argument는 block device name나 /etc/vfstab 파일의 지정된 mount point를 사용한다.
① 사용법
# umount /home → mount point를 사용
# umount /dev/dsk/c0t3d0s7 →block device name 사용
② umount 작업을 하기 위해서는 file system에 대하여 사용자나 process의 acess가 없어야 한다. 이를 확인하기 위하여 fuser 명령어를 사용한다.
- 사용법: fuser [-a] [-v] 디렉토리
ex) fuser -cu /home
※ root file system은 어떠한 방법으로도 umount할 수가 없다.
4. /etc/vfstab 파일
□ /etc/vfstab 파일은 file system mount를 위한 기본환경을 제공한다.
/etc/vfstab 파일의 모든 file system은 시스템이 multi-user 모드로 booting 하면 서 자동으로 check하고 mount 한다.
∙ /etc/vfstab 파일에 등록된 file system은 mount point directory 이름만으로도 mounting이 가능하다.
ex) #mount /usr
∙ /etc/vfstab 파일의 모든 file system을 mounting 할 때는 “-a' option을 사용
ex) # mount -a
5. 플로피 디스크 Mount
□ 3.5' 프로피 디스크를 UFS(Unix File System)로 사용.
ex) # sh /etc/init.d/volmgt stop
# newfs /dev/rfd0a
# mount /dev/fd0a /mnt
# cd /mnt
# ls
# umount /mnt
# cd /
# eject
제 10 장 Security.
1. Default Security Features
ꋪ /etc/default directory는 새로운 SunOS의 환경이 지정된 곳이다. 이 디렉토리에 서는 remote root login 이라든지, minimum password 길이라든지, su 명령어의 log에 관한 제어가 들어있다.
∙ The /etc/default/login
→ 이 파일은 console login에 대한 방법이 기술되어 있으며, remote root login에 대해서도 제어가 가능하다.
# more /etc/default/login
CONSOLE=/dev/console 앞에 #을 붙이면 외부에서 root로 들어오지 못하고, # 을 붙이지 않으면 password을 묻지 않고 login으로 바로 들어간다. 일반 user 는 무조건 묻는다.
∙ The /etc/default/passwd
→ 이 파일은 password의 길이를 지정한다.
∙ The /etc/default/su
→ 이 파일은 su 명령어 사용할 때 console에 message를 보여줄 것인지를 정의 한다.
more /etc/default/su SULOG=/var/adm/sulog CONSOLE=/dev/console SYSLOG=YES |
제 11 장 Backup
□ Backup의 목적
∙ 시스템의 장애에 의한 사용자 파일의 보호
∙ 시스템의 설치 및 Upgrade에 의한 데이터의 이동
∙ 시스템 보안성을 유지하기 위한 데이터의 복사본 유지
1. Type of Tape Devices
ꋪ모든 tape device는 종류에 관계없이 다음 형태의 logical device name을 사용한다.
테이프 드라이브 타겟넘버는 반드시 4, 5번이어야 한다.
∙ /dev/rmt/xybn
꠆ꠏ -x: logical tape number (Target 4=0, Target 5=1)
ꠐ -y: Tape density (h(high), m(midle), l(low))
ꠐ -b: BSD dehavior (b가 설정이 되면, tape driver는 BSD 특성을 가지는데 이 ꠐ 것은 파일의 끝을 읽었을 때, 다음 파일의 첫 번째 레코드를 리턴 함을 의 ꠐ 미한다.
ꠌꠏ -n: no-rewind (디바이스 이름 끝에 “n'이 설정되면, tape 동작이 끝나도 rewind 하지 않는다. 작업이 끝난 위치에 head가 위치(연속적인 테이프의 백업이 가능하다.)
1) ufsdump 명령어
ꋪufsdump 명령어는 특정 partition의 full dump 또는 incremental dumpdp 사용되 어지는 backup 명령어이다
Dump-level을 check하여 추가된 새로운 파일이나 변경된 데이터를 backup 할 수 있다.
Dump level은 0(full-dump)이 가장 높고, 9가 가장 낮은 level이다.
∙형식
ufsdump [options [arguments]] filesystem
∙Options
꠆ꠏ 0-9: Dump level
ꠐ f: Backup device filename
ꠐ u: /etc/dumpdates file에 update
ꠐ s: Size of the dump tape
ꠐ t: Track of the dump tape
ꠐ c: 1/4 inch cartridge tape driver
ꠌꠏ D: Diskette dump to diskette
2) Dump Levels
ꋪ ufsdump 명령어의 “u' option은 /etc/dumpdates 파일에 Backup 받은 날짜와 dump level 및 filesystem의 정보를 기록한다.
# cat /etc/dumpdates
∙ ufsdump 명령어 사용할 때 이전의 backup 정보의 dump level을 현재의 level과 비교하여 예전의 backup level이 현재보다 높으면 예전의 backup 일부터 현재까 지 변경된 파일들을 backup 받는다.
3) ufsdump 명령어의 사용
ꋪ ufsdump 명령어를 이용하여 QIC-150 tape driver에 root filesystem을 full dump.
# ufsdump 0ucstf 600 18 /dev/rmt/0 /dev/dsk/c0t3d0s0
# cat /etc/dumpdates
2. ufsrestore 명령어
ꋪ ufsrestore 명령어를 사용하여 ufsdump 명령어로 backup 받은 tape를 disk에 restore 시킬 수 있고 이것은 remote로도 가능하다.
ufsrestore 명령어는 전체 filesystem 또는 특정 file에 extract가 가능하다.
Option 'i'를 이용하면 대화식 shell을 통해 디렉토리를 이동하며 복구할 파일시스 템의 list를 확인 할 수 있다.
∙ 형식
ufsrestore options [arguments] [filename...]
∙ Options
꠆ꠏ r: 현재 작업하는 디렉토리에 dump 받은 tape의 내용을 recovery
ꠐ x: Tape로부터 선택된 파일만 extract
ꠐ t: Table of Contents
ꠐ i: Interactive restore
ꠌꠏ f: Restore할 device file name
3. Using The ufsrestore Command
∙ Dump 받은 tape의 내용을 display
# ufsrestore tvf /dev/rmt/0
∙ 특정 파일의 extract
# cd /var/tmp
# ufsrestore xvf /dev/rmt/0 ./etc/passwd
∙ Remote restore
# ufsrestore xvf axil:/dev/rmt/0 ./etc/passwd
∙ Interactive restore
ufsrestore 명령어를 사용할 경우 option 으로 i를 주게되면 interactive mod로 들어가게 된다. i option은 보면서 restore하는 옵션이다.
# cd /var/tmp
# ufsrestore ivf /dev/rmt/0
4. tar 명령어
ꋪ tar(tape archive) 명령어는 file system 상의 하나 또는 여러 개의 파일을 backup 할 수 있다.
∙ 형식
tar options [arguments] filename ...
∙ Options
꠆ꠏ c: Backup 받을 file에 대한 tarfile을 생성한다.
ꠐ t: tarfile의 table fo contents
ꠐ x: tarfile로부터 특정 파일을 extract
ꠐ f: Backup 받을 tarfile나 device 이름
ꠐ v: verbose
ꠐ p: Tape 상의 permission으로 restore
ꠌꠏ B: block 단위로 작업
∙ 예제
꠆ꠏ 백업: # tar cvf /dev/rmt/0 ./st1
ꠐ 보는 것: # tar tvf /dev/rmt/0
ꠌꠏ 리스토어: # tar xvp /dev/rmt/0 ./st1/*.c
5. cpio 명령어의 사용
∙ 현재 디렉토리를 tape에 Backup
# find .-print | cpio -ovcB > /dev/rmt/0
∙ Tape의 목차를 출력
# cpio -iBtv < /dev/rmt/0
∙ Backup 받은 tape로부터 restore
# cpio -iBvd < /dev/rmt/0
∙ 특정 파일을 find audfuddj로 출력하여 archive file로 restore
# find . -name 'file*' -print | cpio -ovcB > file.list
∙ elfprxhfl /home/st1 dir를 /home/st2로 backup
# cd /home/st1dir
# find . -print | cpio -pdmv /home/st2
제 12 장. package Administration
1. 서문
Solaris 2.x는 모든 bundled 또는 unbundled software가 package 형태로 되어 있 다. install 하는 동안 원하는 software package를 CD-ROM 으로부터 자동적으로 첨가할 수 있다.
install 한 후에 어떤 software가 필요하다면 package administration command를 이용하거나 software manager tool을 이용하여 얼마든지 새로운 software를 OS에 첨가할 수 있고 제거할 수 있 다.
2. Package Information 보기
ꋪ The pkginfo Command
∙ 형식
pkginfo [-d device | pathname] -l pkg_name
∙ package 목록 보기
# pkginfo | more
∙ Package 인스톨
# pkginfo -d/cdrom/solaris.2_3/so/Solaris_2.3 -l SUNW audio
# pkginfo -d/cdrom/solaris.2_3/s0/Solaris_2.3 | more
∙ Package 삭제
# pkgrm 파일명
3. Adding a Software Package
ꋪ The pkgadd command
∙ 형식
pkgadd [-d device | pathname] pkg_name
∙ Example:
# pkgadd -d /cdrom/solaris.2_3/s0/Solaris_2.3 SUNW audio
4. Exploring Package Information
ꋪ pkgadd 명령어는 package가 첨가될 때마다 /var/sadm/install/contents 파일에 정 보를 추가한다. 만약 어떤 package에 대해 정보를 알고 싶다면 이 파일을 살펴보 면 된다.