
               pq VMS ಾ Linux (From VMS to Linux HOWTO)
                                       
By Guido Gonzato, [1]guido ``at'' ibogeo.df.unibo.it, and Mike Miller,
[2]miller5@uiuc.edu, Ķ̡Gp

   v1.1.3, 17 September 1999
     _________________________________________________________________
   
   o HOWTO DnOw墨ǤwgιL VMX tΡMӲ{bi]ݭn૬ϥ
   Linux @~tΪHCƱǥѤ̧@~tζOtMӴ`Ǻi
   aziJ Linux @ɡC
     _________________________________________________________________
   
1. ² 

     * 1.1 nϥ Linux ?
     * 1.2 OMɮ׮榡
       
2. Mp 

     * 2.1 ɮ
     * 2.2 ؿ
     * 2.3 {
     * 2.4 ֳts 
       
3. ɮ׽s 

4. TeXing 

5. { 

     * 5.1 Fortran
     * 5.2 pϥ make
     * 5.3 Shell Scripts
     * 5.4 C y
       
6. ϧάɭ 

7. Mail M Internet u 

8. i 

     * 8.1 \v(Permissions)  Ҧv(Ownership) 
     * 8.2 hu(Multitasking): {(Processes) M u@(Jobs) 
     * 8.3 bXɮ(files)
     * 8.4 CLC 
       
9. ]w 

10. Ϊ{ 

     * 10.1 sɮ: less
     * 10.2 b Linux Uƥ 
     * 10.3 ɮ]]Archiving^: tar & gzip
       
11.  

12. i֪p

13. b Linux WŪ VMS ϱa

     * 13.1 ²
     * 13.2 @ǰ򥻱`
     * 13.3 hӸ`
     * 13.4 ϶jpĳ(Block Size)
       
14. `

     * 14.1 v
     * 14.2 
     * 14.3 Ķ̧
     _________________________________________________________________
   
1. ²

1.1 nϥ Linux ?

   zgťL UNIX }`Kߥ} VMS ܡHOдoMLinuxM̦n UNIX
   ۮeؤ@M @I]| VMS ϥΡFۤϪMڵo{ Linux  VMS 
   eWCMMVMS giणHMM OMgL\hHĳOGLinux T
   O VMS 󦳮ĤOBOh\C
   
   Linux M VMS ̳Oܦn@~tΡMӥBWiHD`Ĳv
   P@~C OMLinux @ǫD`lޤHSMӨϱoo VMS ܦn
   t@ӿܡCåBM Linux iHbӤHq (PC) WϥΡM VMS oC{
   b@xb(Pentium)qM ϥ Linux @~tΪįia
   L VMS CgHOM{bH@몺ܥdM NiHD`uq
   ϧάɭCXG`OֹLǱMΪqC
   
   ڷQMzӬOjǸ̪sHάOǥ͡MåBzCѨϥ VMS ӧUC
   XơG
   
     * ϥ TeX/LaTeX Ӽgi;
     * ϥ Fortran Ӽg{;
     * @@ǹϧΤ;
     * WϥάYǪA;
     * ΨL.
       
   bU`MڱNQαzb VMS WgMЦpb Linux WWC
   C@ơC nƪG
   
     * нTw Linux M X Window wgw˧;
     * @tκ޲ziH@޳NɡC]ЧLMФnӧ ;-)
       ^;
     * ztΤW shell iHO bash ]и߰ݱztκ޲z^;
       
   Ъ`NMo HOWTO ٤ϱzF Linux Cou]tFȦ
   @ǤJnѦӤwC zӾǲߧh Linux ѡMåBRQ
   oC(advanced bash features, programming, regular expressions...). q{
   b}lMRMP NO `please read the man pages for further details'.
   b Linux WMman pages NO help NC
   
   The Linux Documentation Project iHb
   [3]ftp://sunsite.unc.edu:/pub/Linux/docs/LDP, oCӳo]OnT
   ӷC ګĳziH\Ū Larry Greenfield g ``Linux User Guide'' 
   C---oO@D`AXǪ̪JѡC
   
   {bڭ̨BJDaG
   
1.2 OMɮ׮榡

   oӪCX VMS M Linux `ΪOCШcObߡMyk]Njj
   PC ԲӲӸ`аѦҬ`C
   
VMS                             Linux                   `Nƶ(Linux )
------------------------------------------------------------------------------

@COMMAND                        command                 iQ
COPY file1 file2                cp file1 file2
CREATE/DIR [.dirname]           mkdir dirname           @uؤ@ӥؿ
CREATE/DIR [.dir1.dir2]         mkdirhier dir/name
DELETE filename                 rm filename
DIFF file1 file2                diff -c file1 file2
DIRECTORY                       ls
DIRECTORY [...]file             find . -name file
DIRECTORY/FULL                  ls -al
EDIT filename                   vi filename,            ziण|wϥ vi
                                emacs filename,         EDT compatible
                                jed filename            ditto---my favourite
FORTRAN prog.for                g77 prog.f,             ݭn@ LINK
                                f77 prog.f,
                                fort77 prog.f
HELP command                    man command             must specify `command'
                                info command            ditto
LATEX file.tex                  latex file.tex
LOGIN.COM                       .bash_profile,          `hidden' file
                                .bashrc                 ditto
LOGOUT.COM                      .bash_logout            ditto
MAIL                            mail,                   ̭l email {
                                elm,                     mail nC
                                pine                    MOuBzr
C
PRINT file.ps                   lpr file.ps
PRINT/QUEUE=laser file.ps       lpr -Plaser file.ps
PHONE user                      talk user
RENAME file1 file2              mv file1 file2          not for multiple files
RUN progname                    progname
SEARCH file "pattern"           grep pattern file
SET DEFAULT [-]                 cd ..
SET DEFAULT [.dir.name]         cd dir/name
SET HOST hostname               telnet hostname,        ӬۦP
                                rlogin hostname
SET FILE/OWNER_UIC=joe          chown joe file          ۦP
SET NOBROADCAST                 mesg
SET PASSWORD                    passwd
SET PROT=(perm) file            chmod perm file         ۦP
SET TERMINAL                    export TERM=            ykP
SHOW DEFAULT                    pwd
SHOW DEVICE                     du, df
SHOW ENTRY                      lpq
SHOW PROCESS                    ps -ax
SHOW QUEUE                      lpq
SHOW SYSTEM                     top
SHOW TIME                       date
SHOW USERS                      w
STOP                            kill
STOP/QUEUE                      kill,                   w processes
                                lprm                    w print queues
SUBMIT command                  command &
SUBMIT/AFTER=time command       at time command
TEX file.tex                    tex file.tex
TYPE/PAGE file                  more file
                                less file               much better

   MMouOOW٤@˦ӤwM~ŪC
   
2. Mp

   oǵOzbĤ@nJtΫeD@ǨƱMPM|ӽ
   C
   
2.1 ɮ

     * b VMS WɦWܪkO filename.extension;versionC Ob
       Linux WMɮתXN|AX{]nMаѾ\ [4]Linux
       Wɮת); ɦW̱`u঳ 255 ӦrMɦWiHX{ܦhI 
       ECҦpGThis.is_a_FILEname.txt.
     * Linux ɦWjpgOOG FILENAME.txt M filename.txt O
       ӧ@˪ɦW; ls O@ӫOMiHQMO LS oOOM
       |X{~TC
     * ɦWĤ@ӦrpGO@IEMhoɦWO`' ]]NOM
       pG[SOOܡM@몺 ls N|ܥXoɡ^M ɮת
       pGOLC'~' Moܳƥɮס]άOȦsɡ^E
       
   {bMUzX VMS O Linux WOE
   

VMS                                     Linux
---------------------------------------------------------------------

$ COPY file1.txt file2.txt              $ cp file1.txt file2.txt
$ COPY [.dir]file.txt []                $ cp dir/file.txt .
$ COPY [.dir]file.txt [-]               $ cp dir/file.txt ..
$ DELETE *.dat;*                        $ rm *dat
$ DIFF file1 file2                      $ diff -c file1 file2
$ PRINT file                            $ lpr file
$ PRINT/queue=queuename file            $ lpr -Pprintername file
$ SEARCH *.tex;* "geology"              $ grep geology *tex

   Lؿ譱OMШ@`Fɮתݩʡ]protections,
   ownership...^аѷ [5]iC
   
2.2 ؿ

     * bP@Ӹ`I]node^άO˸m]device^Mb VMS WMؿΦݰ_
       ӹoˡG[top.dir.subdir]; b Linux WOG/top/dir/subdir/. W
       hؿڭ̺٬ڥؿ]/^; ҦlؿMOѮڥؿVUG
       /bin, /usr, /tmp, /etc, C
     * ؿW /home OsϥΪ̥ؿMҦpG/home/guido, /home/warner,
       C ϥΪ̵nJɭԡMo̷|nJo̦ۤv֦ϥΪ̥ؿFo
       M SYS$LOGIN OPuC uΪ̥ؿӤKkG
       ΡLC'~'C ҥHMcd ~/tmp M cd /home/guido/tmp O@˪N
       C
     * ؿW٪RW覡MɮצW٪RW覡ۦPC A̡M Cӥؿ|
       ӯSOؿW١G@ӬOG. MܫۤvؿC ( [])F @
       OG.. MܫW@hؿ ( [-])C
       
   ڭ̨ӬݬݨLҤlG
   

VMS                                     Linux
---------------------------------------------------------------------

$ CREATE/DIR [.dirname]                 $ mkdir dirname
$ CREATE/DIR [.dir1.dir2.dir3]          $ mkdirhier dir1/dir2/dir3
   n/a                                  $ rmdir dirname
                                        (if dirname is empty)
                                        $ rm -R dirname
$ DIRECTORY                             $ ls
$ DIRECTORY [...]file.*;*               $ find . -name "file*"
$ SET DEF SYS$LOGIN                     $ cd
$ SET DEF [-]                           $ cd ..
$ SET DEF [top.dir.subdir]              $ cd /top/dir/subdir
$ SET DEF [.dir.subdir]                 $ cd dir/subdir
$ SHOW DEF                              $ pwd

   ɮתݩʡ]protections, ownership^M٦@ǶiDDMаѷ [6]
   i.
   
2.3 {

     * OMsĶL{]ɡ^MM shell scripts (VMS W `command
       files') èSjWwݭnSwɦWC  .EXE or .COM Mun
       zwMzQnosWriHC pGzϥ ls -F ӹݰɪ
       ɭԡMz|o{ɷ|QХܦ '*' C
     * i檺{MunJOWٴNiHFC]Sҿת RUN
       PROGRAM.EXE άO @COMMAND)C `NGoӰɥwY|C򥻤W
       Mw]g]tF /bin, /usr/bin, /usr/X11R6/bin, C pGMz
       vgF@ӵ{M ziHNoӵ{bzۤvw]|]pާ@M
       аѷ [7]]w^C άOz]iHw@ӵ|Ӱo{MҦp
       G/home/guido/data/myprog; άO ϥά۹| ./myprog C
     * OѼƦb VMS WOϥ /OPTION= ӧMӦb Linux WM ڭ̨ϥ
       -switch άO --switch ]switch ѼƥiO@ӦrM\hrզXM
       O@Ӧr^C SOMѼ -R (recursive) b Linux WM b VMS
       W [...] t۬ۦP\;
     * bROCMziH@UܦhӫOG
       
$ command1 ; command2 ; ... ; commandn

     * Linux juʨӦ۩ӯSʡMӳoӯSʦb VMS WoQ
       XӡMάOڥNSC o̤OOGI/O (redirection) M ޹D
       (piping)C ]gHiDڳ̪ DCL 䴩(redirection)M
       ޹D(piping)M iOڨSӪ^C(redirection) b VMS Wu
       OqݪSx]O̪Ѽ /OUTPUT= ^M άO@Qn
       {(process)C ҦpG
       
$ DEFINE /USER SYS$OUTPUT OUT
$ DEFINE /USER SYS$INPUT IN
$ RUN PROG

       b Linux Nuno˴NiHFG
       
$ prog < in > out

       Piping ڤWb VMS WèSѡMOb Linux oO@ӭnC
       嫬ҤlpUG
       
$ myprog < datafile | filter_1 | filter_2 >> result.dat 2> errors.log &

       NOG{ myprog ɤJ@ɮ׬ input ] <ŪJɮ
       datafile^C ᪺GQର(pipe)t@ӵ{(filter_1) 
       inputMBzo쪺GAରt~@{(filter_2) inputM A@
       i@BBzM̫᪺GQ[ result.dat ɮפWMN~T
       \ errors.log ɮפWC ӳo@ʧ@MbIC Qnݧ
       mҤlMаѷ [8].
       
   huM`queues', ΨLDDMаѾ\ [9]i.
   
2.4 ֳts

   {bziHӸո Linux ¤OFCJz login name M passwordC]
   z login name O john MPassword O My_PassWd, n J John άO
   my_passwdC OMjpg Unix ӻMOPNC
   
   @znJMzN|ݨtδܲŸ(prompt)Fiݰ_ӹ
   machinename:$C pGzQztδܲŸMάObz@ Login N۰
   @ǵ{Mziݭnhs@ɡ].profile άO .bash_profile^
   C ]ҽаѷӡպA]w@` [10]]w^C oM VMS WLOGIN.COM
   PuC
   
   ziHϥ ALT--F1, ALT--F2, ... ALT--F6 Ӥ `virtual consoles'
   C z䤤@ virtual consoles bBzY@{ɭԡMziH
   N@ virtual consoles ~zLu@C յۤnJ
   L virtual consoles aI
   
   {bziQn}l X Windows Fa]Hڭ²٬ X^CX Oϧάɭ
   ҡM I DECWindows --- ڤWMDECWindows Olͦ X Window
   system. пJ startx åBݴXzN|ݨ xterm άOL׺ݾ
   {Q}ҡM iٷ|@Ӥu@CC]ztκ޲zp]wM@
   ]wMҬݨ쪺GN|P^C յۦbୱWPɫUƹkMzi
   Hݨ@ӼuX{]ƹ䪺\]]]wPӦP\^C
   
   iJ X MpGQnrҦ׺ݾ (`console') PɫUC@
   G CTRL--ALT--F1 ... CTRL--ALT--F6 ]ݭnPɫ^COݬݡIpGQn
   ^ɭMiH PɫU ALT--F7 NiHFC X MoۿW
   exit ﶵMάOPɫU CTRL--ALT--BS.
   
   JUCOMiHCXz{bؿUɮס]]Aɡ^G
   
$ ls -al

    SHIFT--PAG UP iH^HeùC
   
   {bڭ̨ӬݬݫO ls (help)M JG
   
$ man ls

   U 'q' iHXCpGnnXMiHJ exit nXثe׺ݾC pGQn
   MiHPɫU CTRL--ALT--DEL åBaƬNiHFC (`NG 藍
   nNzqWqMЫӤ@w{Ǥ~iHqMMi
   |ˮ`ɮרtΡ^C
   
   pGzQzwgiHWFMNh@aIOMpGڬOzܡMi|
   iDDo@`G [11]i.
   
3. ɮ׽s

   Linux S EDT s边MOܦhs边ܥiѨϥΡC bҦUNIX t
   Mߤ@OҤ@wvi oӽs边---FaM ztκ޲z@wwgwˤ
   vi nΪs边FCiw諸s边O emacsMoiHΨӼ
   VMS W EDT ; jed Ot@ EDT s边C
   
   oؽs边Ψӽsg{X۷ΡM]o̦ EDT S\G
   G׬r]syntax hilighting^M۰Yơ]automatic indentation^C
   ӥBMziHݭnXs边MNiHbs边̽sĶ]Compile^z{
   C (command ESC-X compile); pGyk~MбN|۰ʸ즳~
   aC ڴzN|QAݨ쨺uŦ⪺ EDT FC
   
   pGz emacs: ҰʦoMMJ ESC-X edt-emulation-onC J ALT--X
   or ESC-X iHX emacsM EDT  CTRL--ZC q{b}lMemacs N
   EDT @ˡMF@ǫOӤ@ˡC PBG
   
     *  ϥ CTRL--Z ӰROCOC (pGzFMz emacs N|
       u@M LziHյۿJ fg ~z emacs);
     * Emacs jquW]on-line help^C CTRL-H ?, άO CTRL-H T
       ҰʡC;
     * sɡG CTRL-X CTRL-S;
     * }G CTRL-X CTRL-C;
     * sW@ɮסG CTRL-X CTRL-F, M CTRL-X B iHbɮפ@C
       
   pGz jedG iHбztκ޲za]w jed C zҰʦoM
   Nwg۰ʸJCiHϥ CTRL--H CTRL--H or CTRL-? ҰʽuWCO
   MjPWM emacs ۦPC ~M ٦@ǩާ@ާ@SQ˭qb
   Ӫ EDT ; oǾާ@iH̱zӤHߦnۦ]wMи߰ݱztκ޲z
   C
   
   γ\zi|ϥΥt@ӧ@˾ާ@ɭs边CO emacs ıW|O
   @ӤܡC t@ӤQw諸s边OGjoe, oiHLs边
   M emacs C (ƦܧeW) άO Dos s边C Ұʳoӽs边N
   jmacs άO jstar @ˡM iHϥ CTRL-X H άO CTRL-J o״IuW
   C emacs M jed  EDT 㦳¤OC
   
4. TeXing

   TeX M LaTeX b Linux WM VMS @---PaOMLinuxt
    :-), oӤuΨӳBz .dvi M .ps ɮקuաG
   
     *  TeX  TeX ɡMN`@ˡG tex file.tex;
     * ഫ .dvi ר .ps ɡMJ dvips -o filename.ps filename.dvi;
     * ˵ .dvi ɡMb X Window UJG xdvi filename.dvi &. bܭ
       UƹiHjC oO@Ӵz{GpGzsB TeX ͤ@
       Ӹs .dvi ɮסMxdvi |۰ʧs;
     * ˵ .ps ɡM b X Window UJ ghostview filename.ps &. ƹi
       HYC ɮשάOɮץiHQCLXӡC M٦@Ӥ TeX
       n{Ggv.
     * CL .ps: q`OO lpr mypaper.ps MOpG PostScript CQ
       Is]]ϥ ps O^ zN|OG lpr -Pps mypaper.psC
       h print queues TMаѷ [12]CL.
       
5. {

   b Linux Wg{OΪAG\hnαouiHg{[ֳt[²
   C ҦpGg{LDOըHeu@Gs--s--}--sĶ--ss
   @ЪP˪ʧ@C OMpGϥι emacs άO jed uMWz
   ǰʧ@MNΤ@Xbs边̡M@C
   
5.1 Fortran

   jWMShjtOMOЪ`NMoӧKOsĶiOʤʪM
   VMS ۮeC i|ǩ_ǪGo͡C]ڤWMVMS  Fortran sĶ
   äO@ӥiHзǩ(non-standard)^C ԲӱνЬ
   /usr/doc/g77/DOC or /usr/doc/f2c/f2c.ps C
   
   ztκ޲zwgwˤF@ӥs g77  compiler (O, b 0.5.21
   , ٬OSM DEC  Fortran ʤʦaۮe) MάO@ӧ Fortran 
    C yഫMs f2cC [Wo@ӫe(front-ends)˸mMN
   O@ Fortran sĶC ̧ڪgMyaf77 M󴣨ѳ̦nѨMסC
   
   ϥ g77  compile z Fortran {, ΥNsOs{XMH
   ɦW .f sɡM MpUG
   
$ g77 myprog.f

   o|۰z a.out ɡC(zݭn@ link ʧ@^ pGQn
   ͤPɦWMiHUѼơG
   
$ g77 -O2 -o myprog myprog.f

   Ъ`N̨ΤơInDztκ޲zŪsĶMåBizO_
   󪺦sbDC
   
   sĶX(subroutine)G
   
$ g77 -c mysub.f

   o| mysub.o oɮסC Mzݭn@s(link)ʧ@C
   
$ g77 -o myprog myprog.f mysub.o

   pGzQ@Ʈw(library)MziHo˧@G
   
$ cd subroutines/
$ cat *f >mylib.f ; g77 -c mylib.f

   o|ͥX mylib.o MziHϥΦoӳsz{C
   
   ̫MpGn link LƮw(library)Mڭ̰] libdummy.so:
   
$ g77 -o myprog myprog.f -ldummy

   pGzϥ f2c, zuϥ f77 άO fort77 MӤϥ g77C
   
   t@ӦΪuO make, ԭzpUG
   
5.2 pϥ make

   make iHΨӽsܦhɮתlXCb VMS Wڭ̺٬ MMS M
   MMK, Oo̩M Linux PykC
   
   ]z@ǭl{Mݭn@ǨҦ{ǡC{O file_1.f, file_2.f,
   file_3.f, D{ myprog.fC pGzOʽsĶz{MCzקz
   {XM zDɮשMɮצsMɮץsĶM
   C
   
   PoơMpziHg `makefile'C oO@ӤrɡM̭O۱z{
   XP{XsʡC 䤤@ɮ׳QקMuPoӳQק諸ɮ
   ɮ׻ݭnQssĶC
   
   ҦpMzgF@ makefile pUG
     _________________________________________________________________
   

# oO@ makefile
# ϥ <TAB> Mz <TAB> Ү!
# oD`nMФnϥΪťNC

myprog: myprog.o file_1.o file_2.o file_3.o
<TAB>g77 -o myprog myprog.o file_1.o file_2.o file_3.o
# myprog depends on four object files

myprog.o: myprog.f
<TAB>g77 -c myprog.f
# myprog.o depends on its source file

file_1.o: file_1.f
<TAB>g77 -c file_1.f
# file_1.o depends on its source file

file_2.o: file_2.f file_1.o
<TAB>g77 -c file_2.f file_1.o
# file_2.o depends on its source file and an object file

file_3.o: file_3.f file_2.o
<TAB>g77 -c file_3.f file_2.o
# file_3.o depends on its source file and an object file

# end of makefile.
     _________________________________________________________________
   
   xsoɮסMRW Makefile BbROCJ make ӽsĶz{; άO
   z]iHNos myprog.mak Mϥ make -f myprog.mak ӽsĶ. U
   ʧ@, RMP.]ٰOoO RMP aI^
   
5.3 Shell Scripts

   Shell scripts N VMS W command filesC, oiHغcXD`Ϊ\
   C
   
   ng@ script, zҭn@NuOg@ӥ]t@ǫOrɡMMsɡM
   ܦi檺Ҧ ]ϥ chmod +x <scriptfile>^C unJ Script
   WrNiHFC
   
   g@ Script O@ӫD`ju{Moݭn@ѡCo̧ڴNAh
   FC
   
   ڥuz@өΦhΤ֪X]Ʊ^ΪҤlMzγ\iHqoӨҤl
   o@ǰ򥻪WhC
   
   EXAMPLE: sample.sh
     _________________________________________________________________
   
#!/bin/sh
# sample.sh
# I am a comment
# nקĤ@MoHoاΦsbbĤ@III
echo "This system is: `uname -a`" # use the output of the command
echo "My name is $0" # built-in variables
echo "You gave me the following $# parameters: "$*
echo "First parameter is: "$1
echo -n "What's your name? " ; read your_name
echo notice the difference: "hi $your_name" # quoting with "
echo notice the difference: 'hi $your_name' # quoting with '
DIRS=0 ; FILES=0
for file in `ls .` ; do
  if [ -d ${file} ] ; then # if file is a directory
    DIRS=`expr $DIRS + 1`  # this means DIRS = DIRS + 1
  elif [ -f ${file} ] ; then
    FILES=`expr $FILES + 1`
  fi
  case ${file} in
    *.gif|*jpg) echo "${file}: graphic file" ;;
    *.txt|*.tex) echo "${file}: text file" ;;
    *.c|*.f|*.for) echo "${file}: source file" ;;
    *) echo "${file}: generic file" ;;
  esac
done
echo "there are ${DIRS} directories and ${FILES} files"
ls | grep "ZxY--!!!WKW"
if [ $? != 0 ] ; then # exit code of last command
  echo "ZxY--!!!WKW not found"
fi
echo "enough... type 'man bash' if you want more info."
     _________________________________________________________________
   
5.4 C y

   Linux O@Ӽg ѻynaCN]z|ѻyaIo̤]XӫɤwC
   sĶz{hello.c Mz|ϥΨ gcc compiler, owO Linux @F
   C ӥBM g77 ۦPϥΤk:
   
$ gcc -O2 -o hello hello.c

   s(link)Ʈw(library)M[JѼ -l<libname>C ҦpMn link ƾǨ
   ƮwM̨ΤơMiHUpUOG
   
$ gcc -O2 -o mathprog mathprog.c -lm

   ( -l<libname> ѼƱj gcc s(link)Ʈw(library)
   /usr/lib/lib<libname>.a; ҥH -lm NsF /usr/lib/libm.a).
   
   pGz{Oѳ\hɮײզMzi]ݭnϥΫeҴ쪺 make o
   uC b makefile ϥ gcc M ѻylXɮ״NiHFC
   
   z]iHo C yƪCoǻ󳣤wgQs man
   pagesMĤT`(section 3) FC Ҧp:
   
$ man 3 printf

   PɡM\\hhƮwiѨϥΡC䤤zĤ@QnϥΪO ncurses, oi
   HΨӳBzrҦUSġCάO svgalib, oiHΨӳBzϧμҦC
   
6. ϧάɭ

   b\hϧήM󤤡Mgnuplot uO䤤¼CiJ X Window J
   gnuplot, iOŪJӽd: 2D-data.dat (C榳ⵧ), M
   3D-data.dat (C榳T).
   
   ҡG2-D graphs:
   
gnuplot> set title "my first graph"
gnuplot> plot '2D-data.dat'
gnuplot> plot '2D-data.dat' with linespoints
gnuplot> plot '2D-data.dat', sin(x)
gnuplot> plot [-5:10] '2D-data.dat'

   ҡG3-D graphs (C@椤ƥHť̬j):
   
gnuplot> set parametric ; set hidden3d ; set contour
gnuplot> splot '3D-data.dat' using 1:2:3 with linespoints

   u@ƪɮ(pɶǦC)]iHQøs 2-D ϧΡG
   
gnuplot> plot [-5:15] '2D-data-1col.dat' with linespoints

   άOø 3-D graph :
   
gnuplot> set noparametric ; set hidden3d
gnuplot> splot '3D-data-1col.dat' using 1 with linespoints

   CLϧΡG]z Postscript COO lpr -Pps file.psMBJp
   U:
   
gnuplot> set term post
gnuplot> set out '| lpr -Pps'
gnuplot> replot

   MJ set term x11 ^_ x11 ҦC OháMz} gnuplot M
   N|۰ʦCLXӡC
   
   hTMiJ help άOѨؿdҡC ]/usr/lib/gnuplot/demos/
   ^
   
7. Mail M Internet u

   ]Oϥͦb Unix WMziHb Linux Wo{\hnΥBW⪺
   nC ̸̩ҦCMuO䤤@ӤwG
   
     * Mail: ϥ elm άO pine ӳBzz email; oε{uW
       (Online Help)C uTMziϥ mail, p mail -s
       "hello mate" user@somewhere < msg.txt. zi|RW xmail o˪
       ε{MάO{C
     * Newsgroups: iϥ tin άO slrn, ̳OıMBۧڸ
       Ū(self-explanatory).
     * ftp: rɭ ftp ε{, nDztκ޲zw˥
       (full-screen)Ҧ ftp nMp ncftp M άOϧάɭ xftp.
     * WWW: Msb netscape, άO xmosaic, chimera, M arena Oϧ
       ɭsCt~٦@Ӥrɭs lynx, D`ֳtӥBS
       ĲvC
       
8. i

   oӶqMCNFCǧoǪFMzNiHM@ Linux
   F ;-)
   
8.1 \v(Permissions)  Ҧv(Ownership)

   ɮשMؿ\v(Permission) (Y VMS W `protections') MҦ
   v(ownership), o[zѡM] VMS W]CpGz@{
   MάOzקY@ɮסM άOiJYؿMoO]zSQᤩ
   γoǸ귽vOY]S\v^M Ϊ̬OoɮתڥNݩz
   ]SҦv^M ڭ̬ݬݤUҤlaG
   
$ ls -l /bin/ls
-rwxr-xr-x   1 root     bin         27281 Aug 15  1995 /bin/ls*

   Ĥ@ܥXoɮתϥv ls (֦(owner) O root, s
   (group) O bin). ֦viHTؼҦ: ֦(owner), s(group),
   M LϥΪ(others)C ]M VMS  owner, group, world ۦ^FT
   P\v(permissions): Ū(read), g(write) (]t(delete)), M
   (execute).
   
   qkM- Oɮ׼Ҧ (- = @ɮ(ordinary file), d = 
   (directory), l = s(link), ); rwx O\ɮ׾֦̥iHɮק@
   ŪMgMM檺ʧ@F r-x O\sըϥΪ̥iHɮק@ŪM檺ʧ@
   MOiH@gʧ@CF r-x OLϥΪ̹ɮץuŪM檺
   vMoSgvC
   
   pɮתϥvG
   
$ chmod <whoXperm> <file>

   䤤 who O u (user]ϥΪ̡^, Yɮת֦), g (s group), o (L
   other), X ܥiH +  -, perm iH r (Ū read), w (g write), 
   O x (i execute). |һG
   
$ chmod u+x file

   oOwɮסM}i檺vɮת̡֦CiYgG chmod +x
   file.
   
$ chmod go-wx file

   oOɮסMsըϥΪ̩MLϥΪ̹ɮתgvM
   vC
   
$ chmod ugo+rwx file

   oO}ɮתŪMgMM檺vҦϥΪ̡C
   
   t@ӧֳtܪkϥΤ@ռƦrGrwxr-xr-x iH 755 Ӫ (C@Ʀr
   @ӱ줸: --- O 0, --x  1, -w-  2...).
   
   ҥHMrwx = 4+2+1 = 7Mr-x = 4+0+1 = 5MҥHMrwxr-xr-x iH 755 Ӫ
   ܡC
   
   ؿӨMrx ܱziHӥؿG cd ,  w ܱziHRӥؿ
   ɮ(Mݭnɮתϥvөw), άOؿ. o٥uOBs
   @ӤwMQnDh---RMP.
   
   pɮת֦vG
   
$ chown username file

   ھzUG
   
VMS                             Linux                   Notes
------------------------------------------------------------------------------

SET PROT=(O:RW) file.txt        $ chmod u+rw file.txt
                                $ chmod 600 file.txt
SET PROT=(O:RWED,W) file        $ chmod u+rwx file
                                $ chmod 700 file
SET PROT=(O:RWED,W:RE) file     $ chmod 755 file
SET PROT=(O:RW,G:RW,W) file     $ chmod 660 file
SET FILE/OWNER_UIC=JOE file     $ chown joe file
SET DIR/OWNER_UIC=JOE [.dir]    $ chown joe dir/

8.2 hu(Multitasking): {(Processes) M u@(Jobs)

   ܦh{Mb Linux WSҿת `batch queues' ; huHD`
   @˪kBzC HUO@`ROCG
   
$ command -s1 -s2 ... -sn par1 par2 ... parn < input > output &

   䤤 -s1, ..., -sn Oӵ{Ѽơ]switch^, par1, ..., parn O{
   Jܼ(parameters).
   
   {bڭ̨Ӭݬݦb Linux WphuC{ǡ]processes^O@צbe
   άOIQ檺{C
   
     * bI{:
       
$ progname [-switches] [parameters] [< input] [> output] &
[1] 234

       shell |ܱzӵ{(process)u@X]`job number'^ (Ĥ@Ӽ
       r; ЬݤU) Mӵ{Ǫ{ѧOX PID (Process IDentifier). C@
       {ǳ@տW@LG PID.
     * ˵h Processes QG
       
$ ps -ax

       o|X@j꥿b檺{(processes)C
     * {ǡG
       
$ kill <PID>

       pGzDnp󥿽TפY@ӵ{ǡMoɱziNnʧ{ǵ
       I... ;-). ǮɭԡM@ӵ{ǥuQUC@ӫOG
       
$ kill -15 <PID>
$ kill -9 <PID>

   a@MSell \zάOȮɰ@ӵ{ǡMN{ǰeIu@MάO
   N{ǱqIaeC bo̡M{(processes)ڭ̺٤u@(`jobs').
   
     * ˵h֤u@]jobs^bG
       
$ jobs

       u@(jobs)O Shell u@X]job number^ӧ@ϧOM`NMO
       PID .
     * פbeu@{(processes):
       
$ CTRL-C

       (@wC@)
     * Ȱbeu@{(process):
       
$ CTRL-Z

       (PW)
     * NȰ{ഫIu@(background jobs):
       
$ bg <job>

     * NIu@ae:
       
$ fg <job>

     * @Ӥu@(job):
       
$ kill <%job>

8.3 bXɮ(files)

   hɮתTC
   
     * stdin, stdout, stderr: b UNIX M@ӨtΤ󳣳QO@
       סC OάOε{ŪJ@өҿ׼зǿJɮס]stdinGq`L
       ^M XGҿ׼зǿXɮס]stdout Gqù^Mӿ~
       X]OX@ɮסM ڭ̺٤ stderr (q`]Où). ϥ < M
       > MziHNXMJsɦVt~@ɮסC MӡM >> ONG
       [ɮתɧMӤOл\ӪɮסC; 2> ɿ~T(stderr);
       2>&1 ɿ~TзǿX,  1>&2 hOɼзǿX~XC
       @Ӷ¬}]`black hole'^s /dev/null: ҦɨoɮתFM
       NLvLܡC
     * wildcards: UΦr '*' ۦP\CΪk: * ŦXҦɮסMF
       ɥH~C .* ŦXҦ; *.* ŦXu@I '.' bɮסC
       HۨLrG p*r  `peter' άO `piper' i; *c* i
       X `picked' άO `peck'C '%'  '?'C ٦t~@ظUΦrG[].
       Ϊk: [abc]* ɮץHr a, b, c ̬}Y; *[I-N,1,2,3] 
       ɮצW٥ I, J, K, L, M, N, 1, 2, 3 @C
     * mv (sRW) iH@hɮסCY mv *.xxx *.yyy N|榨
       \;
     * ϥ cp -i M mv -i iHzO_nл\HsbɮסC
       
8.4 CLC

   N VMS MCLu@|QC(queues)MzUCLOɭԡMz
   γ\|wCW١C ҦpG
   
$ lpr file.txt          # oNΨw]C
$ lpr -Plaser file.ps   # oNϥΦW 'laser' C

   BzCLC(print queues), ziݭnUCOG
   

VMS                                     Linux
------------------------------------------------------------------------------

$ PRINT file.ps                         $ lpr file.ps
$ PRINT/QUEUE=laser file.ps             $ lpr -Plaser file.ps
$ SHOW QUEUE                            $ lpq
$ SHOW QUEUE/QUEUE=laser                $ lpq -Plaser
$ STOP/QUEUE                            $ lprm <item>

9. ]w

   ztκ޲zwgѱz@ǲպA]wɡMpG .xinitrc, .bash_profile,
   .inputrc, C 䤤zQns誺OG
   
     * .bash_profile άO .profile: b login ɡMoɮ״NQ Shell Ūi
       ӤFCN VMS W LOGIN.COM;
     * .bash_logout: nnXɭԡMŪoɮסCoN VMS W
       LOGOUT.COM;
     * .bashrc: Q non--login shells Ū.
     * .inputrc: oɮץiHw@զXM]w shell 欰C
       
   ڱNHڪ .bash_profile ̬ҡC
     _________________________________________________________________
   
# $HOME/.bash_profile

# pGݭnMФnswq $PATH ܼơC
echo $PATH | grep $LOGNAME > /dev/null
if [ $? != 0 ]
then
  export PATH="$PATH:/home/$LOGNAME/bin"  # add my dir to the PATH
fi

export PS1='LOGNAME:\w\$ '
export PS2='Continued...>'

# aliases OW

alias bin="cd ~/bin" ; alias cp="cp -i" ; alias d="dir"
alias del="delete" ; alias dir="/bin/ls $LS_OPTIONS --format=vertical"
alias ed="jed" ; alias mv='mv -i'
alias u="cd .." ; alias undel="undelete"

# A few useful functions @ǦΪơIšI

inst() # Install a .tar.gz archive in current directory.
{
  gzip -dc $1 | tar xvf -
}
cz() # List the contents of a .zip archive.
{
  unzip -l $*
}
ctgz() # List the contents of a .tar.gz archive.
{
  for file in $* ; do
    gzip -dc ${file} | tar tf -
  done
}
tgz() # Create a .tgz archive a la zip.
{
  name=$1 ; tar -cvf $1 ; shift
  tar -rf ${name} $* ; gzip -S .tgz ${name}
}
     _________________________________________________________________
   
   oOڪ .inputrc:
     _________________________________________________________________
   
# $HOME/.inputrc
# Wק: 16 January 1997.
#
# HUOѡMo Script ηNC
# This file is read by bash and defines key bindings to be used by the shell;
# what follows fixes the keys END, HOME, and DELETE, plus accented letters.
# For more information, man readline.

"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line

set bell-style visible
set meta-flag On
set convert-meta Off
set output-meta On
set horizontal-scroll-mode On
set show-all-if-ambiguous On

# (F1 .. F5) are "\e[[A" ... "\e[[E"

"\e[[A": "info "
     _________________________________________________________________
   
10. Ϊ{

10.1 sɮ: less

   zN|ݭnCѨϥγoɮsCҥHڱNz@ǯDznnQ
   oӤuC MnDztκ޲zow less ϦouiHܤrɡM
   iHYɮפMC
   
   N{b TYPE, less iHzszثeؿUɮסC oPɤ]iH
   \hB~LJOMΪOG
   
     * Ĥ@, U q iH}ɮs;
     * h ѱz\huW;
     * g Y, G ɧ, Ʀr n [ g ܨ n C(Ҧp 125g), 
       r[ % ܤ@ɮפʤjpa;
     * /pattern VUjM `pattern'; n VUjMU; ?pattern M N 
       VWMC
     * m+letter Хܥثea (p ma); '+letter QХܪa.
     * :e ˬdsɮ;
     * !command ROCɮ.
       
10.2 b Linux Uƥ

   , Linux èSɮת\COziHΨصokѨMoӰDC
   Ĥ@Mϥ RCS, ޲ztΡ]the Revision Control System^, oiHz
   ޲zeɮתCRCS iHb ``The RCS MINI-HOWTO'' (
   [13]http://sunsite.unc.edu/mdw/HOWTO/mini/RCS.html) .
   
   ĤGؤkMϥΪDpBzss边Gemacs M jed oӥ\
   C b emacs, b .emacs [JUCX:
   
(setq version-control t)
(setq kept-new-versions 15) ;;; or any other value
(setq kept-old-versions 15)
(setq backup-by-copying-when-linked t)
(setq backup-by-copying-when-mismatch t)

   pGϥ jed, нTwzb 0.98.7 HW; osɡMiHϨ䴩
   rƥC iHb
   [14]http://ibogeo.df.unibo.it/guido/slang/backups.sl .
   
10.3 ɮ]]Archiving^: tar & gzip

   b UNIX ̡M@Ǳ`Ψ쪺ε{Ӷ޲zYɮסC tar iHΨӥ]
   ɮסC]ɮץiΤUCOC
   
$ tar -cvf <archive_name.tar> <file> [file...]

   Ѷ}]ɮץiΡG
   
$ tar -xpvf <archive_name.tar> [file...]

   Cѥ]ɮפҦɮסG
   
$ tar -tf <archive_name.tar> | less

   iHϥ compress άO gzip YɫH`ٵwЪŶ:
   
$ compress <file>
$ gzip <file>

   pGϥ compress YɮסMozͰɦW .Z YɡM
   gzip hOH .gz ɦWC oε{äΨӥ]ɮסMOiHΨ
   YɮסCYiΡG
   
$ compress -d <file.Z>
$ gzip -d <file.gz>

   ԲӱΡM RMP.
   
   ~Munarj, zip M unzip Ǥu]iHQΡC ɮתɦWpGO
   .tar.gz άO .tgz (ܳoO@ӫʸɮ tar, MM ϥ gzip) Yn
   AYӦCb UNIX @ɡMoخ榡``||C HUOܽdp
   .tar.gz ɤeC
   
$ tar -ztf <file.tar.gz> | less

   HUOܽdpѶ} .tar.gz :
   
$ tar -zxf <file.tar.gz>

11. 

   UNIX DnnOƱzL޽u(piping)M(redirection)[NҦ²
   檺Os_ӦӥiHIuͬWҦu@C ڭ̨ӬݬݤU
   ҤlMڱNuҤlFL²檺ҤlMЧQΤWکҤ
   [M(man pages)M۫Hz@wiHܧ֪iJpC
   
   D: pGuϥ ls oӫOɮסMpGɮפӦhܡM``N@
   uM٨ӤάݧMGNQWhFG
   
   ѨM:
   
$ ls | less

   D: ڦ@ɮסM̭]tF\hrMڷQNϦVƧǫCLXӡG
   
   ѨM:
   
$ cat myfile.txt | sort -r | lpr

   D: ڪɤ\hƪơMڭnpRƪƩOH
   
   ѨM:
   
$ sort datafile.dat | uniq > newfile.dat

   D: ڦ@ӥs 'mypaper.txt' άO 'mypaper.tex' ɮסMάOo
   ˪ɮצW١MOڧѰOڱNo̦sbaFMڭnpo̩OH
   
   ѨM:
   
$ find ~ -name "mypaper*"

   : find O@ӫD`ΪOMoiHCX𪬥ؿUҦɮסM(b
   ҤMڭ̬Oq ~ o̶}lMM]NO $HOME ؿ)C oXGiH
   zL\h]wMӹF\h@˪ݨDCҦp -name C
   
   D: ڷQ@ɮפY@ӦrMҦp 'entropy'Mڭnp@OHS
    SEARCH oثOO?
   
   ѨM: , ոլ grep oӫOG
   
$ grep -l 'entropy' *

   GܩҦɮסC
   
   D: bYӦaMYɮתe 'entropy' oӦr, ڷQDO@
   ɮסMBb̡M b VMS WڥiHϥ search entropy [...]*.*;*, O
   grep oӫOiHMlؿM{bڭnpѨMOH
   
   ѨM:
   
$ find . -exec grep -l "entropy" {} \; 2> /dev/null

   : find . XqثeoӥؿUҦɮס]]toӥؿUҦlؿ^
   M -exec grep -l "entropy" OC@ find ǥXӪɮ׭ư
   (represented by {}), \ oӫOCpGzıoǪFӥiȤFMS
   MLziHյۼggU ScriptC
     _________________________________________________________________
   
#!/bin/sh
# rgrep: recursive grep
# j^

if [ $# != 3 ]
then
  echo "Usage: rgrep --switches 'pattern' 'directory'"
  exit 1
fi
find $3 -name "*" -exec grep $1 $2 {} \; 2> /dev/null
     _________________________________________________________________
   
   : grep N search, XF find Mڭ̱oF̪ءC
   
   D: ڦ@ӸɮסMoɮצ@CY(header lines)]]NOM
   ĤTƤ~Oگuơ^M pGڷQn^CƪĤGMĤ檺
   ơMڻݭng@ Fortran {ܡH
   
   ѨM: ݭnCӬݬݳoӨ㦳ˤOOI
   
$ awk 'NL > 2 {print $2, "\t", $5}' datafile.dat > newfile.dat

   : awk oӫOڤWiHO@ص{yGWNOG b
   datafile.dat oɮ׸̡MqɮתĤT}lC@MLXC@檺ĤGM
   ĤM H tab jŸCǷ|F awk @w|zƥb\C
   
   D: ڱq FTP UF ls-lR.gz oɮסMQnɮפeC C@
   lؿӨMo@g "total xxxx", 䤤 xxxx ɮפjp]kbytes^
   ڷQDҦ xxxx Ȫ`MMڭnp@OH
   
   ѨM:
   
$ zcat ls-lR.gz | awk ' $1 == "total" { i += $2 } END {print i}'

   : zcat iHCX .gz ɮפeCMN zcat o쪺Ge(pipe)
   awkCݨFaIF awk uzܤjUCRMPI
   
   D: ڤwggF@ myprog  Fortran {MiHpѩROCǶiӪ
   ɮתơM iOMڦܦhӸɻݭnJo{MC@ɮױN|
   @ӵGɮסCOCnJɦWbܷФHM b VMS WMڻݭng@
   oRO(command file)~iHѨMMb Linux WOH
   
   ѨM: un@Ӥpp Script NiHѨMFCקz{Mz{
   iHwwŪJ 'mydata.dat' oɮסM NGXù(stdout), Ms
   U ScriptG
     _________________________________________________________________
   
#!/bin/sh
# myprog.sh: run the same command on many different files
# usage: myprog.sh *.dat
for file in $*  # for all parameters (e.g. *.dat)
do
  # append the file name to result.dat
  echo -n "${file}:    " >> results.dat
  # copy current argument to mydata.dat, run myprog
  # and append the output to results.dat
  cp ${file} mydata.dat ; myprog >> results.dat
done
     _________________________________________________________________
   
   D: ڧƱNҦɮפ `geology' r `geophysics' Mڻݭn
   sܡHI
   
   ѨM: ݭnC U Shell Script iHzG
     _________________________________________________________________
   
#!/bin/sh
# replace $1 with $2 in $*
# usage: replace "old-pattern" "new-pattern" file [file...]
OLD=$1          # first parameter of the script
NEW=$2          # second parameter
shift ; shift   # discard the first 2 parameters: the next are the file names
for file in $*  # for all files given as parameters
do
# replace every occurrence of OLD with NEW, save on a temporary file
  sed "s/$OLD/$NEW/g" ${file} > ${file}.new
# rename the temporary file as the original file
  /bin/mv ${file}.new ${file}
done
     _________________________________________________________________
   
   D: ڦ@ɮסMڤDo̪ɮתסMڥoɮפ˼
   ĤGM˼ƲĤTMݭnʶܡH
   
   ѨM: MݭnM٬Oϥ Shell Script:
     _________________________________________________________________
   
#!/bin/sh
# prune.sh: removes n-1th and n-2th lines from files
# usage: prune.sh file [file...]
for file in $*   # for every parameter
do
  LINES=`wc -l $file | awk '{print $1}'`  # p`@X
  LINES=`expr $LINES - 3`                 # LINES = LINES - 3
  head -n $LINES $file > $file.new        # Xe LINES 
  tail -n 1 $file >> $file.new            # AN̫@[ɮ׳̫
done
     _________________________________________________________________
   
   ƱHWoǹҼW[z֪...
   
12. i֪p

     * Command completion: zbROCJY@OɭԡMzݭn
       JoӫOҦW١M JeXӦrMA <TAB> Mtη|z
       JҦOW; Ҧp: zJ less this_is_a_long_name;
       {bzunJ less thi<TAB> tδN|zJѤUMݭnA
       pɦWFC (pGzܦhɮ׳OHoǦr@}YMMtδN
       |ܥXҦHoXӦr}YɮסMOMziHJrMN
       iHozݭnߤ@ɮסC)
     * Back-scrolling: Pɫ SHIFT--PAG UP iHzù^He
       LM OiH^XMhݭnzܥdOөwFC
     * Resetting the screen: Gzpߥ more  cat }ҤF@ӤGi
       (binary file), zùiର]ӶñCoɭԱziHϥ
       reset άOϥ echo CTRL-V ESC c RETURN iHzù_`C
     * Pasting text: b X UMHƹb xterm 즲X@ӰϰM M
       ]pGzƹSMiHPɫƹk^Ni
       HKWzƻsrC
     * Using the mouse: b׺ݾҦUMziݭnMztκ޲zS
       w gpm o{, pGMzNiHηƹ즲X@ӰϰMMƹ
       MNiHKWz즲XӪrϰC ]P׺
       (VC)i|@˪ާ@覡^C
       
13. b Linux WŪ VMS ϱa

   (HUoqO Mike Miller ͩҵ)
   
13.1 ²

   ɭԱziݭnŪ VMS XӪϱa]άOF VMS M *nix t
   ΥiHŪϱa^M jPWM DECFILES11A ϱaä|C
   
   γ\zŪL Linux  mini-HOWTO, OMڬ۫HMڦbo̴Ϊ@[
   ]OM@ *nix tΡC ڴgb Linux, HP, Sun and DEC *nix t
   չLC@˪aOMCا@~tι˸mW١]device names^i
   |ҤPM  mt b˸mW(device name)ɭԡMﶵ(options)]
   i]@~tΦӲC ҦpGb Linux WO mt -f MOb HPUX 9 WoO
   mt -tC
   
   `N - ڥuH Exabyte 8mm SCSI tape drives @LMpGzwgŪLL
   榡M ڪDMڱN|oW[o Note C
   
13.2 @ǰ򥻱`

   Ū VMS  ``copy'' O@ϱaɡM]άOݰ_ӹO copy O@
   ϱa^M znDMCӹڪɮױN|TɮצsbϱaWM
   OOY(header), (data), Mɧ(trailer)C 䤤
   Y(header) M ɧ(trailer)sɮתTMMb VMS WmCӸ
   (data)MNOsӪưաI oɮ׳iH dd oӫOq
   a(tape)WѨXӡC  mt OMiHNϱaһݭnmC
   
   dҡGڦ@ӳssɮתϱaC̫eӦb VMS WɦW
   ce66-2.evt M ce66-3.evt ϱa(label)O c66a2C
   
   pGڰUCOG
   
> dd if=$TAPE bs=16k of=header1
> dd if=$TAPE bs=16k of=data1
> dd if=$TAPE bs=16k of=trailer1
> dd if=$TAPE bs=16k of=header2
> dd if=$TAPE bs=16k of=data2
> dd if=$TAPE bs=16k of=trailer2

    dd FɮסGheader1, data1, trailer1, header2, data2 M
   trailer2. ϥλykpUGif="input file", bs="block size" M of="output
   file". TAPE oӫKOzW˸mW٦өwMҦpGpGzb Linux
   Wϥ SCSI ϱa˸mM z˸mW٥iO /dev/nts0 C
   
   pGzQnŪĤGɮסMOĤ@ӡCzbNY(header)MӥBzQn
   έӪɦWMziHo@G
   
> mt -f $TAPE fsf 4
> dd if=$TAPE bs=16k of=ce66-2.evt
> mt -f $TAPE fsf 1

   `N 4 - LĤ@ɮשҪݪTɮסMҥHU@]ĤG^Y
   N|Oqĥ|}lC ĤG mt LĤGɮתɧ(tailer)åBU
   @ɮ(ĤTƪY)C MMz]iHϥ mt Ϻϱa(bsf), 
   (rewind)MάO Yk(offline, rewoffl).
   
13.3 hӸ`

   Y(header) M ɧ(trailer) ]tF VMS xsɮת@ǰTMҦp϶
   jp(block size)C Pɦo̤]]tFɮצW١MKzإ Script ɨӦ۰
   ŪɮשάOjMSwɮסC MӡMbϱaWĤ@Y(header file)
   MMLϱaWYɦǳ\tC
   
   bϱaWĤ@ɮ(] header1)M̫e|ӦrN|O
   "VOL1" MH۪W(volume name)C ҤMheader1 ̪줺e
   ӬO "VOL1C66A2"CHO@Ӧr"HDR1" MܳoO@Y(header
   file)C M~OɮצW(file name)CҤMo|O "HDR1CE66-2.EVT"C
   U@SOW(volume name)C
   
   LOϱaWĤ@YɪYɡM̪쪺 VOL1 N|sbC
   LNMeҤЪĤ@Yɪc@Ҥ@ˡCt@ӤΪ
   OĤCC oOH "DECFILES11A" CosbMٽT{
   DEC Files11A standard.
   
       field     initial header         subsequent headers
       =====     =============          ==================
         1       VOL1 + volume name     HDR1 + file name
         2       3HDR1 + file name      volume name
         3       volume name

         6                              ...DECFILES11A
         7      ...DECFILES11A

   LԲӪYMɧcMаѦ DEC FILES11A C (on the
   orange/grey wall - ask your local VMS folks :-).
   
13.4 ϶jpĳ(Block Size)

   bҤlMڨϥΪ϶jpO 16KCb *nix tΤWMϺФWɮרèSM
   ϶jpsM MӡMb VMS WMC@ɮ׳@өT϶j
   p(block size)C]NOMb Linux ݡM ϶jpèShӤjYMD
   eqϱaŪXɮתɭԡCpGz䤣϶jp(block size)M zi
   HյۦbϺи˸mWM `mt -f $TAPE setblk 0' ӳ]ww骺϶jpC 
   setblk ﶵѨΦi|H mt PӦҤ@ˡM zϱa
   ˸mwɭM٦z߷R *nix tΤ]Q۷YC
   
   (P Wojtek Skulski ( [15]skulski@nsrlc6.nsrl.rochester.edu) X
   setblk .)
   
14. `

14.1 v

   DSOnMLinux HowTo 󪺪vkӧO]^@̩ҦC uno
   vnOdbҦ󤤡MLinux HowTo iHγaHΦ
   CקδC Ʀܤ\Qʽ誺欰CMӡMƱ|@̬
   󪺴GC
   
   ½ĶMޥΡMάOX@~MZ]t Linux HowTo ̡Mݩo
   vndC ]NOMz\q HOWTO olͧ@~MάOW[
   B~C bYǰwpUMoǳWwiHҥ~CӸ`pô
   Linux HOWTO դHC s覡ibU夤C
   
   `Mڭ̧Ʊ澨i઺zLΦ޹Dɳo󪺫ŶǡCOڭ̧
   OdovnC åBp󪺭קMڭ̱N|ܼ֥HQiC
   
   pGz󪺺ðݡMгspô Linux HOWTO ժ Tim BynumM ziH
    email: [16]linux-howto@sunsite.unc.edu PpôC
   
14.2 

   o@~Oڦb Settore di Geofisica of the Universita' di Bologna
   (Italy) @gC  VAX 4000 ]wgQH Linux @~tΪb
   (pentium)ӤHqҥNFC ڤjPƥHeO VMS RΪ̡Mi
   O{bo̳wgഫ Linux WFC
   
   ``From VMS to Linux HOWTO'']q VMS  Linux^oDnO Guido
   Gonzato Ҽg, [17]guido ``at'' ibogeo.df.unibo.it, Mike Miller 
   , [18]miller5@uiuc.edu, L^mpq Linux WŪ VMS ƥϱao@
   峹C QP§ڪPƩMB̡ͭMLڸFj VMS ϥΪ̪
   ݭnMߺDMרP Dr. Warner MarzocchiC
   
   ڧﵽo HOWTO C]ڤO VMS MaMӥB]iOMҥHQ
   wzĳMM~^C
   
   wziJ Linux ,
   
   Guido =8-)
   
14.3 Ķ̧

   b½Ķog峹ɭԡM½ĶQMxW{b٦Hbϥ VMS ܡH Ʀ
   ٤OܦhHD VMSOI½Ķo{Mog峹uAX VMS 
   Ϊ̡M QniJ Linux @ɪHiHѦҬݬݡM]Mog峹[
   ٤M ŪMjPWiHF Linux 򥻾ާ@C(ƬOziHLQ
   q dos  Linux^C OMuM̳og峹٬OMڷQMp
   G Linux no@IܡM R@nѵOnC
   
   γ\MǦa½OܶKMpGnĳMάOa誺~աM 
   [СILinux @ɡMO@HHabǲߪ@ɡI
   
   Linux Rn,
   
   p email: [19]sonnystone@kimo.com.tw
   
   Dec 27, 2000 _ MIC

References

   1. file://localhost/tmp/zh-sgmltools.16052/guido``at''ibogeo.df.unibo.it
   2. file://localhost/tmp/zh-sgmltools.16052/miller5@uiuc.edu
   3. ftp://sunsite.unc.edu/pub/Linux/docs/LDP
   4. file://localhost/tmp/zh-sgmltools.16052/VMS-to-Linux-HOWTO.txt.html#Numbered Backups Under Linux
   5. file://localhost/tmp/zh-sgmltools.16052/VMS-to-Linux-HOWTO.txt.html#Advanced Topics
   6. file://localhost/tmp/zh-sgmltools.16052/VMS-to-Linux-HOWTO.txt.html#Advanced Topics
   7. file://localhost/tmp/zh-sgmltools.16052/VMS-to-Linux-HOWTO.txt.html#Configuring
   8. file://localhost/tmp/zh-sgmltools.16052/VMS-to-Linux-HOWTO.txt.html#Examples
   9. file://localhost/tmp/zh-sgmltools.16052/VMS-to-Linux-HOWTO.txt.html#Advanced Topics
  10. file://localhost/tmp/zh-sgmltools.16052/VMS-to-Linux-HOWTO.txt.html#Configuring
  11. file://localhost/tmp/zh-sgmltools.16052/VMS-to-Linux-HOWTO.txt.html#Advanced Topics
  12. file://localhost/tmp/zh-sgmltools.16052/VMS-to-Linux-HOWTO.txt.html#Print Queues
  13. http://sunsite.unc.edu/mdw/HOWTO/mini/RCS.html
  14. http://ibogeo.df.unibo.it/guido/slang/backups.sl
  15. file://localhost/tmp/zh-sgmltools.16052/skulski@nsrlc6.nsrl.rochester.edu
  16. file://localhost/tmp/zh-sgmltools.16052/linux-howto@sunsite.unc.edu
  17. file://localhost/tmp/zh-sgmltools.16052/guido``at''ibogeo.df.unibo.it
  18. file://localhost/tmp/zh-sgmltools.16052/miller5@uiuc.edu
  19. file://localhost/tmp/zh-sgmltools.16052/sonnystone@kimo.com.tw
