'':':??: ' UNIX '???? :.?. ?R?? 1991 - 1 - 1. '?''?' '?'':?' '? UNIX ?Rך- ? ?R???'?- Computing Science Research Group ij Bell Labs ? ך? ?-'?³ ? '??. ?-ֳ? ?? ?RR?- ?' R?š- ???R-ښ'-R ? - ?? ך? -' R ij [1], '-? ??? ?? - ?R'R?- - ? ?? ?-? [2,3,4]. 1.1. ?'?-? ښ׳ UNIX ??R - ??'?-? R-R?-̃ ?š (?R?R, R??- ׳?- ?) ???-̃ R? R??- -?- - ?-- (?--? ??, ?--? '?-, ?-?, ?- -', '- ? .?.). ''R? ³? ('') R?-? ? ?-- - - R? -?-. Shell - ?R-?-̿ -???ךR: 'ɚ? ? ?-' -'? ? ?R-? ? ?R ? ? ''. 1.2. ?-R?-? ?R? UNIX ------ ------ ?-??׳?-R: ? ? ?<=====>?UNIX? ------ ------ ?'׳?-R: -??R'?R ?, ' ?R?R?; ? ښ- -R׳, ?RR- ?R? "?-??R ?'-" (back ground); R - -? -?R ? R??ך, R? ?R?R' R--?? ??' (- R-?). ?-R?R?R'R??'? ³? - R '???? ??????R ?R?: - 2 - --------- \ --->??R?? ? ? --------- ? ------ ? --------- ? ? ? ?--+-->??R?? ? ------ -->------ --------- ? ?UNIX?==? ?-> ?R? (?ڳ) ------ -->------ --------- ? ? R- ?--+-->??R?? ? ------ ? --------- ? ? --------- ? --->??R?? ? --------- / 1.3. ?? ?R?R?- ? UNIX - ', ??'??'?, '??'??? ?R' ښ? ???R; - '????', ??%'?? -R?? ??? ך?? ?R?- ?R -R? ?'ֳ UNIX; - -??׳?-? ă?׳??? ?'?'R. ?R?'R ?R? ?R?R?- - -?R'?? ɳ-- -R-?³? ښ׳ ?'ֳ UNIX, ך? ?? ??-?ֳ ?R?R? - ??R ?R??? ?R. 1.4. '?³ UNIX ?-R?-? ??³: 1) ??³ 6, 7, III, V Bell Labs AT&T (16 , 32 - ?'?); 2) ??³ 4.2, 4.3 ?'R-?R?R -??³?ך (32 - VAX, SUN). '? ?Rך? - ??? ׳?R? ?'?: ? DEC PDP ('?), ? DEC VAX, Honeywall 6070, ???R IBM/370 (:' ?'?), Amdahl 470, Perkin Elmer, Zilog Z8000, ?Rڳ? ך-ֳ - ?? Motorola MC 68000, ? HP 9000 , ??R-'-? ?R?? - ?? Intel 286,386,486 ??. - 3 - 2. ?:?'': ???? 2.1. ?ښ'R ?R-? ?-š ?R ??̿ ?R'R??' ??: - ?R'R??' (?' ך-R?'?- ?R??? ?R'- R??'? -ڳ'?- R?R?); - ?R' ?R'R??' (?' ?R-R' ?R? ? ³? - ʳ ?R ?--). ?R'R??' R? ? R???-?- ? ??? (?' ?R -? ?R??ך .?.) ?' ??'?- R?ʳ ?R?, R?? ?? ? ??? ?R'R??'?. ??- ?R'R??',-??̿ superuser ?'? ?-- RR ³? (??R - root). ' ښ-R׳, R- "?R?" (???) ?? ?Rڳ ?R'R??'?. ?R-R ƒ?- ?R ?R' ? '?R? ??: login : peter password: . . . . $ passwd Changing password for peter Old password: . . . New password: *** Retype new password: *** $ ^D (Control-D) (?R?  ?-š) login: ??? $ - ?R??? ³? (R? ? ?-?- - '?R ³?R' ' R?). 2.2. ???'?-? Rɳ?R? ? -?R? ??ך ?R-? ???'?-? ?R'??-? ??? ?? -?R: - backspace - ^H - # (??) - 4 - ???'?-? ?R'??-? R? ?? -?R: - ^X - ^V - @ 2.3. ???RR? ?R? ?R-? 'ך: $ date Sun Fed 14 11:38 1985 $ '- ?? ?R'R??'? (?׳?-): $ who mary tty0 Feb 14 08 : 30 peter tty5 Feb 14 08 : 32 . . . $ '-: $ who am i mary tty 0 Feb 14 08 : 30 2.4. 'R ?R-? ?R-? ??' '?R ?R-R R?, '?R R?R ?R: $ who; date mary tty0 Feb 14 08 : 30 sun Feb 14 11 : 38 1985 - 5 - ?R-?- R? - ?R'??R??'-R 'R?, ??'?-- ?R??'. ???R? 'R?R ?R-?-R R? ? ?R-?; R- ך'-? - ??. '? ??R?: - Ě' = ??-׳ij?R (?R'? ³?R' a-z, A-Z, 0-9, _,.,-); - R?ֳ (?') R-? ƒ' ?R-?; -ڳ-? R?-R -š. ??? -al (R? ? R -?R + ' ?? -?); ƒ' R?ֳ ?³ R ?R-?; - ??-? - R??? R?-R R? ³?R'R? ' ?'- ? R?R. ?R?R? ??R? ? ?R-??: command options expression filename(s) ?? ?R-?: rm old.news bod.news rm -fr goodies.c baddies.o grep -o "mary" people 2.5. ?Rך-R?? - ?R?R'?-? ??R? - ?- ^S - ?Rך-R??; ^Q - ?R?R'?-?. 2.6. ?ך-R? ??R'-?- ?R-? ^C ' ?'?ɚ BREAK (-? ?Rך? ?R '-Ѓ ?). 3. ''?'?''?? ??'????-?? ? ''??-?? UNIX ??R?R??R UNIX Reference Manual R?? 8 ??ֳ: 1. Commands - ?R-?; 2. System calls - ³?-? ?R?; - 6 - 3. Subroutines - ?R??R?; 4. Special files - ??Ě'; 5. File format and convension - R Ě'R? R?'?- -; 6. Games - ?; 7. Macro packages and language Conventions - ?R??? ?R?? R?'?- (?' R??R? ??R?); 8. Administrator commands and procedures - ?R-? ?R- ?? ?-R. ??š-? ?R-? RR  '??ʳ ??'R?: NAME - -?ֳ; SYNOPSIS - ³-ך?³; DESCRIPTION - R?š-? -?ֳ; FILE - ?R'?? Ě'; SEE ALSO - ƒ?-? ?R-?; DIAGNOSTIC - R?? - Rɳ??; BUGS - ??--? -??R??-R׳. '? ?R?R??R UNIX Peference Manual - ? ³?? - ??? R? ? -??ښך-R - ?-? ' ?-?? ? '?R? ?? ?R-?R: $ man i <> -??: $ man grep ??? i - -R? ??ֳ; ?' i R??-R, ?R?ǃ??? i = 1. - 7 - 4. ??'?'??? ? '?%'' ? ??ֳ ?R'R??' ? --ښ? ?-- RR R???--̿ ?ך'R? ?R'R??' (Home directory). 4.1. ??ښ ?R??R ?ך'R? '- ??R R-R ך?: $ pwd (print working directory) /users/mary '?R? ?R'-R? ?R??R (????R) ?ך'R? /users/mary, ??? users - R????R ?ך'R? ? ?- ų ?ך'R?R? ''. :? R?- R??ʳ ?ך'R? root ?R?- ǃ??? ?R ǃR'ښ- (?R-??R ?'?-̿ ?ך'R?): root/users/mary = /users/mary. ??-?-? ????R ?ך'R? R-R ??' ?R-?R cd, ƒ??R ?R?. 4.2. ??ښ R??R?R ?ך'R? $ ls - ??ښ ????R ?ך'R?; $ ls -al -a(all) - ?? Ě' ?R??ך'R?; -l(long) - ?R'- -Rֳ; $ ls / - ??ښ ?ך'R? root; $ ls -l / - ??ښ ?ך'R? root ?R'-. - 8 - 4.3. '? ?R-??R?R ?ך'R? ?? ??'R, ?R-??R ?ך'R? ?? '?? ?, -R ?-R ³? R? ?- ?. --------- ? / ? --------- ? ---------+--------+--------+--------+--------+--------- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ------- ------- ------- ------- ------- ------- ------- ? dev ? ? lib ? ? bin ? ? usr ? ? etc ? ? tmp ? ?users? ------- ------- ------- ------- ------- ------- ------- ??ֳ- ??'R- ښR ? ?R-? ??- ?ך'R? '-? ?? ?R'- ? ?-- ?--? ?R'R?- Ě' (?R?- ?? ? R Ě' ?'? ?R?.) ?R-? ? ? ---------+--------- -----+---- ? ? ? ? ------- ------- ------- ------- ? lib ? ?games? ? bin ? ?peter?------ ------- ------- ------- ------- ??'R- ? ???R ?? ?R'?? ?R-? ?ך'R? R-R ?RƒR? ?R-?R ls: $ ls -l /bin - ښR ?R'?? ?R-?; $ ls -l /bin/bin - ???R ?R'?? ?R-?; $ ls /dev - ??? R?; $ ls /users - ?ך'R? ?R'R??'?. - 9 - 4.4. ??-?-? ?R??R ?ך'R? ??-?-? ?R??R ?ך'R? ?R?R? ?R-?R (cd - change directory). $ cd /etc $ ls -l - ??ښ ?R-? ?-R $ cd /usr $ ls -l bin - ???R ?R'?? ?R-? $ cd - ?? ??R? - ?R? ? R???--R (home) ?ך'R?. 4.5. 'R?'?- ?R -?-R?- ?ך'R?R? Ě'R? ?'? ?R'ɳ? ??? ڳך '-̃. '?R' . _ ??- R'?R ?- ?-. '? Ě' ??? R?R-ښ- -? ?- R?R ³?R'R (R-R?-?): .c - ?R? - C (-??, program.c); .h - ?? - C, ??'ښ?̿ ? ?R? - C (header); .f - ?R? - ?? '??'???; .p - ?R? - ?? ??'??'?; .o - R???-̿ ?R?, ?R'?--̿ -'RR '?R?R ?; .a - ??'R?-̿ (ų?-̿) Ě'. - 10 - 4.6. ??ښ R??R?R Ě' ?R-? cat (R concatenate) - ?? -??R'?R (' R?-) Ě'R? -?? ?'ך - ך-?-̿ ??R? (Standart Output), R?-R - ?- ??'?. ??: $ cat /etc/motd - ?RƒR? Ě' (message of today) The system will down at 17:00. ?R Ě', R???̿ ?-RR ?' ??ʳ R??- '?-, R?-R ??ښך? ?R׳?? ? ?R?? ? ³? (login). :' ' ?' ??R R??-?, R-R -??ښך ??  ?? ? ???. 4.7. ?RƒR ?R-֚ Ě' ?R-? tail ??ښך? ?R-? Ě'. ?R ǃR'ښ- - 10 ?R- '??- R?: $ tail /usr/pub/greek . . . . ??-R R-R ? ?R'??R (R -?R -) ' -R? R?, R ?RRR ??ښך ?R ?R-֚ (R -?R +): $ tail -3 /usr/greek - ?R'??-? R?; $ tail +6 /usr/greek - ?R'??-? R?, -ڳ- 6-. - 11 - 4.8. ?????'?-? ׳? Ě' ??-? ?R-? file: $ file /bin/ls /usr/bin etc/passwd usr/include/stdio.h /bin/ls: pure executable - ?R'-?̿; /usr/bin: directory - ?ך'R?; /etc/passwd: ascii text - ?? ? ?R?? ASCII; /usr/include/stdio.h:C program text - ?? C-?R?. 4.9. 'R?-? ?ך'R? ?R'R??'? ' ?Rڳ ?ך'R?, ?'ʳ ?R-? ?? ??? '', R?? ?-RR. ' R?? R? -?'?ʳ? ?- ך'R? ?R-?R mkdir (make directory). '?- ? ?ך'R?R? ?R'R??'? ( ?R ???): ---------- ? users ? ---------- ? ---------------------+-+------------------------------- ? ? ---------- ---------- ? group 1? ? group 2? . . . ?ך'R? ??? ---------- ---------- ? ? ? ------------------ ? . . . ? - 12 - --+--------------------+------------------------------- ? ? ---------- ---------- ?R-??? ?ך'R- ? mary ? ? peter ? ? ?R'R??'? ---------- ---------- ??? group1 ? -+------------------------+------------ ? ? ---------- ---------- ?-?--? ?ך'R? ? progs ? ? texts ? ?R'R??'?, R- ---------- ---------- ???? ?R mkdir ? ? ? ---------- -+----------+---------------- ? ? ? ? ? ---------- ---------- ---------- ? ? c ? ? p ? ? f ? ? ---------- ---------- ---------- ? ?- ? ? ? ? ---------- ?- --+-- --+-- --+-- ---?letters ?--+- ///// ///// ///// ---------- ?- ' Ě' Ě' Ě' ?- '' R?- ך?R ? '??? ??R'- ?R-?: $ cd - ??- "?RR" (home); $ mkdir progs texts - R? ?ך'R? ? home; $ cd progs - ???׳ ? ?ך'R? progs; $ mkdir c p f - R? ?ך'R? ? progs ך? ?'??. - 13 - 4.10. ?R?R?-? Ě'R? ?R-?R cp ?R ?R?ɳ ?RR? R? Ě': $ cp /etc/motd message. ?R'?, R ??ʳ ?ך'R? progs/c, R?' Ě' progs/c/message. ?R-R ?R?R? Ě' ? ??ʳ ' ??R ?ך'R?, -? ?- ??R ?-: cp /etc/motd progs/c. ??? R?- Ě' progs/c/motd. :' ??ʳ ?ך'R? progs/c, R?R ? ??ך ?R׳?? ?R-?: $ cp /ets/motd . ( R?R ? ???? ??). :' ?RR ?ǃ?- ?ך'R?, R ? ???? ???R?R R-R ?? -??R'?R Ě'R?: $ cp /etc/motd /usr/include/stdio.h progs/c ?? ?R? Ě' - ?R? R???? ?R ?R? R?-R?R Ě' (ƒ. ??' 4.16). 4.11. ???-R ????-R?-? Ě'R? ?R-?R mv ?ך ?R-? ???-R³ Ě' ' ?ך'R?  R?-R?R ?ך Ě'R?R ³? ? ??R?. ?R?R-̿ ?? - ????-R?-? (?' R?-̿ ?R-?-̿ ?ך'R? R???). ?'ڳ? R ?R?R?-: R?-̿ Ě' ?R???. ??: $ mv message mesg $ ls mesg .... - 14 - :' Ě' --?- ʳ?- R ?³, R ³? ??ښ- ך? ? ?R? ?ɳ?? ?R?????-? ???-Rš. ??: $ cp message mesg $ chmod 444 message - R'?R ?-? $ mv mesg message message: mode 444? y 'RR ?ǃ?- R? ? ?ך'R?R, R?? Ě' ???-R- ³ ?R? ? ? ?-?: $ mv message progs/c $ cd progs.c $ ls message .... ?? ? 'ښ? cp R? ? ???-??-R -??R'?R Ě'R?, ?' "?RR" ?ǃ?- - ?ך'R?. 4.12. '?'?-? Ě'R? ?R-?R rm rm ?'? Ě'  ?ך'R? -R? ??R: $ cd progs/c $ rm motd $ ls message (-? motd) - 15 - ?R-R ?' R?-R ?R-?R rm -??R'?R Ě'R?. : -??- ׳?-̿ ?-, ??ʳ ?R?????- - ??̿ Ě' (?' -i): $ rm -i file1 file2 file1 : n (no - -?) file2 : y (yes - ?) ?R-R R³R? -R?-? ?'R -f (?? ?' Ě' ʳ?- ?R ?³): -f -i ?-R ?'ښ ?? ??. $ rm -f stdio.h. ??-?R ׳ ??? -?' -R ?ך'R?, ?R? -? -R?- ?? Ě'. ?R R-R ??' ??³?-R: ?' -r (-R ?? ?R????R) $ rm -r progs. '-: $ rm -r * - -R ?? ?R?????R. 4.13. '-R?-? ?R?R ?ך'R?: rmdir ?R ?ך'R? ?'? (remove directory): $ rmdir progs [rmdir:progs not empty] - RR??-?, ?' ?ך'R? -? ?. 4.14. ??R'R?-? ?ך³?R'R? *, ?, [] ??ך³?R' 'ǁ ?' ?R?ך-R?? '? R? ³?R- 'R?. ' ?- Ě'R? ? ?R-? ? ?- Shell: * - ???ך?'? ?R?R'- R? (?RR-R, ?); ? - '?R R?-R-̿ -?; [C1 - C2] - '? '?  ??R- C1 - C2 (? ך-?- ? ASCII). - 16 - ??: 1) $ ls c? c1 c2 c3 cs cz 2) $ ls c* c1 c12 c2 c23 c3 cs cs1 cxy cz 3) $ ls ?1* c1 c12 4) $ ls *1* c1 c12 cs1 5) $ ls c [12 x y z] c1 c2 cz 6) ls c [12 x y z *] c1 c2 c12 c25 cz cxy 4.15. ????ښ-? ³?R' ? ?- Ě'R? '?R' R -?R control: ^A, ^[ (escape) .?., ?R'- ?--? R?-R???--̃ -׳? ?'?ɳ Ctrl ?--R ?R'? ³?R' ^ ?'?ɳ, -? ??- - ??ښ׳. ?R-? ls R? ?R- ? Ě', rm ??? ?R-? R? -? ?- R- ?R Ě' (.?. ښ ³?R'R? -? ??-). 'R? - ? ?R'R- ?- * ? ?- (' ?R'R?-? ? rm -i): $ ls arron circle square triangle $ rm square rm: square non-existent (?' ??R q ? ?- ^q) $ ls s* square - 17 - $ rm s* $ '??? Ě' ?'?-. 4.16. ''??'? Ě' ʳך Ě' ??̿ Ě' ?ך'R? ? ?'??'֚ - R?-R R ?R'- R??', R??ɳ ? ???̿ . ''??'? R? ? --ڳ ʳ Ě' R RR- ? ?'R? ?R'R??- '?: - ?'??'? (š); - ??? - ?R'R??' R ? ???, ??? ?'??'?; - Rך'-? - ??, ?ʳ? ?R? ? ³??. ??̿ Ě' ?? 3 ?? ??- - ?R?: - ?-? (r) read - R-R ڳך (ƒR?) R??R? Ě' ' ?ך'R? (ڳך ?'R -l ? ls); - ? (w) write - R-R ?- R??R? Ě' ' ?ך'R? (R?? ' ?' Ě' ? ?ך'R??); - ??R'- (x) execute - ?R'R? Ě' ?? ?R-? UNIX ? (search) ? ?ך- 'R??. - 18 - '? ?R?-ֳ ? ??R? ??- ?R? ?' ? ?'R? ?R'R??'? (9 ?R?-ֳ) ?? ? R? (?' ?? ?? ?) rwx rwx rwx ' 777 ? ? ? ''??'? ? ? ??? ? ?ך'-? ??? ?? ?R? ??? -R: r--r--r- ' 444 ??: $ ls -l /bin -r-xr-xr-x 1bin 1986 Nov.26 12:00 ar ... ?ך ?R-? ?R??? ? ?R?. 4.17. 'ך-R?? ?-?-? ? ?R? ? Ě': chmod 'R ?R-? chmod(change mode) ?' ך-R?? ?: chmod <Ě'> ??: $ chmod 644 f1 f2 f3 ??? 644 RR???? rw-r--r-- 'R ?R-? chmod ?' ?-?- ?: chmod <?-?-> <Ě'> ' ?-?- ?R' R?R-?-: u - user r - read g - group w - write o - other x - execute a - all - 19 - = - --ڳ + - ?R?? - - R- ??: $ ls -l -r-------- ... f1 -r-------- ... f2 -r-------- ... f3 $ chmod a = r, u + w f1 f2 f3 ' (???'?--̿ ?- ?-?- ?? ?R?) $ chmod u = rw, go = r f1 f2 f3 $ ls -l -rw-r--r-- ... f1 -rw-r--r-- ... f2 -rw-r--r-- ... f3 $ chmod o-r f1 f2 f3 $ ls -l -rw-r----- ... f1 -rw-r----- ... f2 -rw-r----- ... f3, '?? ?R'R??', -? ?R?ʳ? ? ???, ?R?' ??R ڳך Ě'. 5. ?????'' ? ''??'??'?': '?%'' 5.1. 'ך-?-? Ě' ?-R?? ?R-? ?Rך ?R ǃR'ښ- R ך-?-̃ Ě': - 20 - - Standard Input (S.I.); - Standard Output (S.O.); - Diagnostic Output (D.O.); ??-?R ? ??? ?-?- ǃR'ښ-, .?. ?RR- -R ? ??? Ě' ??R ך-?-. ?R-R ך?? ? ???? D.O. ?R'R? S.O. ?׳ ??? -?- ???-??'?-? (????ֳ) ??R? ??R?. 5.2. ???-??'?-? ך-?-R?R ??R? ??R'? -? >: $ ls -l - ??R? - ?- = standard output; $ ls -l > dirconts - ??R? ? Ě' dirconts; $ cat dirconts - ??R? - ?-. ?R??' ?R?? ³?R' > -?R??'-. 'RR- ???-??'?-? ??R? ?R??'?-? ( ?R?- ?-? ? Ě'): R?R-ښ? >>: $ pwd >> dirconts (?R?? ? Ě' ????R ?ך'R?). 5.3. ???-??'?-? ך-?-R?R ??R? ??R'? -? <. ??: $ mail - ??R? RR??- ?-; $ mail < message - ??R? RR??-  Ě' message. ?ך ?RR-R ?R'? ??, ? ???-??'?-? ??R?. '?'-̿ 'ښ ???-??'?- ??R?: - 21 - $ cat < this_file $ cat this_file ?R ??? ???'?--? ?R-?. ?R-R R?-R???--R ???-?? ??R?, ??R?. ???: $ cat < left > right. ??? RRR-: -?R, R? left -? ?-'R right, -? R-R (?RR?? ?R?R) ?R? ?R?-R Ě'. ??R?-?? >>, ? > (?R??'?-?, ? ?). 5.4. 'R?-? Ě' ?R-?R cat :' -? ?- ?R?-R Ě', R ??? ????R'? ך-- ?-̿ ??R? (?'?). ??-R???--R ???-?? ??R? ? -R?̿ (R???̿) Ě' $cat > newfile. ?? ך-?-̿ ??R? ??R?-: -?R?'?-? 512 (R?- -R) -?R? ?RR ??R?. ????R?--̿ ('?, - 'ښ ?R??) ??R?: ?'R -u (unbuffered): $ cat -u > people Mary 101 Sally 113 Jana 121 ^d [?' ?R-֚ ??ך(EOF)] $ - 22 - ?R-R ?R??': $ cat -u >> people Charlie 122 Bill 100 ^d $ 5.5. 'R??-?-? ?R-? ?-' (pipeline) 'ך-?-̿ ??R? R?-R ?R-? R? ? ך-?-̃ ??R?R '??? ?R-?. ??R-ښ? -?R | (??׳?'- - ?ך). ??: $ who | wc -l - R?-? ?? ?׳?- ?R'R??'? ?R?? ڳ' (count); 19 - R??, R ? 19 ?R'R??- '?. $ ??: $ ls -l /tmp | grep maryann | sort +3nr | lpr '׳-? ?R? ??, R׳R?? ??ښ ?ך'R? R??ʳ (?R 4- ?R- ?R?R- /tmp R? "maryann" ') -??-- ?--R?R ?? ?? - 23 - 5.6. '' '? -? ?R-?, ?RR? R? ??R? R ך-- ?-R?R ??R? ??R? - ך-?-̿ ??R?. ?R'ɳ-?R ?R-? ?'? ij'. : ?'?-: ls -? R? ?Rך R ך-?-̃ ??R- ?R. ?': lpr -? R? ?Rך R ך-?-̃ ??R?R. 5.7. ?''?'-̿ ך-?-̿ ??R? ???-??'?-? ??R? ------------------- --->?cך-?-̿ ??R?? --------- --------- ? ------------------- '? ך?R?: ? ??R? ?->??R-??-->? ? ? ? tee ? ? ------ --------- --------- ---------->?Ě'? ------ ??: $ ls -l | tee dirconts - ?-, R ? ??'R?-? ך-?-̿ ??R? ??R? ? Ě' 5.8. '?-R׳?? ??R? 'RR??- R? Rɳ??, ?R-?ʳ ? ??R'-?- ?R-?, ??R? - ??-R׳?? ??R?, ?R ǃR'ښ- R (?? ך-?-̿ ??R?) - - ?-. '?-R׳?? ??R? R? R? ? ???-??'?- ? '- ?R Ě'. '' R?R ?R'? ????R Ě' (?'R?), ?RR̿ ?' ך-?- Ě'R? ??-: - 24 - 0 - Standard input; 1 - Stfndard output; 2 - Diagnostic output. ??: $ cat somefile > outfile 2> errfile, ??? -? > ???'?-?- 1>. :' ? R׳?, R? RR??- R? Rɳ?? -??? -? ?R- ?'', -??? - /dev/null. :' ? R׳? -?? Rɳ?? ? ?, ?? ??R?, -?R -? Shell: $ cat somefile 1> outfile 2> &1 ('? - ???- -??'?-?) Cshell: $ cat somefile >& outfile ' $ cat somefile |& lpr. 5.9. ???R? ?R-? ? ?? ?-??R ?'- (background) ??-R ?R-? ??R'- ? ?? ????-??R ?'- (foreground), .?. "?R? ? ???". ??-?R, ?' ?R ?? ??R'-?- -??RRR ?R-? ? R׳? ??R'- ??? ?R- -?, R (???) ?R-? R-R ??R'- ? ?? background: $ nroff doc & 2042 $. ?? R ?R?R ??ɚʳ -? &. - 25 - '? UNIX R?? ?R?, ?RR̿ ??R'-? -??- ³R R ?R-?-R?R -???ךR. ??? 2042 - R ??-׳- ij?R R?R ?R?š (PID). '? ???-??' ך-?-̿ ??R? ?R?š ?-??R ?'- ? Ě' (- R?-R׳ R???- ??R? "????-??R" "?-??R" ?'- - ?-?). $ nroff doc > doc.format & 2042 $ ': $ nroff doc | lpr & 2042 $ -R? ?- RR-? ?R?š ?-??R ?'-, -?R - ?R'R? ?R-? ps (process status): $ ps PID TTY TIME CMD 2036 02 0:05 sh (login - ?R? ?.2) 2042 02 0:02 nroff doc (background) 2043 02 0:01 ps (cat pS) 2050 08 0:03 sh (login - ?R? ?.8). ?R ?R???, R nroff ?? -? ?R-ڳ'. ?'ڳ l a ? ?R-?? ps R? ? ?R'? -Rֳ R? ?׳?- ?R- ?š: -l - -Rֳ R R??'?, ??, ?R? .?. -a - R ?? ?R?š ³?. - 26 - 5.10. '?R'-?-? ?R?R? -? ?R?R 1) $ nice nroff doc > doc.fmt & 2099 $ ?? ??R'-?-? ?R?š ?-ɳ ?R?R. ?- ښ'-R? -?-? nice ?-R 20; ?? ?R??'?- ? ?R-?? nice ?R ǃR'ښ- ??- 10; R?R nice = 30. ?R? ? ??, ? ?-? nice. ?': $ nice -5 nroff doc > doc.fmt & ?? ?? ?R??'?- ?- ?-R, nice ??? ??- 25, R ? ?R? ??? - 5 ??- ??, ? ?R ǃR'ښ- -. 2) nohup (no hang up) - -????'-R ? ??-?- ?'?R--R '-, - ?RRR "?³" standard output) $ nohup nroff doc & 2176 $ Sending output to nohup.out (?- standard output ? ?? '-) 3) R??-R? ?R'R?-?: $ nice nohup nroff doc > doc.fmt & 5.11. ?ך-R? ?R?š $ kill 2042 (? ?R? PID = 2042) ' $ kill - 9 2042 (³?-' -R? 9 ??'R?-R?R Rך-R?; - ??? ³?-'  -??' (1,15), ?R'?? ³?R - ??, R-R ?'R?R?, -?š? RR??? ??ֳ). - 27 - 6. ?:'??'??' EX ? VI ?R ?R?-ֳ ?? -??????ʳ ?RR-R?: ex - R-̿ ???R (ɳ?-? ?R?R?R ???R ed); vi - ?--̿ ???R (R? ??R'- ך?? ?? ?R-? ???- R ex). 6.1. 'R? vi ) $ vi myfile (R?-R ' -??R'?R ?- Ě'R? ?? ?R- ??' ?' ?R'??R??'-R?R ?R? - ???׳R?-?). :' ך?R?R Ě' -?, R ?R? -ښ'R ?R?R Ě'; ?R - ? -ښ'? ???R R?. ?) $ vi + myfile ? ?-? - ?R-? Ě'; ?R - ? -ښ'? ?R'??-? R?. ?) $ vi +10 myfile ? ?-? - ښ Ě' R? 10 - ? ?-? ?-; ?R - ? -ښ'? R R?. 6.2. 'R?  vi ) :' ? R׳? ?R- ?-?-: Esc : w q ! Enter (- - ?'? Esc, ???׳ ??R?Rڳ? - R-R ?R? ? --? ښ׳ ?-, ???׳ ³?R' w, q ?R?'֚?'-̿ -?, - - ?'? Enter). - 28 - ?) :' -?: Esc : q ! Enter 6.3. ?RֳR-R?-? ?R ) ?'?ɳ <-,,,->; ?) H - home, M - middle, L - last: -ښ'R, ???-, ?R- -? ?-; ?) w - ????? - -ښ'R '????R 'R?; e - - ?R-? ????R 'R?; b - -? - -ښ'R 'R?. 6.4. 'R??'?-?, ?-?-? -R?-? ??ך ?R???׳ ?R ? -ǁ-R ?Rֳ - R?-  -? ?-- ?'?. '-R?-? x - -R ?? ??? (??? ?R), ?? ???- ? - ?? ?R. ??-?-? (?-): r - ?- ??? ???; rv - ?- - v. s - ?- R?-R ' -??R'? ??? ??R; -??, 3stest - ?- ? ??? R?R 'test'. 'R??'?-?: i - ?ך? ?R?R'-̿ ?? ???? ?RR. ?R-? ??R? ??ך - ?'?ɚ Esc; a - ?R?? ?R?R'-̿ ?? ?R'? ?R. ?R-? ??R- ? ??ך - ?'?ɚ Esc. - 29 - 6.5. ???ֳ -? 'R? R? '-R?-? 'R? ('R?): - ?R???׳ ?R ? -ښ' 'R? -: dw (delete word); 2dw - 2 'R?; ndw - n 'R? (n - ڳ'R). ??-?-? 'R?: - ?R???׳ ?R ? -ښ' 'R? ??ښך: cw < 'R?R > Esc 2cw Esc .?. '-R?-? ښ׳ R? d$ - R ????R ³?R' ?R ?R-֚ R? (??ʳ ³?R' ?? - R ? ??'? D); d^ - R -ښ' R? ?R ????R ³?R' (??ʳ ³?R' Rך?). ?- ښ׳ R? (-'R?-) c$ (' C) Esc - ?- ?R-֚ R? (R ?R); c^ Esc - ?- -ښ' R? (?R ?R, -? ??'ښ ??R). ; '-R?-? ?'R R? dd - -R?-? R?-R R?; 10dd - -R?-? 10 R?. ?- ?'R R? cc < ?? > Esc - ?- R?-R R?; 5cc < ?? > Esc - ?- ?׳ R?. - 30 - 'R?-? -R?R R? R - ?ך R? ?R'? ??? R?; O - ?ך R? ???? ??? R?R. '?R? ?R ?R'? ??? R?: ^i (' I) - ?R; $a (' A) - ?R'?. 6.6. ???ך-R?? ښ׳ ??ך (cut-paste) - ??ך R-? ? ??? ???R, ? ?ך?- '? ? ??R? ?R ' ? -??R'?R ? (?' ?ך?? ?R?R?). ?? R? ? ?-R?--̃ R?- - -R- --̿. ? ??R'-?- ?R-? ndd (??? n - ڳ'R) ?'?? n R? ?R?? - -??RRR? ?? ? -??-R?--̿ ??. 'R??-? ?? R-R ?ך?: - ?R'? ??? R? ?R-?R p (put); - ???? ??? R?R ?R-?R P (Put). ''??? ?R-, R ? -R--R ??? - ?R'??- - -R?--̿ ??, ????ʳ? - ???R?-R ?! (?R-? (change) - R? -R ??). 6.7. 'R-?-? ښ׳ ??ך ?' ?R'????R ?R'R?- (yank) yw - R- 'R?R (?R - ? -ښ'? 'R?); yy (' Y) - R- R?- R? ; 5yy (' 5Y) - R- 5 R?; .?. (? -R--R ???). - 31 - ??-R?--? ?? ? ?-  R?-R ??? R a ?R z; ?R? ? ?? - ?R ?- ?? ?? "x, ??? x - ??. ? ? ?? a "a3yy - R- 3 R? ? ??? a ( -ښ' ??). 'ך?? ??ך  -R--R?R ?? (?? R?-R): - p - ?R'? ??? R?; - P - ???? -?. 'ך?? ??ך  ?-R?--R?R ??: - "ap - ?R'? ??? R?  ?? a; - "aP - ???? -?  ?? a. 'R??'?-? ? ??: - "aAdd - ?R?? ? a -R?-- ?R dd ?? R?. 7. ???????????'???: ' ?'?: SHELL 7.1. '?³ Shell Shell - -???ךR ?R-?, ?R??? ?-' '  ?R-?-R?R Ě'. ?R R?- ?R? (.?. -? ?R? ? ?R R??ֳR--R ³? UNIX). :? R-R ?- - ?? ' ? -??R'?R. '?? -?R'?? ??-? ??³: - Shell (??³ 7 UNIX) ' Bourne Shell (R Ě' ?- R S.R.Bourne  ij Bell Labs) [5]; - C-Shell (??³ Berkley UNIX). ?- ?RR, -R ? R'ڳ: C-Shell R-?? ? ?'R?R- ?R ??, R?-̿ Shell ?? ?R'?? '??--? ??'- ʳ? ?. Shell - ? ?R?R?-, ך? ?? ??: - ????--?; - 32 - - ??'ʳ? ? (׳? if); - ?R??R? (? R ڳ'? ?R-?-? Ě'); - ???? ??R?; - R??R? ???-. 7.2. '' -ښ' ?-š (login - Ě') ???³R R ??³ Shell ? ?R?? ? ³? UNIX ? Ě' -ښ' ?-š ???R????'?--̃ ?-?, R? ??R'- - ??R ?? ?R-?-̿ Ě'; - ?' UNIX ??³ 7 R: .profile; - ?' C-Shell R: .login /' .cshrc. ' R Ě' R?-R ?R?ʚ ?R-?: - ך-R?? Ś??׳? ?-'; - R?R???- ׳? who, date; - ך-R?? ?ך'R?R? ?R? ?R-? (R?-R: /bin, /usr/bin); - ƒ?- ?R??? $ - ??R ³?R' .?. 7.3. ?R?? ? Shell ?R ?R-?-̿ Ě'. '? ?RR? ??R ?R? - ??R'-?-?: 1. $ sh dothat (??? dothat - -??RR̿ ?R-?-̿ Ě'); 2. $ chmod 755 dothat (??' ??R ??R'-̃, .?. -rwxr-xr-x) $ dothat. ''??? - ?R?R? ?R? ?ך'R?R? ?R-? (?R ǃR'ښ- -): - ??ʳ; - ³?-̿ /bin; - ³?-̿ /usr/bin. - 33 - ''??R??'-R, ?' ???R ?R-?-R?R Ě' ??'? ?R-? ? ³?- ?ך'R?, ?R'??- ך-? -??R- ?-R (?' R'?R -? -? ?? ?R'-R?R ?-). 7.4. ????--? Shell ' ?? Shell ??³ 7 R????'?-? ????--R R?? -?-?: var = value. 'R? ? ????--R - ?R ?- R -?R $ ????: fruit = apple (R????'?-?); echo $fruit (?R?); apple (?'ך echo). '? R?R, ????-- - R R?. 'RR- ?R-??- ?ֳ R?: $ fruit = apple $ fruit = pine$fruit $ echo $fruit pineapple $ fruite = apple $ wine = ${fruite}jack $ echo $wine applejack $ '?? ?RR? ך-R?? -?- ????--R - ??R?  Ě' ' ??R?  ?R-? (ƒ. ??' 7.6), ך?? ??- ?-? -?- ????--R - ?? ֳ?' for  ?? -?-, ?--R?R ?-R ' ?R ǃR'ښ- (ƒ. ??' 7.9). - 34 - ????-- R? ?: 1) - ?R'-R?R ?- Ě': $d/filename, ??? $d - ??- ??-- (-??, d = /usr/bin). 2) - ?R-?: $ S = "sort + 2n + 1 - 2" (-'ڳ? ?R??'R? ??? ??- ?? "") $ $S tennis/lpr $ $S basketball/lpr $ $S pingpong/lpr $ ??-?R ?- -?- ?' ?R-? -? R? ? ³?R' |, >, <, & (R?R-ښʳ? ?-', ???-??'?- R-R?̿ ?). 7.5. ???R????'?--? ????--? Shell ???RR?  - R-R R'?R ڳך. ??R'?? ?R??- ?'-?: HOME - "?R-" ?ך'R? ?R'R??'; 'ǁ ?ǃ?-R ?R ǃR'ښ- ?' cd; PATH - -R??R ?ך'R?R?, ? ?RR UNIX ? ?R-?; PS1 - ???- ?R??? (R?) ³? (?' v.7 - $). ??-?-? PS1 (?R???) R?-R ??'? ? login - Ě- '?, -??: PS1 = ? ' PS1 = "? " ( ?R??'R, R ?R?-??). ??-?-? PATH: $ echo $PATH - ?RƒR?; :/bin:/usr/bin - -?-? PATH; $ cd - "?RR"; - 35 - $ mkdir bin - -R?̿ ?ך'R?; $ echo $HOME - ?RƒR?; /users/maryann - ??ʳ ?ך'R?; $ PATH = :$HOME/bin:$PATH - ?-?-? PATH; $ echo $PATH - ?RƒR?; :/users/maryann/bin:/bin:/usr/bin - -R?R? -?-? PATH. 7.6. 'ך-R?? ????--R Shell ??R?R  ?R-? ?? 1: $ now = `date` (??? `` - R?-? ???) $ echo $now Sun Feb 14 12:00:01 PST 1985 $ ?? 2: (?R'?-? -?- ????--R  Ě'): $ menu = `cat food` $ echo $menu apples cheddar chardonnay (³?R' ?R?ך ??? - ?- - ?R??'). 7.7. ????--? Shell - ?ǃ?- ?R?? ?R RR?̿ ׳? ????--, ?-? ֳ. ??: $ dothis grapes apples pears (?R??). 'R?? ?RֳR--? ?? (?ǃ?-) R ?R-? ?R- ?- ?R ?-: $1 = `grapes` $2 = `apples` $3 = `pears` - 36 - .?. ?R $9. ??-?R ? ?R-? shift, ?RR ???? ?- - Rך'-? ?ǃ?-, ?' ?R'? 9 (R?-R ɳ-R 9). '?R ?RR? ?R'ڳ ?? ?ǃ?- (?? ?' ?R'? 9): $*, R ???'?--R $1$2 ... ?R'??R ?ǃ?-R? ???? ??R ????--R: $#(??). ??R-?, ?R?? - R $0; ????-- $0 -? ڳ?? ? ?R??? $#. 7.8. '?-? R??R Shell ?R? ?R??, ? ?? Shell ? ?-? R??- R ׳? "if-else" "while-do". ?R?R?-? - Shell, ?R? -?š- ?R??, ?R'? ?': - R?R? '?R׃ ???? ?R?R?-? ??R ? ? ' ' '??'???-77 (-? ?R?'ֳ, '-?R?-, ??, ?RRך R'??); - R??- ?-ֳ? ?R?R?- -??R?R?. 7.9. ???R ֳ?' for ? ?? ?R-?-̿ Ě' makelist (?R??) $ cat makelist sort +1 -2 people | tr -d -9 | pr -h Distribution | lpr. :' ??R R?-R?R Ě' people ?? -??R'?R, -?- ?: adminpeople, hardpeople, softpeople,..., R -?R?R?R ?R?R ??R'-?-? ?R?? '-̃ Ě'. ?R ?RR-R ?RR for - R??R. '-ך?³: - 37 - for in do done ?'??? 'R? for, do, done ? -ښ' R?. ?? (?- ?R?? makelist) for file in adminpeople, hardpeople, softpeople do Sort +1 -2 $file | tr ... | lpr done. ?R-R ?R'R? ?ך³?R' Shell ? ??? -?-. ??: for file in *people (?' ?? ?-, ?R-ښʳ - people) do ... done. :' in R??-R, R ?R ǃR'ښ- ? ???? ?? -?- - ??? ?R? ?ǃ?-R? ?R??, ? ?RRR R??- ֳ?', ?' ֳ?' -? ? ?R???, R - ?R? ??R? ?R-?-R R? (R ? ? ???? ?R?? ??? ?R- -?). ??: for file do ... done '' ?R? makelist adminpeople hardpeople softpeople ?- ?? ??'-R R ? šR?. 7.10. ''R?-̿ R??R if ??R'? ?- ????--, ???ך?'ʳ? -?- ?- ?R? ?R??: - 38 - sort +1 -2 $1 | tr ... | lpr ?? -???-R?R ?R?: makelist (?? ??R?), ??? $1 -?R????'?-. ??? Rɳ?? R-R, ?R?? ?R'??R ?ǃ?-R? - -?-? ????--R $# ?R???R if - R??R. ??: (?-?--R ?R?? makelist): if test $# -eq 0 then echo "You must give a filename" exit 1 else sort +1 -2 $1 | tr ... | lpr fi ?? test exit - ?R-? ?R??? (ƒ. ??' 7.11) ?R?. '? R?R, ³-ך?³ R??R if: if ; then ; [else <-? ??R'- '??ʳ? ?R-? ?R fi>] ?'??? 'R? if, then, else fi ? -ښ' R?. '??-R? ??R'-?-? ?R?? R-ښ?, R R- ?R?ʚ- ? -?-? true = 0 (zero) (-??? - ?R?ʚ?R? -?-? -? ?-R 0). ???R exit 1 ?? ?R?ʚ?R? -?-? 1 ?' -?- ?-R?R ??R'-?- makelist ??ɚ? ?R??. 'RR- ?'R?--? if. '' else if ? R??-? elif, ?RRR? R?-R???--R R?ʚ? fi. 7.11. ?R-? "test" ?? ?'? ښ Shell, -R ??-? ?- Shell- ?R??. - 39 - ??? ׳? ?R??R?: - R?-? ڳ'R? -?-; - R?-? ׳? Ě'; - R?-? R?. '' ??R?R ׳? ?R ?׳? (R??ֳ op). '' ڳ?' ³-ך?³ ך?R: N op M, ??? N, M - ڳ' ' ڳ'R?? ????--?; op ?-? -?-: -eq, -ne, gt, -lt, -ge, -le ( R?-̃ ƒ'R, ??, -??, ? '??'???). '' Ě' ³-ך?³ ך?R: op filename, ??? op ?-? -?-: -s (Ě' ??? -? ?); -f (Ě', -? ?ך'R?); -d (Ě'-???R (?ך'R?); -w (Ě' ?' ?³); -r (Ě' ?' ?-). - 40 - '' R? ³-ך?³ ך?R: S op R, ??? S, R - R? ' R?R?? ????--? ' op1 S op ?-? -?-: = (???'?--R); != (-? ???'?--R); op1 ?-? -?-: -z (R? -'??R ?'-); -n (-? -'?? ?'- R?). ??R-?, -??R'?R ?R??R? - ׳?R? R? ? R?- ??-?- 'R??? R??ֳЃ -a (AND) -o (OR). ??: $ if test -w $2 -a -r S1 > then cat $1 >> $2 > else echo "cannot append" > fi $ ' -??RR ?-ך ?' UNIX ??R ?R-? test ?R'-  ???-? ?R??, .?. if [...] ??R if test ... . 7.12. ???R ֳ?' while '-ך?³: while do done :' "?R-?" ??R'-? ??-R, R ??R'- "?R-- ?", ??ɚ?? ?'??̃ 'R?R done. - 41 - ??: if test $# -eq 0 then echo "Usage: $0 file ..." > &2 exit fi while test $# -gt 0 do if test -s $1 then echo "no file $1" > &2 else sort + 1 - 2 $1 | tr -d ... (?R??) fi shift (* ???-ǃ?R? ?ǃ?- *) done ?R?? ??R'- -? ?? ?ǃ?-ך. 7.13. ???R ֳ?' until ?-??׳? 'R?? ?R?R?- ?R ?-?- while '-ך?³: until do done ?R? "?R-?" -? ??R'- ??-R, ??R'- ?R-?, ??ɚ?? 'R?R done. ??: if test S# -eq 0 then echo "Usage $0 file..." > &2 exit fi until test S# -eq 0 - 42 - do if test -s $1 then echo "no file $1" > &2 else sort +1 -2 $1 | tr -d ... (?R??) fi shift (??? ?ǃ?-R?) done ??R'-? -'R?-R ?????. 7.14. ???R ??R case '-ך?³: case in string1) ;; string2) ;; string3) ... .?. ... esac ??: ? ?R?? ?? R?ֳ -t, ?RR R? ? ?R?- ?? ???̿ ??: ................. together = no case $1 in -t) together = yes shift ;; -?) echo "$0: no option $1" exit ;; esac - 43 - if test $together = yes then sort ... fi ??? ? - ?ך³?R' (?' -?, .?. "??" R?ֳ, R'- - R -t, R Rɳ??). ?R-R ?R??' ?? ?ך³?R' ? Shell, ??'ښ ?, *, [-]. '???R ?R?? (? ???) ??? R?ֳ, ?RR ɳ case. 7.15. ??R'R?-? ???-- Ě'R? ? ?ך'R?? /tmp ?R ??ֳ'-̿ ?ך'R?, ? ?RRR ?? Ě' ?R?- - ? ?? ?R'R??'Ѓ. :' -??RR ?R??, R?ʚ ???--̿ Ě', - ?R'? -??R'? ?R'R??'Ѓ, R -?R?R?R R????- ڳ -?'-R ?- R??? Ě'R?. 'ך-?-̿ ?? - ???--R?R Ě' $0$$, ??? $0 - ?R??, $$ - ך-?- ????--, ?- -?'-R ??-׳ij?ֳR--R- -R? ?R?š, ??R'-??R ?? ?R-?. R ?-R ??R??? ?'? ???--? Ě' ? /tmp, RR? ??׳?R ?'? ?-R? ?'?-? ?R'? - ?R'R?-. - 44 - 7.16. ?R?-ך ? ?R?? ?- -ڳ- ??R?Rڳ :, ?RRR? ڳך? -'-?R- -?R, ?? ?R?-ך - ?? ?ǃ?-R. -R? Shell -? -???׳R?' ?ך³?R' ($, * .?.), ??R?-?? ?'ښ ?? ?R?-ך ? R?-R-? ???. ' -??RR ?-ך ?' UNIX ??ښ-? -ڳ-? R -? #. 7.17. ?? ?R?? :'?ך ?R?? ?Rך? Ě', R??ʳ ?-' : ' -R? ?'?R-R?,' :'R׳? ??? ' ?RR- ??ښך? ?'ך -' :'?-? ' - ?-??' :'?'ڳ ?R??:' :'-t (together) - ' R׳R? ?? Ě' ???' :'-p (printer) - ??ښך Ě' - ?-??' if test $# - eq 0 then echo "Usage: $ 0 file ... " > & 2 exit fi together = no print = no while test $# -gt 0 do case $1 in -t) together = yes shift ;; -p) print = yes shift ;; - 45 - -?) echo "$0: no option $1" exit ;; *) if test $together = yes then sort -u +1 -2 $1 | tr ... > /tmp/$0$$ if $print = no then cat /tmp/$0$$ else lpr -c /tmp/$0$$ fi rm /tmp/$0$$ exit else if test -s $1 then echo "no file $1" > &2 else sort +1 -2 $1 | tr...> /tmp/$0$$ if $print = no then cat /tmp/$0$$ else lpr -c /tmp/$0$$ fi rm /tmp/$0$$ fi shift fi;; esac done. ?R?? ?R??? ڳ'R ??R? $#, ?' R-R ?-R -', ??ɚ?. ' ?R׳?-R 'ښ? R- R???? ?- ? (R??R case). ' ???? ?? R? ?? '?R ?' (³?R', ?????̿ -R), '?R Ě' (R?, ???ך?'?-- ?ך³?R'R *). :' ?' R'?- - 46 - R ?R?׳R?R (?ך³?R' ? R'?- R t p), ?R?? ??ɚ?. ?-? ? ?³R׳ R -'ڳ ?'? t p ?- ?R'- ???, ?'?--? ? ?R?-ך ? -ښ'? ?R?- ?. 7.18. ???R? ???- ? ?R?? :' ? ??R'-?- ?R?? ?R'?- ³?-' ???- (R ?'?ɳ BREAK ' DEL, -??), R ?? R?--? ??- ?--? Ě' Rך- -??'?--̃ (?R? R -? ??'? ?- -R) ??? -???'?--R?R ????- ?R?š. 'ɳ ??-? ?'? R??R? ???- ?- ?R- ?? R??RR trap: '-ך?³: trap 'command arguments' signals... ??? R ???̿ ?ǃ?-  -??R'? ?R-?, ??'?-- R?R ?R. ?- ?? ??R'-?-, ?' ?R- -?-? ???-?, ?--R? ?ǃ?-ך signals (?'?): 2 - ?R?? ? ????? ?R?; 1 - ?' ? "?'" (R?'?- R ³?) ?. ?? (?׳? ??????R): case $1 in ..... *) trap 'rm /tmp/*; exit' 2 1 (?'?-? ???-- Ě'R?) if test -s $1 .............. rm /tmp/* - 47 - '? ?'R ?: trap 'rm /tmp/* > /dev/null; exit' 2 1 ך? ?? ???-? R? 'ڳ ?R R?R, ?? Ě' /tmp/$0$$ R?- ?-R? RR??-? R? R 'ښ? ???- -??'? - null-R?R. 7.19. '?R'-?-? ă?׳?? R??ֳ: expr ?R-? expr ?ڳ'? -?-? ??-, ?R?--R?R ? ???? ?ǃ?-ך ?R'? ?'ך - ך-?-̿ ?- ?R?. ??R'?? -??-̃ ??-?-? ?'? ??R'-?-? R??ֳ -? ????--̃ ? Shell. ?? ǃR?- 3 ڳ?': $ cat sum3 expr $1 + $2 + $3 $ chmod 755 sum3 $ sum3 13 49 2 64 $ ?? -??R????--R?R ?R'R?- ?R-?: $ expr 13 + 49 + 2 + 64 + 1 129 $ ' expr R-R ??- '??ʳ? ă?׳??? R??R- : +, -, *, /, % (RךR?). '? R??-? R??ֳ ?R'- ? ??'?- ?R??'. ?׳, R -? ǃ-R?- '??? ?'ښ ? ??? (R?--? ' ??R-?), -??: '*', ך? ?? ³?R' * ?? ? Shell ??ֳ'-̿ ƒ'. - 48 - ?R'?? 'R-̿ ?? expr ? ?R??? (??-): num = 'wc -l < $1' tot = 100 count = $num avint = 'expr $tot / $num' avdec = 'expr $tot % $num' while test $count -gt 0 do ... ?? wc -l R??'? ?R?? ڳ' R? ? Ě'?, ?- '?? R ڳ'R ?R'? ? ??-. 7.20. ?'?? ?R?? Shell ?? ???, ?R?R'ʳ? ??׳ R'?? ?R??. 1) ???-? ? ?'? ?R?? ?R-? echo ?' ??ڳ R- R??-, ?'ʳ R ??R'-?- ?R??. 2) ??ֳ -v (verbose = -R?R'R?-̿) ? ?R-?? Shell ?- ?R? ? ??ښ׳ ?R-? - ?-? ???? ?? ??R'-?-?. 3) ??ֳ -x (execute) ? ?R-?? Shell ??R? ? ??ښ׳ ?R-? - ?-? ?R ?? ?? ??R'-?- ?-R ?? ???- ?-- -?-Ѓ; R -?R'?? R-R? ???R. 8. C-SHELL ?? -???ךR ? C-Shell ?R?' ? ??³ ³- ? UNIX ?'R-?R?R -??³?ך ? ???' UNIX BSD4.2 ?' VAX-11. ?-R?-? ?RR-? R ??³ ?'ښ ? ?R??'?- ? UNIX ???RR? ex vi, -???ךR C-Shell, ?'ֳ ?R? ??'??'? '?'?, ? ?-- INGRES ?? ?RR-R?. - 49 - 8.1. '??ֳ'-? ³?R' ? C-Shell 'ך-?-̃ -?R ?R??? ?'? ?R?- (%). ? ?'- ??R R-R ?-. 'R?'֚?'-̿ -? ( ! ) ??R'-? -R?? ??ֳ'-? -?ֳ, ? ښ-R׳ ( !! ) R-ښ? ?R? ????? ?R-- ?. -? ?? ( ^ ) ?R'? ?' ??'?- R? ? ?R??ֳ ښ׳ ??ך ????? ?R-?. -? ׳'? ( ~ ) ? ???? ??ij?š ?- ?R'R??' ɳ? ??R ?R ?R'-R?R ?- ??R ?R??R ?ך'R?. '?-? ?R?? ({ }) ??? ?R? ?- Ě'R? ? ??? ?- Ě'R?. 8.2. 'ך-?-? Ě' ? C-Shell ?R?? ? ?R?? ? C-Shell, R- ? ? ?? ?R? ?ך- 'R?? Ě' .login .cshrc. :' ך?? Ě' ? ?, R- ??R'-? ?? ?R-?, ?R'R?--? ? -. '' .login - ?R'? R'?R ? ?R?? ? C-Shell ?-'; .cshrc - ? '?R ?R??. 8.3. ??Ś- R 'R?--̿ ?Ś- R -???ךR C-Shell - ?--R? ڳ'R ?R'??- ?????-- ? ?R-?. -'R -- ?R-? ?-R -?- ???R????'?--R ????--R history, ?RR ? R?? ך-R? ? Ě'? .cshrc ?R-- ?R set: % set history = 15 (? R'ڳ? R Shell ? ך-R??? ????--R ??? 'R?R set). - 50 - -R? ?RƒR? -? ?R-?, -?R ??ښך - ?-? ?? ?Ś- R ?R-?R history, -??: % history 1 ls -l 2 mail 3 history % ??Ś- R R????ڳ?? ?RR-R ?? '?  - ?R-?, ??ښך ?R?'֚?'-̿ -? -R? ?R- -?, -??: % ! 1 ls -l . . . . % 8.4. ?R??ֳ ????? ?R-? ?? '-? ??? ?' ?R?R-R?R ?R'-?- ??- ??ʳ ?R-?, ?RR-R, ?-?-? ښ׳ ?R?R?R ?R- -?. '' ?R??ֳ -??R????--R ????? ?R-? ? '??ʳ? ??? ???׳R?-. ??: % cd /users/peter/shels /users/peter/shels: No such file or directory. - 51 - 'R??- Rɳ??: shels ??R shells. ?- ??'? '??ʳ R?R: %^shels^shells^ cd/users/peter/shells % ???'?-- ?R-? -R³ ? ?? R: % history 1 ls -l 2 mail 3 history 4 cd /users/peter/shels 5 cd /users/peter/shells 6 history -R? ???׳R? ?R?R'- ???? ?R-?, R- -R ?R?R'R? ?R-?R s (substitution) ?R?ך-R?? (ƒ. ??' 8.6). 8.5. ?R?R-R? ?R'-?-? ????ʳ ?R-? ??R'-?-? ????ʳ ?R-?, R-?-- ? ??? R- , ?? ?R?R-R?R -?R R-R R?? '-̃ ?RR?. ???̿ ?RR?: -??ښך ?R?'֚?'-̿ -? ?R- -?. ??R'-? š ?R'??- ?R-?  ?? R ׳ ?-?. ???: % !cd cd /users/peter/shells. ??R??'-R ??ښך ?R'-R? . 'RךR-R -'-R- ?R ?R'?? ³?R'R? -ښ' ?-, -?R?R?R?R ?' R?-R- --R?R ??R R?R-- ? ??? R, -??: - 52 - % !c cd /users/peter/shells. 'RR ?RR?: -??ښך -R? ?R-? ? ??? R- ?? ?R??' ?? -. ???: % !1 ls -l % ??R-?, ?? ?RR-R ?R'R?- ?R'??-??R 'R? -??R????--R ????? ?R-? ??R?R ?? -- ?R? !$, -??: % mv /users/wowa/spasewar.c space.c % pr !$ | lpr pr space.c | lpr % 8.6. ??-?-? ?R?R-R? ?R'-?-? ????ʳ ?R-? '' ?R'-?- ښ׳-R ?-?-- ????ʳ ?R-? - ?R'? ???R ?R?ך-R?? :s (substitution) ښ׳ ??ך (?RR?? - -'R?-R? ???R ? ???R? ex). ? ?? '??ʳ ?? R: % history 1 ls -l 2 mail 3 cd /users/peter/shels 4 cd /users/peter/shells - 53 - 5 history 6 cd /users/peter/shells 7 ls -l 8 mv /users/wowa/spacewar.c space.c 9 pr space.c | lpr 10 history ??R'? ???R ?R?ך-R?? ?' ?-?- ?R'- -?- ?R-? mv: % !8 : s /spacewar/empire/ mv /users/wowa/empire.c space.c. 8.7. ''? - ?Rڳ ?ך'R? ?R'R??' -? ׳'? (~) ?R'? ? C-Shell ?' '? - R???--̿ ?Rڳ ?ך'R? ' ?Rڳ ?ך'R? ??R?R ?R'R??', ?--R?R ?-? ?R'R??'. ??: % cd progs % mv ~/test.c ?R'??- R? R-ښ? ??ʳ ?ך'R? progs. -R? - -, R ? ? ????'-R׳ ??R'-?-R, ?RƒR ?? R: % !h . . . . . . . . . . . . . . 11 mv /users/wowa/empire.c space.c 12 cd progs 12 mv /users/peter/test.c . - 54 - ? ?? ?R'R??' ?-? nick. -R? - ??R ?Rڳ ?ך'R?, R-R ?R'R? ?R-? echo ???R -? ׳'?: % echo ~nick /users/nick % 8.8. ??R'R?-? ??? ?- Ě'R? ?R? ??? ?ך³?R'R? ?' '? - -R??R Ě'R? ? C-Shell ??-? ???R ???R?- ?- Ě'R? ?' ?-R?R ?- -R?? Ě'R? ? ??? ?? ?- Ě'R?, ?'?--R?R ? ij?-? ?R??. ??: % cp /users/peter/animals/{cats, dogs, birds} ?': % cp ~mary/animals/{cats, dogs, birds}. ?ך ?R-? ?R?? -R??R  ? Ě'R? ?-: /users/peter/animals/cats /users/peter/animals/dogs /users/peter/animals/birds ' R?-R ?R-?? R-R ?R'R? ?R'?? R?-R ??? Ě'R?, -??: % echo ls{/bin, /usr/ucb}{pi, is} ls /bin/pi /bin/is /usr/ucb/pi /usr/ucb/is 8.9. ??Ś- ????-R?- ?R ?Ś-, -??̿ alias, ?R?R'? ? ?R?R'-- ?'-? (R?-R ?RR??) ?- ښR ?R'?̃ (R?-R - 55 - ?'--̃) ?R-?. ??: % alias cdm1 cd /users/sys/doce/mans/man/man1 % alias cdm2 cd /users/sys/doce/mans/man/man2 % alias cdm3 cd /users/sys/doce/mans/man/man3 -R? ?- ??ʳ ?ך'R?, -??, - ...man 2, ?RךR-R ???׳ RR??? ?R-? ?R ?? ?R?R'-?'- -R ?-: % cdm2 % pwd /users/sys/doce/mans/man/man2. '? ? ????-R?- R-R ??R'- ?RR? ?R'R?- -? '? !$ - ?R'??-?? 'R?R ?R-?: % alias cdm cd /users/sys/docs/mans/man/man \!$ % cdm 3 % pwd / users/sys/docs/mans/man3. ??-̿ ' ???? ?R?'֚?'-̃ -?R ?'ښ? ???? ?R?'֚?'-R?R -? ?? ??ֳ'-R?R ³?R'. ?׃?- ????-R?- ?R?R? ?R-?R unalias, -?- ?: % unalias cdm. 8.10. ????--? ? C-Shell ?R?R?-R ? Shell, C-Shell ?? ?R?--? ????--?, ך-R?? ?RR R? ?' - ?R????-? -???ךR. 'ך-R?? -?- ????--R ?R?R? ?R-?R set, ?? '??ʳ ³-ך?³: - 56 - set = <-?-?> ?ƒR -?R'?? ?R???'-? ?R?--? ????-- -?. ????-- history ?? ?R'??R ????ʳ ?R-?, R-? ? ??? R, -??: set history = 30. ????-- path ך-?'?? ?ך'R? ?' ?R? ?R-?. '?R? ?ך'R?R?, ??'?-- ?R??', ?'ښ? ? ?R?- ?: set path = (/bin /usr/ucb $Home/bin .) ????-- prompt ?? R? ?R??? ???? ??R'-?- -? R???-R ?R-?. ? R ³?R' \ ! (R?-̿ ' ?R?'֚?'-̿ -?) ? R?? ?R??? ? ??ʳ -R? ?R-?, ?R'?̿ ? ?Ś-? R. ??: % set prompt = "ed \ ! >" ed5> history . . . . . . . . 5 history ????-- Shell ???, ??R -???ךR ? R׳? ? ???? -ښ'-R?R. 'RR-? -?-: /bin/csh ' /bin/sh. ?'??? ????-- noclobber ?R'? ?' ʳ ǁ? ????R Ě' R 'ښ-R ?R? ?? ????³ ? -??R ? ???-??'?- ך-?-R?R ??R?. '' R?R ?? -?R ך-R? ? -?-? "׳-": - 57 - % set noclobber % fgrep ounds /usr/dict/words > shells Shells: File exists - (Ě' ?-? shells ǁ? ??? ??R ??ʚ ??³ ?' ? ?R?-). :' ? ? -? ?-?? R׳? ????š R Ě', ?R'ǿ? ???-??'?-? ?R?'֚?'-̃ -?R (>!): % fgrep ounds /usr/dict/words >! shells ' R 'ښ? ???? RR. 'ך-R?? ?'???R ????--R ? ?R׳?R?R'R-R? -?-? "'R" ??R'-? ?R- -?R: unset noclobber. ????--? home cwd, ך-?'??? ?R׳??, ?- ?R'-̃ ?- R???--R?R ????R ?ך'R?R? RR- ????--R. ????-- status ?R׳?? ?R?ʚ? -'??R? -?- -?, ?' ??ʚ ?R-? ???- ?? Rɳ?R?. ??-'??R? -?-? ??? Rɳ?R-R? ???-?. ????-- argv R?? ?ǃ?- ?R-?-R R? -- ?ֳ? ?ǃ?-R? '??ʳ R?R: argv [0] - ?R-?, argv [1] - ???̿ ?ǃ?- ך? ?'?? (?? ? ?? C). 'R? ? ????--̃ R????ڳ?? '?R - ?- ?????ʳ -?R $, -??, $cwd, $argv [0] .?. ?RƒR? ??ʳ? -?- ?R?-- ????-- R-R ?R-?R set ?? ??R?: - 58 - % set ?R'R??' R? R????' ?R ????--? ׳? R? -?R?. ???: % set wd = `pwd` % echo $wd /users/sys/docs. ?? ?'ך ??R'-?- ?R-? pwd (R? ?R'-R?R ?- ?R??R ?ך'R? ?R'R??') ??R?- ????--R wd, -?-? ?RRR ?R???-R ?R-?R echo. ?R? R?R? ????-- R-R R????' ڳ'R?? ??- ??--?, ?-ʳ? -?- ׳? ?'R?, ?????--R? ' ?'???R?. -?'R? ?????--R? -?-? -ڳ-?? -- ', ڳך? ?R̓?-̃, -? - ??׳-̃. 'ך-R?? -?- ڳ'R?R ????--R ??R'-? ?R-?R @ (-'R? set ?' R?R? ????--). ??: % @ sum = (1 + 4) % echo $sum 5 ' R?? 'ښ? ³-ך?³ ?R-? @ ך?R: @ , ??? C-R??ֳ - R?-  R??RR? ???-, ?-- ? ?? C (=, +=, -=, *=, /=, %=), C-??-? - ?- ?-? ? ³-ך?³? ? C. - 59 - 8.11. ??ך³?R' ? C-Shell ??ך³?R' -? ³?R', ?ʳ? ??ֳ'-R? -?-? ?' -???ךR. ' C-Shell ? '??ʳ? ?ך³?R': - ³-ך?³???; - ?-R?- Ě'R?; - ???; - ??R? - ??R?; - ?R?ך-R??; - ?Rڳ?. ?-R??  - R?- ?R -?ֳЃ -'R?-̃ -?ֳЃ ?ך³?R'R? R?-R?R Shell. '-ך?³??? ?ך³?R': ; - ??'? ?R-?, ?RR? ?? ??R'-?- ?R'??R?- ?'-R; ? - ??'? ?R-?, R??-?--? ?-'R, ך? R ך-- ?-̿ ??R? '??R ?'? ך-?-̃ ??R?R ??R; ?& - -'R?-R ?, R?-?R ??-R׳?? ??R? R? -?- ?'? - ??R? '??? ?R-?; ( ) - R???- ?R-?, ??'?--? ????ʳ -?- , ? ??-R? ?'R? ?' ?R'R?- ? ?R'??R??'-R׳ ' ?-'R; & - ?????? ??R'-?-? ?R-? - ?-? ?'-? ?- ''?'-R R '??? ?R-?R, -??: cat letter>/dev/lp & - 60 - ?? - -'R??- -? ?, R?-?R ?? ?R-? ??R'-?- , R'?R ?' '?? ??ɳ' ?-R; && - -'R??- -? ?, R?-?R ?? ??R'-?, R'- ?R ?' '?? ??ɳ' -R'-R. ??ך³?R' ?-R?- Ě'R?: ? - '?R ³?R' ? ?- Ě'. ???, Ě' fa.o, fb.o, fc.o R? ? -??ښך- R?-R ?R-?R: $ cat f?.o > total.o * - '? R? ? ?- Ě'. ???, ?'?-? ?? Ě'R?, ?- ?RR -ڳ- old: % rm old* [] - '? R?- ???  ?--R?R ? ???- ?R?? ??R-. ???: % ls f.[a - z] - ??ښ ?? Ě'R? ׳? f.x, ??? x - ???  ??R- a - z; {} - -'R?- ???-̃ ?R?? [], R?-?R ??R ?- ?R- ?-R -R??R ???. ???, ??ښ Ě'R? list, last, lost: % ls l{iao}st; ~ - ?R'-R? ?R??R ?ך'R? ?R'R??' (ƒ.??); / - ??'? ?- ?ך'R?R? Ě' ? ?R'-R ?- Ě' ' ?ך'R?. - 61 - ??ך³?R' - ???: \ - R׃?-? ?ך--?-? '????R  - R?-R?R ?ך- ³?R'. ???: % ls \* * not found (? R ?? ?? % ls * - ??ښ ?? Ě'R? ????R ?- ך'R?) ' ' - R׃?-? ?ך--?- ??? ³?R'R?. ??: % set string = 'ws - l $dir / $file' " " - -'R?- R?-R-̃ ???, R?-?R ?R?ך-R?? -?- ????-- ?R-? ??R'-?. ??: % echo "$dir is not a directory." ??ך³?R' ??R? - ??R?: < - ???-??'?-? ??R?; > - ???-??'?-? ??R? (?' ????-- noclobber - ך-R?'?-, ???? ????R Ě' ??R? -? ?RR- ?); >& - ???-??'?-? ??-R׳??R?R ??R?; >! - ???-??'?-? ??R? ( R??'-R ???? ????R Ě' ??R?); >&! - -'R?-R >! ?' ??-R׳??R?R ??R?; >> - -'R?-R >, R?-?R ??R? ?R??'? ? ?R-? - ????R Ě' ??R?; ?' Ě' -? ??? ????-- - noclobber ך-R?'?-, ?R-?? Rɳ??; >>& - -'R?-R >&, R?-?R ??R? ?R??'? ? ?R-? Ě' ??R?; >>! - -'R?-R >>, R?-?R, ?' Ě' ??R? -? ?- ??, R- R?? (Rɳ?? -? ?R-??); - 62 - >>&! - ?R?-ֳ >>& >>! ??ך³?R' ?R?ך-R??: $ - ??? ?R?ך-R?? -?- ????--R, -??: % set M1 = /usr/man/man3 % cd $M1 ! - ??? ?R?ך-R?? ?R-?  ?? R; : - ??? ?R?ך-R?? R? ? ?R-??  ?? R- ; ? - ?R'? ? ??ֳ'- 'ښ ?R?ך-R?R? ?R-?  ?? R. ?Rڳ? ?ך³?R': # (??) - ??? ?R?-ך C-Shell; -ڳ-? ?- ???-- Ě'R?; ?R'?- ? ???̃ ³?R'R ?R-?-R?R Ě' ? C-Shell; % - ??? -R? ?R?š, -??: kill %1. 8.12. ???RR? ?R-? C-Shell ' ?R??'?-? ? ?R-? ? Shell ? C-Shell ?R?' ? ?R'?- ?R-?. ?ƒR -??RR?  -. ?R-? ls ?'R -F ?R?R'? ?R'ڳ '׳-? ?ך'R- ? ?-? -?R * ?R'- Ě'R? -?R / ?ך'R- ?R?. ??: - 63 - % ls -F mail help lint1* tabset/ ?R-? head, ³?- ?R-?? tail, ?R?R'? ?R- R? - ?-? ?--R? ?R'??R ??? R? Ě' (?R ǃR'ښ- 10 R?), -??: % head -2 people Mary Clark 101 Sally Smith 113 'ך-? Ě' - ?-? ?R?R'? R?? ?R-? more, -??: % more somefile - - More - - (3 %) % ?R?- ? ?R?? ??? ǁ? ?RƒR?-- ښ Ě- '. '' ?R'??R??'-R?R ?R--R?R ?RƒR -? ?'? ?R??', ?' ?RR-R?R - ?'? ?R?ך ???. ?R-R ? -ښ'R ?RƒR R R? ?--̃ -R?- R ' ?--̃ -?-?. ??: % more +194 somefile . . . . . % more +'more then' somefile ' R?? 'ښ? -?-? ?? ??'-̃ ??-?, ?? ? ed ' grep (ƒ. ??' 10.5). ?R-? apropos ?R?R'? -׳ ??' ?R?R??, ?- šʳ? ?--R?R ?'??R?R 'R?. - 64 - ??: % apropos sort ddsort (3/21/80) - sort DDBS files look (1) - find lines in a sorted list . . . . . . . . . . . . . . . tsort (1) - topological sort % man look ?RƒR? ?R'R?? ?R?R?? R-R ?R-?R whatis, -??: % whatis mv ln cp cp (1) - copy ln (1) - make links mv (1) - move or rename files ?R-? whereis ?R?R'? -׳ ??ֳ'-? Ě', ?- --? ?--R ?R-?R (R?ֳ -m -R? Ě' ?R?R?- ?, R?ֳ -b - Ě' ?R? ?R-?). ??: % wheris -m rm rm: /usr/man/man1/rm.1 % wheris -b rm rm: /bin/rm ?R-? strings ?R?R'? ?RƒR? ? '?R (? R ڳ- '? ??R'-R) Ě'? ?? R? (? ?R?? ASCII). - 65 - 8.13. ??-? RR- Ě' '?-?, ?R?ʚ?? -?-?, ??? R RR- Ě', ?R'? ? 'R?- R??R (ƒ.-?). -?- -? ?-R ??-? (1), ?' ??-? ׳--R, -R' (0), ?' R-R 'R-R ' Ě' -? ???. '-ך?³ ??-: -op < Ě'>, ??? op ?-? -?-: d - ?'? ' Ě' ?ך'R?R? e - Ě' ???? f - ?'? ' Ě' ?R̃ Ě'R? o - R R R???--̿ Ě'? r - ? ' ??R ?- Ě'? w - ? ' ??R ?³ Ě'? x - R? ' ??R'- Ě'? z - Ě' ? (?'- -R' ?R?)? ??: if (-d $dir) then echo "**** $dir is a directory" 8.14. ??R '? ?R'??R??'-R ?R-?, ??'?-- ?ך³?R'- ; ' ?, ך?? R??'- ?R-? ?'? ?RR. ?- ? ?Rך ??R'-? R??'-̃ ?R?R. ?-ڳ? ך? ?R'??R??'-R ?R-? ' R??'- ?R-? -?R &, R-R ? ??R'-?-? ?R - ?-? - 66 - ?'-?, R ? ?''?'-R ??ʳ ?Rך. ' R '- ښ? ³? RR?ʚ? ? -R? ?R ? ?R?? -R? ?R- ?š, -??: % du > usage & [1] 503 % ls -al <'R??-? ????R ?ך'R?> %. ?R R?R-ښ- ?R ³? RR?ʚ? R ???- (-R- '-R ' ?-R), ?? -R? ?R ?R?š, -??: ..... [1] 503 - Done du > usage %. -R? ?RƒR?, ??? ?R ?׳?- ? ?--̿ R?-, ?R'ǿ? ?R-? jobs -l. ?ך ?R-? ??ښך? ?R? ?R ?-? R- R-: Running (??R'-?) ' Stopped (Rך-R?'?-). 8.15. ?R-?-? Ě' (??) ? C-Shell ?R-?-̿ Ě' (??) - R Ě', RRʳ  ?R-?, ??R'-? ???R. ?? ??R? - Ě' .login,.cshrc, .logout. ???? ? ?š ?R ??, ?R??? UNIX Reference ?R'?R ' ??³ UNIX, -? ' ך ?R-?, ǁ? ?ɚ? ? ?. - 67 - ???̿ ?RR? ??R'-?- ??ך - ???׳ ?R-?: % csh sname arg1 arg2 ..., ??? sname - ??ך; arg1, arg2 ... - ?ǃ?- ??ך. ??ǃ?- ??ך ?R׳?? ?R?ʚ ?R ?R?--? ????--? $argv[1], $argv[2] ך? ?'??. ?R? R?R, ?ǃ?- ?R?- ?R '? $n, ??? n - ?- 'R?, ?-R? ?Rֳ ?ǃ?-ך; $0 R-ښ? sname. ?'ڳ? ?? $argv[n] $n ?'ښ? ? R, R ??? '? ?- ? Rɳ?? ? ?R?? -?- n  ?R?׳? ????', ?R - -?. 'RR ?RR? ??R'-?- ??ך ? C-Shell - R????ڳ ??R ??R'-R (?R-?R chmod) ?R?R׳ R R, R- ? R- -ڳ-' ³?R' #(??); ? ?R׳?-R 'ښ? ?? ??? ??R'- R?-̃ Shell. ??: % chmod a+x sname % sname arg1, arg2, ... ? ??R'-? ??ך ?R?R? ?R?ך-R?? -?- ????--, '? - ?RR? ??? -? $. ????-- ?R'- R?'? -?-? ? R?- '? - -??, -? ?R- -?? Rɳ??. '-, ??R?-R ' -?-? ????--R, R-R ?RR ??- $?<> (1 - ??R?-R, 0 - -?), ?R'??R ?R?R-?-R? -?- ?? ??-? $#<>. ? ?R?R-?- -?- R-R ' ??-? $<>[n], ??? n - -R? ?R?R-?-. ?R?R-?- -?- - 68 - ??' ?R??', -R?R?R?R-?--R? -?-? ?'ښ- ? ? ?R??. ??: % set sum1 = (a b c) % echo $?sum1 1 % echo $#sum1 3 % echo $sum1[2] b % unset sum1 % echo $?sum1 0. '? ?R'?-̃ ?R?ך-R??, -ڳ-ʳ -?R $, ?': $* - ???'?--R $argv; $$ - -R? ?R?š; ?R?R'? R- -?'?- ? ³??, ??R ?R?-R ?R'R? ?' ??-?ֳ -?'-R?R ?- ???-- -R?R Ě'; $< - ?-? R?R ?R'????R ??R? R ך-?-R- ?R ??R? (?'? ?-'), R R?- ?R'?-R ? -?- š- -??׳?- ??R?. ??: echo "yes or no?" set a = ($<) ? ?-? ???׳ ?R (yes or no?), ? ??? ?Rڳך- R?? ??R?- ????--R a. - 69 - 8.16. '?-? ? ??ך 'R??? ?R'R?-? ??- -? ????--̃ ?R ??' R??ֳ ? ?? C. ???, R??ֳ '==' '!=' ?-? R?, R??ֳ '&' '?' ?' ?'???? R??ֳ '' ''' ך? ?'??. '????- ך?? ??ֳ'-? R??ֳ '=~' '!~', ?R?R?-? R??ֳЃ '==' '!=', R?-?R ? ??R R?? ?R?? ?ך³?R' C-Shell (*, ? []). ?R? R?R, ?R?׳ ??- ?' R?-? RR- Ě- ' (ƒ. ??' 8.13). ??'ך ??R'-?- ????? ?R-? (-R'-R? ' ?-R? ???-?) R-R ?R'ڳ ? ??? -?- ???- ?--R $status (-R' - ?? Rɳ?R?, -? -R' - ?). 8.17. '??'ʳ? ? ??R? 'R?׳? ? C-Shell ??'ʳ? ? ?  ? C. ??R-, R ?? ? C-Shell ?R'?- -ڳ- ³?R- ' #(??). ?׳ ? ³?R'R ??R? ?R?-ך, ?R?R'- ʳ ?R ?R-֚ R?. 8.17.1. ???R foreach ???R ֳ?' foreach ?? ³-ך?³: foreach <-???> () - 70 - .......... end. '? ?R-? ??R'- ?' ??R?R -?- -???š  ?? -?-. '- ֳ?' R-R ?R'R? ?R-? break ?' ???- ?- ??R'-?- ֳ?' ?R-? continue ?' ???????-- -R?R ????- R?-R ??? ?ֳ. ? ?R??  ֳ?' -??? ?? -?-? ?R'??-??R '?- ?-ך  ?? -?-. 8.17.2. ???R if-then-endif ''R?-̿ R??R ?? ³-ך?³: if () then .......... else .......... endif :' '?-׳? else ?ך (?R-? ?, ?, ... R- ?), else R-R R?׳. ??'ֳ C-Shell ???, R? if then ?' R??'-R - R?-R R??. - 71 - 'R?׳ ?'R?--? 'R?-? R??R, -??: if () then .......... else if (??-? 2> then .......... else .......... endif endif :' ? ???R '?-׳?? R'?R R?- ?R-?, ?R??- ? '??ʳ ³-ך?³: if () ': if (??-?>\ ??? ³?R' \ ?R'?- ?????R? ³?R' ????R? ?- ??. 8.17.3. ???R while ???R ֳ?' while ?? ³-ך?³: while () .......... end. '- ֳ?' ?R?׳ R??R break continue (ƒ.foreach). - 72 - 8.17.4. ???R switch ???R ??R ?? ³-ך?³: switch () case <-?-? 1>: ........ breaksw case <-?-? 2>: ........ breaksw ........ case <-?-? n>: ........ breaksw default: ........ breaksw endsw ' R'ڳ? R -'R?-R?R R??R ? ?? C ?? - ?R'? ??ֳ'-̿ R??R breaksw ?' ?R?  '- ?-׳?. - 73 - '?R'-?-? R??'? '??ʳ R?R: -?-? ??- ??--R ?-?? ?R'??R??'-R R -?-Ѓ 1, 2, ..., n, ??R'- ?R-? ???R  '?-׳?, ?' ?R- R -?- R??'. :' ך? -?- -? R?'R, ??R'- ?R-?  '?-׳? ?R ǃR'ښ- (default). 8.17.5. ???R goto 'R?? ?? R??RR? R??R goto. ???: loop: .......... goto loop 8.18. '?R? ? ?R-? ??ך ??????-? ??R? ? ?R-? ??ך ? C-Shell  ?RR? ³?R'R? ??ך ??ך ??R ך-?-R?R ??R? (?R'- ?R?R ?R ǃR'ښ-), ?R??R?'R ?????- ??ֳ'-R?R ³-- ך?³š. ?ƒR ?? ??ך: # foreach i ($argv) ed -$i << 'STOP' 1, $s/wine/water/g w q - 74 - 'STOP' end 'R? 'STOP', ?R?'ʚ ? ??? ??ך ???, ?- '? ??R, R?-ڳ?? ?? ??R?, R-ښ?, R ך-?-̿ ??R? ?' ?R-? ed ?-? ?R???R ?Ś- - ???-??'?- (-? <<) ??R?R ??ך  Ě' šR- ?R ??ך. ??-ڳ?' 'STOP' ?'?- ? ???, R? ???R?׳ ?R?ך-R?? ????-- ?R-? ?- -??R. ' ??? ???R ed ??R'-? ?'R?'- ?R?ך-R?? ?? ?R??- R? wine - R? water (ƒ. ??' 12.4). 8.19. ???R? ???- ? ??ך :' ? ?? R?? ???--? Ě', ? R?? R- ? -R , ?? ?' ???-? ??ך -? ?R?R' ? ??R'- ?? ?R ?R-֚ (????R'??, R ? ?R-? ??ך ???--? Ě' ???? -R). '' R?R ? -ǁ-R ? -ښ'? ??ך ??R'- ?R-? onintr label, ??? label - ?R?R'- ??, -ڳ- ?R- RR ? ?? ??? R ?R-?, ?RR? ?? ??R'-?- -, ?' ?RR?? ???-? (ך? ?? ? 'ښ? ???- C-Shell ?R׳?? ??R'- ?R-? goto label, ??? label - ??  ?R-? onintr). - 75 - ? R ? R?? ???ƒR? ?? ??R'-? ? '- ښ? ???- ?R-? ? ???? ?R'??-? ?R-? exit 1, R? R????ڳ -?-'??R? -?-? ????--R $status, ?- ???'?? R -??'?R?R'-R ???- ??ך. 8.20. ?? ??ך '--̿ ?? ??R'-? R-?-? Ě'R? C-?R?, ?R- R? ǁ? R-' -??. '' R- ? ?R??ך'R?? backup ???R ?R??R ?ך'R?. # foreach i ($argv) if ($i \ !~ ~/*.c) then # ?'? ' Ě' $i Ě'R '-?R? ? echo Ě' $i -? ?'? Ě'R '-?R? continue else echo Ě' $i ?'? Ě'R '-?R? endif echo check file ~/backup/$i if (-e ~/backup/$i) then # -R? ' Ě' $i ? ?R??ך'R?? backup? echo Ě' $i -? -R? ? ?R??ך'R?? backup continue endif echo compare two files $i and ~/backup/$i cmp -s $i ~/backup/$i - 76 - if ($status != 0) then echo -R? ?R? Ě' $i cp $i ~/backup/$i endif end. 'R???--R ?R?R?-? ??'? ?R-?R cp, ?? R- ך'-? R? ??ך R?- ֳ?' R??' ?R- ???. 9. ''?? ??'??'?':'?-??'??'?':'? '? UNIX ????R'?? ?RR-R ?R''??׳?-R ?R ?RR??ֳ ?R'R??'?. ?R ??? ? ??? ? ?R'R??'? ?? R?R. ' ³?? ? '??ʳ? ???: - ?R-? write ?' -??R????--R ?R'? RR??- ??R ?R'R??'; - ???R mail, ?'?? '??R-- ?R. 9.1. ?R'? RR??- ?R-?R write ?R-? write ?R'? RR??-? ?--R ?R'R??' ? R?- ?R'-?- R ?R-?. ?R R-ښ?, R ??š ?R'?- ?Rך ? ³?? ? R R?-. ?? -R? -?, ?R?? RR??-? ?R?, ?? ? ?--R 'ښ?, ? 'ښ-̿ R?-, ? RR??--R׳ ?R ?? -?R R???--R?R ??ך. ?RR ? ?R'- ? ???- ? -?R?R?R׳ ך?R?R -???- '?--R?R ?R???. '?-̿ ??: $ write boris '?š, ?-? R?ǁ' ??'̿ 'R!!! ^D $ - 77 - 'RR??-? ?-ڳ?? ??R?R -? ?R-֚ Ě' control-D. ???š ?? ?? - ?-?: Message from george tty 00 ... '?š, ?-? R?ǁ' ??'̿ 'R!!! EOF :' ? -??- ? R??ך ??׳ ?'R?, R-R -? ??R? -? ?R-֚ Ě' ?R ?R-֚ ?'R?. ??: $ write mary ?Rǁ-? ??R?- ???R? ??-, ??R?- ? ?R ?-?. (R??) 'R?? ?? ? ? -? R?. '? - '??? -???'?? (R??) ?, RRR. EOF (R??) ^D $ ?R'ښ?? R ?R-?-ך ?? ?R??- 'R?R (R??). ? RR-? ?R-?-ך - ?-? ???: $ Massage from peter tty 03 ... ?Rǁ-? ??R?- ???R? ??-, ??R?- ? ?R ?-?. 'R?? ?? ? ? -? R?. '? - '??? -???'?? (R??) ?, RRR. ^D $ - 78 - -R? -, ?Rך? ' ?R-?- ? ³?? ? ?--̿ R- ?-, ????? ?R-? who. ??: $ who george tty 00 08:30 peter tty 03 08:31 boris tty 07 04:12 mary tty 08 09:01 '?? RR??- R-R ?  Ě', ???-??' ך-- ?-̿ ??R? ?' write  R?R Ě'. ?? (RR??-?  Ě' message): write peter < message '?? RR??- R-R RR?, ??R'- ?R-? ?-- ??ך. ' R 'ښ? ?R-?? ?????? ?R?'֚?'- -̿ -?, -??: $ write peter ?ǁ-? ??? Ě' ? ?ך'R??: !pwd /users/mary/docs/specs ! /users/mary/docs/specs ^D $ - 79 - ??? ?R-? ??ɚ? R? ?R?'֚?'-̃ -?R. ? ?R-?, - R?? ? ?? RR??- -? ?R??. :' ? -? ???-, R ?R'?--? RR??- -? -ɚ ? ?R (-??, ??R? ??R?R?R Ě'), ? R?? ? R ?R'? ? RR??- ?R-?R mesg: $ mesg n $ ??? n - R no (-?). ?R?? ? ?ɳ?, R ǁ? ?RR?- ?R'ښ RR??-, ?R- ??: $ mesg y ??? y - R yes (?). ?ך ? ?R-? ?? ??R? ?R??? ?, ? ??R R- R- ?R ?? RR??- ? -R?' (no ' yes), -?- ?: $ mesg is y .?. ?? ??-. ? ?R?? ? ³? ך-?'?? RR-? y. 9.2. ?'??R-- ?Rך (mail) ?'??R-- ?Rך - R ???R, ?R?R'?? ?R'R??- 'Ѓ ?R' ?? ?? RR??-, ?RR? ?'?? ? ?RR?? ʳ?, ?'R?--? ?- ³?. ?R?? ? ?R?? ? ³?, ? ??ʚ R -'ڳ ?' ? ?R, -??: - 80 - login: mary password: ... you have mail $ ' R'ڳ? R write ? ³?? mail R ?R?? ?' ? ?R ? ??, ?R?? ? ?R-ڳ? ?? ?R, ??ښך R- R??-?: you have mail (?' ? ? ?Rך). '' ?R'?- ?R ????? ?R-? mail ?? ??R?: $ mail Form peter Wed Jun 9 17:58:23 1991 ? ? 16:30 R-R ?R? ? ?--. ??? ??׳? ? ?R??? (?) R-ښ?, R ³? mail ?? ?- R R, R ??' ?RR: ??ښך, R-, -R ' ?̿׳  ?R-? mail. '??? -? ?R?Rš, ? ?R'ڳ? ?- ?RR- ???: ?? q quit - ?R-ڳ; x exit without changing mail - ?̿׳ ?? ?-?- ?R; p print - ??ښך; s [file] save - R- ? Ě'?; w [file] same without header - R ? ?? ?R'R??; - print previous - ??ښך ??????; d delete - -R; - 81 - + next (no delete) - '???? (-? -R); m user mail to user - ????? ??R ?R'R??'; !cmd execute cmd - ??R'- ?R-?; ? ?R? ׳ ??׳ ??? ? R?? ך?? ???׳ control-D (R ?, R q) ' - ?'? ?R?ך ?- ??. ? R-?- ?R ? Ě'? - ?-? ???ڳ?? '?- ??? ?̓R, ?' R-R ?: ? s from_peter From peter ........... ? ?R-R ???' ?--R? ?̓R ?? ?R'R??'Ѓ. ???: ? m mary boris george ? '' ?R'? ?R ????? ?R-? mail ??R - ?-? ?R'R??' ????? ?? ?̓, ?-ڳ? ??R -?R ?R-֚ Ě' (control-D). ???: $ mail peter ??-, -? ƒR? ? ?. ?-? -?R ?R'ڳ ך'R- - šŚ ך??. ^D $ - 82 - ?R'? R??ך R? ? ?R????- ? ?RƒR? ?R. ???: ?! mail peter ??-, ..... .......... ^D ! ? '' ?RƒR ?R  Ě' ????? ?R-? mail ?'- R - f: $ mail -f from_peter '' ?R?  ³? mail -??? q. ???: ? q you have mail $. ??Rך ?RR ?R-?-. 10. ????'? ' ':?''?''?? '?%'??? ? ?R?? ?R?ǃ?-׳R?- ?R?-R?R R?????- - -?R?--R ?R'R? ?? -? ?Rך ?R R?-, -', ?R???? ??'?- ??R? Ě'R?. ?- ??R'- -? ?RךR-R ?R̃ ??? ??ښ׳ Ě'R?, ?R? R?, ?- ??? R?, ?-?- Ě'R? R ?R?R?- -R?. 'RR???ʳ? ׳' ??̓ ??׳?- ?' ??R'-?- - ך? ?R ?R ?-?- R?-̃ ??R?̃ ???RR. - 83 - 10.1. ??ښ Ě' ?R?ɳ ?RR? ??ښ׳ - R ???-??'?-? ך-?- -R?R ??R? ?R-? cat - ?-', ?ʳ R?R ??- ښ׳. ???: $ cat file > /dev/lp. ??-?R -? ?? ?-' ? R???--R? R?R ??- ښ׳. ' 'ښ? R???R R? ??ښ׳ ³? R????ڳ?? ??R ?R''??׳?-R? ?R'R?-?, ? ?RRR ?? - ??- ښ, ך?ɚ R?R -̃, ך? ? R??? ?R R?-ך R?R?R??- R?, ?R'? ??R ?? ??R?-? ?R?'??R? ?R׳??. ' R 'ښ? ?R'? ?R-? lpr ' lp. ???: $ lpr file1 file2 file3 ?? ך?? ?R-? ?RƒR R??? ?R? - ??ښ lpstat ?'?- ??  R??? (cancel). ?R-? lpr lp -? R????ڳ? ??-? ??ښ׳ - -. ?R R? ? ??'-R ?R-?R pr ?R??RR?? (prepare) Ě' ?' ?R--R ??ښ׳, ?RR ?????? ??ښ׳. ??: $ pr myfyle | lpr. ?? - ?R ǃR'ښ- ?- 66 R? (?'- - length) ?R 72 -? (ɳ- - width). ?'ښ -w -l R-R ? ??? ?. ??: $ pr -w 132 -h"Conversion program" conv.c | lpr $ pr -l 25 addr | lpr - 84 - ?' -h (head) ??R? ?R'R?R? ??ښ׳. '?R-? ??? ?? ? -'ڳ ? ?R'R??? ?R??'R?, -? R- R? ? R??-. 10.2. ??R? ?R? Ě' ?-R?? ?R-? R?-ڳ? ? Ě', ?RR̿ R- R? R??Rך. :' ? Ě' '?R ??'?, ? R?? ? ??R - ښ׳ ?R-?R split, ??R'??? ?R'? R??R? R?  ׳ ښ? ?R-?R cat. ?? ښ ך-R? -??³̃ Ě'R ?- ?R ǃR'ښ- xaa, xab, xac, ..., xzz. ?? ښ׳ ?R ǃR'ښ- - 1000 R?. ??: $ split bigfile. ?R-R ?- ? ?R ǃR'ښ-, ?? ??R ?-R, -??, 500 R?: $ split -500 bigfile. ?R-R ?? ?- ښ?, -??: $ split bigfile ribs. ' R 'ښ? ?- ?? ribsaa, ribsab, ... ribszz. ?R'? -?R?R?R R??R? ?? ' -??RR ښ? ?R? Ě'  ښ? ??R'-?, -??, '??ʳ R?- R: $ cat ribs?? > bigfile.new, ??? -? ?R?Rš - ?ך³?R', R?R-ښʳ? '?R ³?R'. - 85 - '?-̃ ??R ??-?- ?-R'R? ?R? - ?R? ?'? ??ښ R??'- ?-- - Ě'. ??: $ pr bigfile > bigpr $ split -66 bigpr $ lpr xaf xaj ?? ?? -??ښך- 6- 10- - ?R 66 R? R?-R?R Ě'. 10.3. 'R׳R?? ??R? Ě'R? '׳'ך sort ?R?Rڳ?? ?³ Ě' ? 'Ě?-R-ֳ- R?R ?R???. ??: $ sort people Bill Williams 100 Henry Morgan 112 Mary Clark 101 $ ?³ RR׳R?- ?R ???R ???? ?-. ??-?R R-R ??R'- R׳R?? ?R Ě'Ѓ: $ sort +1 people Mary Clark 102 Henry Morgan 112 Bill Williams 100 $ - 86 - ?' +1 R-ښ?, R R?-R ?R'? -ښ' ?³ ?'R ?- -RR?-R ? R׳R???. 'R׳R?? ?R ?? ?R' ?-RR?-? '?ʳ ?R??'R? ??R'-? ?R'R?-? ?'ښ - b (blank): $ sort -b +2 people Bill Williams 100 Mary Clark 101 Henry Morgan 112 $ '' R-?- ?'ךך R׳R?? ? Ě'? ?R'? ?' -o (output): sort -o sortpeople +1 people '' '- ǁ? RR׳R?-- Ě'R? ?R'? ?' -m. ??: $ sort +1 admpeople > sortadm $ sort +1 hardpeople > sorthard $ sort +1 sortpeople > sortsoft $ sort -m +1 sortadm, sorthard, sortsoft > sortall $ ??? ?RR-R ?'?- ??'R?-- ??, - ?R' ?' -u (uniq), ך?? R׳R?? ?R -??R'? -?ƒ?-̃ ?R'Ѓ. 10.4. ?R?? R?, 'R?, -?R? ? Ě'? ?R?? ڳ' R?, 'R? -?R? ? ?--R Ě'? ?- ?R'-? ?R-?R wc. - 87 - ???: $ wc people 3 9 51 people $ ?'ڳ - l (lines), - w (words) - c (character) R? ?-  ?-R R??? ?ך. ???: $ wc -l people 3 people $ wc -lc people 10 51 people $ 10.5. ?R? R? ? Ě'? ?R R? (grep) '׳'ך grep R??'? ?R? ?R R?-R ' -??R'? Ě' ??ښך? ?? R?, R??ʳ? ????'?--̿ R?- ? ??ך, - ך-?-R ??R??. ' ?R?? 'ښ? R?? ?? ?RR--R R?R -?R?. ' R?? ? 'ښ? R- ?? ??'-̃ ??-? (grep - ?R- R global regular expression printer). ??: $ grep Henry admpeople hardpeople softpeople Softpeople: Henry Morgan 112 $ ?': - 88 - $ grep Henry *people Softpeople: Henry Morgan 112 $ ?' -v (invert) ?????? ??ښ ?? R?, ?R? -??--, -??: $ grep -v "Henry Morgan" Softpeople Bill Williams 100 Mary Clark 101 $ '?R-? ??? ?? ?' ??- ? R?? ?R??- 'R?. ???'-? ??- ?R?R' ??׳ ?R? ׳?: -׳ ?? 'R?  ?? ???, -ڳ-ʳ? - d, ' ?? 'R?, ?R-ښʳ? - able, R ?R?R?-R?. ?ƒR ?? - ?- R?R? ?R???R ??'- ??-. -? ^ $ ?R?ښ -ښ'R ?R-? R? RR????--R: "^Genesis" - -׳ ?? R?, -ڳ-ʳ? 'R?R Genesis; "eschatus$" - -׳ ?? R?, ?R-ښʳ? 'R?R eschatus; "^Out in cold$" - -׳ ?? R?, ?-? R?. 'R? ?R?ښ? '? ???: "d..." - -׳ ?? 'R?  4 ???, -ڳ-ʳ? d; "d...$" - R ? ? ?R-? R?; "d..\ ." - -׳ ?? 'R?  4 ???, -ڳ-ʳ? d R?-ڳ?ʳ? R?R (-? \ - R?-̿ ' - R׃?-? ??ֳ'-R? -?-? '????R ³?R'). - 89 - ???-? ?R? ? ?RR-? -?- -?: "^ [abcxyz]" - -׳ ?? R?, -ڳ-ʳ? ??? a,b,c,x,y ' z: "[^Dd][a-z][a-z][a-z]" - -׳ ?? 'R?  4 ???, -? -ڳ-ʳ? D ' d, ? ?RR ?R'??-? ??? - - '? (R a ?R z). '?-? ?R?? ? ?R'??R ?R?R?- (?-?) ??????R -?: "[^Dd][a-z]{3}" - R ? šR?, R ????ʳ ??; "[a-z]{3,5}" - -׳ ?? 'R?, R??ʳ? R 3 ?R 5 - ' ???. --? 'ښ ?- R?R-ښ ??ֳ'-̃ R?- R: * ?' {0} - -R' ?R'?? ; + ?' {1} - R?- ?R'?? ; ? ?' {0,1} - -R' ' R?- . ???: $ grep ".*" people - ?RR -??ښך? ?? R? Ě'. ?? ?R'R?- ??'- ??-: -R ?? ?? R? ? Ě'?: $ grep -v "^ $" file > newfile; -R ?? R?, RRʳ? R'?R  ?R??'R?: $ grep -v "^ *$" file > newfile. 10.6. '-'ֳ -?R? (tr) '׳'ך tr ?Rך? R ך-?-̃ ??R?R ?? ?? - ?ǃ?-ך, ?ʳ? ?R?R?--? -R?? -?R?, ? ?RR - 90 - ??̿ -? ???R?R -R?? ?-? RR???ʳ -?R ?RR?R. ??: $ tr a-z A-Z < people MARY CLARK 101 HENRY MORGAN 112 BILL WILLIAMS 100 $ ?' -d ?R?R'? ? -R??R ³?R'R?, ?RR? ?- ? -R?-. ???: $ tr -d 0-9 < people Mary Clark Henry Morgan Bill Williams $ 10.7. ?R-? ?-?- Ě'R? (diff, cmp, comm) ' ?R?? ?R? ?R?-R?R R?????- ?R-?? -?R?R?R ?-?- ??³ Ě' - - ך? ??R ?R?. '-, ? ??³ R'ښ ?? R ??, ?R?-R ?R-?R diff, ?RR ?R??? - (difference) ?? Ě'R?; ?-?-? Ě'R? R??'? ?R R? (?Ѓ). ' ?'ך? ??R'-?- ?R-? ??ښך- R? ?-?--? (c), -R?--? (d) ?R??'?--? (a) ?R ?RR Ě'?-?ǃ?-? ?R ?-?- ???̃. - 91 - ??: $ cat people Mary Clark 101 Sally Smith 113 Jane Buily 121 $ cat people.new Mary Clark 101 Sally White 113 James Walker 112 $ diff people people.new 2 c 2 Sally White 113 3 d 2 James Walker 112 -? < > R-ښ ?'?-? ?R??'?-? R?; ?R-? ?R??? ך?? -R? R?, ? ?RR -??- R'ڳ. :' R? R'ښ R'?R ڳ'R ??'ʳ 'R? ?R??'R?, ך?? R'ڳ R-R ?R?? ?'R -b (blank). ???: $ diff -b oldfile newfile $. - 92 - '? ?RR-R ?R?R ?-?- Ě'R? - ?R-? cmp (compare), ?'R?-- - R-R?? ?R?R?R?R (?R??- ??--R?R) ?-?- ?? Ě'R?. ??: $ cmp people people.new people, people.new differ: char 17, line 2 ' ???? ?'ךך ??ښך? ڳ'R R'ښʳ ?- R? (???) R? ('-). ?' -l (long) ?R?R'? ??ښך - Ě'R? ? ?- ?? ?R? (?? R'ښʳ? -?-). ???: $ cmp people people, new 26 123 127 27 155 150 30 150 155 - - - - - - - - 197 60 61 198 60 61 :' Ě' ³'-R R'ښ ?? R ??, ?- ??׳?-?? ?R-?R comm (common), ?RR ?R???, R ? ?? Ě' R?-?R?R? R???. ???: $ cat people Mary Clark 101 Sally Smith 113 Jane Baily 121 - 93 - $ cat people.new Mary Clark 101 Sally White 113 James Walker 112 $ comm people people.new Mary Clark Sally Smith Sally White Jane Baily James Walker ??'ך ?R-? comm ??ښך? ? ?R'R-?: R? ???R?R Ě', R?ʳ? ?R ?RR: R? ?RR?R Ě- ', R?ʳ? ? ???R, R?, R?ʳ? ?' ?? Ě'R?. ?R-R ?R?? ??ښ R?-R?R ' ?? R'?R?, ?? ??R -R? ? ??? ?'ښ, -?? (??ښ R'?R ???R R'?֚): $ comm -12 people people.new Mary Clark $ 10.8. ???R? ??R? Ě'R? ?R-?R awk Awk - ׳'ך, ?R?R?- grep. ??-?R, ?R? ?R? ?R R?- , R- ?R?R'? ?R?? R-R?- ?? ?R'Ѓ R? (??) ??R'- -??RR? ??? -? R? (??-?- R? R?). ??-? -? ?'? ?R-R, R-R R?- - 94 - R?-R ???̃ ??? Ě' ?RR? (A.V.Aho, P.Y.Weinberger, B.W.Kernighan). ?-? ?R?-??? '??? ³-ך?³: //{} ? R??, ???? R? R?R?. ???--? ?R R? R? ? R? ?--R?R ??? ??R? ? ך-?-̿ ??R? (- ?-). ??? ?? ??'-̃ ??-?, ?? ? grep. :- ' R?? R??, R??? ?? R?. ?ƒR ?? ???, ?RR? R-R ??R'- ?R- -?R awk. ???ך-R?? ?R'? R? ??R'-? ?RR '? - ?R'? $n, ??? n - -R? ?R'. ???: $ cat people Mary Clark 101 Henry Morgan 112 Bill Williams 100 $ awk '{print $2 "," $1 "^I" $3}' people Clark, Mary 101 Morgan, Henry 112 Williams, Bill 100 ??? ^(control - I) - -? ך?'ֳ ?' ?R??R? ??? ? R???-R ?Rֳ ך?'ֳ (?' ??-?- ???R ?R- '). - 95 - '?? ?' awk R? ? ?- ? Ě'?. ???: $ cat swap {print $2 "," $1 "^I" $3} $ awk -f swap people Awk ?? ?R?--? R? ????--?. ?? BEGIN END R-ښ -ښ'R ?R-? Ě' RR????--R. ????-- - NR (Number of Records) R-ښ? ڳ'R ?? (R?) ? Ě'?, NF - ڳ'R ?R'? ? ?³. ?R-R ?R'R? ???- ?--?, R??'?--? ?R'R??'?. ??, ?R?ڳ?ʳ ??-?? -?-? ???R ?R' Ě' tennis (?R? ??- ? ?' awk - ? Ě'? average): $ cat > average {total = total + $3} END {print "Average value is", total/NR} ^D $ awk -f average tennis Average value is 8.9 $ ??? ?R? ? awk R? R?? 'R?-? ??-. ??, ? ?RRR ? Ě'? tennis ? ?? ?³, -?- -? ???R ?R' ? ?RR -? ?-? 10: $ awk '$3 >= 10 {print $0}'tennis Steve Daniel 11 Hank Parker 18 Jack Austen 14 $ - 96 - -? $0 (?R''--R') ? '? - ? ? (R?). ' R?? 'ښ? ??-? ?' 'R? ?R?ڳ-? ³-ך?- ³, ?'?R ? ³-ך?³ ??- ? ?? C. ?R? R?R, ? ?R-?? awk ?R?׳R ?? R?R? R?R?. ?? ??R? ?? ??, ??'-- 1976 ?R 1978 ?.: $ sort -n -o chard.s chard $ awk '/1976/, /1978/ {if($2 < 8.00 print $0}' chard.s 1976 7.50 Chateau 1977 7.75 Chateau 1978 5.99 Charles ?? ??-R  ??, ? ?R? ??? ?' awk R-R ?R'R? ??'ʳ? ? ³-ך?³R, ?'? ? ? C. ?? ֳ?' ?' ??ښ׳ ?R'? ?? ?? Ě' ? R?- -R ?R???: $ awk {for (i = NF; i > 0; --i) print $i} f1, ??? NF - ڳ'R ?R'? ? ?³. ?R'-R? R?š-? ??? awk R-R -׳ ? ך? ?RR? [6]. 11. '?:''''? ??????'?? ???????? '? UNIX R????ڳ?? ?R?̿ -?R ??? ?' - ?R? ?R?, ??'ښʳ ?R?'R, '-??, ³?R'-̿ R'?ڳ?, ??? ????- ?R?- ?R??R? ?R? - 97 - ?R? ?R?RR?, ų?-? ??? ???. 11.1 'R? ?R?'RR? ' ³?? UNIX ? ?R?'R ?R? C, '??'???-77 ??'??'? ???. ?R-? ?R? ?R?'R ? ?? cc, f77 ' fc, pc .?. ?? ׳ ?R-? ?' Ě' ??ך ?R?- - R?- ?, ?- ?RR ?R'- R?-ڳ? - .c, .f, .p .?. RR????--R. ??: $ cc program.c $ fc test.f $ pc example.p ??'ךR ?R ?R?'R ?'? Ě' ?R'-?R?R ?R?, ?ʳ ?R ǃR'ښ- a.out. :' ? R׳? ??R? , ??R R-R ? ?-R ?'R -o <> ? ?R?? ?R- ?'R. ??: $ fc -o test test.f $ ls test test.f $ - 98 - 11.2. '-?? ? ??׳?? ?R? R?  -R?? ??'-R -'? R?'?, ??̿  ?RR -? R??'-̿ Ě'. ??'ךR ?R?'ֳ ??R?R R?' ?'? Ě' R???-R?R (?????R?R) ?R?, ?RRR?R ?R'ښ? - ?-R .c (' .f, .p .?.) - .c. ? ?? R???-? Ě- ' R???- ? ??- ?R?, ?R?ʚ? ? Ě' ?R'- -?R?R ?R?, ?R???R '-??. '-?? R? ?? ?? -??³R ?R-?R ld, ך? ?R׳?? ? ??R'- -?- ?R-? ?R? ?R?'R cc, fc, pc .?. ' ?R'??- -? 'ښ? ׳ ?R-? R? ? -??R'?R ??R?-Ě- 'R?, ?- ?RR R? R?-ڳ? -? R'?R - .c, .f, .p, ..., -R - .o. '' R?-R?R ??ך ?R?', ? ?? Ě' R???-R?R ?R?, ?? ?R'?--? ? ?'ך? ?R?'ֳ, ך? ?? ?R-? ?R? ?R?'R, ??- ?? '-??. ??'ךR ?R-??-? ?'? Ě' ?-? ?R ǃR'ښ- a.out, ?' ? -? ?' ?-R ??R? . ? R, ?? ??'R, R???-? Ě' -R. -R- ? R- , R-R ?R?? ?R׳?? ?R? '-?? ?'R -c (R'?R ?R?'ֳ) ? ?R-?? ?R? ?R?'R. ??: $ fc -c test.f check prove.f $ ld /lib/frt0.o *.o -lF77 - 99 - $ ls a.out check.f check.o prove.f prove.o test.f test.o $ ?? ?R??'?- Ě' /lib/frt0.o ךR?R?R R?' ?' ?R? - '??'???? (?' C /lib/crt0.o) ??'R?? - lF77 ?R??R? ?' '??'??? (?' C - lc); R? ? ?R- ??'?- ??? ??'R??. ??R-?-? -lx ?'? R?- ?-? ?' /lib/libx.a ?' '?R?R x. ''??? ?׳, R ??'R?? ?? ?R'??- (-? ?' ?'ښ ?R- -? ld). ? ?R׳??R ?R?? '-?? ךR?̿ R- ?' ? ??'R?? ?? ?R ǃR'ښ-. -R? ?- ??, '??? ??- ?' -v ? ?R-? ?R? ?R?'R- . 11.3. ??'R?? ?? ?R?' ??, - ?R? '-?? R? ?R?? -? R'?R Ě' R???-R?R ?R?, -R ??'R?-? Ě', ?RR- ? R?? R?- ?R?-̃ ???R -?- R???- R?'?, ?' ך-R? R?- -R?R. - 100 - ? ??'R?-R?R Ě' R?-R R?-ڳ?? - .a. ???- ?R-? ar (ų?) ?' R?-, ?R?R'-?- ?RƒR ??'R?- Ě'R?. ?? R?- ??'R??  ? R???- Ě'R?: $ ar rcv exam.a test.o check.o prove.o a - test.o a - check.o a - prove.o $ ?? ?'ڳ ?R-? ar R-ښ: r - ?- (replace) R?' ? ??'R???; c - R? (create) ??'R??; v - ??ښך ??'ښ?? R?' (verbose). '??? R? ??ښך R??R? ??'R?? ?R- -?R ar ?'R t (table of content): $ ar t exam.a test.o check.o prove.o $ ' - ??'R?? ? ?R-? ?R? ?R?'RR? ' '-??, -??: $ ld -o test /lib/frt0.o exam.a -lF77 ''??? ?R-, R ?R?R? ??- R?'? ? ??'R- ??? ???-?-. ???, ?' ?R??R? test ??? ?R??R? check, R test.o ?R'?- ?????R? check.o ? ??'R???. - 101 - '' ??'?- ??ښ׳ ך? ?³R? ???--?- ?R- -? lorder. 11.4. '?R'-̿ R'?ڳ? ?? ??'R, ?? ??-̿ ³?R'-̿ R'?ڳ? ?' ?R?- - -??R'? ? ?R?R?-, ?R?'R ?R- R ??? R???-̿ ?R? ך?' ³?R'R? ? ??-?- R R?. '?R'-̿ R'?ڳ? R?-R ?? '?-׳?-? ?- ?' - ?R?, -??, cdb, fdb pdb ?' ?R? C, '??'???-77 PASCAL RR????--R. 'R? R'?ڳ? ?R- ?R? R?-R?--R ?R-?R, ? ?RRR ??? Ě' ?R? R'??R ?R?, ?R ǃR'ښ- a.out. '' ??-?- ֳ R-?- R'?R-R -Rֳ (ך?' ³?R'R? .?.) ?R?'ֳ ?R? ?R'- ?R?R? ?'R -g. ??: $ fc -g test.f check.f prove.f $ fdb > -? > - ?R??? R'?ڳ?, ??'ɚʚ ??R? ?R-- ? R'?ڳ?. ?R-? R'?ڳ? ?R?R': - ?RƒR? ??ʳ? -?- ????-- ??R'-?R?R R??R, R? R?-R?R ??ך, ?R??, Ě' ? ?- --R R?; - ך-?'? ?? R? ???- ?' ?Rɚ?R- ?R?R ??R'-?- R'??R ?R? ?? R? ??- ?- /' ?RR--̃ ɚ?R; - 102 - - ?? ????-, ?R???? ???? ??R'-?-? ??R?R R??R ?' Rך-R? ???? ? R??R, ?' ?RR ????-? ׳--R; - ?R?R? ?? ³?-', ?--? R'??R ?R?- R; - ?? ?R?R-R ?R'R? ?R-? ?-š R- '?? (?R-?-̿ Ě' - ?R?? R'?ڳ?). ?R'?? ?R?R?- -Rֳ R ³?R'-R R'?ڳ?? R-R -׳ ? ?R?R??? ?R ?R-?? cdb. 11.5. '??? R?-? ??׳?-R׳ ?R'-?- ?R? ?? ???, ?R?R'ʳ? ?-, ?R'?R ???- ?ך ??? ?' ??R'-?- ?R? ?? ښ?. ?׳ ??? ?R'?- ?' ?-?- ??? ?'ֳ ?R? - - ? ?R?R?- ' ? - ??³ ³- ? UNIX. ?R-? time ?R?R'? ?- -?- ?R?--R?R - ??-? ?--R ?R? ???- ? ??-?: ?'-R- ?R, ?-R?R ???-, ??--R ?R ??-?R?, ???R R ?R'?? ?R'R??'? ? ?--̿ R?-; ?R'R??'- ?R?R, ?-R?R ???- ?ך ?R? ?R ?R-? ?R'R?- ?', ³?-R?R, ?-R?R ???- ³? ? R?'ǁ?- R ?R?. ?R-? time ? Shell ? C-Shell ?? - -? R ??ڳ. - 103 - ?? (? Shell): $ time test real 30.0 user 27.6 sys 0.5 $ ?R-? size ?R??? ? ?׳ ? ?ך ? - '- ښ? ?R?: ??R'-?R?R ?R? (-??R?R ??R), R?'׳ -ֳ? ?-- R?'׳ -?-ֳ?- ?--. ??: $ size test 1356 + 260 + 613 = 2226 b = 004265 b ??ʳ ? ?R? test ??- 4265 ?R?. :' R?-??R?R Ě' R??, ?R?ǃ??? a.out. '' ?R? - ?? C ? ?R'?? R-?R? ???R, ?R- ?R'?? ?R'ڳ ?Rij' ?R?, ?R??ʳ ?' ??R ?R??R? ?R' ???- ?? ??R'-?- ? ?R?-ך (% time), ǃ-R? ?? ?? ??R'-?- ? ??-? (cumsecs), ?R'??R ?? ?R?R? (# call) ??, ?R?--R? - R?- ?R? ? ''??-? (ms/call). '' ?R'?- ?Rij' '?- ?? ???-'R? ?R? ?'R -p (?Rij'), ?R'? ?? ?R?, ?R ?? ?RRR?R ך׳׳?? -Rֳ ??? R?- ? Ě'? mon.out, ??R'- ?R-? prof ?' R??R? ?--R?R Ě'. - 104 - ??: $ cc -p program.c $ mv a.out program $ program $ ls mon.out program program.c $ prof program name % time cumsecs # call ms/call conv 58.6 11.38 2000 5.69 strcat 30.1 9.50 100 95.0 main 1.1 2.1 1 2.1 . . . . . . . . . . . . . . . . . . . . . atoi 0.0 0.1 1 0.0 11.6. 'R?R?R??-? ?R?: make :' ?R?-̿ ?R?? ??'?, R?? -R?R R?-, R???- ?R'-? R?'?, ?ښ ??R R?R?R??- R?ij?ֳ R? ? R?'???- ׳'R make, ?RR ?R- ?R'? ?R׳R? ?? ׳--? R??ֳ ?R ???-- 'ֳ ???'-?R?- ?? ' ښ׳ R?'? ? ?-??- ? - ?-?-. '׳'ך make ?Rך? Ě'R Makefile, ? ?RR̿ ?- ?? -?R?R? -Rֳ R ?? Ě' ?R? ? ?? -. - 105 - ??: $ cat Makefile FILES = test.f check.f prove.f OBJECTS = test.o check.o prove.o test: $ {OBJECTS} ld -o test/lib/frt0.o ${OBJECTS} -lF77 $ ?? ??-R  ??, ? Ě'? Makefile ?R?ʚ ?R- R????'?-, ?ʳ? ??: R?1 = R?2 ??', ?ʳ? ??: ?R-?-̿ Ě' : R?-? Ě' ?R-? ??? R? ??' -?? ?³R. ?³- R ???, R ?R-?-̿ Ě' ?'? ?'ךR - ?R ?R-?, ?--R ?R ?RR R?? ??', -? R?- -̃ Ě'. '- ?³R׳ R-R ' - ?RR?- ???'?- ? R? $(R?1). ?R??RR?? ך?R Makefile, R-R R?ijֳR? ?R?- test R?- ?R?R ?R-? make, -??: $ make fc -c test.f fc -c check.f fc -c prove.f ld -o test/lib/frt0.o check.o prove.o -lF77 $ - 106 - ?R-? ??R'-? R'?R ? R 'ښ?, ?' ?ך R?- - ' R?ij?ֳ ?R-?-R?R Ě' ?-?, ? RR???- ʚ ?ך R ? R?-R?R R?-R?R Ě' (R ? ?' ?R- -?-̿ Ě' ך?'). 'RR-R ?- R'?R ښ ?R?, -??: $ make prove.o fc -c prove.f $ ' ?--R 'ښ? ׳'ך make ?R ǃR'ښ- "-?", R Ě' prove.o ?³ R Ě' prove.f ?'ֳ R - ?³R׳ ? ?--̿ ?R? ?R?'R. ?R'?-̿ ?' -n ׳' make ?R?R'? -? ??R'- ???- ?š-- ??? ?????'-R ?RƒR?, R ?'R ? ?- ?R'-?-R, ?' ? ?' -? ?' ?R?-. ?R?R?-?? R make R-R -  ?R?R?? ?R ?R-?? make ?-? [7,8]. 11.7. '??? ?'ֳ ?R? ?R?R?- 'R ³ ?R ? ' R ?R?? ?R? - ? ?R?- R?-, ?'R?-- ? ³?? (.?. ?ʳ ?R?'- R '-??). :' ?, ?? R?-R?R ?R'R??', -? - ? ׳ ???R????'?--? ? ? R׳? ?'R? ?R ?, R ? R ? ?RR? ³? UNIX, ???Rך?- ' ׳' lex yacc. '׳'ך lex ?'? ??R?̃ ?R?RR, ?'ʳ '??³?? -', -?R?R?̿ ? R?- ?R?'RR? ?? ?R? ?R?RR?. '׳'ך yacc (yet another compiler compiler) ?R-??׳? ???R-??- ?׳? ? ך?', ??'ʳ? ?׳- - 107 - ?? ?RR ?R???R LR(1)-?Rך. 'R?? ? R ??' ?????R?- ?R?R' ?? R ??- '?--R? R?-R ?׳?. 'R??-R? ?R'R?-? ׳' lex yacc ?'? R- -̃ ?R??R? ?' ?R ?'ֳ ?R? ?R?RR? ? ??? ³? UNIX [9,10,11]. 12. '?:''''? ?:'??'??? EX, '???'???T?: '?????''? ?:'??'??? VI ?? ǁ? ?R?R'R, ???R vi ?-R ?- ???RR ex, ?' ?R ׳ R?-  ?R? ?R ?R'??-??R. ?R- R ? R- ?R-?, ?'R?-- ? ex, R-R ?R'?-R ??R'-  ???R vi. 12.1. 'R?  vi ? ex '' ?R?  vi ? ex -?R - ?'? (esc) ?' ???- R? ? ?R-?-̿ ?, ?' ? ?' ? ?? ??ך, - ? - ?'? [:] (??R?Rڳ?). ??? -??ښך- ?R?- ?? ???R ex - ??R?Rڳ?, ??'ɚʚ ??R? ?R-? ???R ex. 12.2. ?RƒR R? ??ך ?R?R'? ex - R-̿ ???R, ??R? ?R-׳? -R? R? ?R-׳? ??? R?. '? R? ??ך -ǃ?R- ?- -'-̃ ڳ', -ڳ- ??-. -? $ (?R'- ') R-ښ? -R? ?R'??-? R? ??ך. ?RƒR ښ׳ ??ך - ?-? ??R'-? ?R-?R, RR?  R?-R?R (?' ?RƒR R?-R R?) ' ? -R?R? - -R? ???R -R? ?R'??-? R? ښ׳ ??ך ³?R' P (print), ?RR̿ ?R ǃR'ښ- R? ? R??-. ???: - 108 - : 1,5p program (input, output) ...... ...... : ' ?RR :1,5 '' ?RƒR ???R ??ך -?R ???׳: : 1, $ -R? -??ښך R? ??? -R?, -?R ? ?R-- ? ?R-? ?RƒR ?Rך? -? # (??), -??: : 6, $# 6 include 7 ....... 8 ....... ......... ''??? ?R-, R -ǃ?ֳ R? R-R³?'-. ? ?'?- R?-R R? ?? R? ???-ǃ?. ?R'? ?- ?R'-?- ?R-? ?RƒR ??? R?R ך-R? ?R- '??- ?RƒR?-- R?. 12.3. ?R? R? ?R R? ??ך ?R-? ?'R?'-R?R ?R? -ڳ-? ??ij?R g (?' ?'R?'-R?R ?R? ?R ?? ??) ??ښך? ?? R?, R??ʳ? ????'?̿ R??, -??: : g/speed; int speed; d = speed x time; output (speed). - 109 - ??? R? ? '?R ښ ??ך ?R-? ? ??ֳ'-R ??? ?RR?R R?֚, R'-R R ?? ??- ?R ??ך. :' ??ij? g -? ?-, ? ??ښך? ??? -??-- R?, -ڳ- R ???: : /speed; int speed. 12.4. ?R?ך-R?? R?֚ ??ך ?R?ך-R?? R?֚ ??ך ??R'-? ?R-?R s (substitute), ? ?RRR ??? ?R̿ R?? ?- -ʳ R??, -??: : s/eed/ace/ int space; ?ך ?R-? ??R'-? ?- ???R?R ?R??- ?RR?R R?֚ ? ??? R??. '' ?- ?? ?R??- ? R?? -?R ?R?? '? g (global - ?'R?'-̿) ? ?R-? ?R-?: : s/wine/water/g water = water + shugar -R? ??R'- ?R?ך-R?? ? -??R'? R?, -?R ?R?? ??ij? ??šֳ ' ?R? R? ?R R?. ??- ?: : 1,10s/wine/water/g ' : 1, $s/wine/water/g ?? ?R? ?R R?: : g/speed/s/eed/ace/g - 110 - ' : g/speed/s//space/g. ' ?R'??-? 'ښ? ?R̿ R?? ???  ?? - ?RR?R R?֚. 'RR?- -??׳?-̿ ? ??R'-?- ?'R?'-R ?R-- ? ?R?ך-R??, ? ?RRR ???R ?' ??R -??--R R? ???? ??R'-?-? ?R?ך-R?? ??? ?R?????- ?? -?R?R?R׳ ? R? ??R? ??? y (yes). '' -??- ׳?-R R ? ?R-?? ??? ?R'R? ?' c (confirmation): : g/eed/s//ace/gc int speed; ^^^ y real need; ^^^ d = speed x time; ^^^ y output (speed); ^^^ y ?? ?- ?R???, R?- - -?. 12.5. ?׃?- ?R'??-? ?R?ך-R?? ?׃?- ?R'??-? ?R?ך-R?? ??R'-? ?R-?R u (undo). ??'ֳ ?R-? u ??R'-? R?-R ?R?ך-R?- ?R, ?RR ?R?R- ?R?ښ ?R-? R׃?-? ??? ?R-- ? u. - 111 - 12.6. -?-? ? Ě'R? ? ??? ???׳R?- ????׳?̿ Ě' -R? ? ??? ???׳R?-. -?-? R??R?R ??R?R Ě' ? ?? ???׳R?- ?R- '? ?--R ' ??? R? R-R ??R'- ?R-?R r, -??: 0r preface. ?? R??R? Ě' ?- ?R?ʚ? ? -ښ'? ?? ???׳R?- (?R'? -???? -'??R R?). ' ?- ??? Ě' ?- R? ? Ě' ך-?-R?R ??R? ?R- -?, -?? (?R??' ???? ! R??'?-): : r !date : 1, $p ---------- Fr Jan 12 09:33 PST 1986 ? ?? ???׳R?- ' ??R ښ׳ ? ?--̿ Ě' R-R ??R'- ?R-?R w, -??: : w newfile ' : w >> oldfile (?R??'?-? ? ??ʳ Ě'). ?R?? ?³ ?? ? ǁ? ??ʳ Ě' R?R?R?- ? ???????-? ??'?-? ?R?R ?R-? ?R?'֚?'-̃ -?R: : w! oldfile :' R??-R, ?R?ǃ??? ???׳?̿ Ě'. - 112 - ?? ?³ ښ׳ ?? ???׳R?-: : 1, 100w !lpr. ?? R' Ě' ?³ ?? ך-?-̿ ??R? ?R-? (?R??' ???? -?R ! R??'?-). 12.7. 'R? - ???׳R?-? '????R ' -R?R?R Ě' :' ???R ?' ??- ?' ???׳R?- -??R'? Ě'R?, -??: $ vi .*, ' $ ex *.c, R ???R? ? ???׳R?- '????R Ě' ??R'-? ?R- -?R n (next): : n ?R-?R e (edit) R-R ?? - ???׳R?-? ?R- ?R'-̿ Ě', ?--̿ ?-? : e another :' ? R?- ?R?ڳ ?R-? n ' e ?? ???׳R?- ??????R Ě' -? ?' ?š-, ??? ???????-?, ?RRR? R-R R?R׳, R³R?? ??R'-?-? ?R-? ?R?? ?R?'֚?'-R?R -? : n! : e! RR????--R. 12.8. '?R'-?-? ?R-? ³? ?- ???R ex '' R?R ?R'? ??ij? ! (?R?'֚?'-̿ -?), -??: : !cc % , - 113 - ??? % - '? - ????R ???׳?R?R Ě'. '? ?R?'֚?'- -?: : !! ?R?R ???? ?R-?. 12.9. ???R? ? ? ???R vi '?R'-? ?R-?R vi, ?RRR R? ?????R? -R- ? R?, ???ڳ??R ? -ښ'? ?-, -??: : 10 vi ' ?? vi ?R?- ?? ??? ???R. 'R?  ?- vi ??R'-? ?R?? ?R-? Q (?R'R?). 12.10. 'R?  ???R ex 'R?  ???R ex ? ? ?R-? ³? ??R'-? ?R-?R q, -??: : q :' ?? ???׳R?- -? ?' ?š- ' ?? -? ?? Ě' R???׳R?-, ??? ???????-?, ?RRR? R- -R R?R׳, ?R?? q ?R?'֚?'-̃ -?R: : q! ?R-? ?R? R-R ?' ?R?? ?R?-R? ?R-- ?R ?³, -??: : wq ' : wq! ?' ? ???? ?' ?³ ' ?R?. - 114 - 13. ?'??'?''''? '?'':????? ?'????''??'??? ' -?ֳ ³?-R?R ?-R ³? UNIX ?R? ?R???-??-R? ??'?-? ³?R ?R ?? ???ך ?? ?- ?R?-, ך? ?? ?R??'?-? -R? ?R'R??'?, ??'?- -? Ě'R?R ³?R, ?-?-? ?R-ij?ֳ ??. ''?- ?? ?׳, R - ??R-'- ?'? ׳ -?ֳ R? - ?R'- ??'?-̃ ?R?R. ??? ? ?R-?, ?R'R?-- R?-R ? ?ך'R?? /etc, ڳך-- - ??'?-? ³?R, ך? ?? fsck, mount, chown ך? ?'??. ?? ??'R, ?ך'R? /etc ?R??- R'?R ???R'R??', ך? R ³?-̿ ?-R ?R'?- R?'? ?? ???R'R??'. 13.1. '???R'R??' ?R ?R'R??', ??R'-ʳ? ??? -? ³?R, -?- ?R?-? R?-̃ ?R'R??'Ѓ. ??-  -, ?ʳ -?R?- -?--? ?R'-RRڳ, -?? ???R'R??'? ?? R?-R root. ?-? ³? R? ? ?? ??- ?R'R??'?, -??, ?R'R??' ?-? bin, R?'?- ʳ ?-ɳ ?R'-RRڳЃ, ? ???R'R??'. ?? ?R-?, ?RR? R? ??R'- R'?R ??- ?R'R??', ? ښ-R׳, ך-R?? ? ?R-?R date, R-ך Ě'R?R ³? ?R-?R mount, R?-? ??ֳ'- Ě'R? ?R-?R mknod ???. - 115 - 'ך ???R'R??'? R-R -??R'? ?RR?. ???̿ - ? ³? ? ?? ??-??--R?R ?R'R?- ?'. '?R, ??-?̿ - -R?R?R'R??'?R ³?? - ??R'- ?R-? su (superuser). ??-R ³? ?- ?R?-?? ?R? ? ³? ?? R?-R ?R'R??', R'?R ? 'ښ? -?R?R?R׳ ך-R? ???--R ??- ?R'R??'? ?R ?R-?? su. 13.2. ?? ??'?-? ³? ?? ???, ?R?? - ?'? R'?R R ??'ڳ' ?- ך-?. ??-R ?R? ?? ? ?R'? ' ?-? ???- ?R׳R?- ?'ښ? ? ?R'??R??'-R ?R?? ?R?, ??  ?RR ?ǁ? ??? '??. ??? ?R?, š ?Rך, ?ǁ?- ???? ??- ? ? ??'?- ?ך- ?'? ?R׳?? ' ?-. ' ?R?? ?? R? ?R??R? R??׳ - ?R?- R ³?, -??, ?šʳ? R?, - ?RRR -R? ?ǁ? ³?. ' ???-? ?R?š ?- ? ³? ??R'-? ?R-?-̿ Ě' /etc/rc, ?RR̿, ?RR?? ?R?R, R? R?? '?? ?R-?, -R R?-R R?? ?R-? ?' ??R'-?- '??ʳ ???: - ??R-ך ך Ě'R? ³?; - R-ך -R? Ě'R? ³?; ?'?-? ך -'- ?- Ě'R?; - 116 - - ?'?-? ???-- Ě'R?; - ?? ?R?R? update cron. '?'?-? -R?R?R'R??'?R ³? ?R?R? ?- ?R'-?-? ?R-?-R?R Ě' /etc/shutdown, ?RR̿ ? ׳?-R 'ښ? ??R'-? '??ʳ? ???: - ?R'? ??????ʳ? RR??- ?? ?׳?-̃ ?R'- R??'Ѓ ?R-?R wall; - ??? ?? ?R?, ?R? ?R?š ?R-R'; - Rڳʚ? ?? ?? R??-R? Ě' ?R-?R sync; - ??R-׳? Ě'R?? ³?; - ??R'-?, ?' -?R, ?R?? ?R?R?- ?--; - ??'ښ? ?ך-? ?'?, ?' ?R?R'? ??; ? ?R׳?-R 'ښ?, ?ך-? ??'ښ? ?-. 13.3. ?R'R??' ??? ??? ?? Ě' ?- passwd group ? ?ך'R?? /etc, ?RR? R?? -Rֳ R ?R'R??' ??? ?R'R??'? RR????--R. ??- ? ? Ě'? passwd RR???? R?-R ?R'R?- ?' ?? '??ʳ? ??R?? ?R', ??'?--? ³?R'R ??R?Rڳ: - ?R'R??'; - ?R' ?R'R??' (? ?R?R?--R ???); - ?'Rڳ'?--̿ ??-׳ij?R ?R'R??'; - ?'Rڳ'?--̿ ??-׳ij?R ???; - 117 - - ?R?-ך, ?RR̿ R?? ????- R ?? ?R ?R'R??' R? ?R'R? ?R-?R finger ?- -̃ ?R?; - ?ך'R? ?R'R??'; - -???ךR ?R-? ?R'R??'. ?? ?³ Ě' passwd ( ?̃ ?R?-ך?): mary:KmHu1hE:201:10::/users/mary:/bin/csh ? -'ڳ ?R?-ך ??R ³-ך?³ R????'? ?- -̃ ?R?. '' -??RR ³? ?R? ???, R? ??-׳- ij?R ???R'R??' ?' ??- -', - root. ??- ? ? Ě'? group RR???? R?-R ???? ???ך?'? R?R R? ??ך R '??ʳ ?R'Ѓ, - ??'?--̃ ??R?RڳЃ: - ???; - ?R' ??? (? ?R?R?--R ???); - ?'Rڳ'?--̿ ??-׳ij?R ???; - ?R? ?- ?R'R??'? ???, ??'?-- ?̃. ?? ?³ Ě' group (?' ??? ?? ?R'): sect2115::10:mary,sas,temp,ges 'R??'?-? -R?R?R ?R'R??' ? ³?? ??? ??R'-?- - '??ʳ ? ???, ?RR? R?-R ?' ?R- -?-̃ Ě'R ?-? newuser ' adduser: - ?R?? ? ? Ě' passwd -Rֳ? R ?R'R?- ?'?; - R? ?ך'R? ?R'R??', ?? ?R'R??' ?R'- ?- ? ?'??'? R?R ?ך'R?; - 118 - - ?R?? ' ?R??׳R? ? ? Ě'? group ? R- R??? '?-?R ?R'R??' ? -??RRR ????. 'R??'?-? ?R??ֳ ?? ? Ě' passwd group R? ??R'- ??R?̃ ???RR (?' -? ?R-?-R?R Ě' newuser). ?ך'R? ?R'R??' R?? ???R'R??'? (?R- R-R, ?R???R ??ך newuser) ?-ښ'? ?-?'? ?. -R? ?- ?R'R??'? ???R? ?-?'?- -R ?ך'R? ( '?R?R Ě'), ?R' ?R-? chown (change own) chgrp (change group) RR????--R. ? R? ??R'- R'?R ???R'R??'. -R -R?̿ ?R'R??' ??? ?R ?R'. '???R'- R??' R? ? R 'ښ? ?- ?R' ?R'R??' ?R-?R passwd, ??? ?̿ RR?ʳ? ?R'R??' -R- ?̿: # passwd mary New passwd : mmm Retype new passwd : mmm # '?R?̿ ?R' (?? mmm) -? ???-. 13.4. '??ֳ'-? ? ?R'-?R?R Ě' ?R? ???׳ ?R? ʳ Ě' ?? ?R?R'-- ?'- ?, ?RR? ? ƒ' R'?R ?' ?R'-? Ě'R?. ?׳ ? R? ך-R? R'?R ???R'R?- ?', ?R' ?R-? chmod (change mode). - 119 - '??ֳ'-? ? RR??? ?R̓?-̃ -?-Ѓ 4000, 2000 1000 ???R?R ?? R ?R-?: - 4000 - ? ך-R?? ??-׳ij?R ?R'R??'; ?- ??, R, ?R?? ?R? (Ě') ??R'-?, ??-׳ij?- R ?R'R??' ך-?'?? ?-̃ ??-׳ij?R ?'- ??'֚ R?R Ě', -? ?R'R??', ?׳???R R Ě' - ?R'-?-?; - 2000 - ? ך-R?? ??-׳ij?R ???; ???, R - ?? ??R'-?- ?R? (Ě') ??-׳ij?R ??? ך-?'?? ?-̃ ??-׳ij?R ???, RR- ???? ???R?R ?-?'?-R׳ R?R Ě'; - 1000 - ? ??'?-; ???, R ??R'-? ?R?- (Ě') ??'? -R? ?R'R??'Ѓ ?R?-?R- ?R? ?R-?R -? ???, ?? ?' -?R ?R? -? ?R'? ? ?--̿ R?-. 'ך-R?? R?R ?R? ??-׳ij?RR? ?R'R??' ??? ?R?R'? ?R'R??' ??R'- ך?? ?R?, ?R- R? ?R'- ? ?R'-RRڳ ???R'R??' (-??, ?R? mail R?? ?ך'R? /usr/spool/mail). ' ?R׳?-R 'ښ? ?RR-R׳ ³?, ?R?-? ?R'R??', ?' ? -ڳ?'-R R?-?-. 13.5. ''R?? ³? ''R? ³? ?? ?ų?? ? ?ך'R?R? Ě'R?, ??'ښ ?R-??R ?ך'R?. ''R? ³? ?R- '?? - R??, ?RRR? ?'?, R?-R, ?--̃ ??R R?R ' -R?R ׳?. :' ?? ?RךR-R ??'?, R- - 120 - R? ? ? - -??R'?R "'R???" ??R?; R?? - ??R 'R???R ??? R? ? ??- R??'- Ě- 'R? ³?. ?? Ě'R? ³?, ???? ? ך ?R?-R, ?R'- ? ƒR-׳R?-. ?R'??R Ě'R? ? Ě'R?R ³?? R?-?-R (65536 ?' UNIX, ??³ 7). ?? Ě'R? ³? ?? ?? R-R?-? ښ׳: - ?R-̿ ?'R?; R š̿ ???̿ ?'R? ?? (?'R? 0), ???R?--̿ ?' ³?-R ?R-R ?R?; - ??-?'R? - R ???̿ ?'R? R???--R Ě'R?R ³?- (?'R? 1); R- R?? R-R?-? ?--? R Ě'R?R ³?? ?? ??- - ???, ? R ڳ'? R ?? ?R?R?- i-'R? ?'R?R?; - i-' - R ?R'??R??'-R ?'R?R? ?'??  ???- 'R?R; i-?' R?? '? - ?'R?; ?? R?-R R?- i-?' ?' ??R?R ?ך'R? ' Ě' ? Ě'R?R ³??; - ?'R? - Rך??? ?R-?R ?? - ?'R?, ?RR? R?? '?R ????'-? ?--? ?ך'R?R? Ě- 'R? (?'R? ?--), '?R '? - ?'R? (?R??--? ?'R?). '???'R? R?? '??ʳ? ?--?: - ? ??R?R?R ?R-?, ?R?-R?R Ě'R?R ³- ?? (? ?'R?); - ڳ'R ?'R?R?, ??R?-- ?' i-'R?; - Ě'R?R ³?; - R; - ?? ?R'??-??R ?-?-; - 121 - - ?? ?R'??-??R ?R?R?- (back up); - '? - ?R? ?R?R?- ?'R?R?; - '? - ?R? ?R?R?- i-'R?. '? Ě'R?R ³? ???ך?'?- - .13.1. ------------- ------------- ------------- ? ------------- ? ----------- ----------- ------------- ? ? ------------- ? ? ? ?- ? ? ? ? ? ? ? ? ? ? ? ? R-̿ ? ?'???'R?? ? i-' ? ?-- ? ?'R? ? ?-- ? ?'R? ? ? ? ? ?-- ? --- ----------- ----------- ------------- ------------- ? ? ? ? ------------- ------------- ? ? ------------- ? ------------- ? ? ? ------------- ? ? ------------- ? ? ? ? ? '?R? ? ? ? ? '?R? ? ? ? ? --->? ?R?R?- ? ?-- ? ?R?R?- ? ?-- ? ? i-'R? ?-- -->? ?'R?R? ?-- ? ------------- ? ------------- -------------------------- ?.13.1. ??̿ Ě' ( ?ך'R?) ? Ě'R?R ³?? ???ך?'?- i-'R, R??ʳ ??' - ?'R?, Rך?'ʳ? Ě'. - 122 - ' i-'? R?? ך?? -Rֳ R ?? ?R? ? Ě', ڳ'R 'R? - Ě'  ?ך'R?R? ??? ?--?. '? i-' ?'R?R? Ě' ?' UNIX, ??³ 7 ?R?- - '??? -??. ??̿ i-?' R?? 13 ??'?. ???? 10 ??'? -??R????--R ' - ?'R? ?-- - Ě'. ?R?R'? ?'R? R?? 512 ?R?, R R?R ?R- ךR-R ?' R??R? Ě'R? ?R 51210=5120 ?R?. :' ?'- Ě' ?R'?, ? 5120 ?ך, ?R'? 11- ??' i-', ?RR̿ '? - ?R??--̿ ?'R?  128 'R? - ?'R? ?--. ??R'R?-? ?R??--R?R ?'R- ? ?R?R'? ??'ڳ ?'- Ě' ?R ??'ڳ- 512(10+128)=70656 ?R?. :' R?R -??RךR-R, R - ?R'? 12- ??' i-', 'ʳ - ??? ?R- ??--̿ ?'R?, R??ʳ 128 'R? - ?R??--? ?'R? (.13.2). 'R?? ?³'-̿ ? Ě' ??'ڳ?? ?R ??'ڳ- 512(10+128+128**2)=8459264 ?R?. ??R-?, - ?R'R?-? ?R'??-??R, 13-?R ??' - ? ?R??--̿ ?'R?  128 'R? - ??? ?R??--? ?'R?, ?? ????'- - ?'- ? Ě'R?R ³??: 512(10+128+128**2+128***3)=1082201088 ?R? (ƒ. . 13.2). '?? ??³ ³? UNIX R? R'ښ ?R'??R 'R? ? i-'?, ?R??-- ?'R? ?R ?'R? ?--. ?R?? ³? ?ǁ?, ?? R'?R R?-  Ě'R- ? ³?, -?? ?R-??R. ' -? -R? ?? ?-?- - 123 - ------- ------- i-?' ------------>?-----? --->?-----? ------------- ? ?-----? ?-? ?-----? ? ?-Rֳ? ? ---------->?-----? -------- ? --->?-----? ? R Ě'? ? ? ? ?-----? -->? 128 ?--+ ? : ? ?-----------? ? ? -------->?-----? ? ? ? ? ??'R?? ------- ? 1 +-- ? ? ? : ? ? -------- ? --->?-----? --->?-----? ?-----------? ? ? ??'R?? ? ?R??--̿ ?-? ?-----? ? ?-----? ? 2 +---- ? ?-----? ? ?'R? --->?-----? +-->?-----? ?-----------? ? ------>?-----? ? ------- ? ? : ? ? 3 +------ ? ?-----? ? ? ?-----? ?-----------? ? ---->?-----? ? ------- +-->?-----? ? : ? ? ? ?-----? ? ? 128 ?--? ?-----? ? : ? ? ? -->?-----? ? --->------- --->?-----? ?-----------? ? ? ? ------- ? ?--? ------- --->?-----? ? 8 +-------- ? ? ---------- ? --->? 128 ?--? ?-----? ?-----------? ? ? ? ? ------- +-->?-----? ? 9 +---------- ? ? ? . ? ?-----? ?-----------? ? ? ? . ? ? : ? ? 10 +------------ ? ? . +-->?-----? ?-----------? ? ? . ? ?-----? ? 11 +--------------- -------- ? . --->?-----? ?-----------? ? 128 ?--+ . ?-----? ? 12 +------------------------->? ? ? . --->?-----? ?-----------? -------- ? . ? ?-----? ? 13 +---- '?? ? . +-->?-----? ------------- ? ?R??--̿ ? . ? ?-----? ? ?'R? ? . ? ? : ? ? ------- ? ------- +-->?-----? ? --->?-----? ? ? 128 ?--? ?-----? ? ? ?-----? ? --->------- --->?-----? ? +-->?-----? ---? ?-----? -------------- ------- ? ? : ? --->------? --->?-----? ? ? 128 ?--+ ?-----? ? 128 ?--? ?-----? ? ------>------- +-->?-----? ------- +-->?-----? ? ? . ? ?-----? ? ?-----? ? ------- ? . --->?-----? ? ? : ? ? -->? 128 ?-? . --->?-----? +-->?-----? ? ? ------- ? . ? ?-----? ? ?-----? ? ? . ? ------- +-->?-----? --->?-----? ? ? ------>? 128 ?--+ ?-----? ------- ? ? . ------- ? ? : ? ?'R? ? ? +-->?-----? ? ? . ? ?-----? ---+--- ? --->?-----? ? 128 ?--+ . ?-----? ------- ? ?-----? '? ? . --->?-----? ?R??--̿? ? ?-----? ?'R? ? . +-->?-----? ? ------- ? ? : ? ? . ? 128 ?--+ ??'R?? ? ------>------- ? ?-----? ? ------- ? . --->?-----? -->? 128 ?-? . --->?-----? ------- ? . ? ?-----? ? ------- +-->?-----? ------>? 128 ?--+ ?-----? ------- ? ? : ? --->?-----? ?. 13.2. ------- - 124 - ɳ? ?ך'R? (/dev,/etc, /bin .?.). '? Rך'-? Ě'R- ?? ³? ?R'- ? R?- ƒR-׳R?-. 13.5.1. 'R?-? R-ך Ě'R?R ³? ?R-? mkfs R?? -R? Ě'R? ³?. ?- ?R'R- ?- ? ?ך'R?? /etc ?? ?? ??: /etc/mkfs <> <?> ???̿ ?? ?'? ?-? ??ֳ'-R?R Ě' ?- ?? R?R, - ?RRR R?? Ě'R? ³?. 'RR ?? - ? ?R-? Ě'R?R ³? ? ?'R?; ?R'? ?' R????'?- ?R -??RR̃ ??' ڳ' ?'R?R? ?R'? R?R, ?? ??- i-'. ?? R?- Ě'R?R ³? - 'R??-???: /etc/mkfs /dev/flo 2000 isize = 230 ???-R? RR??-? ??? ڳ'R ?'R?R?, ???'?--R? ?' ??- i-'R?. ''??, R? ??' Ě'R? ³? ??-R R??ֳ- R--R ³??, -?R ?? ƒR-׳R? ?R-?R mount. ?ך ?R- -? ?R??'ښ? ?R-??R ?ך'R? R-׳?R Ě'R?R ³- ? ? R?-  ?ך'R?R? ?R-??R Ě'R?R ³?. ?R-? ?R'R?- ? ?ך'R?? /etc ?? ?? ??: /etc/mount ???̿ ?? ?'? ?-? ??Ě' ?' R-׳?R- ?R 'R???R?R R?, R????R ?R??'ښ? Ě'R? - 125 - ³?. 'RR - ǁ? ????R ?ך'R?, ?R? ?RR- ̃ R-׳? Ě'R? ³?. ?? R-ך ?-R? R?--R Ě'R?R ³? - ???R ??? ?R? ?ך'R?R, R?--̃ ?R-?R mkdir ? ?R-? ?R-?- ?R Ě'R?R ³?: cd / mkdir floppy0 /etc/mount /dev/fl0 /fioppy0 -R? ?-, ??? Ě'R?? ³? ƒR-׳R?- ? ?--̿ R?-, -?R ?R? ?R-? mount ?? ??R?: mount /dev/fl0 on /floppy0 ???R ?'? RR??-? R? ׳ ³? (? ?--R 'ښ? - R?-R). ?-R R? - R-R?? ?-- R R-ך? Ě'R? ³?, - ? Ě'? /etc/mnttab. ''??? ?R׳ R R, R? ?? ?R? ?R-??R?R ?ך'R? R-׳?R Ě'R?R ³? ?ך'R?, ?R? ?RR- ̃ ?R?R? R-ך, ?' R?-?R?̃ ?R ??-? Rɳ- ?R? R??ֳR--R ³?. 13.5.2. '?R-ך Ě'R?R ³? :' Ě'R? ³? - ?-R R?? ?R'? -? - ?R'?, ?? R-R ??R-׳R? ?R-?R umount, ?R'R- ?--R ? ?ך'R?? /etc ?? R?- ??: umount - 126 - ???, ??R-׳ Ě'R?R ³? - ???R ???  ??????R ?? ??R'-? ?R-?R: umount /dev/fl0 ??'ךR ??R-ך ?'? ? ? ?? ?R-?- ?̃ ?ך'R?R ??R-׳?R Ě'R?R ³? ?ך'R?R ?R-??R Ě'R?R ³?, ? ?RRR ?R?R?' R-ך. ? ??R'-?- ?R-? ??R-ך ??ʳ ?ך'R? ?R'?- ? ?-? ??R-׳?R Ě'R?R ³?, -? ??? ??-R RR?- ?-?: umount : device busy (R?R -R) ?R-? -? ??? ??R'-?-. 13.5.3. '-R-ֳ Ě'R? ³? ? R??- Ě' ³? ?R????? ? R??׳?-R ?׳ -R??R ??R?, ?R?R?- ?'R?R?, i-'R?, ך?? ??-?'R?. '' ?R??-R?R ???- R??ֳ ³?R -?R?R?R ???? ?? ??'?-? ????š ?? ?--?  ׳ ??R? ?'R?R? ? ??R? ?. '?R'-?-? ׳ ??? -?? ³-R-ֳ? Ě'R?R ³? ?'- ? ?R-?R sync: /etc/sync ?R-? -? ??? -?? RR??-, ?R??? ³? ?R?R ' R ??? ³-R-ֳ. ?RR R?-R ?R-? ??R'- ?R?R-R ?R'? -??RRR?R R?-. - 127 - 13.6. 'R? ??ֳ'-? Ě' ??R R? RR???? ښ ³?, -??- ???R. '? ?? R? ??? R?- - ? ?ך'R?? /dev, ?R??- ?RRR?R ?-R -? ??- ֳ'-̃ Ě', ' ??Ě'. ?R ?R?R'? -? ??R? R?R ?-? -??RRR?R ??Ě'. 'R??'?-? R? ? ³? ??? ?R??'?- ??Ě' ? ?ך'R?? /dev. ?R'??-?? ?'? ?R-?R mknod (make node - ??' ?'). ??: ls -l /dev ___________ crw--w--w-1 root 0 0 .....console brw-rw-rw-1 root 5 0 .....fl0 ___________ crw-w--w-1 root 18 0 .....tty0 crw-w--w-1 mary 18 1 .....tty1 /etc/mknod /dev/tty2 c 18 2 ???̿ ?ǃ?- ?R-? mknod ?? ??Ě' ?' ?R??'ښ?R?R R?. 'RR ?ǃ?- ???, ?'?- ' R?R -?RR?-׳R?--̃ (c) ' ?'R-̃ (b), ? ?³R׳ R ??- ?????? ?--. ?ך?ɳ? ?? ?ǃ?-ך -? R-̃ -R-̃ -R? R?. ? -?- ? R ??-R ?'ֳ, -R, ?? ??- 'R, ???̿ ?ǃ?- ??? ׳? R?, ?RR - ?- ? ???' R? ?--R?R ׳?. - 128 - 13.7. 'R-?-? ?Rך-R?'?-? Ě'R? ???³R R R?? ?--, ? ³?? ?-R ? ??- '- ?R?? R-?- (?R?R?-) Ě'R?, R? R????ڳ ?Rך-R?'?-? ? 'ښ? ?-R ?R?. 'RR- '-? ?RR? R-?-. ??R'?? ?R- -?--̃ ?'? ??-???'-R? ?R'-R? ?R?R?-? ???-??- -R? -???---R? ?R?R?-? (R'?R ?-?ɳ R ??- ?- ?R'??-??R ?R?R?-) Ě'R?. ? R Ě' ?R?- (??) - ??ֳ'-R? ?-?-?? R?R ?- ׳, R?-R ?-- '?-, R?-?R R R? ? ?-̿ ??R?̿ R, ?' ' ³? - ??? ??. ? R - R?? Ě' - ? ??ֳ'-R ų?-R R?. 'Rך-R?'?-? ?-- Ě'R? ?R?R? ?? ?R?--R?R ?R?R?-  ų?-R '?- ' R ? Ě'R? ³?. ??-R ך? Ě'R? -?-R?R (-??, R?- ' ??). ' '- ?'ֳ ³? R? ? -? ?R-? ?Rš Ě'R? ? ų? ?Rך-R?'?-  ų?. ?R R- ? ? ? ?R-? dump restor ?' ????ڳ Ě'R? ? - ų? R?-R RR????--R. ?' R R? ? R?- ?R-- ? cpio (' tcio ?' ??-R '?-) R?ֳЃ -0 ' -i ?' ?Rš ? ų? ?'??-  ų? RR????--R. ??R'?? R-̃ ???R ?Rš ? ų? ? -??RR ?- 'ֳ 'ǁ ?R-? backup, ?'ʚ ?R-?-̃ Ě'R, ?R'ʳ ?R-? ׳? cpio/tcio fsck. - 129 - ?R-? backup ?R?R'? ??R? ?R?? ?Rš ? ų? ?R̃ ???׳R?-? ?? ??ך, ?? '??ʳ? ??: - ?ך'R? ???R ?ų Ě'R?; - ?-R?R Ě' ?R?? ?Rš; - ? ?R'??-??R ?Rš; - Ě' -?R--? ƒ?- ų?-R '?- (?' - ų? -? ǃ?ʚ? - R?-R '?-?); - ??ֳij?ֳ ų?-R?R R?; - ?-R?R Ě' ?R?? ?R??? Ě'R?R ³?. ??R-?, ?' ?Rš - '?- ' ??? ?? R?-R?R ?Rך-R?'?- ??-? ?R-? tar (tape archive). ' R- 'ڳ? R -??RR ???ڳ'?-- ?? ?R-?, R- ?R?- -? R'?R ?-R ³?, -R '?R ?R'R??'. ???, R? ?R³ ?? Ě' ????R ?ך'R? - ??? ??, R?? ų? ????? (R?ֳ c - create), -?R ??R'- ?R-?: tar cf /dev/fl0 * ??ֳ f (file) ???, R '??ʳ ?? ?'? ?-? ??Ě', RR?????R ų?-R R?; * - ?ך³?R', ?R??ʳ, R ?R? ? ų? ?? Ě'. '' ?RƒR R??R?R ų? -?R ?R?? R?ֳ t (listing): tar tf /dev/fl0 -R? ?'?  ų? ?--? Ě', -?R ??R'- ? ?R-? R?ֳ? x (extract). ???, ?' ?Rך- -R?'?- ?? Ě'R?, ?- ?RR R?-ڳ? - people, -?R ??R'- ?R-?: - 130 - tar xf /dev/fl0 *people '' ׳ ?- ǁ? ?R'- ??R? ? ??? ?ך'R??. ' 'ښ?, ?' ? ??? ?ך'R?? ?-- Ě'R? -?, R-R ?Rך-R? ?? Ě'  ų? ? ?--R ?- ך'R??, -??: tar xf /dev/fl0 mary, ??? mary - ?ך'R?. 13.8. ?R??? ?Rך-R?'?-? ? Ě'R?R ³? '? Ě'R?R ³?, R?š-- ?? ? ?- i-'R?, ?'R?R?, ?R??-- ?'R?R? ???'R?, R? ? -?- ??R? ?Rך-R?'?-. ???, ? ?- - -Rֳ ? ? ?R??--R ?'R?? R? ?R? '?- ?ʳ? ?R?'?: - -??RR̿ ?'R? R? ? ?-? ³?, .?. -? ?' ښ Ě' -? ? ? ??? ?R?R?- ?'R?R?; - R? ?R? ??' i-'R?, .?. R?? R?- R ? Ě' ???; - -??RR̿ ?'R? R? R?-R???--R ? ښ Ě' ? ? ??? ?R?R?- ?'R?R?; - -??RR̿ Ě' R? ??R?, -? ??ڳ ??'?--̃ - ? R?- ?ך'R?. ? ښ, ? Ě'R?R ³? R?'?? -??RRR ?R-R, ?R?R'? ?Rך-?'? R??'-? ?R'R- ?. 'R -??RR? ?? ?R-R׳: - 131 - - ?'R? ?--, ?'ʳ ?ך'R?R, R?? ?- Ě- 'R? -R? i-'R?; ???-R ? i-?', RR???ʳ R ?ך'R?, R i-?' ?R'?- ? ?ך'R?R, -? R?-̃ Ě'R; - ?'R?, ??'?--̿ ? ?R? ?R?R?- ?'R?R?, ?R?׳?- ? -? R? ? ښ ??R?R-'?R Ě'; ?' ?R??? R- ?R ?RךR-R ?-R? ?? i-' ?' ?RƒR ?? ?'R- ?R?, - Ě', ?-R? ?R? ?R?R?- ?'R?R?; - -'R?-R, ?'R?, ?-?'?ʳ Ě', ?R'?- ?-?'?- R'?R R?-R Ě'; R '???R ?R??. ?׳ ??? ?? ?R-R׳ ?R'? ?R? ?R- ??? Ě'R?R ³?, ??? ?R-?R fsck (file system check). ' '- ?'ֳ ?? -? ?R- -? ?R??? ?'R-R׳ Ě'R?R ³?: icheck, dcheck, ncheck. ??-?R ?? R- ? ?R'? ' ?-? ???- ????- ? ?R-?R fsck. '?-R? ??R'-?-? ?R-? fsck ??'? '??ʳ R?R: /etc/fsck ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Free List ? ?? ??-R, R fsck ??R'-? ? -??R'?R Ě. - 132 - ? ׳ Ě ?R?R? '??ʚ ?Rך: - ?R??? ?'R-R׳ i-'R? (?ڳ? ?, ׳? R- i-'); - ?R??? ?ך'R?R?, ??ʳ - i-', R??ʳ? Rɳ??; - ?R??? ?ך'R?R?, - ?RR? -? 'R?; - ?R??? ?ڳ?R? ?? ? ?ך'R? Ě'; - ?R??? -???- ?'R?R? ??'R?-- ?'R?R? ? ?- ?? ?R?R?- ?'R?R?, -??R'? ?'R?R?, ?RR? ?R'- ? ??'?-, -R -? ??'?- ? ?R? ?R?R?- ?'R?R?, ?ڳ? R???R ڳ' ?R?R?- ?'R?R?. ?R-? ?R ǃR'ښ- ???? ?R??? ?R-?? Ě'R? ³?: ?? ??? Ě'R?? ³? ?R??, ?' ?- -??- ? Ě' /etc/checklist. ''??ʳ ?? ?R??? ??? ?R-? fsck ?- -R ? 'ښ? R?-ǁ?- ??' i-' ?' Ě' /user/src/sys/ux; ?-R ?-? ??-? ?' R ?'RR Ě', R??ښ ? ?'R?? R?'³? y (yes) - ?R?R ?R-?. /etc/fsck ** Phase 1 - Check blocks and sizes 528627 BAD I = 66 ** Phase 2 - Check pathnames DUP/BAD I = 66 OWNER = root MODE = 100755 - 133 - SIZE = 78409 MTIME = Jul 16 18:45 1987 FILE = /usr/src/sys/ux REMOVE ? y ** Phase 3 - Check connectivity ** Phase 4 - Check Reference Count BAD/DUP I = 66 OWNER = root MODE = 100755 SIZE = 78409 MTIME = Jul 16 18:45 1987 FILE = /usr/src/sys/ux CLEAR ? y UNREF FILE I = 36 OWNER = root MODE = 100600 SIZE = 0 MTIME = Jul 17 09:40 1987 RECONNECT ? y ** Phase 5 - Check Frec List 157 BLK(S) MISSING BAD FREE LIST SALVAGE ? y ** Phase 6 - Salvage Free List 302 files 5833 blocks 371 free ??׳? ?--? - ?R?'?-? ?R Ě, ?RRR -? ?'R ? -R'-R ??R'-?- ?R-?. ? R Ě? R-- ? ?Rך-?'?? ?R? ?R?R?- ?'R?R?. ?R'? ??R'-?- fsck, ?--R?R "?Rڳ-?R" Ě'R?R ³?, R? ?R? RR??-?: ***** BOOT UNIX (NO SYNC!) *****, ???? ????? ³? ?? ??R'-?- ?R-? sync. - 134 - :' R?R -? ??', ?Rך ?R ?Rך-R?'?- ?? ?R- ?R?- ?'R?R? ??? ?-, ך? ?? ?R? ??'ʳ ך?- ' ?? ? R??׳?-R ?׳ Rך' ך̃. '' R?-R?'?- ??? ????? ?? ??? ??R? - ?? ?R-?R sync. ??R?R?̃ 'R?? ??'-R ?R fsck ?'? ך?- ? -'ڳ? ?R?R ?ך'R? /lost+found ? ?R-??R ?ך'R??. :' ? ??R'-?- fsck ?? -??- ?ך'R?, - ?RR? -?R -? '? ? ?R???R Ě'R?R ³??, R- ?? ?R??'?- ? ?ך'R? /lost+found ?' ?'-???R ?- ?-?'?-R׳. 13.9. ?R-R' ?R'R?- ??R?R ?׳ ???'-R? ??R'-?-? ?R-? du (disk usage) ?R?R'? ?? ?R'R??'?, ?׳?ɳ '?R -R?R ??R?R ?׳. ?R-? ??ښך? ڳ'R ?'R?R?, - ??̃ Ě'R ?ך'R?R ? ?????, ?--R ?-? ?ך'R? - ??R ?R-?. ???: du / ?? ?????- R?? ?? Ě'R? ?ך'R?R?. ??R'R?-? ?R-? find ?RR?? ?? ?R'?R -?- ?R'?? Ě' ?R'R?R R??. ???: find / -m time+90 -a time+90 -print ?? ?R?- ?? Ě', ? ?RR̃ -? R?ʚ' - ?R - ?³, - ?R ?- ?R'??-? 90 ?-?. ' ?RR ?R-? find ?-R R? ך?? -׳ Ě', ???ך?'ʳ? R?-R ?' R??ֳR--R ³? ' ???R'?-R -ʳ? ?R-?R - ???, ?? ?' ?R ?R'R?- ׳ Ě'R? ? ?ų ?ך'R?R? -???-R. - 135 - ???: find / -name danger -print ?R? ?R?R? -ڳ- ?R-??R?R ?ך'R? /. ?' -name ??? ?R'???? Ě' danger, ?' -print ?????? ??R? ?R'-R?R ?- Ě' danger - ?-. ?R-? df (disk free) ?R??? ڳ'R ?R?R?- ?'R?R? ?? ' ?--R ??R Ě'R?R ³?. ''??? ڳ? ך??, R ?-? Ě' (׳? /usr/lib/cronlog) R? ׳ -?R?-?--R ?? ??R- ???R ڳ? ' ?Rš. 13.10. ?R??'?-? ?-'R? '? ?-', ?RR? R? ? ?R??'?- ? ³??, ?R'- ? R?š- ? ??ֳ'-R Ě'?, ?RR̿ ?? /etc/ttys (??³ 7) ' /etc/inittab: ??R ?-' RR???? R?- R? Ě'. 'R- ׳ Ě'R? R?- ? R, R ???̿ ³?R' ?'? ֳ- R, -'??R? -?-? ?RRR RR???? R?'?--R ('R???) ?-', ??--R? - ?R??'?--R ?-- '. ?R? R?R, R R?R Ě'R? ???ƒ?? -'ڳ? ?- ??Ě', RR?????R ?-' (?RR? ?R'? ? /etc/inittab). '?- R? ? /etc/inittab ?? ?? (??): 1:t3:c:/etc/getty tty13 H 0 ???R? ?R'? ?? ?R??R', ??'?--? ??R?Rڳ?. ? ??? ³? ?R'??- ɚ?R ?? ?'? ?? -ښ'-R?R ?R?š -R?R 1, ??R'-??R ?R-? /etc/init. - 136 - ?R-? init ???? ??R'-?-? ³?-R?R ךR?R?R ?R- -?-R?R Ě' /etc/rc ?Rƒ?? Ě' etc/inittab. '' ??R R? R?R Ě', -ڳ-? -?-'??R?R ³?R- ', R?????R RR-? -ښ'-R?R ?R?š (? - ??? ?-R?R ??-?), ?R-? init ?RR?? ?RR ?R- ? ? ??R?? (init-getti-login-shell). ?RR??--̿ ?R? ??R'-? ?R-?, ?-- ? ???R ?R??R'? ???R?R ?R- ' Ě' /etc/inittab (? ?--R ??? /etc/getty). ?R-? getty ??? - ?-', ?--̿ ?-? ??- Ě' ?R ?RR ?R'? Ě' /etc/inittab, R??R? Ě' /etc/issue, ?' R- ???, ?'??  ׳ ??R? - ?-' ?? ?R???  ?³ Ě' /etc/gettydefs, R- ??? Ś??׳? ?-' (R?-R login:). ? getty ڳך? ?R'R??' ??? ?R-? login, ??- ??? ? ?R'R??' ? ???? ??. ?R-? login ??R? ?R' ?R'R??' ?R'? ??-R ?R??? ?R' ??R'-? ?R-?  ?R'??-??R ?R' ?³ ?--R?R ?R'R??' ? Ě'? /etc/passwd (R?-R /bin/sh ' bin/csh), ך?? ך-?'?? ? ???? ????R -ښ'- -̿ ?ך'R? ?R'R??', ?--̿ ? ????R'??-? ?R'? - ?³ ?--R?R ?R'R??' ? Ě'? /etc/passwd. ?R-? sh ' csh ?R-?-R?R -???ךR ??R'-? ךR?? Ě' ???R????'?--̃ ?- (.profile ?' sh; .cshrc .login ?' csh), ??R? ?R??? ?? ??R? R???-R ?R-? ?R'R??'. ?R R?R-ښ- ?-š (?R?? ?R-? logout ' ^D), ך?? ? 'ښ? -???-R?R ?R' ??'?-? ?R?ʚ? ? - 137 - ?R-? getty, ?RR ?????? ?R?R-R, ?' ? ?? ?R??R'? ???R?R ?R' ?³ Ě' /etc/inittab ?' ?--R?R ?-' R ³?R' (continually); ?' ? ? R ?R'? R ?R??', R ?R-? getty ??ɚ?. 13.11. ??R???R? ??R'-?-? ?- ??-R  ?R-?, ??R'-? ? Rך?? ³?-R?R ךR- ?R?R ?R-?-R?R Ě' /etc/rc -ښ'-̃ ?R?R, R? ? ?R-? /etc/cron, R?ʚ ?RR--̿ ?R?, ?R- ?ǁ?ʳ ??R??? ?? -. ?R ?R? ?R- ?? ?³ Ě' /usr/lib/crontab ? ?R? ?-, ?RR? ?R'- ? ??R'-?-. '?-̿ Ě' crontab R? ??'?? '??ʳ R?R (??): cat /usr/lib/crontab 0 0 * * * /etc/backup -fsck 0,15,30,45 2-23 * * * /usr/lib/atrun ???? ? ?R'? ?³ Ě' crontab R-ښ - (0-59), ښ (0-23), ??- ?֚ (1-31), ? ?R? (1-12) ??- -???' (0-6, 0 - ?R???-?). ' ??R  ׳ ?R'? R? ? -?-?, ????- -?-, ??'?-- ?- , ' ?- -??' -?-, ??'?--? -R; ???R? R-ښ? '?R? ?RR-R? -?-?. ' ?--R ??- ? ??? ? RR???? ???-??-R ??R'-?- ? ?R'- -R ?Rš ?R??? Ě'R?R ³? ? ??-? ???R ?R- ?; ?R - ??R'-?- ?R? ?? ?-, ?'-- R?-- ?R-?R at, ??? 15 - 2 ښR? -Rڳ ?R 11 ښR? ??? ???-??-R ? ??-? ???R ?R?. - 138 - ?R-? at ?'-? ??R'-?-? ?R-?-R?R Ě' -??- ?ךR shell (shell-??ך), ?--R?R ?? ?R'??- - ?ǃ?-R ? R?- ???-, ?--̿ ?? ???̃ ?ǃ?-ך. ???: at 2300 jun 16 scriptfile_1 '?--̿ Ě' ??? ??R'-?- ? 11 ښR? ??? ? ?-- -̿ ??- ????R ?R?. 'R-R ???- ?? ?³ R ??R? ?R?ǁ??- ?RR--R?R ?R?š, ??R'-??R ?R- -? cron. '? ??? ?R?š, ??R'-??R cron, ij?³- ? ?-R Ě'? /usr/lib/cronlag, ?' R- ??? R? - ? ? R?- ??R'-?- ?R-? cron. ?R-? at R? ?׳ '?R ?R'R??', R? R- ך? ?-? - -R-R? ??. 13.12. ??Rך ?R?R?? ?' ?R'R??' '?? ?R?R?? ?' ?R'R??'? -R? ? '- ?R??ך'R? man? ?ך'R? /usr/man, ??? ?R?R³?'-̿ -? - ?ך³?R', ?-ʳ -?- R 1 ?R 8 ? RR??? -ǃ?ֳ? ?R?R?? ?R ³??. ???'-? Ě' ׳ ?R??ך'R?R? R?? R?-? ?? R??'- ?R?R??. ???, ?R??ך'R? man1, R??ʳ Ě' ??R? ?R-?, R? ? '??ʳ ?? (??-): $ ls /usr/man/man1 _ _ _ _ _ _ _ _ _ cpio.1 grep.1 mknod.1 ren.1 test.1 _ _ _ _ _ _ _ _ _ ?R?-? ?? ?R?R?? - ? ׳ Ě' ? ?R?- ?RR?'?--R ??? ?' ?R-? R׳R?- - nroff - 139 - (newrunoff). ? ?R?? ?R-? R׳R?- ?R? ?? ? R?, ??R?-R ?' ??ڳ - ??ښ ' ?-'. 'R -R? ³? ?? ?R?R?? ? ?R?-R R? R?- ? ?R-? ? Ě' ?ך'R? /usr/man/cat?/*, ??? ? * - ?ך³?R' ? R?-R ƒ'?, ??R'-?-? ?R-? catman. '?ښ ?R?R?? - ?-' ' ??ښ ??R'-? ?R- -?R man, ?RR ? RR??? ?--̃ ?ǃ?-R ? ??? ?? ?R?R?? ? ?R?-R R? ??? ??R - ך-?-̿ ??R?; ? ?R׳?-R 'ښ?, R- ? - R?-̿ ?? ??? ?R-? nroff, ?'ך ?R ?R- RR ??? - ך-?-̿ ??R?. 'R??'?-? -R? ?R?R?? ??? -- RR? ?' ?R-? nroff, ?Rך? ???R man ?RR????'?-. 13.13. '??'?-? R??ֳR--R ³?R '??? ??'?- R??ֳR--R ³?R (?') ??- -R-?³, R?-?R ??R?R? -? R?š-? ׳ ??? ?'? ?R?R'-R ׳?-̃ 'ښ?. ???ֳR-- ³? - - ??R?R R? ? -??RR- R ?--R R?. '' ?- Rך ?R'? ?R- -? (System III - /lbin/init) -ֳ'ֳ R R?- R??'-̃ ??R - ?-? ??Ě' ?' R?, - ?RRR -R? -ֳ'?̿ R. ?ך'-? -?R?- ?'-? ?? R? ? ? 'R???R?R ?'R? - ??- ????ڳ ?-- ?? RR R??׳?-R ? ? ?R-R R?'׳ ? ?ך (? R? -- - 140 - ?- ?? ?R ǃR'ښ-). ??̿ R ?? R?- ?R- R?', R?? ?- 'R?, ?RR-R -'??R?, ڳ'R 'R??? ?'R?R?. ?R- R?' ?R'-R -R? ?-? ??R-'?R Ě'R?R ³?. ??-?-? ?? ? ?RR-R R'?R ?? ???-ֳ'ֳ R. ?? ?R- R?' R? R?? R'?R R?- ?' (' ښ R?-R ?'). ?' RR  ?R'??R??'-R׳ ?R?R? ???-R?, - ?R'R?-- ? ?R-R R?'׳ R?-R?R ' -??R'? R- R?, ?? ?-֚ ?? R R? ? ?- -??RRR- ?R ???-ך. ?' - ? ?R-R R?. ?RR ?R-R R?'׳, ?' R? ?R'? ך?? ? ?? R?- Ě'R?, ??̿  ?RR R?? ?'R? ڳ- 'R ?R?R? ???-R?, ?-ڳ?ʳ ??ǃ -'??̃ ?ך- . ?R R -? ?'? ?R-̃, R?-?R R- R? ? ??R?R?- ? ?R-̿ ?R-?R (System III - /lbin/oscp). 'R??R? ?R-R R?'׳ ? ????'-R׳ RR  R?-R?R ' -??R'? ?'-Ě'R?. ??̿ ?'-Ě' -ڳ-?- ?R'R??, R????R '? ?ǁ?R׳, -R? R, ڳ'R RR?, - R??ֳR--R ³?R. '?-̿ ?- ڳ? ?ǁ? ?'-Ě' R'?R ? R 'ښ?, ?' '? - ך-R?'?- ? RR-? ?ǁ?R׳. 'ך-R?? RR- '- ?R? ?'-Ě'R? R-R ??R'- ??ֳ'-R ?R-?R (System - 141 - III - /lbin/osmark) ??R, ??ʳ ??Ě' ?' R?, - ?RRR? ?Rך?'?- R ?R-R R?- '. ?' ? R ?R-?? ך-?'?? '? ? RcR-? ?ǁ?R׳ ' -??ǁ?R׳. '?R-ך ?? ?R-? /lbin/oscp (System III) ?R?R'? ??R'- '??ʳ? ?R ?R ?R?R?- ???-R? ?': - ?R?R? ?'  R?-R (' ?R'??) ?R- R?'? R (RR?) ? ?R- R?' ??R?R R; - ?R?R? ?'  R?- Ě'R? ? ?'-Ě' ?' R?- (R?ֳ -m, merge) ' R?ij?ֳ (R?ֳ -a, add) ?' ? ?- R-R R?'׳; - ?R?R? ?'-Ě' ? R?-? Ě' ?' ??'?- ?' - ښ׳ (R?ֳ -s, split) ' ? R?- R?-̿ Ě' (R?ֳ -f). '' ?R??? ?'R-R׳ ?' ? ?R-R R?'׳, ך?- ? ?' ?R-R' ?R??'?-- ???-R? R-R ??R'- ?R-- ? lbin/osck (System III), -??: osck -v /dev/rhd ??ֳ -v ??? ??ښ ?? ?- ?? ???-R? ?'. ?R-? ?R??? ?R??-R: - 142 - - ?R'R??R? ?'-Ě'R?; - ?? ???-R?; - ?R-R'-R ǃ ??R?R ???-ך. ???R-ښ'- ך-R?? ?' ' ښ׳ ?' ??R'-? ?R- -?R optinstall, R?ij?ֳ ??³ ?' - ?R-?R optupdate. ?׳ ?R-? '??? ??R'- ? R?-R?R'R??'- ?R ?? ??ɚ ?????R ³?. '--? ?' - ך-R?? ' R?ij?ֳ ??³ ?' ?R'R?- - ??- ׳?-R R? (R?-R ??- '?-ך ' ??? ??). ?- ?R R?? ?R-? ?'? (-R?) ך-?'??R?R ' R?ijֳ?R?R ?R?-R?R ?R??ך. ??R-?, ?? ?RR-R ?ǁ -??R'?R - ?' (' ??³ R?-R ?'), ?R' R?- ?R- R?' - ³?-R ??? (/dev/rhd). ?R ??R'-? ?R-? /lbin/chsys (change system), ?'ʚ ?R-?-̃ Ě'R. '- ?R-?-R?R Ě' chsys ?R' ?R-? oscp ?' ???R? ?R-R R?'׳ ?' -R?R ?' ?-? ?? ??- ?-R?  R?- Ě'R?, osck ?' ?R'??? ?R??? ?- R-R R?'׳. '? ?? chsys -? ?R???, ?? ' ?R'R- ??' ?R-ڳ' ?R, ??R?-?? ???? ?? ??R'-?-? ??R'- ?R-? shutdown. - 143 - 13.14. ???R-ij?ֳ R??ֳR--R ³? ???R R??ֳR--R ³? ?R?R'? R?׳- '-̃ R?R -R ?? ?' ?R - ?-- ??- - ??? ?R RR??--R? ?R'R?- ³? ?' ?--R?R ?'š ?. 'R?R??-R -?- ?-?? ??R? ?' ? ?- R-R R?'׳ -? ?R-ij?ֳ? ?'. '' ??'?- ?R-ij?ֳ? ?? ?R-?: /lbin/uconfig (System III). :? -?R??'-̿ ?? ??? ??Ě' R?, - ?RRR -R? ?R- R?' (?R ǃR'ښ- /dev/rhd). ??ڳ ?R?--R ?? R?ֳ, ?R-? uconfig ?R??? ?- ??? -?-? ??R?. ??ֳ -f < Ě'> ?R?R'? ך-R? -R?? -?- -??R'? ' ?? ??R?  ?--R?R Ě', R?ֳ -d (default) ך-?'?? ?? ?? -?- ?R ǃR'ښ-, ?R' Ě' /etc/uconfigtab. '?-̃ ?? ?' (? ?R?? - -?- ?R ǃR'ښ-): - R?R ?ǚ'-R ?׳ (³?-̿ ??); - ? ?? ???-?׳ (1024 ?ך); - ڳ'R ??R? ???-?׳ (0; ?ڳ'? ?-??); - ?'- ??R? ??R? ?- (0; ?ڳ'? ?-?- ?); - 144 - - ?? ?׳?-R׳ ?R?š ?R'? -??׳?-R?R ?-; - ?? ???--R׳ ???-ך ? ?׳ ???? ?R?-?R - ?? (0; ?ڳ'? ?-??); - ? - (1024 ?ך); - ?? ???--R׳ - ? ?׳ ???? ?R?-?R - ??; - ?³'-̿ ? --R?R ?' ?ǚ'-R ?׳ (0; ?ڳ'? ?-??); - ڳ'R - ?? ??'?, ??? -֚ ?- 24 R? ??'?; - ?³'-̿ ? ?R?R ?׳ (0; ?ڳ'? ?- -??); - -'- ?R' - ? ?R? -R??? -; - ?³'-R? ڳ'R ?R?R? R?-R?R ?R'R??' (500). ? ??R'-?- ?R-? uconfig ?' ?-?- ³?- ??R? -?R ? ???--̃, R ?' ? ?R-R R?'׳ R???? ??? ?'. ' ?R׳?-R 'ښ?, ?'ך ?- ?R'-?- ?R-? ?? -??????. 13.15. ??׳??? R?? ?Rڳך? ?'?, ' R?? ?R?R?R? ך ?-- RR ³? UNIX. ?-R?-? -?R?R?? ??? ?' ?R?- ??- ?'R-R׳ ³? ' ??? ??-. ?? ?- ?? ??'-R ??' ?R? ³? ڳ׳ '-? Ě'. ?-R?-R ?R?'?R ?? 'ɳ ?RR-R?- ?? ?R'R??'Ѓ. ??-̿ ?-R ? ?³'-R ???- ?? ??R?-Ѓ ?? ?R'R??'?, R? ?R'R??- ' -? R?' ?̿׳  ????' R????-- ?R?. 'R?R'- -?'-? ????- ' R?? -׳ ? ?-?? [12]. - 145 - ?'R?-? 1. ??'ֳ ³? UNIX. ??R'?? ?R-?--? ?'ֳ ³? UNIX - ??R-'- ?'? ?Rڳ ך-ֳ ???ך?'?- ? ך?'? [13]. -------------------------------------------------------- ? ??-?/׳? ? ??R- ??R?-? ??'ֳ ? ? ??'? ? ?R?R ? (MIPS) ? UNIX ? ?------------------------------------------------------? ?PC AT-386/486 ? i80386/486 ? 16 ? SCO UNIX ? ? ? ? ? ? ?PC AT-386/486 ? i80386/486 ? 16 ? ISC UNIX ? ? ? ? ? ? ?PC AT-386/486 ? i80386/486 ? 16 ? AT&T UNIX ? ? ? ? ? ? ?Apple Macintosh ? m68030/040 ? 12 ? A/UX ? ? ? ? ? ? ?Sun SparcStation? Sparc ? 18 ? SunOS ? ? ? ? ? ? ?IBM PowerStation? RS6000 ? 24 ? AIX ? ? ? ? ? ? ?DEC DECStation ? R3000 ? 25 ? Ultrics ? ? ? ? ? ? ?HP 9000 ? HP800 ? 10 ? HP-UX ? -------------------------------------------------------- - 146 - ?'R?-? 2.'Rך? ³? ISC UNIX System V. ?-R?-? ?R?R-?- ³? ISC UNIX System V Rel.3.2 [14]. 1) core - ?R ³? 2) kernel - R?R'R? ? ³? 3) development system - ??? ?R? ?R? 4) manuals - ?--? ?R?R?? ?R'R??' ?R?- ך 5) VP/ix - ΃'R MS DOS 6) UUCP - ??? ????ڳ ?-- ?R ?-' ? 7) STREAMs - ?Ś- ??? ?RR?R'R? 8) TCP/IP - ???R ?RR?R' 9) NFS - ??? Ě'R? ³? 10) X-Windows - ??? ??? ?ij?? -??R? ?R'R??' (GUI) 11) Looking Glass - ?R-?- R?R'R? - ?? GUI - 147 - '?. 1. Bell System Technical Journal, 1957, vol.6, pp. 1977-2200. 2. MacGilton H., Morgan R. Introducing the UNIX System. - McGrow-Hill, 1983, 556 pp. 3. ?׳- ?. ???ֳR-- ³? UNIX. - ?., '-- ך׳׳?, 1985, 320 . 4. 'R?? '.,  '- -R-?. ?-? ??-?. - ?., ?, 1988, 392 . 5. ?- '. ???ֳR-- ³? UNIX. - ?., ?, 1986, 464 . 6. Aho A.V., Kernighan B.W., Weinberger P.J. Awk - A Pattern Scanning and Text Processing Language (2d Edition). - Bell Labs, Murray Hill, N.J. 7. Feldman S.I. Make - a program for maintaining computer programs. - Bell Labs, Murray Hill, N.J. ( ך?? ? -'? Software - Practice and Experience, vol.9). 8. '??R? '.'. "?R?R?-? ? R??ֳR--R ³?? UNIX". - ?., "?R?? ?-?", 1991, 110 . 9. Lesk M.E., Schmidt E. Lex - a lexical analyzer generator. - Bell Labs, Murray Hill, N.J. 10. Johnson S.C. Yacc - Yet Another Compiler-Compiler. - Bell Labs, Murray Hill, N.J. 11. 'RR? '.?., '??R? ?.?. ???ֳR-- ³? ':- ??': -ǃ?-ך'-? ??? ?R?R?-. - ?., '- -- ך׳׳?, 1988. 12. 'ך?R? ?.?. ??-R ³? UNIX. ?., ?-?- ???R, 1989. 13. '???? :.?. '?-??-ֳ ?׳ ?ڳ'?'-R ?- -?. - ?., "?R?? ?-?", 1991, 96 . 14. Interactive UNIX System V/386 Release 3.2 Operating System Guide. - Interactive System Corporation, Santa Monica, CA, 1990. - 148 - 'R??-?. 1. '?''?' '?'':?'. . . . . . . . . . . . . . . . . . . . . 1 1.1. ?'?-? ښ׳ UNIX . . . . . . . . . . . . . . . 1 1.2. ?-R?-? ?R? UNIX . . . . . . . . . . . . . 1 1.3. ?? ?R?R?- ? UNIX. . . . . . . . . . 2 1.4. '?³ UNIX. . . . . . . . . . . . . . . . . . . 2 2. ?:?'': ???? . . . . . . . . . . . . . . . . . . . . . 3 2.1. ?ښ'R ?R-? ?-š ?R. . . . . . . . . . . 3 2.2. ???'?-? Rɳ?R? ? -?R? ??ך ?R-? . . 3 2.3. ???RR? ?R? ?R-?. . . . . . . . . . . . 4 2.4. 'R ?R-? . . . . . . . . . . . . . . . . . 4 2.5. ?Rך-R??-?R?R'?-? ??R? - ?- . . . . 5 2.6. ?ך-R? ??R'-?- ?R-? . . . . . . . . . . . 5 3. ''?'?''?? ??'????-?? ? ''??-?? UNIX. . . . . . . . . 5 4. ??'?'??? ? '?%''. . . . . . . . . . . . . . . . . . . 7 4.1. ??ښ ?R??R ?ך'R? . . . . . . . . . . . . 7 4.2. ??ښ R??R?R ?ך'R?. . . . . . . . . . . 7 4.3. '? ?R-??R?R ?ך'R? . . . . . . . . . . 8 4.4. ??-?-? ?R??R ?ך'R?(cd). . . . . . . . . 9 4.5. 'R?'?- ?R -?-R?- ?ך'R?R? Ě'R?. . 9 4.6. ??ښ R??R?R Ě' . . . . . . . . . . . . 10 4.7. ?RƒR ?R-֚ Ě' . . . . . . . . . . . . . . 10 4.8. ?????'?-? ׳? Ě' . . . . . . . . . . . . . 11 4.9. 'R?-? ?ך'R? ?R'R??' . . . . . . . . . 11 4.10. ?R?R?-? Ě'R? ?R-?R cp. . . . . . . . . 13 4.11. ???-R ????-R?-? Ě'R? ?R-?R mv . . 13 4.12. '?'?-? Ě'R? ?R-?R rm . . . . . . . . . . 14 - 149 - 4.13. '-R?-? ?R?R ?ך'R?: rmdir . . . . . . 15 4.14. ??R'R?-? ?ך³?R'R? *, ?, [] . . . . . . 15 4.15. ????ښ-? ³?R' ? ?- Ě'R?. . . . . . . 16 4.16. ''??'? Ě' ʳך Ě' . . . . . . . . . 17 4.17. 'ך-R?? ?-?-? ? ?R? ? Ě': chmod . . . . . . . . . . . . . . . . . . . . . 18 5. ?????'' ? ''??'??'?': '?%'' . . . . . . . . . . . . . 19 5.1. 'ך-?-? Ě'. . . . . . . . . . . . . . . . 19 5.2. ?????ֳ ך-?-R?R ??R? . . . . . . . . . 20 5.3. ?????ֳ ך-?-R?R ??R?. . . . . . . . . . 20 5.4. 'R?-? Ě' ?R-?R cat. . . . . . . . . . . 21 5.5. 'R??-?-? ?R-? ?-' (pipeline). . . . . . 22 5.6. ''. . . . . . . . . . . . . . . . . . . . . 23 5.7. ?''?'-̿ ך-?-̿ ??R? ????ֳ ??R? . . . . . . . . . . . . . . . . . . . . . 23 5.8. '?-R׳?? ??R?. . . . . . . . . . . . . . 23 5.9. ???R? ?R-? ? ?? ?-??R ?'- (background) . . . . . . . . . . . . . . . . . . 24 5.10. '?R'-?-? ?R?R? -? ?R?R . . . 26 5.11. ?ך-R? ?R?š. . . . . . . . . . . . . . . . 26 6. ?:'??'??' EX ? VI . . . . . . . . . . . . . . . . . . 27 6.1. 'R? vi . . . . . . . . . . . . . . . . . . . . 27 6.2. 'R?  vi. . . . . . . . . . . . . . . . . . . 27 6.3. ?RֳR-R?-? ?R . . . . . . . . . . . . 28 6.4. 'R??'?-?, ?-?-? -R?-? ??ך . . . 28 6.5. ???ֳ -? 'R? R?. . . . . . . . . 29 6.6. ???ך-R?? ښ׳ ??ך (cut-paste). . . . . . 30 - 150 - 6.7. 'R-?-? ښ׳ ??ך ?' ?R'????R ?R'- R?- (yank) . . . . . . . . . . . . . . . . . 30 7. ???????????'???: ' ?'?: SHELL. . . . . . . . . . . . 31 7.1. '?³ shell . . . . . . . . . . . . . . . . . . 31 7.2. '' -ښ' ?-š (login-Ě'). . . . . . . . . 32 7.3. ?R?? ? shell. . . . . . . . . . . . . . 32 7.4. ????--? shell . . . . . . . . . . . . . . . . 33 7.5. ???R????'?--? ????--? shell. . . . . . . . 34 7.6. 'ך-R?? ????--R shell ??R?R  ?R-?. . 35 7.7. ????--? shell - ?ǃ?- ?R??. . . . . . 35 7.8. '?-? R??R shell. . . . . . . . . . . 36 7.9. ???R ֳ?' for . . . . . . . . . . . . . . . 36 7.10. ''R?-̿ R??R if . . . . . . . . . . . . . . 38 7.11. ?R-? test. . . . . . . . . . . . . . . . . . 39 7.12. ???R ֳ?' while. . . . . . . . . . . . . . 40 7.13. ???R ֳ?' until. . . . . . . . . . . . . . 41 7.14. ???R case . . . . . . . . . . . . . . . . . 42 7.15. ??R'R?-? ???-- Ě'R? ? ?ך'R?? /tmp. 43 7.16. ?R?-ך ? ?R??. . . . . . . . . . . . 44 7.17. ?? ?R??. . . . . . . . . . . . . . . . 44 7.18. ???R? ???- ? ?R?? . . . . . . . 46 7.19. '?R'-?-? ă?׳?? R??ֳ: expr. . . . 47 7.20. ?'?? ?R?? shell. . . . . . . . . . . . . 48 8. C-SHELL . . . . . . . . . . . . . . . . . . . . . . . .48 8.1. '??ֳ'-? ³?R' ? C-Shell. . . . . . . . . . 49 8.2. 'ך-?-? Ě' ? C-Shell. . . . . . . . . . . 49 - 151 - 8.3. ??Ś- R . . . . . . . . . . . . . . . 49 8.4. ?R??ֳ ????? ?R-?. . . . . . . . . . 50 8.5. ?R?R-R? ?R'-?-? ????ʳ ?R-?. . . . . 51 8.6. ??-?-? ?R?R-R? ?R'-?-? ????ʳ. ?R-? . . . . . . . . . . . . . . . . . . . . 52 8.7. ''? - ?Rڳ ?ך'R? ?R'R??' . . . . 53 8.8. ??R'R?-? ??? ?- Ě'R?. . . . . . . . . 54 8.9. ??Ś- ????-R?- . . . . . . . . . . . . 54 8.10. ????--? ? C-Shell. . . . . . . . . . . . . 55 8.11. ??ך³?R' ? C-Shell. . . . . . . . . . . . . 59 8.12. ???RR? ?R-? C-Shell . . . . . . . . . . 62 8.13. ??-? RR- Ě'. . . . . . . . . . . . . 65 8.14. ??R . . . . . . . . . . . . . . . . . . . . .65 8.15. ?R-?-? Ě' (??) ? C-Shell. . . . . . 66 8.16. '?-? ? ??ך. . . . . . . . . . . . . . 69 8.17. '??'ʳ? ? ??R? . . . . . . . . .69 8.17.1. ???R foreach . . . . . . . . . . . 69 8.17.2. ???R if-then-endif . . . . . . . . 70 8.17.3. ???R while . . . . . . . . . . . . 71 8.17.4. ???R switch . . . . . . . . . . . . 72 8.17.5. ???R goto . . . . . . . . . . . . . 73 8.18. '?R? ? ?R-? ??ך. . . . . . . . . . . . 73 8.19. ???R? ???- ? ??ך . . . . . . . 74 8.20. ?? ??ך. . . . . . . . . . . . . . . . . 75 9. ''?? ??'??'?':'?-??'??'?':'? . . . . . . . . . . . 76 9.1. ?R'? RR??- ?R-?R write . . . . . . . 76 9.2. ?'??R-- ?Rך (mail). . . . . . . . . . . . 79 - 152 - 10. ????'? ' ':?''?''?? '?%'??? . . . . . . . . . . . . . 82 10.1. ??ښ Ě'. . . . . . . . . . . . . . . . . . 83 10.2. ??R? ?R? Ě' . . . . . . . . . . . 84 10.3. 'R׳R?? ??R? Ě'R? . . . . . . . . . 85 10.4. ?R?? R?, 'R?, -?R? ? Ě'? . . . . . 86 10.5. ?R? R? ? Ě'? ?R R? (grep) . . . . 87 10.6. '-'ֳ -?R? (tr). . . . . . . . . . . . . 89 10.7. ?R-? ?-?- Ě'R? (diff, cmp, comm). . . 90 10.8. ???R? ??R? Ě'R? ?R-?R awk. . . . 93 11. '?:''''? ??????'?? ???????? . . . . . . . . . . . . 96 11.1.'R? ?R?'RR? . . . . . . . . . . . . . . . 97 11.2. '-??. . . . . . . . . . . . . . . . . . . . . 98 11.3. ??'R??. . . . . . . . . . . . . . . . . . . 99 11.4. '?R'-̿ R'?ڳ?. . . . . . . . . . . . . . 101 11.5. '??? R?-? ??׳?-R׳ ?R'-?- ?R? . . . . . . . . . . . . . . . . . . . 102 11.6. 'R?R?R??-? ?R?: make . . . . . . . . . 104 11.7. '??? ?'ֳ ?R? ?R?R?-. . 106 12. '?:''''? ?:'??'??? EX, '???'???T?: '?????''? . . . 107 ?:'??'??? VI. . . . . . . . . . . . . . . . . . . . 107 12.1. 'R?  vi ? ex . . . . . . . . . . . . . . . 107 12.2. ?RƒR R? ??ך . . . . . . . . . . . . 107 12.3. ?R? R? ?R R? ??ך. . . . . . . . . 108 12.4. ?R?ך-R?? R?֚ ??ך . . . . . . . . . . 109 12.5. ?׃?- ?R'??-? ?R?ך-R?? . . . . . . . . . 110 12.6. -?-? ? Ě'R? ? ??? ???׳R?- 111 12.7. 'R? - ???׳R?-? '????R ' -R?R?R Ě' . . . . . . . . . . . . . . . . . . . . . 112 12.8. '?R'-?-? ?R-? ³? ?- ???R ex 112 - 153 - 12.9. ???R? ? ? ???R vi . . . . . . . . . 113 12.10. 'R?  ???R ex . . . . . . . . . . . . 113 13. ?'??'?''''? '?'':????? ?'????''??'???. . . . . . . . 114 13.1. '???R'R??' . . . . . . . . . . . . . . . 114 13.2. ?? ??'?-? ³? . . . . . . . . 115 13.3. ?R'R??' ??? . . . . . . . . . . . . 116 13.4. '??ֳ'-? ? ?R'-?R?R Ě' . . . . 118 13.5. ''R?? ³? . . . . . . . . . . . . . . . 119 13.5.1. 'R?-? R-ך Ě'R?R ³? . . 124 13.5.2. '?R-ך Ě'R?R ³?. . . . . . . 125 13.5.3. '-R-ֳ Ě'R? ³?. . . . . 126 13.6. 'R? ??ֳ'-? Ě' . . . . . . . . 127 13.7. 'R-?-? ?Rך-R?'?-? Ě'R? . . . . . . 128 13.8. ?R??? ?Rך-R?'?-? ? Ě'R?R ³? . . . . . . . . . . . . . . . 130 13.9. ?R-R' ?R'R?- ??R?R ?׳. . . . .134 13.10. ?R??'?-? ?-'R? . . . . . . . . . . . .135 13.11. ??R???R? ??R'-?-? ?- . . . . . . .137 13.12. ??Rך ?R?R?? ?' ?R'R??'? . . .138 13.13. '??'?-? R??ֳR--R ³?R . . . . . . .139 13.14. ???R-ij?ֳ R??ֳR--R ³?. . . . . .143 13.15. ??׳??? R??. . . . . . . . . . . . . .144 ?'R?-? 1.??'ֳ ³? UNIX. . . . . . . . .145 ?'R?-? 2.'Rך? ³? ISC UNIX System V.. . . .146 '?. . . . . . . . . . . . . . . . . . . . . .147 'R??-?. . . . . . . . . . . . . . . . . . . . . .148