  From VMS to Linux HOWTO
  ҁFGuido Gonzato,  <guido@ibogeo.df.unibo.it>, and Mike
  Miller,  <miller5@uiuc.edu>
  v1.1.3 1999N917
  |F K  <masayuki@shikoku.ne.jp>
  {F 1999N106쐬

  ́̕AVMS gĂāAt[ UNIX N[ł Linux ֐؂
  ւ悤ƍlĂlB̎菕ɂȂ΂Ǝv̂łB Linux
  ւ̈ڍs(]ނ炭)yɂł悤AR}hc[̔rȂǂ𐷂
  ł܂B
  ______________________________________________________________________

  ڎ

  1. Cg_NV
     1.1 Ȃ Linux Ȃ̂H
     1.2 R}ht@C̔r

  2. V[gCg_NV
     2.1 t@C
     2.2 fBNg
     2.3 vO
     2.4 NCbNcA[

  3. t@C̕ҏW
  4. TeX
  5. vO~O
     5.1 Fortran
     5.2 make ̎g
     5.3 VFXNvg
     5.4 C

  6. OtBbNX
  7. [ƃC^[lbgc[
  8. xȘb
     8.1 p[~bVƏL
     8.2 }`^XNFvZXƃWu
     8.3 ēxAt@Cɂ
     8.4 v^[L[

  9. ݒ
  10. ɗvO
     10.1 t@C̃uEY less
     10.2 Linux ł̕tԂɂobNAbv
     10.3 A[JCuFtar  gzip

  11. ł̗
  12. Ȃł͂Ă䂯Ȃ錍
  13. Linux  VMS ̃e[vǂނɂ
     13.1 ͂߂
     13.2 b
     13.3 ڍ
     13.4 ubNTCYɂẲ

  14. I
     14.1 Copyright
     14.2 Disclaimer
     14.3 {Ŏӎ

  ______________________________________________________________________

  1.  Cg_NV

  1.1.  Ȃ Linux Ȃ̂H

  Ȃ UNIX ƕāAVMS ̈ڍsイ債Ă܂
  HSzȂBꂽ UNIX N[̈ł Linux  VMS 
  قǓȂAہAŷłBMI VMS t@͓
  ȂȂǁÄӌ́A Linux ̂ق͂邩ɋ͂Ŗ
  \ƂƂłB

  Linux  VMS ͗҂Ƃ΂炵Iy[eBOVXeŁAǂ
  gĂdł܂ALinux ɂ VMS ւɂۂ
  ܂B̏AVMS ł͂܂Ă܂񂪁ALinux  VAX
  𗽂\ŐV Pentium PC œĂ܂BVs̍\O
  tBbNJ[h𓋍ڂ Linux @ X11 𗘗p΁AOtBbN
  [NXe[VłAƂ܂܂B\͂قڗO
  ȂOtBbNXp@𗽂܂B

  Ȃ͑w̌҂wŁAVMS gĎ̂悤ȎdĂ
  Ȃł傤B

  o  TeX/LaTeX gĘ_

  o  Fortran vO~O

  o  }\̍쐬

  o  C^[lbg̗p

  o  ̑ ...

  ͂AȂ VMS ł̌o܂āAd Linux ł
  ǂȕɂ̂Ă܂B

  OF

  o  Linux  X Window System CXg[Ă邱ƁB

  o  Zpׂ̍Ȗʓ|݂ĂǗ҂邱 (͎ɂł͂
     AǗ҂̕ɂĂ ;-) B

  o  VF - DCL Ɠ -  bash g܂(VXeǗ҂ɊmF
     Ă)B

   HOWTO ́ALinux ɂď\̂ȂāAŏ
  mĂׂŒ̎ɂďqׂ̂łB]āALinux g
  Ȃ߂ɂ́AɊw΂Ȃ΂Ȃ܂ (x bash ̓AvO
  ~OAK\ Ȃ...)Bȍ~AuڍׂɂĂ man y[WQ
  Ƃ̂ƁvƂӖŁARMP(please Read the Man Pages for further
  details) Ƃ}[Ng܂B

   ftp TC g <ftp://sunsite.unc.edu:/pub/Linux/docs/LDP>
  \ Linux Documentation Project ̕dvȏ񌹂ƂȂł傤B
  SҌƂāALarry Greenfield ́u Linux User Guide vE߂
  ܂B

  A͂߂܂傤

  1.2.  R}ht@C̔r

  ́AVMS  Linux ł悭gR}h̔r\łB@Ȃ
  ȂĂ܂B | ڍׂ͎͈ȍ~䗗B

       VMS                             Linux                   Notes
       ------------------------------------------------------------------------------

       @COMMAND                        command                 st@Cł邱
       COPY file1 file2                cp file1 file2
       CREATE/DIR [.dirname]           mkdir dirname           xɈs
       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,            CɓȂł傤
                                       emacs filename,         EDT ݊
                                       jed filename            --  ̂Cɓ
       FORTRAN prog.for                g77 prog.f,             LINK ̎s͕sv
                                       f77 prog.f,
                                       fort77 prog.f
       HELP command                    man command             u command vw肵܂
                                       info command            
       LATEX file.tex                  latex file.tex
       LOGIN.COM                       .bash_profile,          uBvt@C
                                       .bashrc                 
       LOGOUT.COM                      .bash_logout            
       MAIL                            mail,                   e
                                       elm,                    Ƃ
                                       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          t@Cw͕s
       RUN progname                    progname
       SEARCH file "pattern"           grep pattern file
       SET DEFAULT [-]                 cd ..
       SET DEFAULT [.dir.name]         cd dir/name
       SET HOST hostname               telnet hostname,        mɂ͓Ȃ
                                       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,                   vZXp
                                       lprm                    v^[L[p
       SUBMIT command                  command &
       SUBMIT/AFTER=time command       at time command
       TEX file.tex                    tex file.tex
       TYPE/PAGE file                  more file
                                       less file               Ƃ

  R}hĂ邾Ⴀ܂B܂傤B

  2.  V[gCg_NV

  {ɂ͂߂āAOCOɂǂĂmĂׂƂ
  BbNXāAȂɑȂB

  2.1.  t@C

  o  VMS Ńt@C̓t@C.gq;o[WԍłA Linux
     ł̓o[Wԍ͂܂(͂ȂɂłB ``Linux
     ł̕ԂɂobNAbv''QƂĂ)Bt@C͒ʏ
     255 ȓADȂhbgŋ؂邱Ƃł܂BႦ
     ΁AThis.is_a_FILEname.txt ̂悤ɁB

  o  Linux ł͑啶Əʂ܂B FILENAME.txt  filename.txt
     ͕ʂȃt@CƂĈ܂B ls ̓R}hłALS ͈Ⴂ܂B

  o  hbgŎn܂t@ĆuBvt@Cł(ʏAfBNg
     ɂ͕\܂) `_u ~ vŏIt@C̓obNAbvt@
     CłB

  VMS ̃R}h Linux ɒûłB

       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

  fBNg܂ޑ̗ɂĂ͈ȉŐ܂BANZXیAL
  Ȃ̍xȘbȂǂɂẮA``xȘb''̏͂Ă
  B

  2.2.  fBNg

  o  m[h̑uɂꍇAVMS ł̃fBNg
     [top.dir.subdir] ̌`ƂȂ܂ALinux ł /top/dir/subdir/ 
     `ɂȂ܂B܂AfBg[c[̐擪ɂfBNg
     [gfBNgƌĂ / ŕ\Ả /bin,/usr, /tmp,
     /etc Ȃǂ̑̃fBNg̉Ɉʒu܂B

  o  /home fBNg̉ɂ̓[Uɗpӂꂽuz[fBNg
     v܂BႦ /home/guido  /home/warner ̂悤ɁBOC
     āÃz[fBNgōƂ܂A SYS$LOGIN 
     łˁBu~v̓z[fBNgւ̃V[gJbgŁAcd ~/tmp
      cd /home/guido/tmp ͓fBNgw܂B

  o  fBNgƃt@C͓ɏ]܂BɁAefBNg
     ɂ͓̓ʂȃGg݂܂B . ŁA݂͌
     fBNĝw܂( [] Ɠ)B .. ŁAefB
     Ngw܂( [-] Ɠ)B

  ʂȗ܂B

       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

  ANZXیALȂ̍xȘbɂĂ``xȘb''䗗
  B

  2.3.  vO

  o  R}hRpCvOAуVFXNvg ( VMS 
     uR}ht@CvƓ)ɂ́A.EXE  .COM ̂悤Ȋgq͕sv
     ŁADȖO邱Ƃł܂B ls -F ŌƁAs\
     t@Cɂ̓AX^XNu * vĂ܂B

  o  s\t@CNɂ́At@C^CvĂ( RUN
     PROGRAM.EXE  @COMMAND Ⴀ܂)BxFt@CspX
     邱ƂsłBʏApXɂ /bin,/usr/bin,/usr/X11R6/bin
     Ȃǂ܂܂Ă܂BvOApX̒ʂfBNg
     ɈڂĂB (ݒ@``ݒ''䗗) Jg
     fBNgpXɊ܂܂ĂȂȂAւ̎iƂāAtp
     XwŃvOs邱Ƃł܂BႦ
     ΁A/home/guido/data/myprog  ./myprog ̂悤ɁB

  o  VMS ł /OPTION= ̌`ŃR}hXCb`w肵܂A Linux ł
     -switch  --switch ̂悤Ɏw肵܂B switch ͕╶̑g
     A܂͒PȂǂłBɁÃR}hɋʂ -R XCb`(
     AI) VMS  [...] Ɠʂ܂B

  o  sŕ̃R}hs邱Ƃł܂B

       $ command1 ; command2 ; ... ; commandn

  Linux Ɏg₷Ă̂ I/O _CNgƃpCvȂł
  A VMS ł͈ɂA邢͂ɕCĜ܂(
  ŋ߂ DCL ł _CNgƃpCvT|[g悤łAcOȂ
  玄͂̃o[WĂ܂)B VMS ł̃_CNǵAR}
  h̃XCb`Ƃĕ⏕IɃT|[gĂ邩(̃R}hɂ
  /OUTPUT= XCb`voĂ)A̂悤Ȗʓ|ȂŎ
  ł܂B

       $ DEFINE /USER SYS$OUTPUT OUT
       $ DEFINE /USER SYS$INPUT IN
       $ RUN PROG

  Linux ł͂ȂɊȒPɂȂ܂B

       $ prog < in > out

  pCv VMS ł͗pł܂񂪁AUNIX ł͏dvȖĂ܂B
  ꂪT^IȗłB

       $ myprog < datafile | filter_1 | filter_2 >> result.dat 2> errors.log &

  vO myprog ̓t@C datafile ( < oR)͂ƂĎ
  ݁Ao͂̓vO filter_1 ̓͂( | oR)n܂Bv
  O filter_1 ̏o͂́AĂуvO filter_2 ɓnAŏII
  o͂ t@C result.dat ( >> oR)ǋL܂B܂G[
  o͂̓t@C errors.log ( 2> oR)_CNg܂Bȏ
  ̏̓obNOEhŏ܂(R}hC̍Ō & 
  Ă邽)Bڂ``Examples''䗗B

  }`^XNAuL[vȂǂɂĂ``xȘb''䗗
  B

  2.4.  NCbNcA[

  ܂ł Linux ł܂BOCƃpX[h𐳊m
  ɓ͂Ă݂ĂBႦ΁AOC john ŃpX[h
  My_PassWd Ȃ猈 John  my_passwd ȂǂƓ͂ȂƁB UNIX 
  啶Əʂ̂łB

  UOCA}V:$ ̂悤ȃvvg\邱Ƃ
  傤BvvgύXAvOIɎsꍇ
  ́A.profile  .bash_profile Ȃǂ́uBvt@CC܂B(``
  ݒ''䗗) ̃t@C LOGIN.COM Ɠ
  B

  ALT-F1(ALT L[ F1 L[𓯎ɉ܂)AALT-F2, ... ALT-F6 ̂ǂ
  ΁uzR\[( : ȉ VC ƌĂ)v؂ւ邱Ƃ
  ł܂BʑŜgAvP[V VC LĂA VC 
  ؂ւ邱ƂōƂ𑱂邱Ƃł܂Bʂ VC JăOC
  Ă݂ĂB

  X Window System (ȉAX Əȗ)Nł邱ƂƎv܂B X  DEC
  EChEɎOtBbNłB- ہADEC EChE X 
  ĥłB startx ƑłĐb҂ƁAxterm  Ɏ[
  G~[^NA{^o[\邱Ƃł傤(N
  邩 Linux ̐ݒɂ܂)BfXNgbvNbN(}EX̗
  ̃{^Ă)΃j[\܂B

  X ŃeLXg[h(uR\[v)ɂɂ́ACTRL-ALT-F1(Rg
  [L[ ALT L[ F1 𓯎ɉ܂)ACTRL-ALT-F2A... CTRL-
  ALT-F6 ̂ǂꂩĂ݂ĂBR\[ X ɕAɂ
  ALT-F7 L[łBX Iɂ́Aj[̎wɏ]A CTRL-ALT-
  BS ܂B

  ̃R}h̓z[fBNg̑SẴt@C(Bt@C܂)
  ꗗ܂B

       $ ls -al

   SHIFT-Page Up L[ƉʌɃXN[ł傤B ls
  ̃wv΁A

       $ man ls

  ƃ^Cv܂傤Bu q vŃwvʂ甲邱Ƃł܂Bc
  A[̍Ō exit ŃZbVI܂傤B PC ̓d؂
  ȂACTRL-ALT-DEL 𓯎ɉāAbɓd؂Ă(
  Linux ̉ғɓd؂Ă͂܂It@CVXe邨
  ꂪ܂)B

  łɉ炩̍ƂJn悤ƎvĂA``xȘb''Ă
  ɂ܂傤B

  3.  t@C̕ҏW

  Linux ɂ EDT ͂܂񂪁ÃGfB^[g܂B܂A
  ꂾ͕ۏ؂Ă邱ƂłASĂ UNIX ɂ vi GfB^[
  Ă܂ - YȂłˁBłVXeǗ҂ƂG
  fB^[CXg[ĂɈႢȂǁB炭Ał|s[
  GfB^[ emacs łA EDT G~[gł܂Bjed 
  EDT G~[głGfB^[łB

  ̃GfB^[́AAEDT ɂ͂Ȃ̓ * @@\Ǝ
  Cfg@\ * ̂ŁAvO\[X̕ҏWɂ͑傢ɗLp
  BɁAGfB^[ŃRpCł(R}h ESC-X compile
  )A@G[̂sɃJ[\΂܂BȂ EDT ĂюgC
  ɂ͂ȂȂƒfł܂B

  emacs 𗧂グāAESC-X edt-emulation-on ƃ^CvČĂB
  ALT-X  ESC-X  emacs ŃR}hs鎞ɉ܂B EDT 
  CTRL-Z ̂悤Ȃ̂łBemacs  EDT ̃R}ḧႢĂ݂
  傤B

  o  R}hs悤ƂāACTRL-Z Ȃ悤 (
     Aemacs ͒~܂Bł fg ŕA܂)B

  o  ICwvĝ܂BCTRL-H ?  CTRL-H T 
     Ă݂ĂB`[gAn܂܂B

  o  t@C̕ۑ CTRL-X CTRL-S łB

  o  I CTRL-X CTRL-C łB

  o  VKɃt@CҏWȂ CTRL-X CTRL-F ŁACTRL-X B ŕҏWob
     t@ؑւ邱Ƃł܂B

   jed Ȃ (VXeǗ҂ɂƐݒ肳Ă邩q˂Ă
  )AグƂɃG~[V悤ɂȂĂ锤
  BʂɃL[pbhgāACTRL-H CTRL-P  CTRL-? Ńwv\
  Ǝv܂Bemacs Ɠ@ŃR}hsłAāAIWi
   EDT ɂ͂ȂAȂD݂̃L[oChɂ邱Ƃ\łBׂ
  Ƃ̓VXeǗ҂ɐq˂ĂB

  ̑ɁAS쐫GfB^[gpĂ̂
  Bf̂܂܂ emacs ̑IłB|s[ȃGfB^[ł
  joe  emacs (삪ȒPɂȂĂ) DOS GfB^[ȂǂG~
  [g܂Bjmacs  jstar ĂяoA CTRL-X H  CTRL-J Ńwv
  \邱Ƃł܂Bemacs  jed ͌Âǂ EDT 苭͂łB

  4.  TeX

  TeX  LaTeX ͂ǂ VMS łƓł - Ƃ͈Ⴂ܂ :-)
  Bł .dvi  .ps t@Cc[ɂ͗Dꂽ̂܂B

  o  TeX  TeX t@CNɂ́A(ς炸) tex file.tex
     ̂悤ɂ܂B

  o  .dvi t@C .ps t@Cɕϊɂ́Advips -o filename.ps
     filename.dvi Ƃ܂B

  o  X  .dvi ʂɕ\ɂ́Axdvi filename.dvi & Ƃ܂B
     NbNΊg\܂Bxdvi ̂ȂƂ́ATeX t@C
     GfB^[ŕύX TeX ʂĂ΁AI .dvi t@C
     V̂ɕ\Ȃ_łB

  o  y[WŜAI𕔕̂ɍœKȃc[́Â݂Ƃ gv
     łB

  o  .ps t@Cɂ́Alpr mypaper.ps R}hg܂B
     |XgXNvgv^[(ǂ̓VXeǗ҂ɕĂ
     )Ȃ lpr -Pps mypaper.ps Ƃ܂Bv^[L[̏ڂ
     ́A``v^[L[''䗗B

  5.  vO~O

  Linux ̓vOɂ͗ǂƎv܂BvOȒPɑf
  쐬邽߂̑̃c[Ă܂BႦ΁AҏW - ۑ - R
  pC - ĕҏWƂPȍƂɂȂĂAOq emacs
   jed Ȃǂ̃GfB^[gΐvɍƂł܂B
  5.1.  Fortran

  ܂卷Ȃ̂łA̕Ă鎞_ŗpł(t[)R
  pC[ VMS Ƃł͊S݊ł͂܂ - ̃}Ci[Ȍx
  ̔\z܂( VMS ̃RpC͔W̊gsȂĂ̂
  )Bڍׂ /usr/doc/g77/DOC  /usr/doc/f2c/f2c.ps 䗗B

  VXeǗ҂́Ag77 lCeBuRpC(̂łA0.5.21 
  ł͂܂ DEC Fortran ƌ݊͂܂)AFortran  C ւ̃g
  X[^ł f2c (^lCeBuRpC̃tgGh) ̂ǂ
  炩CXg[Ă͂łB̌oł́Ayaf77 łDꂽ
  ʂopbP[ẄƎv܂B

  g77  Fortran vORpCɂ́A\[XҏWāA .f
  gqĕۑA

       $ g77 myprog.f

  s܂B

  ftHgł́Aa.out ̖Ŏst@C܂(ɉN
  Ȃ)BقȂst@CɂāAœKIvV
  ́A

       $ g77 -O2 -o myprog myprog.f

  Ƃ܂B

  œKɂ͒ӁI VXeǗ҂ɃRpCɂẴhLg
  ǂĂ炢A肪ȂǂmFĂB

  Tu[`RpCɂ́A

       $ g77 -c mysub.f

  Ƃ΁Amysub.o ܂B̃Tu[`Nɂ́A

       $ g77 -o myprog myprog.f mysub.o

  ƂĂB

  ̃Tu[`āACuɂ܂Ƃ߂ȂA

  $ cd subroutines/
  $ cat *f >mylib.f ; g77 -c mylib.f

  ̂悤ɂ܂B

  łȂ̃vOɃN\ mylib.o ܂BŌ
  ɁAOCu libdummy.so Nɂ́A

       $ g77 -o myprog myprog.f -ldummy

  Ƃ܂B

  f2c ȂAg77 ̑ւ f77  fort77 ݂̂gƂł
  B

  ȉł́AɎg₷vO~Oc[ make Љ܂B

  5.2.  make  ̎g

  [eBeB make ́Ã\[Xt@CɕꂽvÕR
  pCɎgc[łBVMS ł MMS  MMK ɑ܂A\͈
  ȂĂ܂B

  \[Xt@C file_1.f , file_2.f , file_3.f  CvO
  \[X myprog.f Ƃ܂傤B̃vOƂŃRp
  CƂȂƁA\[Xt@ĈǂꂩύXꍇAƈˑ
  ֌Wɂt@CǂꂩlāAăRpCȂ΂Ȃ
  ܂B

  ςɂȂOɁu makefile vׂłB̓\[Xt@C
  ̈ˑ֌WLqeLXgt@Cł - \[XύXꂽAύX
  ꂽt@CɈˑt@CăRpCĂ܂B

  X̗ł́Aȕ makefile ܂B

  ______________________________________________________________________

  # makefile ̗łB
  # <TAB> ƏĂƂł <TAB> L[ĂI
  # ؂ȂƂłFXy[X̓_łB

  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 ͎l̃IuWFNgt@CɈˑ܂B

  myprog.o: myprog.f
  <TAB>g77 -c myprog.f
  # myprog.o ͂ꎩg̃\[Xt@CɈˑ܂B

  file_1.o: file_1.f
  <TAB>g77 -c file_1.f
  # file_1.o ͂ꎩg̃\[Xt@CɈˑ܂B

  file_2.o: file_2.f file_1.o
  <TAB>g77 -c file_2.f file_1.o
  # file_2.o ͂ꎩg̃\[Xt@CƃIuWFNgt@CɈˑ܂B

  file_3.o: file_3.f file_2.o
  <TAB>g77 -c file_3.f file_2.o
  # file_3.o ͂ꎩg̃\[Xt@CƃIuWFNgt@CɈˑ܂B

  # end of makefile.
  ______________________________________________________________________

   Makefile ̖ŕۑAmake ƃ^Cv΃RpCł܂B
  ɁAt@C myprog.mak ƂĕۑȂAmake -f
  myprog.mak ŃRpCł܂B RMP(󒍁Fman y[WQƂ
  )B

  5.3.  VFXNvg

  VFXNvg VMS R}ht@CƓ̂łA苭͂ȍ\
  Ă܂B

  XNvgɂ́AȂ΂ȂȂƑSĂR}hŋLqāA
  W ASCII t@Cɕۑ܂Bsł悤ɂ邽߂ɁAchmod
  +x <XNvgt@C> R}hsĂĂBXNvg
  t@C^CvΎsł܂B

  bash ŃXNvgɂ́AL͂ȋ@\ԗ{KvɂȂ
  ŁA܂[͌y܂Bł͑IŁA(]ނ炭)ɗ
  Tv̊{Iȃ[ǂ݂ƂĂB

  TvFsample.sh

  ______________________________________________________________________
  #!/bin/sh
  # sample.sh
  # RgsłB
  # ŏ̍s͏ȂŁAKɂȂ΂Ȃ肹B
  echo "This system is: `uname -a`" # use the output of the commad
  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 ́AC ŃvOJɂ͂΂炵łBC ɂĂ
  mƎv܂̂ŁAł̓KChCɂďqׂ܂傤B
   hello.c  Linux ̈ꕔƂ gcc ŃRpCɂ́A g77 
  \g܂B

       $ gcc -O2 -o hello hello.c

  vOɃCuNɂ́AXCb` -l<libname> 
  BႦ΁AwCuƍœKIvVtăNɂ́A

       $ gcc -O2 -o mathprog mathprog.c -lm

  ̂悤ɂ܂B

  ( -l<libname> XCb`́A /usr/lib/lib<libname>.a ꏏɃN
  ƂƂŁA] -lm  /usr/lib/libm.a ƓӖɂȂ܂)B
  vÕt@C\ꍇ́AOq悤 make
  [eBeBKvƂȂł傤BRAmakefile ɋLqꂽ\[X
  t@C gcc g܂B

  man y[W̃ZNV 3 ɋLڂĂ C ̊֐ɂẴwv
  яoƂł܂BႦΎ̂悤ɂ܂B

       $ man 3 printf

  gp\ȃCu͎Rقǂ܂AłAeLXg[hŊe
  ʂo߂ ncurses ƁAOtBbNX`p svgalib Ȃǂŏ
  Ɏĝł͂ȂłB

  6.  OtBbNX

  闘p\ȃOtBbNXpbP[W̒ł gnuplot ́A̋
  ȋ@\Ǝg₷œˏoĂ܂BX NāAgnuplot ƃ^Cv
  ݂ĂB炩߁A̃t@C - 2D-data.dat (s
  ̃f[^) 3D-data.dat (sO̃f[^)- Ă
  Ƃ܂B

  2 Ot̗F

       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 Ot̗ (X ̊es̒l͋󔒍sł)F

       gnuplot> set parametric ; set hidden3d ; set contour
       gnuplot> splot '3D-data.dat' using 1:2:3 with linespoints

  P̃f[^t@C(Ⴆ΁AnȂ) 2-D OtƂăvbg
  ł܂B

       gnuplot> plot [-5:15] '2D-data-1col.dat' with linespoints

  邢 3-D OtƂĂ(L̂悤Ƀf[^t@Cɋ󔒍s܂߂
  Ƃ)vbg\łB

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

  OtF|XgXNvgv^gĂ̂ȂA lpr
  -Pps file.ps Ƃ܂B

       gnuplot> set term post
       gnuplot> set out '| lpr -Pps'
       gnuplot> replot

  Ƃɖ߂ɂ set term x11 ƃ^Cv܂BȂłˁB
  ̈ gnuplot Ił傤B

  ڂ́Ahelp ƃ^Cv邩A /usr/lib/gnuplot/demos/ fB
  Ng䗗B

  7.  [ƃC^[lbgc[

  C^[lbg UNIX @ŒâȂ̂ŁALinux pɂfGŎg
  AvP[VLxɒ񋟂Ă܂B͂ق̈ꕔ
  F

  o  Mail : dq[̑Mɂ elm  pine g܂ - ƂI
     Cwv܂BZbZ[Wɂ́A mail gƂ
     傤B mail -s "hello mate" user@somewhere < msg.txt ȂǂƂ
     BAxmail ̂悤ȃvODނƎv܂B

  o  Newsgroups : tin  slrn ͂ǂAϓIŎȑ쐫񋟂
     B

  o  ftp : ܂̃LN^x[X ftp ͕ʂɂāAtXN[
      ncftp  xftp ̂悤ȃOtBJ ftp NCAgCX
     g[ĂȂAVXeǗ҂ɐq˂Ă݂ĂB

  o  WWW : 悭݂ netscape 邢 xmosaic Achimera  arena
     ̓OtBJ web uEUłBLN^x[XȂ lynx 
     ܂B̕AʓIłB

  󒍁Fȉɓ{ꗘp\ȃc[̖O url 񋓂Ă܂B

  mail [_

  o  mew        <http://www.mew.org/index.html>

  o  mutt-ja    <http://kondara.sdri.co.jp/~kikutani/mutt.html>

  o  cmail      <http://www.st.rim.or.jp/~fuku/cmail/index.html>

  o  MH-JP     <http://www.chem.eng.himeji-
     tech.ac.jp/~hayashi/internet/mh-plus.html>

  o  wonderlust  <http://www.gohome.org/wl/index.html>

  news [_

  o  mnews  <ftp://ftp.mei.co.jp/free/news/readers/>

  o  semi-gnus ( MUA )  <http://www.mdcnet.co.jp/~keiichi/semi-gnus-
     faq-ja.shtml>

  o  t-gnus  <http://www.jpl.org/elips/INSTALL-SEMI-ja.html>

  web uEU

  o  lynx  <http://lynx.browser.org/index.html>

  o  w3m   <http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/>

  o  w3-mode on xemacs  <http://www.cs.indiana.edu/elisp/w3/docs.html>

  o  mmm  <http://pauillac.inria.fr/~furuse/jmmm/030/index.html>

  8.  xȘb

  ̏͂͏育킢eɂӂ܂Bŏqׂwׂ΁Au Linux
  ɂĉm蓾vƌƎv܂B

  8.1.  p[~bVƏL

  t@CƃfBNgɂ́AVMS Ɠ悤Ƀp[~bV(ی)ƏL
  ݂܂BĂȂ΁AvO𑖂点At@C
  CA邢̓fBNgɃANZX邱Ƃł܂Bt@
  CȂ̌ɂȂłB̗Ă݂܂傤B

       $ ls -l /bin/ls
       -rwxr-xr-x   1 root     bin         27281 Aug 15  1995 /bin/ls*

  ŏ̃tB[h́At@C ls ̃p[~bV\Ă܂(I[
  i root ŃO[v bin)BLɂ I[i (owner) AO[v
  (group) Ȃ (other) ̂Rނ܂ (VMS  owner,group,world
  ɎĂ܂)Bp[~bVɂ ǂݎ苖 (read) A݋
  (write A폜܂)As (execute) ̂Rނ܂B

  EɌĂ܂傤B- ̓t@C̎ނł( - ͈ʃt@C
  Ad ̓fBNgAl ̓N܂)B rwx ̓t@C̏L
  ɑ΂p[~bV( read, write, execute )łB r-x ̓t@C
  L҂̑O[vɑ΂p[~bV(read, execute) ŁAŌ
   r-x ͂ȊÕ[Uɑ΂p[~bV(read, execute)\
  Ă܂B

  t@C̃p[~bVύXɂ́A

       $ chmod <whoXperm> <file>

  ƂAwho ɂ u (userAI[î)Ag (group) 邢 o (other) 
  w肵AX ɂ +  - ̂ǂ炩w肵܂B܂A perm ɂ r
  (read), w (write), 邢 x (execute) w肵܂BႦ΁A
       $ chmod u+x file

  ́At@C̏L҂Ɏs^̂ Achmod +x file ƒZk
  ܂B

       $ chmod go-wx file

  ́At@C̏L҈ȊO珑݋Ǝs܂B

       $ chmod ugo+rwx file

  ͑SẴ[Uɓǂݍ݋A݋As^Ă
  B

  p[~bV́AZkĐŎƂ܂Brwxr-xr-x ͎
  葁A755 Ǝwł܂(e̓rbgɑΉ܂B--- 0A--x 
  1A-w-  2 Ȃǂ̂悤)B

  fBNgɑ΂ rx ́A cd gẴfBNgɈړł邱
  ƂӖAw ̓fBNg̃t@C̍폜(At@C
  p[~bVɏ]܂)ÃfBNĝ폜ł邱Ƃ
  Ӗ܂B̂Ƃ́Aق̈ꕔł - RMPB

  t@C̏L҂ύXɂ́F

       $ chown username file

  v񂷂΁A̕\ɂȂ܂B

       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.  }`^XNFvZXƃWu

  vO̎sɂĂɐ܂傤B܂ŎgĂuob
  `L[v Linux ɂ݂͑A@ň܂BĂсAT^I
  ȃR}hC܂B

       $ command -s1 -s2 ... -sn par1 par2 ... parn < input > output &

  -s1, ..., -sn ̓vOXCb`ŁApar1, ..., parn ̓vOɓn
  łB

  }`^XNǂ̂悤ɓĂ܂傤BtHAOh
  obNOhœvOuvZXvƌĂт܂B

  o  vZXobNOhŋNɂ́F

       $ progname [-switches] [parameters] [< input] [> output] &
       [1] 234

  VF̓vZX́uWuNov(ŏ̐łFȉQ)ƃvZX
  PID (vZXID) ʒm܂BevZX PID ňӂɎʂł܂B

  o  vZXĂ邩ׂɂ́F

       $ ps -ax

  ݎsvZẌꗗo͂܂B

  o  vZXIɂ́F

       $ kill <PID>

  vZX𐳋K̎iŏI@ȂĂAȂ̓vZX
  IKvƎv܂ ... ;-) XAȉ̂ǂ炩ł̂ݏI
  ꍇł傤(󒍁F̓VOiԍŁA9  kill VOi
  A15 ͏IVOiƂĒ`Ă܂B killall ȂvZX
  w肵ďI邱Ƃł܂)B

       $ kill -15 <PID>
       $ kill -9 <PID>

  tƁAVF̓vZX̏Iꎞ~A܂AvZXobN
  OhֈڂAtHAOh֖߂肷邱Ƃł܂B̂
  ȊŁAvZXuWuvƌĂт܂B

  o  Wu邩ׂɂ́F

       $ jobs

  Wu̓VFɂč̔ԂꂽԍŎʂAPID ł͎ʂ܂
  B

  o  tHAOhvZXIɂ́F

       $ CTRL-C

  (ʂƂ͌܂)

  o  tHAOhvZXꎞ~ɂ́F

       $ CTRL-Z

  ()

  o  ~ԂɂvZXobNOhɈڂɂ(̓WuƂ
     )F

       $ bg <job>

  o  WutHAOhɖ߂ɂ́F

       $ fg <job>

  o  WuI点ɂ́F

       $ kill <%job>

  8.3.  ēxAt@Cɂ

  t@CɂĂ̂ɏڂłB

  o  stdin, stdout, stderr: UNIX ɂāASẴVXeR|[lg
     ̓t@CƂĎ舵܂BR}hvÓA stdin (W
      - ʏ̓L[{[h)ƌĂԁut@Cv͂𓾂āAstdout (
     Wo - ʏ͉)ƌĂԁut@Cv֏o͂AG[bZ[W
      stderr (ʏ͉)ƌĂԁut@Cv֏o͂܂B

     <  > g΁Ao͂ʂȃt@CɃ_CNgł܂B
     ɁA>> ͏㏑Ƀt@CǋL܂B 2> ̓G[bZ[
     W( stderr )_CNg܂B2>&1  stderr  stdout Ƀ_C
     NgA1>&2  stdout  stderr Ƀ_CNg܂B/dev/null
     ̓ubNz[ƌĂ΂AɃ_CNgƁAǂȂ̂
     Ă܂܂B

  o  wildcards: '*' ͂قړłBp@F * ́ABt@C
     SẴt@CɃ}b`܂B.* ͑SẲBt@CɃ}b`
     B*.* ͕񒆂 . ܂ޕɃ}b`܂Bp*r ́upeterv
     upipervɃ}b`܂B*c* ́upickedvƁupeckvɃ}b`܂B
     u%v́u?vɂȂ܂(󒍁Fꕶ݂̂Ƀ}b`)BChJ[h
     đɁA[] ܂Bp@F[abc]*  a  b  c Ŏn܂镶
     Ƀ}b`܂B*[I-N,1,2,3] ͍Ōオ I, J, K, L, M, N, 1, 2, 3 
     It@CɃ}b`܂B

  o  mv ( RENAME ) ͕̃t@Cɑ΂Ďg܂B mv *.xxx *.yyy
     ͎vʂɓȂł傤B

  o  cp -i  mv -i ̓t@C㏑邱ƂxĂ܂B

  8.4.  v^[L[

  VMS ł悤ɁAv̓L[CO܂BvgR}
  h𔭍sꍇAv^w肵Ă\܂BF

       $ lpr file.txt          # this goes to the standard printer
       $ lpr -Plaser file.ps   # this goes to the printer named 'laser'

  v^L[߂ɁÂ悤ȃR}h܂B

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

  VXeǗ҂AłɊ̐ݒt@C - .xinitrc,
  .bash_profile, .inputrc ̂悤 - Ă邱Ƃł傤B
  ̃t@C͕ҏW\Ǝv܂B

  o   .bash_profile  .profile : OCƂɃVFǂݍ݂
     BLOGIN.COM ̂悤Ȃ̂łB

  o   .bash_logout: OAEg̎ɃVFǂݍ݂܂B LOGOUT.COM 
     悤Ȃ̂łB

  o   .bashrc: 񃍃OCVFs܂B

  o   .inputrc: L[̊tVF̓JX^}CY܂B

  Tv܂傤B͎gĂ .bash_profile ̈ꕔł(
  ȗĂ܂)B

  ______________________________________________________________________
  # $HOME/.bash_profile

  # sKvɃpXĒ`ȂƁB
  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"

  # ɗ֐

  inst() # JgfBNg .tar.gz A[JCuCXg[B
  {
    gzip -dc $1 | tar xvf -
  }
  cz() #  .zip A[JCu̓eꗗB
  {
    unzip -l $*
  }
  ctgz() # .tar.gz A[JCu̓eꗗB
  {
    for file in $* ; do
      gzip -dc ${file} | tar tf -
    done
  }
  tgz() # zip  .tgz A[JCu𐶐B
  {
    name=$1 ; tar -cvf $1 ; shift
    tar -rf ${name} $* ; gzip -S .tgz ${name}
  }
  ______________________________________________________________________

  āA .inputrc łB

  ______________________________________________________________________
  # $HOME/.inputrc
  # Last modified: 16 January 1997.
  #
  # ̃t@C bash œǂ܂AVFŎgL[̊t`̂łB
  # ȉł́AENDAHOMEADELETE ƃANZgL[͌ŒłB
  # ڂ man readline 䗗B

  "\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.  ɗvO

  10.1.  t@C̃uEY less

  ̃t@CuEU𖈓g͂łAgȂ悤ARc
  ܂傤BԍŏɁAless v[eLXgȊÖkt@
  CA[JCu\ł悤ɂȂĂ邱ƂVXeǗ҂ɊmF
  ĂĂB

  ŋ߂̃o[W TYPE ̂悤, less t@C𗼕ɃuEY
  ܂B܂AL[͂ɂ萔ނ̃R}h󂯕t܂Błɗ
  ̂́F

  o  ŏɁAq ΏI܂B

  o  h Ŋgwv\܂B

  o  g Ńt@C̐擪Ɉړ܂BG ̓t@C̖ւ̈ړłB
     +g ͔ԍŎw肵sւ̈ړ(Ⴆ΁A125g 125sֈړ)Al+%
     ͐lŎŃt@C𕪊sɈړ܂B

  o  /pattern ́upatternvOAn ͎Ƀ}b`镶T
     ܂B?pattern  N ͌łB

  o  m+ ݂͌̈ʒu}[N܂( ma)B'+ ̓}[Nʒu
     Wv܂B

  o  !command ̓VF̃R}hs܂B

  10.2.  Linux ł̕tԂɂobNAbv

  ߂ƂɁALinux ł͂܂t@C̃o[WԍT|[gĂ
  ܂񂪁Aʂ̕@ł̐邱Ƃł܂Bڂ̕@
   RCS ( Revision ControlSystem )gƂŁA͕ύXOt@C
  ۑĂƂł܂B RCS ́u RCS MINI-HOWTO vŉĂ
  ܂B( <http://sunsite.unc.edu/mdw/HOWTO/mini/RCS.html>) (󒍁FRCS
  MINI-HOWTO { <http://www.linux.or.jp/JF/JFdocs/RCS.html>͂)

  ڂ̕@́AtԂăobNAbv邱Ƃ̂łGfB^g
  łBemacs  jed Ȃ OK łBemacs ́A .emacs Ɏ̃R[hǉ
  ܂B

       (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 ȍ~̃o[Ẃ̕A
  <http://ibogeo.df.unibo.it/guido/slang/backups.sl>łpb`
  ĂΉ\ɂȂ܂B

  10.3.  A[JCuFtar  gzip

  UNIX ł́At@CkăA[JCuɔ[߂邱ƂLsȂĂ
  ܂Btar ̓t@CW߂āAA[JCu܂BVA[JCu
  F

       $ tar -cvf <archive_name.tar> <file> [file...]

  A[JCut@Coɂ́F

       $ tar -xpvf <archive_name.tar> [file...]

  A[JCu̓eꗗɂ́F

       $ tar -tf <archive_name.tar> | less

  fBXNXy[Xߖ񂷂邽߂ɁAcompress  gzip găt@C
  k܂B compress ͂͂⋌Ȃ̂Ŏgׂł܂B

       $ compress <file>
       $ gzip <file>

  ɂ .Z (compress) .gz (gzip) Ȃǂ̊gqt̃t@C
  ܂B̃vOł̓A[JCu͍ꂸAt@C͌
  Ɉk܂BLɂ́F

       $ compress -d <file.Z>
       $ gzip -d <file.gz>

  RMP.

  unarj, zip  unzip [eBeBȂǂgp\łBgq .tar.gz
   .tgz t@C( gzip ňkA tar ŃA[JCuɂ)
  ́AUNIX ł͂ȂʓIłB .tar.gz A[JCu̓eꗗ
  ́A

       $ tar -ztf <file.tar.gz> | less

  Ƃ܂B .tar.gz A[JCut@Coɂ́A

       $ tar -zxf <file.tar.gz>

  Ƃ܂B

  11.  ł̗

  UNIX ̊jƂȂACfÁAPȃR}hpCv⃊_CNgɂ
  āA{ɕGȍƂłsȂ悤ɂ邱ƂłBȉ̗
  䗗Bł݂ɂĂ̂ݐ܂傤B̂Ƃ
  ẮA܂ł̏͂ man y[WQlɂĂ݂ĂB

   : ls gƃt@C̈ꗗXN[āAʂĂ
  B

   F

       $ ls | less

   : P̃Xg܂񂾃t@C܂BtŃ\[gA
  ̂łB

  𓚁F

  $ cat myfile.txt | sort -r | lpr

   : f[^t@Cɓf[^܂ލs܂B
  l߂@͂܂B

  𓚁F

       $ sort datafile.dat | uniq > newfile.dat

   : umypaper.txtvumypaper.texvAɎÕt@C
  ̂łAǂɂ̂vo܂B@́H

  𓚁F

       $ find ~ -name "mypaper*"

   F find ̓fBNgc[(̗ł́A~ ȍ~)̑SẴt@C
  ꗗ邷֗ȃR}hłB-name gtB^[ďo
  邱Ƃł܂B

   : uentropyv܂񂾃t@CfBNgɂ܂B SEARCH
  R}ĥ悤ɂꂪǂ̃t@Cɂ邩T@͂܂H

  @F͂Â悤ɂ܂B

       $ grep -l 'entropy' *

   : ǂɁuentropyv܂񂾃eLXgt@CƎvł
  Aꂪǂ̂ȂĂt@Cm肽BVMS ł search entropy
  [...]*.*;* g܂Agrep ł̓TufBNgȉċAIɒT
  Ƃł܂Bl܂H

  𓚁F

       $ find . -exec grep -l "entropy" {} \; 2> /dev/null

  Ffind . ̓JgfBNgn߂āASẴt@Cꗗo
  ͂A -exec grep -l "entropy" ͊et@CΏۂɎs܂ ({} ɂ
  \)B\ ̓R}hI܂BRA̍\ʓ|Ɗ
  ł傤ˁB

  ɁÂ悤ȃXNvgt@CƗǂł傤B (󒍁F
   find . -type f |xargs grep 'entropy' ̂悤ɂĂ܂)
  ______________________________________________________________________
  #!/bin/sh
  # rgrep: ċAI grep
  if [ $# != 3 ]
  then
    echo "Usage: rgrep --switches 'pattern' 'directory'"
    exit 1
  fi
  find $3 -name "*" -exec grep $1 $2 {} \; 2> /dev/null
  ______________________________________________________________________

  F search ̂悤 grep  find Ƃgݍ킹΁A̐Eō
  g₷̂ɂȂƎv܂B

   : 2 s̃wb_[Ŏn܂f[^t@CAesɂ͕svȃX
  y[Xŋ؂ꂽ n ̃f[^܂Bes 2 Ԗڂ 5 Ԗڂ
  f[^~̂łAFortran ŃvOł傤
  H

   : A̕B

       $ awk 'NL > 2 {print $2, "\t", $5}' datafile.dat > newfile.dat

  FR}h awk ͎ۂ̓vOŁAf[^t@C 3 sڂ
  JnāAes 2 Ԗڂ 5 Ԗڂ^uŋ؂ăvg܂B awk
  wтȂ --- ̎Ԃߖł܂B

   : FTP TCg_E[h ls-lR.gz ̓e𒲂ׂBTu
  fBNgɁuv xxxx v̍s܂܂Ă܂Bxxxx ̓fBNg
  e KB Pʂ̃TCYŕ\̂łB xxxx ̏WvsȂ
  łB

  𓚁F

       $ zcat ls-lR.gz | awk ' $1 == "total" { i += $2 } END {print i}'

  Fzcat  .gz t@C̓eo͂Aawk ɃpCv܂Bawk 
  man y[WɒJɂ̂Ă܂ ;-)

  Ff[^t@C̒lvZ Fortran vO myprog 
  BS̃t@Cǂݍ܂Čʂo͂̂łAf[^t@C
  ł̂ʓ|łBVMS ł͒R}ht@CƎv
  ܂ALinux ł͂ǂ΂̂ł傤H

  : ZXNvgłł܂Bmyprog Ɂu mydata.dat v
  ǂ݁AʂWo( stdout )ɕ\悤ɂĂāÃXN
  vg܂B

  ______________________________________________________________________
  #!/bin/sh
  # myprog.sh: ̈قȂt@Cɑ΂ēR}hs܂B
  # gp@F myprog.sh *.dat
  for file in $*  # for all parameters (e.g. *.dat)
  do
    # t@C result.dat ɒǉĂ܂B
    echo -n "${file}:    " >> results.dat
    # ݂̈  mydata.dat ɃRs[āAmyprog s܂B
    # āAo͂ results.dat ɒǉ܂B
    cp ${file} mydata.dat ; myprog >> results.dat
  done
  ______________________________________________________________________

   : ̃eLXgt@ĆugeologyvSāugeophysicsvɒu
  ̂łAƂłȂ΂ȂȂ̂ł傤H

  :ÃVFXNvgĂB

  ______________________________________________________________________
  #!/bin/sh
  # $*  $1  $2 ɒu܂B
  # gp@Freplace "old-pattern" "new-pattern" file [file...]
  OLD=$1          # XNvg̍ŏ̃p[^
  NEW=$2          # 2 Ԗڂ̃p[^
  shift ; shift   # ŏ̓̃p[^̂ĂB̓t@CłB
  for file in $*  # p[^Ƃė^ꂽSẴt@CŃ[v܂B
  do
  #  OLD  NEW ɒuāAe|t@Cɕۑ܂B
    sed "s/$OLD/$NEW/g" ${file} > ${file}.new
  # e|t@CIWit@CɃl[܂B
    /bin/mv ${file}.new ${file}
  done
  ______________________________________________________________________

   : f[^t@CāA͔̒ȂłAŌ
   1 O̍s 2 O̍s폜ɂ A[...ƂłH

  : Am[BXNvgĂB

  ______________________________________________________________________
  #!/bin/sh
  # prune.sh  n-1Ԗڂ n-2 Ԗڂ̍st@C폜܂B
  # gp@F prune.sh file [file...]
  for file in $*   # SẴp[^Ń[v܂B
  do
    LINES=`wc -l $file | awk '{print $1}'`  # t@C̍sԍ
    LINES=`expr $LINES - 3`                 # LINES = LINES - 3
    head -n $LINES $file > $file.new        # ŏ KINES so͂܂B
    tail -n 1 $file >> $file.new            # ŏIs܂B
  done
  ______________________________________________________________________

  ̗ႪȂ̋܂悤...

  12.  Ȃł͂Ă䂯Ȃ錍

  o  R}h̕⊮FR}h𔭍sĂr <TAB> ΁AR}h
     C̕⊮Ă܂BႦ΁Aless this_is_a_long_name ƃ^C
     vȂ΂ȂȂƂAless thi<TAB> Ƒłŏ\ł(P
     Ŏn܂t@CɂȂAB邽߂̕
     Ă)B

  o  obNXN[FSHIFT--Page Up (DF̃L[)΁Ay[W
     obNXN[܂BȂ PC ̃rfIeʂɂ܂
     B

  o  ʂ̃ZbgFmore  cat ŃoCit@CJĂ܂A
     ʏ̓S~炯̏ԂɂȂł傤B𒼂ɂ́A reset A
      echo CTRL-V ESC c RETURN ʂɃ^CvĂB

  o  eLXg̒tFR\[[hȂ玟䗗B X 
     ́Axterm EChEŃNbNƃhbOɂeLXgIāA
     ^̃{^( 2 {^}EXȂA̃{^𓯎)Ē
     t܂B

  o  }EX̎gpFR\[p̃}EXhCo gpm CXg[
     邩AVXeǗ҂ɐq˂ĂBNbNƃhbOɂe
     LXgIAE{^NbNăeLXg𒣂t܂B
     ͈قȂ VC Ԃł삵܂B

  13.  Linux  VMS ̃e[vǂނɂ

  (̏͂ Mike Miller ɂďꂽ̂ł)

  13.1.  ͂߂

  XAVMS }Vŏ񂾃e[v(邢́AVMS  *nix VXeœ
  ݎ\Ȃ悤ɍ쐬)ǂݍ݂Ƃł傤BT
  āAꂪ DECFILES11A e[vȂ܂ȒPłB

  Linux mini-HOWTO ̈ꕔƂĂǂ񂾂Ƃ邩m܂񂪁A
  ł̏͂ǂ *nix VXełKp\ƐM܂ - 
  ́ALinuxAHPA Sun  DEC *nix VXeōsȂ܂Bm
  ĂȃvbgtH[ˑ_́AقȂVXeɃfoCXႤ
  ƂƁAfoCXw肷 mt ̃IvVł(Ⴆ΁ALinux ł mt
  -f AHPUX 9Ȃ mt -t)B

  x -  Exabyte 8mm SCSI e[vû݂Ŏ܂B̃tH[
  }bg`(܂ 9 gbN͂̂)œǂݍނƂłA
  ɒm点ĂBɉĂ܂B

  13.2.  b

  VMS ́u copy vR}hō쐬ꂽe[v(邢́AƂ copy 
  쐬ꂽ̂Ɠ悤ɍꂽ)ǂނƂɁAۂ̃f[^t@C
  Ƀe[vɂOt@C - wb_[Af[^AgC[̂
  mĂKv܂Bwb_[ƃgC[ VMS ɂƂ
  ̃t@Ci[̂Ɋ֌W܂Bf[^́Af[^
  ƂłB߂߂̃t@C dd R}hŃe[voƂ
  ܂Bmt R}hŃe[v̈ʒuɈړ邱Ƃł
  B

  FAăt@C܂Ă VMS ̃e[v܂Bŏ
  ́AVMS VXeł̃IWi̖O ce66-2.evt  ce66-3.evt 
  Be[vx c66a2 łB

  ̃R}hsȂA

       > 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

  U̃t@C - header1, data1, trailer1, header2, data2  trailer2
  o܂Bł̍\́Aif="̓t@C", bs="ubNTCY"
  āAof="o̓t@C"łBTAPE ͂Ȃ̃e[vȗûɉ
  ĕύX邱Ƃł傤B - Ⴆ΁ALinux ł̈Ԗڂ SCSI e[v
   /dev/nts0 łB

  ŏ̃t@CȂ 2 Ԗڂ̃t@Cǂ݂ƂɁAwb_[ɂ
  Ă͋Cɂɂ悭āAɃIWĩt@Cg΁A
  ̂悤ɂ܂B

       > mt -f $TAPE fsf 4
       > dd if=$TAPE bs=16k of=ce66-2.evt
       > mt -f $TAPE fsf 1

  4 ͍ŏ̃t@C 3 ̃t@CƁÃwb_̈XLbv
  邽߂ɂ邱ƂɒӂĂBڂ mt  2 Ԗڂ̃t@C
  gC[XLbvāÃt@C - 3 Ԗڂ VMS wb_[ ̐擪
  Ƀe[v̈ʒuڂ܂Bmt gāA( bsf )ɃXLbvA
  ߂ ( rewind )A߂ăA[h( offline, rewoffl )邱
  Ƃ܂ł܂B

  13.3.  ڍ

  wb_[ƃgC[t@ĆAubNTCYȂǂ̃t@Cۑ
  邽߂ VMS Ŏg啶 ASCII f[^܂񂾂̂łB
  ͂܂t@C܂łAŃt@Cǂݍ񂾂Ãt@
  CT[`XNvĝɕ֗łBe[v{[̈Ԗ
  ̃wb_[́Aȍ~̃wb_[Ƃ͂킸ɈقȂĂ܂B

  L̗ header1 ɑe[v̍ŏ̃t@ĆA߂̂S
  uVOL1vŎn܂ǍɃ{[܂Bł́Aheader1 
  VOL1C66A2 Ŏn܂܂BŏIAXy[X܂B̌
  ɁAt@Cwb_[ł邱Ƃu HDR1 v܂BHDR1 ɑ
   VMS t@CłBł́AHDR1CE66-2.EVT łB̃tB[
  h́AĂу{[ƂȂ܂B

  e[v̍ŏ̃t@CȊÕt@Cɂ́Aꓪ VOL1 tB[h͂
  ܂B VOL1 tB[hȂƂ΁Awb_[̍\͍ŏ
  t@CƂȊÕt@CłBɕ֗ȃtB[h͂VԖڂ
  tB[hŁAu DECFILES11A vŏIł傤B DEC Files11A K
  iɓKĂe[vɂ́ÃtB[h͂łB
            tB[h ŏ̃wb_[          ̃wb_[
            =========   ==================     ==================
                1       VOL1 + {[    HDR1 + t@C
                2       3HDR1 + t@C     {[
                3       {[

                6                              ...DECFILES11A
                7      ...DECFILES11A

  wb_[gC[̊SȃtH[}bg̏ڍׂɂẮADEC FILES11A
  hLg䗗(IWOC̕ǂ̏ɂ܂ - g߂
   VMS M҂ɐq˂Ă :-)B

  13.4.  ubNTCYɂẲ

  ł́A16k ̃ubNTCYg܂B*nix VXeł́AfBXN
  ̃t@CɊ֘AÂubNTCY͂܂񂪁AVMS ł̊et@C
  ɂ́AŗL̃ubNTCY܂B́Ae[vǂނƂ
  Ȃ΁AubNTCÝALinux Eɂđ債ł͂Ȃ
  Ӗ܂BubNTCYZoăe[vǂނƂ
  ΁Amt -f $TAPE setblk 0 gāAn[hEFAubNTCYݒ肷
  邱Ƃł܂Bsetblk IvV̐mȌ`(ƁAgp\ǂ)
   mt ̃o[WƁAȂgp *nix ̎ނɈ˂܂B

  ( setblk ɂĎwEĂꂽ Wojtek Skulski Ɋ (
  <mailto:skulski@nsrlc6.nsrl.rochester.edu>))

  14.  I

  14.1.  Copyright

  Unless otherwise stated, Linux HOWTO documents are copyrighted by
  their respective authors. Linux HOWTO documents may be reproduced and
  distributed in whole or in part, in any medium physical or electronic,
  as long as this copyright notice is retained on all copies. Commercial
  redistribution is allowed and encouraged; however, the author would
  like to be notified of any such distributions.

  ɒfȂALinux HOWTO hLg͂ꂼ̒҂̒앨
  BLinux HOWTO hLǵASẴRs[ɂ copyright ێ
  ĂAǂ̂悤ȕI邢͓dqIȃfBAɂĂAS
  邢͂̈ꕔ𕡐Azz邱Ƃł܂Bp̍Ĕzzɂ
  Ă⏧Ă܂Â悤ȂȂzzɊւĂA
  ͒ʒm邱Ƃ]ł܂B

  All translations, derivative works, or aggregate works incorporating
  any Linux HOWTO documents must be covered under this copyright notice.
  That is, you may not produce a derivative work from a HOWTO and impose
  additional restrictions on its distribution. Exceptions to these rules
  may be granted under certain conditions; please contact the Linux
  HOWTO coordinator at the address given below.

  SĂ̖|AhIȒ앨A邢͂ꂩ Linux HOWTO ̓e
  ďWIȒ앨͂ copyright ̉ŕی삳Kv
  ܂B܂Aꂩ HOWTO Ƃɂ앨Ă̔zz
  ǉĂ͂܂B̉ł́A̋Kɑ΂O
  F߂ꍇ܂BL̃AhX Linux HOWTO ̃R[fB
  l[^[ɘAĂB
  In short, we wish to promote dissemination of this information through
  as many channels as possible. However, we do wish to retain copyright
  on the HOWTO documents, and would like to be notified of any plans to
  redistribute the HOWTOs.

  vɁA͉\Ȍ葽̌oHʂĂ̏̕y𑣐i
  Ƃ]ł܂BA HOWTO ̒̕쌠ێ邱
  Ƃ]ł܂A܂ HOWTO ̕ĔzzǂȌv
  ɒm点Ă΍KrɎv܂B

  If you have questions, please contact Tim Bynum, the Linux HOWTO
  coordinator, at  <mailto:linux-howto@sunsite.unc.edu> via email.

  ^₪΁ALinux HOWTO ̃R[fBl[^ł Tim Bynum
  <mailto:linux-howto@sunsite.unc.edu> ܂ e-mail ŘAĂB

  14.2.  Disclaimer

  This work was written following the experience we had at the Settore
  di Geofisica of the Universita' di Bologna (Italy), where a VAX 4000
  has been superseded and replaced by Linux-based Pentium PCs. Most of
  my colleagues are VMS users, and some of them have switched to Linux.

  ̎d́ASettore di Geofisica of the Universita' di Bologna (Italy)
  ɂ VAX 4000  Linux x[X Pentium PC Ƀv[Xo
  Âď̂łB̓̂قƂǂ VMS [UŁÂ
  l Linux ɓ]܂B

  ``From VMS to Linux HOWTO'' was written by Guido Gonzato,
  <mailto:guido ``at'' ibogeo.df.unibo.it>, and Mike Miller,
  <mailto:miller5@uiuc.edu> who contributed the section on reading VMS
  tapes.  Many thanks to my colleagues and friends who helped me define
  the needs and habits of the average VMS user, especially to Dr. Warner
  Marzocchi.

  u From VMS to Linux HOWTO v Guido Gonzato
  <mailto:guido@ibogeo.df.unibo.it> ƁAMike Miller
  <mailto:miller5@uiuc.edu> (ނ VMS ̃e[vǂނɂ ̏͂Ŋ^
  )ɂ菑ꂽ̂łB̓łFl Dr. Warner Marzocchi
  ɑȂ銴ӂ̔OBނ͕ϓI VMS [U߂Ă
  AĂ܂ȂƂɂĎɃAhoCXĂ܂B

  Please help me improve this HOWTO. I'm not a VMS expert and never will
  be, so your suggestions and bug reports are more than welcome.

   HOWTO P菕ĂB Ƃ VMS ̃GLX
  p[gł͂Ȃ̂ŁAȂ̒ĂoO|[g}܂B

  Enjoy,

  Guido =8-)

  14.3.  {Ŏӎ

  |ɂĉL̊F񂩂AhoCXRg܂B
  肪Ƃ܂B

  앐r
  ꂳ
  JG
  L
  鐳
  R@gg
  Akihiro Koda
  Xۉp
  eJ
  C

