
               δ VMS תƵ Linux (From VMS to Linux HOWTO)
                                       
By Guido Gonzato, [1]guido ``at'' ibogeo.df.unibo.it, and Mike Miller,
[2]miller5@uiuc.edu, ߣ

   v1.1.3, 17 September 1999
     _________________________________________________________________
   
    HOWTO ҪЩѾù VMX ϵͳڿҪתʹ
   Linux ҵϵͳˡϣɱȽҵϵͳָĲ죬ѭ򽥽
    Linux 硣
     _________________________________________________________________
   
1.  

     * 1.1 ΪҪʹ Linux ?
     * 1.2 ָıȽϺ͵ʽ
       
2. ţС 

     * 2.1 
     * 2.2 Ŀ¼
     * 2.3 ʽ
     * 2.4  
       
3. ༭ 

4. TeXing 

5. ʽ 

     * 5.1 Fortran
     * 5.2 ʹ make
     * 5.3 Shell Scripts
     * 5.4 C 
       
6. ͼν 

7. Mail  Internet  

8.  

     * 8.1 Ȩ(Permissions)  Ȩ(Ownership) 
     * 8.2 ๤(Multitasking): (Processes)  (Jobs) 
     * 8.3 ڷõ(files)
     * 8.4 ӡ 
       
9. 趨 

10. õĳʽ 

     * 10.1 : less
     * 10.2  Linux µİ汾 
     * 10.3 ݣArchiving: tar & gzip
       
11. Ӧ 

12. ٵСƫ

13.  Linux ϶ȡ VMS ĴŴ

     * 13.1 
     * 13.2 һЩʶ
     * 13.3 ϸ
     * 13.4 СĽ(Block Size)
       
14. ܽ

     * 14.1 Ȩ
     * 14.2 
     * 14.3 
     _________________________________________________________________
   
1. 

1.1 ΪҪʹ Linux ?

    UNIX Ѷη嶪 VMS 𣿱գLinuxõ UNIX
   ݻ֮һ һҲ VMS ʹã෴ģҷ Linux  VMS 
   ֡ȻVMS ԿܲΪȻ ǣ˵ĽǣLinux ȷ
   ʵǱ VMS ЧҸǶ๦
   
   Linux  VMS ߶Ǻܺõҵϵͳұ϶ԷǳЧʵ
   ͬҵ ǣLinux һЩǳ˵ɫʹΪ VMS ܺõ
   һѡ񡣲ң Linux ڸ˵ (PC) ʹã VMS ȴС
   κһ̨(Pentium)ĵԣ ʹ Linux ΪҵϵͳЧܸԶԶʤ
    VMS Ļ˵ǣһʾ ͿзǳӴ
   ͼν档ǿЩרõĵԡ
   
   룬ӦǴѧоԱѧÿʹ VMS е
   £
   
     * ʹ TeX/LaTeX д;
     * ʹ Fortran дʽ;
     * һЩͼļ;
     * ʹĳЩ;
     * ȵ.
       
   ½Уҽ VMS ϵľ飬 Linux 
   ÿһ¡ Ҫ
   
     * ȷ Linux  X Window Ѿװȫ;
     * һλϵͳԱΪָǰæ벻Ҫ ;-)
       ;
     * ϵͳϵ shell  bash ѯϵͳԱ;
       
   ע⣬ HOWTO 㹻ʹȫ˽ Linux ľ衣ֻ˽е
   һЩŵıҪ֪ʶѡ Ӧѧϰ Linux ֪ʶҳֵ
   (advanced bash features, programming, regular expressions...). 
   ڿʼRMP ˼ `please read the man pages for further details'.
    Linux ϣman pages ʵ help ˼
   
   The Linux Documentation Project ļ
   [3]ftp://sunsite.unc.edu:/pub/Linux/docs/LDP, áҲҪѶϢ
   Դ ҽĶ Larry Greenfield д ``Linux User Guide'' 
   ---һǳʺϳѧߵ顣
   
   ǲɣ
   
1.2 ָıȽϺ͵ʽ

   г VMS  Linux гõָμģ﷨ҲĲ
   ͬ ϸϸο½ڡ
   
VMS                             Linux                   ע(Linux )
------------------------------------------------------------------------------

@COMMAND                        command                 ɱִ
COPY file1 file2                cp file1 file2
CREATE/DIR [.dirname]           mkdir dirname           һֻܽһĿ¼
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,            ܲϲʹ vi
                                emacs filename,         EDT compatible
                                jed filename            ditto---my favourite
FORTRAN prog.for                g77 prog.f,             Ҫ 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,                   ԭʼ email ʽ
                                elm,                     mail á
                                pine                    Ƕֻܴ

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,        ̫ͬ
                                rlogin hostname
SET FILE/OWNER_UIC=joe          chown joe file          ȫͬ
SET NOBROADCAST                 mesg
SET PASSWORD                    passwd
SET PROT=(perm) file            chmod perm file         ȫͬ
SET TERMINAL                    export TERM=            ﷨ͬ
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,                    processes
                                lprm                     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

   ȻⲻָֻƲһѣ֮
   
2. ţС

   Щڵһεϵͳǰ֪һЩ飬ɣ̫ӵ
   
   
2.1 

     *  VMS ϵĵıʾ filename.extension;version 
       Linux ϣİ汾뽫ٳ֣Ҫƣ [4]Linux
       ϵĵ汾); ֻ 255 ԪпԳֺܶ 
       磺This.is_a_FILEname.txt.
     * Linux ԵĴСдзֱģ FILENAME.txt  filename.txt 
       ȫһĵ; ls һָԱִУ LS ȴָ
       ִѶϢ
     * ĵһԪһ㡰`ص' Ҳ˵
       رָĻһ ls ʾЩص 
       βǡš'~' ʾݵݴ浵
       
   ڣ± VMS ָӦ Linux ϵָ
   

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

   Ŀ¼ָһ½ڣԣprotections,
   ownership... [5]ס
   
2.2 Ŀ¼

     * ͬһڵ㣨nodeװãdevice VMS ϣĿ¼ʽ
       Ӧ[top.dir.subdir];  Linux ǣ/top/dir/subdir/. 
       Ŀ¼ǳΪĿ¼/; Ŀ¼ɸĿ¼죺
       /bin, /usr, /tmp, /etc, ȵȡ
     * Ŀ¼ /home ǴʹĿ¼磺/home/guido, /home/warner,
       ȵȡ ʹߵʱǻ뵽ԼӵеʹĿ¼
        SYS$LOGIN ֮ͬ лֻĿ¼иķʹ
       áš'~' ԣcd ~/tmp  cd /home/guido/tmp һ˼
       
     * Ŀ¼Ƶʽ͵Ƶʽͬ ߣ ÿĿ¼
       رĿ¼ƣһǣ. ʾָԼĿ¼ ( []) һ
       ǣ.. ʾָһĿ¼ ( [-])
       
   ӣ
   

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һЩ⣬ [6]
   .
   
2.3 ʽ

     * ָĳʽִе shell scripts (VMS ϵ `command
       files') ûǿƹ涨Ҫضĸ  .EXE or .COM ȣֻҪ
       ϲҪʲֶԡ ʹ ls -F 쿴ִе
       ʱִᷢеᱻʾ '*' 
     * ִпִеĳʽֻҪָƾͿˡûν RUN
       PROGRAM.EXE  @COMMAND) ע⣺ִеָĳ·
       Ԥ¼ /bin, /usr/bin, /usr/X11R6/bin, ȵȡ 
       дһʽ ԽʽԼԤ·Уβ
        [7]趨 Ҳָһ·ִֻʽ
       /home/guido/data/myprog;  ʹ· ./myprog 
     * ָĲ VMS ʹ /OPTION= ɣ Linux ϣ ʹ
       -switch  --switch switch һԪֵϣ
       һ֣ Ƚرģ -R (recursive)  Linux Ϻ  VMS
        [...] ͬĹ;
     * Уһºָܶ
       
$ command1 ; command2 ; ... ; commandn

     * Linux 󲿷ֵĵԣ VMS ȴѱʾ
       ǸûС ǷֱǣI/O ص(redirection)  ܵ
       (piping) ˸ DCL 汾֧Ԯص(redirection)
       ܵ(piping) ûǸ汾ص(redirection)  VMS ֻ
       Ǵ磨ָĲ /OUTPUT=  һֺõ
       (process) 磺
       
$ DEFINE /USER SYS$OUTPUT OUT
$ DEFINE /USER SYS$INPUT IN
$ RUN PROG

        Linux ֻҪͿԴɣ
       
$ prog < in > out

       Piping ʵ VMS ϲûṩ Linux ȴһҪĽɫ
       ͵£
       
$ myprog < datafile | filter_1 | filter_2 >> result.dat 2> errors.log &

       ˼˵ʽ myprog һΪ input  <뵵
       datafile ִĽתΪ(pipe)һʽ(filter_1) 
       inputõĽתΪһֻʽ(filter_2) input 
       һĴᣬĽӵ result.dat ϣѶϢ
       ǵ errors.log ĵϡ һеĶڱִС Ҫ
       ʵӣ [8]ʵ.
       
   춶๤`queues', ⣬ [9].
   
2.4 

    Linux ˡ login name  password
    login name  john Password  My_PassWd, Ҫ  John 
   my_passwd סСд Unix ˵ǲͬ˼
   
   һᣬͻῴϵͳʾ(prompt)ܿ
   machinename:$ ϵͳʾţһ Login Զ
   ִһЩʽҪȥ༭һص.profile  .bash_profile
    ʵա̬趨һ½ [10]趨  VMS ϵLOGIN.COM
   ֮ͬ
   
   ʹ ALT--F1, ALT--F2, ... ALT--F6 л `virtual consoles'
    еһ virtual consoles æ춴ĳһֻʽʱ
   лκһ virtual consoles Ĺ л뵽
    virtual consoles ɣ
   
   Ҫʼִ X Windows ˰ɣǼΪ XX ͼν
    е DECWindows --- ʵϣDECWindows  X Window
   system.  startx ҵȴῴ xterm Ƶն˻
   ģʽ ܻһСϵͳԱ趨һ
   趨Ľ᲻ͬ ͬʱ»Ҽ
   Կһѡ֣󰴼ĹҲ趨ͬвͬĹܣ
   
    X ᣬҪִģʽն˻ (`console') ͬʱסһ
    CTRL--ALT--F1 ... CTRL--ALT--F6 ҪͬʱǿҪ
   Ӵ棬 ͬʱ ALT--F7 Ϳˡ X ѡϵ
   exit ѡͬʱ CTRL--ALT--BS.
   
   ָгĿ¼µĵص
   
$ ls -al

    SHIFT--PAG UP ؾǰөĻ
   
   ָ ls ˵(help) 룺
   
$ man ls

    'q' Ҫǳ exit ǳĿǰն˻ Ҫ
   ػͬʱ CTRL--ALT--DEL ҵȴͿˡ (ע⣺ Բ
   ҪֱӾ͹صϵĵԴ밴һĹػſԹصԴȻ
   ܻ˺ϵͳ
   
   Ѿ·ˣǾͷȥɣǣĻɻ
   һ½ڣ [11].
   
3. ༭

   Linux û EDT ༭кܶı༭ѡɹʹá UNIX ϵͳ
   УΨһ֤һvi ༭---˰ɣ ϵͳԱһѾװ
   vi õı༭ˡܱȽܻӭı༭ emacsģ
   VMS ϵ EDT ; jed һ EDT ı༭
   
   ֱ༭дʽ൱ʵãΪ EDT ûеĹܣ
   ֣syntax hilightingԶţautomatic indentation
   ңԲҪ༭Ϳֱڱ༭루Compileĳ
   ʽ (command ESC-X compile); ﷨α꽫Զд
   ط ҸҴٿֻɫ EDT ˡ
   
    emacs: Ȼ ESC-X edt-emulation-on  ALT--X
   or ESC-X  emacs EDT  CTRL--Z ڿʼemacs 
   EDT һһЩָ̫һ ͬ
   
     *  ʹ CTRL--Z ִָ (ˣ emacs ͣ
       ֹ  fg  emacs);
     * Emacs д˵on-line help CTRL-H ?,  CTRL-H T
       ;
     * 浵 CTRL-X CTRL-S;
     * 뿪 CTRL-X CTRL-C;
     * һ CTRL-X CTRL-F, Ȼ CTRL-X B ڸл
       
    jed ϵͳԱǡ趨 jed  ᣬģ
   ѾԶ롣ʹ CTRL--H CTRL--H or CTRL-? ˵ָ
   ݣϺ emacs ͬ ⣬ һЩ춲Ĳûбװ
   ԭ EDT ; Щĸϲ趨ѯϵͳ
   Ա
   
   ܻʹһȫһı༭ emacs ֱϻ
   һѡ һʮܻӭı༭ǣjoe, ģ༭
    emacs  ()  Dos ı༭ ༭
   jmacs  jstar һ ʹ CTRL-X H  CTRL-J õḻ˵
    emacs  jed  EDT 
   
4. TeXing

   TeX  LaTeX  Linux ȫ VMS һ---ͬĵطǣLinuxִٶ
    :-),  .dvi  .ps ĵƣ
   
     *  TeX ִ TeX ƽһ tex file.tex;
     * ת .dvi  .ps  dvips -o filename.ps filename.dvi;
     *  .dvi  X Window 룺 xdvi filename.dvi &. ʾҳ
       »ԷŴ һǻ͵ĳʽ༭ִ TeX һ
       °汾 .dvi xdvi Զ;
     *  .ps   X Window  ghostview filename.ps &. 
       š ȫĵǲݵԱӡ Ȼһ TeX
       õĳʽgv.
     * ӡ .ps: ָͨ lpr mypaper.ps  PostScript б
       Уʹ ps ָ ִУ lpr -Pps mypaper.ps춸
       й print queues ѶϢ [12]ӡ.
       
5. ʽ

    Linux дʽõù߿дʽӿٸӼ
    磺дʽ޷ǵƵĹ༭--浵--뿪----±༭
   һֱִͬĶ ǣʹ emacs  jed ȹߣ
   Щͳһڱ༭һɡ
   
5.1 Fortran

   ϣûжĲ𣬵ע⣬ѵıɲǰٷ֮ٵĺ
   VMS ݵġ ܻЩֵĽʵϣVMS  Fortran 
   һԱ׼(non-standard) ϸ뿴
   /usr/doc/g77/DOC or /usr/doc/f2c/f2c.ps 
   
   ϵͳԱѾװһ g77  compiler (,  0.5.21
   , ûȫ DEC  Fortran ٷְٵ) һ Fortran ת
    C Եת f2c һǰ(front-ends)װãģ
   һ Fortran  ҵľ飬yaf77 ׼ṩõĽ
   
   ʹ g77  compile  Fortran ʽ, ༭Ǳ༭ʽ룬Ը
    .f 浵 Ȼִ£
   
$ g77 myprog.f

   Զ a.out ִе(Ҫκ link Ķ Ҫ
   ִͬе²
   
$ g77 -O2 -o myprog myprog.f

   עѻҪϵͳԱϸ˵ļҸ֪Ƿ
   κεĴ⡣
   
   м(subroutine)
   
$ g77 -c mysub.f

    mysub.o  ȻҪ(link)Ķ
   
$ g77 -o myprog myprog.f mysub.o

   ɺ(library)
   
$ cd subroutines/
$ cat *f >mylib.f ; g77 -c mylib.f

    mylib.o ʹĳʽ
   
   ᣬҪ link ĺ(library)Ǽ libdummy.so:
   
$ g77 -o myprog myprog.f -ldummy

   ʹ f2c, ֻʹ f77  fort77 ʹ g77
   
   һõĹ make, £
   
5.2 ʹ make

   make ༭ܶɢ춸ԭʼ롣 VMS ǳΪ MMS 
   MMK, Ǻ Linux вͬ﷨
   
   һЩԭʼʽҪЩг򡣳ʽֱΪ file_1.f, file_2.f,
   file_3.f, ʽΪ myprog.f ֶĳʽÿ޸
   ʽᣬ ֪ĸĸйĸȱ룬ȵ
   
   
   ䷢裬д `makefile' һֵ¼ʽ
   ʽ֮Ĺԡ һ޸ᣬֻ޸ĵĵ
   صĵҪ±롣
   
   磬дһ makefile £
     _________________________________________________________________
   

# һ makefile
# ʹ <TAB>  <TAB> ǩʱ!
# ǳҪ벻Ҫʹÿհ׼档

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.
     _________________________________________________________________
   
   Ϊ Makefile  make ĳʽ; 
   ҲԽ myprog.mak Ȼʹ make -f myprog.mak . 
   , RMP.ǵʲ RMP ɣ
   
5.3 Shell Scripts

   Shell scripts  VMS ϵ command files, ԽǳõĹ
   
   
   Ҫдһ script, ҪľֻдһһЩֵָȻ浵
   ıɿִеģʽ ʹ chmod +x <scriptfile> ֻҪ Script
   ־Ϳִˡ
   
   дһ Script һǳشḶ́Ҫһ顣ҾͲٶ˵
   ˡ
   
   ֻһٵۺϵģϣõӣԴ
   õһЩĹ
   
   EXAMPLE: sample.sh
     _________________________________________________________________
   
#!/bin/sh
# sample.sh
# I am a comment
# Ҫ޸ĵһУʽڵһУ
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 

   Linux һд Եĺõطͼ԰ɣҲָ롣
   ĳʽhello.c ʹõ gcc compiler,  Linux һ
    Һ g77 ͬʹ÷:
   
$ gcc -O2 -o hello hello.c

   (link)(library) -l<libname> 磬Ҫ link ѧ
   ѻָ
   
$ gcc -O2 -o mathprog mathprog.c -lm

   ( -l<libname> ǿ gcc (link)(library)
   /usr/lib/lib<libname>.a;  -lm  /usr/lib/libm.a).
   
   ĳʽ൵ɵģҲҪʹǰᵽ make 
   ߡ  makefile ʹ gcc  Եԭʼ뵵Ϳˡ
   
   ҲԻй C Եĺ˵Щ˵ļѾ man
   pages(section 3) ˡ :
   
$ man 3 printf

   ͬʱĺɹʹáһҪʹõ ncurses, 
   ģʽµЧ svgalib, ͼģʽ
   
6. ͼν

   ͼ׼Уgnuplot ̳֮ X Window 
   gnuplot, : 2D-data.dat (ÿ), 
   3D-data.dat (ÿ).
   
   2-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'

   3-D graphs (ÿһеԿհ׼Ϊָ):
   
gnuplot> set parametric ; set hidden3d ; set contour
gnuplot> splot '3D-data.dat' using 1:2:3 with linespoints

   ֻһϵĵ(ʱ)ҲԱƳ 2-D ͼΣ
   
gnuplot> plot [-5:15] '2D-data-1col.dat' with linespoints

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

   ӡͼΣ Postscript бָ lpr -Pps file.ps
   :
   
gnuplot> set term post
gnuplot> set out '| lpr -Pps'
gnuplot> replot

   Ȼ set term x11 ظ x11 ģʽ ɣ뿪 gnuplot ᣬ
   Զӡ
   
   ѶϢ help ǲμĿ¼еġ /usr/lib/gnuplot/demos/
   
   
7. Mail  Internet 

   Ϊ·ǵ Unix Ļϣ Linux Ϸֵ
   塣 Уֻеһݶѣ
   
     * Mail: ʹ elm  pine  email; Ӧóʽ˵
       (Online Help) 춽϶̵ѶϢʹ mail,  mail -s
       "hello mate" user@somewhere < msg.txt. ܻᰮ xmail 
       ӦóʽƵĳʽ
     * Newsgroups: ʹ tin  slrn, ߶ֱʽҽ
       (self-explanatory).
     * ftp: ֽ ftp Ӧóʽ, ҪϵͳԱװȫө
       Ļ(full-screen)ģʽ ftp 壬 ncftp  ͼν xftp.
     * WWW: ձڵ netscape,  xmosaic, chimera,  arena ͼ
       ⻹һֽ lynx, ǳĿٶ
       Чʡ
       
8. 

   ׶ΣϷͱȽϸˡѧЩͿ˵ҶһЩ Linux
   Ķ ;-)
   
8.1 Ȩ(Permissions)  Ȩ(Ownership)

   Ŀ¼Ȩ(Permission) ( VMS ϵ `protections') 
   Ȩ(ownership), ⣬Ϊ VMS ҲСִһֻ
   ʽ޸ĳһ ǲܽĳĿ¼Ϊûбʹ
   ЩԴȨĹϵûȨ ĸͲ
   ûȨ ǿӰɣ
   
$ ls -l /bin/ls
-rwxr-xr-x   1 root     bin         27281 Aug 15  1995 /bin/ls*

   һλʾʹȨ ls (ӵ(owner)  root, Ⱥ
   (group)  bin). ӵȨԷֳģʽ: ӵ(owner), Ⱥ(group),
    ʹ(others)  VMS  owner, group, world ƣ
   ͬȨ(permissions): (read), д(write) (Ƴ(delete)), ִ
   (execute).
   
   ң- ǵģʽ (- = һ㵵(ordinary file), d = Ŀ
   ¼(directory), l = (link), ); rwx ӵ߿ԶԸõ
   дִеĶ r-x Ⱥʹ߿ԶԸõִеĶ
   ǲдĶ r-x ʹ߶Ըõֻжִе
   ȨޣȴûдȨޡ
   
   θı䵵ʹȨޣ
   
$ chmod <whoXperm> <file>

    who  u (userʹߣ, ӵ), g (Ⱥ group), o (
   other), X ʾΪ +  -, perm Ϊ r ( read), w (д write), 
    x (ִ execute). ˵
   
$ chmod u+x file

   ԸõſִеȨ޸õӵߡдɣ chmod +x
   file.
   
$ chmod go-wx file

   ǶԸõƳȺʹߺʹ߶ԸõġдȨ޺ִ͡
   Ȩޡ
   
$ chmod ugo+rwx file

   ǿŸõĶдִеȨ޸еʹߡ
   
   һٱʾΪʹһ֣rwxr-xr-x  755 ʾ (ÿһλ
   ӦһλԪ: ---  0, --x ʾ 1, -w- ʾ 2...).
   
   ԣrwx = 4+2+1 = 7r-x = 4+0+1 = 5ԣrwxr-xr-x  755 
   ʾ
   
   Ŀ¼ԣrx ʾлĿ¼ cd ,  w ʾɾĿ¼
   ĵ(ȻҪӸõʹȨ޶), Ŀ¼. ЩֻǱɽ
   һǶѣҪ֪---RMP.
   
   θı䵵ӵȨ
   
$ chown username file

   ±
   
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 ๤(Multitasking): (Processes)  (Jobs)

   ִкܶʽ Linux ûν `batch queues' ; ๤ʵԷǳ
   һַ һ㳣У
   
$ command -s1 -s2 ... -sn par1 par2 ... parn < input > output &

    -s1, ..., -sn ǸóʽĲswitch, par1, ..., parn ǳʽ
   (parameters).
   
    Linux ζ๤processesһֻǰ
   Ǳִеĳʽ
   
     * ڱִг:
       
$ progname [-switches] [parameters] [< input] [> output] &
[1] 234

       shell ʾó(process)Ĺ루`job number' (һ
       ; 뿴) ͸óĳʶ PID (Process IDentifier). ÿһ
       һһ޶ PID.
     * ж Processes ִУ
       
$ ps -ax

       һִеĳ(processes)
     * ɱ
       
$ kill <PID>

       ֪ҪȷֹĳһʱܾҪֶѳ
       ɱร... ;-). Щʱһֻܱһָɱ
       
$ kill -15 <PID>
$ kill -9 <PID>

   һᣬSell ֹͣʱֹͣһ򣬽͵
   ӱǰ (processes)ǳ֮Ϊ(`jobs').
   
     * жٹjobsִУ
       
$ jobs

       (jobs) Shell Ĺ루job numberע⣬
       PID .
     * ֹǰĳ(processes):
       
$ CTRL-C

       (һÿһЧ)
     * ͣǰĳ(process):
       
$ CTRL-Z

       (ͬ)
     * ͣĳתɱ(background jobs):
       
$ bg <job>

     * ǰ:
       
$ fg <job>

     * ɱһ(job):
       
$ kill <%job>

8.3 ڷõ(files)

   йصѶϢ
   
     * stdin, stdout, stderr:  UNIX УκһϵͳԪΪһ
        ָӦóʽһν׼ĵstdinͨΪ
        ν׼ĵstdout ͨΪөĻ
       Ҳһ ǳ֮Ϊ stderr (ͨҲөĻ). ʹ < 
       > Խµһ Ȼ >> ǽ
       ӵĵβǸԭĵ; 2> صѶϢ(stderr);
       2>&1 صѶϢ׼,  1>&2 ص׼
       һڶ`black hole' /dev/null: еĶ
       ʧӰ١
     * wildcards: Ԫ '*' ͬĹܡ÷: * е
       ص⡣ .* ص; *.* ֻһ '.' мĵ
       Ԫ p*r ʾ `peter'  `piper' п; *c* ܷ
        `picked'  `peck' '%'  '?' һԪ[].
       ÷: [abc]* ʾԪ a, b, c Ϊͷ; *[I-N,1,2,3] ʾ
        I, J, K, L, M, N, 1, 2, 3 Ϊβ
     * mv () һζ mv *.xxx *.yyy ִг
       ;
     * ʹ cp -i  mv -i ǷҪԴڵĵ
       
8.4 ӡ

    VMS ӡȱŵе(queues)ӡָʱ
   ָбơ 磺
   
$ lpr file.txt          # ⽫ָõԤб
$ lpr -Plaser file.ps   # ⽫ʹΪ 'laser' б

   ӡ(print queues), Ҫָ
   

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. 趨

   ϵͳԱѾṩһЩ̬趨磺 .xinitrc, .bash_profile,
   .inputrc, ȵȡ Ҫ༭ǣ
   
     * .bash_profile  .profile:  login ʱͱ Shell 
       ˡ VMS ϵ LOGIN.COM;
     * .bash_logout: Ҫǳʱ򣬶ȡ VMS ϵ
       LOGOUT.COM;
     * .bashrc:  non--login shells ȡ.
     * .inputrc: Զһϼ趨 shell Ϊ
       
   ҽҵ .bash_profile Ϊʵ
     _________________________________________________________________
   
# $HOME/.bash_profile

# Ҫ벻Ҫ¶ $PATH 
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 

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 һЩõĺᣡ

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}
}
     _________________________________________________________________
   
   ҵ .inputrc:
     _________________________________________________________________
   
# $HOME/.inputrc
# ϴ޸: 16 January 1997.
#
# ע⣬˵ Script ⡣
# 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 : less

   ҪÿʹҽһЩܺúõ
   ߡ ȣҪϵͳԱⶨ less ʹֻʾֵ
   ѹļȡ
   
   ڰ汾 TYPE, less ĿǰĿ¼µĵ ͬʱҲ
   ɼİָȽõǣ
   
     * һ,  q 뿪;
     * h ṩ˵;
     * g ͷ, G β,  n  g ʾ n С( 125g), 
       ּ % ʾһõ֮ٷֱȴСĵط;
     * /pattern Ѱ `pattern'; n Ѱ±; ?pattern  N ʾ
       Ѱҡ
     * m+letter ʾĿǰط ( ma); '+letter ʾĵط.
     * :e µ;
     * !command ִе.
       
10.2  Linux µİ汾

   , Linux ûṩ汾Ĺܡַ⡣
   һʹ RCS, 汾ϵͳthe Revision Control System, 
   ǰĵ汾RCS  ``The RCS MINI-HOWTO'' (
   [13]http://sunsite.unc.edu/mdw/HOWTO/mini/RCS.html) ҵ.
   
   ڶַʹ֪δ汾ŵı༭emacs  jed 
     emacs,  .emacs Ǽм:
   
(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)

   ʹ jed, ȷİ汾 0.98.7 ; ĸµʹ֧Ԯ
   ְ汾ݡ ļ
   [14]http://ibogeo.df.unibo.it/guido/slang/backups.sl ҵ.
   
10.3 ݣArchiving: tar & gzip

    UNIX һЩõӦóʽйѹ tar 
   ⵵⵵ָ
   
$ tar -cvf <archive_name.tar> <file> [file...]

   ⿪⵵ã
   
$ tar -xpvf <archive_name.tar> [file...]

   ⵵еĵ
   
$ tar -tf <archive_name.tar> | less

   ʹ compress  gzip ѹԽʡӲռ:
   
$ compress <file>
$ gzip <file>

   ʹ compress ѹΪΪ .Z ѹ
   gzip  .gz Ϊ ЩӦóʽ⵵ǿ
   ѹѹã
   
$ compress -d <file.Z>
$ gzip -d <file.gz>

   ϸΣ RMP.
   
   ⣬unarj, zip  unzip ЩҲá ĸ
   .tar.gz  .tgz (ʾһװ tar, Ȼᣬ ʹ gzip) ѹ
   ѹɵġ UNIX 磬ָʽ ʾβ쿴
   .tar.gz ڵݡ
   
$ tar -ztf <file.tar.gz> | less

   ʾν⿪ .tar.gz :
   
$ tar -zxf <file.tar.gz>

11. Ӧ

   UNIX Ҫϣ͸(piping)ص(redirection)Ĺм
   ָ㹻ӦʵиӵĹ 
   ӣҽֻͱȽϸӵӣ򵥵ӣ
   Ĺ˵ļ(man pages)һԺܿĽ
   
   : ֻʹ ls ָʾ̫Ļһɶ
   ţ꣬ͱȥˣ
   
   :
   
$ ls | less

   : һ֣뽫֮ӡ
   
   :
   
$ cat myfile.txt | sort -r | lpr

   : ҵϵظϣҪɾظأ
   
   :
   
$ sort datafile.dat | uniq > newfile.dat

   : һ 'mypaper.txt'  'mypaper.tex' ĵ
   ĵƣҽǴʲطˣҪҵأ
   
   :
   
$ find ~ -name "mypaper*"

   ˵: find һǳõָг״Ŀ¼µе(ڱ
   УǴ ~ ￪ʼѰңҲ $HOME Ŀ¼) 
   ͸趨ﵽ಻һ -name 
   
   : һڵĳһ֣ 'entropy'Ҫأû
    SEARCH ָ?
   
   : е, Կ grep ָ
   
$ grep -l 'entropy' *

   ˵ʾеĵ
   
   : ĳطĳ 'entropy' , ֪һ
   ҷ  VMS ҿʹ search entropy [...]*.*;*, 
   grep ָѰĿ¼Ҫνأ
   
   :
   
$ find . -exec grep -l "entropy" {} \; 2> /dev/null

   ˵: find . ĿǰĿ¼еĵĿ¼Ŀ¼
    -exec grep -l "entropy" Ƕÿһ find ĵظִִ
   (represented by {}), \ ΪָõЩ̫ˣû
   дд Script
     _________________________________________________________________
   
#!/bin/sh
# rgrep: recursive grep
# ݻʽߢȡ

if [ $# != 3 ]
then
  echo "Usage: rgrep --switches 'pattern' 'directory'"
  exit 1
fi
find $3 -name "*" -exec grep $1 $2 {} \; 2> /dev/null
     _________________________________________________________________
   
   ˵: grep  search,  find ǵõߵľ
   
   : һϵеͷ(header lines)Ҳ˵
   ϲϣ Ҫߢȡÿϵĵڶ͵
   ϣҪдһ Fortran ĳʽ
   
   : Ҫɱָ
   
$ awk 'NL > 2 {print $2, "\t", $5}' datafile.dat > newfile.dat

   ˵: awk ָʵϿ˵һֳʽԣ˼˵ 
   datafile.dat ӵĵпʼÿһУӡÿһеĵڶ
   λ  tab Ϊָšѧ awk һ°빦ġ
   
   : Ҵ FTP վ ls-lR.gz Ҫ쿴ݡ ÿһ
   Ŀ¼ԣһд˵ "total xxxx",  xxxx ʾСkbytes
   ֪ xxxx ֵܺͣҪأ
   
   :
   
$ zcat ls-lR.gz | awk ' $1 == "total" { i += $2 } END {print i}'

   ˵: zcat г .gz ĵݡȻὫ zcat õĽת(pipe)
   awk˰ɣ˽ awk ĶкܴİมRMP
   
   : Ѿдһֻ myprog  Fortran ĳʽԼд
   ϣ ǣкܶϵҪ뵽ֻʽÿһ
   һÿζҪ뵵ʵںܷˣ  VMS ϣҪдһ
   (command file)ſԽ Linux أ
   
   : ֻҪһСС Script ͿԽˡ޸ĳʽĳʽ
   Ԥ 'mydata.dat'  өĻ(stdout), Ȼ༭
    Script
     _________________________________________________________________
   
#!/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
     _________________________________________________________________
   
   : ϣеڵ `geology' 滻 `geophysics' Ҫֶ
   ༭𣿣
   
   : Ҫ  Shell Script ԰쵽
     _________________________________________________________________
   
#!/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
     _________________________________________________________________
   
   : һЩҲ֪ǵĵȣұƳЩڵĵ
   ڶ͵УҪֶ
   
   : ȻҪʹ 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}'`  # ܹм
  LINES=`expr $LINES - 3`                 # LINES = LINES - 3
  head -n $LINES $file > $file.new        # ǰ LINES 
  tail -n 1 $file >> $file.new            # ٽһиӵ
done
     _________________________________________________________________
   
   ϣЩʵٵʳ...
   
12. ٵСƫ

     * Command completion: ĳһָʱҪȫ
       ָƣ ǰԪᣬٰ <TAB> ϵͳ
       еָ; :  less this_is_a_long_name;
       ֻҪ less thi<TAB> ϵͳͻʣµĲݣҪ
       ȫĵˡ (кܶ൵ЩԪͷȻϵͳ
       ʾ⼸Ԫͷĵǣ㹻Ԫ
       ԵõҪΨһ)
     * Back-scrolling: ͬʱ SHIFT--PAG UP өĻؾǰʾ
       ģ ǿؾҳҪʾļˡ
     * Resetting the screen: С more  cat һλ
       (binary file), өĻΪ˶ҵʱʹ
       reset ʹ echo CTRL-V ESC c RETURN өĻָ
     * Pasting text:  X £Ի xterm Ӵҷһ Ȼᰴ
       мĻûмͬʱҼģмͿ
       Ƶ֡
     * Using the mouse: ն˻ģʽ£ҪѰΪϵͳԱû
       װ gpm ֻʽ, УͿûҷһȻᰴ
       Ϳոҷ ͬն
       (VC)ܻвһĲʽ
       
13.  Linux ϶ȡ VMS ĴŴ

   ( Mike Miller )
   
13.1 

   ʱҪ VMS ĴŴΪ VMS Ļ *nix ϵ
   ͳԶȡĴŴ ϣ DECFILES11A Ŵ̫ѡ
   
    Linux  mini-HOWTO, ǣţἰһЩ
   ҲǺκһ *nix ϵͳ  Linux, HP, Sun and DEC *nix ϵͳ
   ԹȽϲһĵطǣÿҵϵͳװƣdevice names
   ͬ  mt ָװ(device name)ʱѡ(options)Ҳ
   ҵϵͳ졣 磺 Linux  mt -f  HPUX 9 ȴ
   mt -t
   
   ע - ֻ Exabyte 8mm SCSI tape drives ʵѾ
   ʽ ֪ҽӵ Note С
   
13.2 һЩʶ

   ȡ VMS  ``copy'' ָɵĴŴʱǿ copy ָ
   ɵĴŴ Ҫ֪ÿʵʵĵֳĵڴŴϣ
   ֱǡͷ(header), (data), ͡β(trailer) е
   ͷ(header)  β(trailer)ѶϢ VMS ϵλá
   (data)ȻǴԭ Щ dd ָӴ
   (tape)ȡ  mt ָԽŴתҪλá
   
   һĴŴǰ VMS ϵĵΪ
   ce66-2.evt  ce66-3.evt Ŵıǩ(label) c66a2
   
   ִָ
   
> 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 header1, data1, trailer1, header2, data2 
   trailer2. ʹ﷨£if="input file", bs="block size"  of="output
   file". TAPE Ļϵװƶ磺 Linux
   ʹ SCSI ĴŴװã װƿ /dev/nts0 
   
   Ҫڶǵһ⵵ͷ(header)Ҫʹ
   ԭĵ
   
> mt -f $TAPE fsf 4
> dd if=$TAPE bs=16k of=ce66-2.evt
> mt -f $TAPE fsf 1

   ע 4 - һһȣڶʣĵͷ
   Ǵӵıʿʼ ڶ mt Ϊڶʵĵβ(tailer)ָ
   һʵ(ϵĵͷ) ȻҲʹ mt ʹŴת(bsf), 
   ת(rewind) ͷλ(offline, rewoffl).
   
13.3 ϸ

   ͷ(header)  β(trailer) ˸ VMS 浵һЩѶϢ
   С(block size) ͬʱҲ˵ƣ Script Զ
   ȡѰضĵ ȻڴŴϵĵһͷ(header file)
   ŴϵĵͷЩĲ졣
   
   ڴŴϵĵһ(Ϊ header1)ǰĸԪ
   "VOL1" 汾(volume name) Уheader1 Ӧ
    "VOL1C66A2"һִ"HDR1" ʾһͷ(header
   file) Ȼǵ(file name)У "HDR1CE66-2.EVT"
   һλǰ汾(volume name)
   
   ĲǴŴϵһͷĵͷ VOL1 λڡ
   λͺǰܵĵһͷĽṹһģһһȽõ
   λǵ߸λ  "DECFILES11A" Ϊβڣûȷ
   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

   ϸĵͷ͵βĽṹο DEC FILES11A ˵ļ (on the
   orange/grey wall - ask your local VMS folks :-).
   
13.4 СĽ(Block Size)

   УʹõС 16K *nix ϵͳϣŵϵĵûк
   Сй Ȼ VMS ϣÿһһȷ
   С(block size)Ҳ˵ Linux ˣ Сû̫Ĺϵ
   ״ӴŴжʱҲС(block size) 
   ڴŵװϣ `mt -f $TAPE setblk 0' 趨ӲС 
   setblk ѡȡʽܻ mt İ汾ͬһ ĴŴ
   װõӲ棬ϲ *nix ϵͳҲ൱Ĺϵ
   
   (л Wojtek Skulski ( [15]skulski@nsrlc6.nsrl.rochester.edu) 
   setblk ز.)
   
14. ܽ

14.1 Ȩ

   رLinux HowTo ļİȨ춸ԭС ֻҪ
   ȨеļУLinux HowTo ļȫ򲿷ݵκʽ
   ý޸Ļɢ ӪʵΪȻϣ֪ԭ
   ļɢ
   
   κεķ룬ãϵƷ Linux HowTo ļߣ
   ݰȨġΧ Ҳ˵ HOWTO зƷ
   ơ ĳЩٶ£Щ涨⡣ϸϵ
   Linux HOWTO Эˡ 緽ʽҵ
   
   ֮ϣܵ͸κʽĹܵļϣ
   ܹݰȨ κε޸ģǽԵı֪
   
   κεʣϵ Linux HOWTO Э Tim Bynum ʹ
    email: [16]linux-howto@sunsite.unc.edu ϵ
   
14.2 

   Ʒ Settore di Geofisica of the Universita' di Bologna
   (Italy) ʵ顣  VAX 4000 ҲѾ Linux Ϊҵϵͳı
   (pentium)ĸ˵ˡ Ҵ󲿷ֵͬǰ VMS İߣ
   ǶѾת Linux ˡ
   
   ``From VMS to Linux HOWTO'' VMS  LinuxļҪ Guido
   Gonzato ׫д, [17]guido ``at'' ibogeo.df.unibo.it, Mike Miller 
   , [18]miller5@uiuc.edu, δ Linux ϶ȡ VMS ıݴŴһ
   ¡ ʮָлҵͬºǣǰҽ˴󲿷 VMS ʹߵ
   Ҫϰߣл Dr. Warner Marzocchi
   
   Ҹ HOWTO ļΪҲ VMS רңҲǣʮ
   ֻӭĽ飬ʹر
   
   ӭ Linux ĵ,
   
   Guido =8-)
   
14.3 

   ڷƪµʱұ߷룬̨ڻʹ VMS  
   Ǻ֪ܶ VMSأҷ֣ᷢʵƪ²ֻʺ VMS ʹ
   ߣ κҪ Linux ˶ԲοΪƪµĹ
   ̫ѣ ᣬϿ˽ Linux Ļ(԰
   ɴ dos  Linux ǣ˵ģƾƪ»ǲģ룬
    Linux ·Ҫߵƽ˳һĻ һǱҪġ
   
   ЩطĲǺУкõĽ飬κεط 
   ߴͽ̣Linux 磬һʱضѧϰ磡
   
   Linux ,
   
    email: [19]sonnystone@kimo.com.tw
   
   Dec 27, 2000  MI

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
