ファイル名 - みる会図書館


検索対象: UNIX MAGAZINE 2001年9月号
212件見つかりました。

1. UNIX MAGAZINE 2001年9月号

工 PureFTPd おおっかまさひと の 3 FTP&いうもの UNIX MAGAZINE 2001.9 ンテンツ中幻幻こ使われるぐらいだろう。 ができるという点で ISP の WWW サーバーなどへのコ ることを目的とした anonymous FTP サーバーや、認証 れなくなっている。イ芋定多数に多量のファイルを提供す 性が悪いなどの古くさいところがあるので、しだいに使わ が言気 t された日にのこともあり、ファイアウォールとの相 コルは、 FTP ではなく HTTP だろう。 FTP は、それ 現在、ファイル配布にもっともよく使われているプロト は 1985 年 10 月 1 日である。 現在の FTP の標準はこれを見直した RFC959 で、公開 を利用する現行の形式の FTP を初めて定義したものだ。 よって定義されたものがもとになっている。これは、 TCP 現在の FTP は、 1980 年 6 月 1 日公開の RFC765 に 歳上だ。 定義された。公開は 1973 年 2 月 16 日で、やはり私より 414 、 RFC430 を経て、 FTP は公式に RFC454 として 送プロトコルか立義されている。その後 RFC385 、 RFC ( インターネットのもとになったもの ) でのホスト間の転 1972 年 7 月 8 日の RFC354 になって、 ARPANET い時代のものである。 な話だが、私より歳上だ ーまでは、 TCP/IP すらな には、すでにその仕様らしきものカ咄てきている。個人的 1971 年 4 月 10 日である。同じ年に公開された RFC172 col 」に最初にその名か現れる。タイムスタンプはなんと だ。 RFC をみると、 RFC114 の「 File Transfer Proto- ん古い。なんといってもインターネットの誕生より古いの FTP というプロトコルとソフトウェアの歴史はたいへ 去も丘は HTTP を使ってファイルを操作する WebDAV といったプロトコルか策定され、その実装も出てきてい る。コンテンツのアップロードなどにはこちらがおもに使 われることになるだろう。 FTP がその役目を終えるのも、 そう遠い未来ではないようだ。 このような状況て新たに開発される FTP ソフトウェア は少ないかと言われれは、けしてそんなことはない。今回 は、そのなかでもとくに新しい FTP サーバーを紹介する。 PureFTPd?K 今回紹介するのは、たいへんシンプルでコンパクトな FTP サーバー PureFTPd である。現在も活発に開発 が進められているごく新しい FTP サーバーだ。 setfs- uid(2)l などをもつ山も丘の Linux 向けに書かれているが、 *BSD などでも動作する。以下のような曷緻をもってい ・ ls を内蔵 ・ chroot オ幾育皀 ・帯域制御腰能 ・バーチャルホスト機能 ・ IPv6 に対応 ・さまざまな認証方式 (LDAP 、 PAM) に対応 FTP サーバーのデファクト・スタンダードの wu-ftpd や、丘人気のある ProFTPD にくらベオ L ばいくぶんシ ンフ。ルだが、定がたいへん簡単なうえに咼速、咼機能で ある。まさにこの連載にふさわしい ( ? ) FTP サーバーと 1 ファイルシステムにアクセスする際の UID をセットするシステムコー る。 67

2. UNIX MAGAZINE 2001年9月号

連載 / シェルの魔術ー 3 ルート・ディレクトリに移動しそうですが、そうはなりません。 きっと、頻繁にホーム・ディレクトリに移動けるので、このよ うなイ」になったのでしよう。 ls コマンドも、ディレクトリを 指定しないとルート・ディレクトリの内容か表示されそうです が、実際にはそうならないのはすでに説明したとおりです。 こまで、、、ファイルとは何か " についてみてきました。 UNIX では、ファイルを使って作業することが頻繁にあ ります。そのため、設定ファイルやこれから編集するファ イルを指定してコマンドを実行することがおのすと多くな ります。もちろん、指定するファイルが 1 つや 2 つなら、 上で説明したように絶対パス名や相対パス名をそのまま打 ち込んでもかまいません。でも、ファイルが 10 個や 20 個になった場合、いちいち打ち込んでいたら大変ですね。 そこで、シェルの出番です。シェルは、このようなファ イルの指定を簡単にするためのさまざまなイ冓を備えてい ます。その 1 つに、パス名の展開があります。これは、パ ス名をそのまま指定する代わりに、さまざまな記号を交え ながら指定するというものです。シェルはこれらの記号を みつけると、あるルールに従ってパス名に展開してくれる のです。 Bourne シェルでは、 * 、 ? 、 [ ] 、 ~ の 4 不鶤頁 ( 3 文字 と 1 緲の記号を使うことができます。これらの記号は、 Bourne シェル以タ P ) 多くのシェルでも、多少の違いはあ りますがほは 1 司様に使うことができます。 パス名の展開 アスタリスクの展開 * ( アスタリスク ) は、どのような文字列とも一致しま す。つまり、アスタリスクをなんらかの文字列て置き換え たとき、一致するようなすべてのファイル名に該当しま 、、 1 * " は、、にから始まるすべてのファイル す。たとえは、 名に置き換えられます。つまり、アスタリスクの部分はど のような文字列でもいいわけです。 $ ls 1 * 1 ink . 1 1 ink . 2 1 ink . 3 また、アスタリスクは、、何もない " という文字列にも一 、、 1 " を途中に含むファイル名を指定 致します。たとえば、 しようと思って以下のように実行したとします。 120 $ ls * 1 * link . 1 li Ⅱ k . 2 link . 3 symlink. 1 ほら、、、 1 " の前に何もない、つまり、、にか、先頭 ( だけ ) にあるファイル名にも一致したでしよう ? アスタリスクが任意の文字列と一致するということは、 アスタリスクを単独で使うと、ワーキング・ディレクトリ にあるすべてのファイル名に置き換えられそうです。ワー キング・ディレクトリには、上の 4 つのファイル名のほ . と自分自身 . も登録されて かに、親ディレクトリ いるはすです。ところか次の例をみると・・ $ ls —d * link . 1 link . 2 1 ink . 3 symlink. 1 には一致していないよう おや、あるはすの .. と です。しつは、 Bourne シェルのアスタリスク展開は、 ( ピリオド ) で始まるファイル名には一致しない、と いうルールがあります。このようなファイル名に一致さ せるためには、明勺にピリオドを指定しなければなりま $ ls せん。 うまく . に一致しましたね。でも今度は、ピ リオドから始まらないファイル名には一致しなくなってし まいました。すべてのファイル名に一致させるためには、 ピリオドから始まるファイル名とそれ以外のファイル名を 別々に指定する必要があります。 $ ls —d link . 3 link . 1 symlink ・ 1 link . 2 ようやく、ワーキング・ディレクトリのすべてのファイ ル名を指定することができました。 MS-DOS や Windows のコマンド・プロンプトに置れ ていると、すべてのファイル名を表すために *. * と指定したく なるかもしれません。しかし、 UNIX ではファイル名中のピリ オドはただの文字なので、 *. * は、どこかにピリオドを 1 つ以 上含んだファイル名 " を表すことになってしまいます ( ただし、 UNIX MAGAZINE 2001.9

3. UNIX MAGAZINE 2001年9月号

特集 UN ー X の基礎知識 0 デイタとして機能できす、 ex モードて起動していること 2. 頑張って ex て編集 イプを正しく設定する 1. 慌てすに、 q または q ! でエデイタを終了し、端末のタ このような状態になった場合は、 を表しています。 う。自分カ理者なら、 termcap ファイルなどが正しいか 可能性があるので、システムの管理者に間い合わせましょ タベース (/etc/termcap など ) の記述が間違っている 適切に設定します。それでも改善されなけれは、端末デー 変数 TERM に端末のタイプ (xterm や kterm など ) を のどちらかで対応します。 1 の場合は、終了させたあと、 といったメッセージが表示されることがあります。 "hoi " CRead only] 18 lines , 934 characters あるいは、 h0i : unmodified, readonly: line 1 下行に 既存のファイル ( h 。 i とします ) をⅵで開いたとき、 [Read only] やて を使いましよう。 を石忍する必があります 12 。それでもだめなら、 こオし ません。たいていは、工竟変数 TERMCAP を正しく設定す才しは直る 12 ー殳に、端末データベース・ファイルか誤っていることはめったにあり でも permission denied" などといわれて失敗したとき ドて強制的に書き込める可能生があります。ただし、それ 後者の場合は、自分のファイルですから、、 : w ! " コマン して保存するか、 :q や :q! で終了させるしかありません。 て書き込めないので、、、 : w 新規ファイル名 " で名前を変更 といったケースが考えられます。前者の場合は、原則とし 2. 自分のファイルのモードを書込み禁止にしていた 1. ほかのユーザーのファイルを編集しようとした えは、 ザーにそのファイルへの書込別限がないからです。たと このような状態になるのは、ⅵコマンドを実行したユー あるという未です。 は、 hoi が read only 、すなわち言翹り専用のファイルで 46 はずてす。 は、前者と同しくいったん異なるファイル名で保存し、あ とで名前を変更するといった去をとるしかありません。 に意味不明な文字が・・・・・・ ⅵは、あくまでもテキスト、つまり文字か書かれたファ イルを編集するためのエデイタです。テキストファイルで はなく、プログラム・ファイルやアプリケーションのデー タなどのバイナリファイルを開くとどうなるでしようか。 その場合、画面上には、 A?ELFAAAAAA FreeBSYVBAVC などの意味不明な文字列が表示されるはすです ( 「このフ ァイルはテキストファイルではありません。編集を続行し ますか ? 」といった意味のメッセージか表示されることも あります ) 。 このようなときに誤って内容を書き換えてしまうと、そ のファイルが壊れてしまう可能匪があります。慌てすに、 :q または :q! でⅵを終了させましよう。そして、編集 しようとしているファイルがテキストファイルかをよくよ く石忍し、再変ⅵを実行してください。 ティレクトリ、編集したらあかんがな ディレクトリを編集しようとすると、最下行に、 "/etc" directory Warning: /etc is not a regular file; などのエラーメッセージか表示されます。この場合も、た だちに :q! でⅵを終了させ、編集対象のファイル名を確 しましよう。 ルい また、 /dev ディレクトリにあるファイルを編集しよう とすると、 Warning : ptyp0 is not a regular file ; などと表示されます。もちろん、 :q! ですぐに終了させ ます。 ほんまに上書きしてもええんか ? ⅵの終了時に : w コマンドで名前を付けて保存しようと すると、 use "W! hOi" tO overwrite "hoi" Fi1e exists "hOi exists, not written; use ! tO override . といったメッセージが表示されることがあります。これ は、すでに存在するファイル名て保存しようとしたため、 UNIX MAGAZINE 2001.9

4. UNIX MAGAZINE 2001年9月号

連載 / シェルの魔術ー 3 のディレクトリのことをワーキンク・ディレクトリと呼び ます 1 。シェルもプロセスですから、もちろんワーキング・ ディレクトリをもっています。シェルから起動されたコマ ンドは、シェルのワーキング・ディレクトリを引き継いで 仕事をします 2 。 引数を指定せすに ls コマンドを実行すると、ワーキン グ・ディレクトリに登録されているファイル名を表示し ます。ということは、上記の ls コマンドが内容を表示し たディレクトリは、コマンドを起動したシェルのワーキン グ・ディレクトリだったのですれ シェルの現在のワーキング・ディレクトリは、 pwd と いうコマンドで見ることができます。 $ pwd /home/moley pwd はその名もズバリ、 Print Working Directory 、 つまり、、ワーキング・ディレクトリを表示する " という意 ホーム・ティレクトリ 味です。 118 ディレクトリか変更されることもあります。 回 L?J 降に説明します。もちろん、なんらかの理山てイ十事中にワーキング・ 2 プロセスによるワーキング・ディレクトリの、引継ぎ " については、次 ります。 1 、現在いる場所 " という意床で、カレント・ディレクトリと呼ぶこともあ ホーム・ディレクトリの位置カ吩かります。 ですから、このときに pwd コマンドを実行すると自分の 直後のワーキング・ディレクトリはホーム・ディレクトリ ムによって異なっている可能があります。ログインした のディレクトリか割り当てられますか : その位置はシステ 録するときに決めます。多くの場合、ユーサーごとに別々 ホーム・ディレクトリの位置は、管理者がユーザーを登 ます。 きます。もちろん、サプディレクトリを作ることもでき 自山にファイル名を登録 ( ファイルを作成 ) することがで ューサーは、割り当てられたホーム・ディレクトリに 人に 1 っすっ割り当てられています。 リといいます。ホーム・ディレクトリは ( 原則として ) 1 トリがあります。このディレクトリをホーム・ティレクト ログインした直後にも、もちろんワーキング・ディレク 相対パス名 前回、ファイルの名前を消すために rm コマンドを使い ました。 $ ls li Ⅱ k . 1 1i Ⅱ k . 2 $ rm link. 1 link . 3 symlink . 1 このようにファイル名だけを指定すると、ワーキング・ ディレクトリにある ( ワーキング・ディレクトリに名前が イ求されている ) ファイル 3 を指定したことになります。 図 1 は、あるディレクトリのイ冓造の一部を示してい ます。 kitsune は kitsune さんのホーム・ディレクトリ、 tanuki は tanuki さんのホーム・ディレクトリです。ワ ーキング・ディレクトリが kitsune だとすると、 、そして tmp はワーキング・ディレクトリにありま すから、茁旨定できることになりますね。 それでは、ワーキング・ディレクトリ以外のディレク トリにあるファイルはどのように表せはいいのでしよう か。ディレクトリはヨ冓造ですから、「ワーキング・ディ レクトリのディレクトリ A のなかのディレクトリ B のな かの・・・・・・のなかのディレクトリ X のなかのファイル F 」 というふうにたどることができます。ファイルを表すため には、この道筋の、、のなかの " という部分を / ( スラッ シュ ) に置き換えればよいのです。 例として、「ワーキング・ディレクトリの tmp 、、のなか の "konkon 」というファイルを表す場合を考えてみまし よう。 tmp はワーキング・ディレクトリにありますから、 そのまま指定できますね。次の、、のなかの " は、上で説明 したとおり、、 / " に換えます。最後に konkon を置きます。 このようにして、 tmp にある konkon は tmp/konkon と表すことができました。 もう 1 つ、 ponpoko というファイルを表すことを考 えてみましよう。このファイルは、「ワーキング・ディレ クトリの .. 、、のなかの "tanuki 、、のなかの ' ponpoko 」と たどることができますね。したがって、このファイルは kitsune からみて、 .. /tanuki/ponpoko と表すことがで きます。このように、親ディレクトリを遡っていくことも あります。 3 以降では「ディレクトリ A に名前がイ求されているファイル」を、「ディ レクトリ A にあるファイル」と表現します。 UNIX MAGAZINE 2001.9

5. UNIX MAGAZINE 2001年9月号

し込んでいく。そして、数年間はこれらのフォルダを保存 しておき、必要に応して参照する。保存してある文書は、 ー -- - ・定期間か茴したものから順次破棄していき、情報が益 れるのを防ぐ。このような処理を、仕事の不頁別に確実に おこなえば、情報を自寉に管理していけるであろう。 このガ去をコンピュータ上のファイルの管理に適用する 場合には、 1 つの仕事を単位としてディレクトリを作り、 その下に作成した日イゞ分かるような名前を付けたファイ ルをオ内していけばいい。 数年前に大充行した『「超」整工去』 [ 2 ] は興床深い試 みであり、参考になる点も多い。著者は、コンピュータに おける情報の整理ガ去にも言及しており、たとえはファイ ルの命名法などもとりあげている。出版の日月 ( 1993 年 ) を考えると、著者の先見性はきわめて高いといえよう。し かし残念なことに、この本か前提としているのはファイル 名に関する制約が多かった 1993 年当時の DOS 稾竟であ る。したがって、ファイル名になんらかの未をもたせよ うと考えても、この制約が災いしてなかなか思うようには いかなかった。とはいえ、時刻を軸としたファイルの整理 法を提案した点は評価できる。これは、基本的にファイル を作成時刻に従って並べていくガ去である。そして、検索 はコンピュータにイモューザーは無理にファイルを分類 しない。このキ張は当時はかなり斬新であり、現在でも十 分に通用する。 UNIX ではファイル名の長さに関する制約は事実ーヒな いといってもよいので、さまざまな↑帯にを含ませることが できる。 たとえば、ある日のミーティングのメモであれば、 20010715-meeting-memo. txt といったファイル名にしておけは、あとで簡単にみつけ られるだろう。ファイル名でソートすれば日付頂に並ぶの で、整理も容易になる。自分のスケジュールと突き合わせ れば、どこて何をしていたかといったことも簡単に思い出 せる。 ノート 3 ファイル名長の制限がないからといって、むやみに長くす るのも考えものである。一応は、コンパクトな名前を付ける努 力をすべきであろう。 Windows や Macintosh などでは日本 言韶 ) ファイル名を付ける人もいるが、複数のプラットホームが 混在している竟では間題になることが多いので主意が必要で 連載 . / UN Ⅸ Communication Notes—O UNIX MAGAZINE 2001.9 ある。たとえば、あるファイルシステムを NFS 経由、あるい は直接マウントし、別の OS か下蝕力しているほかのシステムで 利用するといった竟では、このような日本言 ) ファイル名は 正しく解釈されない場合が多い。 この連載でもたびたび述べてきたが、電子メールの整理 にはいつも悩まされる。 7 ~ 8 月号では、 IMAP を用いた 電子メールの管理方法について説明した。これは、大雑把 にいえは電子メールをサーバー側で一元的に管理し、クラ イアント側では任意の MUA (MaiI User Agent) を使え るようにするイ督はみである。時と場合に応して MUA を 使い分け、電子メールを上手に整理しようというのが目標 であった。 たとえは、 UNIX 工竟では Emacs 上でカく Mew や WanderIust などで電子メールを扱うのかイ叫リである。私 自身も、ふだんは Wanderlust でメールの読み書きをお こなっている。このガ去では、使い慣れたエデイタの工韆竟 で電子メールの処理ができるので、おのすと作業効率も高 くなる。 ほかの作業との兼合いを考慮する必要がなく、メールの 整理だけを考え川まよいのなら、 Mew や Wanderlust よ りも Netscape Communicator 4.7x にイ寸属の Messen- ger のほうが一商である。 Netscape Communicator は、 Linux 竟および Net- BSD や FreeBSD 上の Linux 工ミュレーション環境で Linux 用のバイナリ・ディストリピューションカリ用できる。 さらに、 solaris や hp-ux といった商用 UNIX に対応した バージョンも用意されている。このツールを利用すると、メー ルがたいへん整理しやすくなる。とくに、ヘッダおよび本文の 各要素についてさまざまなパターンで検索し、その検索結果を まとめてフォルダに分けるという竹喋カ吶単にできる。 電子メールに添付されたファイルの扱いについては、数 ある MUA のなかでも Windows 上の MS Outlook が 便利である。 OutIook では、添付されたファイルの種別 に応して適切なアプリケーションを起動してくれる。現在 は、なんといっても Wind 。 ws をおもに使っている人が多 いので、 MS word や Excel などで作成したファイルが 添付されているメールを受け取ることが多い。このような 場合は、何がなんでも UNIX て処理しようと頑張るので メールは頭痛の種 55

6. UNIX MAGAZINE 2001年9月号

シェルの魔術 森島直人 ファイルの指定 ( 2 ) バス名の展開 梅舸か明けた、と友人から教えられました。今年・の梅雨 は雨らしい雨も数えるほどしか降らす、それ↓丿、タ P ) 日は夏 を前借りしたかのような猛暑でした。夏が例年の 1.5 倍の 長さじゃないかと思うはどです。 これだけ暑いと、ラップトップ PC にのせた両手もキー を打ったびにまんできます。両手を拭き拭き事を続け るのですが、ラッフトップ PC か放っ熱もかなりのもの なので、キーを打つ回数を減らしたくなってきますね。 今回は、ファイルとディレクトリの話の続きと、ファ イルを簡単に指定するためのン以名の展開 " をとりあげ ます。パス名の展開は、慣れてくるとかなりキーを打っ回 数を節約できます。暑い夏を乗りきるために、がんばって マスターしましよう・ ファイルとティレクトリ ( その 2 ) ティレクトリのハードリンク 前回は、 ln コマンドや rm コマンドを用いて、ファイ ルの実体に新しいファイル名を付けたり、逆にファイル名 を消したりしました。また、ディレクトリのハードリンク 、、 . " は自分自身のハードリンク、 についても説明しました。 、、 . " は親ディレクトリのハードリンクでした ところで、ディレクトリもファイルですから、 「 ln コマンドでディレクトリ・ファイルに別名付けてみ UNIX MAGAZINE 2001.9 ノ、 In : link—to—directory : Operation not permitted $ 1 Ⅱ . link—to_directory ードリンクを張ろうとすると・・ と考えて、試してみた人はいませんか。実際に自分自身に ようかな」 $ ls 1i Ⅱ k . 1 1i Ⅱ k . 2 li Ⅱ k .3 symlink. 1 おや、怒られてしまいました。 ないようです。 ードリンクはできてい ノ、 前回説明したように、ディレクトリはハードリンクを 使って冓造を形成しています。ディレクトリのハード リンクを勝手に作成すると、このイ造が崩れてしまいま すそのため、ディレクトリのハードリンクはシステム によって管理されています。ですから、ユーサーがディレ クトリ・ファイルのハードリンクを作ることはできません。 ワーキング・ティレクトリ 前回の説明では、ディレクトリ・ファイルの中身を見る ために ls コマンドを使いました。そのときの結果は、次 のような感しのものです。 $ ls -a link. 1 link. 2 li Ⅱ k. 3 symlink. 1 自分自身を表す、、 . " と親ディレクトリを表す、、 .. " のほ かに、 4 つのファイル名か表示されています。 この ls コマンドをよく見ると、中身を表示したいディ レクトリを引数て指定してはいません。一方、前回説明し たように、ディレクトリはルート・ディレクトリを根っこ とした哥冓造を形成しています。いったい、この ls コマ ンドは数多くあるディレクトリのうち、どのディレクトリ の内容を表示しているのでしようか。 UNIX では、すべてのプロセスがかならすヨ冓造のど 、、いる " ことになっています。プロセスは自分の 、、いる " ディレクトリでおのおのの仕事をするのです。 117

7. UNIX MAGAZINE 2001年9月号

ターンキーを押します。すると、該当する文字列があれ ば、カーソルがその箇所に飛んでいきます。続けて同し 文字列を検索したいときは、Ⅱを入力します。以下に例 @encil happen penguin さらに n を入力 pencil happen @enguin 続けて n を入力 pencil hap@en penguin ここで /pen[@@iiöi] を入力 pencil penguin を挙げておきます。 pencil hap@en penguin もひとつおまけに n を入力 つまり、編集中のファイルを、、さっき保存した時点に しないと、現在開いているファイル名か利用されます。 きは、、 ! " を付けます ) 。ファイル名 ( 川 e 皿 m のを指定 が、なんらかの操作をⅵに強制的におこなわせたいと のように 、、 ! " を付けて実行します (:q! もそうでした : ! 、 le れ a,T 〃 e ん。なにがなんでも読み込みたい場合は、 というメッセージが表示され、読み込んでもらえませ NO write since last change ( :edit ! overrides) は、 イルは閉しられます。ですから、保存していない場合 新しい編集対象ファイルを読み込むときは、現在のファ するコマンドです。 らも分かるように、これはラストライン・モードで実行 : e 川田 me " コマンドです。 : て始まることか なんとなく無駄なような気がします。そこて登場するの で一停止し、新たにⅵを起重丿ければいいわけですが、 集作業をしているⅵをいったん終了させるか Ctrl-Z る " のは私だけかもしれませんが ) 。そんなときは、編 なあかんかった " と思うことがよくあります ( 、、よくあ ファイルの編集中に、、、そうや、あのファイルも編集せ ・ファイルの読込み ()e 、 :e!) から検索してくれるのも ed の場合と同じです。 このように、ファイルの末尾に達すると、ふたたび頁 戻したい。時間よ、戻れっ ! " と思ったら、 UNIX MAGAZINE 2001.9 : e ! " と入 力すればよいのてす。ふだんのおこないがよけれは ( ウ ソです ) 、願いカ功、なえられるでしよう。まるで、ドラ 39 れ、リターンキーを押すとⅵに戻る場合もあります。 9 システムによっては、孑定したコマンドがシェルのコマンド行で実行さ 入したい場合です。これは、 次は、編集中のファイルに外部コマンドの実行結果を挿 ば、このようなメッセージは現れません。 のコマンドを実行したからです。保存してから実行すれ 示されているのは、編集中のファイルを保存せすに なお、上の例で、、 [No write since last change]" と表 ます。 示されたメッセージにもあるようにリターンキーを押し などと表示されるはすです 9 。編集イ乍業に戻るには、表 [Hit return tO continue] Tue Ju1 3 02 : 44 : 03 JST 2001 [No write since last change] : ! date モードで ) 、、 : ! date" と入力すると、画面の最下行に まいません ) 。たとえは、編集中に ( もちろんコマンド とします ( ! と c 。 rnmat のあいだの空白はなくてもか : ! CO 〃れ 0 れ d 外部コマンドを実行し、その結果を見る場合には、 ことができます。 ド (sort など ) を実行し、その結果を反映するといった したり、あるいは編集中のファイルに対して外部コマン ります。たとえは、編集中のファイルに現在日該リを挿入 ⅵの特徴の 1 つに、外部コマンドとの強力な連携があ ・外部コマンドの実行 (:r! 、 に挿入されます。 filename" で読み込んだファイルは、現在行の下 ンドを使ってファイルを挿入することができます。 使ったこのような操作は不可能です ) 。ⅵでは、 :r コマ してはいけません ( そもそも、コンソールではマウスを ておき、マウスでカット & ペースト・ ・・なんてことは、 あ川ま、挿入したいファイルを別のウインドウに表示し したい場合があります。 X ウインドウ・システム上で 編集しているファイルに、ほかのファイルの内容を挿入 ・ファイルの挿入 (:r) 間、戻れるわけではありません ) 。 えもんのタイム風呂敷のようです ( もちろん、任意の時

8. UNIX MAGAZINE 2001年9月号

近になって UNIX に触れたユーサーのなかにもⅵを 用している人がけっこういます。 、はしめはとつつきにくいかもしれません。で も、いったん使い方を習得すれば、本当に、、使いやすい " ェデイタです。今回は、その麻薬的魅力 ( ! ? ) の一端しカ齠 介できませんが、興未をもった人は参考文献などを読み、 使い方をきわめてほしいものです。 『ⅵ入門』 [ 2 ] の「訳者まえがき」から、その魅力を表す 一節を紹介しておきましよう。 「最初は愛想のない奴だと思っても、つき合ってみると シャイなだけで本当は実にいい人だったりするケースがあ るだろう。ⅵがまさにそれだ」 ⅵの基本キ果イ乍 ⅵを利用するにあたって、次のことを頭に入れておい てください。 ・ⅵとは、 ex というユーティリティをスクリーン・エディ タとして使えるように、、皮 " をかふせたものである。 ex は、 ed とよく似たはり強力な ) ラインエデイタの 一種です。ⅵでは、この ex のコマンドを簡単に実行し、 編集竹業を効率的に進めることができます。 それでは、ⅵの使い方についての説明を始めましよう。 ⅵにも、 ed と同しように、、モード " があります。これ は、以下の 3 つのモードです。 ・コマンドモード すべてのサプコマンドカ硬える。 ・テキスト入力モード 現在のカーソル位置でテキストが入力できる。 ・ラストライン・モード 画面最下行へのコマンド入力とその実行かできる。 なんのことだか分からないかもしれませんが、以降でそ れぞれの意未を説明していくのでご心配なく。 超基本起動・保存・終了 ます、ⅵを起動して新規にファイルを作成してみましょ う。以下では、 ed の場合と同しく、 hosts ファイルを例 に説明します。 ⅵを起重丿けるには、コマンド行で以下のようにします。 UNIX MAGAZINE 2001.9 図 7 起動直後の vi の % vi 五れ佖 me ファイル名 filename は、起重圻刻こ指定することもでき ます。引数にファイル名を指定せすに実行すると、画面は 図 7 のようになります。これがⅵの初期画面です。なん の飾りけもなくシンプルですね。カーソル位置よりも下に あるて始まる行は、何も入力されていないことを示し ています。ⅵは、この状態では、、コマンドモード " になっ ています。 既存のファイル名を指定してⅵを起けると、画面の 最下行にファイル名、行数、文字数か表示されます。また、 実在しないファイル名を指定して起動した場合は、ファイ ル名と新規ファイルであることを表す、、 [New 用 e ] " カ俵 示されます。 手始めに、文字を入力してみましよう。ⅵでは、原則と してカーソルの現在位置から編集を始めます。この例の場 合、カーソノ立置は画面の一番上の左端にあります。 から文字を入力していくわけですが、いまはコマンドモー ドなので、文字を入力するには、、テキスト入力モード " に 移る必要があります。そのためのコマンドが i (insert) で す ( 図 8 ) 。ただし、このコマンドを入力してもには何 も表示されません。このあたりが、、、シャイ " といわれる ゆえんなのでしよう。 図 9 は、 hosts ファイルの 1 行目を入力したところで す。行頭にある川は、キーポードからの入力を表していま す ( 画面には表示されません ) 。これは、コマンドモードか らテキスト入力モードに移るために i コマンドを入力した れには、 ESC キーを押します ( 図 8 ) 。図 9 の行末にある 入力カ鮗ったら、今度はコマンドモードへ戻ります。そ ところという意味てす。 33

9. UNIX MAGAZINE 2001年9月号

VMware の っ 3 図 図 2 仮想 PC を作る Y 設日上ーを虹上い物 NéW VM: SCSI bisk Nev• VM 86 引 C Settings W ⅲ dows コ 0 0P02 新を tem ー MyVVindows200VM Namel Ⅵーⅳ M ・出ⅲ・ F れ物 m ・ : omeivt れリ褫 mw 町 na : 0 ン w 元 蓄ー - ・ - MB 26 MB 日・ 0 0f2046 M82 を・ M ・「 00 ー y 3 にを (RAM): Seled 物升 om 物・ fo 0 ⅲ ng 厖し る 01 を ーコ vm 1 朝「 n トト・ 0 : 0 : 0 : 2 ) Zvmfs2 朝 mh ト・ 0 : 1 : 0 : 1 ) Type VMFS P き杙 0 れ VMFS P ・市朝 00 S に 17444 MB 17499 MB SCSI Oisk ま ( 0 ー 1 、物 FSVO ん m ・ま を飛・・・ 0 ん q リ・れ・「れをを 0 を 新朝 disk. 0 朝 k S にを一 0 k Modet 、 wo ⅸ ing を出・′ 0 をを Ad を pte ′ 0 : CO-ROM Drive 00- ROM 0 ′・一・ 0 第 新 1 1 き mhb 和℃ 02 ・・ 1 1 MB F の ntitled. dsk トー 0 ー 0 0 MB P 朝引を nt 0 ′ click 巨皇匹 . tO ( ′を・セを・ n ・響 disk. Cancel vrnmcO 図 4 仮想ディスクファイルがたくさんある VMFS S 総印 2 fro 「 0 出 fO 0 ⅵ「噌 Name ーヨ vmfs1 朝 m ト b み 0 : 0 : 0 : 2 ) ーコ匹旦 h 越止 ーコ m 2 朝 mhb 物 0 : 1 : 0 : 1 ) ーヨ win2k•dsk ーコ壓生旦止 New VM: SCSI Disk ん山山れ ・代 00 行 0 物代・ d S に朝 17444 MB 2048 MB 2048 MB 2049 MB 17499 MB 409 を MB 2048 MB pe VMFS P ・代面 on 0 協 k file 0 k 印を 0 k を VMFS P 物代代 i00 0 協 k 名に 0 協 k file FIoppy Orive Floppy 0 ′・第・れれ を 0 「駅 . 代 00 れ 0 ・改・ d MiSC 8 区を n 、 03 0 0 0 物 p 出い No リ 0 トリ 9 M00 加れ Create VM UndO Changes Or click トを 0 ( を・ヨセ・・ new disk ・ Cancei い " と考えておいたはうがよいでしよう。 4. Memory Size (RAM) 仮想 PC に割り当てるメモリサイズを設定します。 の値はあとで変更できます。 5. VMFS Volume イ反想ディスクファイルを作成する VMFS'S ーアイショ ンを選びます。 6. Enter a unique name for this disk イ反想ディスクのファイル名です。 VMFS とファイル名 を組にした値は、システム内でユニークでなけれはなり ません。 ESX サーバーの仮想ディスクファイルは、かならす VMFS パーティションのなかに作成します。ただし、 VMFS はディレクトリをサポートしていないため、そ のパーティションにはほかのユーザーが作成したイ反想 ディスクファイルも保存されます。ファイル名がユニ クでなけれはならないのは、そのためです。 [Browse] ボタンをクリックすると、システム内にある イ反想ディスクファイルの一覧か表示される ( 図 3 ~ 4 ) の で、これを参考にしてファイル名を指定すればいいで あとでファイル名を変更することもできますが、コマン ドラインで窈巣作が必要で、しかも設定ファイルを茁妾 編集しなければならないので、ちょっと面倒です。 このインターフェイスで作成できるイ見想 SCSI ディス クは 1 台だけです。 2 台以 E の仮想 SCSI ディスクを 作成したいときは、こで 1 台目を設定し、あとで、、設 定変更インターフェイス " を使って追加します。 複数の仮想 pc で同しファイルを設定すると、 1 つの 仮想ディスクファイルを共有することができます。た だし、このときはアクセスモードに、、 Nonpersistent' を設定する必要があります。 7. Disk Size 仮想ディスクのサイズを指定します ( 単位は MB)O ESX サーバーでは、図 5 のように 2GB を超える仮 0 160 UNIX MAGAZINE 2001.9

10. UNIX MAGAZINE 2001年9月号

特集リ N ー X の基礎知識 0 ることがあります。このような現象か起きるのは、たいて いは CapsLock がカ、かっているためです。 ⅵのコマンドは、大文字と小文字でまったく異なる働 きをします。たとえば、カーソルを 50 行下に移動しよう として、、 50j " と入力したところ、 CapsLock がかかって いたために、、 50J " となり、 50 行がつながってしまった、 というようなことカ起こります。 焦っていろいろなコマンドを入力したりせす、ますは CapsLock キーの状態を石忍しましよう。万一、意図し ないコマンドを実行してしまった場合には、これも冷静 に、、 u " で取り消してください。 編集中にシステムが落ちてしもた ⅵでファイルを編集中にシステムがクラッシュしたり すると、 「あなたがマシン〇 x 上で編集していたファイルロ※◇ は、復元するために保存してあります。復元させたいのな ら、 -r オプション付きて起動してください」 といった内容のメールが届くことがあります。 メールに書いてあるとおり、次にⅵを起動するとき、 -r オプション付きて起動すれば、クラッシュ直前の状態 から編集か再開できます 13 なぜ、こんなことができるのでしようか。ⅵは、システ ムのクラッシュなどによって強制的に終了させられた瞬間 に /var/tmp/vi. recover というディレクトリに一時ファ イルを保存します。ⅵに -r オプションを付けて起動する と、この保存された一時ファイルを使ってクラッシュ直 前の状態に彳第こしようとするわけです。 コマンドモードで、、 : pre " と入力し、強制的に一時ファ イルに保存することも可能です。この場合も、ユーサーに メーノレが届きます。ー印ファイルの名前はこのメールに書 かれていますが、、、ⅵー r " コマンドを次のように実行すれ は分かります ( 下線部が一時ファイルの名前です ) 。 % Vi On Tue Ju1 10 at 02 : 33 saved 1 lines of file "apple" 0 Ⅱ Tue Ju1 10 at 02 : 30 saved 1 lines of file "monkey" 13 つねに成功するとはかぎりません。クラッシュの原因にもよります。 48 一時ファイルがない ( 保存されていない ) ときは、彳匸 可能なファイルはないと表示されます。一日列のように一印芋 保存ファイルがある場合は、できるかぎり早く、以下のよ うにしてファイルを復元しましよう。 % vi —r apple ( : wq などで保存・終了 ) 復元せすに仕の例でいえば、、ⅵ apple" として ) 編集 し、同しファイル名て保存するとどうなるのでしようか。 その場合は、 -r 付きでⅵを実行してはいけません。旧い バージョンに戻ってしまうからです。かといって、その ままでは一引芋ファイルが残ってしまいます。そこで、いっ たん、、ⅵー r " て彳夏元するふりをし、起動直後に :q! で終 了させます。これで一時ファイルか消去されます。 ⅵ -r filename" として起動した場合も、 vi は通常と同 じように使えます。試してみたい場合は、 :pre コマンドで 一時ファイルを作成してから vi を終了し、その後に、、 vi ー r " を実行してみましよう。 行末に改彳ヾ入れられへんぞ トラブルといっていいのかどうかは分かりませんが、 れはごく山も広和訟受けた質間です。 たとえば、次のようなファイルがあったとします。 This is a testa この行の下に新たな行を挿入して文字列を入力したいと き、どうすれはいいでしようか。 「簡単ゃん。 i でテキスト入力モードにして、改行したら ええんやろ」 では、仰せのとおりに This is a test 行末のピリオドが改行されてしまいました。これでは駄 目です。それでは、どうすればいいのでしようか。正解は いくつかありますか : 1. 、、。 " て新規行入力モードへ 2. 、、 A " で行末で入力モードにして改行 といった方法が考えられます。 1 のほうか効率がいいです UNIX MAGAZINE 2001.9