Comments
Description
Transcript
さあ はじめよう
さあ はじめよう UNIX (Version 5.1) 2001 年 10 月 上智大学 電子計算機センター はじめに Welcome To The UNIX World!! ようこそ UNIX へ 上智大学の計算機環境にも UNIX の波が押し寄せてきています。これまでのような使いにく い大型機の環境から、よりコンパクトで使い易い世界へと移りつつあるわけです。上智大学計 算機センターの教育研究用の計算機もすべて UNIX となります。 もちろん UNIX も万全ではありません。UNIX アド ベンチャーゲームなどとも呼ばれ、どこ に何があって、何ができるのかが分からないと言う人もいます。また慣れないユーザにはとて も不親切なシステムであると言う人もいます。(このような時によくマッキントッシュと比較 されます。) しかし、世の中では UNIX は広く受け入れられて来ています。この理由は、UNIX がユーザ に対してとてもオープンで、限りない可能性がユーザに対して開かれているからです。言い替 えると、おしきせの利用方法でなく、その環境に合わせた様々な利用方法を提供することがで きます。 もちろんこの「さあ はじめよう UNIX 」を見たからと言って、すぐ に自由に使えるように なるとは言いません。不慣れな人は、やはり多少ならずとも扱いにくさを感じるかもしれま せん。 そのような時にもあきらめないで下さい。UNIX はネットワークを本当に使えるようにした 始めてのシステムです。上智大学の UNIX マシンもほとんどが上智大学ネットワークに接続 されていますし、上智大学ネットワークは世界のネットワークにも接続されています。ネット ワークの普及によって UNIX は育ち、UNIX の普及によってネットワークが育ってきました。 ネットワークは情報の共有という意味で、とても重大な役割を果たします。何か難しいことを 言っているように聞こえるかも知れませんが、簡単に言えば「わからないことがあれば、ネッ トワークで他の人に聞けばよい。」ということです。このために、電子ニュースがあります。電 子メールがあります。きっと親切なユーザが教えてくれるでしょう。(これまでの Q&A という 遺産もあります。) わからないことはどんどん聞きましょう。ある人の利用上の疑問は他の人にとっても疑問で あるかもしれません。もしもその Q&A が残れば (電子ニュースを使えばちゃんと残ります。) 将来同じ疑問を持った人はすぐ に解決できるでしょう。つまり質問することも上智大学の計算 機環境を良くすることに貢献するわけです。(これで、少しは気が楽になりましたか?) 初心者の領域から抜け出して次のステップに入った人は、どんどん自分の環境を育てて下さ い。そして、それが良い環境になったら、これまた皆に知らせて下さい。疑問と同じく、ある 人にとって良い環境は、他の人にとっても良い環境であるかもしれません。良いものがあれば 他の大勢のユーザのために、どんどんシステムに受け入れていきます。自作の良いプログラム や、賢い使い方などなど、ユーザが共有できる情報は無限にあります。 1 つまり、上智大学のユーザにとっての計算機環境を育てるのは、やはり上智大学のユーザ、 つまりあなたなのです。(そうやって出来てきたのが現在の環境です。) もちろんまだまだ理想 にはほど遠いものですが、センターのスタッフや教員の力には限りがあります。それを補う、 いや、それ以上のパワーが一般のユーザにはある筈です。なんといっても大多数のユーザは一 般のユーザなのですから。 どんどん UNIX を使って、質問をし、情報を共有してより良い環境を作るために、皆さんご 協力下さい。 それにはまず、 「さあ はじめよう UNIX 」です。 1994 年 4 月 電気・電子工学科 矢吹道郎 電子計算機センター 目次 1 UNIX とは 1.1 1.2 1.3 1.4 2 3 4 UNIX の歴史 : : : : : : : : : : UNIX の特徴 : : : : : : : : : : UNIX の構造 : : : : : : : : : : UNIX システムの紹介 : : : : : 1.4.1 Compaq Tru64 システム 1.4.2 FreeBSD システム : : : 1.4.3 SUN Solaris システム : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 接続手段 2.1 接続手段 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2.1.1 学内からの接続 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2.1.2 学外からの接続 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 接続方法 3.1 パソコン : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3.1.1 コンピュータルームのパソコン : : : : : : : : : : : : : : : : : 3.1.2 PPP 接続あるいは研究室から TCP/IP 接続しているパソコン 3.2 ワークステーション : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 2 2 3 3 5 6 7 7 7 8 9 : : : : 基本的な使い方 4.1 ログ イン : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.1.1 ログ イン名の入力ミス例 : : : : : : : : : : : : : : : : : : : : : : 4.1.2 パスワード の入力ミス例 : : : : : : : : : : : : : : : : : : : : : : 4.2 パスワード : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.2.1 パスワード の保護 : : : : : : : : : : : : : : : : : : : : : : : : : : 4.2.2 悪いパスワード : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.2.3 良いパスワード : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.2.4 パスワード 設定時の注意事項 : : : : : : : : : : : : : : : : : : : 4.2.5 パスワード の変更 : : : : : : : : : : : : : : : : : : : : : : : : : : 4.2.6 パスワード を忘れたら? : : : : : : : : : : : : : : : : : : : : : : : 4.2.7 Windows2000 とのパスワード 同期 : : : : : : : : : : : : : : : : 4.3 ログアウト : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.3.1 Windows2000 搭載パソコン : : : : : : : : : : : : : : : : : : : : 4.3.2 PPP 接続あるいは、研究室から TCP/IP 接続しているパソコン i 1 : : : : : : : : : : : : : : : : 9 9 10 11 13 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 14 14 15 15 16 16 16 17 18 18 18 19 20 4.3.3 ワークステーション : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.4 やさしいコマンド : : : 4.4.1 who コマンド : 4.4.2 date コマンド : 4.4.3 cal コマンド : : 4.4.4 man コマンド : 4.4.5 more コマンド 5 6 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ファイルシステム 5.1 ファイルシステムとデ ィレクトリ : : : 5.1.1 ファイルの指定法 : : : : : : : : 5.2 ファイル操作 : : : : : : : : : : : : : : 5.2.1 ファイルを作る : : : : : : : : : 5.2.2 ファイル名の表示 : : : : : : : : 5.2.3 ファイルの内容を表示する : : : 5.2.4 ファイル名の変更・移動 : : : : 5.2.5 ファイルの複写 : : : : : : : : : 5.2.6 ファイルの削除 : : : : : : : : : 5.3 デ ィレクトリ操作 : : : : : : : : : : : : 5.3.1 カレントデ ィレクトリの表示 : 5.3.2 デ ィレクトリの移動 : : : : : : 5.3.3 デ ィレクトリの作成 : : : : : : 5.3.4 デ ィレクトリの削除 : : : : : : 5.4 ファイルの保護 : : : : : : : : : : : : : 5.4.1 許可の対象者と種類 : : : : : : 5.4.2 許可モード の表示 : : : : : : : : 5.4.3 許可モード の効果 : : : : : : : : 5.4.4 許可モード の変更 : : : : : : : : 5.4.5 絶対に行なってはいけない操作 エディタの使い方 6.1 vi エデ ィタ : : : : : : : 6.1.1 vi の起動 : : : : : 6.1.2 テキストの入力 : 6.1.3 カーソルの移動 : 6.1.4 ファイルの保存 : 6.1.5 vi の終了 : : : : : 6.1.6 文字の置換 : : : 6.1.7 文字 (列) の変更 : 6.1.8 行全体の変更 : : 6.1.9 テキストの挿入 : 6.1.10 文字の削除 : : : 6.1.11 行の挿入 : : : : : 6.1.12 行の削除 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ii : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 20 21 21 21 22 22 23 24 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24 24 27 27 28 30 31 32 33 33 33 34 35 36 38 38 39 40 41 44 45 46 46 47 48 48 49 50 50 51 52 53 54 55 6.1.13 vi のコマンド : : : 6.2 Emacs エデ ィタ : : : : : : 6.2.1 Emacs の起動 : : : 6.2.2 テキストの入力 : : 6.2.3 カーソルの移動 : : 6.2.4 文字の消去 : : : : 6.2.5 ファイルの保存 : : 6.2.6 Emacs の終了 : : : 6.2.7 日本語入力 : : : : 6.2.8 Emacs のコマンド : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 C シェル 7.1 C シェルとは? : : : : : : : : : : : : : : : : 7.2 履歴機能 : : : : : : : : : : : : : : : : : : : 7.2.1 入力コマンド 記憶回数のセット : : 7.2.2 履歴リスト : : : : : : : : : : : : : 7.2.3 コマンド 番号の表示 : : : : : : : : 7.2.4 コマンド の繰り返し入力 : : : : : : 7.2.5 コマンド の置き換え : : : : : : : : 7.2.6 以前のコマンド 入力をもう 1 度実行 7.3 別名機能 : : : : : : : : : : : : : : : : : : : 7.4 コマンド の入力とシェル変数 : : : : : : : 7.4.1 ワイルド カード 文字の利用 : : : : : 7.4.2 シェル変数 : : : : : : : : : : : : : 7.4.3 コマンド の置換 : : : : : : : : : : : 7.4.4 クォーティング : : : : : : : : : : : 7.5 ジョブ制御 : : : : : : : : : : : : : : : : : 7.6 デ ィレクトリスタック機構 : : : : : : : : : 7.7 C シェルの環境設定ファイル : : : : : : : 7.7.1 .cshrc ファイル : : : : : : : : : : : 7.7.2 .login ファイル : : : : : : : : : : : 7.7.3 .logout ファイル : : : : : : : : : : 7.8 端末設定コマンド : : : : : : : : : : : : : : 7.9 環境設定 : : : : : : : : : : : : : : : : : : : 8 いろいろなコマンド 8.1 文字列の検索 : : : : : 8.2 文字数・行数を調べる 8.3 文字列の並び変え : : : 8.4 重複行の削除 : : : : : 8.5 文字変換 : : : : : : : : 8.6 ファイルの比較 : : : : 8.7 ファイルの圧縮・復元 8.8 ファイルの探索 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : iii : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 56 58 58 59 60 61 62 62 63 68 72 72 72 72 73 73 73 74 74 75 76 76 78 79 79 80 86 87 87 88 88 88 90 92 93 95 96 97 99 100 101 103 8.9 他ユーザとの会話 : : : : : : : : : 8.10 正規表現 : : : : : : : : : : : : : : 8.11 正規表現を使ったファイルの編集 8.11.1 sed コマンド : : : : : : : 8.11.2 awk コマンド : : : : : : : 9 : : : : : : : : : : : : : : : : : : : : : : : : : 周辺装置の利用方法 9.1 磁気テープ装置 : : : : : : : : : : : : : : : 9.1.1 磁気テープ装置仕様 : : : : : : : : 9.1.2 磁気テープ装置の論理名称 : : : : : 9.1.3 磁気テープ装置を利用するコマンド 9.2 ページプ リンタ装置 : : : : : : : : : : : : 9.2.1 LPR コマンド : : : : : : : : : : : : 9.2.2 lpq コマンド : : : : : : : : : : : : : 9.2.3 lprm コマンド : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 120 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 ネット ワークコマンド 10.1 telnet コマンド : : : : : : : : : : : : : : : : : : : : : : : 10.1.1 telnet コマンド の起動 : : : : : : : : : : : : : : : 10.1.2 telnet コマンド の終了 : : : : : : : : : : : : : : : 10.2 ftp コマンド : : : : : : : : : : : : : : : : : : : : : : : : : 10.2.1 コマンド の起動 : : : : : : : : : : : : : : : : : : : 10.2.2 ftp のサブコマンド : : : : : : : : : : : : : : : : : 10.2.3 転送モード : : : : : : : : : : : : : : : : : : : : : 10.2.4 コマンド の終了 : : : : : : : : : : : : : : : : : : : 10.3 anonymous FTP サービス : : : : : : : : : : : : : : : : : 10.4 proxy サーバ経由での学内外アクセス : : : : : : : : : : : 10.4.1 学内から学外への接続 : : : : : : : : : : : : : : : 10.4.2 学内から学外への接続 (anonymous FTP の場合) 10.4.3 学外から学内へ : : : : : : : : : : : : : : : : : : 11 プログラムコンパイル 11.1 11.2 11.3 11.4 コンパイルって何? : : : : : : データ型の取り扱い : : : : : C 言語のコンパイル : : : : : FORTRAN 言語のコンパイル : : : : : : : : : : : : : : : : : : : : iv : : : : : : : : 104 108 110 110 114 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 120 120 120 121 127 127 129 130 131 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 131 132 134 135 135 139 140 140 141 142 142 143 143 144 144 146 147 149 付録 A コマンド 要約 152 B 定義済 C シェル変数 159 C C シェル組込みコマンド 161 D UNIX ホスト 名一覧 165 索引 166 v 表目次 1.1 1.2 1.3 1.4 センター系 UNIX システム名および所有台数 (2001 年 10 月現在) Compaq Tru64 システム諸元表 (2001 年 10 月現在) : : : : : : : : FreeBSD システム諸元表 (2001 年 10 月現在) : : : : : : : : : : : : SUN Solaris システム諸元表 (2001 年 10 月現在) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 4 5 6 5.1 5.2 5.3 5.4 ツリー構造の説明 : : : : : : : 相対パス名指定 : : : : : : : : ファイル許可対象区分の説明 ファイル許可種別の説明 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 25 26 38 38 8.1 主な正規表現パターン表 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 94 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9.1 磁気テープ装置仕様表 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 120 9.2 磁気テープ装置用デバイスファイル名称一覧表 : : : : : : : : : : : : : : : : : : 121 9.3 UNIX システム用ページプ リンタ一覧表 (2001 年 4 月現在) : : : : : : : : : : : 127 11.1 プログラミング言語一覧表 (2001 年 10 月現在) : : : : : : : : : : : : : : : : : : 145 11.2 C 言語におけるデータ型の相違 : : : : : : : : : : : : : : : : : : : : : : : : : : 146 D.1 UNIX ホスト名一覧表 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 165 vi 図目次 1.1 UNIX の歴史的流れ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1.2 UNIX の構造図 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 2 3.1 3.2 3.3 3.4 ファイル名を指定して実行画面 (ホスト名を指定しない場合) FreeBSD の初期画面 : : : : : : : : : : : : : : : : : : : : : : 入力ミス時の画面 : : : : : : : : : : : : : : : : : : : : : : : : ワークステーションの初期画面 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 11 12 12 4.1 4.2 4.3 4.4 「ログオフ」アイコン : : : : : : 「 Logo? 」ダ イアログボックス : logout ウィンド ウ (1) : : : : : : : logout ウィンド ウ (2) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 19 19 20 20 5.1 5.2 5.3 5.4 5.5 システムにおけるデ ィレクトリのツリー構造図 : : : : : : : : : : : : : 完全パス名指定 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 相対パス名指定 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ファイルの種別と利用者別許可モード の表示方法 : : : : : : : : : : : シンボリックモード と 8 進表示モード におけるモード 指定方法の相違 : : : : : : : : : : : : : : : : : : : : : : : : : 25 26 27 39 43 6.1 vi のモード : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6.2 emacs 起動時の画面 (ファイル名指定しない場合) : : : : : : : : : : : : : : : : 6.3 emacs 起動時の画面 (ファイル名指定した場合) : : : : : : : : : : : : : : : : : : 46 59 60 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 8.1 phone コマンド 実行時の自分側の画面表示例 : : : : : : : : : : : : : : : : : : : 105 8.2 phone コマンド 完了時の自分側の画面表示例 : : : : : : : : : : : : : : : : : : : 106 8.3 \-cj" オプションを指定した場合の画面表示例 : : : : : : : : : : : : : : : : : : 107 vii 第 1 章 UNIX とは UNIX は 1969 年に米国 AT&T 社のベル研究所で、研究者達が自分の仕事を快適な環境の下 で、しかも、効率良く行えるように開発されたオペレーティング・システム (OS) です。 1.1 UNIX の歴史 1969 UNIXの原形 Ken Thompson 1970 UNIX命名 B.W.Kernighan 1972 C言語誕生 Dennis Ritchie 1973 C言語による書換え Dennis Ritchie, Ken Thompson 1974 V4 ソースコード公開 1976 V6 1.0BSD 1979 V7 3.0BSD Berkeley Software Distribution 32V 1982 System III 1983 System V 1984 System V Release2.0 1986 System V Release3.0 1988 System V Release4.0 AT&Tサポート開始 4.1BSD 4.2BSD Bill Joy 4.3BSD 1985 Mach Mach2.5 4.3BSD Tahoe Mach3.0 1990 4.3BSD Reno OSF/1 V1.0 4.4BSD 1992 System V Release4.2 AT&T系 OSF/1 V1.2 OSF/1系 図 1.1: UNIX の歴史的流れ 1 BSD系 1.2 1.3 UNIX の特徴 汎用の会話型オペレーティング・システムである。 階層構造のファイルシステムを採用している。 各種周辺機器もファイルとして扱える。 移植性に優れている。 豊富なツールによる優れたソフトウェア開発環境。 UNIX の構造 UNIX は、図 1.2に示すように、 「カーネル」、 「シェル」、 「ユーティリティ」の 3 つの部分 からできていると考えることができます。 ユーザ・プログラム プログラミング 環境 シェル テキスト処理 電子通信 カーネル (核) 追加機能 プログラム 情報管理 図 1.2: UNIX の構造図 カーネル: UNIX の心臓部 (核) にあたる部分です。カーネルはコンピュータへのアクセス制御、 メモリの管理、ファイルの管理などを行っていて、90%が C 言語で記述されています。 シェル: シェルはコマンド ・インタプ リタとして、コマンド を OS(UNIX の場合はカーネル) に引き渡す役割をします。OS はコマンド をハード ウェアに引き渡し、そこで実行されま す。また、シェル自身、プログラム言語でもあります。 ユーザ・プログラム: コマンドやユーザが作成したプログラム (実行可能プログラム) 、データ ファイル群です。 2 1.4 UNIX システムの紹介 センターでは、UNIX システムとして表 1.1に示すようなシステムをサポートしています。 表 1.1: センター系 UNIX システム名および所有台数 (2001 年 10 月現在) システム名 台数 Compaq AlphaServer ES40 Compaq AlphaServer GS60 Compaq AlphaSserver 4100 Compaq Personal Workstation 600au Compaq Personal Workstation XP1000 Compaq Alpha Station 255 Compaq Desk Pro ECS SUN Ultra 10 1.4.1 Compaq Tru64 種別 1 高速演算サーバ 1 1 授業実習サーバ 1 6 演算サーバ 10 12 2 システム 高速演算サーバを中心としたデスクトップ型 (一部、ラックマウント , デスクサイド 型) ワー クステーション群から構成される分散システムで、科学技術計算等のより高速化および効率化 を図ることを目的としています。 本システムは、Compaq 社 (旧 DEC 社) が世界に先駆けて開発した 64 ビット RISC マイク ロプロセッサを搭載した Alpha AXP シリーズのワークステーションで、以下のような特徴が 挙げられます。 1. CPU として、64 ビット RISC アーキテクチャを採用している。 2. OS として、OSF R1.0, R1.1, R1.2 の機能と Motif V1.2.3 のグラフィカル・ユーザ・イ ンターフェースおよびプログラミング環境を兼ね備えた Tru64 UNIX を採用している。 3. 米国のマサチューセッツ工科大学 (M.I.T) で開発された X-Window システム (X11R6) の 機能をサポートしている。 現在設置されている Compaq Tru64 システムの仕様は、表 1.2 のとおりです。 3 表 1.2: Compaq Tru64 システム諸元表 (2001 年 10 月現在) 設置場所 モデル名 CPU 主記憶容量 磁気デ ィスク容量 ネットワーク インターフェース OS ホスト名 モデル名 CPU 主記憶容量 磁気デ ィスク容量 ネットワーク インターフェース OS ホスト名 マシンルーム AlphaServer ES40 Alpha21264 2 4 (667MHz) 2048MB 40GB AlphaServer GS60E AlphaServer 4100 Alpha21264 2 4 Alpha21164A 2 4 (525MHz) (467MHz) 2028MB 1024MB 50GB 4GB Gigabit Ethernet 2 1 ポート sagami Tru64 UNIX Ver. 4.0F biwa Personal Workstation Professional Workstation 600au XP1000 Alpha21164A 2 1 Alpha21264 2 4 (600MHz) (667MHz) 512MB 512MB 4.2GB 9GB 10/100 自動認識 10/100 自動認識 Ethernet 2 1 ポート Ethernet 2 1 ポート Tru64 UNIX Ver. 4.0F arimine numazawa sai sanaki shoji yogo bosch AlphaServer 255 Alpha21064A (300MHz) 320MB 2GB モデル名 CPU 主記憶容量 磁気デ ィスク容量 ネットワーク インターフェース OS ホスト名 dahlman 10/100 自動認識 Ethernet 2 1 ポート Tru64 UNIX Ver. 4.0F hamana haruna kizaki megami nojiri suwa shinji tazawa towada tsukui 4 1.4.2 FreeBSD システム 本システムは、コンピュータルームの標準パソコンとして導入されている、Compaq Desk Pro ECS に米国カリフォルニア大学バークレー校 (UCB: University of California at Berkeley) の CSRG により 開発された UNIX \4.4BSD-Lite" を基にした、 Intel 386 と DEC Alpha アー キテクチャのコンピュータシステムで動作する 32-bit OS である FreeBSD を稼働させている。 FreeBSD OS は、以下のような特徴があげられます。 1. OS として、FreeBSD 4.0 を採用している。 2. OS が無償であり、ソースコード が公開されている。 3. 多種多様なアプ リケーション が動作する。 4. 安価で安定したインターネットサーバ として世の中で広く使われている。 現在設置されている FreeBSD システムの使用は、表 1.3のとおりです。 表 1.3: FreeBSD システム諸元表 (2001 年 10 月現在) 設置場所 モデル名 設置台数 CPU 主記憶容量 磁気デ ィスク容量 ネットワーク インターフェース OS ホスト名 コンピュータルーム O Compaq Deskpro ECS 12 Pentium III (650MHz) 128MB 10GB 10/100 自動認識 Ethernet 2 1 ポート FreeBSD 4.0 abukuma agano ayase buko chikugo kuji naka sakawa shingu suzuka tedori tsurumi 5 1.4.3 SUN Solaris システム 本システムは、SUN Microsystems 社が開発した 64 ビット RISC マイクロプロセッサ (UltraSPARC II) を搭載したデスクトップ型ワークステーションで、以下のような特徴が挙げら れます。 1. CPU として、64 ビット RISC アーキテクチャである SPARC シリーズを採用している。 2. OS として、SUN Micorsystems 社が開発した \Solaris2.6" を採用している。 (System V(R4) を基本に 4.3BSD の機能の一部の環境が利用できる。) 3. 一般的なワークステーションとして世の中で良く使われており、多種多様なアプ リケー ションソフトが動作する。 現在設置されている SUN Solaris システムの仕様は、表 1.4のとおりです。 表 1.4: SUN Solaris システム諸元表 (2001 年 10 月現在) 設置場所 モデル名 設置台数 CPU 主記憶容量 磁気デ ィスク容量 ネットワーク インターフェース OS ホスト名 コンピュータルーム O Ultra10 Model440 2 UltraSPARC II i (440MHz) 256MB 9GB Ethernet × 1 ポート Solaris2.6 sanuki 6 wakasa 第 2 章 接続手段 接続手段 2.1 UNIX システムへの接続手段には大きく分けて次の 2 つの方法があります。 学内からの接続 学外からの接続 2.1.1 学内からの接続 学内からの接続には以下のような方法があります。 1. コンピュータルーム A, B, C, D, E, F, I, O の各部屋、および、図書館 PC コーナーに設 置されているパソコンおよびワークステーションから、UNIX システムを利用すること ができます。 2. 情報コンセント経由 情報コンセントが設置されている部屋において、パソコンがあれば UNIX システムに接 続可能です。ただし、接続ケーブル等が別途必要になりますので、電子計算機センター までお問い合わせください。 (a) IP(Internet Protocol) 接続経由 LAN を構築されている学科からは基本的にこの方法になります。また、電子計算機 センターが現在行なっている「教育研究個人 IP 接続サービス」を受けられている 方 (情報コンセントの接続口 \1" を利用) もこの方法になります。 (b) C/S(Communication Server) 接続経由 LAN が構築されていない、あるいは、「教育研究個人 IP 接続サービス」を受けて いない研究室の情報コンセント (コンセントの接続口 \2" を利用) からの接続方法 です。 7 学外からの接続 2.1.2 学外から上智大学のネットワークに接続するには、以下の方法があります。 1. モデム経由 パソコンとモデムおよび通信ソフトさえあれば、NTT 回線経由でアクセス可能です。 (a) シリアル接続 テキストデータや MH (Message Handling) による電子メールを扱う場合は、この シリアル接続で可能です。 (b) PPP 接続 電話回線を通じて、学内ネットワークに接続する方法ですが、シリアル接続と異な り、PPP1 接続では、telnet, ftp, ホームページ閲覧, 電子メールソフトによる電子 メールの送受信等のサービスを受けることができます。 なお、PPP 接続をするには、電子計算機センターへの申請が必要です。 2. インターネット 経由 上智大学は WIDE 2 に加入していますので、インターネットに加入している全世界中の 組織からアクセス可能です。 接続手段で不明な点がありましたら、電子計算機センターまで問い合わせてください。なお、 モデム経由の接続 (シリアル接続および PPP 接続) については、別途接続方法や設定方法をま とめたマニュアルが電子計算機センターに用意してあります。 1 PPP:Point 2 Widely to Point Protocol の略 Integrated Distributed Environment(広域大規模分散環境) の略 8 第 3 章 接続方法 接続方法は 2章で紹介した接続手段により異なりますが、ここでは、以下のコンピュータか らの接続方法について簡単に説明します。 パソコン { Windows2000 搭載のパソコン (各コンピュータルームに設置) { PPP 接続あるいは、研究室から TCP/IP 接続しているパソコン UNIX システム なお、接続できるホスト名の一覧については、付録 Dの表 D.1を参照してください。 パソコン 3.1 各コンピュータルームに設置されている Windows2000 搭載のパソコン、PPP 接続あるいは、 各研究室等から TCP/IP 接続されているパソコンの 2 通りについて、それぞれ UNIX システ ムに接続する方法を説明します。 3.1.1 コンピュータルームのパソコン 本節では、Windows2000 搭載のパソコンからの接続方法について説明します。 1. Windows2000 のロゴが画面に表示されていることを確認します。 2. Windows2000 にログ インします。 Ctrl キーと Delete キーの 3 つのキーを同時に押してください。 Windows2000 のログオン画面が表示されます。 キーと Alt 3. ログ イン名とパスワード (UNIX のものと同じです) を入力し、21キーを押します。 正常にログ インできると、Windows2000 のデスクトップが表示されます。 3 0 4. デスクトップにある「 Network Connection 」のフォルダのアイコンをダブルクリックし ます。 9 5. 「 Network Connection 」のフォルダが開き、UNIX 接続用のアイコンがウィンド ウ内に 表示されます。いくつかあるアイコンのうち \WinYAT", \Telnet" を除く 、いずれかを ダブルクリックします1 。 ここでは、 \dahlman" のアイコンを選択することにします。 6. 画面が次のようになります。 Digital UNIX (dahlman) ( UNIX ログ インプロンプト login: 接続できない場合は、電子計算機センターまでご連絡ください。 以上で、ホスト (この場合は \dahlman") への接続は完了です。次章の「基本的な使い方」へ 進んでください。 3.1.2 PPP 接続あるいは研究室から TCP/IP 接続しているパソコン ここでは例として、以下のような環境である場合について説明します。 Windows システム搭載のパソコンである。 PPP 接続 あるいは、TCP/IP 接続によってすでにネットワークに接続されている。 接続する UNIX マシンのホスト名は、ここでは \dahlman" とします。なお、使用している パソコンによっては、以下に説明する場合と、操作方法が異なることがあります。 1. パソコンの電源を入れ起動します。 2. [スタート ] ボタンをクリック、[ファイル名を指定して実行 (R)] を選択し、\ファイル名 を指定して実行" 画面を表示します。 図 3.1: ファイル名を指定して実行画面 (ホスト名を指定しない場合) 1 \高速演算サーバ", \FreeBSD", \SUN Solaris" のマシンに接続する場合には、更にそれぞれのフォルダを開 いてから選択します。 10 3. \名前 (O)" に \telnet" を入力し、[OK] ボタンをクリックします。なお日本語を表示す る必要が無い場合は、\telnet dahlman.cc.sophia.ac.jp" と入力すると 6の画面が表示され ます。 4. \set jis kanji" を入力し 21キーを押します2 。 3 0 5. \open dahlman.cc.sophia.ac.jp" を入力し 21キーを押します。 3 0 MicrosoftTerm> set jis kanji ( 文字コード を jis kanji に指定 3 0 MicrosoftTerm> open dahlman.cc.sophia.ac.jp 2 1 ( dahlman へ接続 3 2 0 1 6. 次のような画面が表示されます。 Digital UNIX (dahlman) ( UNIX ログ インプロンプト login: 以上で、ホストへの接続は完了です。次章の「基本的な使い方」へ進んでください。 ワークステーション 3.2 ここでは、コンピュータルーム O に設置されている FreeBSD マシン (ホスト名:\abukuma") における操作方法を説明します。なお、初期の画面は異なりますが、他の Compaq Tru64 ワー クステーション、あるいは、SUN Solaris ワークステーションにおいても基本的に操作方法は 同じです。 1. 画面が図 3.2に示すような表示になっていることを確認します。もし、真っ黒な場合は、 何かキーを押してみるか、マウスを少し動かしてみてください。それでも何も表示され ない場合は、デ ィスプレイの電源を確認してください。図 3.2 のような画面が表示され ない場合は、電子計算機センターまでご連絡ください。 ログイン名を入力 パスワードを入力 図 3.2: FreeBSD の初期画面 2 \set ki" あるいは、\set ko" と入力する事も可能です。 11 2. UNIX のログ イン名を入力し、21キーを押します。 3 0 3. パスワード を入力し、21キーを押します (入力した文字は機密保護のため画面に表示され ません) 。ログイン名あるいはパスワード に入力ミスがあった場合は、\Login incorrect" 3 0 あるいは、\ログ イン情報が正しくありません" と表示されます。そのまま 21キーを押 してください。最初の画面 (図 3.2) に戻ります。 3 0 図 3.3: 入力ミス時の画面 4. 正常にアクセスできると、X Window の環境設定ファイルを変更しない限りは、画面に 大小 2 つのウィンド ウと、時計、Logout ウィンド ウが表示されます。 図 3.4: ワークステーションの初期画面 これで UNIX システムにアクセス完了しましたので、4章の 4.1節は飛ばして進んでください。 12 第 4 章 基本的な使い方 4.1 ログイン システムに接続された端末の画面に次のような表示 (ホスト名 \dahlman" に接続した場合) があればシステムにログ イン (login) し、UNIX と会話する事ができます。 Digital UNIX (dahlman) login: それでは実際にシステムにログ インしてみましょう。 1. \login:" 表示に続き自分のログイン名を英小文字で正しく入力して 21キーを押します。 3 0 2. システムがログ イン名を受け付けると、\Password:" と表示され、パスワード の入力を 3 0 促してきますので、自分のパスワード を正しく入力して 21キーを押します (入力した文 字は機密保護のため画面に表示されません) 。 3. ログ イン名とパスワード が正しく入力されると、システムはログイン情報表示後、コマ ンドプロンプトを表示します。コマンドプロンプトは、あらかじめ ログイン名@ホスト 名 [番号]=> と表示されるように、登録時に設定しています。 なお、本マニュアルではコマンドプロンプト として、\sophia%" を使用します。 13 3 0 ( ( 21 3 0 2 1 3 0 ログ イン名を入力し 2 1キーを押します 3 0 パスワード を入力し 2 1キーを押します login: t-jouchi Password: xxxxxxx (入力した文字は画面には表示されません。) Last login: Tue Sep 30 16:42:32 from sagami Digital UNIX V4.0F (rev. 96.2); Mon Jul 14 17:45:18 JST 1997 SOPHIA UNIVERSITY Hello, how are you today? Welcome to dahlman (Compaq AlphaServer 4100). ( コマンドプロンプト sophia% 3 0 注意 ログ イン名やパスワード をミスタイプした場合でも、2 1キーを押す前であれば、 Ctrl キーを押しながら \u" キーを押し、新たに正しい文字を入力します。 0 3 ミスタイプしたまま 2 1キーを押すと、\Login incorrect" と表示され、システムはロ グ インを受け付けません。その時は再度、正しいログ イン名およびパスワード を入力し 直してください。 4.1.1 ログイン名の入力ミス例 login: t-jochi 3 0 2 1 Password: Login incorrect. login: t-jouchi 01 3 2 Password: ( ( ( ログ インに失敗したメッセージ ( 正しいログ イン名を入力 ( パスワード を入力 3 ログ イン名を間違えて入力し、2 3 0 とりあえず 2 1キーを入力 4.1.2 0 1キーを押した パスワード の入力ミス例 login: t-jouchi Password: 3 2 0 1 ( ( ログ イン名を入力 間違えたので Ctrl キーを押しながら \u" キーを入力し、 再度、正しいパスワード を入力 3 2 0 1キーを押すと、 パスワード を間違えたまま \Login incorrect." と画面に表示されます。 この場合は、4.1.1節 のように、再度、ログ イン名と正しいパスワード を入力してください。 14 パスワード 4.2 パスワード は、ログ イン名を入力した人が、本人であるかをシステムがチェックするための 大事な鍵 (キーワード ) になりますので、絶対に他人の前でパスワード を入力したり、単純な パスワード は設定しないように各自責任をもって管理してください。 4.2.1 パスワード の保護 センターがサポートしている UNIX マシンは、コンピュータネットワークを通じて日本国内 はもとより、世界中にアクセス可能になっています。逆に言えば、世界中からアクセスされる 可能性があるわけです。したがって、自分のログイン名を他人に使わせるようなことがあって はならないし、パスワード も他人が推測できるような簡単なものであってはいけません。 悪意を持った第三者に不正利用されると、自分のファイルが消去されたり、改ざんされるだ けでなく、システム全体が破壊される恐れもあります。また、自分のログイン名を使って、電 子メールや電子ニュースを勝手に出されたりする可能性もあります。こうなると、自分には身 に覚えがなくても、システム上、ネットワーク上では、すべて自分がやったものと見なされて しまいます。また、上智大学の管理責任、日本のネットワークとしての管理責任も問われるこ とになります。 パスワード は、以下の点に留意しながら、常に細心の注意を払って取り扱ってください。 利用許可書に記載されているパスワード をいつまでも使わない。早い段階で (できれば始 めて利用するときに) 、新しいパスワード に変更する。(パスワード 変更の方法は、4.2.5 節を参照のこと。) 利用許可書を責任を持って管理する (紛失や放置は厳禁) 。 パスワードを入力するときには、他人に見られないようにする。また、他の人がパスワー ド を入力するときは、キーボード から目をそらすなどして、他人のパスワード を意図的 に見ないようにする。 15 4.2.2 悪いパスワード パスワード として良くない例を以下に示します。これらのパスワード は絶対に使用しないで ください。 英小文字だけ , 英大文字だけ, 数字だけなど、一つの文字種しか使っていないもの 6 文字未満のもの 辞書に載っている単語 aaa 等の同じ文字の繰り返し 自分の名前, 家族の名前, 恋人の名前, それらの人の誕生日, 住所, 地名, 電話番号等 他人 にも容易に推測できるもの 有名人、アイド ル等の名前 書き留めないと忘れるような憶えにくいもの 4.2.3 良いパスワード 好ましいパスワード の例を示します。 英小文字、大文字、記号、数字の組み合わせで 6 文字以上、8 文字以下 (できれば、7 文字か 8 文字) 書き留められずに憶えられるもの 2 または 3 つの単語の組み合わせ キーボード から入力しやすいもの 4.2.4 パスワード 設定時の注意事項 パスワード を設定・変更する時は、4.2.3節の例を踏まえた上で、以下の事に注意して行なっ てください。 パスワード には英小文字、英大文字、数字をそれぞれ 1 つ以上使ってください。 特殊文字の \@" と \#" と \スペース" および、\Tab" は使用しないでください。これ らの文字をパスワード 変更の際に使うと、次回から UNIX システムにログインできなく なります。 パスワード は、定期的 (1ヶ月に 1 度以上の頻度) に変更してください。 16 パスワード の変更 4.2.5 パスワード を変更する場合は、\yppasswd" コマンド を使って変更します。 パスワード の変更は、どの UNIX マシンでも行なうことができます。また、いずれか 1 台 の UNIX マシンでパスワード を変更すれば、そのパスワード は他のすべての UNIX マシンに おいても有効となります。 1. コマンドプロンプトに続いてパスワード 変更コマンド \yppasswd" を入力し、21キーを 3 0 押します。 sophia% yppasswd 3 0 2 1 2. 画面に \Old password:" と表示されたら、「現在使用しているパスワード 」を入力して 3 0 2 1キーを押します。 Changing NIS password for t-jouchi on yodo.cc.sophia.ac.jp Old password: ( 現在使用しているパスワード を入力 (画面には表示されません) 注意 「現在使用しているパスワード 」をミスタイプすると、システムは \Sorry" と表 示し、パスワード 変更を受け付けません。その場合は、再度パスワード 変更コマン ド を実行してください。 3. 「現在使用しているパスワード 」を正しく入力すると、次にシステムは、\New password:" と画面に表示して、新しいパスワード の入力を促します。ここで、新しいパスワード を 3 0 入力して、 2 1キーを押します。 Changing NIS password for t-jouchi on yodo.cc.sophia.ac.jp Old password: ( 新しいパスワード を入力 (画面には表示されません) New password: 4. 新しいパスワード を入力すると、システムはタイプミスなどによる間違いを防ぐために、 再度確認のために新しいパスワードの入力を促します。ここで、もう一度新しいパスワー 3 0 ド を入力して、 2 1キーを押します。 Changing NIS password for t-jouchi on yodo.cc.sophia.ac.jp Old password: New password: Retype new password: ( 再度新しいパスワードを入力 (画面には表示されません) 17 5. 新しいパスワード が正しく設定されると、以下のメッセージが画面に表示されます。 Changing NIS password for t-jouchi on yodo.cc.sophia.ac.jp Old password: New password: Retype new password: NIS password has been changed on yodo.cc.sophia.ac.jp sophia% これで、パスワード が変更されました。なお、新しいパスワード がすべての UNIX マシ ンで有効になるまで、多少時間がかかります。 4.2.6 パスワード を忘れたら? 不幸にも自分のパスワード を忘れてしまったときは、電子計算機センター事務室に、学生証 等の身分証明書を提示のうえ、 「パスワード 変更願書」を提出してください。 本人である事を確認の上、願書に基づいて、新しい「仮のパスワード 」を設定します。この 「利用許可書」は 仮のパスワード は、申請した日の 2 日後1 から使用できます。ただしこの時、 再発行しません。 なお、仮のパスワード でログ インできたら、すぐ に新しいパスワード に変更してください。 4.2.7 Windows2000 とのパスワード 同期 UNIX のパスワード と Windows2000 のパスワード は同期をとっており、双方で同じものが 使えるように設定してあります。UNIX 上で \yppasswd" (4.2.5節を参照) コマンド を使って パスワード を変更すると、Windows2000 側のパスワード も同時に変更されます。逆もまた同 様で、Windows2000 上でパスワード 変更アプ リケーションを使ってパスワード を変更すると、 UNIX のパスワード も変更されます。 4.3 ログアウト ログアウトとは、UNIX 上での作業が終了し、現在自分が使用している端末からシステムへ のアクセスを終了させる作業をいいます。 ログアウト操作をしないで端末から離れてしまうと、まだシステムと端末は接続状態になっ ているため、他人に自分のログ イン名を不正使用される危険があります。自分の作業が終了し たら必ずログアウト操作を行ってください。なお、接続方法によって終了方法が異なりますの で注意してください。ここでは、3章で説明した接続方法からによるログアウト方法について 説明します。 1 日数の計算には、土・日曜日、祝日、大学事務休業日は含みません。したがって、例えば金曜日に申請した 場合は、翌週の火曜日から「仮のパスワード 」が有効となります。 18 4.3.1 Windows2000 搭載パソコン 本節では、各コンピュータルームに設置されている Windows2000 搭載のパソコンからのロ グアウトについて説明します。 1. ログアウトコマンド \logout" を入力して 21キーを押します。 3 sophia% logout 0 3 2 0 1 UNIX システムへのアクセスが終了し、TeraTerm のウィンド ウが自動的に閉じます。 2. 「 Network Connection 」のウィンド ウ右上の × ボタンをクリックして、そのウィン ド ウを閉じます。 3. 図 4.1にあるような、デスクトップの 「ログオフ」アイコンをダブルクリックします。 図 4.1: 「ログオフ」アイコン 4. \Logo?" のダ イアログボックス (図 4.2参照) が表示されるので、左側の Logo ボタ ンをクリックします。 図 4.2: 「 Logo? 」ダ イアログボックス 以上で、ログアウト操作は終了です。 【注 意】 各コンピュータルームに設置されている Windows2000 搭載パソコンの本体 およびデ ィスプレイの電源は、絶対に切らないでください。無理に電源を 切ると、その後の動作が不安定になり故障の原因になります。 19 4.3.2 PPP 接続あるいは、研究室から TCP/IP 接続しているパソコン 1. ログアウトコマンド \logout" を入力して 21キーを押します。 3 0 sophia% logout 3 2 0 1 UNIX システムへのアクセスが終了し、telnet のウィンド ウが自動的に閉じます。 2. 以上で、ログアウト操作は終了です。パソコンの電源については、必要なければ切って ください。 4.3.3 ワークステーション ここでは、オープン処理室に設置されている FreeBSD(ホスト名:\abukuma") における操作 方法を説明します。なお、初期の画面は違いますが、他のワークステーション (Compaq Tru64, SUN Solaris) においても基本的に操作方法は同じです。 1. 画面左上に、図 4.3に示すようなウィンド ウ (\xlogout" というタイトルのついたウィンド ウ) がありますので、このウィンド ウをマウスでクリックします。 このウィンドウをクリックします 図 4.3: logout ウィンド ウ (1) 2. 画面が図 4.4のようになりますので、右側 (\Logout" の方) をクリックします。なお、左 側 (\Cancel") をクリックするとログアウト操作がキャンセルされます。 "Logout"を選択し、クリックします 図 4.4: logout ウィンド ウ (2) 3. 画面が図 3.2 (p.11参照) のような表示に戻れば、ログアウト操作は正常に終了したこと になります。 【注 意】 ワークステーションは、原則として 24 時間運転しています。本体およびディ スプレイの電源は、絶対に切らないでください。 20 4.4 やさしいコマンド UNIX には、300 以上のコマンド が用意され、それらのコマンド を使って UNIX と会話する ことによって、ユーザは高度な処理を行うことができます。 4.4.1 who コマンド 現在、システムにログ インしているユーザ名を表示します。 3 2 0 1 sophia% who t-jouchi ttyp0 Oct 7 08:32 yabuki ttyp1 Oct 7 10:27 k_sasaki ttyp5 Oct 7 09:10 m-unnno ttyp3 Oct 7 09:35 sophia% 自分のログ イン名、端末名、およびログ インした時間を表示したい時は \who am i" コマン ド 2を使います。 sophia% who am i t-jouchi ttyp0 sophia% whoami t-jouchi 3 0 2 1 3 0 2 1 (\ who ", \am", \i" の間にスペースを入れた場合 Oct 4 08:32 (\ who ", \am", \i" を全部つなげて入れた場合 sophia% 4.4.2 date コマンド 現在の年月日と時間を表示します。 3 0 2 1 sophia% date Tue Oct 7 11:56:48 JST 1997 sophia% 2 ログインしているマシンによっては表示が異なる場合があります。 21 4.4.3 cal コマンド 指定年月のカレンダーを表示します3 。例えば、1997 年 10 月のカレンダーを表示してみます。 sophia% cal 10 1997 Sun 5 12 19 26 3 0 2 1 October 1997 Mon Tue Wed Thu 1 2 6 7 8 9 13 14 15 16 20 21 22 23 27 28 29 30 Fri 3 10 17 24 31 Sat 4 11 18 25 sophia% 月の指定を省略すると、指定した年の 1 年分のカレンダーが表示されます。 4.4.4 man コマンド 指定コマンド のオンラインマニュアル (英文) を表示します。 sophia% man man 3 0 2 1 man(1) man(1) NAME man - Displays reference pages SYNOPSIS man [-] [-M | -P search_path] [-t] [-l] {[section[suffix]] title...}... man [-M | -P search_path] -f title ... man [-M | -P search_path] -k keyword ... .. . DESCRIPTION The man command provides online access ……………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… : \man" コマンド を終了する場合は \q" を入力します。 3 ログインしているマシンによっては、曜日の表示が \S 22 M Tu W Th F S" となることがあります。 4.4.5 コマンド more 指定したファイルの内容を画面単位に表示します。\man" コマンドは、マニュアルを画面単位 に表示しています。これらのコマンド の機能は、ファイルの内容を画面単位に表示する \more" コマンド の機能に大変似ているので、\more" コマンド の機能について簡単に説明します。 キー操作 or スペースキー f b ne or nj or ny or nk nd nu r h ng nG = 3 0 2 1 n/文字列 n?文字列 q 機能説明 1 画面分進んで表示 1 画面分戻って表示 n 行分前に進んで表示 (既定値=1 行) n 行分後に戻って表示 (既定値=1 行) n 行分前に進んで表示 (既定値=画面の半分) n 行分後に戻って表示 (既定値=画面の半分) 同じ画面をもう一度表示 ヘルプ画面 n 行目から表示 (既定値=ファイルの先頭行) n 行目から表示 (既定値=ファイルの最終行) 表示ファイル名を画面最下端に表示 n 番目に出てくる文字列の所に進んで表示 n 番目に出てくる文字列の所に戻って表示 more コマンド を終了 注意 上記キー操作で \n" と表示されている部分は省略可能です。省略しない場合は、キー操 作文字の前に適当な数値を入力します。 例 \file01" という名前のファイルを見る場合は、以下のように入力します。 sophia% more le01 3 2 0 1 \more" コマンド を使って、ファイルの内容を見たいときは、\more" コマンド の後にファイル 名を指定します。 例 ファイル内の \sophia" という文字列が 3 番目に出てくる所を表示するような場合は次の ように入力します。 3 3/sophia 2 0 1 \more" コマンド を使って長いファイルの内容を見て、上記のキー操作を行なうと、見たい所を 自由に画面表示できるので便利です。 23 第 5 章 ファイルシステム ファイルシステムとディレクト リ 5.1 UNIX では、ファイルを階層的に管理しています。このようなファイルシステムのことを ツリー構造 (木構造)といいます (図 5.1参照 : p.25) 。すべてのユーザファイルは、このファイ ルシステムの一部であり、ある部分から下が各ユーザに割り当てられています。 ツリー構造は、枝分かれの部分と葉の部分とがあります。葉の部分は実際にデータ等が格納 されている容器で、枝分かれの部分はそれらの容器を寄せ集めるための更に大きな容器と考 えることができます。この葉に相当するものを「通常ファイル」、枝分かれに相当するものを 「ディレクト リファイル」と言います。この他に、 「特殊ファイル」と呼ばれるファイルがあり ます。 通常ファイル ユーザが使用するテキスト (文章) やバイナリデータ (実行形式のプログラム) などが格 納されたファイルです。 ディレクト リファイル ファイルを管理するためのファイルをディレクトリファイルと呼び、このファイルには、 ファイルの各種情報が格納されています。 特殊ファイル システムでサポートされている入出力装置を表わすファイルです 図 5.1における各デ ィレクトリの意味については、表 5.1 を参照してください。 5.1.1 ファイルの指定法 ファイルを指定するということは、ツリー構造の中でのファイルの位置を指定するというこ とになります。また、ファイルを扱う場合のファイル名ということにもなります。 実際に説明に入る前に、これから良く使われる用語「カレントディレクト リ」および「ホー ムディレクト リ」について簡単に説明します。 ユーザは、ログインしている間はファイルシステムの中のどこかのディレクトリに位置する ことになっています。自分が現在位置しているディレクトリのことを「カレントディレクトリ」 24 / (root) bin lib local usr lib bin etc thome admin yabuki rikou shome tmp bun gaigo fujiwara 図 5.1: システムにおけるデ ィレクトリのツリー構造図 表 5.1: ツリー構造の説明 デ ィレクトリ名 /bin /dev /etc /usr /thome /shome /tmp 概 要 UNIX の基本コマンド 用デ ィレクトリ 入出力装置用の特殊ファイル用デ ィレクトリ システム管理のツール用デ ィレクトリ 汎用ファイルおよびコマンド 用デ ィレクトリ 教員用ユーザホームデ ィレクトリ (上智大学固有) 学生用ユーザホームデ ィレクトリ (上智大学固有) テンポラリファイル用デ ィレクトリ と言い、ユーザがログインした時に位置しているディレクトリのことを「ホームディレクトリ」 と言います。したがって、ユーザがログインした時のディレクトリは、ホームディレクトリで あり、かつ、カレントデ ィレクトリでもあるわけです。 ホームディレクト リ カレントディレクト リ ログ インしたときに位置しているデ ィレクトリ (ログ イン名登録時にシステム管理者が設定する) 現在位置しているデ ィレクトリ (ワーキングデ ィレクトリとも言います) 25 ファイルの指定方法には、 「完全パス名指定」と「相対パス名指定」の 2 種類があります。 完全パス名指定 ルートを起点に、目的のファイルまでをいくつかのデ ィレクトリを順にたどって指定す る方法 (図 5.2参照 : p.26) 。 ディレクトリ "prog"というファイルを指定する場合 / /shome/succ/t-jouchi/prog/prog01 通常ファイル shome はじめの"/"は、「ルートディレクトリ」を 意味します。その他の"/"は、ディレクトリ とディレクトリの区切りを意味します。 succ t-jouchi ユーザ ホームディレクトリ prog prog01 指定するファイル 図 5.2: 完全パス名指定 相対パス名指定 カレントデ ィレクトリを起点に、目的のファイルまでのデ ィレクトリを指定する方法 (図 5.3参照 : p.27) 。 このように、相対パス名を使ってファイル名を指定するには \ ド ット ) で表わすことができます。 . "(ド ット ) 、\ .. "(ド ット 表 5.2: 相対パス名指定の説明 . (ド ット ) カレントデ ィレクトリを意味します。 .. (ド ットド ット ) カレントデ ィレクトリの一つ上のデ ィレクトリ (親デ ィ レクトリと言う) を意味します。 以上のように、同じファイルを指定する場合でもカレントデ ィレクト リがどこにあるかに よってパス名の一部を省略することができます。 26 カレントディレクトリが /shome/succ/t-jouchi のときに "prog1" というファイルを指定する場合 t-jouchi prog/prog1 または ./prog/prog1 prog test prog1 カレントディレクトリが /shome/succ/t-jouchi/prog のときに /shome/succ/t-jouchi/test の下にある "prog1" というファイルを指定する場合 prog1 ../test/prog1 ディレクトリ 通常ファイル 図 5.3: 相対パス名指定 ファイル操作 5.2 ファイルは、内容を画面に表示したり、別のファイルにコピーしたり、編集したり、またファ イル名を変更したり、削除したりすることができます。以下でファイル操作について簡単に説 明します。 ファイルを作る 5.2.1 一般にファイルを作成する時はエディタを利用しますが、ここでは、画面に表示される文字 列をファイルに入れ、作成するという最も簡単な方法で説明します。この方法はシェルの「出 力リダイレクション」という機能を利用したものです。 \date" コマンド で表示される文字列 (日付) をファイル (\le1") に入れます。 sophia% date > le1 3 0 2 1 \echo" コマンド で表示される文字列をファイル (\le2") に入れます。 sophia% echo 'Hello, How are you today?' > le2 3 0 2 1 \echo" コマンド のみを使用した時は画面に出力されていた文字列が、上記の例のように \ > ファイル名" と入力すると、文字列が指定したファイルに出力されます。ファイルは 自動的に作成されますが、指定したファイルがすでに存在する場合には、古い内容は抹 消されて、新しい内容が出力されますので注意してください。 \cat" コマンド を使ってファイル (\le3") に文字列を入れます (文字列の入力が終ったら Ctrl キーを押しながら \d" キーを押します) 。 27 sophia% cat > le3 3 0 2 1 Hello, How are you today? 21 3 0 Thank you ! I am very ne. 21 ^d ( Ctrl キーを押しながら \d" キーを押す 3 0 \cat" コマンド は、本来ファイルの内容を画面に表示するコマンド ですが、エディタの代 わりに簡単なファイルを作成する時には非常に便利です。 5.2.2 ファイル名の表示 指定されたファイル名 (デ ィレクトリファイルも含む) およびファイル, ディレクトリに関す る情報を表示するには \ls" (LiSting の略) コマンド を使います。ファイル名の指定を省略する とカレントデ ィレクトリ下にあるファイル (デ ィレクトリファイルも含む) の一覧が表示され ます (ファイル名はアルファベット順に表示されます) 。 コマンド 形式 sophia% ls オプション ファイル名 指定できるオプションは数多くあり、ここで全てを紹介することはできませんが、代表的な オプションについて紹介します。その他のオプションについてはオンラインマニュアル等を参 照してください。 オプション -a -l(エル) -F -t 説明 全てのファイル名を表示 ファイルに関する詳細情報も付記して表示 ファイルの種類 (デ ィレクトリファイルか通常ファイル か) をファイル名の後に付記して表示。デ ィレクトリに は \/" 、通常ファイルには無印、実行可能形式のファイ ルには \*" 印が付く 最終更新時刻の新しいものから表示 28 操作例 0 3 sophia% ls 2 1 Mail file1 file2 file3 prog prog1 prog2 3 0 sophia% ls -F 2 1 Mail/ file1 file2 file3 prog/ prog1 prog2 3 0 sophia% ls -a 2 1 . .. Mail file1 file2 file3 prog prog1 prog2 3 0 sophia% ls -l 2 1 total drwxr-x--- 2 t-jouchi stud 2048 Apr 20 11:19 Mail -rw-r--r-- 1 t-jouchi stud 29 May 5 10:12 file1 -rw-r--r-- 1 t-jouchi stud 26 May 5 10:13 file2 -rw-r--r-- 1 t-jouchi stud 54 May 5 10:14 file3 drwxr-xr-x 2 t-jouchi stud 2048 Apr 21 09:26 prog -rw-r--r-- 1 t-jouchi stud 29 May 3 18:13 prog1 -rw-r--r-- 1 t-jouchi stud 31 May 3 19:41 prog2 3 0 sophia% ls -lF 2 1 total drwxr-x--- 2 t-jouchi stud 2048 Apr 20 11:19 Mail/ -rw-r--r-- 1 t-jouchi stud 29 May 5 10:12 file1 -rw-r--r-- 1 t-jouchi stud 26 May 5 10:13 file2 -rw-r--r-- 1 t-jouchi stud 54 May 5 10:14 file3 drwxr-xr-x 2 t-jouchi stud 2048 Apr 21 09:26 prog/ -rw-r--r-- 1 t-jouchi stud 29 May 3 18:13 prog1 -rw-r--r-- 1 t-jouchi stud 31 May 3 19:41 prog2 3 0 sophia% ls -t 2 1 file3 file2 file1 prog2 prog1 prog Mail 3 0 sophia% ls test 2 1 test: No such file or directory 3 0 sophia% ls Mail 2 1 context drafts inbox scancomps 3 0 sophia% ls -a Mail 2 1 . .. context drafts inbox scancomps 29 5.2.3 ファイルの内容を表示する ファイルの内容を画面に表示するには \cat" (conCATenate の略) コマンド を使います。 コマンド 形式 sophia% cat オプション ファイル名 オプション -n -b 操作例 説明 各行の先頭に行番号を付ける -n と同じように各行の先頭に行番号を付けるが、空白 行には行番号は付けない。 -s -v ファイルが存在しなくてもエラーメッセージを出さない 非印字文字 (タブ、改行等は除く) を可読文字として印字 する 3 0 sophia% ls 2 1 Mail file1 file2 file3 prog prog1 prog2 3 0 sophia% cat le1 2 1 Fri May 5 10:12:22 JST 1993 3 0 sophia% cat -n le3 2 1 1 Hello, How are you today? 2 3 Thank you ! I am very fine. 3 0 sophia% cat -b le3 2 1 1 Hello, How are you today? 2 Thank you ! I am very fine. 3 0 sophia% cat test1 2 1 test1: No such file or directory 3 0 sophia% cat -s test1 2 1 sophia% ファイルの内容が 1 画面に納まりきらず、ファイルの内容が流れて (スクロールして) 見に くい場合は、\more" コマンド (4.4.5節参照 : p.23) を使うか、次のようなキー操作をするこ とによって、画面表示を一時停止したり、再開したりできます。 画面スクロールの一時停止 画面スクロールの再開 30 Ctrl +s Ctrl +q 5.2.4 ファイル名の変更・移動 ファイル名を変更したり、ファイルを他のデ ィレクトリに移動させたりするときは、 \mv"(MoVe の略) コマンド を使います。 コマンド 形式 sophia% mv オプション 元のファイル名 新しいファイル名 オプション -i 操作例 説明 「新しいファイル名」が既に存在する場合、実行確認の 入力を促します 3 0 sophia% ls 2 1 Mail file1 file2 file3 prog prog1 prog2 3 0 sophia% mv le3 myle 2 1 3 0 sophia% ls 2 1 Mail file1 file2 myfile prog prog1 prog2 3 0 sophia% mv -i myle le2 2 1 3 0 overwrite file2? y 2 1 3 0 sophia% ls 2 1 Mail file1 file2 prog prog1 prog2 sophia% 「新しいファイル」には \デ ィレクトリ" も指定することができます。その場合、元のファ イル名は複数指定できます。 操作例 0 3 sophia% ls -F 2 1 Mail/ file1 file2 3 0 sophia% ls prog 2 1 prog3 sophia% mv le1 le2 3 0 sophia% ls -F 2 1 Mail/ prog/ prog1 3 0 sophia% ls prog 2 1 file1 file2 file3 sophia% file3 prog/ le3 prog prog1 prog2 3 0 2 1 prog2 prog3 31 5.2.5 ファイルの複写 ファイルおよびデ ィレクトリを複写 (コピー) するときは、\cp" (CoPy の略) コマンド を使 います。 コマンド 形式 sophia% cp オプション 元のファイル名 新しいファイル名 オプション 説明 「新しいファイル名」が既に存在する場合、実行確認の 入力を促します -i -p 元ファイルの許可情報および最終更新日時をそのままに して複写します -r 操作例 「元のファイル名」、 「新しいファイル名」にそれぞれ ディレクトリ名を指定し、元ファイル名のディレクトリ 以下の全てのファイル (サブデ ィレクト リも含む) を新 しいファイル名のデ ィレクトリに複写する 3 0 sophia% ls 2 1 file1 file2 myfile 3 0 sophia% cp myle le3 2 1 3 0 sophia% ls 2 1 file1 file2 file3 myfile 3 0 sophia% cat le3 2 1 Hello, How are you today? Thank you ! I am very fine. 3 0 sophia% cat myle 2 1 Hello, How are you today? Thank you ! I am very fine. 3 0 sophia% cat le1 2 1 Thu Feb 5 13:37:35 JST 1998 3 0 sophia% cp -i le1 le3 2 1 3 0 overwrite file3? n 2 1 3 0 sophia% cat le3 2 1 Thu Feb 5 13:37:35 JST 1998 sophia% 32 ファイルの削除 5.2.6 不要となったファイルを削除するには \rm" (ReMove の略) コマンド を使います。削除して しまったファイルは元に戻すことはできませんので、このコマンド を使うときには十分注意し て実行してください。 コマンド 形式 sophia% rm オプション ファイル名 オプション 説明 本当に削除して良いかどうか、実行確認の入力を促し ます -i 操作例 3 0 2 1 sophia% ls file1 file2 file3 myfile 3 0 sophia% rm myle 2 1 3 0 sophia% ls 2 1 file1 file2 file3 3 0 sophia% rm -i le3 2 1 3 0 rm: remove file3? n 2 1 3 0 sophia% ls 2 1 file1 file2 file3 3 0 sophia% rm -i le2 2 1 3 0 rm: remove file2? y 2 1 3 0 sophia% ls 2 1 file1 file3 sophia% 5.3.1 5.3 ディレクト リ操作 カレントディレクト リの表示 現在のカレントディレクトリを完全パス名で表示するには \pwd" (Print Working Directory の略) コマンド を使います。 3 2 0 1 sophia% pwd /shome/succ/t-jouchi sophia% 33 5.3.2 ディレクト リの移動 カレントディレクトリを指定したディレクトリに移動するには \cd" (Change working Directory の略) コマンド を使います。また、コマンド 引数 (デ ィレクトリ名) を省略するとカレントディ レクトリがホームデ ィレクトリに移動します。 コマンド 形式 sophia% cd デ ィレクトリ名 操作例 0 3 sophia% pwd 2 1 /shome/succ/t-jouchi 3 0 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 3 0 sophia% cd prog 2 1 3 0 sophia% pwd 2 1 /shome/succ/t-jouchi/prog 3 0 sophia% cd 2 1 3 0 sophia% pwd 2 1 /shome/succ/t-jouchi 3 0 sophia% cd / 2 1 3 0 sophia% pwd 2 1 / 3 0 sophia% ls -F 2 1 DXsession* ja_JP.deckanji/ proc/ bin@ ja_JP.sdeckanji/ sbin/ dev/ jsykojin.dic share@ etc/ lib@ shlib/ genvmunix* mdec/ shome/ home/ mnt/ subsys/ ja_JP@ opt/ sys/ ja_JP.SJIS/ osf_boot* tcb/ 3 0 sophia% cd 2 1 3 0 sophia% pwd 2 1 /shome/succ/t-jouchi sophia% text/ thome/ tmp/ usr/ var/ vmunix x/ 34 5.1.1節 (p.26参照) でも説明しましたが、カレントデ ィレクトリを \ . "(ド ット ) 、その上の デ ィレクトリを \ .. "(ド ットド ット ) で表わすことができます。 操作例 3 2 0 1 sophia% pwd /shome/succ/t-jouchi/prog 3 0 sophia% cd . 2 1 3 0 sophia% pwd 2 1 /shome/succ/t-jouchi/prog 3 0 sophia% cd .. 2 1 3 0 sophia% pwd 2 1 /shome/succ/t-jouchi sophia% 5.3.3 ディレクト リの作成 新しいディレクトリを作成するには \mkdir" (MaKe DIRectory の略) コマンド を使います。 コマンド 形式 sophia% mkdir デ ィレクトリ名 操作例 0 3 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 3 0 sophia% mkdir test 2 1 3 0 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 test/ sophia% ディレクトリは 1 つのファイルとして扱われるので、カレントディレクトリに既に同じ名前 のファイルが存在する場合、同一名のデ ィレクトリを作成することはできません。 操作例 3 2 0 1 sophia% ls -F Mail/ prog/ prog1 prog2 test/ 3 0 sophia% mkdir prog1 2 1 mkdir: Failed to make directory "prog1"; File exists 3 0 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 test/ sophia% 35 5.3.4 ディレクト リの削除 不要になったデ ィレクト リを削除するには \rmdir" (ReMove DIRectory の略) コマンド を 使います。ただし、削除するディレクトリの下にディレクトリおよびファイルが存在しない場 合に限られます。 コマンド 形式 sophia% rmdir デ ィレクトリ名 操作例 0 3 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 test/ 3 0 sophia% ls -aF test 2 1 ./ ../ 3 0 sophia% rmdir test 2 1 3 0 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 sophia% 削除したいディレクトリの下にディレクトリや通常ファイルがあるとエラーとなります。上 記の例で、\ . ", \ .. " というデ ィレクトリファイルがありましたが、これは \mkdir" コマン ド 実行時に自動的に作成され、\rmdir" コマンド 実行時に自動的に削除されるようになってい ます。 操作例 0 3 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 test/ 3 0 sophia% ls -aF test 2 1 . .. test1 test2 TEST/ 3 0 sophia% rmdir test 2 1 rmdir: Directory not empty 3 0 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 test/ sophia% 36 豆知識 ディレクトリを削除する際、指定したディレクトリの下にディレクトリやファイルが一つ でも存在していると \rmdir" コマンド では削除することができません。かといって、一つ 一つファイルを削除していくのは面倒だ! という時には、前述したファイル削除コマンド のコマンド \rm" で、コマンド オプションを指定することにより、指定したデ ィレクトリ とその下のすべてのファイルを一度に削除することができます。 rm -r ディレクト リ名 ただし、このコマンド を実行する際には細心の注意が必要です。本当に削除して構わない かどうかを確認してから行ってください。誤って削除したファイルやディレクトリを元に 戻す (復活する) ことはできません。 [操作例] 0 3 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 test/ 3 0 sophia% ls -aF test 2 1 . .. test1 test2 TEST/ 3 0 sophia% rmdir test 2 1 rmdir: test: Directory not empty 0 3 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 test/ sophia% rm -r ./test 3 0 2 1 0 3 sophia% ls -F 2 1 Mail/ prog/ prog1 prog2 sophia% 37 5.4 ファイルの保護 UNIX はとてもオープンなシステムです。例えば、基本的にユーザはさまざまなディレクト リに移動する事ができ、そのデ ィレクトリにどんなファイルがあるかを探すことができます。 逆に言えば、誰がどのようなファイルを持っていて、その内容がどんなものかを見ることもで きてしまうということになります。最悪の場合、自分の所有するディレクトリやファイルを消 されたり、内容を変更されたりすることがあります。 「プライバシーの侵害だ!」と思われる かもしれませんが、それが UNIX の特徴でもあります。 そのため UNIX システムでは、各ファイル (ディレクトリも含む) にパーミッション (アクセ ス許可) を持っています。このパーミッションによってどういうユーザに対してアクセス許可 をするか制御できるようになっています。したがって、ファイルの所有者は、他のユーザによ るファイルの削除など最悪の事故を防ぐ ためにも、ファイルのパーミッションを管理する義務 があることになります。 「自分が所有するファイルは自分で守る」ということを忘れないでく ださい。 パーミッションの設定および変更は、所有者が所有するファイルであれば自由に行うことが できます。 5.4.1 許可の対象者と種類 UNIX システムはファイルへのアクセス権を許可するときに、利用者を所有者 (User) 、グ ループ (Group) 、一般ユーザ (Other) の 3 クラスに分けて識別します。 表 5.3: ファイル許可対象区分の説明 許可対象者 記号 所有者 グループ 一般ユーザ u g o 意 味 ファイル, デ ィレクトリを作成したユーザ 所有者と同じグループに属しているユーザ 上記以外のユーザ また、許可の種類として、読み込み (Read) 、書き込み (Write) 、実行 (eXecute) の 3 種類 があります。 表 5.4: ファイル許可種別の説明 許可の種類 記号 意 味 読込可能 r ファイル、デ ィレクトリの内容を読むことができる 書込可能 w ファイル、ディレクトリの内容を変更することができる 実行可能 x ファイルを実行し、ディレクトリを探索することができる 38 5.4.2 許可モード の表示 ディレクトリやファイルにどのようなパーミッションが設定されているかは、\ls" コマンド に \-l (エル)" オプションを付けることによって知ることができます。また、これによって、 ファイルの作成日、大きさ等の詳細情報も得られます。 操作例 sophia% ls -l total drwxr-x---rw-r--r--rw-rw-rw-rw------drwxr-xr-x -rw-r--r--rw-r--r-- 01 3 2 2 1 1 1 2 1 1 t-jouchi t-jouchi t-jouchi t-jouchi t-jouchi t-jouchi t-jouchi 許可情報 stud 2048 Apr 20 11:19 Mail stud 29 May 5 10:12 file1 stud 26 May 5 10:13 file2 stud 54 May 5 10:14 file3 stud 2048 Apr 21 09:26 prog stud 29 May 3 18:13 prog1 stud 31 May 3 19:41 prog2 所有者名 大きさ 最終更新日時 ファイル名 sophia% コマンド によって画面に表示された情報の内、一番左側にある \r",\w",\x",\-",\d" 等で記 述されたものが現在設定されているパーミッションを意味します。許可の与えられていない場 合は \-" で表示されます。 1. ファイルの種類 1 2 3 4 - rw- r-- r-- d rwx r-x r-x b c d 通常ファイル ブロック型特殊ファイル キャラクタ型特殊ファイル ディレクトリファイル 2. 所有者に対するパーミッションの状態 3. グループに対するパーミッションの状態 4. 一般ユーザに対するパーミッションの状態 図 5.4: ファイルの種別と利用者別許可モード の表示方法 39 5.4.3 許可モード の効果 許可モード が持つ意味は、以下に示すように、通常ファイルとディレクトリファイルとでは 異なります。(図 5.4 も参照してください。) 通常ファイルの場合 許可モード r 意 味 ファイルの内容を読み出すことができる。 (\cat",\cp",\wc",\vi" 等のコマンド を使える) w ファイルの内容を変更することができる。 (エディタを使って修正ができる) x プログラムとして実行することができる。 ディレクト リファイルの場合 許可モード r 意 味 そのデ ィレクトリを読むことができる。 (\ls",\pwd" コマンド が実行できる。) w そのデ ィレクトリに書き込むことができる。 (管理するファイル数の増減、ファイル名の変更ができる。また、新 規ファイル、ディレクトリの作成、削除等ができる。) x そのデ ィレクトリの下のファイルにアクセスできる。 例えば、あるファイルが -rwxr-xr-という許可モード であるとしたら、以下のような意味になります。 通常ファイルである。 (1 番目の \ - ") 自分に対しては、読み込み、書き込み、実行とも許可されている。 (2 ∼ 4 番目の \ rwx ") グループ員に対しては、読み込みと実行は許可されているが、書き込みは禁止。 (5 ∼ 7 番目の \ r-x ") 一般ユーザに対しては、読み込みのみが許可されており、書き込みと実行は禁止。 (8 ∼ 10 番目の \ r-- ") 40 5.4.4 許可モード の変更 ファイルやデ ィレクトリを新規作成した時の既定パーミッションは次のとおりです。 -rw-r--r-drwxr-xr-x 通常ファイルの場合 デ ィレクトリファイルの場合 ファイルの所有者は、\chmod" (CHange MODe の略) コマンド を用いることによりパー ミッションを変更することができます。 コマンド 形式 sophia% chmod モード ファイル名 モード の指定方法には「シンボリックモード 」と「 5.4.4.1 8 進表示モード 」とがあります。 シンボリックモード シンボリックモード は、現在のモード を基準にして、誰に (u,g,o) 、何を (r,w,x) 、どうす るか (+,-) を次のような形式で指定する方法です。 [ugoa][+-][rwx] 保護モード の対象となる人を次の記号の組み合わせで指定 u g o a 一般ユーザに対して 全てのユーザに対して 保護モード の変更方法を次の記号で指定 + - 所有者に対して グループに対して 現在のモード に指定のモード を追加 現在のモード から指定のモード を除去 次に示すシンボリックな保護モード を、任意に組み合わせて指定 (指定のない場合には \-" 指定となる) r w x 読み込み 書き込み 実行 41 操作例 ◎ 一般ユーザからの読み込み許可を除去する場合 3 0 sophia% ls -l le1 2 1 -rw-r--r-- 1 t-jouchi sophia% chmod o-r le1 3 0 sophia% ls -l le1 2 1 -rw-r----- 1 t-jouchi sophia% 3 2 0 1 29 May 5 10:12 file1 29 May 5 10:12 file1 ◎ 同一グループと一般ユーザに対して読み込み, 書き込み許可を付加する場合 3 0 sophia% ls -l le1 2 1 -rw-r----- 1 t-jouchi sophia% chmod go+rw le1 3 0 sophia% ls -l le1 2 1 -rw-rw-rw- 1 t-jouchi sophia% 29 May 5 10:12 file1 3 0 2 1 29 May 5 10:12 file1 5.4.4.2 8 進表示モード 許可の与えられている部分に \1" 、許可を与えられていない部分に \0" を立てて得られる 9 桁の 2 進数を「 8 進数」に換算して指定する方法です。 rwx r-x r-x 111 101 101 7 5 5 ← 2 進数 ← 8 進数 例を挙げると パーミッション rw-r--r-rwxr-x--rw------rw-rw-rwrwxrwxrwx 2 進表示 110100100 111101000 110000000 110110110 111111111 42 8 進表示 644 750 600 666 777 操作例 ◎一般ユーザからの読み込み許可を除去する場合 3 0 sophia% ls -l le1 2 1 -rw-r--r-- 1 t-jouchi sophia% chmod 640 le1 3 0 sophia% ls -l le1 2 1 -rw-r----- 1 t-jouchi sophia% 3 2 0 1 29 May 5 10:12 file1 29 May 5 10:12 file1 ◎同一グループと一般ユーザに対して読み込み, 書き込み許可を付加する場合 3 0 sophia% ls -l le1 2 1 -rw-r----- 1 t-jouchi sophia% chmod 666 le1 3 0 sophia% ls -l le1 2 1 -rw-rw-rw- 1 t-jouchi sophia% 3 2 0 1 29 May 5 10:12 file1 29 May 5 10:12 file1 -rw-r--r-chmod go-r file1 chmod 600 file1 -rw------- chmod +x file1 chmod 711 file1 -rwx--x--x 5.4.5 絶対に行なってはいけない操作 先にも述べましたように、ファイルのパーミッションは自分が所有するファイルであれば自 由に設定を変更することができます。しかし、パーミッション変更を絶対に行ってはならない ファイルがあります。それは自分自身のホームディレクト リです。 絶対にしてはいけない操作例 3 2 0 1 sophia% pwd /shome/succ/t-jouchi 3 0 2 1 sophia% cd .. sophia% pwd /shome/succ 01 3 2 sophia% ls -ld ./t-jouchi drwxr-xr-x 1 t-jouchi 3 0 2 1 sophia% chmod 644 t-jouchi 01 2048 May 3 0 2 1 5 10:12 t-jouchi ( 絶対に実行してはいけない!! 3 sophia% ls -ld t-jouchi 2 drw-r--r-- 1 t-jouchi 2048 May 5 10:12 t-jouchi 3 0 sophia% cd 2 1 Can't change to home directory ( 自分のホームデ ィレクト リに戻れなくなっている sophia% というように、自分のホームディレクトリに戻ることができなくなってしまいます。これは ディレクトリの \x" の持つ意味が通常ファイルの場合とは異なり、\x" のパーミッションを除 去してしまうとそのデ ィレクトリ以下のファイルを検索 (アクセス) することができなくなる からです。したがって、このようなことは絶対に行わないでください。 44 第 6 章 エディタの使い方 テキスト、プログラム、データの作成・編集およびファイルの作成・編集には「エディタ」 と呼ばれるファイル編集コマンド を使って行います。 エデ ィタには大きく分けて次の 2 種類があります。 ライン (行) エデ ィタ スクリーンエデ ィタ (画面型エデ ィタ) ラインエディタとは、行単位に表示、修正を行ないます。したがって、ラインエディタにはカー ソル移動という概念はありません。 スクリーンエディタとは、ラインエディタを画面対応化させたもので、ファイルの内容を画 面に表示して、カーソルを移動させながら修正等が容易にできるように工夫されたものです。 UNIX におけるエデ ィタには \ed", \ex", \vi", \emacs" 等があります。 コマンド 名 ed ex vi emacs 概 要 ラインエデ ィタ (UNIX 標準) ed の拡張版ラインエデ ィタ (UNIX 標準) スクリーンエデ ィタ。ex のコマンド を使うこともでき る (UNIX 標準) スクリーンエデ ィタ。パブリックド メインソフトウェア ここではよく使われる 2 種類のスクリーンエデ ィタ「 いて簡単に説明します。 45 vi 」と「 emacs 」の操作方法につ 6.1 vi エディタ \vi"(VIsual Editor) は、カリフォルニア大学バークレイ校で開発されたスクリーンエデ ィ タで、UNIX システムには標準で用意されています。はじめて使う方にとっては、扱いにくい エディタかも知れませんが、使い慣れていくと手離すことができないものになります。特に、 UNIX システムを管理する人には必須のエデ ィタです。 \vi" コマンド には、「入力モード 」、「コマンド モード 」、「コロンモード 」の 3 モード があり ます。この 3 つのモード を使って、ファイル等の作成・編集を行ないます。 入力モード キーボード から入力した文字がテキストとして入力さ れる。 コマンド モード カーソルの移動、文字の修正、削除、ファイル保存コマ ンド のコマンド を受け付け実行する。 コロンモード ラインエデ ィタ (ex) コマンド を実行する。 viのコマンドを 起動 受け付ける vi ファイル名 i, a, o キー等 コマンドモード 終了 入力モード ZZ ESC Q : キー vi キー キー入力がテキスト としてファイルの 内容になる キー ラインエディタの コマンドを受け付ける コロンモード 図 6.1: vi のモード 6.1.1 vi の起動 \vi" のコマンド 形式は次のとおりです。 コマンド 形式 sophia% vi ファイル名 ファイル名の指定を省略してもコマンド の起動はできます。\vi" が起動されると対話型画面 が表示されます。起動時のモード は「コマンド モード 」です。 46 操作例 sophia% vi vitest 3 0 2 1 ( \vitest" は新規作成するファイル名 ~ ~ ~ ~ ~ ~ ~ \vitest" [New le] 6.1.2 テキスト の入力 テキストを入力するときは、\ a "(Append の略) コマンド を入力します。ただし、入力した \ a " は画面に表示されません。これで、入力モード になりました。実際に次のようなテキス トを入力してみてください。途中で入力ミスをしてもそのまま続けてください。 Vi is a display oriented text editor based on 3 0 As you add text, 2 1 3 0 the lines with tilde characters 2 1 3 0 will scroll down toward 2 1 the bottom of the screen. 3 0 ex. 2 1 最後まで入力し終わったら Esc キーを押します。 Esc キーを押すことによって、入力モー ド からコマンド モード に戻ります。なお、 Esc キーを押すと、カーソルの位置が 1 つ前の文 字に移動します (この例では、ピリオド (.) に移動します) 。 注意 \vi" はあまりに長すぎる行は扱えません (せいぜい 2 行分程度) 。カーソ ルが右端付近にきたら改行するようにしてください。 47 カーソルの移動 6.1.3 カーソルの移動は、 「コマンド モード 」で行います。 k または " 6 h または 現在位置 - l または ! ? j または # 注意 矢印キーが使えない端末もありますので注意してください。 ファイルの保存 6.1.4 入力したテキストをファイルに保存するには、コロンモード で行います。コマンド モード か らコロンモード への変更は、コマンド モード の時に \ : " (コロン) を入力することによって変 3 0 更できます。コロンモード に変更したら \ w "(Write の略) を入力し、 2 1キーを押します。 1. Esc キーを押してコマンド モード にいることを確認します。 2. \ : " をタイプします (画面左下に : が表示されカーソルが移動します) 。 : 3. \ w " をタイプし 21キーを押します。 3 :w 0 3 2 0 1 4. \ w " コマンド が正常に実行されてファイルが保存されると、\vi" は、ステータス行に ファイル名、ファイル中の行数および文字数を表示します。 ''vitest'' [New file] 4 lines, 99 characters 48 ファイル名を指定しないで \vi" コマンド を起動した場合には、\ w " コマンド 実行時に 次のようなメッセージが表示されます。 No current filename この場合、\ w " コマンド の後にファイル名を指定します。 :w vitest 3 0 2 1 コマンド 実行時に次のようなメッセージが表示されます。 ''vitest'' [New file] 4 lines, 99 characters 6.1.5 vi の終了 \vi" を終了するには、コロンモード で \ q "(Quit の略) を入力します。 1. Esc キーを押してコマンド モード にいることを確認します。 2. \ : " をタイプします (画面左下に : が表示されカーソルが移動します) : 3. \ q " をタイプし 01キーを押します。 3 2 3 0 2 1 :q sophia% この他にも vi を終了するためのコマンド として次のようなコマンド があります。 コロンモード から :wq :q! 010 1 3 2 3 2 現在編集しているファイル名で保存し vi を終了する ファイルを保存しないで vi を終了する コマンド モード から ZZ 現在編集しているファイル名で保存し vi を終了する 49 文字の置換 6.1.6 ある文字を他の文字あるいは文字列に置換したいときは、\ s "(Substitute の略) コマンド を 使います。 例 2 行目の \A" を \As soon a" に変更する 1. カーソルを変更文字 \A" へ移動します。 Vi is a display oriented text editor based on ex. A s you add text, the lines with tilde characters 2. 置換コマンド \ s " を入力します (\A" が置換文字 \$" で表示されます) 。 Vi is a display oriented text editor based on ex. $ s you add text, the lines with tilde characters 3. 置換したい文字列を入力します。 Vi is a display oriented text editor based on ex. As soon a s you add text, the lines with tilde characters 4. Esc キーを押し、コマンド モード に戻ります (カーソルが左側に 1 つ移動します) 。 Vi is a display oriented text editor based on ex. As soon a s you add text, the lines with tilde characters 文字 (列) の変更 6.1.7 文字 (列) の変更には、\ cw " (Change Word の略) コマンド を使います。 例 2 行目の \soon" を \slowly" に変更する 1. カーソルを変更するワード \soon" の 1 文字目 \s" へ移動します。 Vi is a display oriented text editor based on ex. As s oon as add text, the lines with tilde characters 50 2. 変更コマンド \ cw " を入力します (変更ワード の最終文字が置換文字 \$" で表示され ます) 。 Vi is a display oriented text editor based on ex. As s oo$ as add text, the lines with tilde characters 3. 変更したい文字列を入力します。 Vi is a display oriented text editor based on ex. As slowly as add text, the lines with tilde characters 4. Esc キーを押し、コマンド モード に戻ります (カーソルが左側に 1 つ移動します) 。 Vi is a display oriented text editor based on ex. As slowl y as add text, the lines with tilde characters 行全体の変更 6.1.8 カーソルのある行全体の文字列を、他の文字列へ変更したい時に使います。行全体の変更に は、 \ cc " (Change to Change の略) コマンド を使います。 例 3 行目全体を \the subsequent text" と変更する 1. カーソルを 3 行目の先頭文字に移動します。 Vi is a display oriented text editor based on ex. As you add text, t he lines with tilde characters will scroll down toward the bottom of the screen. 2. 変更コマンド \ cc " を入力します (3 行目の文字列が消えます) 。 Vi is a display oriented text editor based on ex. As you add text, will scroll down toward the bottom of the screen. 51 3. 置換したい文字列を入力します。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down toward the bottom of the screen. 4. Esc キーを押し、コマンド モード に戻ります (カーソルが左側に 1 つ移動します) 。 Vi is a display oriented text editor based on ex. As you add text, the subsequent tex t will scroll down toward the bottom of the screen. テキスト の挿入 6.1.9 カーソルのある位置から新しく文字あるいは文字列を挿入したい時に使います。文字列の挿 入には \ i "(Insert の略) コマンド を使います。 例 4 行目の \down" と \toward" の間に \quickly" と挿入する場合 1. 文字の挿入箇所へカーソルを移動します。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down t oward the bottom of the screen. 2. 文字挿入コマンド \ i " を入力します (画面には変化はありません) 。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down t oward the bottom of the screen. 52 3. 入力したい文字列 (\quickly") を入力します。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down quickly t oward the bottom of the screen. 4. Esc キーを押し、コマンド モード に戻ります (カーソルが左側に 1 つ移動します) 。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down quickly toward the bottom of the screen. 6.1.10 文字の削除 カーソル位置にある 1 文字を削除したい時には、\ x " コマンド を使います。 例 4 行目、\toward" という単語の \ward" という文字列を削除する場合 1. 削除する文字へカーソルを移動します。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down quickly to w ard the bottom of the screen. 2. \ x " を 4 回入力すると 4 文字、文字が削除されます (\ 4x " と入力してもよい) 。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down quickly t o the bottom of the screen. 53 6.1.11 行の挿入 カーソルのある行の上下に新たに行を作成したい時には、コマンド モード にて \ o "(英小文 字の \オー") または \ O " (英大文字の \オー") コマンド を使います。このコマンド を実行す ると、モード はコマンド モード から入力モード に切り替わります。 上の行に挿入 O キー 6 現在位置 ?o キー 下の行に挿入 例 1 3 行目と 4 行目の間に新しい行を挿入する場合 1. 3 行目にカーソルを移動します。 Vi is a display oriented text editor based on ex. As you add text, t he subsequent text will scroll down quickly to the bottom of the screen. 2. \ o " を入力します。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down quickly to the bottom of the screen. 3. 入力したい文字 (列) を入力し、入力し終ったら Esc キーを押します。 54 例 2 3 行目と 4 行目の間に新しい行を挿入したい場合 1. 4 行目にカーソルを移動します。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text w ill scroll down quickly to the bottom of the screen. 2. \ O " を入力します。 Vi is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down quickly to the bottom of the screen. 3. 入力したい文字 (列) を入力し、入力し終ったら Esc キーを押します。 6.1.12 行の削除 カーソルのある行全体を削除するには、コマンド モード にて \dd " コマンド を使います。 操作例 1 1 行削除の場合 1. 削除したい行にカーソルを移動します。 V i is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down quickly to the bottom of the screen. 2. \ dd " を入力します。 A s you add text, the subsequent text will scroll down quickly to the bottom of the screen. 連続する複数行を一度に削除したい場合、\ dd " と入力する前に何行削除するかを数字で入 力します。入力した数字は画面に表示されません。 55 操作例 2 複数行削除の場合 (ここでは 2 行とします) 1. 削除したい行にカーソルを移動します。 V i is a display oriented text editor based on ex. As you add text, the subsequent text will scroll down quickly to the bottom of the screen. 2. \ 2dd " を入力します t he subsequent text will scroll down quickly to the bottom of the screen. 6.1.13 vi のコマンド ◎カーソル移動コマンド 1 文字ずつの移動 # " ! or or or or h or BS j k l or スペースキー 左へ 1 文字移動 下へ 1 文字移動 上へ 1 文字移動 右へ 1 文字移動 ※ 矢印キーや BS キーは、端末によって使えない場合があります。 ワード 単位の移動 b w 前のワード に移動 次のワード に移動 行単位の移動 ^ $3 or 0 行頭に移動 0 21 行末に移動 次の行の先頭に移動 Ctrl +b Ctrl +u Ctrl +f Ctrl +d 前のページに移動 半ページ前方に移動 次のページに移動 半ページ後方に移動 画面単位の移動 56 ◎テキスト の挿入・追加コマンド a A i I o O カーソルの後に文字列を追加 カーソル行の末尾に文字列を追加 カーソルの前に文字列を挿入 カーソル行の先頭に文字列を挿入 カーソル行の下に行を追加する カーソル行の上に行を挿入する ※ これらのコマンド を入力すると入力モード になります。入力モード の解除は Esc キーです。 ◎テキスト の変更コマンド s cw C cc カーソル位置の 1 文字を変更する カーソル位置の右にある 1 ワード を変更する カーソル位置から、その行の終りまでを変更する カーソル行全体を変更する ◎テキスト の削除コマンド x dw dd カーソル位置の 1 文字を削除する カーソル位置の 1 ワード を削除する カーソルがある行を削除する ◎テキスト の検索コマンド /文字列 指定文字列をカーソル位置から前方 (テキストの最終行) へ向かって検索する ?文字列 指定文字列をカーソル位置から後方 (テキストの先頭行) へ向かって検索する 1. / または ? を入力します。 2. カーソルが画面左下に移動して / または ? が表示されるので、表示の後に検索した 3 0 い文字列を入力し 2 1キーを押します。 3. 検索が実行され、最初に見つかった文字列の先頭にカーソルが移動します。 4. 繰り返し検索する場合は、\n" を入力します。 ◎取り消しコマンド u 直前のコマンド を取り消して、元の状態に戻します。 57 6.2 Emacs エディタ ここで紹介する Emacs は、Richard M.Stallman 作成の GNU-Emacs (copyright c 1985,1986 Richard M.Stallman) です。Emacs は、UNIX システムで利用できる画面エディタの 1 つで、vi と比べると非常に便利な機能を数多く備え、初心者のユーザにとっても使い易く工夫されてい ます。 Emacs では、英数字はそのまま挿入され、各コマンド (カーソルの移動等) はすべてコント ロール文字 ( Esc キーおよび Ctrl キー+文字) に設定されています。また、ファイルを編集す る際のバッファを複数持つことができるので、いくつかのファイルを参照しながら作業するこ とができます。現在利用できる Emacs 1 では、漢字 (JIS コード ) ファイルを編集することもで きます。なお、ここでは Emacs で使われるコマンド を次のように省略して表すことにします。 省略名 C-x M-a 6.2.1 Emacs 意 味 Ctrl キーを押しながら \x" を入力 Esc キーを 1 回押し、次に \a" を入力 の起動 Emacs のコマンド 形式は次のとおりです。 コマンド 形式 sophia% emacs ファイル名 ファイル名を省略すると図 6.2のような初期画面が表示されます。ファイル名の指定を省略 してもコマンド の起動はできます。 この状態で \ C-l "( Ctrl キーを押しながら \ l "(エル) キーを押す) を入力するとメッセー ジは消えます。 Emacs 初期画面の説明 C-h Emacs のヘルプ機能を呼び出す C-x u 1 回分の変更 (通常は 1 つのコマンド ) を取り消す C-h C-d Emacs の最新バージョンについての情報を表示する C-h t 英文による Emacs 自習用の手引が表示される C-h T 日本語による Emacs 自習用の手引が表示される 作成、編集したいファイル名を入力し、Emacs を起動すると図 6.2のようなメッセージは表 示されず、図 6.3 のような画面が表示されます。なお、編集するファイルに文字等のデータが 入っている (すでに存在しているファイル名を指定する) 場合には、その内容が画面に表示さ れます。 操作例 sophia% emacs le 1 この 3 0 2 1 Emacs を日本語をはじめとする多言語対応にした物が \mule" です。 58 図 6.2: emacs 起動時の画面 (ファイル名指定しない場合) 白抜き文字部分は「モード 行」と呼ばれる部分で、\(New file)" と表示されている部分は 「ミニバッファ」と呼ばれる部分です。また、現在の入力モード は、\英数字入力モード " になっ ています。 「ヘルプ機能 (C-h) 」または「自習用の手引き機能 (C-h t または C-h T) 」を実行した場 合の終了方法は次の通りです。 1. 「ヘルプ機能」または「自習用の手引き機能」の内容が表示されている状態で、\ M-x "( Esc キーを押し、次に \ x " を押す) と入力します。ミニバッファに \M-x" と表示され ます。 2. この状態にて \kill-buer" と入力し、21キーを押します。 3 0 3. ミニバッファに \Kill-buffer: (default xxxx)" と表示されますので、そのまま 21 キーを押します。(xxxx には、モード 行にある NEmacs:の後に表示されている文字列が 表示されます) 3 0 以上で、 「ヘルプ機能」または「自習用の手引き機能」を起動させる前の状態に戻ります。 6.2.2 テキスト の入力 Emacs は、起動された時から挿入モード になっているため、カーソルの表示されている位置 から文字を入力することができます。実際に次のようにテキストを入力してみて下さい。 59 テキスト入力待ち状態 入力モード 作成・編集ファイル名 モード行 ミニバッファ 新規作成時に表示される 図 6.3: emacs 起動時の画面 (ファイル名指定した場合) Type C-h t for a tutorial on using Emacs. 3 0 'C-' means use Ctrl key. 2 1 3 0 C-x u to undo changes. 2 1 3 0 2 1 6.2.3 カーソルの移動 次のコマンド を入力することによって、カーソルを現在の位置から上下左右に移動すること ができます。 C-p または " 6 C-b または 現在位置 - C-f または ! ? C-n または # 注意 矢印キーが使えない場合もありますので、注意して下さい。 60 文字の消去 6.2.4 次のコマンド を入力することによって、文字を消去することができます。 C-d DEL キー カーソル上の文字を消去 (カーソルは移動しない) カーソルの前にある文字を消去 (カーソルは左に移動) 注意 誤って文字を消去した時は、\C-x ば元に戻せます。 u"(undo) コマンド を使え 操作例 1 \C-d" の使い方 次のようなテキストがあり、カーソルが \C-h" の \C" の位置にあるとします。 Type C -h t for a tutorial on using Emacs. 'C-' means use Ctrl key. C-x u to undo changes. この状態で \C-d" を押すと、 Type - h t for a tutorial on using Emacs. 'C-' means use Ctrl key. C-x u to undo changes. というように、カーソル上にある文字が 1 文字削除されます。 操作例 2 DEL キーの使い方 次のようなテキストがあり、カーソルが \-h" の \-" の位置にあるとします。 Type - h t for a tutorial on using Emacs. 'C-' means use Ctrl key. C-x u to undo changes. この状態で DEL キーを押すと、 Type - h t for a tutorial on using Emacs. 'C-' means use Ctrl key. C-x u to undo changes. というように、カーソルの前にある文字 (この場合、空白) が 1 文字削除されます。 61 ファイルの保存 6.2.5 入力したテキストを保存するには、\ C-x C-w " と入力すると保存するファイル名の入力 3 0 を促してきますので、保存ファイル名を入力して 2 1キーを押すことによってテキストが保存 されます。 1. \C-x C-w" を入力します。 Write file: ~/ 2. ファイル名を入力します。 Write file: ~/le1 保存ファイル名 ~/file1 の \~(チルダ )" は、ホームディレクトリ (ログイン後に \pwd" コマンド で表示されるデ ィレクトリ) を意味します。 3. ファイルの保存処理が正常に終了すると、画面最終行に次のような表示がされます。 Wrote /shome/succ/t-jouchi/file1 6.2.6 Emacs の終了 Emacs を終了するには、\ C-x C-c " と入力します。作成、編集中のテキストがまだファイ ルに保存されていなければ、次のように保存するかどうかをシステムが聞いてきます。 Save file /shome/succ/j-jouchi/file1? (y or n) ここで、\y" と入力すると作成、編集中のテキストをファイルに保存し、Emacs を終了しま す。\n" と入力すると次のように再確認のメッセージが表示されます。 1 modified buffer exists, do you really want to exit? (yes or no) ここで、\yes" と入力すると作成、編集中のテキストをファイルに保存せずに Emacs を終了 します。\no" と入力すると Emacs は、終了しないでカーソルがテキスト入力位置に戻り、テ キスト挿入状態になります。 62 6.2.7 日本語入力 センターがサポートしている Emacs は日本語入力 2 ができるようになっています。漢字コー ド は JIS コード で、入力方法はローマ字入力です。 日本語を入力したい場合は、以下の操作にしたがってモード 行を日本語入力モード に変更す る必要があります。 1. モード 行の表示が次のように (英数字入力モード ) なっていることを確認します。 モード行が、英数字入力モード 2. この状態で、C-n ( Ctrl キーを押しながら n キーあるいは = Y キー) を押すと、次のよう にモード 行が [----] から [ a あ] に変わり、日本語入力モード になります。 モード行が、日本語入力モード それでは実際に入力してみましょう。ここでは例として次のような文章を入力してみること にします。 わたしはじょうちたろうです。 ローマ字で次のようにタイプします。 watasihajouchitaroudesu. 入力ミスした場合、C-f または C-b で間違えた文字までカーソル移動し、C-d または DEL キーを押して間違えた文字を削除してから正しい文字を入力します。 入力したローマ字が次々とかなに変換され、最後まで入力し終わると次のようになります。 |わたしはじょうちたろうです。 | \|" はフェンスと呼び、この状態をフェンスモード といいます。フェンスモード では通常の コマンド は使えず、フェンス内 (|と|で囲まれた部分) を編集するコマンド しか使えません。 カーソル移動コマンド および文字削除コマンド が使えます。 それでは、実際に編集してみます。上の文章のうち、 「たろう」を「はなこ」に替えてみます。 2 センターでは、かな漢字変換サーバとして wnn および canna をサービスしています。本冊子のの説明は、か な漢字変換サーバとして wnn を使用した場合です。 63 1. C-b で、カーソルを「た」に移動させます。 |わたしはじょうち た ろうです。 | 2. 文字削除コマンド C-d を使って、「たろう」の 3 文字を削除します。 |わたしはじょうち で す。 | 3. ローマ字で \hanako" と入力します。 |わたしはじょうちはなこ で す。 | 4. 修正が終了したら、21キーを押します。 3 0 わたしはじょうちはなこ で す。 3 0 「はなこ」を「たろ 2 1キーを押すと、フェンスがとれて文字が確定されます。この状態で、 う」に修正してみてください。 それでは次に、かな漢字変換をおこなってみましょう。入力文字は先と同じとします。 1. ローマ字で \watasihajouchitaroudesu." と入力します。 |わたしはじょうちたろうです。| 2. SPC キー、C-w のいずれかを入力します。ミニバッファに次のようなメッセージが表 示されます。 ホスト sagami の WNN を起動しました。 漢字変換システムをはじめて使うときは辞書ファイル (頻度ファイルとも言う) が未登録 なため、 「辞書ファイルを作りますか? 」という問いかけがミニバッファに表示されます。 3 0 全てに \yes" と入力して 2 1キーを押して下さい。\yes" と答えるのは、全部で 11 回あり ます。登録される辞書名は、以下の 10 個です。 kihon.frq setsuji.frq koyuu.frq special.frq chimei.frq symbol.frq computer.frq tankan.frq jinmei.frq private 64 3. ミニバッファに次のようなメッセージが表示されます。 Loading /usr/local/lib/gnu18.55/lisp/eggrc-v4... 4. 更にミニバッファに次のようなメッセージが表示されます。 LOADING eggrc-v4... 5. 再度ミニバッファに次のようなメッセージが表示されて、モード行が [漢字] に変わります。 Loading /usr/local/lib/gnu18.55/lisp/eggrc-v4...done 6. 次のように、文章の一部が漢字に変換されます (頻度の違いで表示が異なることがあり ます) 。 | 私 は 常置 太郎です。 | 7. 「上智」が「常置」になっているので、C-f でカーソルを「常」に移動させます。 |私は 常 置 太郎です。 | 8. ここでもう一度 SPC キーまたは、C-w を入力し、再変換します。 |私は 上 智 太郎です。 | 「上智」にならない時は、再度、 SPC キーまたは、C-w を入力し、再変換します。 9. 「上智」になったら、21キーを押して文章を確定します。確定が終了すると、モード 行 3 0 が [ a あ] に変わります。 以上で、漢字変換終了です。次に、かな漢字変換途中での文字列の訂正を行なってみます。 65 モード行が変わる 1. 次のようなフェンスモード になっている状態を確認します。 | 私 は 常置 太郎です。 | 2. 「太郎」を「花子」に変えたいとします。 DEL キーを押し、漢字変換前の状態にします。 |わたしはじょうちたろうです。| モード 行が [ a あ] に変わります。 モード行が変わる 3. C-b で「た」にカーソルを移動させます。 |わたしはじょうち た ろうです。 | 4. C-d を 3 回入力して「たろう」の 3 文字を削除します。 |わたしはじょうち で す。 | 5. \hanako" と入力します。 |わたしはじょうちはなこ で す。 | 6. SPC キーまたは、C-w を入力します。 | 私 は 上智 花子です。 | 66 モード 行が [漢字] に変わります。 再度変換することにより、漢字モードに変わる 7. 変換できたら 21キーを押し、確定します。 3 0 私は上智花子です。 以上で、訂正作業終了です。 67 6.2.8 Emacs のコマンド ここでは、いままで紹介してきたコマンド を含め、代表的な Emacs コマンド を紹介します。 コマンド 操作の記述方法とその操作方法は、次のようになります。 記述方法 C-h C-h t M-f 操 作 方 法 Ctrl キーを押しながら h を入力する Ctrl キーを押しながら h を入力した後に、t を入力する Esc キーを押した後に f を入力する 1. help 機能 C-h C-h C-h C-h C-h C-h 2. t c k f a g コマンド 名 コマンド 名 機能名 キーワード 基本機能を学習する為の手引を表示する コマンド の簡単な説明が一行表示する コマンド の詳細な説明が表示する 機能に関する説明が表示する キーワード に関係する説明が表示する ヘルプ機能を終了する カーソル制御 C-f C-b C-n C-p M-f M-b C-a C-e M-a M-e M-< M-> C-v M-v 右へ 1 文字分移動する (forward-character) 左へ 1 文字分移動する (backward-character) 下の行へ移動する (next-line) 上の行へ移動する (previous-line) 右側の単語の最後尾の次に移動する (forward-word) 左側の単語の先頭に移動する (backward-word) 行頭へ移動する (beginning-of-line) 行末へ移動する (end-of-line) 文章の頭に移動する (forward-sentence) 文章の終りに移動する (backward-sentence) テキストバッファの先頭へ移動する (beginning-of buer) テキストバッファの最後尾へ移動する (end-of-buer) 次の表示ページの先頭へ移動する (scrool-up) 前の表示ページの最下行へ移動する (scroll-down) 68 3. 文字変換 SPC , C-w かな漢字変換 M-k M-h M-s カタカナ変換 ひらがな変換 変換の候補一覧を表示する。 (候補一覧が 1 行に収まらないときは C-n で次の候補一覧を見ることが できます。前の候補に戻るには、C-p を入力します。候補の中から変換 したい文字を選ぶ時は、各候補の先頭の数字を入力するか、C-f や C-b 3 0 でカーソルを移動した後、 2 1 キーを押します。) 4. 文節区切りの変更 C-o C-i 5. 繰り返し指定 C-u コマンド の繰り返し回数を指定する [例] C-u 8 C-f 6. カーソルを 8 文字分前進させる。 途中終了指定 C-g 実行中および入力中のコマンド の取り消しを行う [例] C-u 100 C-g C-f 7. 区切りを長くする 区切りを短くする コマンド の繰り返し指定が取り消され、 カーソルが右へ 1 文字だけ移動する 挿入と削除 DEL C-d M- DEL M-d C-k M-k C-y M-y C-x i カーソルの直前にある 1 文字を削除する カーソル上の 1 文字を削除する カーソルの直前にある単語を削除する カーソルの右の 1 単語を削除する カーソルから行の終りまで削除する カーソルからセンテンスの終りまで削除する 直前に削除した内容を再表示する 以前に削除した内容を再表示する 指定したファイルの挿入 69 8. 操作の取り消し (Undo) C-x u 9. 直前に実行したコマンド の処理を取り消し、実行前の状態に戻す ファイルの呼び出し C-x C-v ファイル名 指定したファイルを画面上に表示する。また、ファイル 名を省略して入力すると、ファイル名の入力を促すので、 3 0 読み込むファイル名を入力し、2 1キーを押す。 10. ファイルの保存 新しいテキストを作成、編集した時は、テキストの内容をファイルに保存する必要があ ります。 C-x C-s C-x C-w 画面上のテキストを呼び出した時のファイル名で保存 する。 ファイル名 指定したファイル名で画面上のテキストを保存する。ま た、ファイル名を省略して入力すると \Write File" と 3 0 聞いてくるので、保存するファイル名を入力し、2 1キー を押す。 C-x C-c 11. テキストを保存せずにエデ ィタを終了する。 文字列の検索 C-s 文字列 C-r 入力された文字列をカーソル位置からテキスト末尾に向 かって検索し、カーソルは最初に現われた文字列の位置 に移動する。文字列を入力しないと、\I-search と聞い てくるので、検索したい文字列を入力する。文字列が入 力されると検索が開始される。また前回検索した文字列 を再度検索するときは、\C-s" を入力すると再び検索が 開始される。 Esc キーを押すと検索処理が終了する。 文字列 入力された文字列をカーソル位置からテキストの先頭に 向かって検索する。 70 12. ウィンド ウ操作 Emacs では、画面を 2 つ以上のウィンド ウに分けることができます。分けられたウィン ド ウには、異なるバッファの 1 部分、もしくは 1 つのバッファの異なる部分を表示する ことができます。 C-x 0(ゼロ) C-x 1 C-x 2 C-x o(オー) C-l(エル) 13. 選択されたウィンド ウを消去する 選択されたウィンド ウ以外を全て消去する 選択されたウィンド ウを上下 2 つに分ける 他のウィンド ウを選択する 全表示画面を再表示する。画面が何らかの原因で乱れた 時に使用する。 バッファ操作 C-x C-b C-x b バッファ名 C-x k バッファ名 バッファ名 現在あるバッファのリストを表示する 指定バッファを選択又は作成する 指定バッファ名を削除する バッファのモード ファイル名 ファイルの大きさ GNU-Emacs の機能は非常に多く、全ての機能を紹介することはできません。ここで説明し た基本的な使い方の他にも便利な機能が数多くあります。それらの機能の詳細については、前 述したヘルプ画面 (英文表示) を参照するか、 『 Emacs 入門』(電子計算機センター発行) 『初めて使う GNU Emacs 』(宮城史朗著、矢吹道郎監修 啓学出版) 『 GNUEmacs マニュアル』(Stallman 著 共立出版) 『 GNU Emacs 』(Cameron & Rosenblatt 著 ソフトバンク) などを参考にしてください。 71 第 C 7 章 シェル 7.1 C シェルとは? UNIX システムのユーザインターフェースを構成しているプログラムをシェル と呼んでい ます。代表的なシェルには、B シェル (Bourne shell) と C シェルがあります。 C シェルは、カリフォルニア大学バークレー校でビル・ジョイ (Bill Joy) が作成したシェル で、シェルスクリプトの構文を C 言語に類似した形にしたため、C シェルと呼ばれています。 C シェルには、履歴機能, 別名 (alias) 機能, ジョブ制御などの便利な機能が多数用意されてい ます。 7.2 履歴機能 C シェルの組み込み変数の 1 つである履歴機能 (History 機能) によって、入力したコマンド を記憶させることができます。この機能を使うと、少しのキー操作で、コマンド の繰り返し実 行コマンド のタイプミスを修正して再実行といったことができます。 7.2.1 入力コマンド 記憶回数のセット シェルに対して、最新の入力コマンド をバッファに記憶させるには次のように入力します。 操作例 sophia% set history=10 01 3 2 上記の例では、最新の 10 件分の入力コマンド がバッファに記憶されます。 72 履歴リスト 7.2.2 ヒストリ・バッファの内容 (コマンド 番号とコマンド 文字列) を表示するには、次のように 入力します。 操作例 3 0 sophia% history 2 1 1 set history=10 2 ls -l 3 cat > myfile 4 cc myfile.c 5 history コマンド 番号の表示 7.2.3 現在のコマンド 番号をシェルのプロンプトの一部として、画面上に表示させるには、次のよ うに入力します。 操作例 sophia% set prompt='sophia[n!]% ' sophia[6]% 3 0 2 1 コマンド の繰り返し入力 7.2.4 コマンド の繰り返し入力機能によって、すでに入力した複数のコマンド 行やその 1 部を繰り 返し実行する事ができます。コマンド の繰り返し実行に良く使うコマンド は、\ !! " と \ !$ " です。 !! 直前に入力したコマンド 行の再実行 操作例 sophia[7]% cat myle 3 2 0 1 myle の内容 sophia[8]% !! cat myfile 3 0 2 1 myle の内容 sophia[9]% システムは、\ !! " で繰り返されたコマンド 行を画面に表示するので、期待したコマン ド 行かどうかを確認することができます。 73 直前に入力したコマンド 行の最後の単語の再入力 (例えば、cat コマンド で画面表示し たファイルをプ リンタに出力する場合) !$ 操作例 01 3 2 sophia[9]% cat myle ( この場合、最後の単語は myle myle の内容 sophia[10]% LPR !$ LPR myfile 01 3 2 ( この場合 myle が最後の単語になっている コマンド の置き換え 7.2.5 ミスタイプなどした時、直前に入力したコマンド の 1 部を修正し、再度実行するような場合 は、コマンド 置換記号 \ ^ " (^変えたい文字,^変える文字) を使って間違いを修正できます。 操作例 ( 本当は mkdir と入力したかった 3 0 1 sophia[11]% mdkir prog 2 mdkir: Command not found 3 0 sophia[12]% ^dk^kd 2 1 mkdir prog 以前のコマンド 入力をもう 1 度実行 7.2.6 例えば、\vi" を使ってプログラムを作成し、コンパイル後のエラー箇所を修正するような時 は、次のように操作すると非常に便利です。 1. 文字列の一致によるコマンド の実行 !文字列 ! の後の文字列が history バッファ内のコマンド 文字列 と比較され一致したコマンド が実行される。 操作例 0 1 3 0 sophia[13]% cd prog 2 1 3 sophia[14]% vi main.c 2 vi を利用して main.c の作成 sophia[15]% cc main.c 3 0 sophia[16]% !v 2 1 vi main.c 3 0 2 1 この例では、\!v" でも \!vi" でも同じ結果になります。 74 2. コマンド 番号入力によるコマンド の実行 !コマンド 番号 !の後に history バッファ内のコマンド 番号を入力すると その番号のコマンド が実行される。 操作例 sophia[16]% !14 vi manin.c 01 3 2 history 内に同じ文字列で異なるものが含まれている場合に有効です。 [例] 1 vi test 2 vi shiken 7.3 別名機能 別名機能を使うには \alias" コマンド を使います。このコマンド は、頻繁に使うコマンド や コマンド 列の省略形を作成することができます。コマンド の別名を作成するには、\alias" と入 力した後に、\コマンド の別名" と \正式なコマンド 文字列" を入力します。 コマンド 形式 sophia% alias コマンド の別名 正式なコマンド 文字列 01 3 2 例 1 \logout" コマンド を \lo" に省略したい場合 3 0 2 1 sophia% alias lo logout 3 0 sophia% lo 2 1 (x) host > また、alias 機能を使うと任意の文字列をコマンド に置き換えることもできます。 例 2 自分で使用する \ls" コマンド には、常に \-l (エル)" オプションを付けて使いたい場合 3 2 0 1 sophia% alias ls 'ls -l' 3 0 sophia% ls 2 1 total 40 -rw-r----- 1 t-jouchi stud -rw-r--r-- 1 t-jouchi stud 29 Aug 59 Aug 3 18:13 file1 3 18:16 file2 75 例 3 \rm" コマンド を \-i" オプション (削除してもよいかの問い合わせする) を付けて使用す る場合 sophia% alias rm 'rm -i' 3 0 sophia% rm delle 2 1 rm: remove delfile? 3 0 2 1 ( このファイルを削除して良ければ \y" と入力する コマンド の入力とシェル変数 7.4 ワイルド カード 文字の利用 7.4.1 ワイルド カード 文字には以下のようなものがあり、これらを使用すると入力を簡素化するこ とができます。 ? [list] [low-high] * ~(チルダ ) str{str1, str2, …} 任意の 1 文字とマッチする list 中の 1 文字とマッチする low と high の範囲にある文字とマッチする 任意のパターンとマッチする ホームデ ィレクトリを示す str を共通部として持つものを展開する 例 1 ワイルド カード 文字 \ ? " の使用例 3 0 2 1 sophia% ls a.out bin abc mbox 3 0 sophia% rm test.? 2 1 3 0 sophia% ls 2 1 a.out bin abc mbox sophia% ( new test.o test.s test.c test.org \test." に任意の 1 文字が付くファイルを削除する new test.org 例 2 ワイルド カード 文字 \ * " の使用例 sophia% ls a* a.out sophia% 3 0 2 1 abc ( \a" で始まるファイルを表示する 76 例 3 \ * " と [list] を組み合わせた使用例 3 0 2 1 sophia% ls test.c test.o 3 0 sophia% rm *.[cs] 2 1 3 0 sophia% ls 2 1 test.o sophia% ( test.s \.c" か \.s" で終るファイルを削除する 例 4 [low-high] の使用例 3 0 2 1 sophia% ls file1 file2 sophia% cat le[1-3] > le sophia% ls file sophia% 3 0 2 1 file1 ( 3 2 0 1 file3 file1, file2, file3 を 1 つのファイル file にまとめる file2 file3 例5 の使用例 sophia% ls 3201 自分のホームデ ィレクトリ下のファイル一覧が表示されます。 例 6 str{str1,str2, …} の使用例 3 0 2 1 sophia% ls c test file1 file2 3 0 sophia% ls c 2 1 test* test1 sophia% cp c/ftest1,test2g test file3 test2 ( c/test1, 3 0 2 1 c/test2 を test という デ ィレクトリにコピーする 3 0 2 1 sophia% ls test test1 test2 sophia% 77 7.4.2 シェル変数 \set" コマンド を使ってシェル変数を定義することができます。シェル変数は、予約語が決 められています (予約語を調べるには、\set" と入力してください) 。 sophia% set erc=/etc/rc 3 0 2 1 これで、シェル変数 \erc" に \/etc/rc" がセットされました。定義したシェル変数の内容 は、そのシェル変数に \$" を付けて参照することができます。 sophia% more $erc 3 0 2 1 定数の中の単語の数を調べるには、\$#変数名" とします。 sophia% set ml=(fujiwara k sasaki yabuki) 3 0 sophia% echo $#ml 2 1 3 3 2 0 1 次のようにすると、パス名の異なる部分も参照することができます。 例 echo $cf ! /usr/u/guest/gomi.c r echo $cf:r ! /usr/u/guest/gomi 先頭部分 h echo $cf:h ! /usr/u/guest 末尾部分 t echo $cf:t ! gomi.c 拡張子 e echo $cf:e ! c 修飾子 g (global:全体) set hd=(/usr/*) set ml=($hd:gt) hd に /usr の下のすべてのファイル名およびディレクト リ名が入り ml にその末尾部分のみ出力し、新たに ml とします。変数 hd の中の 1 つの単語を見るには、 echo $hd[2]:t 基本部分 などと指定します。 78 コマンド の置換 7.4.3 \ ^ " (ハット ) を使うとコマンド の置換ができます。 3 0 2 1 sophia% set d=`date` 3 0 sophia% ^d= ^e= 2 1 ( \e" という変数にも \date" の実行結果をセットする set e=`date` 3 0 sophia% echo $d 2 1 ( \date" の実行結果の出力が \echo" への引数となる Wed Aug 6 14:22:18 JST 1993 3 0 sophia% echo $e 2 1 Wed Aug 6 14:22:22 JST 1993 クォーティング 7.4.4 クォーティングには、次のような規則があります。 `cmd` nc 'str' "str" cmd を実行し、その出力で置き換える 文字 c をエスケープする (文字として扱う) 文字列 (str) をそのまま文字列として扱う 文字列 (str) をコマンド 置換および変数置換する 例 1 シングルクォーテーションの場合 3 2 0 1 sophia% echo '$USER' $USER ( $USER と言う文字列が echo への引数となる 例 2 ダブルクォテーションの場合 3 2 0 1 sophia% echo "$USER" t-jouchi ( USER という環境変数の内容が echo される。 79 7.5 ジョブ制御 ここでは、具体的に簡単なシェルプログラムを作成し、それを実行することによりジョブ制 御コマンド の説明を進めて行きます。 次のように自分の使えるエデ ィタ (ここでは emacs) を使用して、ホームデ ィレクトリの下 に \loop" と \work" というファイルを作成します。 ファイル \loop" の作成 スクリーンエデ ィタを使用してファイル \loop" を作成します。 1. エデ ィタ (emacs) を起動します。 sophia% emacs loop 3 0 2 1 2. ファイルの内容を以下のようにします。 while true do sleep 10 done 3. ファイルを保存して、エデ ィタ (emacs) を終了します。 ファイル \work" の作成 スクリーンエデ ィタを使用してファイル \work" を作成します。 1. エデ ィタ (emacs) を起動します。 sophia% emacs work 3 2 0 1 2. ファイルの内容を以下のようにします。 sleep 10 3. ファイルを保存して、エデ ィタ (emacs) を終了します。 次の例のように入力して1 、\loop" と \work" を実行形式にします。 sophia% chmod +x loop work 3 2 0 1 1 入力した内容については、5.4.4節 (41ページ) を参照のこと。 80 ジョブ制御に関連したコマンド には、以下のものがあります。 ジョブ制御コマンド command& ps jobs (-l) nohup command& fg %n bg %n ^ z stop %n notify %n set notify kill %n ^ c ジョブ制御コマンド コマンド をバックグラウンド ジョブとして実行する プロセス状態を表示する バックグラウンド ジョブの状態を表示する ログアウト後もコマンド を実行する ジョブ n をフォアグラウンド にする ジョブ n をバックグラウンド にする フォアグラウンド ジョブの実行を一時停止する バックグラウンド ジョブ n の実行を一時停止する ジョブ n の状態変化を通知する 任意のジョブの状態変化を通知するようにする ジョブ n を終了させる フォアグラウンド ジョブの途中終了 ( Ctrl +c) 先ほど作成したシェルプログラム (\loop") を実行しながら、ジョブ制御コマンド の使用例 を示します。 1. \loop" プログラムをバックグラウンド で実行します。 sophia% loop & 3 0 2 1 2. ジョブ [1] がプロセス番号 xxxx で実行されたことが表示されます。 [1] xxxx 3. 再度 \loop" プログラムをバックグラウンド で実行します。 sophia% loop & 3 0 2 1 4. ジョブ [2] がプロセス番号 yyyy で実行されたことが表示されます。 [2] yyyy 81 5. バックグラウンド ジョブの状態を表示します。 3 0 2 1 sophia% jobs [1] + Running loop [2] - Running loop ( ジョブ [1] が loop プログラムを実行している ( ジョブ [2] が loop プログラムを実行している sophia% jobs -l 2 1 ( オプション -l (エル) をつけるとプロセス番号も表示 [1] + xxxx Running loop [2] - yyyy Running loop 3 0 6. プロセスの状態を表示します。 sophia% ps PID xxxx yyyy zzzz 3 0 2 1 TTY ttyxx ttyxx ttyxx S S S R TIME CMD 0:00 /bin/sh loop 0:00 sleep 10 0:00 ps 表 示 PID TTY S CMD 意 味 プロセス ID 番号 使用端末番号 状態 (S:待ち R:実行) 実行コマンド 名称 7. ジョブ [1] を一時停止します。 3 0 2 1 sophia% stop %1 [1] +Stopped (signal) loop ( ジョブ [1] を停止したことを表示 8. バックグラウンド ジョブの状態を表示します。 sophia% jobs [1] +Stopped [2] -Running 3 0 2 1 (signal) loop loop ( ジョブ [1] が停止しているのがわかる 9. ジョブ [1] の実行を再開します。 sophia% bg %1 [1] loop & 3 0 2 1 82 10. バックグラウンド ジョブの状態を表示します。 sophia% jobs [1] Running [2] +Running 3 0 2 1 loop loop ( ジョブ [1] の実行が再開されている 11. ジョブ [1] を終了させます。 sophia% kill %1 3 2 0 1 12. バックグラウンド ジョブの状態を表示します。 3 0 2 1 sophia% jobs [1] Terminated [2] +Running loop loop ( ジョブ [1] が終了したことを表示 13. ジョブ [2] を終了させます。 sophia% kill %2 3 2 0 1 14. バックグラウンド ジョブの状態を表示します。 3 0 2 1 sophia% jobs [2] Terminated loop ( ジョブ [2] が終了したことを表示 15. バックグラウンド ジョブの状態を表示します。 3 0 2 1 sophia% jobs sophia% ( ジョブが何も実行されていないことがわかる 83 次に動作中のジョブを一時停止する方法を説明します。 1. \/etc/rc" ファイルを \more" コマンド で見ます。 sophia% more /etc/rc 3 0 2 1 : # @(#) /etc/rc $Revision: : : echo "Automatic reboot in progress..." >/dev/console 2. ^z ( Ctrl キーを押しながら \z" を押す) を実行します。 : # @(#) /etc/rc $Revision: : : echo "Automatic reboot in progress..." Stopped >/dev/console sophia% 画面左下側に \Stopped" というメッセージが表示され、コマンドプロンプト状態になり ます。 3. バックグラウンド ジョブの状態を表示します。 sophia% jobs [1] +Stopped 3 0 2 1 more /etc/rc ( \more /etc/rc" が一時停止している 4. ジョブ [1] の実行を再開します。 sophia% fg %1 3 2 0 1 : # @(#) /etc/rc $Revision: : : echo "Automatic reboot in progress..." >/dev/console 停止していた \more /etc/rc" の続きが画面に表示されます。 84 バックグラウンド 実行したジョブが終了したか否を判断するには うに \notify" を設定することで容易にできるようになります。 3 0 2 1キーを押すか、次のよ 1. \work" をバックグラウンド で実行します。 sophia% work & [1] +Running 3 0 2 1 work 2. 10 秒以上待ってから 21キーを押します。 3 0 sophia% [2] Done 3 2 0 1 work 3. \notify" を設定します。 3 0 2 1 sophia% set notify 4. \work" をバックグラウンド で実行します。 sophia% work & [1] +Running 3 0 2 1 work 5. 10 秒以上経つと、21キーを押さなくてもジョブが終了するとその状態を表示します。 3 0 [2] Done work 85 7.6 ディレクト リスタック機構 C シェルでは、スタック (最も最近に格納したものが先頭にあるような構造) を使って、複 数のディレクトリを取り扱うことができます。このための組み込みコマンド として、\pushd" 、 \popd" 、\dirs" があります。 コマンド 名 概要 dir をデ ィレクトリスタックに入れ、そこに移動する。 pushd dir pushd +n n 番目のデ ィレクトリを先頭にし、そこに移動する。 pushd (C シェルは、スタックの要素を 0 から教えます) 先頭の 2 つのデ ィレクト リを入れ替え、新たに先頭に なったデ ィレクトリに移動する。 dirs popd デ ィレクトリスタックを表示する。 popd +n 操作例 ディレクトリスタックの先頭のディレクトリを取り除き、 新たに先頭になったデ ィレクトリに移動する。 ディレクトリスタックから n 番目のディレクトリを取り 除く (0 から始まります) 3 0 sophia% pushd /etc 2 1 /etc ~ (3 デ0 ィレクトリ・スタックの内容が表示される sophia% pwd 2 1 /etc 3 0 sophia% pushd /usr 2 1 /usr /etc ~ 3 0 sophia% popd 2 1 /etc ~ 3 0 sophia% pwd 2 1 /etc 3 0 sophia% popd 2 1 ~ 3 0 sophia% pwd 2 1 /shome/succ/t-jouchi ( 自分のホームデ ィレクトリが表示される sophia% 86 7.7 C シェルの環境設定ファイル C シェルには、作業環境を定義するのに使う特別なファイルが 3 つあります。 ファイル名 .login .logout .cshrc 意 味 ログ インした時に使われるファイル ログアウトした時に使われるファイル シェルが起動されたときに使われるファイル これら 3 つのファイルを自分のホームデ ィレクトリの直下に作成 ( .login と .cshrc は登録 時に作成されています) し、それらのファイルに作業環境を定義するコマンド、変数等を設定 しておくことによって、端末の属性,コマンドプロンプト,コマンド のサーチパス名やファイ ルパーミッション等を制御することができます。また、自分専用のコマンド 等を自動的に使用 できるようにしたり、特別なログアウト方法を用いてログアウトしたり、その他、自分の好き なようにコマンド 等の実行を行うことができます2 。 7.7.1 .cshrc ファイル ログイン後、プロンプトを表示する前に .cshrc ファイルをホームディレクトリから探して、 実行します3 。 例 .cshrc ファイルの例 #.cshrc file sample #setup shell variables set path=(/usr/local/bin /usr/ucb /usr/bin /bin /usr/hosts \ /usr/local/mh /usr/local/im .) set history=20 #set up history list set savehist=20 #save for next login set prompt='!%' #put even number in prompt set ignoreeof #logout protection set noclobber #redirection protection #set up alias alias al alias al bye logout al h history al ldir 'ls -l !* | grep "^d"' al cx 'chmod +x' 2 .cshrc, .login 等のファイルを編集するときは、\cp" コマンド で、別名のファイルを作っておいてから行なっ てください。編集に失敗して、元の状態に戻したい場合、編集前に作っておいた別名のファイルから復元するこ とができます。 3 画面に何かを出力するようなコマンド は入れるべきではありません 87 7.7.2 .login ファイル ログ イン後、.login ファイルをホームデ ィレクトリから探して、実行します。 例 .login ファイルの例 #.login file sample echo Hellow $user ! echo -n "Last logout: ";cat ~/.lastlog stty intr ^c stty erase ^h stty kill ^u biff y from 7.7.3 .logout ファイル ログアウト時に、ホームディレクトリに .logout があれば、C シェルはこれを実行します。 例 .logout ファイルの例 #.logout file sample nohup echo -n "Logging out at: " date | tee ~/.lastlog echo BYE BYE 7.8 端末設定コマンド 自分が使っている端末の設定を行う時、あるいは、設定を変更するときには、\stty" コマン ド を使います。\stty" コマンド には、特定のキー入力に何らかの機能を持たせるものと、端末 自体に何らかの機能を持たせるものの 2 つの使い方があります。 いま自分の端末の設定がどの様になっているかを知るには、\stty all" と入力します。 操作例 sophia% stty all 3 2 0 1 #2 disc;speed 9600 baud; 24 rows; 80 columns erase = ^H; werase = ^W; kill = ^U; intr = ^C; quit = ^\; susp = ^Z ………………………………………………………………………………… ………………………………………………………………………………… この例は、Compaq AlphaServer ES40(sagami) で実行した場合です。SUN のマシン等で実 行すると表示形式が異なります。また、表示されている内容についてもユーザ毎に異なる場合 があります。 88 上記の例において、1 画面に表示できる行数は 24 行、1 行 80 桁で、文字の削除は \^H" ( Ctrl +h) 、コマンド ラインにおける入力文字列の一括削除は \^U" ( Ctrl +u) にそれぞれ割 当てられていることがわかります。これらの機能は \stty" コマンド を使って、自分用に設定 を変更することができます。 コマンド 形式 sophia% stty 機能名 割当てキー それでは、現在「文字の削除」に割り当てられているキー設定を \^E" に変えてみましょう。 操作例 sophia% stty erase ^e 3 0 sophia% stty all 2 1 01 ( キー設定の変更 3 2 ( 端末設定の確認 #2 disc;speed 9600 baud; 24 rows; 80 columns erase = ^E; werase = ^W; kill = ^U; intr = ^C; quit = ^\; susp = ^Z ………………………………………………………………………………… ………………………………………………………………………………… これで文字の削除は \^E" に割り当てられました。次に、端末自体に何らかの機能を持たせ る場合の説明をします。コマンド 形式は次のとおりです。 コマンド 形式 sophia% stty 機能名 例として、プロンプト、入力した文字等を画面に反映させない設定を行います。 操作例 sophia% stty -echo ( 画面に反映させないように設定 3 0 2 1 この状態で何か文字を入力しても画面には何も表示されません。例えば、この状態で \stty all" と入力してみて下さい。 操作例 sophia% ( \stty all" と入力します #2 disc;speed 9600 baud; 24 rows; 80 columns erase = ^E; werase = ^W; kill = ^U; intr = ^C; quit = ^\; susp = ^Z ………………………………………………………………………………… ………………………………………………………………………………… sophia% 89 再び画面に表示させるようにするには、次のように入力します。 操作例 01 ( 画面に表示させるように設定 3 2 sophia% stty echo これらの設定は、ログアウトすると解除されてしまいます。常時設定しておきたい時には、 \.login" もしくは、\.cshrc" ファイルに記述しておく必要があります。また、設定できる機 能名は数多くありますので、詳しくはオンラインマニュアルを参照してください。 7.9 環境設定 ここでいう「環境」とは、UNIX マシンにインストールされているアプ リケーション等を使 う上で必要な環境の事を言います。 環境設定を行う代表的なコマンド として、\setenv",\unsetenv",\printenv" があります。現在 の自分の環境状況をすべて知りたい場合は \printenv" コマンド を実行します。 操作例 0 3 sophia% printenv 2 1 TERM=vt100 ( 使っている端末のタイプ GWSOURCE=telnet HOME=/shome/succ/t-jouchi ( ユーザホームデ ィレクトリ SHELL=/usr/local/bin/tcsh ( 使っているシェル USER=t-jouchi ( ユーザ名 (ログ イン名) LOGNAME=t-jouchi PATH=/usr/local/bin:/usr/ucb:/usr/bin:/bin:/usr/hosts:/usr/local/mh:. :/usr/bin/X11 ( コマンド 検索パス HOSTTYPE=alpha VENDOR=dec OSTYPE=osf1 MACHTYPE=alpha PWD=/shome/succ/t-jouchi HOST=sagami I18NPATH=/usr/i18n JSERVER=sagami ( 日本語変換する際のサーバマシン名 EDITOR=/usr/local/bin/emacs ( アプ リケーションを使う際のエデ ィタ名 LESSCHARSET=ujis-jis PAGER=/usr/local/bin/less -is ( \man" コマンド でのページャー ………………………………………………………………………………… ………………………………………………………………………………… この例は、Compaq AlphaServer ES40 (sagami) で実行した場合の例です。他のマシンで実 行すると表示形式が異なります。また、表示されている内容についてもユーザによって異なる 場合があります。 90 また、ある環境変数だけを表示させたい場合は、 操作例 sophia% printenv EDITOR /usr/local/bin/emacs 3 0 2 1 環境変数を設定するには \setenv" を使います。 コマンド 形式 sophia% setenv 環境名 設定内容 例 1 \EDITOR" 環境を \/usr/ucb/vi" に変更したい場合 sophia% setenv EDITOR /usr/ucb/vi 3 0 sophia% printenv EDITOR 2 1 /usr/ucb/vi 3 0 2 1 sophia% setenv PAGER /usr/local/bin/less 3 0 sophia% printenv PAGER 2 1 /usr/local/bin/less 例 2 \man コマンド でのページャーに \less" コマンド を設定する場合 3 2 0 1 これらの設定は、ログアウトすると解除されてしまいます。常時設定しておきたい時には、 \.cshrc" ファイルに記述しておく必要があります。また、設定できる環境変数は数多くあり ますので、詳しくはオンラインマニュアルを参照してください。 設定されている環境変数を解除するには \unsetenv" コマンド を使います。 コマンド 形式 sophia% unsetenv 環境名 例 環境変数 EDITOR を解除したい場合。 sophia% unsetenv EDITOR sophia% printenv EDITOR sophia% 3 0 2 1 3 0 2 1 91 第 8 章 いろいろなコマンド UNIX には数多くのコマンド が用意されています。大抵のコマンド は、 /bin /usr/bin /usr/ucb /usr/local/bin /usr/local/bin/gnu というディレクトリの下にあります。ただし、これらのディレクトリ名は利用するシステム によって異なりますので、各自でコマンド が格納されているディレクトリに移動 (\cd" コマン ド 等を使って) して確認してください。ここでは、UNIX を使う上で便利と思われるコマンド をいくつか紹介します。 文字列の検索 文字数・行数の検索 文字列の並び変え 重複行の削除 文字変換 ファイルの比較 ファイルの圧縮・伸長 ファイルの探索 他ユーザとの会話 正規表現を使ったファイルの編集 grep wc sort uniq tr di compress, uncompress, gzip, gunzip nd phone, talk sed, awk (8.1節 (8.2節 (8.3節 (8.4節 (8.5節 (8.6節 (8.7節 p.93) p.95) p.96) p.97) p.99) p.100) p.101) (8.8節 : p.103) (8.9節 : p.104) (8.11節 : p.110) 他のコマンド については、オンラインマニュアルを利用してください。 92 : : : : : : : 8.1 文字列の検索 ファイルの中のある文字列を検索するための代表的なコマンド として \grep" コマンド があ ります。 コマンド 形式 sophia% grep オプション 検索パターン 検索対象となるファイル名… \grep" コマンド は、指定したファイルから読み込み、指定した検索パターンと一致する行だ けを出力するコマンド です (Global Regular Expression Print の略) 。オプションについては 数が多いので、オンラインマニュアルを参照してください。 例 1 \sophia" というファイルの中から、\abc" という文字列を含む行だけを出力 sophia% grep abc sophia 3 0 2 1 例 2 \sophia" というファイルの中から、行頭に \abc" という文字列を含む行だけを出力 3 0 2 1 ^ sophia% grep ' abc' sophia 例 3 \sophia" というファイルの中から、\a" あるいは \b" あるいは \c" で始まる行だけを 出力 ^ sophia% grep ' [abc]' sophia 3 2 0 1 例 4 \ls" コマンド の出力結果からサブデ ィレクトリ名を出力 ^ sophia% ls -l | grep ' d' 3 0 2 1 これらの例において、シングルクォテーション ( ' ' ) で囲まれた部分 (検索パターン) およ び検索パターンは正規表現と呼ばれ、検索する文字列を表現するのによく使われます。正規表 現については、8.10節 (p.108) を参照してください。 93 \grep" 以外にも、\fgrep", \egrep" というコマンド があります。コマンド 形式は、\grep" コ マンド と同じです。\grep" コマンド との主な違いは次のとおりです。 fgrep egrep 正規表現を利用することができない。つまり、あらかじ めわかっている文字列だけを検索する。\grep" コマンド より処理が速い。 \grep" コマンド より正規表現が豊か。 \grep", \egrep" コマンド における正規表現には表 8.1に示すようなものがあります (優先度の 低い順番) 。 表 8.1: 主な正規表現パターン表 正規表現 c nc ^ $ . [...] 意味 特殊な意味をもたない任意の文字 c は、その文字自身を 意味する 文字 c の特殊な意味をなくす 行の先頭 行の終わり 任意の 1 文字 ... のうちの任意の 1 文字, [a-z] のような範囲の指定も 有効 [^...] nn r* r+ r? r1r2 r1 | r2 n(rn) (r) ... のどれでもない任意の 1 文字 n 番目の n(...n) がマッチしたものを指す (\grep" のみ) ゼロ回以上の r の繰り返し 1 回以上の r の繰り返し (\egrep" のみ) ゼロ回または 1 回の r (\egrep" のみ) r1r2 という並び r1 あるいは r2 タグ付きの正規表現 r (\grep" のみ) 正規表現 r (\egrep" のみ) 94 8.2 文字数・行数を調べる ファイルに書かれている単語数,文字数,行数を調べるには、\wc" コマンド を使います。 コマンド 形式 sophia% wc オプション ファイル名… オプション 説明 -l(エル) -w -c 行を数える 単語数を数える 文字数を数える \wc" は指定したファイルから読み込み、必要に応じて、単語数,行数,文字数を出力しま す (Word Count の略) 。 例 1 \file" というファイルを読み込み、行数,単語数,文字数を出力 sophia% wc le 8 10 3 2 0 1 66 file ファイル名 最初の \8" は行数、次の \10" は単語数、最後の \66" は文字数をそれぞれ意味します。 例 2 \file" というファイルを読み込み、行数だけを出力 sophia% wc -l le 3 0 2 1 例 3 \file" というファイルを読み込み、行数と単語数を出力 sophia% wc -lw le 3 0 2 1 sophia% wc -lw le1 le2 3 2 0 1 sophia% ls -l | wc 例 5 \ls" コマンド 実行結果における行数,単語数,文字数を出力 例 4 \file1" と \file2" という 2 つのファイルを読み込み、行数と単語数を出力 3 0 2 1 95 8.3 文字列の並び変え ファイルに書かれている文字列を昇順,降順に並び変えるには、\sort" コマンド を使います。 コマンド 形式 sophia% sort オプション ファイル名… オプション -f -n -r -u +数字 -o le 説明 大文字小文字を区別しない 数字を数値として扱う 降順に出力する 出力に同じ行が続く時、2 行目以降を出力しない ソートするフィールド を指定する 結果を le に出力する (入力ファイルと同じで構わない) \sort" は指定したファイルから読み込み、文字列のソートを出力します。 注意 \+数字" のオプションは、ソートしたいフィールド が先頭のフィールド からいくつ先 (右) にあるか、という指定をします。したがって、2 番目のフィールド を指定したいと きは、先頭のフィールド から 1 つ先 (右) にあるので、\+1" と指定します。第 3 フィー ルド であれば \+2" となります。 96 sophia% cat 111 cc 999 22 bbb 888 333 aaa 777 111 cc 999 sophia% sort 111 cc 999 111 cc 999 22 bbb 888 333 aaa 777 sophia% sort 22 bbb 888 111 cc 999 111 cc 999 333 aaa 777 sophia% sort 333 aaa 777 22 bbb 888 111 cc 999 111 cc 999 sophia% sort 111 cc 999 22 bbb 888 333 aaa 777 le le 3 0 2 1 3 0 2 1 -n le +1 le -u le 3 0 2 1 3 0 2 1 3 0 2 1 8.4 重複行の削除 ファイルの中の同じ文字列の行を削除したい時には、\uniq" コマンド を使います。 8.3節の \sort" コマンド で \-u" オプションを使った場合と同じ様な動作をします。ただし、 同じ内容の行があっても、連続していなければ重複しているとは見なされません。したがって、 重複している行を完全に取り除きたい時は、対象となるファイルをあらかじめソートしておく 必要があります。 コマンド 形式 sophia% uniq オプション ファイル名… 97 オプション -c -d -u 説明 行の先頭に、重複の回数を付ける (同内容の行があっても、連続していなければ重複とは見なされない) 連続している同内容の行のみを、1 つの行にまとめて出力する (同内容の行があっても、連続していなければ出力されない) 連続している同内容の行は出力しない (同内容の行があっても、連続していなければ出力される) 3 0 2 1 sophia% cat le abc abc abc def ghi ghi jkl def 3 0 sophia% uniq le 2 1 abc def ghi jkl def 3 0 sophia% uniq -c le 2 1 3 abc 1 def 2 ghi 1 jkl 1 def 3 0 sophia% uniq -d le 2 1 abc ghi 3 0 sophia% uniq -u le 2 1 def jkl def sophia% sort le | uniq abc def ghi jkl 3 0 2 1 98 8.5 文字変換 小文字を大文字に、あるいは大文字を小文字に変換したい時は、\tr"(TRanslate characters の略) コマンド を使います。 コマンド 形式 sophia% tr オプション 文字列 1 文字列 2 オプション -c -d -s 説明 文字列 1 に含まれない文字を処理の対象とする 文字列 1 に含まれる文字を消去する 置き換えられた文字が連続する場合、1 つだけにする 例 1 \sophia" というファイルを読み込み、\a" という文字全てを \A" に変換 sophia% tr a A < sophia 3 0 2 1 または 01 3 2 sophia% cat sophia | tr a A 例 2 \sophia" というファイルを読み込み、小文字を全てスペースに変換 sophia% tr a-z ' ' < sophia 3 0 2 1 または 3 0 2 1 sophia% cat sophia | tr a-z ' ' 例 3 \sophia" というファイルを読み込み、\a" は \A", \b" は \B", \c" は \C" にそれぞれ変換 3 2 sophia% tr abc ABC < sophia 0 1 または 01 3 2 sophia% cat sophia | tr abc ABC 例 4 \sophia" というファイルを読み込み、\a" を改行に変換 sophia% tr a 'n012' < sophia または 0 1 sophia% cat sophia | tr a 'n012' 3 2 01 3 2 (n012 は ASCII コード で改行を意味します) 99 8.6 ファイルの比較 2 つのファイルを比較し、相違点を調べる代表的なコマンド として、\di" コマンド があり ます。 コマンド 形式 sophia% di オプション ファイル 1 ファイル 2 \di" コマンド は、指定した 2 つのファイルを読み込み、異なる行とその行番号および内容 を出力します。オプションについては数が多いのでオンラインマニュアルを参照してください。 sophia% abc def abc ghi def abc ghi def sophia% abc def abc ghi def mno ghi def cat le1 ghi def mno mno jkl mno jkl jkl cat le2 ghi def jkl mno jkl mno abc jkl 3 2 0 1 mno jkl ghi abc 01 3 2 mno jkl ghi abc 0 3 sophia% di le1 le2 2 1 3c3 ( 何行目に相違があるかを表示 < def abc mno jkl ghi ( le1 の 3 行目の内容 --> def mno jkl abc ghi ( le2 の 3 行目の内容 ファイルの比較には、\di" コマンド の他に、\di3",\comm",\cmp" コマンド があります。 詳細はオンラインマニュアルを参照してください。 100 8.7 ファイルの圧縮・復元 ファイルの圧縮を行う代表的なコマンド として、\compress" コマンド があります。 コマンド 形式 sophia% compress オプション ファイル… オプション -c -f -v 説明 結果を標準出力する。ファイルは変更されない 結果を書き込むファイルがすでに存在していてもコマン ド を実行する 圧縮されるファイルの縮小率を表示 \compress" コマンド は、適応 Lempel-Ziv 法を使って指定したファイルのサイズを縮小しま す。実行結果は、指定したファイル名に \.Z" という拡張子を付けて置き換えられます。なお、 元のファイルは削除されます。 3 0 2 1 sophia% ls -l -rw-r--r-- 1 t-jouchi 3 0 sophia% compress le1 2 1 3 0 sophia% ls -l 2 1 -rw-r--r-- 1 t-jouchi 215658 Jun 3 12:01 file1 119583 Jun 3 12:03 file1.Z 最近の傾向として、GNU Product の \gzip" コマンド が使われるようになってきています。 このコマンド は \compress" コマンド より圧縮率が高くなっています1 。実行結果は、指定した ファイル名に \.gz" という拡張子を付けて置き換えられます。(元のファイルは削除されます。) コマンド 形式 sophia% gzip オプション ファイル… オプション -c -d -f -v 説明 結果を標準出力する。ファイルは変更されない 圧縮されたファイルを解凍する 結果を書き込むファイルがすでに存在していてもコマン ド を実行する 圧縮されるファイルの縮小率を表示 1 その分、実行時間がややかかります。 101 3 0 2 1 sophia% ls -l -rw-r--r-- 1 t-jouchi 3 0 sophia% gzip le1 2 1 3 0 sophia% ls -l 2 1 -rw-r--r-- 1 t-jouchi 215658 Jun 63229 3 12:01 file1 Jun 3 12:03 file1.gz どちらのコマンド で圧縮されたかはファイルの拡張子で判断します。 コマンド 名 ファイルの拡張子 .Z .gz compress gzip \compress" コマンド で圧縮されたファイルを復元したい場合は、\uncompress" コマンド を 使います。 コマンド 形式 sophia% uncompress オプション ファイル… オプション -c -v 説明 結果を標準出力する。ファイルは変更されない メッセージを表示 3 0 2 1 sophia% ls -l -rw-r--r-- 1 t-jouchi sophia% uncompress le1.Z 3 0 sophia% ls -l 2 1 -rw-r--r-- 1 t-jouchi 119583 Jun 3 12:03 file.Z 215658 Jun 3 12:06 file1 3 0 2 1 \gzip" コマンド で圧縮されたファイルは、\uncompress" コマンド では復元できませんので注 意してください。 \gzip" コマンド で圧縮されたファイルを復元する場合には、\gzip" コマンド に復元するため のオプション \-d" を指定するか、あるいは、\gunzip" コマンドを使用します。なお、\compress" で圧縮されたファイルを \gzip" コマンド で復元することは可能です。 102 3 0 2 1 sophia% ls -l -rw-r--r-- 1 t-jouchi 3 sophia% gzip -d le1.gz 2 3 0 sophia% ls -l 2 1 -rw-r--r-- 1 t-jouchi 01 63229 Jun 3 12:03 file.gz 215658 Jun 3 12:07 file1 あるいは 3 0 2 1 sophia% ls -l -rw-r--r-- 1 t-jouchi 3 sophia% gunzip le1.gz 2 3 0 sophia% ls -l 2 1 -rw-r--r-- 1 t-jouchi 0 1 63229 Jun 3 12:03 file.gz 215658 Jun 3 12:07 file1 圧縮されたファイルの内容を見る時は、\zcat",\zmore" コマンド を使います。 3 2 0 1 sophia% ls -l le1.Z -rw-r--r-- 1 t-jouchi 3 0 sophia% zmore le1 2 1 119583 Jun 3 12:03 file.Z 詳細は、オンラインマニュアルを参照してください。 8.8 ファイルの探索 ファイルを探索するには \nd" コマンド を使います。 コマンド 形式 sophia% nd 探索デ ィレクトリ名 オプション オプションは数多くあり、すべてを紹介する事はできませんので、代表的なものだけを紹介 します。 オプション -name パターン -print -perm モード -size サイズ -atime 数字 -ctime 数字 -mtime 数字 説明 \パターン" でファイル名を指定 ファイルのパス名を表示 \モード " でファイルの許可モード を指定 \サイズ" でファイルのサイズ (ブロック単位) を指定 \数字" で、何日以内にアクセスされたファイルかを指定 \数字" で、何日以内にステータス変更されたファイルかを指定 \数字" で、何日以内にデータが変更されたファイルかを指定 103 例 1 カレントデ ィレクトリ下に \jouchi" というファイルの存在を探索 sophia% nd . -name jouchi -print 3 2 0 1 例 2 ホームデ ィレクトリ下の、2 日以内にアクセスされたファイルを探索 sophia% nd / -atime 2 -print 3 0 2 1 例 3 カレントデ ィレクトリ下に、ファイルの大きさがゼロで、ファイルのステータスが 4 日 以内に変更されたファイルを探索 sophia% nd . -size 0c -ctime 4 -print 3 0 2 1 例 4 カレントディレクトリ下の、ファイルの許可モード が 8 進数で \0400"(所有者のみがファ イルの内容を見ることができる) のファイルを探索 sophia% nd . -perm 0400 -print 3 0 2 1 注 意 このコマンド で、探索ディレクト リ名に \/", \/usr", \/usr/local", \/usr/spool" 等自分のホームディレクト リ以下以外のディレクト リは絶 対に指定しないでください。指定すると結果を得るのに時間がかかり、ま た、システムパフォーマンスが極端に落ち、他の利用者に迷惑をかけます。 8.9 他ユーザとの会話 他のユーザとのコミュニケーションの手段として E-mail(電子メール) がありますが、この 他にも \talk" あるいは \phone" コマンド があります。 \talk" あるいは \phone" コマンド を利 用すると、画面上で他ユーザとリアルタイムで会話をすることができます。 コマンド 形式 sophia% talk ユーザ名 [端末名] *端末名の指定は特に必要ありません。 コマンド 形式 sophia% phone オプション ユーザ名 [端末名] *端末名の指定は特に必要ありません。 ここでは、よく使われる \phone" コマンド について説明します。ただし、\phone" コマンド は、相手のシステムによっては利用できないことがありますので注意してください。 104 \phone" コマンド と \talk" コマンド の大きな違いは、「 \phone" コマンド では、コマンド オ プションを指定することにより、ひらがな,カタカナが使える」ことです。 \phone" および \talk" コマンド は、相手がシステムにログインしてる事が前提条件になりま す。ログ インしているかどうかは \who" コマンド (4.4.1節参照) で調べます。 3 2 sophia% who fujiwara ttyp0 obinata ttyp1 yabuki ttyp4 jouchi-h ttypc t-jouchi ttype 0 1 Dec 5 12:32 Dec 5 09:01 Dec 5 11:04 Dec 5 13:55 Dec 5 10:13 ログ インしていないユーザ名を指定するとエラーになります。 3 0 2 1 sophia% phone tarou tarou@dahlman is not logged in Connection closed. Exiting ... \phone" コマンド を実行すると、自分側の画面は図 8.1のようになります。 図 8.1: phone コマンド 実行時の自分側の画面表示例 105 \phone" コマンド を受け取った相手側の画面には、次のようなメッセージが表示されます (dahlman にログ インしている場合です) 。 Message from the Telephone_Operator@dahlman at ... phone: connection requested by From-USER-ID@dahlman. phone: respond with "phone From-USER-ID" \From-USER-ID" の部分には、\phone" コマンド を実行したユーザのログ イン名が表示され ます。この状態で、\phone" コマンド を受け取ったユーザは、 sophia% phone 3 0 2 1 と入力します。画面が図 8.2のように変わります。 図 8.2: phone コマンド 完了時の自分側の画面表示例 ここで何か文字を入力すると画面に反映されます (表示される文字は基本的にはアルファベッ トです) 。画面の上半分には、自分が入力した文字が反映され、下半分には、相手が入力した 文字が反映されます。 例 ログ イン名 \t-jouchi" さんが、ログ イン名 \jouchi-h" さんに \phone" コマンド を実行した 場合 1. \phone" コマンド を実行します。 sophia% phone jouchi-h 3 2 0 1 2. 画面が図 8.1のようになります。 3. 相手側 (\jouchi-h" さん) の画面には次のように表示されます。 106 Message from the Telephone_Operator@dahlman at ... phone: connection requested by t-jouchi@dahlman. phone: respond with "phone t-jouchi" 4. \jouchi-h" さんが、\phone" コマンド を実行します。 sophia% phone 3 2 0 1 5. お互いの画面が図 8.2のようになります。 上智の UNIX マシンにインストールされている \phone" コマンド は、ローマ字入力した文 字をひらがな、カタカナ変換させて表示する事ができます。そのような場合には、次のように コマンド オプション (\-cj") を指定します。 sophia% phone -cj jouchi-h 3 0 2 1 \-cj" とは、 「日本語変換は JIS コードを使う」という意味で、他にも、\Shift-JIS",\EUC" コー ド を指定する事ができます。ただし、上智では JIS コード しかサポートしていませんので、こ のオプション以外の指定は出来ません。 図 8.3: \-cj" オプションを指定した場合の画面表示例 注 意 このコマンド は、自分と面識のあるユーザ同士で行ってください。面識の ないユーザに対しては、相手の方に多大な迷惑をかけますので、絶対にコ マンド を実行しないでください。 107 正規表現 8.10 \ed", \sed", \grep" コマンド 等を使って検索したい文字列や、変更したい文字列など、文字 列表現の一般形のことを「正規表現」という言い方をします。 正規表現では、検索パターンにおいて、必ずしも文字をその文字のとおりに指定する必要は ありません (8.1節の \grep" コマンド の使用例では文字列が指定されていました) 。 3 0 2 1 3 0 2 1 sophia% grep abc le sophia% grep '^abc' le この例は、8.1節でも説明しました。上記の例において検索パターンをシングルクォーテー ションで囲っていますが、これは、\ ^ " という特殊文字の本来の意味を打ち消すために使わ れます。\ ^ " 文字の他にも次のような特殊文字も正規表現で使うことができます。 特殊文字 概要 ^ 行の先頭 $ 行の終わり . 任意の 1 文字 0 文字以上の文字の連続 \文字列" に含まれる文字 (1 文字) ^ [ 文字列] \文字列" に含まれない文字 (1 文字) * [文字列] n 特殊文字の持つ特別な意味を打ち消す 例えば、\grep" コマンド を使って次のように入力するとどういう意味になるか、考えてみて ください。 ^ sophia% grep ' .*' le 3 2 0 1 ( ^と. の間には 1 つのスペースが入っています。 これは、先頭に 1 つ以上の空白のある行を検索するという意味になります ( ^ と . の間には 1 つのスペースが入っているためです) 。また、次のように入力すると、スペースだけ、 TAB だけ、あるいはその組み合わせによる空白の行を検索するという意味になります。 ^ sophia% grep ' [ 3 0 2 1 ] *$' le ここで、\[" と \]" の間には、スペースキー 1 回と TAB キー 1 回が入ります。このように、 検索パターンに特殊文字を使うことにより、テキスト処理等をスムーズに行うことができます。 それではもう少し例を挙げながら説明します。 例 1 \aac", \abc", \acc", \adc", \axc", \a+c" 等に一致する行を検索 sophia% grep 'a. c' le 3 2 0 1 108 例 2 \aac", \abc", \acc" に一致する行を検索 3 2 sophia% grep 'a[abc]c' le 0 1 例 3 \aac", \aec", \afc", \agc" 等に一致する行を検索 (\abc", \acc", \adc" は検索対象外とな ります。) 3 0 2 1 sophia% grep 'a[^bcd]c' le 例 4 \ab0", \ab1", \ab2", \ab3" ,\ab4" .... \ab9" に一致する行を検索 3 2 sophia% grep 'ab[0-9]' le 0 1 例 5 \abc" で終わる行を検索 3 0 2 1 sophia% grep 'abc$' le 例 6 \abc" だけある行を検索 3 0 2 1 ^ sophia% grep ' abc$' le 例 7 0 文字以上の \a" の連続 (文字なし, \a", \aa", \aaa", \aaaa" 等) の行を検索 sophia% grep 'a*' le 3 0 2 1 例 8 1 文字以上の \a" の連続 (\a",\aa",\aaa",\aaaa" 等) の行を検索 sophia% grep 'aa*' le 3 0 2 1 n 例 9 \.nf" と一致する行を検索 ( を使って \." を正規表現における特殊文字ではなく、文字 として解釈させる) sophia% grep 'n.nf' le 3 2 0 1 109 8.11 正規表現を使ったファイルの編集 正規表現を解釈できるコマンド は数多くありますが、ここでは、\sed", \awk" コマンド を 使ったファイルの編集方法について簡単に説明します。 8.11.1 sed コマンド \sed" とは \Stream EDitor" の略で、UNIX における最初のラインエディタである \ed"(EDitor) コマンド が起源となっています。 通常、エディタコマンド による編集はファイルを対象としますが、\sed" コマンド は、ファイ ルのみならず、あるコマンドの実行結果を入力対象として編集作業を行ったり、標準入力 (キー ボード からの入力) を対象として編集作業を行い、いずれの場合も結果を標準出力します (シェ ルの機能を使ってファイルに保存することもできます) 。従って、編集対象となるファイルの 内容を直接書き換える事はできません。 ここで言う「編集作業」とは、 「ある文字 (列) を他の文字 (列) に変更する」事を意味しま す。コマンド 形式は次のとおりです。 コマンド 形式 sophia% sed -e ' 実行したい命令' ファイル名 sophia% sed -f コマンド ファイル名 ファイル名 オプション -e コマンド -f ファイル名 -n 説明 指定された \コマンド " を解釈し、編集を行う 指定した' ファイル名' に記述された命令を読み込み、 解釈し、実行する 入力行の自動出力をしない コマンド 形式の中で、\実行したい命令" とは、\ed" コマンド におけるファイル編集の際の コマンド を意味し、数多くのコマンド が用意されています (詳細はオンラインマニュアルを参 照してください) 。 それではいくつかの使い方について簡単に説明します。ここでは、次のような内容のファイ ルがある事を前提にします。 sophia% aaa bbb bbb ccc ccc ddd aaa ggg cat le aaa ddd eee aaa ddd eee eee iii 3 0 2 1 110 まず、\ggg" を \hhh" に変更するには、次のように入力します。 sophia% aaa bbb bbb ccc ccc ddd aaa hhh sed -e 's/ggg/hhh/' le aaa ddd eee aaa ddd eee eee iii 3 2 0 1 実行結果は、変更対象の有無にかかわらず、全て標準出力として画面に出力されます。実行 結果を、変更対象となる行のみを出力したい場合は、\sed" コマンド のオプション \-n" とコマ ンド \p" 使います。 3 0 2 1 sophia% sed -n -e 's/ggg/hhh/p' le aaa hhh aaa iii 次に、1 行目と 4 行目にある \aaa" という文字列を \AAA" に変更してみます sophia% AAA bbb bbb ccc ccc ddd AAA ggg sed -e 's/aaa/AAA/' le aaa ddd eee aaa ddd eee eee iii 3 0 2 1 1 行目、4 行目とも、その行の先頭にある \aaa" は変更はされましたが、同じ行にある次の \aaa" は変更されていません。これは、上記の命令方法では、「ファイルの内容を 1 行目から 順番に読み込み、その行で最初に見つけた文字 (列) を別の文字 (列) に変換したら、次の行の 処理に進む」という意味になってしまっているためです。すべての文字 (列) も変更の対象に したい場合は、最後の \/" の後に \g" を指定します。 sophia% AAA bbb bbb ccc ccc ddd AAA ggg sed -e 's/aaa/AAA/g' le AAA ddd eee AAA ddd eee eee iii 3 2 0 1 これで全部変更できました。\g" は \Global" の略で、ファイル全体を対象とする事を意味 します。 111 今度は、3 行目にある \eee" という文字列を大文字 \EEE" に変更してみましょう。先の例の とおりに行うと次のようになります。 sophia% aaa bbb bbb ccc ccc ddd aaa ggg sed -e 's/eee/EEE/g' le aaa ddd EEE aaa ddd EEE EEE iii 3 0 2 1 2 行目の \eee という文字列も \EEE" に変更されてしまいました。ある行だけを編集対象と したい場合、\s" コマンド の前に行を指定する事により実行できます。 sophia% aaa bbb bbb ccc ccc ddd aaa ggg sed -e '3s/eee/EEE/g' le aaa ddd EEE aaa ddd eee EEE iii 3 2 0 1 行の指定においても範囲を指定できます。例えば、1 行目と 2 行目にある \bbb" という文字 列を \BBB" に変更したい場合、次のように入力します。 sophia% aaa BBB BBB ccc ccc ddd aaa ggg sed -e '1,2s/bbb/BBB/g' le aaa ddd eee aaa ddd eee eee iii 3 0 2 1 このように、行の範囲の指定をする場合は、\s" コマンド の前に何行目から何行目かをカン マ (,) で区切って指定します。 今までの例は、実行結果を全て画面に表示していましたが、これらをファイルに保存するこ ともできます。 例 1 シェルの出力リダ イレクション機能を使った場合。 sophia% sophia% aaa BBB BBB ccc ccc ddd aaa ggg sed -e 's/bbb/BBB/g' le > le1 3 0 cat le1 21 aaa ddd eee aaa 3 2 0 1 ddd eee eee iii 112 例 2 \sed" コマンド における \w" コマンド を使った場合。 sophia% aaa BBB BBB ccc ccc ddd aaa ggg sophia% aaa BBB BBB ccc sophia% sophia% aaa BBB BBB ccc sed -e 's/bbb/BBB/gw le2' le aaa ddd eee aaa ddd eee eee iii 3 2 0 1 3 0 2 1 cat le2 aaa ddd ddd eee sed -n -e 's/bbb/BBB/gw le3' le 3 0 cat le3 21 3 0 2 1 aaa ddd ddd eee 例 1 は、シェルの機能を使った方法で、標準出力を \file1" というファイルに保存する場 合です。例 2 は、実行結果すべてをファイルに保存するのではなく、変更対象となった行のみ を \file2" および \file3" というファイルに保存する場合です。 \sed" コマンド は、変更したい文字列の部分に正規表現を使って変更作業を行う事ができま す。例えば、行の先頭が \ccc" で始まる文字列のみ \CCC" に変更したい場合には、次のよう に入力します。 sophia% aaa bbb bbb ccc CCC ddd aaa ggg sed -e 's/^ccc/CCC/g' le aaa ddd eee aaa ddd eee eee iii 3 0 2 1 このように正規表現を使う事によって、いろいろな編集が自分の思うままにできます。 今までの例では変更命令 (シングルクォテーションで囲まれた部分) をコマンド ラインから 入力してきましたが、これらの命令 (スクリプトと言う) をあるファイル (スクリプトファイル と言う) に書き込んでおき、実行時には、スクリプトファイルからスクリプトを読み込み、実 行することができます。 例えば、\sedfile" というスクリプトファイルに次のようなスクリプトを書いておいたとし ます。 sophia% cat sedle 1,$s/eee/EEE/g 1,$s/^ccc/CCC/g 3 2 0 1 113 このスクリプトファイルを元にコマンド を実行するには、\sed" コマンド のオプション \-f" を使います。 sophia% aaa bbb bbb ccc CCC ddd aaa ggg sed -f sedle le aaa ddd EEE aaa ddd EEE EEE iii 3 0 2 1 この様に実行したいスクリプトをファイルに格納しておき、\sed" コマンド の実行をファイ ルからという形にしておくと、同じスクリプトを必要なときに実行でき、作業効率が上がり ます。 この他にもいろいろな使い方ができますので、詳細についてはオンラインマニュアルを参照 するか、市販されている図書を参照してください。 8.11.2 awk コマンド \sed" コマンド と同様に、 \awk" コマンド も入力の各行に対してスクリプトのセットを実行 します。 \awk" コマンド は、\sed" コマンド にある幾つかの制限を補ってくれます。コマンド の利用 形態は \sed" コマンド とよく似ています。 コマンド 形式 sophia% awk オプション 'f プログラム g' ファイル名 -f オプション ファイル名 -Fc val=value 説明 \ファイル名" に記述された命令を読み込み、解釈し、 実行する c の文字をフィールド セパレータとする (既定値はス ペース) プログラムで使われる変数 val に変数値 value をセッ トする また、\awk" コマンド における変数として以下のものがあります。 変数名 $数値 NR NF 説明 (数値) 番目のフィールド を示す。ただし、$0 という指 定は特別で、行全体を示します。 行番号を示します。 フィールド がいくつあるかを示します。 114 それではいくつかの使い方について簡単に説明します。ここでは、次のような内容のファイ ルがある事を前提にします。 sophia% cat le 10 100 1000 1 5 7 3 0 2 1 はじめに、コマンド で \cat le" と実行した場合と同じ動作をさせるには次のように入力し ます。 sophia% awk 'fprintg' le 10 100 1000 1 5 7 3 2 0 1 次に、\print" の後に \$0" を指定してみます。 sophia% awk 'fprint $0g' le 10 100 1000 1 5 7 3 0 2 1 結果は同じです。それでは、\$0" の変わりに \$2" を指定してみます。 sophia% awk 'fprint $2g' le 100 5 3 0 2 1 今度は、各行の 2 番目の要素が取り出され、表示されました。それでは、この指定方法を 使って各行の全部の要素を取り出してみます。 sophia% awk 'fprint $1,$2,$3g' le 10 100 1000 1 5 7 3 0 2 1 取り出しはできましたが、2 行目の出力が今までと異なります。これは、\awk" コマンド の 既定値で、要素間の区切りは \スペース" であると認識しているからです。このような出力形 式が気に入らない場合は \printf" を使って指定します。方法は後述します。 115 次に、行番号だけを表示してみます。 sophia% awk 'fprint NRg' le 1 2 3 2 0 1 さらに、行番号を付けてファイルの中の要素を取り出してみます。 sophia% awk 'fprint NR, $0g' le 1 10 100 1000 2 1 5 7 3 0 2 1 今度は、各行にいくつの要素があるかを調べます。 sophia% awk 'fprint NFg' le 3 3 3 2 0 1 今までの例を元に、次のような事が簡単に出来ます。 sophia% awk 'fprint "line", NR, "is", $0g' le line 1 is 10 100 1000 line 2 is 1 5 7 3 2 0 1 このように、途中に文字列を挿入したい場合は、ダブルクォテーション (" ") でその文字列 を囲みます。 また、C 言語と同じように条件文の記述が可能で、変数の値が数値の場合は、自動的に数値 の比較になります。 条件文 a>b a<b a>=b a<=b a==b a!=b a&&b a||b a a a a a a a a 意味 は b より大きい は b より小さい は b 以上 は b 以下 と b は等しい と b は等しくない かつ b (論理積) または b (論理和) 例 1 2 番目の要素が 50 より大きい行を出力 sophia% awk '$2>50 10 100 1000 fprintg' le 3 2 0 1 116 例 2 2 番目の要素が 50 より大きく、3 番目の要素が 4000 より小さい行を出力 sophia% awk '$2>50 && $3<4000 10 100 1000 fprintg' le 3 0 2 1 例 3 行番号が 2 にある全ての要素を出力 sophia% awk 'NR==2 1 5 7 fprintg' le 3 2 0 1 正規表現を使って、\7" という文字を検索し、その行の 2 番目の要素を取り出すには次のよ うに指定します。 sophia% awk '/7/ 5 fprint $2g' le 3 0 2 1 C 言語の printf と同様な書式付き出力もできます。 sophia% awk 'fprintf("line is %d, %s %s %snn",NR, $1, $2, $3)g' le line 1 is, 10 100 1000 line 2 is, 1 5 7 3 2 0 1 書式 %s %d %f nt nn 意味 文字列として扱う 整数として扱う 小数点として扱う タブ 改行 \%s", \%d" 等の説明については、C 言語関連の図書を参照してください。 117 少し慣れた所で、ちょっと高度な使い方をしてみましょう。データファイルの内容を次のよ うなものとします。 3 0 2 1 sophia% cat le name syozoku bunrui shinchou taijuu deposit --------------------------------------------------------tanaka denki student 175 65 5000 sasaki center shokuin 170 60 4000 yabuki denki teacher 175 63 7000 fujiwara center shokuin 180 70 3000 miki sugaku student 170 60 1000 kuroe kagaku student 175 80 1000 また、別のファイルに次のような内容の記述があるとします。 sophia% cat le1 3 2 0 1 BEGIN { printf("%10s %7s[cm]<n", "NAME", "SHINCHOU") print "-----------------------" } NR > 2 {printf("%10s %7d[cm]<n", $1, $4)} END {print "-----------------------"} ここで次のようにコマンド を実行します。 sophia% awk -f le1 le 3 2 0 1 NAME SHINCHOU[cm] ----------------------tanaka 175[cm] sasaki 170[cm] yabuki 175[cm] fujiwara 180[cm] miki 170[cm] kuroe 175[cm] ----------------------- これは、\file1" という、スクリプトで書かれたファイルを読み込み、コマンド を実行しま す。\file1" の内容において、条件の部分に \BEGIN" あるいは \END" と書くと、処理の始め あるいは終わりにその命令が実行される事を意味します。 118 上記の例では、はじめに、 NAME SHINCHOU[cm] ----------------------- というヘッダを出力し、検索終了後、 ----------------------- を出力する、という意味になります。 この他にもいろいろな使い方ができます。詳しい使い方については、市販されている図書を 参照してください。 119 第 9 章 周辺装置の利用方法 9.1 磁気テープ装置 磁気テープは、他の計算機システム間でのプログラムやデータの受渡し、一定期間使用しな いファイルの保存等に利用することができます。利用するホストにより取り扱い等が異なりま すので十分注意してください。 9.1.1 磁気テープ装置仕様 表 9.1: 磁気テープ装置仕様表 マシン名 媒体の種類 オープンリール sanuki 記録密度 (bpi) 800 1600 3200 6250 { { 8mm カートリッジ 1/4 インチ CGMT 記録容量 (MB) 20 40 80 130 2,000 最大 155 表 9.1において、 1. bpi とは記録密度を表す単位で、Byte Per Inch の略です。長さ 1 インチ あたり何バイトの情報を記録するかという意味です 2. オープンリールは、2400 フィートのテープを使用した場合です 9.1.2 磁気テープ装置の論理名称 UNIX では、磁気テープ装置も 1 つのファイルとして扱われます。磁気テープ装置に与えら れる特殊ファイル名 (デバイスファイル名) の名称は表 9.2 に示すとおりです。 120 表 9.2: 磁気テープ装置用デバイスファイル名称一覧表 周辺装置名 オープンリール 8mm CGMT 9.1.3 特殊ファイル名 記録密度 リワインド (デバイスファイル名) (bpi) (巻き戻し) /dev/rst4l /dev/nrst4l /dev/rst4m /dev/nrst4m /dev/rst4h /dev/nrst4h /dev/rst4u /dev/nrst4u /dev/rst5 /dev/nrst5 /dev/rst2 /dev/nrst2 800 800 1600 1600 6250 6250 圧縮, 6250 圧縮, 6250 { { { { 有 無 有 無 有 無 有 無 有 無 有 無 磁気テープ装置を利用するコマンド UNIX では、磁気テープ装置を利用するためのコマンド がいくつか用意されています。ここ では、最も代表的な \tar" と \mt" コマンド について、その利用方法を \8mm カート リッジ" に記録する方法で説明します。したがって、他の装置を利用する場合は、デバイスファイル名 が異なりますので、注意してください。 9.1.3.1 tar コマンド tar コマンド で、指定デ ィレクトリ以下に含まれるすべてのファイルを磁気テープに書き込 んだり、磁気テープから読み込んだりすることができます。 コマンド 形式 sophia% tar [オプション] [デバイスファイル名] ファイル名 オプション c f t v x 説明 磁気テープにファイルの内容を書き込む 磁気テープのデバイスファイル名を指定する 磁気テープに書き込まれたファイルのファイル名のリス トを出力する 磁気テープ に読み書きするときに詳しい情報を出力さ せる 磁気テープに書き込まれた内容をディスクファイルに書 き出す 指定できるデバイスファイル名については、9.1.2節を参照してください。 121 使用例 1 磁気テープに新たに書き込む場合 sophia% tar cvf /dev/rst1 ファイル名 3 0 2 1 使用例 2 磁気テープの内容を見る場合 sophia% tar tvf /dev/rst1 3 2 0 1 使用例 3 磁気テープから読み込む場合 sophia% tar xvf /dev/rst1 3 0 2 1 9.1.3.2 mt コマンド \mt" コマンド は、磁気テープ装置に直接コマンド を送るために使われます。 コマンド 形式 sophia% mt [-f デバイスファイル名] コマンド [count 値] コマンド eof fsf fsr bsf bsr rew 説明 磁気テープ のカレントポジョションに EOF マークの count 値分を書き込む count 値分ファイルを前にスキップ count 値分レコード を前にスキップ count 値分ファイルを後にスキップ count 値分レコード を後にスキップ 磁気テープをリワインド (巻き戻し) する 使用例 1 テープを巻き戻す場合 sophia% mt -f /dev/rst1 rew 3 2 0 1 使用例 2 EOF マークを 2 回書き込む場合 sophia% mt -f /dev/rst1 eof 2 3 2 0 1 使用例 3 1 ファイルスキップする場合 sophia% mt -f /dev/rst1 fsf 1 3 0 2 1 122 * 詳細については、オンラインマニュアル (mt(1), tar(1), mtio(4)) を参照してください。 それでは実際例を使って説明します。 例 1 自分のホームディレクトリ以下、全てのファイルを磁気テープ (8mm カートリッジ) に書 き込む場合 1. 自分のホームデ ィレクトリに移動します。 sophia% cd 3 0 2 1 2. 自分のホームデ ィレクトリを確認します。 3 0 2 1 sophia% pwd /shome/succ/t-jouchi 3. 1 つ上のデ ィレクトリに移動します。 3 2 sophia% cd .. 0 1 4. \tar" コマンド およびデ ィレクト名を入力します。 sophia% tar cvf /dev/rst1 ./t-jouchi a ./t-jouchi/.login 1 blocks a ./t-jouchi/.cshrc 1 blocks a ./t-jouchi/vitest 1 blocks 3 0 2 1 .. . sophia% \v" オプションを付けているのでファイル名が表示されます。 例 2 磁気テープの内容を読み込み、ファイルに復元する場合 1. 自分のホームデ ィレクトリに移動します。 sophia% cd 3 0 2 1 2. カレントデ ィレクトリを確認します。 3 0 2 1 sophia% pwd /shome/succ/t-jouchi 3. 1 つ上のデ ィレクトリに移動します。 sophia% cd .. 3 2 0 1 123 4. \tar" コマンド を実行します。 3 0 2 1 sophia% tar xvf /dev/rst1 x ./t-jouchi/.login, 142bytes, 1 tape blocks x ./t-jouchi/.cshrc, 224bytes, 1 tape blocks x ./t-jouchi/vitest, 149bytes, 1 tape blocks sophia% \v" オプションを付けているので磁気テープの内容が表示されます。 注意 デ ィレクト リ名やファイル名を指定しないと、テープに記録されているすべてのデ ィレ クトリとファイルが復元されます。 磁気テープ装置ではなく、パソコンの FD(フロッピーディスク) や MO(光磁気ディスク) に、 UNIX 上のファイルをバックアップとして保存しておきたいときにも、tar コマンド を使って 処理することができます。 tar コマンド には、デバイスファイル名の代わりに通常のファイル名を指定することで、複 数のファイルを 1 つのファイル (tar コマンド で作ったファイルなので \tar ファイル" と言いま す) にまとめるといった機能もあります。 例 3 自分のホームデ ィレクト リに \Program" というデ ィレクト リがある。そのデ ィレクト リにあるすべてのファイルを tar ファイルにして、MO(光磁気デ ィスク) に保存する。 (Windows 2000 から UNIX にログ インしていることとします) 1. カレントデ ィレクトリを確認します。 3 0 2 1 sophia% pwd /shome/succ/t-jouchi/Program 2. バックアップを取りたいデ ィレクトリの、1 つ上のデ ィレクトリに移動します。こ の場合は、ホームデ ィレクトリになります。 3 2 0 1 sophia% cd .. 3 0 sophia% pwd 2 1 /shome/succ/t-jouchi 124 3. \tar" コマンド および tar ファイルの名称を入力し、実行します。 sophia% tar cvf /tmp/backup.tar ./Program a ./Program a ./Program/DATA a ./Program/prog1.c 13 blocks a ./Program/test.c 4 blocks a ./Program/DATA/database 20 blocks .. . sophia% ls -l /tmp/backup.tar total -rw-r--r-sophia% 1 t-jouchi 3 0 2 1 3 0 2 1 547040 Jan 17 13:46 backup.tar 上記のコマンド を実行すると、 \/tmp" デ ィレクトリ1 に、\backup.tar" という tar ファイル2 が作られます。 4. Windows 2000 搭載のパソコンには \FFFTP" というファイル転送が簡単にできる アプリケーションがインストールされています。UNIX からパソコンにファイルを転 送するときは、このアプリケーションを使います。詳細については、別冊『 FFFTP の使い方』を参照してください。 5. MO への転送が済んだら、tar ファイルは削除します。 sophia% rm /tmp/backup.tar 3 0 2 1 例 4 MO にある tar ファイルから、UNIX のファイルを復元します。ここでは、例 3 で作った バックアップ (tar ファイル) を元に戻します。(Windows 2000 を利用していることとし ます) 1. \FFFTP" を使って、いずれかの UNIX マシンの \/tmp" ディレクトリに tar ファ イルを転送します。 2. tar ファイルを転送した UNIX マシンにログ インします。 3. 復元するディレクトリの 1 つ上のディレクトリに移動します。ここでは、ホームディ レクトリになります。 sophia% cd 3 0 2 1 4. カレントデ ィレクトリを確認します。 1 一時的なファイルを置くディレクトリで、それぞれの UNIX マシンに用意されています。なお、すべてのユー ザが共有して使っているデ ィレクトリなので、あまり大きなファイルは置かないでください。また、作業が終っ た時点で、速やかに自分のファイルは消してください。 2 できあがった tar ファイルの容量が非常に大きい場合は、\compress", \gzip" 等のコマンド (8.7節参照) を 使ってファイルを圧縮しておくと FD や MO の容量を節約できます。 125 3 0 2 1 sophia% pwd /shome/succ/t-jouchi 5. \tar" コマンド を実行します。 3 0 2 1 sophia% tar xvf /tmp/backup.tar x ./Program x ./Program/DATA x ./Program/prog1.c, 2500 bytes, 13 tape blocks x ./Program/test.c, 649 bytes, 4 tape blocks x ./Program/DATA/database, 8569 bytes, 20 tape blocks sophia% .. . 6. tar ファイルを削除します。 sophia% rm /tmp/backup.tar 3 0 2 1 126 ページプリンタ装置 9.2 UNIX システムにはページプ リンタが接続されており、専用のコマンド (\LPR" コマンド ) を利用して、ページプ リンタにリスト等を出力することができます。 表 9.3: UNIX システム用ページプ リンタ一覧表 (2001 年 4 月現在) 設置場所 コンピュータ ルーム A コンピュータ ルーム B コンピュータ ルーム D コンピュータ ルーム F コンピュータ ルーム I コンピュータ ルーム O 9.2.1 LPR プ リンタ名 プ リンタ識別名 プ リンタ A1 プ リンタ A2 プ リンタ A3 プ リンタ A4 プ リンタ B1 プ リンタ B2 プ リンタ D1 プ リンタ D2 プ リンタ F1 プ リンタ F2 プ リンタ F3 プ リンタ F4 プ リンタ I1 プ リンタ I2 プ リンタ O1 nx11a1 nx11a2 nx11a3 nx11a4 nx11b1 nx11b2 nx1d11 nx11d2 nx11f1 nx11f2 nx11f3 nx11f4 nx11i1 nx11i2 nx11o1 qms2425 QMS2425 機 種 名 解像度 Ricoh NX1100 600dpi Ricoh NX1100 600dpi Ricoh NX1100 600dpi Ricoh NX1100 600dpi Ricoh NX1100 600dpi Ricoh NX1100 QMS2425 600dpi 備 考 ・Postscript 対応 ・用紙サイズ: A4 ・Postscript 対応 ・用紙サイズ: A4 ・Postscript 対応 ・用紙サイズ: A4 ・Postscript 対応 ・用紙サイズ: A4 ・Postscript 対応 ・用紙サイズ: A4 ・Postscript 対応 ・用紙サイズ: A4 コマンド \LPR" コマンド は、各コンピュータルームに設置されているプ リンタに出力するときに使 用するコマンド です。通常のテキストファイルの他に、Postscript 形式のファイルに対応して います。また、 「 dvi ファイル」 (LaTEX で作成) を出力することもできます。 なお、印刷できるファイルの上限は 印刷できません。 コマンド 形式 5MB です。ファイルサイズが 5MB を超える場合は ( テキストあるいは Postscript 形式のファイルの場合 ( dvi ファイルの場合 sophia% LPR ファイル名 sophia% LPR -d ファイル名 例 1 カレントデ ィレクトリにある \file001" というファイルを出力する場合 sophia% LPR le001 3 2 0 1 127 例 2 カレントディレクトリの更に下のディレクトリにあるファイルを出力する場合 (出力した いファイルのあるデ ィレクトリまで移動しなくても、パス名を指定して印刷することが できます) 3 sophia% LPR ./Program/source/calc.c 3 2 0 1 例 3 カレントデ ィレクトリの 1 つ上のデ ィレクトリ (親デ ィレクトリ) にある \text.dvi" と いう dvi ファイルを出力する場合 sophia% LPR -d ../text.dvi 3 0 2 1 例えば、 \file1" というファイルを、コンピュータルーム A の \プリンタ A1" に出力して みましょう。 1. \LPR" コマンド とファイル名を入力して 3 0 2 1キーを押します。すると、どの部屋に出力す るかを聞いてきます。 -----1 --2 --3 --9 --- Print 4 --5 --6 --- SUCC Room Room Room QUIT UNIX A B D sophia% LPR le1 3 2 0 1 Tool Room Room Room --F I O Plaese Select Room's Number (1-6,9=Quit): 2. \プリンタ A1" は \Room A" (コンピュータルーム A) にありますから、ここでは \ 1 " を入力します。 続いて、どのプ リンタに出力するか、プ リンタ番号を聞いてきます4 。 Plaese Select Room's Number (1-4,9=Quit): 1 3 0 2 1 3 パスの指定方法については、p.26を参照のこと。 4 出力先の部屋を指定すると、プリンタ番号を聞かずにそのまま出力する場合もあります。 128 3. \プリンタ A1" に出力するので、 \ 1 " を入力します。これで、 \プリンタ A1" に指定 したファイルが出力されます。 (Room A) 1 --- Printer 2 --- Printer 3 --- Printer 4 --- Printer 9 --- QUIT Plaese Select A1 A2 A3 A4 (NX1100) (NX1100) (NX1100) (NX1100) Printer's Number (1-4,9=Quit): 1 01 3 2 Printed a message to Printer A1 (NX1100). sophia% 9.2.2 lpq コマンド 1 つのプ リンタに複数の出力要求が出されていると、プリンタは要求が届いた順番に処理し ていき、後になったものはプ リンタへの出力が待たされます。 プリンタの出力要求の状態は、\lpq" コマンド で画面に表示することができます。 コマンド 形式 sophia% lpq -P プ リンタ識別名 プリンタ名とプ リンタ識別名は、表 9.3を参照して下さい。 コンピュータルーム A にある プリンタ A1 に出力した場合、出力要求の状態を表示するに は、次のようにします。 操作例 sophia% lpq -Pnx11a1 3 0 2 1 lpq コマンド を実行して、指定したプ リンタに複数の出力要求があるときは、以下のように 表示されます。 Rank active 1st 2nd Owner t-jouchi jouhic-h t-jouchi ↑ 出力順位 ↑ 所有者 Job 214 215 217 Files /usr/tmp/qmsprt323000 /usr/tmp/qmsprt324000 /usr/tmp/qmsprt325000 ↑ ジョブ番号 Total 17099 3884 65078 Size bytes bytes bytes ↑ ファイルサイズ 出力要求がない場合は、 no entries と表示されます。 129 9.2.3 lprm コマンド プ リンタへの出力待ちとなっているものをキャンセルするときは、\lprm" コマンド を使い ます。 コマンド 形式 sophia% lprm -P プリンタ識別名 ジョブ番号 操作例 1 sophia% lprm -Pnx11a1 - 01 3 2 3 0 2 1 上記の入力例は、コンピュータルーム A のプリンタ A1 に出した出力要求をすべてキャン セルするときのものです。このように、\lprm" とプ リンタ識別番号の後に、\ - " を指定する と、自分の出力要求がすべてキャンセルされます。 また、\ - " の代わりに、job 番号 (\lpq" コマンド で表示される) でも指定できます。job 番 号を指定すると、指定した出力要求のみキャンセルされます。 操作例 2 sophia% lprm -Pnx11a1 217 3 0 2 1 この例では、コンピュータルーム A のプリンタ A1 に出した出力要求のうち、ジョブ番号 \217" の要求をキャンセルすることになります。 130 第 10 章 ネット ワークコマンド センターの UNIX システムは全てコンピュータネットワークで相互に接続されています。こ れにより利用者は目の前に利用したいコンピュータがなくても、ネットワークを介して利用し たいコンピュータに自由にアクセスすることができ、また、UNIX 上での作業効率も上がりま す。センターがサポートするアクセス可能な UNIX マシンおよびホスト名については、付録. D(p.165) の図 D.1を参照してください。 UNIX にはネットワークを利用するコマンド が数多く用意されています。紙面の都合上すべ てのコマンド を紹介する事はできませんので、ここではみなさんが良く使われるであろうと 思われる代表的なコマンド \telnet" および \ftp" について使い方を簡単に説明します。なお、 \telnet", \ftp" コマンド は UNIX システムにだけ存在するコマンド ではなく、ネットワークに 接続可能なシステムにほとんど標準で用意されているものです。したがって、 『 UNIX マシン ではないから \telnet",\ftp" コマンドが使えない』ということはありません。その例として、各 コンピュータルームに設置されているパソコンはセンター系ネットワークに接続されており、 ネットワークソフトもインストールされていますので、\telnet", \ftp" コマンド が使えます。 10.1 telnet コマンド 離れた所にあるコンピュータを使いたい時、わざわざそのコンピュータの所まで行って使わ なければなりません。しかし、今自分が使っているコンピュータや離れた所にあるコンピュー タが両方ともネットワークに接続されていればその必要はなく1 、コンピュータネットワーク を介して離れた所にあるコンピュータを利用することができます。それを行なうためのコマン ド が \telnet" です。 ここでは今自分がアクセスしているコンピュータを \ローカルホスト " 、これからアクセス しようとしている (遠方の) コンピュータを \リモートホスト " と呼ぶことにします。 コマンド 形式 sophia% telnet リモートホスト名 3 0 2 1 1 必ずしもそうでない場合もあります… 131 「 リモートホスト名」には、アクセスしたいマシンの「ホスト名」または「ホスト名+ド メ イン名」2 、あるいは「 IP アド レス」3 を指定します。ただし、IP アド レス指定の場合は、 IP アド レスは永久不変のものではないので、ある日突然 IP アド レスが変更される可能 性がある。 変更があった場合に、変更後の IP アド レスはおろか、変更があったことすらアナウンス されないことが多い。 という理由により注意が必要です。なお、 「 リモートホスト 」を指定する場合はできるだけ 「ホスト名+ド メイン名」の形式で指定するようにしてください。 指定したリモートホストが運用されていない場合およびリモートホストにアカウントがない 場合はアクセスすることはできません。 10.1.1 telnet コマンド の起動 例として、 『ローカルホスト名 \dahlman"(IP アド レス 133.12.137.33) からリモートホスト 名 \tazawa"(IP アド レス 133.12.137.91) にアクセスする場合』について説明します。なお、IP アド レス指定による起動方法については省略します。 例 1 リモートホスト名に「ホスト名」を指定した場合 3 2 0 1 sophia% telnet tazawa Trying 133.12.137.91 ... Connected to tazawa. Escape character is '^]'. Digital UNIX (tazawa) login: Password: ( ログ イン名を入力 ( パスワード の入力 2 電子計算機センターの UNIX マシンのド メイン名は \cc.sophia.ac.jp" です。したがって、例えば、dahlman の場合であれば \dahlman.cc.sophia.ac.jp" となります。 3 Internet Protocol Address のことです。 132 例 2 リモートホスト名に「ホスト名+ド メイン名」を指定した場合 sophia% telnet tazawa.cc.sophia.ac.jp Trying 133.12.137.91 ... Connected to tazawa. Escape character is '^]'. 3 2 0 1 Digital UNIX (tazawa) login: Password: ( ログ イン名を入力 ( パスワード の入力 例 3 proxy サーバ経由での学外リモートホストへの接続した場合 例として、リモートホスト \foo.bar.ac.jp" へ接続する場合について説明します。接続後 は、proxy を経由せずに接続した場合と同じです。 3 0 2 1 sophia% telnet telnetproxy.cc.sophia.ac.jp Trying 133.12.XXX.XXX... flushoutput character is 'off'. Connected to kinrin.cc.sophia.ac.jp. Escape character is '^]'. Hello, How are you today? Welcome to the Sophia University TELNET Proxy Service via T1 line. This server is generated by FWTK version 2.1 software. Enjoy yourself. 3 0 tn-gw-> connect foo.bar.ac.jp 2 1 Trying XXX.XX.XX.XX port 23... Connected to foo.bar.ac.jp. XXXX OS UNIX (foo) login: Password: ( リモートホストのログ イン名を入力 ( リモートホストのパスワード の入力 133 上記の例において、リモートホスト名にホスト名あるいはド メイン名を指定した場合、接続 できない場合があります。 3 0 2 1 sophia% telnet tazawa.cc.sophia.ac.jp tazawa.cc.sophia.ac.jp: unknown host telnet> これはリモートホスト名を間違えて入力したり、システムがリモートホストのアド レスを見 つけ出せなかった時に起こる現象です。この場合、\telnet>" の状態から \open" と入力して、 再度接続を試みてください。 telnet> open tazawa.cc.sophia.ac.jp 3 2 0 1 再度実行しても接続できない場合は、\quit" と入力して \telnet" コマンド を終了させてくだ さい。 telnet> quit sophia% 3 2 0 1 上智大学は WIDE Project 4 という日本国内における学術研究用広域ネットワーク (Internet) に参加しています。そのため、アクセスできる範囲は国内に限りません。ログイン名を持って いれば、海外のインターネットに参加しているホストへのアクセスも可能です。接続したいホ ストの「ホスト名+ド メイン名」を正しく指定してアクセスしてください。 10.1.2 コマンド の終了 telnet \telnet" コマンド を終了するには、アクセスしているホストからログアウトするだけです。 3 0 2 1 sophia% logout Connection closed by foreign host. sophia% \telnet>" という状態になっている場合には、\quit" と入力します。 telnet> quit sophia% 3 2 0 1 ネットワークを介してリモートマシンにアクセスするコマンド には、\telnet" コマンド の他 に、\rlogin" コマンド があります。これは UNIX にだけ用意されているコマンド です。したがっ て、アクセスしようとする相手のマシンも UNIX でなくてはなりません。\rlogin" コマンド に ついては、オンラインマニュアル (rlogin1C-(ucb)) を参照してください。 4 Widely Integrated Distributed Environment(広域大規模分散環境) の略 134 10.2 ftp コマンド 自分が使っているコンピュータから他のコンピュータへファイルを転送する時に使うコマン ド で、\File Transfer Protocol" の略です。10.1節 (p.131) で紹介した \telnet" は離れた所にあ るコンピュータにアクセス (ログ イン) をして、そこで何か作業をする時に使いますが、ここ で説明する \ftp" は、単にファイルを転送するだけです。なお、\telnet" コマンド でファイル を転送することはできません。 ここでは自分が今アクセスしているコンピュータを \ローカルホスト " 、これからアクセス しようとしている (遠方の) コンピュータを \リモートホスト " と呼ぶことにします。 コマンド 形式 sophia% ftp リモートホスト名 3 0 2 1 \telnet" コマンド と同様に、 「 リモートホスト名」の部分には「 IP アド レス」、 「ホスト名+ ド メイン名」の指定もできます。ただし、\telnet" コマンド と同様、IP アド レス指定の際には 十分な注意が必要です (詳しくは 10.1節 (p.132) を参照してください) 。 10.2.1 コマンド の起動 例として、 『ローカルホスト名 \dahlman" からリモートホスト名 \tazawa" にアクセスして ファイルを取ってくる場合』について説明します。 まずはアクセス方法についてです。 例 1 リモートホスト名に「ホスト名」を指定した場合 3 2 0 1 sophia% ftp tazawa Connected to tazawa. 220 tazawa FTP server (Digital UNIX Version 5.60) ready. ( ログ イン名を入力 Name (tazawa:t-jouchi): 331 Password required for t-jouchi. Password: ( パスワード の入力 例 2 リモートホスト名に「ホスト名+ド メイン名」を指定した場合 3 0 2 1 sophia% ftp tazawa.cc.sophia.ac.jp Connected to tazawa. 220 tazawa FTP server (Digital UNIX Version 5.60) ready. ( ログ イン名を入力 Name (tazawa:t-jouchi): 331 Password required for t-jouchi. Password: ( パスワード の入力 135 システムへのアクセスが完了するとプロンプトが次のようになります。 230 User t-jouchi logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> ここで、\230" という数字ではじまっている行がありますが、これは \ftp" から利用者への メッセージです。注意深く読んでください。 アクセスに失敗した場合は、次のようなメッセージが表示されます。 失敗例 1 パスワード 入力を間違えた場合 530 Login incorrect. Login failed. ftp> この状態で、\user" コマンド を使って再度ログインを試みます。 3 2 0 1 ftp> user t-jouchi 331 Password required for t-jouchi. Password: ( パスワード を入力。 失敗例 2 アクセスするホスト名を間違えた (\sophia" を \sopiha" と入力してしまった) 場合 3 0 2 1 sophia% ftp tazawa.cc.sopiha.ac.jp tazawa.cc.sopiha.ac.jp: unknown host ftp> この状態で、\open" コマンド を使って再度ホストとの接続を試みます。 3 2 0 1 ftp> open tazawa.cc.sophia.ac.jp Connected to tazawa.cc.sophia.ac.jp. 220 tazawa FTP server (Digital UNIX Version 5.60) ready. Name (tazawa:t-jouchi): ( ログイン名を入力。 331 Password required for t-jouchi. Password: ( パスワード を入力。 136 それでは実際にファイル転送してみましょう。転送するファイルは、リモートホスト \tazawa" にある \/usr/local/mule/etc/README" ファイルです。 1. カレントデ ィレクトリを変更します。コマンド は \cd" です。 3 0 2 1 ftp> cd /usr/local/mule/etc 250 CWD command successful. ftp> 2. ファイルの存在を確認します。コマンド は \dir" です。 3 2 0 1 ftp> dir 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. .. . .. . -rw-r--r-drwxr-x--- 1 root 4 root arbeit arbeit .. . .. . 272 Apr 15 README 30516 May 25 SERVICES 226 Transfer complete. ftp> 3. 転送するファイルが ASCII 形式かバイナリ形式かわからない場合は、次のようにファイ ル転送モード を \バイナリモード " に変更しておく必要があります5 。 3 2 0 1 ftp> binary 200 Type set to I. ftp> 4. ファイルを取ってきます。コマンド は \get" です。 3 2 0 1 ftp> get README 200 PORT command successful. 150 Opening BINARY mode data connection for README (272 bytes). 226 Transfer complete. 272 bytes received in 0.0088 seconds (30 Kbytes/s) ftp> 5 転送モード については 10.2.3節 (p.140) を参照してください 137 5. \ftp" コマンド を終了します。コマンド は \quit" あるいは \bye" " です。 3 2 ftp> quit 221 Goodbye. sophia% 0 1 あるいは 3 0 2 1 ftp> bye 221 Goodbye. sophia% 6. UNIX の \ls" コマンド でファイルが転送されたかどうかを確認します。 sophia% ls README sophia% 3 0 2 1 以上でファイル転送は終了です。 138 10.2.2 ftp のサブコマンド \ftp" で使われる代表的なサブコマンド を紹介します。 コマンド 名 cd rdirectory ls 説 明 リモート・マシンのカレントデ ィレクト リを rdirectory に変更します。 リモート・マシンのカレントディレクトリの内容を短縮 形で表示します。 lcd ldirectory dir get remote-le ローカル・マシンのカレントデ ィレクト リを ldirectory に変更します。 リモート・マシンのデ ィレクトリの内容を表示します。 ls より詳しい情報が得られます。 remote-le をローカル・マシンに同じファイル名で転送 します。 get remote-le local-le remote-le をローカル・マシン上に local-le 名として転 送します。 mget remote-les ローカル・マシン上に複数の remote-les を転送します。 remote-les にはワイルド カード (*, ?) が使えます。 (*注) put local-le local-le をリモート・マシンに転送します。 put local-le remote-le local-le をリモート・マシンに remote-le 名として転送 します。 mput local-les リモート・マシン上に複数の local-les を転送します。 local-les には ワイルド カード (*, ?) が使えます。 (*注) pwd リモート・マシン上の現在のカレントディレクトリ名を 表示します。 prompt mget, mput で複数のファイルを転送する場合、個々の ファイルの転送の確認を抑制します。 binary ascii quit または bye ? ! 転送モード を ASCII からバイナリに変更します。 転送モード をバイナリから ASCII に変更します。通常 はこのモード です。 ftp を終了する。 ftp で使用できるコマンド 一覧を表示します。 !command で ローカル・マシン上の command が使え ます。 (*注) ファイル 1 つ 1 つについて転送するかどうかの確認が行なわれます。`y' と答えると 実際に転送が行なわれます。 139 10.2.3 転送モード ファイルの形式には大きく分けて次の 2 種類あります。 1. ASCII 形式 (アスキー形式) 2. BINARY 形式 (バイナリ形式) ASCII 形式ファイルとは、英字、数字、特殊文字など、人が目で見て理解できる文字列か らなっているファイルで、エディタ等を使って書かれたものがほとんどです。この形式のファ イルは \cat", \more" 等のコマンド を使ってファイルの中身を普通に表示することができます。 バイナリ形式ファイルとは、画像 (写真や絵画) を取り扱ったもの、\tar" コマンド で複数の ファイルを一つにまとめたもの、\gzip" コマンド等を使って圧縮したもの、プログラムをコンパ イルして作成した実行形式のプログラムファイルなどです。この形式のファイルは \cat",\more" コマンド で内容を表示しようとしても、正常に表示できないか、表示されたものを人が見ても 内容を理解できる文字列にはなっていません。 \ftp" でファイルを転送する際には、転送するファイルがどちらの形式に属するかによって転 送するモード が異なります。\ftp" には「 ASCII モード 」と「バイナリモード 」の二つのモー ド があります。\ftp を起動した時の転送モード は通常「 ASCII モード 」ですが、機種によっ てはバイナリモード が標準となっています。したがって、転送したいファイルがバイナリ形式 なのか ASCII 形式なのかをまず確認してから、モード を設定しなければなりません。もしバ イナリファイルを ASCII モード で転送すると、ファイルを転送してきても役に立ちません。逆 に ASCII 形式のファイルをバイナリーモード で転送すると、基本的には問題はありませんが、 場合によっては変な文字が入ったりすることがあります。どちらのモード にして良いか自信が ないような場合は、バイナリモード にしておけばとりあえずは安心です。 10.2.4 コマンド の終了 \ftp" を終了するには \ftp>" という状態から \quit" あるいは \bye" と入力します。 3 0 2 1 ftp> quit 221 Goodbye. sophia% 3 2 0 1 ftp> bye 221 Goodbye. sophia% 140 10.3 anonymous FTP サービス 今までネットワークニュース等で配布されたツール、ド キュメント、ソフト等を集めている 組織があります。その組織は一般の人がそれらのファイルを \ftp" で入手できるように公開し ています。\ftp" はファイルのあるコンピュータにアクセス権がないとファイルを転送できませ ん。そこで、それらの組織ではアクセス権がなくてもファイル転送ができる anonymous FTP という方法を用いています。このサービスは国内外数多くの組織が行なっていますが、国内で は主に次のような組織が行なっています6 。 大学 研究所 企業など ftp.riken.go.jp ftp.iij.ad.jp ftp.hiroshima-u.ac.jp ftp.sra.co.jp ftp.u-aizu.ac.jp ftp.lab.kdd.co.jp ftp.jaist.ac.jp ftp.nuie.nagoya-u.ac.jp ftp.dna.affrc.go.jp ftp.iamas.ac.jp ftp.st.ryukoku.ac.jp ftp.eos.hokudai.ac.jp ftp.media.kyoto-u.ac.jp anonymous FTP でもログ イン名とパスワード が必要になります。ただし、この場合のログ イン名とパスワード は、通常の場合と異なり、ログイン名には \anonymous" あるいは \ftp" と 入力し、パスワード には自分の電子メールアド レスを入力します。 パスワード について anonymous FTP を利用するにあたり、通常の ftp とは大きく違う所があり ます。それは「アクセスした時に入力するパスワード 」です。通常の ftp で は自分のパスワード を入力しますが、anonymous FTP では自分のメールア ド レスを入力するのがルールになっています。これはしっかり守ってくださ い。 理由は、anonymous FTP を運用している組織では「どの組織の、どのユー ザからアクセスがあり、何をしていたか」という記録がすべて anonymous FTP 管理用ファイルに記録されるようになっているからです。間違って自 分のパスワード を入力してしまうと、せっかく自分しか知らないはずのパ スワード が第三者に知られることになり、不正利用される可能性が高くな ります。したがって、 anonymous FTP を利用する際、間違って自分のパ スワード を入力してしまった場合は、すぐ に anonymous FTP 組織との接 続を終了させ (\quit" する) 、4.2.5節 (p.17) のパスワード 変更方法に従っ て、パスワード を必ず変更してください。 6 入手したいファイルが,どの anonymous FTP サーバに置いてあるか分からないときは,archie コマンド を 利用します。国内の主な archie サーバは、archie.wide.ad.jp, archie.iij.ad.jp,archie.kyoto-u.ac.jp などです。 141 10.4 proxy サーバ経由での学内外アクセス proxy サーバを経由する事によって、学内から学外あるいはその逆において、高速な ftp が 可能になります7 。 10.4.1 学内から学外への接続 例として、リモートホスト \b.ac.jp" へログ イン名 h-jouchi で接続する場合について説明し ます。接続後は、proxy を経由せずに接続した場合と同じです。 3 0 2 1 sophia% ftp ftpproxy.cc.sophia.ac.jp Connected to kinrin.cc.sophia.ac.jp. 220220-Hello, How are you today? 220-Welcome to the Sophia University FTP Proxy Service via T1 line. 220-This server is generated by FWTK version 2.1 software. 希望する接続先を指定します 220-Enjoy yourself. 220 + 3 0 Name (ftpproxy.cc.sophia.ac.jp:t-jouchi): b.ac.jp 2 1 Connected to b.ac.jp. 220 b.ac.jp FTP server ( XXXXXXXX ) ready. 3 0 Name (b.ac.jp:t-jouchi): h-jouchi 2 1 ( 接続先のログ イン名を入力します 331 Password required for h-jouchi 3 0 Password: 2 1 ( 接続先のパスワード を入力します 7 2001 年 10 月現在では、試験運用のため、一部使い勝手に制限があります。 142 10.4.2 学内から学外への接続 (anonymous FTP の場合) 例として、リモートホスト \b.ac.jp" へ anonymous FTP で接続する場合について説明しま す。接続後は、proxy を経由せずに接続した場合と同じです。 3 0 2 1 sophia% ftp ftpproxy.cc.sophia.ac.jp Connected to kinrin.cc.sophia.ac.jp. 220220-Hello, How are you today? 220-Welcome to the Sophia University FTP Proxy Service via T1 line. 220-This server is generated by FWTK version 2.1 software. 希望する接続先を指定します 220-Enjoy yourself. 220 + 3 0 Name (ftpproxy.cc.sophia.ac.jp:t-jouchi): [email protected] 2 1 Connected to b.ac.jp. 220 b.ac.jp FTP server ( XXXXXXXX ) ready. 331 Guest login ok, type your name as password. 3 0 Password: 2 1 ( 自分のメールアド レスを入力します 10.4.3 学外から学内へ telnet ftpproxy.iijdr.sophia.ac.jp とタイプし、その後の手順は、10.4.1節の学内から学外への FTP と同じです。 143 第 11 章 プログラムコンパイル UNIX でよく使われるプログラミング言語には、\C 言語" や \FORTRAN 言語" がありま す。センターの UNIX マシンではこれら 2 つのプログラミング言語をサポートしています。そ の他に、\IF/Prolog" 、\IMSL" 1 等をサポートしているマシンもあります。表 11.1 (p.145) に 一覧を示します。 ここでは、UNIX 上における \C 言語" と \FORTRAN 言語" のコンパイル方法について説 明します。 11.1 コンパイルって何? コンパイル方法の説明に入る前に、まず、 「コンパイルとは何か? 」を簡単に説明します。 あるプログラミング言語を使ってプログラムを書き上げ、 「あとはこのプログラムを実行す るのみ!! 」となった状態において、いざ実行させようにも、このままでは実行できません。何 故なら、今書き上げたプログラムは人間が理解できるだけであって、コンピュータにとっては 単なる文字列が並んでいるにすぎないからです。では、どうすればよいのでしょうか? そこで 登場するのが「コンパイル」です。 コンパイルとは、人間が理解できるプログラム (C 言語、FORTRAN 言語等) をコンピュー タが認識、実行できるように機械語 (コンピュータだけが理解できる言語) に翻訳する作業の ことをいい、その作業を行ってくれるソフトウェアのことを \コンパイラ " といいます。 コンパイラは、プログラム中にエラーを発見すると、その旨のメッセージを画面に表示し、 機械語への翻訳作業をその時点で終了します。このような場合は、エラーを取り除き、再度コ ンパイル作業を行う必要があります。 さて、 「いざ実行だ!! 」となった所で、間違うであろうと思われることを注意しておきます。 それは、 コンパイルして出来た実行プログラムは、基本的にコンパイルしたコンピュータ上 でしか動作しません。 ということです。具体的な例として、\dahlman" 上でコンパイルして出来た実行プログラムを \wakasa" では実行できません。CPU 、OS 、マシンアーキテクチャ(ハード ウェアの構造) が 異なるためこの様なことが発生します。 1 Compaq Tru64 でサポートしている数値計算ライブラリの名称です。 144 表 11.1: プログラミング言語一覧表 (2001 年 10 月現在) システム名 ホスト名 Tru64 biwa sagami bosch dahlman arimine numazawa sai sanaki shoji yogo hamana haruna kizaki megami nojiri shinji suwa tazawa towada tsukui abukuma agano ayase buko chikugo kuji naka sakawa shingu suzuka tedori tsurumi nagato suruga FreeBSD Solaris プログラミング言語名称 C C ++ FORTRAN GKS IMSL その他 KAP C ○ ○ ○ ○ ○ KAP Fortran90 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 0 ○ ○ ○ ○ ○ 0 0 0 ○ 0 ○ 0 0 145 Pascal 0 11.2 データ型の取り扱い センターの UNIX マシンにおいて、FreeBSD は 32bit マシンであり、Compaq Tru64 および SUN Solaris のサーバ/ワークステーション群は 64bit マシンです。64bit になると扱えるデータ の量が増え、処理も高速化できますが、その反面、データ型の扱いに注意しなければなりませ ん。表 11.2に、Compaq Tru64, FreeBSD, SUN Solaris におけるデータの型の違いを示します。 表 11.2: C 言語におけるデータ型の相違 データ型 char short int long longlong oat(IEEE 単精度) double(IEEE 倍精度) pointer Tru64 FreeBSD Solaris (サイズ:ビット単位) (サイズ:ビット単位) (サイズ:ビット単位) 8 16 32 64 64 32 64 64 8 16 32 32 64 32 64 32 8 16 32 64 64 32 64 64 ここで、次のようなプログラムを考えます。 #include <stdio.h> main (void) { printf( ”sizeof(char) printf( ”sizeof(short int) printf( ”sizeof(int) printf( ”sizeof(long int) printf( ”sizeof(long long int) printf( ”sizeof(float) printf( ”sizeof(double) printf( ”sizeof(long double) printf( ”sizeof(int *) } 146 =%2d\n ”, =%2d\n ”, =%2d\n ”, =%2d\n ”, =%2d\n ”, =%2d\n ”, =%2d\n ”, =%2d\n ”, =%2d\n ”, sizeof(char) ) ; sizeof(short int) ) ; sizeof(int) ) ; sizeof(long int) ) ; sizeof(long long int) ) ; sizeof(float) ) ; sizeof(double) ) ; sizeof(long double) ); sizeof(int *) ) ; このプログラムを実行すると以下のような結果になります2 。 Tru64 FreeBSD Solaris sizeof(char) 1 1 1 sizeof(short int) 2 2 2 sizeof(int) 4 4 4 sizeof(long int) 8 4 8 sizeof(long long int) 8 8 8 sizeof(float) 4 4 4 sizeof(double) 8 8 8 sizeof(long double) 8 12 8 sizeof(int *) 4 8 4 項目 また、エンデ ィアン方式 (ビットとバイトの配列方法) についても Tru64(Alpha AXP アーキテクチャ) リトル・エンデ ィアン方式 FreeBSD(x86 アーキテクチャ) リトル・エンデ ィアン方式 Solaris(SPARC アーキテクチャ) ビッグ・エンデ ィアン方式 という違いがあり、注意が必要です。 11.3 C 言語のコンパイル C 言語で書かれたプログラムのコンパイルには \cc" コマンド を使います。なお、ファイル 名の拡張子は \.c" でなければなりません。 コマンド 形式 sophia% cc オプション ファイル名 オプション -c -g -llibname -o output -O 2 FreeBSD で実行した場合、long データサイズは、8 バイトです。 説明 コンパイルだけを行い、ファイル名の拡張子 \.c" を \.o" に変えたファイルを出力します。 デバッグを行うための情報を付加します。 リンクするライブラリ名 libname を指定します。 実行ファイルを output という名前にして出力します。 既定値は \a.out" 最適化を行います。 double のデータサイズの表示が 12 バイトと表示されますが、実際に扱える 147 例 1 ファイル名 \test.c" をコンパイルする sophia% cc test.c 3 0 sophia% ls 2 1 a.out test.c sophia% 3 0 2 1 test1.c 例 2 ファイル名 \test.c" をコンパイルし、実行ファイルを \TEST" という名前で出力 3 0 2 1 sophia% cc -o TEST test.c 3 0 sophia% ls 2 1 TEST test.c test1.c sophia% 例 3 複数のファイル (\test.c" と \test1.c") をコンパイルし、実行ファイルを \TEST" という 名前で出力 sophia% cc -o TEST test.c test1.c 3 0 sophia% ls 2 1 TEST test.c test1.c sophia% 3 0 2 1 例 4 ファイル名 \test.c" をコンパイルし、特別なライブラリ (libm.a) をリンク 3 2 0 1 sophia% cc -lm test.c 3 0 sophia% ls 2 1 a.out test.c test1.c sophia% [例 4] において、\test.c" の中で \cos", \sin", \sqrt" 等の数学的関数を使っている場合に 必要です3 。 3 必ずしも必要であるとは限りませんが、ほとんどのシステムでは必要とします。 148 11.4 FORTRAN 言語のコンパイル FORTRAN で書かれたプログラムのコンパイルには \f77" コマンド 4 を使います。なお、プ ログラムファイル名の拡張子は \.f" でなければなりません。 コマンド 形式 sophia% f77 オプション ファイル名 オプション 説明 コンパイルだけを行い、ファイル名の拡張子 \.f" を \.o" に変えたファイルを出力します。 -c -g -llibname -o output デバッグを行うための情報を付加します。 リンクするライブラリ名 libname を指定します。 実行ファイルを output という名前にして出力します。 既定値は \a.out" -O 最適化を行います。 例 1 ファイル名 \test.f" をコンパイルする sophia% f77 test.f 3 0 sophia% ls 2 1 a.out test.f sophia% 3 0 2 1 例 2 ファイル名 \test.f" をコンパイルし、実行ファイルを \TEST" という名前で出力 sophia% f77 -o TEST test.f 3 0 sophia% ls 2 1 TEST test.f sophia% 3 2 0 1 例 3 複数のファイル (\test.f" と \test1.f") をコンパイルし、実行ファイルを \TEST" という 名前で出力 sophia% f77 -o TEST test.f test1.f 3 0 sophia% ls 2 1 TEST test.f test1.f sophia% 3 0 2 1 4 SUN Solaris のワークステーションでは \g77" コマンド を使用します。 149 例 4 ファイル名 \test.f" をコンパイルし、特別なライブラリ (libm.a) をリンク sophia% f77 -lm test.f 3 0 sophia% ls 2 1 a.out test.f sophia% 3 2 0 1 [例 4] において、\test.f" の中で \cos", \sin", \sqrt" 等の数学的関数を使っている場合に 必要です5 。 5 cc コマンド と同じです。 150 付録 151 Appendix A. コマンド 要約 LPR : : : : : : : : : : : : : : : : : : : : : : : : : : : : Pnews : : : : : : : : : : : : : : : : : : : : : : : : : Rnmail : : : : : : : : : : : : : : : : : : : : : : : : a2ps : : : : : : : : : : : : : : : : : : : : : : : : : : admin : : : : : : : : : : : : : : : : : : : : : : : : : alias : : : : : : : : : : : : : : : : : : : : : : : : : apply : : : : : : : : : : : : : : : : : : : : : : : : : ファイルをプ リンタへ出力 ニュースを投稿 メールで応答 ps ファイルの出力 SCCS ファイルを作成し管理 1 コマンド 別名の定義 表示 コマンド を一連の引き数に摘要 apropos : : : : : : : : : : : : : : : : : : : : : : : キーワード によるコマンド 探索 ar : : : : : : : : : : : : : : : : : : : : : : : : : : : : : at : : : : : : : : : : : : : : : : : : : : : : : : : : : : : awk : : : : : : : : : : : : : : : : : : : : : : : : : : : : basename : : : : : : : : : : : : : : : : : : : : : : bc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : bdiff : : : : : : : : : : : : : : : : : : : : : : : : : bg : : : : : : : : : : : : : : : : : : : : : : : : : : : : : アーカイブとライブラリのメンテナンス biff : : : : : : : : : : : : : : : : : : : : : : : : : : cal : : : : : : : : : : : : : : : : : : : : : : : : : : : : calendar : : : : : : : : : : : : : : : : : : : : : : cat : : : : : : : : : : : : : : : : : : : : : : : : : : : : cb : : : : : : : : : : : : : : : : : : : : : : : : : : : : : cc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : cd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : cdc : : : : : : : : : : : : : : : : : : : : : : : : : : : : checknr : : : : : : : : : : : : : : : : : : : : : : : メールの着信 発信者を通知 指定した時刻にジョブを実行 パターン検索処理言語 パス名の一部分を取り出す 任意精度の計算言語 大型 di バックグランド ジョブの実行 1 カレンダー出力 スケジュールの通知 1 ファイルの連結 出力 C プログラムの清書 C コンパイラ デ ィレクトリの移動 SCCS ファイルのデルタ注釈の変更 nro/tro ファイルのチェック chgrp : : : : : : : : : : : : : : : : : : : : : : : : : グループの変更を行なう chmod : : : : : : : : : : : : : : : : : : : : : : : : : ファイル/デ ィレクトリの許可モード の変更 ci : : : : : : : : : : : : : : : : : : : : : : : : : : : : : clear : : : : : : : : : : : : : : : : : : : : : : : : : RCS ファイルに新版を格納する 画面クリア 152 cmp : : : : : : : : : : : : : : : : : : : : : : : : : : : : co : : : : : : : : : : : : : : : : : : : : : : : : : : : : : col : : : : : : : : : : : : : : : : : : : : : : : : : : : : colcrt : : : : : : : : : : : : : : : : : : : : : : : : colrm : : : : : : : : : : : : : : : : : : : : : : : : : comb : : : : : : : : : : : : : : : : : : : : : : : : : : 2 つのファイルを比較 RCS ファイルから revision を回復 逆方向改行フィルタ nro 端末出力フィルタ ファイルからカラムを取り除く SCCS ファイルのデルタ (変更) の結合 2 つのファイルの共通行の選択 1 削除 comm : : : : : : : : : : : : : : : : : : : : : : : : : : compress, uncompress, zcat : ファイルの圧縮 復元 結合 compressdir : : : : : : : : : : : : : : : : : : デ ィレクトリの圧縮 復元 cp : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ファイル/デ ィレクトリのコピー cpp : : : : : : : : : : : : : : : : : : : : : : : : : : : : C 言語プ リプロセッサ crypt : : : : : : : : : : : : : : : : : : : : : : : : : ファイルの暗号化 csh : : : : : : : : : : : : : : : : : : : : : : : : : : : : ctags : : : : : : : : : : : : : : : : : : : : : : : : : csh の起動 date : : : : : : : : : : : : : : : : : : : : : : : : : : dbx : : : : : : : : : : : : : : : : : : : : : : : : : : : : dc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : dd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : delta : : : : : : : : : : : : : : : : : : : : : : : : : deroff : : : : : : : : : : : : : : : : : : : : : : : : df : : : : : : : : : : : : : : : : : : : : : : : : : : : : : diction, explain : : : : : : : : : : : : 日時の出力と設定 diff : : : : : : : : : : : : : : : : : : : : : : : : : : diff3 : : : : : : : : : : : : : : : : : : : : : : : : : dirs : : : : : : : : : : : : : : : : : : : : : : : : : : dis : : : : : : : : : : : : : : : : : : : : : : : : : : : : domainname : : : : : : : : : : : : : : : : : : : du : : : : : : : : : : : : : : : : : : : : : : : : : : : : : dvi2ps : : : : : : : : : : : : : : : : : : : : : : : : 1 1 1 タグファイルの作成 デバッガ 卓上計算機 ファイルの交換とコピー SCCS ファイルにデルタを作成する nro,tro,tbl,eqn の生成ファイルの削除 デ ィスクの使用状況を見る 1 不明瞭 冗長な文を指摘する 2 つのファイルの内容比較 3 つのファイルの内容比較 デ ィレクトリスタックを表示する 逆アセンブラ 現在のド メインシステムの名前の設定と表示 デ イスク使用量の集計 ps ファイル出力 dviselect : : : : : : : : : : : : : : : : : : : : : dvi ファイルの一部抜き出し e :::::::::::::::::::::::::::::: echo : : : : : : : : : : : : : : : : : : : : : : : : : : ed : : : : : : : : : : : : : : : : : : : : : : : : : : : : : emacs : : : : : : : : : : : : : : : : : : : : : : : : : eqn, neqn,checkeq : : : : : : : : : : : ラインエデ ィタ 引き数のエコーバック ラインエデ ィタ スクリーンエデ ィタ 数学用タイプセット (tro のプ リプロセッサ) error : : : : : : : : : : : : : : : : : : : : : : : : : ex, edit : : : : : : : : : : : : : : : : : : : : : : expand, unexpand : : : : : : : : : : : : コンパイラのエラーメッセージの解析 expr : : : : : : : : : : : : : : : : : : : : : : : : : : 引き数の表現を評価する ラインエデ ィタ タブとスペースの置換 153 f77, g77 : : : : : : : : : : : : : : : : : : : : : : false, true : : : : : : : : : : : : : : : : : : fg : : : : : : : : : : : : : : : : : : : : : : : : : : : : : FORTRAN コンパイラ B シェルスクリプトで使用する評価値 一時停止しているジョブをフォアグランド で再開 file : : : : : : : : : : : : : : : : : : : : : : : : : : find : : : : : : : : : : : : : : : : : : : : : : : : : : finger, f : : : : : : : : : : : : : : : : : : : : : ファイルタイプの決定 fmt : : : : : : : : : : : : : : : : : : : : : : : : : : : : fold : : : : : : : : : : : : : : : : : : : : : : : : : : from : : : : : : : : : : : : : : : : : : : : : : : : : : ftp : : : : : : : : : : : : : : : : : : : : : : : : : : : : 文書整形 ファイル転送 gcore : : : : : : : : : : : : : : : : : : : : : : : : : 実行中のプロセスのコアイメージ取得 1 ファイルの種類の判定 出力 ユーザ情報の表示 長い行の折返し出力 メールの送り手の情報をメールヘッダに追加 SCCS ファイルのバージョン取得 ghostview : : : : : : : : : : : : : : : : : : : : : postscript ファイルの表示 gprof : : : : : : : : : : : : : : : : : : : : : : : : : C, Pascal, FORTRAN77 の実行プロファイルを作成 get : : : : : : : : : : : : : : : : : : : : : : : : : : : : gnuplot : : : : : : : : : : : : : : : : : : : : : : : グラフの作成 graph : : : : : : : : : : : : : : : : : : : : : : : : : グラフの作成 grep, egrep, fgrep : : : : : : : : : : ファイル内からパターンを検索 groups : : : : : : : : : : : : : : : : : : : : : : : : 自分の属しているグループを表示 gs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : PostScript インタプ リタ gzip, gunzip : : : : : : : : : : : : : : : : : ファイルの圧縮 復元 head : : : : : : : : : : : : : : : : : : : : : : : : : : help : : : : : : : : : : : : : : : : : : : : : : : : : : ファイルの先頭部分を出力 history : : : : : : : : : : : : : : : : : : : : : : : コマンド 履歴リストの表示 hostid : : : : : : : : : : : : : : : : : : : : : : : : hostname : : : : : : : : : : : : : : : : : : : : : : ident : : : : : : : : : : : : : : : : : : : : : : : : : indent : : : : : : : : : : : : : : : : : : : : : : : : install : : : : : : : : : : : : : : : : : : : : : : : jobs : : : : : : : : : : : : : : : : : : : : : : : : : : ホストの ID の定義 出力 1 コマンド の解説 1 1 ホスト名の定義 出力 ファイルの RCS キーワード の出力 C プログラムソースのインデント 1 整形 バイナリファイルのインストール 実行中のジョブの状態表示 join : : : : : : : : : : : : : : : : : : : : : : : : : : リレーショナルデータベース操作 kill : : : : : : : : : : : : : : : : : : : : : : : : : : kinput2 : : : : : : : : : : : : : : : : : : : : : : : ジョブにシグナルを送る プロセスの終了 last : : : : : : : : : : : : : : : : : : : : : : : : : : lastcomm : : : : : : : : : : : : : : : : : : : : : : ld : : : : : : : : : : : : : : : : : : : : : : : : : : : : : learn : : : : : : : : : : : : : : : : : : : : : : : : : leave : : : : : : : : : : : : : : : : : : : : : : : : : lex : : : : : : : : : : : : : : : : : : : : : : : : : : : : lint : : : : : : : : : : : : : : : : : : : : : : : : : : 最近ログ インしたユーザの情報表示 1 日本語入力 実行されたコマンド の情報表示 リンケージエデ ィタ UNIX に関する CAI 離れる時間の通知設定 簡単な字句解析プログラムの作成 C プログラムの文法チェック 154 ln : : : : : : : : : : : : : : : : : : : : : : : : : : : : : lock : : : : : : : : : : : : : : : : : : : : : : : : : : login : : : : : : : : : : : : : : : : : : : : : : : : : 端末のロック logout : : : : : : : : : : : : : : : : : : : : : : : : ログアウト (セッションの終了) look : : : : : : : : : : : : : : : : : : : : : : : : : : lpq : : : : : : : : : : : : : : : : : : : : : : : : : : : : ファイルからの行検索 プ リンタジョブの表示 lpr : : : : : : : : : : : : : : : : : : : : : : : : : : : : ファイルのプ リント lprm : : : : : : : : : : : : : : : : : : : : : : : : : : プ リンタジョブの削除 ls : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ファイル/デ ィレクトリの情報表示 m4 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : mail : : : : : : : : : : : : : : : : : : : : : : : : : : make : : : : : : : : : : : : : : : : : : : : : : : : : : man : : : : : : : : : : : : : : : : : : : : : : : : : : : : merge : : : : : : : : : : : : : : : : : : : : : : : : : マクロプロセッサ リンクの作成 ログイン (セッションの開始) メールの送受信 1 特定の関連付けたファイルの保守 更新 1 オンラインマニュアルの検索 表示 3 つのファイルのマージ mesg : : : : : : : : : : : : : : : : : : : : : : : : : : 他ユーザからのメッセージ受付の可否 mew : : : : : : : : : : : : : : : : : : : : : : : : : : : : mkdir : : : : : : : : : : : : : : : : : : : : : : : : : mkstr : : : : : : : : : : : : : : : : : : : : : : : : : more, page : : : : : : : : : : : : : : : : : : : メール ニュースリーダ mt : : : : : : : : : : : : : : : : : : : : : : : : : : : : : mv : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 デ ィレクトリの作成 C プログラムからエラーメッセージファイルの作成 ファイル内容の表示 磁気テープの操作 1 ファイル/デ ィレクトリ名の変更 移動 newsgroups : : : : : : : : : : : : : : : : : : : .newsrc ファイルをセットアップ 加入していない newsgroup のリストアップ nice, nohup : : : : : : : : : : : : : : : : : : プライオリティを変更してコマンド を実行 (sh only) nkf : : : : : : : : : : : : : : : : : : : : : : : : : : : : nm : : : : : : : : : : : : : : : : : : : : : : : : : : : : : notify : : : : : : : : : : : : : : : : : : : : : : : : 漢字コード 変換 newsetup : : : : : : : : : : : : : : : : : : : : : : オブジェクトファイルからの名前リスト出力 ジョブの状況表示 nroff : : : : : : : : : : : : : : : : : : : : : : : : : od : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ファイルのダンプ (8 進, 10 進, 16 進, ASCII) pagesize : : : : : : : : : : : : : : : : : : : : : : システムのページサイズ出力 patch : : : : : : : : : : : : : : : : : : : : : : : : : di ファイルをオリジナルファイルに適用する phone : : : : : : : : : : : : : : : : : : : : : : : : : 他のユーザと会話する platex,jlatex : : : : : : : : : : : : : : : : 文書整形 postnews : : : : : : : : : : : : : : : : : : : : : : ニュースの投稿 popd : : : : : : : : : : : : : : : : : : : : : : : : : : ディレクトリスタックの先頭のディレクトリを取り除 き新たに先頭になったデ ィレクトリに移動する pr : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ファイルをプ リンタへ出力 printenv : : : : : : : : : : : : : : : : : : : : : : 環境変数の出力 prof : : : : : : : : : : : : : : : : : : : : : : : : : : プロファイルデータの出力 文書整形 155 prs : : : : : : : : : : : : : : : : : : : : : : : : : : : : SCCS ファイルの出力 ps : : : : : : : : : : : : : : : : : : : : : : : : : : : : : プロセスの情報表示 pushd : : : : : : : : : : : : : : : : : : : : : : : : : デ ィレクトリスタックの移動 pwd : : : : : : : : : : : : : : : : : : : : : : : : : : : : ワーキングデ ィレクトリの表示 qkc : : : : : : : : : : : : : : : : : : : : : : : : : : : : 漢字コード 変換 qpr, qpr24, qpr32 : : : : : : : : : : : ファイルをプ リンタへ出力 quota : : : : : : : : : : : : : : : : : : : : : : : : : デ ィスククオタの表示 ranlib : : : : : : : : : : : : : : : : : : : : : : : : rcs : : : : : : : : : : : : : : : : : : : : : : : : : : : : rcsdiff : : : : : : : : : : : : : : : : : : : : : : : rcp : : : : : : : : : : : : : : : : : : : : : : : : : : : : アーカイブファイルをランダムライブラリへ変換 rcsmerge : : : : : : : : : : : : : : : : : : : : : : RCS ファイルのリビジョンをマージ nro/tro のプ リプロセッサ refer : : : : : : : : : : : : : : : : : : : : : : : : : RCS ファイルの属性変更 RCS ファイルのリビジョン比較 リモートシステムへのファイルコピー reset : : : : : : : : : : : : : : : : : : : : : : : : : rev : : : : : : : : : : : : : : : : : : : : : : : : : : : : rlog : : : : : : : : : : : : : : : : : : : : : : : : : : ファイルを逆順に出力 rlogin : : : : : : : : : : : : : : : : : : : : : : : : リモートログ イン rm, rmdir : : : : : : : : : : : : : : : : : : : : : ファイル/デ ィレクトリの削除 rmdel : : : : : : : : : : : : : : : : : : : : : : : : : rn : : : : : : : : : : : : : : : : : : : : : : : : : : : : : rsh : : : : : : : : : : : : : : : : : : : : : : : : : : : : sact : : : : : : : : : : : : : : : : : : : : : : : : : : sccs : : : : : : : : : : : : : : : : : : : : : : : : : : sccsdiff : : : : : : : : : : : : : : : : : : : : : : script : : : : : : : : : : : : : : : : : : : : : : : : SCCS ファイルからデルタを削除 sed : : : : : : : : : : : : : : : : : : : : : : : : : : : : setenv : : : : : : : : : : : : : : : : : : : : : : : : sh : : : : : : : : : : : : : : : : : : : : : : : : : : : : : size : : : : : : : : : : : : : : : : : : : : : : : : : : sleep : : : : : : : : : : : : : : : : : : : : : : : : : ターミナルオプションをリセット RCS ファイルのログ メッセージ等情報の表示 ニュース購読 リモートシェル SCCS ファイルの編集状況の表示 SCCS のマンマシンインタフェース SCCS ファイルのバージョン比較 端末に表示した全ての情報をファイルへ出力 ストリームエデ ィタ 1 環境変数の設定 表示 標準シェルの起動 オブジェクトファイルのセクションサイズを表示 ある期間実行を停止する nro への入力ファイルに .so を含まないようにする soelim : : : : : : : : : : : : : : : : : : : : : : : : sort : : : : : : : : : : : : : : : : : : : : : : : : : : spell : : : : : : : : : : : : : : : : : : : : : : : : : 行の並べ替え split : : : : : : : : : : : : : : : : : : : : : : : : : ファイルの分割 ssh : : : : : : : : : : : : : : : : : : : : : : : : : : : : stop : : : : : : : : : : : : : : : : : : : : : : : : : : 暗号化通信 strings : : : : : : : : : : : : : : : : : : : : : : : オブジェクトから表示可能な文字列の出力 strip : : : : : : : : : : : : : : : : : : : : : : : : : オブジェクトからシンボルと行番号を削除 stty : : : : : : : : : : : : : : : : : : : : : : : : : : 端末のオプションの設定 表示 英文スペルチェッカ 実行中のバックグランド ジョブの一時停止 1 156 style : : : : : : : : : : : : : : : : : : : : : : : : : 文書の特徴を表示 su : : : : : : : : : : : : : : : : : : : : : : : : : : : : : sum : : : : : : : : : : : : : : : : : : : : : : : : : : : : symorder : : : : : : : : : : : : : : : : : : : : : : 一時的なユーザの変更 ファイルのチェックサムとブロック数の出力 syslog : : : : : : : : : : : : : : : : : : : : : : : : システムログエントリ出力制御 tabs : : : : : : : : : : : : : : : : : : : : : : : : : : tail : : : : : : : : : : : : : : : : : : : : : : : : : : talk : : : : : : : : : : : : : : : : : : : : : : : : : : tar : : : : : : : : : : : : : : : : : : : : : : : : : : : : tbl : : : : : : : : : : : : : : : : : : : : : : : : : : : : 端末のタブ設定 ネームリストの再編集 ファイルの末尾部分を表示 他のユーザと会話する 1 アーカイブファイルの作成 解凍 nro/tro 用の表作成 tcsh : : : : : : : : : : : : : : : : : : : : : : : : : : tcsh tee : : : : : : : : : : : : : : : : : : : : : : : : : : : : 標準入力を標準出力/ファイルへ出力 telnet : : : : : : : : : : : : : : : : : : : : : : : : test : : : : : : : : : : : : : : : : : : : : : : : : : : tgif : : : : : : : : : : : : : : : : : : : : : : : : : : リモートログ イン 条件評価 図形描画 time : : : : : : : : : : : : : : : : : : : : : : : : : : timezone : : : : : : : : : : : : : : : : : : : : : : tip, cu : : : : : : : : : : : : : : : : : : : : : : : コマンド 実行時間の測定 touch : : : : : : : : : : : : : : : : : : : : : : : : : ファイルのアクセス/変更時刻の変更 tr : : : : : : : : : : : : : : : : : : : : : : : : : : : : : troff, nroff : : : : : : : : : : : : : : : : : tset : : : : : : : : : : : : : : : : : : : : : : : : : : tsort : : : : : : : : : : : : : : : : : : : : : : : : : tty : : : : : : : : : : : : : : : : : : : : : : : : : : : : 文字の置換 1 タイムゾーンの設定 表示 リモートシステムとの接続 文書整形 ターミナルオプションをリセット トポロジカルソート 端末名の出力 ul : : : : : : : : : : : : : : : : : : : : : : : : : : : : : unalias : : : : : : : : : : : : : : : : : : : : : : : unget : : : : : : : : : : : : : : : : : : : : : : : : : アンダーラインを付与 unifdef : : : : : : : : : : : : : : : : : : : : : : : uniq : : : : : : : : : : : : : : : : : : : : : : : : : : #ifdef 行の削除 コマンド 別名定義の解除 直前の SCCS ファイルに対する get の取り消し 1 ファイル内の連続する重複行の削除 表示 units : : : : : : : : : : : : : : : : : : : : : : : : : uptime : : : : : : : : : : : : : : : : : : : : : : : : 単位換算 users, u : : : : : : : : : : : : : : : : : : : : : : : uucp : : : : : : : : : : : : : : : : : : : : : : : : : : ログインしているユーザ名の表示 uuencode, uudecode : : : : : : : : : : uulog : : : : : : : : : : : : : : : : : : : : : : : : : uuname : : : : : : : : : : : : : : : : : : : : : : : : uusend : : : : : : : : : : : : : : : : : : : : : : : : uux : : : : : : : : : : : : : : : : : : : : : : : : : : : : val : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 システム稼働時間 状況の表示 UNIX システム間のファイルコピー バイナリファイルを ASCII ファイルへ変換 1 復元 UUCP ログファイルの表示 アクセス可能な UUCP システムの表示 リモートシステムへのファイル転送 リモートシステムでの UUCP によるコマンド 実行 SCCS ファイルの検証 157 vgrind : : : : : : : : : : : : : : : : : : : : : : : : tro を用いたプログラムソースの整形 vi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : vmstat : : : : : : : : : : : : : : : : : : : : : : : : w, who : : : : : : : : : : : : : : : : : : : : : : : : スクリーンエデ ィタ wall : : : : : : : : : : : : : : : : : : : : : : : : : : wc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : what : : : : : : : : : : : : : : : : : : : : : : : : : : ログインしている全ユーザへメッセージ送信 仮想メモリの状態表示 ログ インしているユーザのログ イン名と作業内容の 表示 ファイルの中の語数のカウント出力 SCCS ファイルのオブジェクトモジュールのバージョ ン表示 whatis : : : : : : : : : : : : : : : : : : : : : : : : whereis : : : : : : : : : : : : : : : : : : : : : : : which : : : : : : : : : : : : : : : : : : : : : : : : : whoami : : : : : : : : : : : : : : : : : : : : : : : : xdvi : : : : : : : : : : : : : : : : : : : : : : : : : : xv : : : : : : : : : : : : : : : : : : : : : : : : : : : : : yppasswd : : : : : : : : : : : : : : : : : : : : : : zmore : : : : : : : : : : : : : : : : : : : : : : : : : zsh : : : : : : : : : : : : : : : : : : : : : : : : : : : : コマンド の簡単な説明を出力 1 1 ソース マニュアル バイナリの所在を表示 コマンド のサーチパス/alias を表示 自分のログ イン名の表示 dvi ファイルの表示 1 画像操作 編集 ログインパスワード の変更 圧縮されたファイルの内容の出力 zsh 158 Appendix B. 定義済 C シェル変数 定義済 C シェル変数の主なものについて説明します。自分がどのような変数を定義してい るかを見るときは、\@" あるいは、\set" と入力します。画面には現在設定されている変数の リストが表示されます。 C シェル変数には、変数に値 (引き数) を持つものと、変数を設定するかしないかだけのも のと 2 種類があります。後者の変数については、set/unset に続き変数名を入力することによっ て、変数を定義することができます。以下ではよく使われる変数の利用方法と設定方法を説明 します。 cwd : : : : : : : : : : : カレントデ ィレクトリ カレントディレクトリの完全パス名。pwd コマンド を実行した時に 表示される内容と同じものが入ります。 echo : : : : : : : : : : エコー機能 (set/unset) MS-DOS の ECHO と同じ機能で、この変数をセットするとコマン ド を実行した時に、そのコマンドを画面に再表示します。規定値は、 unset です。 history : : : : : : : ヒストリバッファ内のコマンド 保存数 ヒストリバッファ内に保存するコマンド 数の指定。既定ではセット されていない。\.cshrc" ファイル中に \set history = 10" と記述し ておくと実行したコマンドの新しいものから 10 個が、ヒストリバッ ファ内に保存されます。 home : : : : : : : : : : ホームデ ィレクトリ ユーザのホームデ ィレクトリの完全パス名。 ignoreeof : : : : EOF(End of File:ファイル終了) 文字を無視 (set/unset) この変数をセットすると、端末から EOF( Ctrl キーを押しながら \d" キー) を入力してもログアウトすることはできません。ログアウ トするためには、\logout" コマンド を入力しなければなりません。 また、サブシェルから抜け出す場合には、\exit" コマンド を入力し ます。既定値は、unset です。 159 noclobber ファイル非破壊機能 (set/unset) この変数をセットしておくと、リダ イレクト機能を使って出力先に既に 存在するファイル名を指定した時、書き込みを禁止します。ただし、ファ イルへの追加は可能です。既定値は、unset です。 notify : : : ジョブ終了通知機能 (set/unset) \.cshrc" ファイルの中に、\set notify" という一文を加えておくと、バッ クグラウンド ジョブが終了した時に、ジョブの終了を通知してくれます。 既定値は、unset です。 path : : : : : コマンド 検索パス コマンド を検索するパス名を入力しておく。UNIX システムでは、既定 値として \.cshrc" ファイルの中に次の一文が記述され設定してありま す。 set path = (/usr/local/bin /usr/ucb /bin /usr/hosts \ /usr/local/mh /usr/local/im .) prompt : : : プロンプト プロンプトに使用する文字列を指定する。UNIX システムでは、既定値 として \.cshrc" ファイルの中に次の一文が記述され設定してあります。 \set prompt = ユーザ名@マシン名 [\!]=>" savehist : ログアウト時のヒストリバッファ保存コマンド 数 ログアウトするときに保存するコマンド の数を指定する。次回、ログ イ ンした時に、これらのコマンド はヒストリバッファに自動的に保存され ます。既定値は、unset です。 \.login" ファイルに、\set savehist = 10" と書いておくと、ログアウト 時に自動的に最後から 10 個のコマンド を次回ログインした時のために保 存しておいてくれます。 shell : : : : シェルファイル シェルの完全パス名。既定値は、\/bin/tcsh" です。 term : : : : : 端末名 端末の型式を指定します。これは、\.login" ファイル内で設定されてい ます。 user : : : : : ユーザ名 ユーザのログイン名。 160 Appendix C. C シェル組込みコマンド C シェルの組み込みコマンド の主なものについて簡単に説明します。以下に説明するコマ ンド は、対話的に実行することが可能です。また、ジョブの制御を行う場合などには欠かせ ないものです。さらに、これらをホームディレクトリにある、\.cshrc", \.login" あるいは、 \.logout" ファイルの中で上手に利用することで、かなり大きなパワーを発揮します。 alias : : : : : : : : : : : : : : : : : : : : : : : : : : : : ユーザが定義した全ての別名および、その元のコ マンド を表示する。 alias name : : : : : : : : : : : : : : : : : : : : : : name という別名で定義された元のコマンド が何で あるかを表示する。 alias name command : : : : : : : : : : : : command の別名として name という名前を与える。 例えば、このコマンド を使って、次のように入力 しておくと 0 3 sophia% alias dir ls 2 1 この後からは、dir と入力すると ls コマンド が実 行される。 bg : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 実行を一時中断していたジョブをバックグラウン ド で再実行する。 bg %jobnumber : : : : : : : : : : : : : : : : : : : 実行を一時中断していたジョブ番号、jobnumber の ジョブをバックグラウンド で再実行する。 cd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : cd directoryname 引数を与えずに単に、cd 2 1と入力すると、ユーザ 3 0 のホームディレクトリに移動する。また、cd / 2 1 と入力すると、ルートディレクトリに移動する。任 意のディレクトリに移動したい場合は、 directoryname に行き先のディレクトリ名を入力する。なお、 chdir は、cd と全く同じ機能である。 dirs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ディレクトリスタックの内容を表示する。ディレク ト リスタックは、LIFO(Last In First Out:最後に いれたデ ィレクトリが先頭に並んでいる) である。 3 0 161 exit : : : : : : : : : : : : : : : : : : : : : : : : : : : : : シェルスクリプトの実行を終了し、C シェルに戻 る。この時 最後に実行したコマンド の状態 (正常 終了=0;異常終了 =0) を返す。 6 fg : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : バックグラウンド で実行を中断していたジョブを フォアグラウンド で再実行する。 fg %jobnumber : : : : : : : : : : : : : : : : : : : バックグラウンド で実行を中断していたジョブ番 号、jobnumber のジョブをフォアグランドで再実行 する。 foreach variable(word1 word2 …) foreach と end の間の一連のコマンド を実行する ごとに、変数 variable に word1, word2, …という end command1 command2 順序で値を割り当てていく。一連の同一の処理を 別々のファイルに入力する時などに使用する。 history : : : : : : : : : : : : : : : : : : : : : : : : : : コマンド の履歴リストを表示する。 history n : : : : : : : : : : : : : : : : : : : : : : : : コマンド 履歴リストの中から最新の、n 個を選び 出して表示する。 history -r n : : : : : : : : : : : : : : : : : : : : コマンド 履歴リストの中から最新の、n 個を選び 出し、順序を逆にして表示する。 history -h n : : : : : : : : : : : : : : : : : : : : コマンド 履歴リストの中から最新の、n 個をコマ ンド 番号を付けないで表示する。 jobs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 現在実行中のジョブのリストを表示する。 jobs -l : : : : : : : : : : : : : : : : : : : : : : : : : : 現在実行中のジョブとそのプロセス番号のリスト を表示する。 kill %jobnumber : : : : : : : : : : : : : : : : : kill pid : : : : : : : : : : : : : : : : : : : : : : : : : ジョブ番号 jobnumber のジョブを強制終了させる。 プロセス ID 番号 pid のプロセスを強制終了させ る。kill コマンド は、文字通りプロセスの息の根 を止めてしまうので再開させることはできない。 limit : : : : : : : : : : : : : : : : : : : : : : : : : : : : ファイルやデータのサイズなどに関する資源の利 用制限 (すなわちどれだけの資源利用を許可されて いるか) を表示する。 limit resource : : : : : : : : : : : : : : : : : : : limit resource maxuse : : : : : : : : : : : resource で示される資源の利用制限を表示する。 resource で示される資源の利用制限を maxuse に設 定する。 login : : : : : : : : : : : : : : : : : : : : : : : : : : : : 自分の使用している端末を別のユーザにすぐ に渡 す時に使用すると便利なコマンド です。ホスト名 を入力する必要がなく、すぐ にログ イン名を聞い てくる。 logout : : : : : : : : : : : : : : : : : : : : : : : : : : : ログアウトして、UNIX システムの利用を終了す る。 162 nohup : : : : : : : : : : : : : : : : : : : : : : : : : : : : ハングアップシグナルを無視して、ジョブの実行 を継続する。バックグラウンド ジョブを実行中に ログアウトするとジョブは強制終了される。これ を回避するためには、.logout ファイルに、nohup という一文を加えれば良い。 notify : : : : : : : : : : : : : : : : : : : : : : : : : : : バックグラウンド で実行中のジョブの終了などを 通知する。 notify %jobnumber : : : : : : : : : : : : : : : バックグラウンドで実行中のジョブ番号 jobnumber のジョブの終了などを通知する。 popd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : デ ィレクトリスタックから、先頭のデ ィレクト リ を削除して、新たに先頭になったデ ィレクトリに 移動する。 popd +n : : : : : : : : : : : : : : : : : : : : : : : : : ディレクトリスタックから、n 番目のディレクトリ を削除する。 pushd : : : : : : : : : : : : : : : : : : : : : : : : : : : : ディレクトリスタックの先頭の 2 つのデ ィレクト リの順序を入れ換えて、新たに先頭になったデ ィ レクトリに移動する。 pushd dir : : : : : : : : : : : : : : : : : : : : : : : : : デ ィレクト リ dir をデ ィレクト リスタックに入れ て、そこへ移動する。 pushd +n : : : : : : : : : : : : : : : : : : : : : : : : デ ィレクトリスタックの n 番目のデ ィレクト リを 先頭にし、そこへ移動する。 repeat count command : : : : : : : : : : : command に示されるコマンドを count 回繰り返す。 設定されているシェル変数の値を表示する。@ コ set : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : マンド と同じ。 set variable : : : : : : : : : : : : : : : : : : : : : : 変数 variable に空文字列 (null string) を与える。 set variable = word : : : : : : : : : : : : : : set variable[n] = word : : : : : : : : : : : : 変数 variable に word という値を与える。 変数 name の n 番目の単語に word という値を与 える。 set variable = (word1 word2 …) : : 変数 variable に word1 word2 …といういくつかの 単語の並びを値として与える。 setenv variable value : : : : : : : : : : : : : stop : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 環境変数 variable に、value という値を与える。 バックグラウンド で実行中のジョブを一時中断す る。 stop %jobnumber : : : : : : : : : : : : : : : : : バックグラウンドで実行中のジョブ番号 jobnumber のジョブを一時中断する。 time command : : : : : : : : : : : : : : : : : : : umask : : : : : : : : : : : : : : : : : : : : : : : : : : : : コマンド command の実行時間などを表示する。 umask(ユーザマスク) の設定値を表示する。umask はファイルのパーミッションに関連したコマンド で、ユーザが新たにファイルやディレクトリを作成 した場合に、パーミッションの既定値として umask の値が用いられます。 163 umask value : : : : : : : : : : : : : : : : : : : : : : unalias name : : : : : : : : : : : : : : : : : : : : umask の値を value に設定する。 name という名前の別名の定義を削除して、別名の 使用を無効とする。 unlimit : : : : : : : : : : : : : : : : : : : : : : : : : : unlimit resource : : : : : : : : : : : : : : : : : 全ての資源利用を無制限とする。 limit コマンド で設定した、資源 resource の利用 制限を解除する。 unset variable : : : : : : : : : : : : : : : : : : : : while(expr) : : : : : : : : : : : : : : : : : : : : : : end command1 comman2 jobname & : : : : : : : : : : : : : : : : : : : : : : : : @ ::::::::::::::::::::::::::::::::: シェル変数 variable を解放する。 6 式 expr を評価した結果が真 (=0) である間は、while と end の間の一連のコマンド (command1, command2, …) の実行を繰り返す。式の値が偽 (=0) で あれば、ループを抜け出す。 jobname で示されるジョブ (単なるコマンド でも良 い) をバックグラウンド で実行する。 設定されているシェル変数の値を表示する。sf set コマンド と同じ。 @ variable = value : : : : : : : : : : : : : : : : @ variable[n] = value : : : : : : : : : : : : : : シェル変数 variable に value という値を与える。 シェル変数 variable の n 番目の単語に value とい う値を与える。 164 Appendix D. UNIX ホスト 名一覧 表 D.1: UNIX ホスト名一覧表 システム名 Tru64 FreeBSD Solaris ホスト名 主な用途 高速科学技術計算, 電子メール, 電子ニュース, X ウィンド ウ, LaTEX, LaTEX2", IMSL, LSF, MATLAB, Web 閲覧 授業, 電子メール, 電子ニュース, X ウィンド ウ, LaTEX, LaTEX2", IMSL, LSF, MATLAB, Web 閲覧 科学技術演算, 電子メール, 電子ニュース, X ウィンド ウ,LaTEX, LaTEX2", IMSL, LSF, MATLAB, Web 閲覧 biwa sagami bosch dahlman arimine sai shoji hamana kizaki nojiri suwa towada abukuma ayase chikugo naka shingu tedori numazawa sanaki yogo haruna megami shinji 同 上 tazawa tsukui agano buko kuji 電子メール, 電子ニュース, X ウィンド ウ, sakawa LaTEX2", Web 閲覧 suzuka tsurumi nagato suruga 電子メール, 電子ニュース, X ウィンド ウ, LaTEX2", Web 閲覧 165 索引 co : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 col : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 colcrt : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 colrm : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 comb : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 comm : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 100,153 compress : : : : : : : : : : : : : : : : : : : : : : : : : : 101,153 compressdir : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 cp : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 32,153 cpp : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 crypt : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 csh : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 ctags : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 cu : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 cwd (C シェル定義変数) : : : : : : : : : : : : : : : 159 A a2ps : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 admin : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 alias : : : : : : : : : : : : : : : : : : : : : : : : : : : 75,152,161 apply : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 apropos : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 ar : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 ascii : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 at : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 awk : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 114,152 B basename : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 bc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 bdi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 bg : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152,81,161 bi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 binary : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 bye : : : : : : : : : : : : : : : : : : : : : : : : : : : 138,139,140 D date : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 21,27,153 dbx : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 dc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 dd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 delta : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 dero : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 df : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 diction : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 di : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 100,153 di3 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 100,153 dir : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 137,139 dirs : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153,86,161 dis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 domainname : : : : : : : : : : : : : : : : : : : : : : : : : : 153 du : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 dvi2ps : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 dviselect : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 C cal : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22,152 calendar : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 cat : : : : : : : : : : : : : : : : : : : : : : : : : : 27,30,140,152 cb : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 cc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147,152 cdc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 cd : : : : : : : : : : : : : : : : : : : : : 34,137,139,152,161 checkeq : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 checknr : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 chgrp : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 chmod : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 41,152 ci : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 clear : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 cmp : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 100,153 166 gunzip : : : : : : : : : : : : : : : : : : : : : : : : : : : : 102,154 gzip : : : : : : : : : : : : : : : : : : : : : : : : : : : 101,140,154 E e : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 echo (C シェル定義変数) : : : : : : : : : : : : : : 159 echo : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 27,153 ed : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 45,108,153 edit : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 egrep : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154,94 emacs : : : : : : : : : : : : : : : : : : : : : : : : : : : 45,58,153 eqn : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 error : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 ex : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 45,153 exit : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 expand : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 explain : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 expr : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 H head : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 help : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 history (C シェル定義変数) : : : : : : : : : : : : 159 history : : : : : : : : : : : : : : : : : : : : : : 72,73,154,162 home (C シェル定義変数) : : : : : : : : : : : : : 159 hostid : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 hostname : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 I ident : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 ignoreeof (C シェル定義変数) : : : : : : : : : : 159 indent : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 install : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 IMSL : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 144 F f : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 f77 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 149,154 false : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 fg : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 81,154,162 fgrep : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 94,154 le : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 nd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 103,154 nger : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 fmt : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 fold : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 foreach : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 from : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 ftp : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 135,154 J jlatex : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 jobs : : : : : : : : : : : : : : : : : : : : : : : : : : : : 81,162,154 join : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 K kill : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 81,154,162 kinput2 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 L G last : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 lastcomm : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 lcd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 ld : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 learn : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 leave : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 lex : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 limit : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 lint : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 ln : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 g77 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 149,154 gcore : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 get : : : : : : : : : : : : : : : : : : : : : : : : : : : : 137,139,154 ghostview : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 gnuplot : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 gprof : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 graph : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 grep : : : : : : : : : : : : : : : : : : : : : : : : : : : 93,108,154 groups : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 gs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 167 open : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 134,136 OS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 144 lock : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 login : : : : : : : : : : : : : : : : : : : : : : : : : : : 13,155,162 logout : : : : : : : : : : : : : : : : : : : : : : : 19,20,155,162 look : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 lpq : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 129,155 lpr : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 lprm : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 130,155 ls : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28,139,155 LPR : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 127,152 P page : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 pagesize : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 patch : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 path (C シェル定義変数) : : : : : : : : : : : : : : 160 phone : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 104,155 platex : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 popd : : : : : : : : : : : : : : : : : : : : : : : : : : : 86,155,163 postnews : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 printenv : : : : : : : : : : : : : : : : : : : : : : : : : : : 90,155 prof : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 prompt (C シェル定義変数) : : : : : : : : : : : 160 prompt : : : : : : : : : : : : : : : : : : : : : : : : : : : : 73,139 pr : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 prs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 ps : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 81,156 pushd : : : : : : : : : : : : : : : : : : : : : : : : : : 86,156,163 put : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 pwd : : : : : : : : : : : : : : : : : : : : : : : : : : : : 33,139,156 Pnews : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 M m4 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 mail : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 make : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 man : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22,155 merge : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 mesg : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 mew : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 mget : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 mkdir : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 35,155 mkstr : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 more : : : : : : : : : : : : : : : : : : : : : : : : 23,30,140,155 mput : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 mt : : : : : : : : : : : : : : : : : : : : : : : : : : : : 121,122,155 mv : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31,155 Q qkc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 qpr24 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 qpr32 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 quit : : : : : : : : : : : : : : : : : : : : : : : 134,138,139,140 quota : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 N neqn : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 newsetup : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 newsgroups : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 nice : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 nkf : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 nm : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 noclobber (C シェル定義変数) : : : : : : : : : 160 nohup : : : : : : : : : : : : : : : : : : : : : : : : : : 81,155,163 notify (C シェル定義変数) : : : : : : : : : : : : : 160 notify : : : : : : : : : : : : : : : : : : : : : : : : : : 81,155,163 nro : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155,157 R ranlib : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 rcp : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 rcs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 rcsdi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 rcsmerge : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 refer : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 repeat : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 reset : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 rev : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 O od : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 168 rlog : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 rlogin : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 134,156 rm : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 33,156 rmdel : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 rmdir : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 36,156 rn : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 rsh : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 Rnmail : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 152 tbl : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 tcsh : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 tee : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 telnet : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 131,157 term (C シェル定義変数) : : : : : : : : : : : : : : 160 test : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 tgif : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 time : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157,163 timezone : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 tip : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 touch : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 tr : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 99,157 tro : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 true : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 154 tset : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 tsort : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 tty : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 S sact : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 savehist (C シェル定義変数) : : : : : : : : : : : 160 sccs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 sccsdi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 script : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 sed : : : : : : : : : : : : : : : : : : : : : : : : : : : 108,110,156 set : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 78,159,163 setenv : : : : : : : : : : : : : : : : : : : : : : : 90,91,156,163 sh : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 shell (C シェル定義変数) : : : : : : : : : : : : : : 160 size : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 sleep : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 soelim : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 sort : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 96,156 spell : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 split : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 ssh : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 stop : : : : : : : : : : : : : : : : : : : : : : : : : : : 81,156,163 strings : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 strip : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 stty : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 88,156 style : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 su : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 sum : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 symorder : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 syslog : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 U u : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 ul : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 umask : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 unalias : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157,164 uncompress : : : : : : : : : : : : : : : : : : : : : : : 102,153 unexpand : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 153 unget : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 unifdef : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 uniq : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 97,157 units : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 unlimit : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164 unset : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 159,164 unsetenv : : : : : : : : : : : : : : : : : : : : : : : : : : : : 90,91 uptime : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 user (C シェル定義変数) : : : : : : : : : : : : : : 160 user : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 136 users : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 uucp : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 uudecode : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 uuencode : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 uulog : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 uuname : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 uusend : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 uux : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 T tabs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 tail : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 talk : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 104,157 tar : : : : : : : : : : : : : : : : : : : : : : : : : : : : 121,140,157 169 終了 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 62 テキストの入力 : : : : : : : : : : : : : : : : : : : : 59 日本語入力 : : : : : : : : : : : : : : : : : : : : : : : : : 63 ファイルの保存 : : : : : : : : : : : : : : : : : : : : 62 文字の消去 : : : : : : : : : : : : : : : : : : : : : : : : : 61 エデ ィタ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 45 ed : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 45 emacs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 45 ex : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 45 vi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 45 スクリーンエデ ィタ : : : : : : : : : : : : : : : : 45 ライン (行) エデ ィタ : : : : : : : : : : : : : : : 45 ftp : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 135,154 anonymous : : : : : : : : : : : : : : : : : : : : : : : : 141 パスワード : : : : : : : : : : : : : : : : : : : : : : 141 起動 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 135 終了 : : : : : : : : : : : : : : : : : : : : : : : : : : 138,140 サブコマンド : : : : : : : : : : : : : : : : : : : : : 139 転送の実際 : : : : : : : : : : : : : : : : : : : : : : : : 137 転送モード : : : : : : : : : : : : : : : : : : : : : : : : 140 ASCII : : : : : : : : : : : : : : : : : : : : : : : : : : : 140 BINARY : : : : : : : : : : : : : : : : : : : : : : : : 140 OS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 144 オンラインマニュアル : : : : : : : : : : : : : : : : : : 22 V val : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 vgrind : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 vi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 45,46,158 vmstat : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 W w : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 wall : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 wc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 95,158 what : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 whatis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 whereis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 which : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 while : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164 who : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 21,158 who am i : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 21 whoami : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 WIDE Project : : : : : : : : : : : : : : : : : : : : : : : : 134 X xdvi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 xlogout : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 20 xv : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 か カーネル : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 画面スクロール : : : : : : : : : : : : : : : : : : : : : : : : 30 一時停止 : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 再開 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 カレントデ ィレクトリ : : : : : : : : : : : : : : : : : : 24 カレントデ ィレクトリの表示 : : : : : : : : : : : 33 環境設定 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 90 完全パス名指定 : : : : : : : : : : : : : : : : : : : : : : : : 26 基本的な使い方 : : : : : : : : : : : : : : : : : : : : : : : : 13 クォーティング : : : : : : : : : : : : : : : : : : : : : : : : 79 コマンド の置換 : : : : : : : : : : : : : : : : : : : : : : : : 79 コマンドプロンプト : : : : : : : : : : : : : : : : : : : : 13 コンパイラ : : : : : : : : : : : : : : : : : : : : : : : : : : : 144 コンパイル : : : : : : : : : : : : : : : : : : : : : : : : : : : 144 C 言語 : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147 FORTRAN 言語 : : : : : : : : : : : : : : : : : : 149 Compaq Tru64 システム : : : : : : : : : : : : : : : : : 3 Y yppasswd : : : : : : : : : : : : : : : : : : : : : : : : : : 17,158 Z zcat : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 103,153 zmore : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 103,158 zsh : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 158 あ IMSL : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 144 emacs : : : : : : : : : : : : : : : : : : : : : : : : : : : 45,58,153 カーソルの移動 : : : : : : : : : : : : : : : : : : : : 60 起動 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 58 コマンド 一覧 : : : : : : : : : : : : : : : : : : : : : : : 68 170 savehist : : : : : : : : : : : : : : : : : : : : : : : : : : : 160 shell : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 160 term : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 160 user : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 160 C シェルとは? : : : : : : : : : : : : : : : : : : : : : : : : : 72 磁気テープ装置 : : : : : : : : : : : : : : : : : : : : : : : 120 シェル : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 シェル変数 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 78 出力リダ イレクション : : : : : : : : : : : : : : : : : : 27 ジョブ制御 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 80 スクリーンエデ ィタ : : : : : : : : : : : : : : : : : : : : 45 正規表現 : : : : : : : : : : : : : : : : : : : : : : : : : : : 93,108 接続手段 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 C/S 接続経由 : : : : : : : : : : : : : : : : : : : : : : : : 7 IP 接続経由 : : : : : : : : : : : : : : : : : : : : : : : : : 7 PPP 接続 : : : : : : : : : : : : : : : : : : : : : : : : : : : 8 インターネット経由 : : : : : : : : : : : : : : : : : 8 学外からの接続 : : : : : : : : : : : : : : : : : : : : : 7 学内からの接続 : : : : : : : : : : : : : : : : : : : : : 7 情報コンセント : : : : : : : : : : : : : : : : : : : : : 7 シリアル接続 : : : : : : : : : : : : : : : : : : : : : : : : 8 モデム経由 : : : : : : : : : : : : : : : : : : : : : : : : : : 8 接続方法 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 TCP/IP 経由 : : : : : : : : : : : : : : : : : : : : : : : 10 Windows2000 搭載パソコン : : : : : : : : : : 9 パソコン : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 ワークステーション : : : : : : : : : : : : : : : : 11 相対パス名指定 : : : : : : : : : : : : : : : : : : : : : : : : 26 さ SUN Solaris システム : : : : : : : : : : : : : : : : : : : : 6 C 言語 : : : : : : : : : : : : : : : : : : : : : : : : : : : : 144,147 C シェル : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 72 環境設定ファイル : : : : : : : : : : : : : : : : : : 87 C シェル組込み変数 : : : : : : : : : : : : : : : : : : : 161 alias : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 161 bg : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 161 cd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 161 dirs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 161 exit : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 fg : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 foreach : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 history : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 jobs : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 kill : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 limit : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 login : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 logout : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 162 nohup : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 notify : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 popd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 pushd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 repeat : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 set : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 setenv : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 stop : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 time : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 umask : : : : : : : : : : : : : : : : : : : : : : : : : : : : 163 unalias : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164 unlimit : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164 unset : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164 while : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 164 C シェル定義変数 : : : : : : : : : : : : : : : : : : : : : 159 cwd : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 159 echo : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 159 history : : : : : : : : : : : : : : : : : : : : : : : : : : : : 159 home : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 159 ignoreeof : : : : : : : : : : : : : : : : : : : : : : : : : : 159 noclobber : : : : : : : : : : : : : : : : : : : : : : : : : 160 notify : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 160 path : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 160 prompt : : : : : : : : : : : : : : : : : : : : : : : : : : : 160 た 端末設定コマンド : : : : : : : : : : : : : : : : : : : : : : 88 通常ファイル : : : : : : : : : : : : : : : : : : : : : : : : : : 24 デ ィレクトリの移動 : : : : : : : : : : : : : : : : : : : : 34 デ ィレクトリの削除 : : : : : : : : : : : : : : : : : : : : 36 デ ィレクトリの作成 : : : : : : : : : : : : : : : : : : : : 35 デ ィレクトリスタック機構 : : : : : : : : : : : : : 86 デ ィレクトリ操作 : : : : : : : : : : : : : : : : : : : : : : 33 カレントデ ィレクトリの表示 : : : : : : : 33 デ ィレクトリの移動 : : : : : : : : : : : : : : : : 34 デ ィレクトリの作成 : : : : : : : : : : : : : : : : 35 デ ィレクトリの削除 : : : : : : : : : : : : : : : : 36 デ ィレクトリファイル : : : : : : : : : : : : : : : : : : 24 telnet : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 131,157 171 起動 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 132 終了 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 134 特殊ファイル : : : : : : : : : : : : : : : : : : : : : : : : : : 24 起動 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 46 行全体の変更 : : : : : : : : : : : : : : : : : : : : : : : 51 行の削除 : : : : : : : : : : : : : : : : : : : : : : : : : : : 55 行の挿入 : : : : : : : : : : : : : : : : : : : : : : : : : : : 54 コマンド 一覧 : : : : : : : : : : : : : : : : : : : : : : : 56 終了 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 49 テキストの挿入 : : : : : : : : : : : : : : : : : : : : 52 テキストの入力 : : : : : : : : : : : : : : : : : : : : 47 ファイルの保存 : : : : : : : : : : : : : : : : : : : : 48 文字 (列) の変更 : : : : : : : : : : : : : : : : : : : : 50 文字の削除 : : : : : : : : : : : : : : : : : : : : : : : : : 53 文字の置換 : : : : : : : : : : : : : : : : : : : : : : : : : 50 FORTRAN 言語 : : : : : : : : : : : : : : : : : : 144,149 FreeBSD システム : : : : : : : : : : : : : : : : : : : : : : : 5 ページプ リンタ装置 : : : : : : : : : : : : : : : : : : : 127 別名機能 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 75 ホームデ ィレクトリ : : : : : : : : : : : : : : : : : : : : 24 は パスワード : : : : : : : : : : : : : : : : : : : : : : : 12,13,15 Windows2000 との同期 : : : : : : : : : : : : : 18 設定時の注意事項 : : : : : : : : : : : : : : : : : : 16 変更 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 17 変更願書 : : : : : : : : : : : : : : : : : : : : : : : : : : : 18 保護 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 15 良いパスワード : : : : : : : : : : : : : : : : : : : : 16 悪いパスワード : : : : : : : : : : : : : : : : : : : : 16 忘れ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 18 ファイルシステム : : : : : : : : : : : : : : : : : : : : : : 24 通常ファイル : : : : : : : : : : : : : : : : : : : : : : : 24 デ ィレクトリファイル : : : : : : : : : : : : : : 24 特殊ファイル : : : : : : : : : : : : : : : : : : : : : : : 24 ファイル操作 : : : : : : : : : : : : : : : : : : : : : : : : : : 27 ファイルの削除 : : : : : : : : : : : : : : : : : : : : 33 ファイルの内容を表示する : : : : : : : : : 30 ファイルの複写 : : : : : : : : : : : : : : : : : : : : 32 ファイルを作る : : : : : : : : : : : : : : : : : : : : 27 ファイル名の表示 : : : : : : : : : : : : : : : : : : 28 ファイル名の変更・移動 : : : : : : : : : : : : 31 ファイル : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31 移動 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31 削除 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 33 複写 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 32 変更 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31 ファイルの保護 : : : : : : : : : : : : : : : : : : : : : : : : 38 許可の対象者と種類 : : : : : : : : : : : : : : : : 38 許可モード の効果 : : : : : : : : : : : : : : : : : : 40 許可モード の表示 : : : : : : : : : : : : : : : : : : 39 8 進表示モード : : : : : : : : : : : : : : : : : : : 42 シンボリックモード : : : : : : : : : : : : : : 41 許可モード の変更 : : : : : : : : : : : : : : : : : : 41 8 進表示モード : : : : : : : : : : : : : : : : : : : 42 シンボリックモード : : : : : : : : : : : : : : 41 パーミッション : : : : : : : : : : : : : : : : : : : : 38 やってはいけない操作 : : : : : : : : : : : : : : 44 vi : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 45,46,158 カーソルの移動 : : : : : : : : : : : : : : : : : : : : 48 や やさしいコマンド : : : : : : : : : : : : : : : : : : : : : : 21 ユーティリティ : : : : : : : : : : : : : : : : : : : : : : : : : 2 UNIX の特徴 : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 UNIX の歴史 : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 ら ライン (行) エデ ィタ : : : : : : : : : : : : : : : : : : : 45 履歴機能 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 72 以前のコマンド 入力の再実行 : : : : : : : 74 コマンド の置き換え : : : : : : : : : : : : : : : : 74 コマンド の繰り返し入力 : : : : : : : : : : : : 73 コマンド 番号の表示 : : : : : : : : : : : : : : : : 73 設定 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 72 リスト : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 73 ログアウト : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 18 ppp 経由 : : : : : : : : : : : : : : : : : : : : : : : : : : : 20 Windows2000 パソコン : : : : : : : : : : : : : 19 ワークステーション : : : : : : : : : : : : : : : : 20 ログ イン : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 ログ イン名 : : : : : : : : : : : : : : : : : : : : : : : : : : 12,13 わ 172 WIDE Project : : : : : : : : : : : : : : : : : : : : : : 8,134 ワイルド カード : : : : : : : : : : : : : : : : : : : : : : : : 76 ワーキングデ ィレクトリ : : : : : : : : : : : : : : : 25 記号 ! (ftp) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 !! (履歴機能) : : : : : : : : : : : : : : : : : : : : : : : : : : : 73 !$ (履歴機能) : : : : : : : : : : : : : : : : : : : : : : : : : : : 73 * (ワイルド カード ) : : : : : : : : : : : : : : : : : : : : : 76 . (ド ット ) : : : : : : : : : : : : : : : : : : : : : : : : : : : 26,35 .. (ド ットド ット ) : : : : : : : : : : : : : : : : : : : : 26,35 .Z (拡張子) : : : : : : : : : : : : : : : : : : : : : : : : : : : 101 .Z : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 102 .c (拡張子) : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147 .cshrc : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 87,91 .f (拡張子) : : : : : : : : : : : : : : : : : : : : : : : : : : : : 149 .gz (拡張子) : : : : : : : : : : : : : : : : : : : : : : : : : : : 101 .gz : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 102 .login : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 87,88 .logout : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 87,88 .o (拡張子) : : : : : : : : : : : : : : : : : : : : : : : : : : : : 147 :e : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 78 :h : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 78 :r : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 78 :t : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 78 ? (ワイルド カード ) : : : : : : : : : : : : : : : : : : : : 76 ? (ftp) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 139 @ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 159,164 $ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 78 $# : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 78 & : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 81 ^ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 74,79 173 さあ はじめよう UNIX 2001 年 10 月 第 5.1 版 発行 01-10-600 編集・発行 上智大学電子計算機センター 住所 〒 102-8554 東京都千代田区紀尾井町 7-1 (電話) 03-3238-3101 印刷 (株 ) 六 甲 出 版