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