708 ・付録 C dir 万 512 Aug 512 Aug 512 Jan 27 21 : 59 pub 1024 Feb 6 22 : IO uploads FTP チュートリアルとサイトリスト この 2 つのコマンドは、ファイルをリストします ( ここで、召はリスト 3 章 したい特定のファイル名を指定する任意の引数です ) 。両者の違いは、 ls この時点で dir をタイプすると、現在いる場所のディレクトリリストを見ること が指定されないと、 FTP は利用可能なコマンドのすべてをリストアップします。 は、指定した FTP コマンド ( たとえば、 ls や (d) の解説を表示します。コマンド help 00 襯襯の 2 次のコマンド を使用します。 cdup クトリ ) に移るには、 ディレクトリに移ります。親ディレクトリ ( カレントディレクトリのすぐ上のディレ は (UNIX や MS-DOS システムの cd コマンドとまったく同じように ) 、指定した cd 市簷 似ています。 の出力は、「 3.4.2 ファイルをリストする」で解説した UNIX コマンド「 ls ー 1 」に ルのサイズ、修正日付などの情報を付加して ) を出力するという点にあります。 dir が通常は短いリストを出力し、 dir がより長いリスト ( すなわち、ファイ 200 PORT command ftp> dir ができます。 150 Opening ASCI 工 mode data connection for /bin/ls. successful. total 1557 dr—xr—xr—x drwxr—xr—x drwxr—xr—x drwxr—xr—x drwxrwx—wx 2 2 2 19 4 root root root root root wheel wheel wheel wheel ftp-admi 15 15 25 15 : 55 bin 15 : 58 dev 17 : 55 etc 1024 Jan
618 ・ 7 章ネットワークと通信 Zucchinis have the following nice features : く OI> く li 〉 They're green. く li > They're crunchy. く li 〉 They taste great in salads. く / OI> Mosaic によってフォーマットされると、 されます。 図 7 ー 13 Mosaic によって表示されたリスト このリストは図ト 1 3 に示したように表示 Zucchinis have the 01103ing nice 1 . The リ・れ 2 green. 2 、 Theg 're CPLtnchy . 3. Theu taste great in s ョ 1 ョ ds. 番号なしリストは、く ol> の代わりにく ul> を使って作成できます。番号なしリストの 項目は、番号の代わりに項目記号でマークされます。 リストは入れ子にすることもできます。番号なしリストが人れ子になっている場合、 字下げスタイルを自由に使用してかまいません。 字下げしてあるのは、単にソースを読みやすくするためです。自分が適当と考える く / ul 〉 く /ul> く /ul> く li 〉 Yet another level of nesting. く ul> く li 〉 Another item. く li 〉 The first nested item. く ul> く li 〉 The second item. く li 〉 The first item. く ul> Here is an example Of a nested list. は、このリストを作成するために使用されたものです。 図 7 ー 14 のように、通常は各レベルで項目記号の形が変化します。次の HTML ソース
596 ・ 7 章ネットワークと通信 ンデックスがリストアップされています。これには、 WWW 、 GOPher 、 WAIS 、 FTP サイトが含まれます。「 Meta-Index 」に対する URL は次のとおりです。 http : //www.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html これは、 NCSA Mosaic の Navigate メニューの項目「 lnternet Resources Meta- lndex 」からもアクセスすることができます。 新しい WWW サイトの管理者は、そこが提供するサービスの案内を NCSA に送 るよう促されます。これらの案内は、 http : //www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/whats-new.html にある NCSA Mosaic の「 What's New 」ページの中に掲示されます。「 What's New 」 ページは、 world Wide Web の新聞と考えることができます。これは、新しいサー ビスのリストでほとんど毎日更新されます。「 What's New 」リストは、 http : //cui www.unige.ch/w3catalog にあるジュネープ大学 CUI (Centre Universitaire d'lnformatique) の「 W3 Cata- log 」に保管されます。 これは、「 What's New 」リストを検索するために使用されるキーワードまたは正 規表現を入力することができるフォームを使ったページです。これを使用すれば、検 索条件に一致した案内のリストが表示されます。 もう 1 つ役に立つのが、「 world Wide Web Worm 」です。これは、 URL とドキ ュメントのタイトルを蓄積して、 Web を探し回るロポットの 1 つです。 Worm が集 めた Web サイトのリストを検索することができます。次の URL を介して、 Worm にアクセスすることができます。 http : //www.cs.colorado.edu/home/mcbryan/WWWW.html Worm の実行には膨大な処理が必要なため、そのデータベースは 2 、 3 か月に一度 しか更新されないという点に注意してください。 ほかにも、「 world Wide Web Worm 」に性質の似た WWW ロポットやスパイ ダーがあります。次の URL には、これらのリストがあります。
C. 7 Linux FTP サイトリスト・ 713 に送ります。すると、 ftpmail コマンドのリストとシステムの使い方に関する簡単な 説明書を送り返してきます。 たとえば、 sunsite.unc.edu 上にある Linux ファイルのリストを入手するには、上 己のアドレスに次のようなテキストを含む電子メールを送ります。 open sunsite.unc.edu cd /pub/Linux dir quit どの FTP アーカイプサイトに接続する場合でも、 sunsite の ftpmail サービスを 使用できます。次節に、 Linux FTP アーカイプのリストを掲載します。 C. 7 Linux FTP サイトリスト 表 C ー 1 は、 Linux ソフトウェアを収録している代表的な FTP サイトの一覧です。 そのほか多くのミラーサイトが、あります。したがって、このリスト上以外のたくさ んのサイトで、 Linux に出会うことがよくあります。 一三ロ 表 C ー 1 Linux FTP サイト サイト名 tsx-11.mit.edu sunsite.unc.edu nic. funet. fi ftp.mcc.ac.uk fgb1. fgb. mw. tu-muenchen. de ftp.informatik.tu-muenchen.de ftp.dfv.rwth-aachen.de ftp.informatik.rwth-aachen.de ftp.ibp.fr kirk. bu. oz. au ftp.uu.net wuarchive.wustl.edu ftp.win.tue.nl ftp.stack.urc.tue.nl ftp.ibr.cs.tu-bs.de ftp.denet.dk 旧アドレス ディレクトリ /pub/linux 18.172.1.2 /pub/Linux 152.2.22.81 /pub/OS/Linux 128.214.6.100 /pub/linux 150.88.205 ユ 2 /pub/linux 129 ユ 87.200.1 /pub/Linux 151.159. O. 110 /pub/linux 157.226.4.105 /pub/Linux 157.226.112.172 /pub/linux 152.227.60.2 /pub/OS/Linux 151.244.1.1 /systems/unix/linux 157.59 ュ .9 128.252.155.4 /systems/linux /pub/linux 151.155.70. IOO /pub/linux 151 ユ 55.2.71 /pub/os/linux 154.169.54.15 /pub/OS/Iinux 129 ユ 42.6.74
200 ・ 4 章 システム運用の基本 tar 々〃 ct あ 0 があ / ″ . こで、々〃は実行すべき操作を表す 1 文字、。カ撝はその操作に対するオプ ション ( 1 文字 ) のリスト、はアーカイプにパックまたはアンパックするファイル のリストです ( 女 / 初 2 との励撝の間に空白が入らないことに注意してください ) 。 れ ct 2 は以下のどれかです。 新しいアーカイプを作成する。 ファイルをアーカイプから展開する。 アーカイプ中のファイルをファイルシステム中のものと比較する。 アーカイプ中のファイルをより新しいものに更新する。 アーカイプの末尾にファイルを追加する。 アーカイプの内容をリスト表示する。 展開時に既存のファイルを保存する。すなわち、 tar ファイルの中に含まれる既存 アーカイプをパックまたはアンパックするときに、詳細な情報を印刷する。 もっとも一般的なオプションは、以下のとおりです。 れるものは、 c 、 x 、 t です。 これらのオプションのほとんどはめったに使われないでしよう。もっともよく使わ 読み書きする tar ファイルが〃襯召であることを指定する。 ・ f filename のファイルを上書きしない。
目 ロ . 3.3 ユ 3.4 D. 3.5 D. 9 D. 8 D. 7 D. 6 D. 5. 1 D. 5 D. 4 メーリングリスト ノヾグレポート そのほか 入手方法 D. 4. 1 anonymous ftD D. 4.2 CD-ROM ティスクセットの内容 D. 5. 2 D. 5. 3 D. 5.4 D. 5.5 D. 5.6 ロ . 5. 7 ロ . 5. 8 ロ . 5.9 D. 5. 悧 D. 5. Ⅱ D. 5. 1 2 概略 base ティスクセット gs ティスクセット mule ティスクセット 00C ティスクセット wnn ティスクセット canna ティスクセット sJ3 ティスクセット net ディスクセット Dtex ティスクセット font ティスクセット xclt ティスクセット 今後の予定 最後に ご協力いただいた方々 LDP のドキュメントリスト U F の作者 / 翻訳者リスト UF のドキュメントリスト JF-INDEX ユ 9.3 D. 9. 2 D. 9. 1 次・ xxix 716 717 717 718 718 719 72 ロ 721 7 円 722 722 723 723 723 723 724 724 725 726 726 726 727 733 736
A. 2 Linux Documentation Project マニュアノレ・ 699 Linux ソフトウェアの完全なリストをまとめ上げるのは、ほとんど不可能でしよう。 しかし、これには人気の高い Linux ソフトウェアパッケージがほとんど含まれてい ます。特定のアプリケーションを探す場合は、まず LSM を調べてみましよう。これ は Jeff Kopmanis 氏 (jeffk@msen.com/ が維持管理しています。 ・ Linux HOWTO lndex いわゆる HOWTO ドキュメント集です。それぞれが、 Linux システムの各部分に ついて詳細に記述したドキュメントです。これらは Matt Welsh 氏 (mdw@sunsite. unc.edu/ が維持管理しています。 HOWTO lndex は、利用可能な HOWTO ドキ ュメントをリストアップしたものです。 HOWTO の部分的なリストについては、「文 献目録」を参照してください。 ・そのほかのオンラインドキュメント docs と付いた Linux FTP サイトをプラウジングすると、 こで紹介したもの以 外の多数のドキュメントがみつかるはずです。たとえば、ほかの FAQ 、興味深いニ ュース、また重要な情報などが提供されています。こうした雑多な情報をここで分類 するのは困難です。前述のリストの中に探している情報がなければ、付録 C で紹介 する Linux アーカイプサイトを覗いてみてください。 A. 2 Linux Documentation P 「 oJect マニュアル Linux Documentation project は、マニュアルページを含めて、 Linux に関する マニュアルや関連ドキュメントを制作しています。これらのマニュアル類は更新中で、 修正や、更新の手助けは大いに歓迎されます。 LDP についての質問そのほかは、 Matt Welsh 氏 (mdw@sunsite.unc.edu/ に連絡してください。 これらのマニュアル類は、 sunsite.unc.edu のディレクトリ /pub/Linux/docs / LDP をはじめ、多くの Linux アーカイプサイトから anonymous FTP によって入 手できます。いくっかの出版社から、これらのマニュアル類の印刷物を販売していま す。最寄りの書店で LDP マニュアルがみつかるかもしれません。マニュアル類の完 全なリストは「文献目録」を参照してください。
4.8 バックアップを取る・ 2 19 たすべてのファイルを探すよう指示します。 \ ! -type d は ( オプションで ) 少々複 雑ですが、不必要なものを出力しないようにします。この場合は、結果として生ずる ファイルリストからディレクトリを除外します。 ! は否定演算子 ( ここでは「タイプ が d のファイルを除外する」という意味です ) ですが、それの前にバックスラッシ ュを置かなければいけません。さもないと、シェルがそれを特殊文字として解釈して しまうからです。 -print は、この検索で一致したすべてのファイル名を標準出力に こでは、あとで使用するために、標準出力をファイルにリダイレクト 表示します。 しています。 同様に、前の週の間に変更のあったすべてのファイルを探すには、次のコマンドを 使用します。 find / -mtime ー 7 -print 〉 /tmp/filelist. weekly このようにして find コマンドを使用すると、すべてのマウントされた ファイルシステムが探索されるという点に注意してください。たとえば、 マウントされた CD-ROM があるなら、 find コマンドは CD-ROM 上の すべてのファイルも調べようとします ( それらをバックアップしようなどとは思わな いでしようが ) 。 -prune オプションを付けると、探索範囲から指定したディレクト リを除外することができます。あるいは、最初の引数を / 以外のものにして、何度も find を使用すれば同様のことができます。 find の詳細については、マニュアルペー ジを参照してください。 これで、バックアップすべきファイルのリストができました。前に tar を使用し たとき、コマンドライン上にアーカイプすべきファイルを指定しました。しかし、 うしたファイルのリストは 1 行のコマンドラインに書くには長過ぎる場合があります ( 1 行のコマンドラインは、通常 2048 文字に限られています ) 。そのため、リストを ファイルに入れておく方法が用意されています。 tar で -T オプションを使用すると、バックアップすべきファイル一覧のファイル を指定することができます。このオプションを使用するには、すべてのオプションに ダッシュを付けた書き方をしなければいけません。たとえば、 /tmp/filelist. daily にリストアップされたファイルををデバイス /dev/rftO にバックアップするには、 次のコマンドを使用します。 find(l)
190 ・ 4 章 システム運用の基本 rutabaga% newgrp b020 Password : password { 0 て group bozo rutabaga% bozo というグループ ID で新しいシェルが動き出します。加 ss ル 0 フィールドが 空白または最初の文字がアスタリスクであるときは、そのグループに対して newgrp を試みたとしても、「 permission denied ( 使用不可 ) 」というエラーメッセージを 受け取るだけでしよう。 しかし、 group ファイルの加 ss ル 0 フィールドはめったに使用されず、実際には 必要ではありません ( 実際、ほとんどのシステムでは、グループに対するパスワード を設定するツールを用意していません。 /etc/passwd のダミーユーザに対して、 passwd コマンドを使用してパスワードを設定し、暗号化されたパスワードフィール ドを / etc / group にコピーすることができます ) 。その代わり、単にユーザ名を付加 グループ用の襯夜 72 わグ s フィールドに含めることによって、ユーザを複数のグループ のメンバーにすることができます。上の例でユーザ linus と mdw は、 bozo グルー プのメンバーであるのと同時に、 /etc/passwd ファイルで割り当てられたグループ のメンバーでもあります。 linus を megabozo グループに加えたいならば、上の例 の最後の行を次のように変更します。 megabozo : * : 52 : kibo,linus groups コマンドを使用すると、 rutabaga% groups users bOZO どのグループに所属しているかがわかります。 groups の引数としてユーザ名のリストを与えると、そのリストの中の各ューザが 所属しているグループがリストアップされます。 ログインしたときは、 /etc/passwd で与えられたグループ ID と、 /etc/group に リストされた付加グループが自動的に割り当てられます。これは、グループのリスト でセットされる ) があなたに適用されます ( ただし、あなたがオーナーである場合を す。この場合、これらのファイルに対するグループ使用許可ビット に含まれるグループ ID で、システム上のファイルにアクセスできることを意味しま (chmod g 十 ..
6.3 Perl を吏用する・ 479 使用されているキーの全リストを返します。この場合は、ユーザ名のリストです。 sort 関数は、 keys が返したリストをソートします。したがって、ユーザ名のソートされ たリストを、各ューザ名を変数 $user に代入しながらループすることになります。 16 行目と 17 行目は、 60 分を超える場合の修正を行っているだけです。つまり、 のユーザの用 inutes ェントリーに含まれている全時間数を決定し、その値を hours に加算しています。 int 関数は引数の整数部分を返します ( もうおわかりのように ここで int を使用する Perl は浮動小数点数も処理することができます。そのため、 必要があるのです ) 。 最後に 19 ~ 22 行目では、各ューザの全ログイン時間数とログイン回数を印刷して います。 print 関数は、同じ名前の awk 関数と同じように、引数を印刷するだけで す。 19 行目と 22 行目にあるように、 print 文の中でも変数の評価が行われるという 点に注意してください。しかし、きれいにテキストをフォーマットしたければ、 printf 関数 (C とまったく同じもの ) を使用する必要があります。この場合は、 hours と m ⅲ utes の値の最小の出力幅を 2 文字に設定し、左側に余白がある場合には O を埋 めたいと思っています。これを行うには、 21 行目の printf コマンドを使用します。 このスクリプトがファイル logintime に保存されているとすると、次のようにし て実行することができます。 papaya$ last ー logintime User johnsonm, tOtal login time OI : 07, tOtal logins 11. User kibO, tOtal login time OO : 42 , tOtal logins 5. User linus, tOtal login time 98 : 50, tOtal logins 208. User mdw, tOtal login time 155 : 03, tOtal logins 290. papaya$ もちろん、この例は Perl のチュートリアルとしてはあまりよいものではありませ ん。しかし、これによって、 perl でどのようなことができるのかが、おばろげなが らもわかるはずです。もっと深く知るためには、優れた Perl 本の中から一冊を読む ようお勧めします。 6.3.2 もっと進んだ機能 前の例では、プログラムの細かい動きを追うことによって、もっともよく使われる perl の機能を紹介しました。もっとたくさんのよく知られている機能やあまり知ら