...

オープンシステムサービス ユーザーズガイド

by user

on
Category: Documents
225

views

Report

Comments

Transcript

オープンシステムサービス ユーザーズガイド
オープンシステムサービス ユーザーズガ
イド
HP 部品番号: 522700-002J
2008 年 5 月
第1版
© Copyright 2008 Hewlett-Packard Development Company, L.P.
Legal Notice
Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial
Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under
vendor’s standard commercial license.
The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in the express
warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. HP
shall not be liable for technical or editorial errors or omissions contained herein.
Export of the information contained in this publication may require authorization from the U.S. Department of Commerce.
Microsoft, Windows, and Windows NT are U.S. registered trademarks of Microsoft Corporation.
Intel, Pentium, and Celeron are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other
countries.
Java is a U.S. trademark of Sun Microsystems, Inc.
Motif, OSF/1, UNIX, X/Open, and the "X" device are registered trademarks, and IT DialTone and The Open Group are trademarks of The Open
Group in the U.S. and other countries.
Open Software Foundation, OSF, the OSF logo, OSF/1, OSF/Motif, and Motif are trademarks of the Open Software Foundation, Inc. OSF MAKES
NO WARRANTY OF ANY KIND WITH REGARD TO THE OSF MATERIAL PROVIDED HEREIN, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. OSF shall not be liable for errors contained
herein or for incidental consequential damages in connection with the furnishing, performance, or use of this material.
© 1990, 1991, 1992, 1993 Open Software Foundation, Inc. The OSF documentation and the OSF software to which it relates are derived in part
from materials supplied by the following:© 1987, 1988, 1989 Carnegie-Mellon University. © 1989, 1990, 1991 Digital Equipment Corporation. ©
1985, 1988, 1989, 1990 Encore Computer Corporation. © 1988 Free Software Foundation, Inc. © 1987, 1988, 1989, 1990, 1991 Hewlett-Packard
Company. © 1985, 1987, 1988, 1989, 1990, 1991, 1992 International Business Machines Corporation. © 1988, 1989 Massachusetts Institute of
Technology. © 1988, 1989, 1990 Mentat Inc. © 1988 Microsoft Corporation. © 1987, 1988, 1989, 1990, 1991, 1992 SecureWare, Inc. © 1990, 1991
Siemens Nixdorf Informationssysteme AG. © 1986, 1989, 1996, 1997 Sun Microsystems, Inc. © 1989, 1990, 1991 Transarc Corporation.OSF software
and documentation are based in part on the Fourth Berkeley Software Distribution under license from The Regents of the University of California.
OSF acknowledges the following individuals and institutions for their role in its development: Kenneth C.R.C. Arnold, Gregory S. Couch, Conrad
C. Huang, Ed James, Symmetric Computer Systems, Robert Elz. © 1980, 1981, 1982, 1983, 1985, 1986, 1987, 1988, 1989 Regents of the University
of California.
目次
本書について...................................................................................................................15
対象となるリリースバージョンアップデート (RVU)..........................................................................15
対象読者................................................................................................................................................15
この版での新規情報と更新内容...........................................................................................................15
マニュアルの構成.................................................................................................................................16
表記規則................................................................................................................................................17
一般的な構文表記............................................................................................................................17
メッセージの表記............................................................................................................................19
関連情報................................................................................................................................................20
サポート対象外のユーティリティ........................................................................................................21
発行履歴................................................................................................................................................21
HP へのご意見......................................................................................................................................22
1 オープンシステムサービスについて.......................................................................23
OSS コンポーネント.............................................................................................................................23
OSS ファイルシステム....................................................................................................................23
OSS コマンドインタープリター (Korn シェル)..............................................................................23
ユーザーコマンドとユーティリティ...............................................................................................23
HP ソフトウェアへのアクセス ......................................................................................................24
OSS リファレンスページ.................................................................................................................24
OSS と UNIX.........................................................................................................................................24
OSS と NonStop オペレーティングシステム.......................................................................................24
Guardian インターフェイスの代替インターフェイス...................................................................25
相互運用性.......................................................................................................................................25
アプリケーション開発.....................................................................................................................25
OSS 環境................................................................................................................................................26
OSS のデバイスサポート......................................................................................................................26
プリンター.......................................................................................................................................26
テープドライブ................................................................................................................................26
OSS プロセス ........................................................................................................................................26
OSS とオープンコンピューティング標準............................................................................................26
XPG4 ...............................................................................................................................................27
POSIX.1............................................................................................................................................27
FIPS..................................................................................................................................................27
POSIX.2............................................................................................................................................27
2 OSS ファイルシステム..............................................................................................29
OSS ファイルとファイル名..................................................................................................................29
OSS ファイル名の長さ....................................................................................................................29
OSS ファイルタイプ........................................................................................................................29
OSS のディレクトリとサブディレクトリ............................................................................................30
OSS ファイルシステム構造.............................................................................................................30
/G ディレクトリ...............................................................................................................................31
/E ディレクトリ...............................................................................................................................31
OSS パス名............................................................................................................................................31
絶対パス名.......................................................................................................................................31
相対パス名.......................................................................................................................................32
パス名の長さ...................................................................................................................................33
OSS ファイルセット.............................................................................................................................33
目次
3
パターンマッチング文字を含む名前の指定 ........................................................................................33
3 OSS シェル..................................................................................................................35
OSS シェルの機能.................................................................................................................................35
メタキャラクター ................................................................................................................................36
シェル組み込みコマンド......................................................................................................................37
コマンド入力支援.................................................................................................................................38
複数のコマンドおよびコマンドリストの使用 ...............................................................................38
セミコロン (;) によるコマンドの順次実行 ................................................................................39
|| および && 演算子による条件付きコマンド実行 .................................................................39
パイプとフィルターの使用 ............................................................................................................40
コマンドのグループ化.....................................................................................................................41
カッコ ( ) の使用方法 .................................................................................................................41
中カッコ { } の使用方法 .............................................................................................................41
引用符..............................................................................................................................................41
バックスラッシュ ( \ ) の使用方法............................................................................................42
一重引用符 (' ') の使用方法 ........................................................................................................42
二重引用符 ( " " ) の使用方法...................................................................................................42
ファイル名の自動補完入力...................................................................................................................42
エイリアス............................................................................................................................................43
エイリアスのエクスポート.............................................................................................................43
エイリアスと .profile ファイル.......................................................................................................44
.profile ファイルの再実行...............................................................................................................44
エイリアスの表示............................................................................................................................44
コマンド履歴.........................................................................................................................................44
コマンドラインの編集..........................................................................................................................45
コマンド履歴バッファー内のコマンドラインの表示.....................................................................46
コマンドラインの編集と実行 .........................................................................................................47
コマンドラインの置換と再実行 .....................................................................................................47
シェル環境............................................................................................................................................47
環境変数................................................................................................................................................49
環境変数の設定................................................................................................................................50
コマンドラインでの変数の設定.................................................................................................51
.profile ファイルでの変数の設定...............................................................................................51
変数の値の表示................................................................................................................................52
変数の値のクリア............................................................................................................................52
.profile ファイルの例............................................................................................................................53
シェルがコマンドを検索する方法........................................................................................................55
シェルプロシージャー..........................................................................................................................55
シェルプロシージャーの記述と実行...............................................................................................56
4 OSS のコマンドとユーティリティ..........................................................................57
コマンドの使用法 ................................................................................................................................57
オンラインリファレンスページ...........................................................................................................57
man コマンド...................................................................................................................................58
whatis コマンド...............................................................................................................................58
apropos コマンド.............................................................................................................................58
コマンドの構文.....................................................................................................................................59
OSS のユーザーコマンドとユーティリティ.........................................................................................59
コマンドとユーティリティ (ユーザー機能別)......................................................................................64
アプリケーション開発 ....................................................................................................................64
アーカイブ.......................................................................................................................................64
ファイルの表示 ...............................................................................................................................65
4
目次
ファイルとディレクトリ ................................................................................................................65
相互運用性のためのコマンド..........................................................................................................66
プリントとフォーマット ................................................................................................................66
プロセス管理...................................................................................................................................67
リモートアクセス............................................................................................................................67
検索、ソート、比較、リスト..........................................................................................................67
セキュリティとパーミッション .....................................................................................................68
システム管理および構成情報 .........................................................................................................68
テキストエディター .......................................................................................................................69
ユーザー情報...................................................................................................................................69
シェル組み込みコマンド......................................................................................................................69
ファイルフォーマットコマンド...........................................................................................................71
5 OSS 環境と Guardian 環境の相互運用性...............................................................73
2 つの異なるファイルシステム............................................................................................................73
OSS ファイルシステム....................................................................................................................73
Guardian ファイルシステム............................................................................................................73
OSS 環境から Guardian ファイルへのアクセス..................................................................................74
/G ディレクトリ...............................................................................................................................74
/E ディレクトリ...............................................................................................................................74
/G ディレクトリと /E ディレクトリ内のオブジェクトの指定.......................................................74
/G ディレクトリと /E ディレクトリの可視性.................................................................................74
Guardian ファイルタイプ...............................................................................................................75
OSS パス名から Guardian ファイル名への変換..................................................................................75
Guardian ファイル名から OSS パス名への変換..................................................................................77
パス名のマッピング..............................................................................................................................77
pname コマンド...............................................................................................................................77
gname コマンド...............................................................................................................................77
OSS 環境からの Guardian プロセスの実行..........................................................................................78
Guardian 環境からの OSS プロセスの実行..........................................................................................78
Guardian 属性による OSS プロセスの実行..........................................................................................78
ファイルの編集.....................................................................................................................................79
vi を使用した Guardian ファイルの編集........................................................................................79
TEDIT を使用した OSS ファイルの編集.........................................................................................79
Guardian 環境と相互運用可能な OSS コマンド..................................................................................80
プリントコマンドとスプーラーコマンド.......................................................................................80
cancel コマンド................................................................................................................................80
cp コマンド......................................................................................................................................80
file コマンド.....................................................................................................................................81
gtacl コマンド..................................................................................................................................81
kill コマンド.....................................................................................................................................81
ls コマンド.......................................................................................................................................81
osh コマンド....................................................................................................................................81
pax コマンド....................................................................................................................................82
pinstall コマンド..............................................................................................................................82
ps コマンド......................................................................................................................................82
run コマンド....................................................................................................................................82
who コマンド...................................................................................................................................83
Guardian DEFINE.................................................................................................................................83
Guardian コマンドとそれに対応する OSS コマンド...........................................................................83
OSS コマンドとそれに対応する Guardian コマンド ..........................................................................86
目次
5
6 OSS シェルの実行......................................................................................................91
エミュレーションソフトウェア...........................................................................................................91
TACL へのログオン..............................................................................................................................91
osh コマンド.........................................................................................................................................92
osh フラグ........................................................................................................................................92
OSS の終了............................................................................................................................................93
stty コマンドによる端末文字の指定.....................................................................................................94
シェル環境の変更.................................................................................................................................94
OSS 環境の管理 ....................................................................................................................................94
バックアップ...................................................................................................................................95
ファイルセットのマウントとマウント解除....................................................................................95
ディスクボリュームの管理.............................................................................................................95
セキュリティ...................................................................................................................................95
7 ファイルの作成...........................................................................................................97
チュートリアルと例について...............................................................................................................97
例と形式...........................................................................................................................................97
シェルプロンプト............................................................................................................................97
リファレンスページへのアクセス........................................................................................................97
プロセスのエスケープ (Ctrl-c)..............................................................................................................97
ファイルの操作.....................................................................................................................................97
テキストエディターとは.................................................................................................................97
vi エディターによるサンプルファイルの作成................................................................................98
8 ファイルの管理.........................................................................................................101
ファイルのリスト (ls)..........................................................................................................................101
カレントディレクトリの内容のリスト.........................................................................................101
他のディレクトリの内容のリスト.................................................................................................102
ls コマンドで使用するフラグ........................................................................................................102
ファイルの表示...................................................................................................................................103
フォーマットなしのファイル表示 (more と cat)...........................................................................103
more コマンド..........................................................................................................................104
cat コマンド..............................................................................................................................104
ファイルのフォーマット付きの表示 (pr)......................................................................................104
ファイルのプリント ...........................................................................................................................106
プリンターへのファイル送信 (lp).................................................................................................107
プリントステータスの表示 (lpstat)...............................................................................................108
プリントジョブのキャンセル (cancel)...........................................................................................108
ファイルのコピー (cp)........................................................................................................................109
カレントディレクトリ内でのファイルのコピー...........................................................................109
ディレクトリ間でのファイルのコピー.........................................................................................109
ディレクトリ全体のコピー............................................................................................................110
ファイルの名前変更と移動 (mv)........................................................................................................111
ファイル名の変更..........................................................................................................................111
ディレクトリ間のファイルの移動.................................................................................................112
ファイルの比較 (diff)..........................................................................................................................113
ファイルのソート (sort)......................................................................................................................114
ファイルの削除 (rm)...........................................................................................................................115
1 つのファイルの削除....................................................................................................................115
複数のファイルの削除...................................................................................................................115
ファイルのリンク (ln).........................................................................................................................116
ハードリンク..................................................................................................................................116
シンボリックリンク.......................................................................................................................117
6
目次
リンクとファイルシステム............................................................................................................117
リンクの使用..................................................................................................................................117
リンクの仕組み - ファイル名と i ノード番号について.................................................................118
リンクの削除..................................................................................................................................118
ファイルタイプの特定 (file)................................................................................................................119
9 ディレクトリの管理.................................................................................................121
ディレクトリの作成 (mkdir)...............................................................................................................121
ディレクトリの変更 (cd).....................................................................................................................122
カレントディレクトリの変更........................................................................................................122
相対パス名表記の使用...................................................................................................................123
ディレクトリの表示 (ls -F)..................................................................................................................124
ディレクトリのコピー (cp).................................................................................................................125
ディレクトリ名の変更 (mv)................................................................................................................125
ディレクトリの削除 (rmdir)...............................................................................................................126
空のディレクトリの削除...............................................................................................................127
複数のディレクトリの削除............................................................................................................127
カレントディレクトリの削除 .......................................................................................................127
ファイルとディレクトリを同時に削除 (rm -r) .........................................................................128
10 ファイルおよびディレクトリへのアクセスの管理...........................................129
ファイルとディレクトリの保護..........................................................................................................129
パーミッションとは............................................................................................................................129
デフォルトのパーミッション........................................................................................................131
ファイルとディレクトリのパーミッションの表示 (ls).....................................................................132
ファイルとディレクトリのパーミッションの設定 (chmod).............................................................133
文字と操作記号を使用したパーミッションの指定.......................................................................133
ファイルのパーミッションの変更 ..........................................................................................134
ディレクトリのパーミッションの変更 ...................................................................................134
パターンマッチング文字の使用 ..............................................................................................134
絶対パーミッションの設定 .....................................................................................................135
8 進数でのパーミッションの指定.................................................................................................135
ユーザーマスクの設定........................................................................................................................137
オーナーとグループの変更.................................................................................................................139
OSS ファイルのセキュリティオーディット.......................................................................................140
オーディットレコード内のオーディット対象ファイルを識別する方法......................................140
オーディット対象の操作およびオブジェクト..............................................................................141
ファイルオーディットに関する留意事項......................................................................................142
再帰的動作と /G ディレクトリおよび /E ディレクトリ.....................................................................142
セキュリティ上の追加考慮事項..........................................................................................................143
11 プロセスの管理.......................................................................................................145
プログラムとプロセスとは.................................................................................................................145
標準入力ファイル、出力ファイル、およびエラーメッセージとは...................................................145
入力と出力のリダイレクト............................................................................................................145
ファイルからの入力の読み取り —< 記号 ...............................................................................146
ファイルへの出力の書き込み — > 記号と >> 記号 ................................................................146
標準エラーメッセージのファイルへのリダイレクション............................................................147
標準エラーメッセージと標準出力の両方のリダイレクト............................................................147
複数のプロセスを同時に実行.............................................................................................................148
フォアグラウンドプロセスの実行 ................................................................................................148
バックグラウンドプロセスの実行.................................................................................................148
目次
7
プロセスの監視とキャンセル.............................................................................................................149
プロセスステータスの確認............................................................................................................149
ps コマンド...............................................................................................................................149
jobs コマンド ...........................................................................................................................151
フォアグラウンドプロセスのキャンセル (Ctrl-c).........................................................................151
バックグラウンドプロセスのキャンセル (kill).............................................................................152
ユーザーとそのプロセスに関する情報の表示....................................................................................153
ジョブのスケジューリング.................................................................................................................153
at コマンドを使用したジョブのスケジューリング.......................................................................154
スケジュールされたジョブの表示 (at -l).......................................................................................155
スケジュールされたジョブのキャンセル (at -r)............................................................................155
batch コマンドを使用したジョブのスケジューリング.................................................................155
crontab コマンドを使用したジョブのスケジューリング.............................................................156
12 生産性向上ツール: grep と find...........................................................................159
ファイルでテキストパターンを検索 (grep).......................................................................................159
-i フラグの使用 .............................................................................................................................160
行の抽出と他のファイルへの保存 ................................................................................................160
行の削除と他のファイルへの出力の保存 .....................................................................................160
検索とソート .................................................................................................................................161
ファイルの検索 (find).........................................................................................................................161
13 ファイルの転送とアーカイブ...............................................................................163
ファイル名とディレクトリ名の変換..................................................................................................163
pax ユーティリティ............................................................................................................................163
別のディレクトリへのディレクトリ階層のコピー.......................................................................164
テープへのファイル階層のコピー.................................................................................................164
テープから Guardian 環境へのファイルのリストア...................................................................165
ftp ユーティリティ..............................................................................................................................165
A vi エディター............................................................................................................169
はじめに..............................................................................................................................................169
OSS 環境で vi を使用する準備......................................................................................................169
端末エミュレーションモードの設定........................................................................................170
.exrc ファイルを使用してコマンドキーをカスタマイズ.........................................................170
編集ファイル例の作成...................................................................................................................171
ファイルのオープン.......................................................................................................................171
ファイル内での移動.......................................................................................................................172
新しテキストの入力 ......................................................................................................................173
テキストの編集..............................................................................................................................173
複数ワードの削除.....................................................................................................................174
テキストの変更.........................................................................................................................174
コマンドの取り消し.................................................................................................................174
編集セッションの終了...................................................................................................................174
高度な技法の使用法............................................................................................................................175
文字列の検索..................................................................................................................................175
テキストの移動..............................................................................................................................175
テキストのコピー..........................................................................................................................176
その他の vi の機能.........................................................................................................................176
基盤となる ex コマンドの使用法........................................................................................................176
置換の実行.....................................................................................................................................177
ファイル全体または一部の書き込み.............................................................................................178
テキストのブロックの削除............................................................................................................178
8
目次
テキストのブロックの移動とコピー ............................................................................................178
ユーザー環境のカスタマイズ........................................................................................................178
ユーザーカスタマイズの保存........................................................................................................179
B ed エディター...........................................................................................................181
テキストファイルの作成と保存..........................................................................................................181
ed プログラムの起動.....................................................................................................................181
テキストの入力 — a (付加) サブコマンド.....................................................................................181
テキストの表示 — p (プリント) サブコマンド.............................................................................182
テキストの保存 —w (書き込み) サブコマンド.............................................................................182
同じファイル名でのテキストの保存........................................................................................182
別のファイル名でのテキストの保存........................................................................................183
ファイルの一部の保存..............................................................................................................183
ed プログラムの終了 — q (終了) サブコマンド............................................................................183
編集バッファーへのファイルのロード...............................................................................................184
ed (編集) コマンドの使用..............................................................................................................184
e (編集) サブコマンドの使用.........................................................................................................184
r (読み込み) サブコマンドの使用..................................................................................................185
現在行の表示と変更............................................................................................................................185
バッファー内での位置の検索........................................................................................................186
バッファー内での位置の変更........................................................................................................186
テキストの検索...................................................................................................................................187
バッファー内を前方に検索............................................................................................................187
バッファー内を後方に検索............................................................................................................188
検索方向の変更..............................................................................................................................188
置換の実行 — s (置換) サブコマンド..................................................................................................188
現在行での置換..............................................................................................................................188
特定の行での置換..........................................................................................................................189
複数行での置換..............................................................................................................................189
文字列の出現箇所をすべて置換....................................................................................................189
文字の削除.....................................................................................................................................190
行の先頭または終端での置換........................................................................................................190
コンテキスト検索の使用...............................................................................................................190
行の削除 — d (削除) サブコマンド.....................................................................................................190
現在行の削除..................................................................................................................................191
特定の行の削除..............................................................................................................................191
複数行の削除..................................................................................................................................191
テキストの移動 — m (移動) サブコマンド.........................................................................................191
テキストの行の変更 — c (変更) サブコマンド...................................................................................192
単一行の変更..................................................................................................................................193
複数行の変更..................................................................................................................................193
テキストの挿入 — i (挿入) サブコマンド...........................................................................................193
行番号の使用..................................................................................................................................193
コンテキスト検索の使用...............................................................................................................194
行のコピー — t (転送) サブコマンド..................................................................................................194
ed からのシステムコマンドの使用.....................................................................................................195
ed プログラムの終了...........................................................................................................................195
C vproc でのバージョン情報の表示.........................................................................197
製品ファイルの検索 ...........................................................................................................................197
vproc の実行........................................................................................................................................197
vproc を完全なコマンドとして実行..............................................................................................197
vproc の対話型での実行 ...............................................................................................................198
目次
9
vproc の出力の解釈.............................................................................................................................198
取得に成功.....................................................................................................................................198
部分的な取得または取得の失敗....................................................................................................199
用語集............................................................................................................................201
索引................................................................................................................................217
10
目次
図目次
1
1-1
2-1
2-2
8-1
9-1
9-2
10-1
『オープンシステムサービス ユーザーズガイド』に関連するマニュアル.................................20
OSS および Guardian アプリケーションとユーザーインターフェイス......................................25
一般的な OSS ファイルシステム...................................................................................................30
相対パス名とフルパス名...............................................................................................................32
ハードリンクの削除....................................................................................................................118
ファイル構造の例........................................................................................................................122
ディレクトリを別のディレクトリにコピー................................................................................125
ファイルとディレクトリのパーミッションフィールド.............................................................131
11
表目次
3-1
3-2
3-3
3-4
3-5
3-6
3-7
3-8
3-9
3-10
3-11
5-1
5-2
8-1
8-2
8-3
8-4
10-1
10-2
10-3
10-4
10-5
10-6
10-7
11-1
12-1
A-1
12
OSS シェルの機能 (一部)...............................................................................................................35
シェルのメタキャラクター...........................................................................................................36
シェル組み込みコマンド...............................................................................................................37
複数のコマンド演算子...................................................................................................................39
コマンドをグループ化する記号....................................................................................................41
シェルの引用規則..........................................................................................................................42
OSS シェル履歴バッファー内のコマンドの再実行......................................................................45
変数................................................................................................................................................48
デフォルトの環境変数...................................................................................................................50
.profile ファイルの例の説明..........................................................................................................53
シェルプロシージャーの例の説明................................................................................................56
Guardian コマンドに対応する OSS コマンド...............................................................................83
OSS コマンドに対応する Guardian コマンド...............................................................................86
ls コマンドのフラグ.....................................................................................................................102
ls -l で表示される内容の説明......................................................................................................103
pr コマンドのフラグ....................................................................................................................105
lp コマンドのフラグ....................................................................................................................108
ファイルとディレクトリのパーミッションの相違点.................................................................130
8 進数でのパーミッションの組み合わせ....................................................................................136
8 進数パーミッションコードとパーミッションフィールドの関係............................................136
umask パーミッションの組み合わせ..........................................................................................137
オーディット対象のファイルセットの使用時にオーディットされる OSS 関数........................141
オーディット対象のファイルセットとの使用時にオーディットされる Guardian プロシー
ジャー..........................................................................................................................................142
プロセス制御のための使用時にオーディットされる Guardian プロシージャー......................142
入力と出力をリダイレクトするためのシェル表記.....................................................................146
grep コマンドのフラグ................................................................................................................160
vi 環境変数の抜粋........................................................................................................................178
表目次
例目次
3-1
A-1
.profile File.....................................................................................................................................53
Sample .exrc File..........................................................................................................................171
13
14
本書について
このガイドでは、HP NonStop™ オープンシステムサービス (OSS) ユーザー環境について説明
します。
具体的には、次の項目を説明します。
•
•
•
•
•
•
•
OSS 環境、および OSS 環境と Guardian 環境および HP NonStop オペレーティングシステ
ムの関係
OSS ファイルシステム、ファイル、ディレクトリ、パス名、および OSS と Guardian ファ
イルシステムの関係
OSS シェル (Korn シェル)。その機能と環境
OSS ユーザーコマンドとユーティリティ
OSS シェルの実行方法
OSS 環境と Guardian 環境の相互運用性
OSS コマンドとユーティリティを使用して OSS 環境内で基本的なユーザー作業を実行す
る方法、および以下の作業を実行するためのチュートリアル
— vi エディターと ed エディターを使用したファイルの作成
— ファイルとディレクトリの表示、リスト、コピー、移動、リンク、プリント、削除、
名前変更、および管理
— ファイルパーミッションを設定および変更してアクセスを制御
— ユーザープロセスの実行、プロセスの監視とキャンセル、プロセス情報の表示、プロ
セスの入力と出力の管理
— ファイルシステム内でのファイルの検索、ファイル内のテキストパターンの検索、
ファイルの内容の比較とソート
— vi テキストエディターと ed テキストエディターの使用方法
対象となるリリースバージョンアップデート (RVU)
本書は、本書に代わる出版物に別途記載されるまで、J06.03 以降の J シリーズ RVU、H06.03
以降の H シリーズ RVU、および G06.15 以降の G シリーズ RVU を対象とします。
対象読者
本書の対象読者は、プログラマ、システム管理者、オペレーター、開発者など、OSS 環境で作
業するすべての担当者です。 これらの対象読者は、UNIX および Guardian 環境と C 原語に関
して多彩な知識を持っています。
この版での新規情報と更新内容
•
•
•
•
•
「/G ディレクトリと /E ディレクトリの可視性」 (74 ページ) の export コマンドの例で、
UTILSGE 環境変数に 指定した値は正しくありません。NOE:NOG は有効ではなく、無視さ
れます。 この版には、正しい値 NOG:NOE が記載されています。
「osh フラグ」 (92 ページ) にリストされた osh コマンドの -pri フラグは正しくありま
せん。 この版には、正しい値 -gpri が記載されています。
J06.03 以降の J シリーズ RVU、H06.11 以降の H シリーズ RVU、および G06.31 以降の G
シリーズ RVU では、osh コマンドに -phd フラグが追加されています。
本書全体を通して、RVU を参照する箇所が更新されており、該当する場合には J シリーズ
RVU が包含されています。
「セキュリティとパーミッション 」 (68 ページ) のコマンドのリストに、getacl() コマ
ンドと setacl() コマンドが追加されています。 OSS ACL は、OSS ファイルセットの
Version 3 以降のバージョンでのみサポートされています。
対象となるリリースバージョンアップデート (RVU)
15
•
オーディット対象の OSS ファイルセットで使用される場合、オーディット対象のコマンド
リストに以下のコマンドが追加されています (表 10-5 (141 ページ) )。
acl()
fchown()
lchown()
fchmod()
lchmod()
setpgrp()
setregid()
setreuid()
マニュアルの構成
本書の構成は、次のとおりです。
第1章 オープンシステムサービスについて
本章では、OSS 環境の概要を説明します。
第2章 OSS ファイルシステム
本章では、OSS ファイル、ディレクトリ、サブディレクトリ、パス名について説明し、さ
らにそれらと Guardian ファイルシステムの関係について説明します。
第3章 OSS シェル
本章では、OSS シェルの機能と環境、およびその使用方法と変更方法について説明します。
第4章 OSS のコマンドとユーティリティ
本章では、ユーザーコマンドの一覧を示して説明します。
第5章 OSS 環境と Guardian 環境の相互運用性
本章では、OSS 環境内から Guardian ファイルシステムにアクセスする方法、および
Guardian 環境で OSS コマンドを使用する方法について説明します。
第6章 OSS シェルの実行
本章では、osh コマンドを使用して OSS シェルを実行する方法を説明します。
第7章 ファイルの作成
本章では、vi テキストエディターを使用して OSS 環境内で新しいファイルを作成する方
法を説明します。
第8章 ファイルの管理
本章では、OSS コマンドを使用して、ファイルをコピー、移動、プリント、削除、および
リンクする基本的な作業の実行方法を説明します。
第9章 ディレクトリの管理
本章では、OSS コマンドを使用してディレクトリを表示、コピー、名前変更、および削除
する基本的な作業の実行方法を説明します。
第10章 ファイルおよびディレクトリへのアクセスの管理
本章では、ファイルパーミッションについて説明し、さらにその表示、設定、変更方法を
説明します。 また、オーナーとグループの変更方法、およびファイルオーディットの概要
を説明します。
第11章 プロセスの管理
本章では、ユーザープロセスについて説明し、OSS 環境でユーザープロセスを管理する方
法を説明します。
第12章 生産性向上ツール: grep と find
本章では、OSS ユーティリティ grep と find の使用方法を説明します。
16
第13章 ファイルの転送とアーカイブ
本章では、pax ユーティリティと ftp ユーティリティを使用して、OSS ファイルをシステ
ム間で転送、およびテープデバイスに転送する方法を説明します。
付録 A vi エディター
この付録では、OSS テキストエディター vi について説明します。
付録 B ed エディター
この付録では、OSS ラインエディター ed について説明します。
付録 C vproc でのバージョン情報の表示
この付録では、オープンシステムサービスで vproc コマンドを使用する方法を説明しま
す。
表記規則
一般的な構文表記
次のリストは、本書の構文表記規則の概要です。
大文字
大文字はキーワードおよび予約語を表します。 この項目は、表記どおり正確に入力しま
す。 大カッコで囲まれていない項目は必須です。 たとえば、次に例を示します。
MAXATTACH
斜体
フォントに関係なく、斜体は、ユーザーが指定する変数項目を示します。 大カッコで囲ま
れていない項目は必須です。 たとえば、次に例を示します。
file-name
Computer Type
コンピュータータイプ文字は、次の各項目を示します。
• C 言語およびオープンシステムサービス (OSS) のキーワード、コマンド、および予約
語。 この項目は、表記どおり正確に入力します。 大カッコで囲まれていない項目は必
須です。 たとえば、次に例を示します。
ヘッダーファイル cextdecs.h を使用してください。
•
コンピューターに表示される文字列。 たとえば、次に例を示します。
Last Logon: 14 May 2006, 08:02:23
•
コンピューターコードの一覧。 たとえば、次に例を示します。
if (listen(sock, 1) < 0)
{
perror("Listen Error");
exit(-1);
}
太字
例で太字になっているテキストは、ユーザーが端末から入力したものであることを表しま
す。 たとえば、次に例を示します。
ENTER RUN CODE
?123
CODE RECEIVED:
123.00
ユーザーは、入力後に [Return] キーを押す必要があります。
[ ] 大カッコ
オプションの構文項目を囲みます。 たとえば、次に例を示します。
表記規則
17
TERM [\system-name.]$terminal-name
INT[ERRUPTS]
大カッコで囲んだ項目のリストは、そのリストから 1 つの項目を選択するか、何も選択し
なくてもよいことを意味します。 リスト内の項目については、それぞれの項目を大カッコ
で囲んで垂直に並べるか、リストを大カッコで囲んでそれぞれの項目を縦棒で区切って水
平に並べます。 たとえば、次に例を示します。
FC [ num ]
[ -num ]
[ text ]
K [ X | D ] address
{ } 中カッコ
中カッコで囲まれた項目のグループは、リストからいずれかの項目を選択する必要がある
ことを意味します。 リスト内の項目については、それぞれの項目を中カッコで囲んで垂直
に並べるか、リストを中カッコで囲んでそれぞれの項目を縦棒で区切って水平に並べます。
たとえば、次に例を示します。
LISTOPENS PROCESS { $appl-mgr-name }
{ $process-name }
ALLOWSU { ON | OFF }
| 縦棒
縦棒は、大カッコまたは中カッコで囲まれた水平の選択リストの項目を区切ります。 たと
えば、次に例を示します。
INSPECT { OFF | ON | SAVEABEND }
… 省略記号
大カッコまたは中カッコの直後の省略記号は、カッコ内の構文項目の並びを、任意の回数
繰り返せることを示します。 たとえば、次に例を示します。
M address [ , new-value ]…
- ] {0|1|2|3|4|5|6|7|8|9}…
1 つの構文項目の直後の省略記号は、その構文項目を、任意の回数繰り返せることを示し
ます。 たとえば、次に例を示します。
"s-char…"
区切り記号
カッコ、カンマ、セミコロン、および上記以外の記号は、表記どおり入力する必要があり
ます。 たとえば、次に例を示します。
error := NEXTFILENAME ( file-name ) ;
LISTOPENS SU $process-name.#su-name
大カッコ、中カッコなどの記号を囲む引用符は、記号を表記どおり入力する必要があるこ
とを表します。 たとえば、次に例を示します。
"[" repetition-constant-list "]"
項目間のスペース
項目のいずれかがカッコ、カンマなどの句読記号でない限り、項目間のスペースは必須で
す。 たとえば、次に例を示します。
CALL STEPMOM ( process-id ) ;
2 つの項目間にスペースがない場合は、スペースを入れることはできません。 次の例では、
ピリオドと他の項目の間にスペースを入力できません。
$process-name.#su-name
18
複数行にまたがる場合
コマンドの構文が長すぎて 1 行に入らない場合は、後続のそれぞれの行をスペース 3 つ分
インデントし、空白行で区切ります。 このスペースで後続の行の項目を垂直の選択リスト
の項目と区別します。 たとえば、次に例を示します。
ALTER [ / OUT file-spec / ] LINE
[ , attribute-spec ]…
メッセージの表記
次の一覧は、このマニュアルの表示メッセージについて構文上の表記規則をまとめたもので
す。
太字
例で太字になっているテキストは、ユーザーが端末から入力したものであることを表しま
す。 たとえば、次に例を示します。
ENTER RUN CODE
?123
CODE RECEIVED:
123.00
ユーザーは、入力後に [Return] キーを押す必要があります。
非斜体文字列
斜体以外の文字、数字、および句読記号は、表記どおり正確に表示されるか、返されるテ
キストを表します。 たとえば、次に例を示します。
Backup Up.
斜体文字
斜体文字は、表示されるまたは返される変数項目を表します。 たとえば、次に例を示しま
す。
p-register
process-name
[ ] 大カッコ
大カッコで囲まれた項目は、常に表示されるとは限らない項目です。 たとえば、次に例を
示します。
Event number = number [ Subject = first-subject-value ]
大カッコで囲まれた項目のグループは、表示される可能性があるすべての項目のリストで
す。実際は、いずれかが表示される可能性もあれば、すべてが表示されない可能性もあり
ます。 リスト内の項目については、それぞれの項目を大カッコで囲んで垂直に並べるか、
リストを大カッコで囲んでそれぞれの項目を縦棒で区切って水平に並べます。 たとえば、
次に例を示します。
proc-name trapped [ in SQL | in SQL file system ]
{ } 中カッコ
中カッコで囲まれた項目のグループは、表示される可能性があるすべての項目のリストで
す。実際は、いずれかが表示されます。 リスト内の項目については、それぞれの項目を中
カッコで囲んで垂直に並べるか、リストを中カッコで囲んでそれぞれの項目を縦棒で区切っ
て水平に並べます。 たとえば、次に例を示します。
obj-type obj-name state changed to state, caused by
{ Object | Operator | Service }
process-name State changed from old-objstate to objstate
{ Operator Request. }
{ Unknown.
}
表記規則
19
| 縦棒
縦棒は、大カッコまたは中カッコで囲まれた水平の選択リストの項目を区切ります。 たと
えば、次に例を示します。
Transfer status: { OK | Failed }
パーセント記号 %
パーセント記号は、10 進表記以外の数字の前に追加されます。 % 表記は 8 進数の前に付
加されます。 %B 表記は 2 進数の前に付加されます。 %H 表記は 16 進数の前に付加され
ます。 たとえば、次に例を示します。
%005400
%B101111
%H2F
P=%p-register E=%e-register
関連情報
図 1 に、『オープンシステムサービス ユーザーズガイド』に関連する情報を記載するプログラ
ミングガイド、リファレンスマニュアル、およびリファレンスページを示します。
図 1 『オープンシステムサービス ユーザーズガイド』に関連するマニュアル
以下に、関連するマニュアルについて説明します。
•
•
•
•
20
『C/C++ プログラマーズガイド』。 このガイドには、C と C++ プログラミング言語の実
装が説明されています。 また、C/C++ 言語の構文、コンパイラ、およびプログラム実行環
境について説明しています。 このガイドは、Guardian 環境および OSS 環境向けのプログ
ラムを作成するシステムプログラマとアプリケーションプログラマを対象としています。
『Guardian プロシージャ・コール・リファレンス・マニュアル』。 このマニュアルは、
ほとんどの Guardian プロシージャーコールの構文について説明しています。 また、シス
テムプログラマおよびアプリケーションプログラマを対象としています。
『Guardian Programmer’s Guide』。 このガイドでは、Guardian プロシージャーコール
を使用して、Guardian アプリケーションプログラムインターフェイス (API) にアクセスす
る方法が説明されています。 また、アプリケーションプログラマおよびシステムプログラ
マを対象としています。
『Guardian TNS/R Native C Library Calls Reference Manual』。 このマニュアルは、
Guardian 環境に対する C ランタイムライブラリ呼び出し、およびヘッダーファイルの構
•
•
•
•
•
•
•
•
•
文規則とセマンティクスについて説明しています。 また、システムプログラマおよびアプ
リケーションプログラマを対象としています。
『Open System Services Library Calls Reference Manual』。 このマニュアルは、OSS 環境
に対する C ランタイムライブラリ呼び出し、およびヘッダーファイルの構文規則とセマン
ティクスについて説明しています。 また、システムプログラマおよびアプリケーションプ
ログラマを対象としています。
『Open System Services Management and Operations Guide』。 このガイドは、オープン
システムサービス (OSS) 環境を管理および運用する方法を説明しています。
『オープンシステムサービス移植ガイド』。 このガイドは、アプリケーションを OSS 環
境に移植する方法を説明しています。
『オープンシステムサービスプログラマーズガイド』。 このガイドは、既存の C 言語ア
プリケーションを OSS 環境に移行する変換方法について説明しています。 また、C 言語
およびオペレーティングシステムに関する留意事項について説明しています。 このガイド
は、アプリケーションプログラマを対象としており、その一部の情報は、特定のオペレー
ティングシステムユーザー向けです。
『Open System Services Shell and Utilities Reference Manual』。 このマニュアルは、ユー
ザーが OSS コマンドインタープリター (「シェル」) にアクセスするために対話型で入力
するそれぞれのコマンドのルールと構文、および汎用とプログラム開発用のユーティリ
ティなどの機能について説明しています。 このガイドは、システム管理者、マネージャー、
オペレーター、エンドユーザー、およびアプリケーションプログラマとシステムプログラ
マなど、すべての読者を対象に記述されています。
『Open System Services System Calls Reference Manual』。 このマニュアルは、すべての
OSS システムコール (ファイルシステム関数およびカーネル関数)、構文、必要な外部デー
タ構造、実行される処理、およびすべてのリテラルとシンボリック定義のソースファイル
(ヘッダー) の場所について説明しています。 また、アプリケーションプログラマおよびシ
ステムプログラマを対象としています。
『Safeguard ユーザーズガイド』。 このガイドでは、Safeguard 分散型セキュリティ管理
ファシリティ、コマンドインタープリター SAFECOM、およびすべてのユーザーが実行す
るセキュリティタスクについて説明します。 セキュリティ管理者、システム管理者、およ
び HP NonStop 系サーバーの一般ユーザーを対象に記述されています。
『Security Management Guide』。 このガイドは、Guardian および Safeguard セキュリ
ティ機能を使用して NonStop システムへのアクセスを制御する方法を説明しています。
『ソフトウェア国際化ガイド』。 このガイドは、OSS 国際化機能の使用方法について説明
しています。 また、アプリケーションプログラマおよびシステムプログラマを対象として
います。
サポート対象外のユーティリティ
HP は、サポート対象外のユーティリティまたは機能の正常な動作を保証する責任を負わず、
その障害レポートにも対応しません。 このようなユーティリティおよび機能は、OSS の
/bin/unsupported ディレクトリなどに存在します。 このようなユーティリティおよび機能
は、使用者側の責任において使用してください。
発行履歴
マニュアル番号
マニュアルバージョン
発行日
128187
該当なし
1996 年 8 月
138150
該当なし
1998 年 2 月
420292-001
該当なし
1998 年 12 月
522700-001
該当なし
2002 年 2 月
522700-002
該当なし
2008 年 5 月
サポート対象外のユーティリティ
21
HP へのご意見
HP では、本書に関するご意見をお待ちしています。 読者のニーズに合ったマニュアルにする
ために、 誤り、改善のためのご意見、良いと思われる点などをお寄せください。
[email protected]
本書に関する誤りや改善すべき点などをお寄せいただく場合は、マニュアルの名前、部品番
号、およびご意見を明記してください。
22
第1章 オープンシステムサービスについて
オープンシステムサービス (OSS) は、NonStop に対する HP のオープンコンピューティングイ
ンターフェイスです。 OSS 環境は Guardian 環境と共存し、Guardian 環境に対する完全に独
立した代替機能として動作します。 オープンシステムサービスは NonStop オペレーティング
システムと相互運用され、フォールトトレランスや並列処理など、その独自の機能が多数使用
されます。 ただし、オープンシステムサービスはオペレーティングシステムではなく、また
NonStop オペレーティングシステムの一部を置き換えるものではありません。
オープンシステムサービスは、オープンコンピューティングシステムと移植性が高いアプリ
ケーションの要件を定義する業界標準に準拠しています。 これらの標準には、アプリケーショ
ンプログラムインターフェイス (API)、ランタイムライブラリ、コマンドインタープリター、
およびユーザーコマンドとユーティリティなどの機能の仕様が含まれます。
オープンシステムサービスが基づく標準は UNIX 標準に由来するものであり、その機能は、
UNIX システムに類似する構造と使用感を持っています。
OSS コンポーネント
オープンシステムサービスには、以下の主要なコンポーネントが含まれています。
•
•
•
•
•
「OSS ファイルシステム」
「OSS コマンドインタープリター (Korn シェル)」
「ユーザーコマンドとユーティリティ」
「HP ソフトウェアへのアクセス 」
「OSS リファレンスページ」
OSS ファイルシステム
OSS は、Guardian ファイルシステムから独立した、大きく異なる独自のファイルシステムを
持っています。 OSS ファイルシステムは階層型であり、ディレクトリ、サブディレクトリ、お
よびファイルで構成されています。 それとは対照的に、Guardian ファイルシステムはフラッ
トです。
OSS ファイルシステムの詳細については、第2章 (29 ページ) を参照してください。
OSS コマンドインタープリター (Korn シェル)
OSS シェルは、オープンシステムサービスのユーザーインターフェイス (コマンドインタープ
リター) です。 シェルのプロンプトでは、ユーザーコマンドの入力、ユーティリティの実行、
ファイルの作成と管理、プログラムの起動と終了、プロセスの制御、シェルスクリプトの記述
と実行、および特定の OSS システムの動作の制御を行うことができます。 オープンシステム
サービスは、UNIX Korn シェルを使用します。 UNIX システム上で Korn シェルを使用したこ
とがある場合には、すぐに OSS シェルを使用できるようになります。
OSS シェルは、Guardian 環境の HP Tandem Advanced Command Language (TACL) 機能と
同様な機能を提供しています。
OSS シェルの詳細については、第3章 (35 ページ) を参照してください。
ユーザーコマンドとユーティリティ
大部分の OSS ユーザーコマンドとユーティリティには、UNIX システムに直接対応する類似機
能が存在します。 いくつかの OSS コマンドは、OSS セットのユーザーコマンドに独自のもの
であり、Guardian 環境に関連する特殊な機能を提供します。 いくつかの OSS コマンドは通常
の UNIX の使用方法から拡張されており、NonStop オペレーティングシステムとの相互運用が
可能です。
OSS コンポーネント
23
OSS コマンドとユーティリティの詳細については、第4章 (57 ページ) 、『Open System Services
Shell and Utilities Reference Manual』、およびオンラインリファレンスページを参照してくだ
さい。
HP ソフトウェアへのアクセス
オープンシステムサービスを使用すると、以下の種類の HP ソフトウェアにアクセスできま
す。
•
•
•
•
NonStop オペレーティングシステム
ファイルシステム、プロセス制御、ソケット、FORTRAN、COBOL、C、および C++ を含
む Guardian API
ファイルシステム、プロセス制御、ソケット、COBOL、C、および C++ を含む OSS API
HP NonStop SQL/MX など、その他のソフトウェア
OSS 環境の OSS API とプログラミングは、次の OSS マニュアルに説明されています。
•
•
•
『Open System Services System Calls Reference Manual』
『Open System Services Library Calls Reference Manual』
『オープンシステムサービスプログラマーズガイド』
OSS リファレンスページ
各 OSS ユーザーコマンド、ユーティリティ、関数、C ランタイムコール、およびファイル形式
については、「リファレンスページ」と呼ばれる独立したドキュメントに説明されています。
これらのリファレンスページは「man (マニュアル) ページ」と呼ばれる場合もあり、オープン
システムサービスの参考文献の中核を成しています。 これらは、man コマンドを使用して参照
できます。
man コマンドの詳細については、第4章 (57 ページ) 、および『Open System Services Shell and
Utilities Reference Manual』を参照してください。 リファレンスページは、ユーザーマニュア
ルディスクのリファレンスマニュアルからも入手できます。
OSS と UNIX
オープンシステムサービスは、他のガイドラインに POSIX.1 標準と POSIX.2 標準が組み込んだ
『X/Open CAE Specifications』に基づいています。 POSIX.1 と POSIX.2 は、共に UNIX 標準
に基づいています。 したがって、OSS 環境とその機能は、UNIX 環境と非常によく類似してい
ます。 ただし、オープンシステムサービスは、厳密には UNIX 環境に基づくインターフェイス
ではなく、NonStop の基本機能と共に、重要な付加価値を持つ拡張機能として Guardian 環境
との相互運用性を提供します。
注記: UNIX システムと POSIX は同義語ではありません。UNIX システムは完全なオペレー
ティングシステムですが、POSIX はシステムインターフェイスです。
OSS と NonStop オペレーティングシステム
図 1-1に示すように、OSS 環境は、単に Guardian 環境の上に乗っているのではなく、Guardian
環境と共存しています。
24
オープンシステムサービスについて
図 1-1 OSS および Guardian アプリケーションとユーザーインターフェイス
Guardian 環境との相互関係のため、ユーザーの立場からは、オープンシステムサービスは次
のように見えます。
•
•
•
NonStop オペレーティングシステムに対する代替インターフェイス
移植性の高いアプリケーションの開発環境
NonStop システムに、および NonStop システムからアプリケーションを移植する環境
Guardian インターフェイスの代替インターフェイス
オープンシステムサービスは、ユーザーインターフェイスおよびプログラムインターフェイス
レベルで、Guardian API とそのユーティリティ、ファイルシステム、およびコマンドインター
プリターに対して、完全に機能する独立した代替機能を提供します。
相互運用性
オープンシステムサービスは、フォールトトレランス、並列処理、データ整合性と信頼性、分
散データ、および線形拡張性を含めて、NonStop オペレーティングシステムの多数の機能を使
用します。
オープンシステムサービスは、Safeguard、HP NonStop TCP/IP、TELNET アプリケーション
など、重要な HP ソフトウェアを直接使用します。
OSS 環境と Guardian 環境は、ユーザーレベルとプログラムレベルの両方で相互運用できます。
たとえば、多数の OSS 機能とユーザーコマンドを、Guardian 環境内のファイルとその他のオ
ブジェクトに対して実行できます。逆に、いくつかの Guardian プロシージャーを OSS オブ
ジェクトに対して実行できます。
OSS プログラムは、NonStop オペレーティングシステムの制御下で常に OSS プロセスとして
実行されます。
アプリケーション開発
OSS 環境では、移植性の高いアプリケーションを NonStop システム上で簡単に実行すること
ができ、また HP の機能を利用できます。 これは、開発者に対して、移植性の高い新しいアプ
リケーションを開発およびテストする環境を提供します。
OSS と NonStop オペレーティングシステム
25
移植性の高い多数のアプリケーションに関して、ユーザーは、自分のワークステーションで
コードを記述、編集、事前にテストした後、OSS 環境でコンパイル、デバッグ、および最終テ
ストを実行できます。
OSS 環境
OSS 環境がインストールされている典型的な NonStop システムには、ローカルエリアネット
ワークによって接続されたワークステーションが含まれます。 オープンシステムサービスは、
NonStop システムにログオンしているときに、TACL プロンプトで osh コマンドを発行して
実行します。
システム要件とシステム構成の詳細については、『Open System Services Installation Guide』
および『Open System Services Management and Operations Guide』を参照してください。
オープンシステムサービスと osh の実行の詳細については、第6章 (91 ページ) を参照してく
ださい。
OSS のデバイスサポート
OSS 環境は、大部分の外部デバイスを、Guardian 環境を通して間接的にサポートします。
プリンター
プリントは、シェルプロンプトから発行される OSS プリントコマンドによって要求されます。
プリントジョブは、 Guardian 環境のスプーラープログラムに送られます。 しかし、これは
OSS 環境内のユーザーには意識されず、またスプーリングとプリントは OSS 環境から実行さ
れているかのように見えます。
テープドライブ
オープンシステムサービスは、テープドライブを直接的にはサポートしません。 オープンシス
テムサービスからテープドライブへのアクセスは、pax ユーティリティを通して行います。
pax ユーティリティの説明と例については、第13章 (163 ページ) を参照してください。
OSS プロセス
OSS プロセスには、Guardian プロセスとは異なる属性がいくつか存在します。 オープンシス
テムサービスでは、各プロセスに、システム内でプロセスを一意に識別する番号であるプロセ
ス ID が割り当てられます。
また、OSS プロセスは、グループ ID で識別されるグループに属することができます。 同じグ
ループ内の複数のプロセスは、まとめて処理できます。たとえば、同じグループで同時にアク
ティブなすべてのプロセスは同じジョブ制御シグナルを受信できます。
OSS プロセスの詳細については、『オープンシステムサービスプログラマーズガイド』を参照
してください。また、第11章 (145 ページ) も参照してください。
OSS とオープンコンピューティング標準
オープンシステムサービスは、X/Open Company Limited、国際標準化機構 (ISO)、電気電子技
術者協会 (IEEE)、および国立標準技術研究所 (NIST) など、業界で広く認知された公的組織に
よって開発されたいくつかの標準に準拠しています。
オープンシステムサービスが基づく標準には、次のものがあります。
•
•
•
26
『X/Open Common Applications Environment (CAE) Specifications』
『Information Technology—Portable Operating System Interface (POSIX)—Part 1: System
Application Program Interface (API) [C Language] 』
『Portable Operating System Interface (POSIX)—System Application Program Interface
(API) [C Language]』
オープンシステムサービスについて
•
『Information Technology—Portable Operating System Interface (POSIX)—Part 2: Shell
and Utilities 』
XPG4
『X/Open Common Applications Environment (CAE) Specifications』 は、XPG4 とも呼ばれて
おり、POSIX.1 標準で定義されたシステムコール、C ライブラリ、データ交換フォーマット、
および POSIX.2 標準で定義されたシェルとユーティリティ、さらに追加のコマンド、国際化
(I18N)、ANSI C 言語とコンパイラ、その他のソフトウェア機能を含めて、標準化されたソフ
トウェアインターフェイスを対象としています。 XPG4 は、異なる種類のアプリケーション間
の通信を促進し、OSS 環境と Guardian 環境の相互運用機能の基礎を構成します。 XPG4 は、
POSIX 標準よりも広い範囲を対象とし、世界最大の情報システムサプライヤー、ユーザー組
織、およびソフトウェア企業から支持されている、独立した世界規模のオープンシステム組織
である X/Open Company Limited によって提供および維持されています。
POSIX.1
ISO/IEC 9945---–1:1990 および IEEE 標準 1003.1-1990 とも呼ばれる 『Information
Technology—Portable Operating System Interface (POSIX)—Part 1: System Application Program
Interface (API) [C Language]』は、しばしば POSIX.1 と呼ばれています。 これは、アプリケー
ションとシステム間のインターフェイスであるシステムコール、C ライブラリ、データ交換
フォーマットを対象としています。 この標準に対して記述されたアプリケーションは、やはり
この標準に準拠するシステムソフトウェアと通信することができ、移植性の高いアプリケー
ションの作成が可能になります。
FIPS
FIPS PUB 151-2 とも呼ばれる 『Portable Operating System Interface (POSIX)—System Application
Program Interface (API) [C Language]』 は、POSIX API を対象とした Federal Information
Processing Standards (FIPS) の出版物です。 本書は、国立標準技術研究所によって発行され、
ISO/IEC 9945-1:1990 標準を正式に FIPS 標準として採用し、さらにその標準の目的を要約して
います。
POSIX.2
ISO/IEC 9945-2:1993 および IEEE 標準 1003.2-1992 とも呼ばれる『Information
Technology—Portable Operating System Interface (POSIX)—Part 2: Shell and Utilities』は、し
ばしば POSIX.2 と呼ばれています。 これは、エンドユーザーとシステムのインターフェイス
であるシェルとユーティリティを対象としています。
POSIX、オープンシステム、および移植性の高いアプリケーションの詳細については、本章に
掲載した出版物、およびこの主題に関する市販の書籍を参照してください。
OSS とオープンコンピューティング標準
27
28
第2章 OSS ファイルシステム
OSS ファイルシステムは、POSIX 標準に準拠しているため、基本的には UNIX ファイルシステ
ムと同じです。 ただし、Guardian ファイルシステムとは、大きな相違点がいくつかあります。
最も大きな相違点は、全体的なファイルシステム構造とファイル名の命名規則にあります。
OSS ファイルシステムの全体像を把握するためには、次に示す OSS の概念を理解する必要が
あります。
•
•
•
•
•
「OSS ファイルとファイル名」
「OSS のディレクトリとサブディレクトリ」
「OSS パス名」
「OSS ファイルセット」
「パターンマッチング文字を含む名前の指定 」
OSS ファイルとファイル名
OSS ファイルには、文書のテキスト、コンピュータープログラム、総勘定元帳のレコード、コ
ンピュータープログラムの数値または統計出力などのデータを格納できます。 ファイルには、
格納するデータによる区分はありません。
OSS ファイル名には、/ (スラッシュ) 以外の文字を使用できますが、わかりづらくなるのを避
けるため、次に示す OSS シェルの特殊文字は使用しないようにしてください。
\
バックスラッシュ
&
アンパサンド
< >
山カッコ
?
疑問符
$
ドル記号
[ ]
カッコ
*
アスタリスク
|
縦棒
. (ピリオド、ドット) は、ファイル名内では指定できますが、先頭に指定する場合は注意して
ください。先頭に指定すると、ファイルは「隠し」ファイルとなり、ファイルの一覧表示を簡
素化できます。 隠しファイルの表示については、第8章 (101 ページ) を参照してください。
オープンシステムサービスでは、ファイル名の大文字と小文字を区別します。 たとえば、
filea、Filea、FILEA という 3 つのファイル名は、それぞれ個別のファイル名として指定で
きます。
OSS ファイル名の長さ
OSS ファイル名は、最大 248 文字です。
OSS ファイルタイプ
OSS 環境では、Guardian 環境とは異なり、ファイルコード、つまり各種ファイルタイプがサ
ポートされていません。 代わりに、オープンシステムサービスは、ファイルの内容や目的に関
係なく、すべてのファイルを同じタイプとして扱います。 したがって、オープンシステムサー
ビスでは、ファイルの内容がリスト、オブジェクトコード、データベーステーブルのいずれの
場合でも、エディターによる編集が可能です。 さらに、OSS ファイルは行指向ではありませ
ん。テキストストリームが、キャリッジリターンで区切った形式で格納されています。
OSS ファイルとファイル名
29
OSS のディレクトリとサブディレクトリ
ファイルは、ディレクトリに格納することによって、グループやサブグループに編成できま
す。 ディレクトリの中に、さらにディレクトリを作成することもできます。 別のディレクト
リ内にあるディレクトリは、「サブディレクトリ」と呼ばれます。 サブディレクトリを含む
ディレクトリは、しばしば「親ディレクトリ」と呼ばれます。
「ディレクトリ」と「サブディレクトリ」は、同じ意味で使用されることもあります。 この 2
つは、ほとんどの場合、相互の関係やパス名に対する関係で使用されます。 (「OSS パス名」
(31 ページ) を参照。)
ディレクトリ、サブディレクトリ、およびファイルは、階層構造に編成することができます。
ディレクトリやサブディレクトリを適切に構成することによって、ファイル管理が簡単になり
ます。
ディレクトリとファイルには、次に示す 2 つの大きな相違点があります。
•
•
ディレクトリとサブディレクトリは編成上のツールであるのに対して、ファイルにはデー
タが格納されます。
ディレクトリとサブディレクトリには、ファイル名や他のディレクトリの名前が格納され
ます。
ホームディレクトリは、通常、システム管理者、オペレータ-、マネージャーが OSS ファイル
システム内でユーザーごとにセットアップします。 ほとんどのユーザーは、操作の大部分を
ホームディレクトリ内で実行します。 ユーザーは、ホームディレクトリ内に専用のディレクト
リやサブディレクトリを作成できます。
OSS ディレクトリ名は、ファイル名と同様に最大 248 文字です。
OSS ファイルシステム構造
ユーザーは操作のほとんどをホームディレクトリ内で実行しますが、OSS ファイルシステムに
はユーザーのホームディレクトリ以外にもさまざまなディレクトリが存在します。
図 2-1 は、一般的な OSS ファイルシステムを示しています。 図 2-1 では、ディレクトリ名は太
字、ファイル名は斜体です。
図 2-1 一般的な OSS ファイルシステム
30
OSS ファイルシステム
図 2-1 を見ると、ファイルシステムの最上位に / (スラッシュ) 文字があります。 / 文字は、
ファイルシステムのルートディレクトリを示します。 ファイルシステム内の他のディレクトリ
とサブディレクトリは、すべてルートディレクトリ内に存在します。
ルートディレクトリのすぐ下に 9 つのディレクトリがあり、それぞれにサブディレクトリと
ファイルが格納されています。 図 2-1 では、/user ディレクトリに含まれるサブディレクトリ
とファイルのみ表示されています。
これ以外に、図 2-1 の第 2 レベルには、OSS ファイルシステム (および多くの UNIX ファイル
システム) で一般的に使用されるディレクトリがあります。 ほとんどの場合、システムファイ
ルとディレクトリが格納されています。
図 2-1 の構造の第 3 レベルには、/smith と /chang という 2 人のユーザーのホームディレク
トリがあります。
図の第 4 レベルには、/chang のホームディレクトリ内にある 3 つのディレクトリ
(/plans、/report、/payroll) があります。 これは、ファイルやサブディレクトリを整理
するために、ユーザーが作成したサブディレクトリだと考えられます。
この構造の第 5 レベルには、ファイルとサブディレクトリの両方が存在します。 /plans ディ
レクトリには、ファイルが 4 つ格納されています。 /report ディレクトリには、ファイルが
3 つ格納されています。 また、第 5 レベルには、2 つのサブディレクトリ (/regular と
/contract) があります。
サブディレクトリを含むディレクトリは、しばしば「親ディレクトリ」と呼ばれます。 たとえ
ば、/chang は /plans、/report、/payroll の親ディレクトリです。
/G ディレクトリ
OSS ファイルシステムには、/G という名前のディレクトリがあります。 /G ディレクトリは、
Guardian ファイルセットを識別します。 /G は、ルートディレクトリの下で OSS ディレクト
リとして表示されますが、実際には Guardian ファイルシステムのマウントポイントです。 /G
ディレクトリを使用することにより、Guardian 環境のボリューム、サブボリューム、ファイ
ルにアクセスできます。
つまり、OSS 環境で作業しながら、Guardian ファイルセットへと移動することが可能になり
ます。 /G ディレクトリでは、OSS ユーティリティを使って Guardian のサブボリュームやファ
イルにアクセスできます。 Guardian ボリュームは OSS ディレクトリとして表示され、Guardian
サブボリュームは OSS サブディレクトリとして表示されます。 Guardian ファイルは、OSS
ファイルとして表示されます。 /G へのアクセスについては、「OSS 環境から Guardian ファ
イルへのアクセス」 (74 ページ) を参照してください。
/E ディレクトリ
/E ディレクトリは、Guardian Expand ネットワークを示し、リモート NonStop ノード上にあ
る OSS ファイル名と Guardian ファイル名のマッピングを行います。 このマッピングは、ロー
カル NonStop ノード上にある OSS ファイルや Guardian ファイルのディレクトリに類似して
います。 つまり、OSS ファイル名と、Guardian と OSS 間のファイル名変換がリスト形式でま
とめられています。
/E ディレクトリの詳細については、「OSS 環境から Guardian ファイルへのアクセス」 (74 ペー
ジ) を参照してください。
OSS パス名
OSS パス名は、OSS ファイルシステム内でのディレクトリやファイル (/G ディレクトリや /E
ディレクトリを含む) の場所を示します。
絶対パス名
パス名の先頭にルートディレクトリを示す / (スラッシュ) 文字がある場合、ファイルシステム
の最上位を基準にパス名が指定されていることになります。このようなパス名は、「フルパス
OSS パス名
31
名」または「絶対パス名」と呼ばれます。 絶対パス名は、ファイルまたはディレクトリの完全
な名前だと考えることができます。 フルパス名を指定することによって、操作を行っているの
がファイルシステムのどの場所であるかに関係なく、ファイルやディレクトリを必ず特定でき
ます。 たとえば、次に例を示します。
/user/chang/report/part3
パス名の先頭にある / は、ルートディレクトリを示し、末尾には part3 があります。 したがっ
て、このパス名は、part3 の絶対パス名となります。 パス名の中間部分には、part3 が格納
されているディレクトリまたはサブディレクトリ (つまり、part3 にアクセスするために必要
になるファイルシステム内のパス) が指定されています。
相対パス名
相対パス名は、 / (ルート) 以外の文字で始まります。 現在作業しているディレクトリまたは
ホームディレクトリに対する相対的なパスを示しています。
相対パスは、次の 4 通りの方法で指定できます。
•
•
•
•
カレントディレクトリ内のファイルの名前。
カレントディレクトリのすぐ下のレベルにあるディレクトリの名前で始まるパス名。
.. で始まるパス名 (ドット 2 つは、親ディレクトリに対する相対パス名です)。
. で始まるパス名 (ドット 1 つは、カレントディレクトリを示します)。 このような表記方
法は、カレントディレクトリでユーザー専用バージョンのコマンドを実行したい場合など
に便利です。
注記: ディレクトリには、必ずエントリーが 2 つ以上あります。1 つは、親ディレクトリ
を示す .. (ドット 2 つ)、もう 1 つはカレントディレクトリを示す . (ドット 1 つ) です。
たとえば 図 2-2 を見ると、カレントディレクトリが /chang の場合、/plans ディレクトリの
2Q ファイルの相対パス名は、plans/2Q となります。 このファイルをフルパス名で表記する
と /user/chang/plans/2Q となりますが、相対パス名の方が入力が簡単で便利だというこ
とがわかります。
図 2-2 相対パス名とフルパス名
32
OSS ファイルシステム
OSS シェルでは、相対パス名の先頭に ~ (波ダッシュ) を指定できます。 波ダッシュは、ユー
ザーのホームディレクトリを示します。 たとえば、波ダッシュだけで、ユーザーのホームディ
レクトリを指定することができます。 たとえば、ユーザー chang のホームディレクトリは、
~chang となります。
システム上に他にもユーザーがいる場合、ユーザーのファイルやディレクトリにアクセスでき
るかどうかは、各ユーザーに設定されているパーミッションによって異なります。 ファイルと
ディレクトリのパーミッションについては、第10章 (129 ページ) を参照してください。
パス名の長さ
パス名は、最大 1023 文字です。
OSS ファイルセット
OSS ファイルシステムは、1 つ以上のファイルセットで構成されます。 各ファイルセットは、
ファイルの階層構造であり、ディレクトリ、サブディレクトリ、ファイルが含まれます。 実
際、ルートディレクトリに格納されているディレクトリやファイルは、大きな 1 つのファイル
セットを構成しています。
ファイルセットは、Guardian 環境のサブシステム制御ファシリティ (SCF) コマンドである
START FILESET と STOP FILESET を使って、システム管理者がマウントおよびマウント解除
を行います。
パターンマッチング文字を含む名前の指定
OSS シェルでは、パターンマッチング文字 (メタキャラクター) を使用することによって、ファ
イル名やディレクトリ名全体をすべて入力しなくても、1 つまたは複数の名前を指定すること
ができます。 パターンマッチング文字については、第3章 (35 ページ) を参照してください。
以下は、よく使用されるパターンマッチング文字です。
?
先頭のドット (.) を除く任意の 1 文字をに一致します。
*
先頭のドット (.) を除く任意の文字列に一致します。
[]
大カッコで囲まれた文字のいずれかに一致します。
次に、パターンマッチング文字の使用例を紹介します。
•
•
•
file? は、fileA、file1、fileb と一致しますが、fileabc には一致しません
f*1 は、fileA1、file1231、fFile1 に一致しますが、file12 や ile1 には一致しま
せん
[il] は、fileA、myfile、hillhouse に一致します
OSS ファイルセット
33
34
第3章 OSS シェル
OSS 環境のユーザーインターフェイスは、OSS「シェル」と呼ばれます。 OSS シェルは、ユー
ザーが入力したコマンドを解釈し、プログラムを実行してから、出力を画面に送信するプログ
ラムです。
オープンシステムサービスは、Korn シェル (sh) をサポートします。 UNIX システムでは C
シェルと Bourne シェルも一般的ですが、オープンシステムサービスではサポートされていま
せん。
osh コマンドは、シェル (/bin/sh) を開始します。
デフォルトのシェルプロンプトは、$ (ドル記号) です。 (これは、Korn シェルのデフォルトプ
ロンプトです。) システム管理者が OSS 環境ファイル /etc/profile で別の設定を行ってい
る場合や、任意のユーザーがローカルの .profile ファイルでローカルプロンプトを指定して
いる場合には、デフォルト以外のシェルプロンプトが表示されます。 よく使用されるプロンプ
トとしては、ユーザーのホームディレクトリのパス名の後に : (コロン) を付加した形式と、
ユーザーのユーザー ID の形式があります。 プロンプトには、行番号を表示できます。
本書では、シェルプロンプトとして $ (ドル記号) を使用します。
本章では、OSS シェルの概要を説明します。 シェルの概念および Korn シェルやその機能の詳
細については、UNIX や POSIX シェル、POSIX Korn シェルに関する市販の書籍を参照してく
ださい。
OSS シェルの機能
表 3-1 は、OSS シェル機能の一部を一覧にしたものです。
表 3-1 OSS シェルの機能 (一部)
機能
説明
シェルプログラミング
ループ、条件ステートメント、変数などの機能を備えたプログラミング言語。
メタキャラクター
他の文字群または任意の文字を表す文字。
組み込みコマンド
シェルの一部として提供されているコマンドやユーティリティ。
コマンド入力支援
コマンド入力を効率化する構文や特殊文字。
ファイル名の自動補完入力
ユーザーがファイル名の一部を入力する機能。 ファイル名は、システムによって
自動補完入力されるか、ユーザーがリストから選択します。
コマンドエイリアス
長いコマンドラインを省略したり、コマンドの名前を変更する機能。
コマンド履歴
コマンドを保存しておくことにより、コマンドの編集や再実行を可能にする機能。
コマンドラインの編集
実行中のコマンドまたはこれまでに実行したコマンドを編集する機能。
環境変数
シェルで設定可能な環境変数。
フロー制御
プログラムの実行フローをプログラマが制御する機能。
パラメーター置換
ユーザーが割り当てた値を、シェルやコマンドライン内の変数に渡す機能。
コマンド置換
コマンド出力を、変数の値として使用できるようにする機能。
シグナルトラップ
割り込みなどの OSS シグナルをトラップする機能。
条件式
値、属性、比較のテストを行う機能。
ジョブ制御
フォアグラウンドとバックグラウンドのプロセスを実行、監視、管理する機能。
配列
データをグループ化し、名前を付けて参照する機能。
OSS シェルの機能
35
メタキャラクター
表 3-2 は、シェルのメタキャラクター (シェルで特殊な機能を果たす文字) の一覧です。
表 3-2 シェルのメタキャラクター
メタキャラクター
説明
構文
|
パイプラインに含まれるコマンドを区切ります。
&&
現在のコマンド実行に成功したら、次のコマンドを実行します。
||
現在のコマンド実行に失敗したら、次のコマンドを実行します。
;
シーケンシャルに実行する必要があるコマンドを区切ります。
;;
ケース構成の要素を区切ります。
&
コマンドをバックグラウンドで実行します
( )
サブシェルで別プロセスとして実行するために、コマンドをグループ化します。
{ }
サブシェルを作成せずに、コマンドをグループ化します。
ファイル名
/
ファイルのパス名の各部分を区切ります。
?
先頭のドットを除く任意の 1 文字に一致します。
*
先頭のドットを除く任意の文字列に一致します。
[ ]
囲まれた文字のいずれかに一致します。
~
ファイル名の先頭に指定すると、ホームディレクトリを示します。
引用
\
後に続く文字をリテラルとして解釈します。つまり、シェルの特殊文字として扱い
ません。
'...'
囲まれた文字 (一重引用符文字を除く) をリテラルとして解釈します。つまり、シェ
ルの特殊文字として扱いません。
"..."
$ (ドル記号)、` (アクサングラーブ)、\ (バックスラッシュ) の各文字をシェルの特
殊文字として解釈します。ただし、囲まれた文字の中にこれ以外のものがあれば、
すべてリテラルとして解釈し、シェルの特殊文字としては扱いません。
入出力
<
入力をリダイレクトします。
>
出力を指定のファイルにリダイレクトします。
<<
入力をリダイレクトし、シェルは、指定された行まで入力を読み取ります。
>>
指定のファイルの終端に出力をリダイレクトします。
>&
診断と標準出力の両方をリダイレクトし、指定のファイルの終端に追加します。
拡張と置換
36
${.}
変数を置換します。
%
ジョブ番号を置換します。
'.'
コマンド出力を置換します。
OSS シェル
シェル組み込みコマンド
シェルの組み込みコマンドは、シェルが実行し、シェル内部でコマンド全体が実行されます。
シェル組み込みコマンドによってサブシェルが生成されることはありません。 (他のコマンド
を実行すると、実行時にプロセス用のサブシェルが開始します。)
表 3-3 は、シェルの組み込みコマンドの一覧です。
表 3-3 シェル組み込みコマンド
コマンド
説明
add_define(1)
1 つまたは複数の DEFINE を現在の OSS シェル用に作成します。
alias(1)
エイリアスをリストまたは定義します。
bg(1)
ジョブをバックグラウンドに移動します。
break(1)
囲んでいるループから抜け出します。
cd(1)
現在の作業ディレクトリを変更します。 (OSS シェルには、通常の形式とシェ
ル組み込み形式の cd が含まれています。)
continue(1)
囲んでいるループの次の反復を再開します。
del_define(1)
現在の OSS シェル用に設定した 1 つまたは複数の DEFINE を削除します。
echo(1)
引数を標準出力に書き込みます。 (OSS シェルでは、通常の形式とシェル組み
込み形式の echo が含まれています。)
eval(1)
引数を読み取ってコマンドを実行します。
exec(1)
コマンドを実行します。
exit(1)
シェルを終了します。
export(1)
変数をエクスポートします。
fc(1)
これまでにシェルに入力されたコマンドをリスト、編集、再実行します。
fg(1)
指定したジョブをフォアグラウンドで実行します。
getopts(1)
コマンドラインのフラグと引数を構文解析します。
hash(1)
ユーティリティの位置をシェルが記憶する方法を操作します。
history(1)
これまでに実行したコマンドを一覧表示します (履歴リスト)。
info_define(1)
既存の DEFINE の属性と値を表示します。
jobs(1)
ジョブに関する情報を表示します。
kill(1)
実行中のプロセスにシグナルを送信します。 (OSS シェルでは、通常の形式と
シェル組み込み形式の kill が含まれています。)
let(1)
評価のための認証式を表します。
print(1)
シェル出力をプリントします。
pwd(1)
カレントディレクトリのパス名を表示します。 (OSS シェルでは、通常の形式
とシェル組み込み形式の pwd が含まれています。)
read(1)
標準入力から 1 行読み取ります。 (OSS シェルでは、通常の形式とシェル組み
込み形式の read が含まれています。)
readonly(1)
指定した名前を読み取り専用にします。
reset_define(1)
DEFINE の属性を初期設定に戻します。
return(1)
シェル関数を、呼び出し元のスクリプトに戻します。
set(1)
パラメーターを設定します。
set_define(1)
使用中の属性セットに DEFINE の属性の値を設定します。
シェル組み込みコマンド
37
表 3-3 シェル組み込みコマンド (続き)
コマンド
説明
shift(1)
位置パラメーターを設定します。
show_define(1)
属性の値を表示します。
times(1)
コマンド実行時間を測定します。
trap(1)
シェルがシグナルを受信した際に実行するコマンドを指定します。
type(1)
ファイルタイプの説明を出力します。
typeset(1)
シェルパラメーター用に属性と値を設定します。
umask(1)
ファイルモード生成マスクを設定します。
unalias(1)
名前をエイリアスリストから削除します。
unset(1)
パラメーターの値を消去します。
wait(1)
プロセスが完了するまで待機します。
whence(1)
名前をコマンドとして使用した場合に、名前を解釈する方法を出力します。
一部のシェル組み込みコマンドには、これに対応する通常の OSS コマンドが同じ名前で存在し
ます。 シェル組み込みバージョンと OSS バージョンでは、動作内容が異なる場合や、サポー
トするフラグが異なる場合があります。
シェル組み込みバージョンが、デフォルトのバージョンです。 OSS バージョンのコマンドを実
行するには、次のように指定します。
/bin/command_name
OSS バージョンをデフォルトバージョンに設定するには、.profile ファイル内でそのエイリ
アスを作成します。
次のシェル組み込みコマンドにも、OSS バージョンがあります。
•
•
•
•
echo(1)
kill(1)
pwd(1)
read(1)
コマンド入力支援
OSS シェルでは、次のコマンド入力支援がサポートされています。
•
•
•
•
「複数のコマンドおよびコマンドリストの使用 」
「パイプとフィルターの使用 」
「コマンドのグループ化」
「引用符」
複数のコマンドおよびコマンドリストの使用
通常、OSS シェルでは、コマンドラインで指定された最初の文字列をコマンド名、それに続く
文字列をコマンドの引数とみなします。 つまり、シェルは、各コマンドラインを 1 つのコマン
ドとして処理します。 ただし、表 3-4 で示す演算子を使用すると、コマンドライン 1 行で複数
のコマンドを実行できるようになります。
38
OSS シェル
表 3-4 複数のコマンド演算子
演算子
説明
例
; (セミコロン)
コマンドを順番に実行します。
cmd1 ; cmd2
&&
現在のコマンドが成功した場合のみ、次 cmd1 && cmd2
のコマンドを実行します。
||
現在のコマンドが失敗した場合のみ、次 cmd1 || cmd2
のコマンドを実行します。
|
パイプラインを作成します。
ls | wc
セミコロン (;) によるコマンドの順次実行
; (セミコロン) 演算子でコマンドを区切ると、1 行に複数のコマンドを入力できます。 次の例
では、amy という名前のユーザーが、4 つのコマンドをセミコロンで区切って入力しています。
$ ls ; who ; date ; pwd
change
amy
file3
console/1
Tue Jun 4
newfile
Jun 4 14:41
14:42:51
CDT
1997
/u/amy
この例では、シェルはまず ls を実行します。 ls が完了すると、who、date の順に実行し、
最後に pwd を実行します。 コマンドラインに続く 4 つの行は、実行した 4 つのコマンドのシー
ケンスに対応しています。
コマンドラインを見やすくするには、コマンドと ; (セミコロン) の間に空白またはタブを挿入
してください。 このような方法で使用した空白やタブは、無視されます。
|| および && 演算子による条件付きコマンド実行
&& 演算子や || 演算子でコマンドを連結すると、シェルは最初のコマンドを実行した後、以下
で示す条件を満たす場合にのみ、残りのコマンドを実行します。
&&
&& 演算子を指定すると、前のコマンドが成功した場合のみ、次のコマンドを実行します。
コマンドが 0 (ゼロ) を返した場合、実行に成功したことを示します。
||
|| 演算子を指定すると、前のコマンドが失敗した場合のみ、次のコマンドを実行します。
次の例では、前のコマンドの実行が成功した場合のみ、次のコマンドを実行します。
$ cmd1 && cmd2 && cmd3 && cmd4 && cmd5
cmd1 が成功すると、シェルは cmd2 を実行します。 cmd2 の実行に成功すると cmd3 を実行し
ます。この一連の処理を、コマンド実行が失敗するまで、または最後のコマンドの実行が完了
するまで継続します。 (コマンドの実行に失敗すると、シェルはコマンドラインの実行を停止
します。)
次の例では、前のコマンドの実行に失敗した場合のみ、シェルは次のコマンドを実行します。
$ cmd1 || cmd2
cmd1 の実行に失敗すると、シェルは cmd2 を実行します。 cmd1 の実行に成功すると、コマ
ンドラインの実行を停止します。
たとえば、mysort というコマンドがあるとします。このコマンドは、ソートプログラムを実
行し、ソート中に一時ファイル (mysort.tmp) を作成します。 mysort が成功した場合、一時
ファイル mysort.tmp を削除します。 一方、mysort が失敗すると、mysort.tmp を削除し
ないことがあります。 mysort.tmp を確実に削除するには、次のコマンドラインを使用しま
す。
コマンド入力支援
39
$ mysort || rm mysort.tmp
2 番目に指定されているコマンドは mysort.tmp を削除しますが、mysort が失敗した場合に
のみ実行されます。
パイプとフィルターの使用
パイプは、関連する 2 つのコマンドを一方向に接続します。 一方のコマンドが出力をパイプに
書き込み、もう一方のコマンドがパイプから入力を読み取ります。 | (パイプ) 演算子で複数の
コマンドを接続すると、パイプラインになります。 最初のコマンドの出力が 2 番目のコマンド
の入力になり、その出力が 3 番目のコマンドの入力になります。
フィルターは、標準入力ファイルを読み取り、入力を変換して、変換後の入力を標準出力ファ
イルに書き込むコマンドです。 一般に、フィルターはパイプライン内で中間コマンドとして使
用され、| (パイプ) 演算子で接続されます。 たとえば、次に例を示します。
ls -R | sort
ls コマンドは、カレントディレクトリから階層構造の一番下までにあるすべてのディレクト
リの内容を再帰的に (-R) リストします。sort コマンドは、実行結果をアルファベット順に
ソートし、画面に一覧表示します。 この場合、sort コマンドは、ls -R コマンドが作成した
リストをアルファベット順に並べ替え、変更した (アルファベット順にソート) リストを画面表
示します。この点で、sort コマンドはフィルターとみなされます。
フィルターでないコマンドの中には、フラグを設定することによって、フィルターのように動
作するものもあります。 たとえば、diff (ファイルの比較) コマンドは、2 つのファイルを比
較して、差異を標準出力ファイルに書き込みます。 diff の通常の形式は、次のとおりです。
diff file1 file2
ただし、ファイル名の代わりに - (ダッシュ) フラグを指定すると、diff は標準入力ファイル
を読み取り、指定のファイルと比較します。
次の例で示すパイプライン ls は、カレントディレクトリの内容を標準出力ファイルに書き込
みます。 diff コマンドは、ls の出力を dirfile ファイルの内容と比較してから、差異を標
準出力ファイルに書き込みます (more コマンドを使用)。
$ ls | diff - dirfile | more
次の例では、別のタイプのフィルタープログラム (grep) を使用しています。
$ ls -l | grep r-x | wc -l
12
これを実行すると、次のような処理が行われます。
1.
2.
3.
ls -l コマンドは、カレントディレクトリの内容を詳細な形式で一覧表示します。
ls -l の出力は grep r-x の入力になります。grep は、標準入力ファイル内で、r-x の
パーミッションを持つファイルをパターン検索し、そのパターンを含むすべての行を標準
出力ファイルに書き込みます。
grep r-x の出力は wc -l の入力になり、標準入力ファイル内で grep の条件を満たす
ファイル数が表示されます。
パイプラインを使用せずに同じ結果を取得するためには、次のような操作が必要です。
1.
ls -l /user の出力をファイルに格納します。
$ ls -l >file1
2.
file1 を grep r-x の入力として使用し、grep の出力を別のファイルにリダイレクトし
ます。
$ grep r-x file1 > file2
3.
grep の出力を、wc -l の入力として使用します。
$ wc -l file2
12
40
OSS シェル
パイプライン内の各コマンドは、個別のプロセスとして実行されます。 パイプラインは一方向
にのみ (左から右) 処理を行い、パイプライン内のプロセスはすべて一度に実行できます。 読
み取り対象となる入力がなくなった時点、または次のプロセスへのパイプが一杯になった時点
で、プロセスは一時停止します。
コマンドのグループ化
OSS シェルでは、表 3-5 で示すように、2 つの方法でコマンドをグループ化できます。
表 3-5 コマンドをグループ化する記号
記号
説明
( ) (カッコ)
シェルは、グループ化されたコマンドを別プロセスで実行するために、サブシェル
を生成します。
{ } (中カッコ)
シェルは、グループ化されたコマンドを 1 つの単位として実行します。
カッコ ( ) の使用方法
次に示すコマンドグループ化の例では、OSS シェルは ( ) (カッコ) で囲んだコマンドを別プロ
セスとして実行します。
$ (cd reports;ls);ls
この例では、シェルは、/reports ディレクトリに移動してディレクトリ内にあるファイルを
リストする (cd reports;ls) シェルプログラム (サブシェル) を別途生成します。 サブシェル
のプロセスが終了すると、シェルはカレントディレクトリ内のファイルを一覧表示 (ls) しま
す。
( ) を指定しない場合、オリジナルのシェルが /reports ディレクトリに移動し、ディレクト
リ内のファイルを一覧表示してから、同じディレクトリ内のファイルを再度一覧表示します。
サブシェルは生成されず、cd reports;ls コマンド用に別プロセスも生成されません。
シェルは、コマンドライン内の ( ) を、その位置で認識します。 カッコをリテラルとして使
用する (コマンドをグループ化しない) には、( (左カッコ) または ) (右カッコ) の直前に \ (バッ
クスラッシュ) を指定してください。 (詳細については、「引用符」 (41 ページ) を参照してく
ださい。)
中カッコ { } の使用方法
コマンドを { } で囲むと、シェルはサブシェルを生成せずにそのコマンド群を実行します。
次の例では、シェルは date を実行して出力を todaygrp ファイルに書き込んだ後、who を実
行して出力を todaygrp に書き込みます。
$ { date; who }>todaygrp
コマンドを中カッコでグループ化しない場合、シェルは date の出力をディスプレイに書き込
み、who の出力を todaygrp ファイルに書き込みます。
シェルは、パイプラインやコマンドリスト内の { } を認識しますが、コマンドラインでは {
(左カッコ) が先頭文字でないと認識できません。
引用符
予約文字には、 < > |& ? や * などがあります。 予約文字は、シェルで特殊な機能を果たし
ます。 予約文字を (特殊な機能を果たさない) リテラルとして使用するには、表 3-6 で示すよう
に、シェルの引用規則に従って文字を「引用」してください。
コマンド入力支援
41
表 3-6 シェルの引用規則
規則
説明
\
バックスラッシュ文字。 1 文字を引用します。
' '
一重引用符。 文字列を引用します (一重引用符自体を除く)。
" "
二重引用符。 文字列を引用します。ただし、$ (ドル記号)、' (一重引用符)、\ (バックスラッ
シュ) は除きます。
バックスラッシュ ( \ ) の使用方法
1 文字を引用するには、文字の直前に \ (バックスラッシュ) を挿入します。次に例を示します。
$ echo \`
`
このコマンドを実行すると、 ` (アクサングラーブ) 文字が 1 つ表示されます。
一重引用符 (' ') の使用方法
文字列を一重引用符で囲むと、シェルは文字列に含まれる各文字 (一重引用符自体を除く) をリ
テラルとして扱います。 次に示す要素をシェルで解釈したくない場合には、一重引用符を使用
すると便利です。
•
•
$ (ドル記号)、` (アクサングラーブ)、\ (バックスラッシュ) など、特殊な機能を持つ予約
文字
変数名
次の例は、一重引用符を使用することによって、変数名をシェルで解釈せずに表示する方法を
示しています。
$ echo 'The value of $USER is' $USER
The value of $USER is amy
echo コマンドを実行すると、一重引用符で囲んだ $USER は変数名がそのまま表示されます
が、一重引用符で囲まない $USER は、コマンドが変数の値を解釈します。
二重引用符 ( " " ) の使用方法
二重引用符は、引用の特殊な形式です。 二重引用符で囲むと、$ (ドル記号)、` (アクサング
ラーブ)、\ (バックスラッシュ) などの予約文字は、それぞれの機能をそのまま保持します。 こ
れ以外の文字は、すべてリテラルとして扱われます。 二重引用符は、変数の割り当てでよく使
用されます。
次の例は、二重引用符を使用することによって、シェル変数の値を含むメッセージ内で山カッ
コ (通常は予約文字) を表示する方法を示しています。
$ echo "<<Current shell is $SHELL>>"
<<Current shell is /bin/sh>>
ファイル名の自動補完入力
OSS シェルでは、コマンドラインでのファイル名の自動補完入力がサポートされています。こ
れは、コマンドラインにファイル名を一部だけ入力すると、自動的にマッチングして完全な
ファイル名の入力を行う機能です。 入力した文字列に一致するファイル名またはパス名が複数
存在する場合、候補が一覧表示されます。
ファイル名の自動補完入力機能を有効にするには、.profile ファイルに EDITOR 変数を定義
してください。 たとえば、vi エディターを使用する場合には、.profile ファイルに次の変
数定義を入力します。
EDITOR=vi
42
OSS シェル
ファイル名の自動補完入力機能のしくみを説明するために、ここでは、vi エディターを使用
し、カレントディレクトリに salesfeb、salesjan、salesmar という 3 つのファイルが格
納されているとします。 詳細な内容を一覧表示し、ファイル名の自動補完入力を有効化しま
す。次のように入力してください。
$ ls -l sales<Esc>=
1) salesfeb
2) salesjan
3) salesmar
$ ls -l sales
システムはコマンドを再度表示し、カーソルが sales の終端に移動します。 ここでは、
salesjan を選択するとします。 a (vi の 追加 (append) コマンド) と入力してから、jan と入
力します。 次に、 [Return] キーを押します。 salesjan のリストが表示されます。
ファイル名の自動補完入力については、オンラインまたは『Open System Services Shell and
Utilities Reference Manual』で sh(1) のリファレンスページを参照してください。
エイリアス
コマンドエイリアスとは、長いコマンドラインの短縮や、コマンド名の変更を行う機能です。
たとえば、/usr/chang/reports/status ディレクトリへの移動を頻繁に行うとします。
この操作のために、status という名前のエイリアスを作成します。エイリアス名をコマンド
ラインに入力すると、上記のディレクトリに移動できます。
さらに、エイリアスを使用することによって、わかりやすい名前をコマンドに付けることがで
きます。 たとえば、mv コマンドのエイリアスとして、rename を定義することができます。
alias コマンドの一般的な形式は、次のとおりです。
alias aliasname=command
aliasname には、使用したい名前を指定します。 command 項目には、元のコマンド (1 つま
たは複数) を指定します。 コマンドが複数の部分に分かれている場合 (空白文字で区切られて
いる場合)、一重引用符で式全体を囲んでください。
たとえば、/usr/chang/reports/status ディレクトリに移動する status というエイリア
スを作成します。
$ alias status='cd /usr/chang/reports/status'
エイリアス status をコマンド入力すると、シェルは status をコマンド cd
/usr/chang/reports/status として処理し、作業ディレクトリを
/usr/chang/reports/status に変更します。
現在のセッションのエイリアスを削除するには、unalias コマンドを使用します。 unalias
コマンドの一般的な形式は、次のとおりです。
unalias aliasname
aliasname 項目には、削除したいエイリアスを指定します。
この方法で、コマンドライン上でエイリアスを定義する場合、実行対象は現在のシェルのみと
なり、サブシェルは対象になりません。 サブシェル内でエイリアスを有効にするには、エイリ
アスをエクスポートするか、.profile ファイルで定義する必要があります。
エイリアスのエクスポート
シェルは、作成したエイリアスをエクスポートできます。 エクスポートしたエイリアスは、生
成された任意のサブシェルに渡されます。これにより、シェルプロシージャーまたは新しい
シェルの実行時に、エイリアスは定義されたままの状態になります。 (エクスポートされない
変数は、現在のシェルプロセスのみで使用でき、サブシェルでは使用できません。)
エイリアスのエクスポートには、次のコマンド構文を使用します。
エイリアス
43
alias -x aliasname=command
-x フラグを指定すると、エイリアスがエクスポートされます。 aliasname 項目には、使用し
たい名前を指定します。 command 項目には、元のコマンド (1 つまたは複数) を指定します。
コマンドが複数の部分に分かれている場合、一重引用符で式全体を囲んでください。
たとえば、rm コマンドのエイリアス定義をエクスポートするには、次のように入力します。
$ alias -x rm='rm -i'
エクスポートしたエイリアスを削除するには、unalias コマンドを使用します。
unalias aliasname
aliasname 項目には、削除したいエイリアスを指定します。
コマンドラインから入力してエクスポートしたエイリアスは、現在のシェルセッションでしか
有効になりません。 ユーザー環境で恒久的なエイリアスとして使用するには、.profile ファ
イルに入力する必要があります。
エイリアスと .profile ファイル
.profile ファイル内で定義したエイリアスは、新しいシェルを開始した時点でいつでも使用
可能になります。 例 3-1 (53 ページ) を参照してください。
たとえば、.profile ファイル内に cd /usr/chang/reports/status のエイリアスとして
status を定義するには、次の行を .profile に入力します。
alias status='cd /usr/chang/reports/status'
.profile ファイルに入力したエイリアスを使用可能にするには、.profile を再度実行する
必要があります。
.profile ファイルからエイリアスを削除するには、エイリアスを定義している行を .profile
ファイルから削除し、ファイルを閉じて再度実行します。
.profile ファイルの再実行
.profile に入力したエイリアスを使用可能な状態にするには、.profile ファイルを再実行
する必要があります。 .profile ファイルを再実行するには、次のコマンドを入力します。
$ . .profile
PATH 環境変数で . (ドット) を定義していない場合、次のコマンドで .profile を再実行する
必要があります。
$ . ./.profile
エイリアスの表示
すべてのエイリアス定義を表示するには、次のように入力します。
$ alias
特定のエイリアスの定義を表示するには、次のように入力します。
$ alias aliasname
aliasname 項目には、定義を表示したいエイリアスを指定します。
コマンド履歴
コマンド履歴バッファーには、入力したコマンドが格納されており、いつでも表示できます。
したがって、バッファーを利用することによって、前に実行したコマンドやコマンドの一部を
選択してから、再度実行することができます。 この機能を使用すると、長いコマンドを再入力
する手間が省けるため、時間の節約に役立ちます。
履歴バッファーの内容を表示するには、history コマンドを使用します。 次のような内容が
表示されます (出力内容が異なる場合があります)。
[18] $ history
44
OSS シェル
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ls -l
pwd
cd /usr/sales
ls -l
cp report report5
mv /usr/accounts/new .
cd /usr/accounts/new
mkdir june
cd june
mv /usr/accounts/new/june .
ls -l
cd /usr/sales/Q1
vi earnings
cd /usr/chang
vi status
[19] $
コマンド履歴バッファーに格納されているコマンドを再実行するには、表 3-7 で示すコマンド
を使用します。 コマンドはすべて r で始まります。
表 3-7 OSS シェル履歴バッファー内のコマンドの再実行
コマンド
説明
r
直前に実行したコマンドを再実行します。
r n
n で指定したコマンドを再実行します。 たとえば、上記の履歴バッファーの例では、
r 5 と入力すると、5 番目のコマンドである cd /usr/sales が再実行されます。
r -n
現在のコマンドを基準に、これまでに実行したコマンドを再実行します。 たとえば、
上記の履歴バッファーの例では、r -2 と入力すると、16 番目のコマンドである cd
/usr/chang が再実行されます。
r string
string で指定した文字列と一致する文字で始まるコマンドの中で、直近のコマンド
を再実行します。 たとえば、上記の履歴バッファーの例では、r cp と入力すると、
7 番目のコマンドである cp report report5 が再実行されます。
履歴バッファー内のコマンドの再実行については、オンラインまたは『Open System Services
Shell and Utilities Reference Manual』でsh(1) のリファレンスページを参照してください。
履歴バッファーに格納するコマンドの数を増減するには、.profile ファイル内に HISTSIZE
変数を設定します。 この変数は、次の形式で指定します。
HISTSIZE=n
n には、履歴バッファーに格納するコマンドラインの数を指定します。 たとえば、履歴バッ
ファーに 15 個のコマンドを格納する場合は、次のコマンドを使用します。
HISTSIZE=15
コマンドラインの編集
シェルでは、コマンド履歴バッファーに格納されているコマンドラインを一覧表示または編集
できます。 これまでに実行したコマンドラインの要素を変更してから、コマンドラインを再実
行することができます。
コマンドラインの編集には、さまざまな機能があります。 この節では、最も基本的な機能だけ
を説明します。 詳細については、sh(1) のリファレンスページをオンラインまたは『Open
System Services Shell and Utilities Reference Manual』で参照してください。
コマンド履歴バッファーを表示して内容を編集するには、組み込みコマンドである fc (修正コ
マンド) を使用します。 fc コマンドには、2 つの形式があります。 最初の形式は、次のように
なります。
fc [-e editor] [-nlr] [first] [last]
コマンドラインの編集
45
このコマンド形式を使用すると、バッファー内に格納されているコマンドラインのうち、任意
の数のコマンドラインを表示および編集できます。
•
•
•
•
-e editor 項目には、コマンドラインの編集に使用するエディター (通常は vi) を指定し
ます。 -e editor を指定しないで fc コマンドを実行すると、コマンドラインは表示され
ますが、編集はできません。
-n フラグを指定すると、バッファー内のコマンドラインが行番号なしで一覧表示されま
す。 -l フラグを指定すると、バッファー内のコマンドラインが行番号付きで一覧表示さ
れます。 行番号または行番号の範囲を指定しないと、最後に入力した 16 行が一覧表示さ
れます。
-r フラグを指定すると、バッファー内のコマンドラインが逆順で一覧表示されます。
first 項目と last 項目には、バッファー内のコマンドラインの範囲を指定します。 番
号または文字列のいずれかで指定できます。
fc コマンドのもう 1 つの形式を使用すると、 .profile スクリプトに -e フラグでデフォル
トエディターを指定できます。
たとえば、vi エディターをデフォルトのエディターに設定するには、.profile ファイルに
次の変数定義を入力します。
FCEDIT=vi
次のコマンドでは、vi がデフォルトエディターです。
fc -e - [old=new] [string]
このコマンドは、次のように指定します。
•
•
•
•
-e は、置換を行うことを指定します。
- (ハイフン) は、デフォルトエディターを使用することを示します。
old=new は、old で定義した文字列を、new で定義した文字列で置換することを指定し
ます。
string は、バッファー内のコマンドラインで、string で指定した文字列を含む直近の
コマンドラインを変更することを指定します。
シェルでは、コマンドラインを個別にシェルプロンプトで編集することもできます。この方法
では、vi エディターに類似したコマンドセットを使用できます。 この機能の詳細については、
sh(1) のリファレンスページをオンラインまたは『Open System Services Shell and Utilities
Reference Manual』で参照してください。
次に、fc の使用方法を例をあげて説明します。
コマンド履歴バッファー内のコマンドラインの表示
コマンドライン 15~18 を表示するには、次のように入力します。
$ fc -l 15 18
15 ls -la
16 pwd
17 cd /u/ben/reports
18 more sales
行番号ではなくコマンド文字列を指定する方法で、同じコマンドラインを一覧表示できます。
次に例を示します。
$ fc -l ls more
15 ls -la
16 pwd
17 cd /u/ben/reports
46
OSS シェル
18 more sales
コマンドラインの編集と実行
コマンドライン 15~18 を vi エディターで表示および編集するには、次のように入力します。
$ fc -e vi 15 18
ls -la
pwd
cd /u/ben/reports
more sales
~
~
~
~
"/tmp/sh10268.3"
4 lines
40 characters
編集が完了したら、vi :wq! コマンドを実行して、ファイルを書き込んでから閉じます。 こ
れで、ファイル内のコマンドラインが再実行されます。
コマンドラインの置換と再実行
echo hello コマンドを入力した後、hello を goodbye で置換する例を考えてみましょう。
コマンドラインの置換と再実行は、次のように入力します。
$ echo hello
hello
$ fc -e - hello=goodbye echo
echo goodbye
goodbye
シェル環境
osh を実行するたびに、OSS シェルはユーザー用の作業環境を生成し、保守します。 ユーザー
環境では、ユーザー ID、システム上で作業する場所、実行中のコマンドなどのユーザー特性が
定義されています。
ユーザーの作業環境は、次の 2 つのファイルで定義された変数に基づいて生成されます。
/etc/profile
環境変数を定義
.profile
ローカルのシェル変数を定義
/etc/profile ファイルには、すべてのユーザーを対象にしたデフォルト環境を生成するた
めの情報が格納されています。 このファイルは、システム管理者が保守します。 osh を実行
すると、最初に /etc/profile ファイル、次に .profile ファイルの内容が実行されます。
このような変数は、多くの場合「環境変数」と呼ばれます。
.profile ファイルは各ユーザーのホームディレクトリにあり、そのユーザーのシェルのみに
適用する情報が格納されています。 .profile に含まれる変数とユーザー定義は、各ユーザー
シェル環境
47
が設定および保守します。 この環境変数は、しばしば「ローカル変数」、「ローカル環境変
数」、「シェル変数」と呼ばれます。
表 3-8 は、ローカリゼーション環境変数以外の環境変数を示しています。ローカリゼーション
環境変数は、『オープン・システム・サービス 管理およびオペレーション・ガイド』を参照し
てください。 環境変数の詳細と完全なリストについては、sh(1) と environ(5) のリファレ
ンスぺージを、オンラインまたは『Open System Services Shell and Utilities Reference Manual』
で参照してください。
表 3-8 変数
48
変数
説明
CDPATH
cd に指定された引数を cd コマンドが検索する際に、検索対象となるディレク
トリを指定します。 cd の引数がヌルであるか、先頭が / (スラッシュ)、. (ドッ
ト 1 つ)、.. (ドット 2 つ) のいずれかの場合、CDPATH は無視されます。
COLUMNS
シェルの編集モードや select リストの出力で使用する編集ウィンドウの幅を
指定します。
EDITOR
デフォルトのエディターを指定します。
ENV
シェルの開始時に実行するスクリプトのパス名を指定します。 この変数は、シェ
ルが使用するエイリアスや特殊なパスが記述されたファイルを指定するためによ
く使用されます。
ERRNO
直近で失敗したシステムコールのエラーの値を指定します。 ERRNO の値は、シ
ステムによって異なり、デバッグで使用されます。
FCEDIT
fc コマンドで使用するデフォルトエディターを指定します。 (デフォルト値は
/bin/ed です。)
FPATH
関数定義を検索するパスを指定します。
HISTFILE
コマンド履歴を格納するファイルのパス名を指定します。
HISTSIZE
history ファイルに格納できる実行済みコマンドの最大数を指定します。 (デ
フォルト値は 128 です。)
HOME
cd コマンドのデフォルト値を指定します。 この変数は、各ユーザーによる変更
はできません。
IFS
コマンドやパラメーターの置換で生成されたコマンドワードを区切る場合や read
コマンドでワードを区切る場合に使用する内部フィールドセパレーター (通常
は、空白文字、タブ、改行) を指定します。 (デフォルト値はシングルスペース
です。)
LINENO
スクリプトや関数内で実行中の行の番号を返します。
LINES
select リストを出力する際の列幅を定義します。
LOGNAME
現在のユーザーの Guardian ログオン名を返します。
OLDPWD
cd コマンドの前回実行時に設定された作業ディレクトリを返します。
OPTARG
getopts コマンドが処理した最後のオプション引数の値を返します。
OPTIND
getopts コマンドが処理した最後のオプション引数のインデックスを返します。
PATH
システムがコマンドを検索、特定、実行する際に対象となるディレクトリとディ
レクトリの順序を指定します。 (デフォルト値は /bin です。)
PPID
現在のシェルプロセスの親のプロセス番号を返します。
PS1
プライマリプロンプト文字列を指定します。 (デフォルト値は $pwd: です。)
PS2
セカンダリプロンプト文字列を指定します。 (デフォルト値は > です。)
PS3
select ループ内で使用するプロンプトを指定します。 (デフォルト値は #? で
す。)
OSS シェル
表 3-8 変数 (続き)
変数
説明
PS4
実行トレースで各行の先頭に表示する文字列 (または文字) を指定します。 (デ
フォルト値は + です。)
PWD
現在の作業ディレクトリを指定します。
RANDOM
0~32767 のランダム整数を返します。 初期化するには、数値を RANDOM に割り
当てます。
REPLY
引数を指定しない場合、シェルの select 関数と read コマンドが設定する値を
使用します。
SECONDS
現在のシェルプロセスの実行時間を秒数で返します。
SHELL
シェルのパス名を指定します。 (デフォルト値は /bin/sh です。)
TERM
使用中の端末のタイプを指定します。 (デフォルト値は xterm です。)
TMOUT
0 より大きな値に設定すると、コマンド入力が停止してからシェルが終了するま
での時間を秒単位で指定します。
UTILSGE
chgrp、chmod、chown、cp、find、ls、mv、pax、rm の各コマンドについ
て、Guardian /G ファイルセットと Expand /E ファイルセットの表示方法を指
定します。
VISUAL
デフォルトのエディターを指定します。 (デフォルト値は vi です。)
次に示す環境変数は、シェルによって自動的に設定されます。したがって、値を指定する必要
はありません。
ERRNO
LINENO
LOGNAME
OLDPWD
OPTARG
OPTIND
PPID
PWD
RANDOM
REPLY
SECONDS
上記の変数に初期値 (デフォルト値) はありませんが、その値はアクティブであり、変更された
値はすぐにシェルで有効になります。
環境変数
ホームディレクトリにある /etc/profile ファイルと .profile ファイルには、ローカル環
境変数が定義されています。 この変数は、シェルだけでなく、生成されたサブシェルやサブプ
ロセスでも使用されます。 また、.profile ファイルでは、エイリアスやパスなどのユーザー
定義が設定されています。
.profile ファイルは、ユーザーのホームディレクトリに配置する必要があります。
.profile 内の定義は、/etc/profile ファイルの読み取り後に実行されます。
/etc/profile ファイルと .profile ファイルの両方で同じ変数を定義した場合に
は、.profile ファイル内の値が、/etc/profile ファイル内の値よりも優先します。
どのユーザーも、環境変数を /etc/profile と .profile で設定できます。 .kshrc ファイ
ルは、環境変数でよく使用されます。 この場合、ファイルのパス名を環境変数 ENV の引数と
して指定する必要があります。
環境変数
49
.kshrc ファイルで設定できるのは、変数、エイリアス、パスなどの環境情報のみです。 デー
タ、プログラムコード、アプリケーションなどは格納できません。
以下は、システム管理者が /etc/profile ファイルと .profile ファイルに追加できる変数
のリストです。 表 3-9 で示すデフォルト値は、/etc/profile ファイルの設定であり、シス
テム管理者による変更が可能です。
表 3-9 デフォルトの環境変数
変数
デフォルト値 (/etc/profile ファイルにのみ適用)
COLUMNS
指定なし
EDITOR
指定なし
ENV
指定なし
FCEDIT
/bin/ed
FPATH
指定なし
HISTFILE
指定なし
HISTSIZE
指定なし
HOME
ユーザーのホームディレクトリ (ユーザーはこの値を変更できません)
IFS
シングルスペース文字
LINES
指定なし
PATH
/bin:/bin/unsupported
PS1
$pwd:
PS2
>
PS3
#?
PS4
+
SHELL
/bin/sh
TERM
xterm
TMOUT
0
UTILSGE
指定なし
VISUAL
指定なし
選択すると、システム管理者が /etc/profile で設定したデフォルトの環境変数を使用でき
ます。 しかし、.profile を作成または変更することによって、エイリアス、カスタマイズし
たパス、他の変数を追加することもできます。
ホームディレクトリに .profile ファイルがすでに存在するかどうかを確認するには、ls -a
コマンドを実行してください。 このコマンドを実行すると、先頭が . (ドット 1 つ) のファイル
を含め、すべてのファイルが表示されます。 .profile が存在しない場合、vi テキストエディ
ターで作成してください (第7章 (97 ページ) を参照してください)。
.profile ファイルと定義が重複しないように、/etc/profile の内容を確認します。
環境変数の設定
一般に、環境変数は代入ステートメントで設定します。一般的な形式は、次のとおりです。
name=value
name 項目には、変数名を指定します。 value 項目には、変数に割り当てる値を指定します。
コマンドラインには、スペースを入力しないように注意してください。
50
OSS シェル
環境変数の設定には、次の 2 つの方法があります。
•
•
コマンドラインで値を設定します。この値は、現在のシェルセッションのみで有効になり
ます。
.profile ファイルを編集します。この値は、osh の実行時に有効になります。
コマンドラインでの変数の設定
コマンドラインで変数を設定するには、単に代入ステートメントを入力します。 たとえば、次
のステートメントでは、place という名前の変数を生成し、U.S.A. という値を割り当ててい
ます。
$ place='U.S.A.'
上記のステートメントを入力すると、変数 place を、割り当てた値として扱うことができま
す。 割り当てた変数がリテラル文字列ではないことを示すために、変数名の前に $ (ドル記号)
を加えて、$place とします。 この処理は、「パラメーター置換」と呼ばれています。
たとえば、次に例を示します。
$ echo $place
次の内容が表示されます。
U.S.A.
別の例として、頻繁に使用する非常に長いパス名を、変数に代入することもできます。
/usr/sales/shoes/women/retail/reports ディレクトリ用に変数 reports を定義する
には、次のように入力します。
$ reports=/usr/sales/shoes/women/retail/reports
この変数を割り当てることによって、パス名として $reports を入力することができます。
$ cd $reports
この例では、シェルは、変数 reports をパス名
/usr/sales/shoes/women/retail/reports で置換します。 pwd コマンドを入力して、
カレントディレクトリが変更されていることを確認してください。
$ pwd
/usr/sales/shoes/women/retail/reports
コマンドラインで行った変数割り当ては、現在のセッションでのみ有効になります。 したがっ
て、現在の osh プロセスが終了すると、消去されます。
.profile ファイルでの変数の設定
place と reports の各変数を恒久的に定義するには、その代入ステートメントとexport コ
マンドをユーザーの .profile ファイルに入力します。 シェルから変数をエクスポートする
と、環境変数として機能します。
たとえば、.profile ファイルに次のように入力します。
export place=U.S.A.
export reports=/usr/sales/shoes/women/retail/reports
.profile で定義した変数を使用する場合、「コマンドラインでの変数の設定」 (51 ページ)
で説明したように変数名の前に $ (ドル記号) を付け、それが変数名であることを示す必要があ
ります。 (この処理は、「パラメーター置換」と呼ばれています。)
また、恒久的な変数を定義する方法として、.profile ファイルにエイリアスとして入力する
方法もあります。
たとえば、.profile ファイルに次のように入力します。
alias place='U.S.A.'
alias reports=/usr/sales/shoes/women/retail/reports
環境変数
51
エイリアスの詳細については、「エイリアス」 (43 ページ) を参照してください。
.profile ファイルで変数を割り当てると、現在の osh プロセスが終了して新しい osh プロ
セスが開始するか、以下のコマンドで .profile を再実行するまでは、変数は有効になりませ
ん。
$ . .profile
または
$ . ./.profile
変数の値の表示
現在シェルで設定されている任意の変数の値を表示できます。 1 つの変数の値を表示するに
は、echo コマンドを使用します。一般的な形式は次のとおりです。
echo $variable
variable 項目には、値を表示する変数を指定します。 たとえば、SHELL 環境変数の値を表
示するには、次のように入力します。
$ echo $SHELL
/bin/sh
現在設定されているすべての変数の値を表示するには、set コマンドをオプションなしで実行
します。 次の例は、シェルで現在設定されている値を一覧表示しています (出力内容は環境に
よって異なります)。
$ set
EDITOR=vi
HOME=/users/chang
LOGNAME=chang
PATH=:/bin:/bin/X11
PS1=$
SHELL=/bin/sh
TERM=xterm
変数の値のクリア
現在設定されている任意の変数の値を削除 (クリア) できます。 ただし、次に示す変数の値は
クリアできません。
•
•
•
•
PATH
PS1
PS2
IFS
現在設定している変数をクリアするには、unset コマンドを使用します。 unset コマンドの
一般的な形式は、次のとおりです。
unset name
name 項目には、クリアする変数の名前を指定します。 たとえば、place という名前の変数を
生成し、U.S.A. という値を割り当てたとします。 この変数をクリアするには、次のコマンド
を入力します。
$ unset $place
52
OSS シェル
.profile ファイルの例
一般に .profile では、次の内容が設定されます。
•
•
•
•
•
•
•
•
端末の特性
検索パスなどの環境変数
シェル変数
umask で新規ファイルに割り当てる最大パーミッション
ワークステーションへのメッセージの表示
trap コマンド
コマンドエイリアス
履歴変数
.profile ファイルでは、例 3-1 の例に示すように、環境変数を設定およびエクスポートし、
シェル変数を設定します。 表 3-10 は、ファイルの各行を説明しています。
以下で示す .profile ファイルのサンプルに含まれる値 (および説明) は、ご使用のシステム
や .profile ファイルによって異なります。
例 3-1 .profile File
# Set environment variables
PATH=/bin:/usr/ucb
#PATH=/bin:/bin/unsupported:/usr/bin:/usr/ucb
MANPATH=/usr/share/man
ENV=$HOME/.profile
EDITOR=vi
FCEDIT=vi
PS1="'hostname' [!] $ "
TERM=xterm
# Export global variables
export PATH MANPATH ENV EDITOR FCEDIT PS1 TERM
# Set shell variables
set -o monitor
set -o trackall
set -o noclobber
# Set
alias
alias
alias
alias
alias
command aliases
rm='rm -i '
rename='mv '
h 'history !* | more'
l 'ls -l'
c clear
# Set history variables
HISTSIZE=40
# Set file creation permissions
umask 027
表 3-10 は、例 3-1 の各行を説明しています。
表 3-10 .profile ファイルの例の説明
行
説明
# Set environment variables
コメント行。
PATH=/bin:/usr/ucb
検索パスを指定します。 この例では、/bin を最初に検索
し、/usr/ucb を次に検索します。 注: /usr/ucb には、OSS ftp ク
ライアントが含まれます。
.profile ファイルの例
53
表 3-10 .profile ファイルの例の説明 (続き)
54
行
説明
#PATH=/bin:/bin/unsupported:
/usr/bin:/usr/ucb
コメント行。 サポート対象外のユーティリティを含む代替検索パ
スを指定できます。
MANPATH=/usr/share/man
オンラインリファレンスぺージ (man ページ) の検索パスを指定し
ます。 MANPATH 変数では、各種言語に翻訳された MAN ペー
ジが格納されたディレクトリへのパスを指定できます。
ENV=$HOME/.profile
$HOME/.profile をデフォルトのシェル環境として指定します。
EDITOR=vi
シェルプロンプトでのコマンドライン編集やファイル名の自動入
力で使用するデフォルトのエディターとして、vi を指定してい
ます。
FCEDIT=vi
fc コマンドのデフォルトエディターとして、vi を指定します。
PS1="'hostname' [!] $ "
PS1 は、シェルプロンプトを指定する変数です。デフォルト値は
$ です。 ただし、このように変数の割り当てを行うと、プロンプ
トは、hostname コマンドの出力、現在のコマンドのコマンド番
号、$ (ドル記号) の順に並べた文字列に変更されます。 たとえ
ば、システムの名前が boston、現在のコマンド番号が 30 の場
合、プロンプトは boston[30] $ になります。
TERM=xterm
使用中の端末タイプが xterm であることを示します。
# Export global variables
コメント行。
export PATH MANPATH ENV EDITOR
FCEDIT PS1 TERM
PATH、MANPATH、ENV、EDITOR、FCEDIT、PS1、TERM の各
変数の値をすべてのサブシェルにエクスポートします。
# Set shell variables
コメント行。
set -o monitor
シェルは、すべてのバックグラウンドプロセスを監視し、終了し
たバックグラウンドプロセスがあれば、完了メッセージを表示し
ます。
set -o trackall
実行するすべてのコマンドをシェルが追跡するよう指定します。
いったんコマンドを追跡すると、シェルは、コマンドの場所を保
存するので、次回同じコマンドが入力された場合に検索にかかる
時間を短縮できます。
set -o noclobber
OSS コマンドでリダイレクトを使用する場合、既存のファイルを
上書きしないように指定します。
# Set command aliases
コメント行。
alias rm='rm -i '
rm コマンドで -i オプション (ファイルの削除時にプロンプトを
表示) を指定するエイリアスとして、rm を指定します。
alias rename='mv '
rename を、mv コマンドのエイリアスとして指定します。
alias h 'history !* | more'
コマンド履歴バッファーの内容を more コマンドまでパイプする
コマンドのエイリアスとして、h を定義します。 !* 文字列は、
パイプの対象として履歴バッファー全体を指定します。
alias l 'ls -l'
ディレクトリファイルを詳細形式でリストする ls -l コマンド
のエイリアスとして、l を定義します。
alias c clear
画面をクリアする clear コマンドのエイリアスとして、c を定義
します。
# Set history variables
コメント行。
HISTSIZE=40
最近実行した 40 個のコマンドを履歴バッファーに格納するよう
に、シェルに指示します。
OSS シェル
表 3-10 .profile ファイルの例の説明 (続き)
行
説明
# Set file creation permissions
コメント行。
umask 027
すへての新規作成ファイルに割り当てる、最大パーミッションを
指定します。 このコマンドは、オーナーにはすべてのパーミッ
ション、同じグループのメンバーには読み取りと実行のパーミッ
ションを割り当て、その他のユーザーにはパーミッションを割り
当てません。
シェルがコマンドを検索する方法
コマンドを入力するたびに、OSS シェルは、ディレクトリリストを検索してコマンドを特定し
ます。 このディレクトリリストは、PATH 環境変数で指定されます。 多くのシステムでは、シ
ステム管理者は、新規ユーザー用にデフォルトの PATH ディレクトリを設定します。 ただし、
深い経験を持つユーザーの場合、これらの PATH ディレクトリの変更が必要になることがあり
ます。
PATH 変数には、検索対象ディレクトリを : (コロン) で区切ったリストが格納されています。
ユーザーがコマンドを入力すると、シェルは、このリストの順序に従ってディレクトリを検索
します。
PATH の現在の値を確認するには、echo コマンドを使用します。 たとえば、次に例を示しま
す。
$ echo $PATH
/bin:/bin/X11
これは、echo コマンドの出力であり (環境によって内容は異なります)、前の例の検索順序が
次のようになることがわかります。
•
•
/bin ディレクトリが最初に検索されます。
/bin/X11 ディレクトリが 2 番目に検索されます。
一般に、PATH は .profile ファイル内で環境変数として設定されています。
検索パスを変更したい場合は、PATH 変数に新しい値を割り当てることができます。 たとえ
ば、一部の OSS コマンドについて、自分独自のバージョンを使用するとします。 そのために、
$HOME/bin を検索パスの先頭に追加します。 現在のシェルセッションで PATH 変数の新しい
値を有効にするには、コマンドラインで次のように入力します。
$ PATH=$HOME/bin:/bin:/bin/X11
PATH 変数の新しい値を、今後生成されるすべてのセッションで有効にするには、.profile
スクリプトで PATH 変数を変更します。 osh を次回実行すると、.profile ファイルの変更内
容が有効になります。
シェルプロシージャー
シェルのコマンド実行には、コマンドラインからコマンドを実行する方法以外に、ファイルに
記述されているコマンドを読み取って実行する方法もあります。 このファイルは「シェルプロ
シージャー」または「シェルスクリプト」と呼ばれます。
シェルプロシージャーは簡単に記述することができ、作業の効率化に役立ちます。 たとえば、
実行頻度の高いコマンドを 1 つのファイルにまとめて記述しておけば、プロシージャーの名前
を入力するだけでコマンドを実行できます。 このように、シェルプロシージャーは、コマンド
ラインにコマンドをいくつも入力しなければならない反復処理で使用すると、効果を発揮しま
す。
さらに、シェルプロシージャーはテキストファイルなので、コンパイルの必要はなく、作成や
保守も簡単です。
シェルがコマンドを検索する方法
55
OSS シェルは、UNIX Korn シェルの構文を使用し、Korn シェルの機能を多数備えています。
以下に、osh シェルのプログラミング機能をいくつか紹介します。
•
•
•
•
変数に値を格納
事前定義した条件のテスト
コマンドの反復実行
プログラムに引数を渡す
シェルプロシージャーの記述と実行
シェルプロシージャーを記述して実行するには、次の手順に従ってください。
1.
2.
3.
処理を行うために必要になるコマンドを記述したファイルを作成します。 ファイルは、テ
キストファイルとして作成します。vi などの編集プログラムを使用してください。 この
ファイルには、任意のシステムコマンドやシェルコマンドを記述できます (sh(1) リファ
レンスページを、オンラインまたは『Open System Services Shell and Utilities Reference
Manual』で参照)。
chmod +x コマンドを実行して、ファイルに x (実行) ステータスを割り当てます。 たとえ
ば、chmod g+x reserve コマンドを実行すると、グループ (g) の任意のユーザーに、
reserve ファイルの実行権限が割り当てられます。 chmod の詳細については、第10章
(129 ページ) を参照してください。
名前を入力するだけで、プロシージャーが実行されます。 プロシージャーファイルがカレ
ントディレクトリにない場合は、パス名を入力してください。
以下に、ls -l コマンドの出力をサイズ順にソートする、lss という名前の簡単なシェルプロ
シージャーの例を示します。 表 3-11 は、lss の各行を説明しています。
# lss: list, sorting by size
ls -l | sort -n +4
表 3-11 シェルプロシージャーの例の説明
行
説明
#lss: list, sorting by size
プロシージャーの目的を説明するコメント行です。
ls -l | sort -n +4
シェルプロシージャー本体です。 このプロシージャーは、ディレクト
リ内のファイルを一覧表示 (ls -l) します。 次に、ls -l コマンドの
出力が、sort コマンドにパイプで渡されます ( | sort -n +4)。 こ
のコマンドは、ls -l の出力の最初の 4 つの列をスキップし、5 番目
の列 (ファイルサイズ列) を数値順にソートしてから、標準出力ファイ
ルに行を書き込みます。
コマンドラインに lss と入力するだけで、lss プロシージャーが実行されます。 以下に、シ
ステム出力の例を示します。
$ lss
56
-rw-rw-rw-
1 larry
system
65 Mar 13 14:46 file3
-rw-rw-rw-
1 larry
system
75 Mar 13 14:45 file2
-rw-rw-rw-
1 larry
system
101 Mar 13 14:44 file1
OSS シェル
第4章 OSS のコマンドとユーティリティ
この章では、OSS のエンドユーザー向けコマンドとユーティリティ、ファイル形式、各種ファ
イルについて説明します。 (システム管理者専用のコマンドについては説明しません。) また、
各コマンドのリファレンスぺージも参照してください。
ユーザーコマンドとユーティリティの詳細については、POSIX や UNIX コマンドに関する市販
の書籍を参照してください。 ただし、それらの書籍で説明されているコマンドやユーティリ
ティ (およびコマンドオプション) の中には、OSS 環境でサポートされていないものもありま
す。 さらに、Guardian 環境での OSS コマンドの使用方法については記載されていません。
コマンドの使用法
マニュアルでは、OSS コマンド名は、コマンド名とその後に番号をカッコで囲んだ 2 つの部分
からなる形式で記載されることがあります。
grep(1)
一部の関数名には、カッコ内に番号がなく空の場合があります。
exec()
コマンドラインでは、コマンド名のみを指定し、 番号は指定しません。
この番号は、従来の UNIX リファレンスマニュアル内で、コマンドが記載されているリファレ
ンスページの章番号を示しています。
UNIX リファレンスマニュアルのリファレンスページは、通常、関数順に編成されています。
以下で示すように、OSS もこの編成に従っています。
章
内容
OSS マニュアル
(1)
ユーザーコマンド
『OSS Shell and Utilities Reference Manual』
(2)
関数
『OSS System Calls Reference Manual』
(3)
関数
『OSS Library Calls Reference Manual』
(4)
ファイル形式とデータ構造
『OSS Shell and Utilities Reference Manual』
『OSS System Calls Reference Manual』
『OSS Library Calls Reference Manual』
(5)
その他トピックと環境変数
『OSS Shell and Utilities Reference Manual』
『OSS System Calls Reference Manual』
『OSS Library Calls Reference Manual』
(6)
ゲーム
OSS では提供なし
(7)
特殊ファイル
『OSS System Calls Reference Manual』
(8)
管理コマンド
『OSS Shell and Utilities Reference Manual』
本書では、OSS ユーザーコマンドとユーティリティについて説明します。詳細は、『Open
System Services Shell and Utilities Reference Manual』 (従来の UNIX リファレンスマニュアル
の第 1 章) を参照してください。
オンラインリファレンスページ
各コマンドとユーティリティの詳細な説明は、『Open System Services Shell and Utilities
Reference Manual』とオンラインリファレンスページ (man ページ) に記載されています。 各
リファレンスページには、コマンドやユーティリティが 1 つずつ記載されています。
コマンドの使用法
57
man コマンド
オンラインリファレンスページには、man コマンドでアクセスできます。 man コマンドの基本
的な形式は次のとおりです。
man commandname
ここで、commandname は、参照したいコマンドまたはユーティリティの名前です。 たとえ
ば、grep コマンドのリファレンスページを表示するには、次のように入力します。
man grep
リファレンスページの内容が 1 画面よりも長い場合は、リターンキー、次のページキー、矢印
キーでスクロールできます。
man コマンドには、ソースと出力のデフォルト設定を変更するオプションがあります。 man コ
マンドとそのオプションの詳細は、man(1) コマンドのリファレンスページを、オンラインま
たは『Open System Services Shell and Utilities Reference Manual』で参照してください。
コマンドの情報を表示するコマンドには、whatis と apropos の 2 つがあります。
whatis コマンド
whatis コマンドは、whatis の引数として指定した文字列を名前に含むコマンドおよび関数
と、各コマンドの主な目的の簡単な説明をリストします。 whatis コマンドの基本的な形式は
次のとおりです。
whatis argument
たとえば、man という文字列が名前に含まれているすべてのコマンドと関数の情報をリストす
るには、次のように入力します。
whatis man
このコマンドは、次の情報を表示します。
command(1)
Treats command arguments as a single command. (コマンド引数を 1 つ
のコマンドとして扱います。)
man(1)
Displays reference pages. (リファレンスページを表示します。)
whatis コマンドは、リファレンスページデータベース内で、whatis の引数で指定された文
字列を名前に含むすべてのエントリーの情報を返します。 上の例では、man は whatis の引
数であり、返されるエントリー内には、文字列 man を名前に含むコマンド名が示されます。
apropos コマンド
apropos コマンドは、apropos コマンドの引数として指定された文字列を名前または説明に
含むすべてのコマンドまたは関数と、簡単な説明を表示します。 たとえば、次に例を示しま
す。
apropos more
次の内容が返されます。
58
add_define(1)
Creates one or more DEFINEs for the current OSS shell. (1 つまたは複数の
DEFINE を現在の OSS シェル用に作成します。)
del_define(1)
Deletes one or more DEFINEs for the current OSS shell. (現在の OSS シェル用に
設定した 1 つまたは複数の DEFINE を削除します。)
more(1)
Displays a file one screenful at a time. (ファイルを 1 画面ずつ表示します。)
paste(1)
Joins lines from one or more files. (1 つまたは複数のファイルの行を結合しま
す。)
OSS のコマンドとユーティリティ
この例で返されるすべてのエントリーには、コマンド名または説明のいずれかに文字列 more
が含まれています。
コマンドの構文
OSS コマンドの構文は、一般的に次の形式です。
commandname -flags object
commandname はコマンドの名前、-flags はコマンドのフラグ、object はコマンドの実行
対象となるオブジェクト (通常は、ファイル、プロセス、ディレクトリ、データ) です。
たとえば、cp コマンドは、ファイルやディレクトリをコピーします。 次は、cp コマンドの例
です。
cp -i filename newfilename
この例では、cp はコマンドの名前、-i はコマンドを会話型で実行することを示すフラグ、
filename はコピーするファイルの名前、newfilename はコピーに指定する名前です。
この例よりも指定するフラグの数が多い場合、複数のオブジェクトを指定する場合、パイプな
どの機能を使用する場合なども多く、コマンド構文はかなり複雑になります。 しかし、ほとん
どのコマンドは、コマンド名の後にフラグとオブジェクトを指定するという形式になります。
OSS のユーザーコマンドとユーティリティ
以下では、オープンシステムサービスでサポートされるエンドユーザー向けのコマンドとユー
ティリティを一覧表示します。 (この表には、システム管理者専用のコマンドは含まれていま
せん。) ここで説明するエンドユーザー向けのコマンドの詳細は、オンラインまたは『Open
System Services Shell and Utilities Reference Manual』のリファレンスページを参照してくだ
さい。
add_define(1)
1 つまたは複数の DEFINE を現在の OSS シェル用に作成します (シェル組み込みコ
マンド)。
alias(1)
エイリアスをリストまたは定義します (シェル組み込みコマンド)。
apropos(1)
コマンドをキーワード別にリストします。
ar(1)
アーカイブとライブラリを作成および管理します。
at(1)
コマンドの実行を、これ以降の指定の時刻にスケジュールします。
awk(1)、nawk(1)
テキストを操作し、ファイル内でパターンマッチングを行います。
banner(1)
大きなバナーを作成します。
basename(1)
パス名の、指定の部分を返します。
batch(1)
その時点以降の、システムが指定した時刻にコマンドを実行します。
bc(1)
任意精度の算術言語プロセッサーを提供します。
bg(1)
ジョブをバックグラウンドに移動します (シェル組み込みコマンド)。
break(1)
囲んでいるループから抜け出します (シェル組み込みコマンド)。
c89(1)
標準 C プログラムをコンパイルします。
cal(1)
カレンダーを表示します。
cancel(1)
ラインプリンターのスプールキューにあるジョブ要求を削除します。
cat(1)
ファイルを連結または表示します。
cd(1)
現在の作業ディレクトリを変更します。
chgrp(1)
ファイルまたはディレクトリのグループ所有権を変更します。
chmod(1)
パーミッションコードを変更します。
コマンドの構文
59
60
chown(1)
ファイルまたはディレクトリのオーナーを変更します。
cksum(1)
ファイルのチェックサムとバイト数を表示します。
clear(1)
端末の画面をクリアします。
cmp(1)
2 つのファイルを比較します。
cobol(1)
標準 COBOL85 プログラムをコンパイルします。
comm(1)
2 つのソート済みファイルを比較します。
command(1)
コマンド引数を単純なコマンドとして扱います。
compress(1)
データを圧縮します。
continue(1)
囲んでいるループの次の繰り返しを再開します (シェル組み込みコマンド)。
cp(1)
ファイルをコピーします。
cpio(1)
アーカイブストレージとの間でファイルをコピーします。
crontab(1)
コマンドのスケジュールを cron にサブミットします。
csplit(1)
コンテキストに基づいてファイルを分割します。
cut(1)
ファイルの各行から、選択した部分を表示します。
date(1)
日付を表示または設定します。
dc(1)
電卓機能を提供します。
dd(1)
ファイルを変換およびコピーします。
del_define(1)
現在の OSS シェル用に設定した 1 つまたは複数の DEFINE を削除します (シェル組
み込みコマンド)。
df(1)
ファイルセットの統計を表示します。
diff(1)
テキストファイルを比較します。
dircmp(1)
2 つのディレクトリを比較します。
dirnam(1)
パス名の、指定の部分を返します。
dspcat(1)
メッセージカタログのすべてまたは一部を表示します。
dspmsg(1)
メッセージカタログから標準出力ファイルにメッセージを書き込みます。
du(1)
ディスク使用量のサマリーを表示します。
echo(1)
引数を標準出力ファイルに書き込みます (シェル組み込みコマンド)。
ed(1)
ファイル行を行単位で編集します。
egrep(1)
ファイル内でパターンを検索します。
env(1)
環境変数を表示または設定します。
eval(1)
引数を読み取ってコマンドを実行します (シェル組み込みコマンド)。
ex(1)
ファイル内の行を会話方式で編集します。
exec(1)
コマンドを実行します (シェル組み込みコマンド)。
exit(1)
シェルを終了します (シェル組み込みコマンド)。
expand(1)
タブ文字またはスペース文字を置換します。
export(1)
変数をエクスポートします (シェル組み込みコマンド)。
expr(1)
引数を式として評価します。
false(1)
ゼロ以外の終了値を返します。
OSS のコマンドとユーティリティ
fc(1)
これまでにシェルに入力されたコマンドをリスト、編集、再実行します (シェル組み
込みコマンド)。
fg(1)
指定したジョブをフォアグラウンドに移動します (シェル組み込みコマンド)。
fgrep(1)
ファイル内でパターンを検索します。
file(1)
ファイルタイプを特定します。
find(1)
式と一致するファイルを探します。
flex(1)、lex(1)
C 言語の字句アナライザーを生成します。
fold(1)
ファイル内の行を折り返します。
ftp(1)
ローカル OSS ファイルシステムとリモートホスト間でファイルを転送します。
gencat(1)
メッセージカタログを作成および変更します。
genxlt(1)
コードセット変換テーブルを生成します。
getconf(1)
システム構成変数値を表示します。
getopts(1)
コマンドラインのフラグと引数を構文解析します (シェル組み込みコマンド)。
gname(1)
OSS ファイル名に対応する Guardian のファイル名を表示します。
grep(1)
ファイル内でパターンを検索します。
gtacl(1)
OSS 環境から、Guardian 環境でプロセスを実行します。
hash(1)
ユーティリティの位置をシェルが記憶する方法を操作します (シェル組み込みコマン
ド)。
head(1)
ファイルの先頭を表示します。
history(1)
これまでに実行したコマンドを一覧表示します (履歴リスト)。シェル組み込みコマ
ンドです。
iconv(1)
エンコードされた文字を別のコードセットに変換します。
id(1)
ユーザーのシステム ID を表示します。
info_define(1)
既存の DEFINE の属性と値を表示します (シェル組み込みコマンド)。
ipcrm(1)
メッセージキュー、セマフォ識別子、共有メモリ ID を削除します。
ipcs(1)
プロセス間通信 (IPC) 機能のステータスを報告します。
jobs(1)
ジョブに関する情報をリストします (シェル組み込みコマンド)。
join(1)
2 つのファイルの行を結合します。
kill(1)
実行中のプロセスにシグナルを送信します。
sh(1)、ksh(1)
コマンドインタープリターシェルです。
let(1)
評価のための認証式を表します (シェル組み込みコマンド)。
lex(1)、flex(1)
C 言語の字句アナライザーを生成します。
line(1)
標準入力ファイルから 1 行読み取り、標準出力ファイルにコピーします。
ln(1)
ファイルをリンクします。
locale(1)
ロケールの情報を表示します。
localedef(1)
ロケールおよび文字マップファイルを処理します。
logger(1)
システムログにエントリーを作成します。
logname(1)
ユーザーのログイン名を表示します。
lp(1)
ファイルをプリンターに送信します。
OSS のユーザーコマンドとユーティリティ
61
62
lpstat(1)
ラインプリンターとプリントジョブステータスの情報を表示します。
ls(1)
ファイルの統計をリストおよび生成します。
make(1)
プログラムの依存関係を管理します。
man(1)
リファレンスページを表示します。
mkcatdefs(1)
メッセージソースファイルをプリプロセスします。
mkdir(1)
新しいディレクトリを作成します。
mkfifo(1)
FIFO 特殊ファイルを作成します。
more(1)
ファイルを 1 画面ずつ表示します。
mv(1)
ファイルとディレクトリを移動します。
nawk(1)、awk(1)
テキストを操作し、ファイル内でパターンマッチングを行います。
newgrp(1)
標準の終了値を返します。
nice(1)
異なる優先順位でコマンドを実行します。
nld(1)
1 つまたは複数の再リンク可能オブジェクトから実行可能なオブジェクトファイル
を生成します。
nm(1)
オブジェクトファイルのシンボルテーブルを表示します。
nmcobol(1)
ネイティブ COBOL85 プログラムをコンパイルします。
noft(1)
TNS/R ネイティブオブジェクトファイルから情報を読み取って表示します。
nohup(1)
ユーティリティを実行し、ハングアップを無視します。
od(1)
ファイルの内容を標準出力ファイルに書き込みます。
pack(1)
ファイルを圧縮します。
paste(1)
1 つまたは複数のファイルの行を結合します。
patch(1)
変更をファイルに適用します。
pathchk(1)
パス名をチェックします。
pax(1)
アーカイブファイルの抽出、書き込み、リストを行います。
pname(1)
Guardian ファイル名に対応する OSS のファイル名を表示します。
pr(1)
ファイルを標準出力ファイルに書き込みます。
print(1)
シェル出力を提供します (シェル組み込みコマンド)。
printf(1)
フォーマットされた出力を書き込みます。
ps(1)
現在のプロセスのステータスを表示します。
pwd(1)
カレントディレクトリのパス名を表示します。
read(1)
標準入力ファイルから 1 行読み取ります (シェル組み込みコマンド)。
readonly(1)
指定された名前を読み取り専用にします (シェル組み込みコマンド)。
reset_define(1)
DEFINE の属性を初期設定に戻します (シェル組み込みコマンド)。
return(1)
シェル関数を、呼び出し元のスクリプトに戻します (シェル組み込みコマンド)。
rm(1)
ファイルやディレクトリを削除 (リンク解除) します。
rmdir(1)
ディレクトリを削除します。
rsh(1)
指定されたコマンドをリモート実行します。
run(1)
Guradian 属性を持つプロセスを実行します。
OSS のコマンドとユーティリティ
runcat(1)
mkcatdefs ユーティリティを起動し、結果のメッセージをパイプ処理します。
runv(1)
Visual Inspect デバッガーでプロセスを実行します。
sed(1)
ストリームラインエディターを提供します。
set(1)
シェルパラメーターを設定します (シェル組み込みコマンド)。
set_define(1)
使用中の属性セット内で DEFINE 属性の値を設定します (シェル組み込みコマンド)。
sh(1)、ksh(1)
コマンドインタープリターシェルです。
shift(1)
位置パラメーターを設定します (シェル組み込みコマンド)。
show_define(1)
属性の値を表示します (シェル組み込みコマンド)。
sleep(1)
指定の期間だけ実行を中断します。
sort(1)
ファイルをソートまたはマージします。
split(1)
ファイルを分割します。
strings(1)
ファイル内でプリント可能な文字列を検索します。
strip(1)
実行可能ファイルから、不要な情報を削除します。
stty(1)
端末の特性を設定します。
su(1)
ユーザー ID を一時的に置換し、パスワードを変更します。
sum(1)
ファイルのチェックサムとブロック数を表示します。
tail(1)
指定の位置からファイルを書き込みます。
tar(1)
テープアーカイブを操作します。
tee(1)
プログラム出力を表示し、ファイルにコピーします。
telnet(1)
リモートホストにログインします。
test(1)
条件式を評価します。
time(1)
コマンドの実行時間を測定します。
times(1)
コマンドの実行時間を測定します (シェル組み込みコマンド)。
touch(1)
ファイルのアクセス時間および変更時間を更新します。
tr(1)
文字を変換します。
trap(1)
コマンドを指定し、シェルによる実行を通知します (シェル組み込みコマンド)。
true(1)
標準の終了値を返します。
tty(1)
端末デバイスのパス名を返します。
type(1)
ファイルタイプの説明を書き込みます。
typeset(1)
シェルパラメーターの属性と値を設定します (シェル組み込みコマンド)。
umask(1)
ファイルモード作成マスクを設定します (シェル組み込みコマンド)。
unalias(1)
エイリアスリストから名前を削除します (シェル組み込みコマンド)。
uname(1)
オペレーティングシステムに関する情報を表示します。
uncompress(1)
データを展開します。
unexpand(1)
タブ文字とスペース文字を置換します (シェル組み込みコマンド)。
uniq(1)
ファイル内にある反復行を削除します。
unpack(1)
pack コマンドで圧縮したファイルを展開します。
unset(1)
パラメーターの値を消去します (シェル組み込みコマンド)。
OSS のユーザーコマンドとユーティリティ
63
uudecode(1)
バイナリファイルをデコードします。
uuencode(1)
バイナリファイルをエンコードします。
vi(1)
ファイルを編集します (スクリーンエディター)。
vproc(1)
コマンドとユーティリティのバージョン情報を表示します。
wait(1)
プロセスの終了を待機します (シェル組み込みコマンド)。
wall(1)
すべてのユーザーにメッセージを送信します。
wc(1)
行、ワード、文字、バイトの数をカウントします。
whatis(1)
コマンドの機能の説明を示します。
whence(1)
名前をコマンドとして使用した場合に、名前を解釈する方法を指定します (シェル組
み込みコマンド)。
who(1)
現在ログインしているユーザーを示します。
wr(1)
Web 報告のログ分析およびレポートユーティリティを記述します。
xargs(1)
引数リストを作成し、コマンドを実行します。
yacc(1)
入力から LR(1) 構文解析プログラムを生成します。
zcat(1)
データを圧縮および展開します。
コマンドとユーティリティ (ユーザー機能別)
以下では、OSS コマンドとユーティリティを機能別に一覧表示しています。 一部のコマンド
は、複数のカテゴリーに分類されています。 この一覧は、すべてのコマンドを網羅しているわ
けではなく、使用頻度の高いコマンドをまとめています。
アプリケーション開発
次の表は、アプリケーション開発で使用する OSS コマンドおよびユーティリティです。
c89(1)
標準 C プログラムをコンパイルします。
cobol(1)
標準 COBOL85 プログラムをコンパイルします。
flex(1)
C 言語の字句アナライザーを生成します。
nld(1)
1 つまたは複数の再リンク可能オブジェクトから実行可能なオブジェクトファイルを
生成します。
nm(1)
オブジェクトファイルのシンボルテーブルを表示します。
nmcobol(1)
ネイティブ COBOL85 プログラムをコンパイルします。
noft(1)
TNS/R ネイティブオブジェクトファイルから情報を読み取って表示します。
strip(1)
実行可能ファイルから、不要な情報を削除します。
whatis(1)
コマンドの機能の説明を示します。
アーカイブ
次の表は、アーカイブで使用する OSS コマンドおよびユーティリティです。
64
ar(1)
アーカイブとライブラリを作成および管理します。
cpio(1)
アーカイブストレージとの間でファイルをコピーします。
pax(1)
アーカイブファイルの抽出、書き込み、リストを行います。
OSS のコマンドとユーティリティ
pinstall(1)
OSS ファイルを OSS ファイル階層構造にインストールする Guardian プロセスを
起動します (これは、実際には TACL コマンドです)。
tar(1)
テープアーカイブを操作します。
ファイルの表示
次の表は、ファイルの表示で使用する OSS コマンドとユーティリティです。
cut(1)
ファイルの各行から、選択した部分を表示します。
gname(1)
OSS ファイル名に対応する Guardian のファイル名を表示します。
head(1)
ファイルの先頭を表示します。
line(1)
標準入力ファイルから 1 行読み取り、標準出力ファイルにコピーします。
more(1)
ファイルを 1 画面ずつ表示します。
pname(1)
Guardian ファイル名に対応する OSS のファイル名を表示します。
pr(1)
ファイルを標準出力ファイルに書き込みます。
printf(1)
フォーマットされた出力を書き込みます。
ファイルとディレクトリ
次の表は、ファイルとディレクトリの操作で使用する OSS コマンドとユーティリティです。
basename(1)
パス名の、指定の部分を返します。
cat(1)
ファイルを連結または表示します。
cksum(1)
ファイルのチェックサムとバイト数を表示します。
compress(1)
データを圧縮します。
cp(1)
ファイルをコピーします。
csplit(1)
コンテキストに基づいてファイルを分割します。
dd(1)
ファイルを変換およびコピーします。
df(1)
ファイルセットの統計を表示します。
dircmp(1)
2 つのディレクトリを比較します。
dirnam(1)
パス名の、指定の部分を返します。
expand(1)
タブ文字またはスペース文字を置換します。
file(1)
ファイルタイプを特定します。
fold(1)
ファイル内の行を折り返します。
join(1)
2 つのファイルの行を結合します。
ln(1)
ファイルをリンクします。
ls(1)
ファイルの統計をリストおよび生成します。
mkdir(1)
新しいディレクトリを作成します。
mkfifo(1)
FIFO 特殊ファイルを作成します。
mv(1)
ファイルとディレクトリを移動します。
pack(1)
ファイルを圧縮します。
paste(1)
1 つまたは複数のファイルの行を結合します。
コマンドとユーティリティ (ユーザー機能別)
65
patch(1)
変更をファイルに適用します。
pathchk(1)
パス名をチェックします。
pwd(1)
カレントディレクトリのパス名を表示します。
readonly(1)
指定した名前を読み取り専用にします。
rm(1)
ファイルやディレクトリを削除 (リンク解除) します。
rmdir(1)
ディレクトリを削除します。
split(1)
ファイルを分割します。
sum(1)
ファイルのチェックサムとブロック数を表示します。
tail(1)
指定の位置からファイルを書き込みます。
umask(1)
ファイルモード生成マスクを設定します。
uncompress(1)
データを展開します。
unexpand(1)
ファイル内のタブ文字またはスペース文字を置換します。
unpack(1)
pack コマンドで圧縮したファイルを展開します。
zcat(1)
データを圧縮および展開します。
相互運用性のためのコマンド
次の表は、OSS 環境と Guardian 環境間の相互運用性を実現する目的でよく使用されるコマン
ドとユーティリティを示しています。 osh (TACL コマンド) を除き、すべて OSS コマンドで
す。
add_define(1)
1 つまたは複数の DEFINE を現在の OSS シェル用に作成します。
del_define(1)
現在の OSS シェル用に設定した 1 つまたは複数の DEFINE を削除します。
gtacl(1)
OSS 環境から、Guardian 環境でプロセスを実行します。
info_define(1)
既存の DEFINE の属性と値を表示します。
osh(1)
Guardian 環境から、OSS 環境でプロセスを実行します。
reset_define(1)
DEFINE 属性を初期設定に戻します。
run(1)
Guradian 属性を持つプロセスを実行します。
set_define(1)
使用中の属性セットで DEFINE 属性の値を設定します。
show_define(1)
属性の値を表示します。
プリントとフォーマット
次の表は、プリントとフォーマットで使用する OSS コマンドおよびユーティリティです。
66
cancel(1)
ラインプリンターのスプールキューにあるジョブ要求を削除します。
jobs(1)
プリントジョブに関する情報を表示します。
kill(1)
スプールキューからプリントジョブを削除します。
lp(1)
ファイルをプリンターに送信します。
lpstat(1)
ラインプリンターとプリントジョブステータスの情報を表示します。
print(1)
シェル出力を行います。
OSS のコマンドとユーティリティ
プロセス管理
次の表は、プロセス管理で使用する OSS コマンドおよびユーティリティを示しています。
at(1)
その時点以降の、指定の時刻にジョブを実行します。
batch(1)
オペレーティングシステムが指定した時刻にジョブを実行します。
bg(1)
ジョブをバックグラウンドに移動します。
break(1)
囲んでいるループから抜け出します。
continue(1)
囲んでいるループの次の反復を再開します。
crontab(1)
コマンドのスケジュールを cron プログラムにサブミットします。
eval(1)
引数を読み取ってコマンドを実行します。
exec(1)
コマンドを実行します。
fc(1)
これまでにシェルに入力されたコマンドをリスト、編集、再実行します。
fg(1)
指定したジョブをフォアグラウンドで実行します。
ipcs(1)
プロセス間通信 (IPC) 機能のステータスを報告します。
kill(1)
実行中のプロセスにシグナルを送信します。
make(1)
プログラムの依存関係を管理します。
nice(1)
異なる優先順位でコマンドを実行します。
nohup(1)
ユーティリティを実行し、ハングアップを無視します。
ps(1)
現在のプロセスのステータスを表示します。
return(1)
シェル関数を、呼び出し元のスクリプトに戻します。
runv(1)
Visual Inspect デバッガーでプロセスを実行します。
sleep(1)
指定の期間だけ実行を中断します。
wait(1)
プロセスが完了するまで待機します。
xargs(1)
引数リストを作成し、コマンドを実行します。
yacc(1)
入力から LR(1) 構文解析プログラムを生成します。
リモートアクセス
次の表は、リモートアクセスで使用する OSS コマンドとユーティリティを示しています。
ftp(1)
ローカル OSS ファイルシステムとリモートホスト間でファイルを転送します。
rsh(1)
指定されたコマンドをリモート実行します。
telnet(1)
リモートホストにログインします。
検索、ソート、比較、リスト
次の表は、検索、ソート、比較、リストの各操作を行う OSS コマンドとユーティリティを示し
ています。
apropos(1)
コマンドをキーワード別にリストします。
awk(1)
テキストを操作し、ファイル内でパターンマッチングを行います。
cmp(1)
2 つのファイルを比較します。
コマンドとユーティリティ (ユーザー機能別)
67
diff(1)
テキストファイルを比較します。
find(1)
式と一致するファイルを探します。
grep、egrep、fgrep(1)
ファイル内でパターンを検索します。
man(1)
リファレンスページを表示します。
od(1)
ファイルの内容を標準出力ファイルに書き込みます。
sort(1)
ファイルをソートまたはマージします。
strings(1)
ファイル内でプリント可能な文字列を検索します。
uniq(1)
ファイル内にある反復行を削除します。
wc(1)
行、ワード、文字、バイトの数をカウントします。
whatis(1)
コマンドの機能の説明を示します。
セキュリティとパーミッション
次の表は、ユーザーおよびグループのセキュリティとパーミッションの操作で使用する OSS コ
マンドおよびユーティリティを示しています。
chgrp(1)
ファイルまたはディレクトリのグループ所有権を変更します。
chmod(1)
パーミッションコードを変更します。
chown(1)
ファイルまたはディレクトリのオーナーを変更します。
getacl(1)
ディレクトリ、通常ファイル、先入れ先出し (FIFO) 特殊ファイル、バインドされた
AF_UNIX ソケットなどのファイルについて、オーナー、グループ、ACL などのエント
リーを表示します。 OSS ACL は、OSS ファイルセットの Version 3 以降のバージョンで
のみサポートされています。 ACL の詳細については、acl(5) リファレンスページを、
オンラインまたは『Open System Services System Calls Reference Manual』で参照してく
ださい。
setacl(1)
ファイルのアクセス制御リスト (ACL) を変更します。 OSS ACL は、OSS ファイルセット
の Version 3 以降のバージョンでのみサポートされています。 ACL の詳細については、
acl(5) リファレンスページを、オンラインまたは『Open System Services System Calls
Reference Manual』で参照してください。
システム管理および構成情報
次の表は、システム管理および構成情報で使用する OSS コマンドおよびユーティリティを示し
ています。
68
getconf(1)
システム構成変数値を表示します。
hash(1)
ユーティリティの位置をシェルが記憶する方法を操作します。
localedef(1)
ロケールおよび文字マップファイルを処理します。
set(1)
シェルパラメーターを設定します。
stty(1)
端末の特性を設定します。
tty(1)
端末デバイスのパス名を返します。
typeset(1)
シェルパラメーター用に属性と値を設定します。
uname(1)
オペレーティングシステムに関する情報を表示します。
unset(1)
パラメーターの値を消去します。
vproc(1)
コマンドとユーティリティのバージョン情報を返します。
OSS のコマンドとユーティリティ
テキストエディター
次の表は、テキスト編集で使用する OSS コマンドおよびユーティリティを示しています。
ed(1)
ファイル行を行単位で編集します。
ex(1)
ファイル内の行を会話方式で編集します。
vi(1)
ファイルを編集します (スクリーンエディター)。
ユーザー情報
次の表は、ユーザーに関する情報の表示に使用する OSS コマンドとユーティリティを示してい
ます。
date(1)
日付を表示または設定します。
id(1)
ユーザーのシステム ID を表示します。
logname(1)
ユーザーのログイン名を表示します。
who(1)
現在ログインしているユーザーを示します。
シェル組み込みコマンド
シェル組み込みコマンドは、OSS シェルによって実行される OSS コマンドです。 すべての処
理がシェルプロセス内で実行され、シェル組み込みコマンド用にサブシェルプロセスは生成さ
れません。
次の表は、シェル組み込みコマンドの一覧です。 (HP が提供するシェル組み込みコマンドの拡
張版には、「HP の拡張版」と記載されています。)
add_define(1)
1 つまたは複数の DEFINE を現在の OSS シェル用に作成します (HP の拡張版)。
alias(1)
エイリアスをリストまたは定義します。
bg(1)
ジョブをバックグラウンドに移動します。
break(1)
囲んでいるループから抜け出します。
cd(1)
現在の作業ディレクトリを変更します。
continue(1)
囲んでいるループの次の反復を再開します。
del_define(1)
現在の OSS シェルの DEFINE を 1 つまたは複数削除します (HP の拡張版)。
echo(1)
引数を標準出力ファイルに書き込みます。 (オープンシステムサービスには、通常の
形式とシェル組み込み形式の echo が含まれています。)
eval(1)
引数を読み取ってコマンドを実行します。
exec(1)
コマンドを実行します。
exit(1)
シェルを終了します。
export(1)
変数をエクスポートします。
fc(1)
これまでにシェルに入力されたコマンドをリスト、編集、再実行します。
fg(1)
指定したジョブをフォアグラウンドで実行します。
getopts(1)
コマンドラインのフラグと引数を構文解析します。
hash(1)
ユーティリティの位置をシェルが記憶する方法を操作します。
history(1)
これまでに実行したコマンドを一覧表示します (履歴リスト)。
info_define(1)
既存の DEFINE の属性と値を表示します (HP の拡張版)。
シェル組み込みコマンド
69
jobs(1)
ジョブに関する情報を表示します。
kill(1)
実行中のプロセスにシグナルを送信します。 (オープンシステムサービスには、通常
の形式とシェル組み込み形式の kill が含まれています。)
let(1)
評価のための認証式を表します。
print(1)
シェル出力を行います。
pwd(1)
カレントディレクトリのパス名を表示します。 (オープンシステムサービスには、通
常の形式とシェル組み込み形式の pwd が含まれています。)
read(1)
標準入力ファイルから 1 行読み取ります。 (オープンシステムサービスには、通常の
形式とシェル組み込み形式の read が含まれています。)
readonly(1)
指定した名前を読み取り専用にします。
reset_define(1)
DEFINE 属性を初期設定に戻します (HP の拡張版)。
return(1)
シェル関数を、呼び出し元のスクリプトに戻します。
set(1)
シェルパラメーターを設定します。
set_define(1)
使用中の属性セットで DEFINE 属性の値を設定します (HP の拡張版)。
shift(1)
位置パラメーターを設定します。
show_define(1)
属性の値を表示します (HP の拡張版)。
times(1)
コマンドの実行時間を測定します。
trap(1)
コマンドを指定し、そのコマンドがシェルによって実行されるとシグナルを送りま
す。
type(1)
ファイルタイプの説明を書き込みます。
typeset(1)
シェルパラメーター用に属性と値を設定します。
umask(1)
ファイルモード生成マスクを設定します。
unalias(1)
名前をエイリアスリストから削除します。
unexpand(1)
タブ文字またはスペース文字を置換します。
unset(1)
パラメーターの値を消去します。
wait(1)
プロセスが完了するまで待機します。
whence(1)
名前をコマンドとして使用した場合に、名前を解釈する方法を指定します。
一部のシェル組み込みコマンドには、これに対応する通常の OSS コマンドが同じ名前で存在し
ます。 シェル組み込みバージョンと OSS バージョンでは、動作内容が異なる場合や、サポー
トするフラグが異なる場合があります。
シェル組み込みバージョンが、デフォルトのバージョンです。 OSS バージョンのコマンドを実
行するには、次のように指定します。
/bin/command_name
OSS バージョンをデフォルトに設定するには、.profile ファイル内でエイリアスを作成しま
す。
次のシェル組み込みコマンドには、OSS バージョンもあります。
•
•
•
•
70
echo(1)
kill(1)
pwd(1)
read(1)
OSS のコマンドとユーティリティ
ファイルフォーマットコマンド
フォーマットを操作するコマンドです。 ここで紹介しているユーザーコマンドの詳細の詳細
は、オンラインまたは『Open System Services Shell and Utilities Reference Manual』のリファ
レンスページを参照してください。
charmap(4)
文字記号を文字のエンコーディングとして定義します。
cpio(4)
アーカイブストレージとの間でファイルをコピーします。
local(4)
ロケールを記述する 1 つまたは複数のカテゴリーを含みます。
tar(4)
テープアーカイブフォーマットファイルを操作します。
ファイルフォーマットコマンド
71
72
第5章 OSS 環境と Guardian 環境の相互運用性
ユーザーレベルでは、OSS 環境と Guardian 環境の相互運用性には、次に示すようにいくつか
のタイプがあります。
•
•
•
OSS 環境から発行されるユーザーコマンドには、Guardian 環境において、ファイルなど
のオブジェクトに対して実行可能なものがあります。 たとえば、OSS の cp コマンドは
OSS ファイルを Guardian 環境にコピーする操作と、Guardian ファイルを OSS 環境にコ
ピーする操作に使用できます。
OSS ユーザープロセスを Guardian 環境から開始するには、osh ユーティリティを使用し
ます。 たとえば、TACL プロンプトで osh -c ls コマンドを入力すると、OSS 環境の
ファイルを一覧表示できます。
Guardian プロセスを OSS 環境から開始するには、gtacl コマンドを使用します。 たとえ
ば、OSS 環境から次のコマンドを発行します。
gtacl -c ‘fup secure filename “security-string”’
これにより、Guardian ファイルのパーミッションを変更できます。
OSS と Guardian のコマンドやユーティリティは、すべてに相互運用性があるわけではなく、
ネイティブ以外の環境で使用できる機能の範囲もそれぞれ異なります。 また、2 つの環境間で
のファイル名やディレクトリ名の変換にも制限があります。
プログラムレベルでの相互運用性については、『オープンシステムサービス プログラマーズガ
イド』を参照してください。
相互運用性がある環境では、次に示す処理が可能になります。
•
•
•
オープンアプリケーションを OSS 環境向けに記述および移植し、NonStop オペレーティ
ングシステム機能を利用
Guardian アプリケーションを OSS 環境に移行
OSS 関数を使用する Guardian アプリケーションを作成
2 つの異なるファイルシステム
OSS ファイルシステムと Guardian ファイルシステムは、相互に依存しません。 また、基本的
に大きな相違点があります。
OSS ファイルシステム
OSS ファイルシステムは、ディレクトリ、サブディレクトリ、ファイルで構成される階層型の
ファイルシステムです。 パス名は、OSS ファイルシステム内で、特定のファイル、ディレクト
リ、サブディレクトリまでの経路を定義しています。 OSS パス名には、多数のレベルのディレ
クトリやサブディレクトリを指定できます。 OSS ファイル名とディレクトリ名の長さは、最大
248 文字です。 OSS の絶対パス名は、最大 1023 文字です。
OSS ファイルシステムには、/G という名前のディレクトリがあります。 /G ディレクトリを使
用することによって、OSS 環境から Guardian 環境のボリューム、サブボリューム、ファイル
へのアクセスが可能になり、通常の OSS ファイル、ディレクトリ、サブディレクトリとして扱
うことができます。
OSS ファイルシステムには、Guardian Expand ネットワーク用の /E ディレクトリもありま
す。 このネットワークは、リモート NonStop ノード上の OSS ファイル名と Guardian ファイ
ル名のマッピングを行います。
Guardian ファイルシステム
Guardian ファイルシステムは、ボリューム、サブボリューム、ファイルで構成されます。 サ
ブボリュームはボリューム上のみに配置でき、ファイルはサブボリューム内にのみ格納できま
2 つの異なるファイルシステム
73
す。 OSS ファイルシステムは複雑な階層構造を持っているのに対して、Guardian ファイルシ
ステムは平坦な 3 レベル構造です。 Guardian ファイル識別子の長さは、最大 8 文字です。
Guardian ファイルシステムに OSS 環境からアクセスするには、ローカルファイルについては
OSS の /G ディレクトリ、リモートノードのファイルについては /E ディレクトリを使用しま
す。
OSS 環境から Guardian ファイルへのアクセス
OSS 環境から Guardian ファイルシステムにアクセスするには、/G ディレクトリと /E ディレ
クトリを使用します。これらのディレクトリは OSS ファイルシステム内の特殊なディレクトリ
であり、Guardian ファイルシステムのマウントポイントとして機能します。
/G ディレクトリ
OSS ファイルシステムには、/G という名前の特殊なディレクトリがあります。 /G ディレクト
リは、通常の OSS ディレクトリではありません。 Guardian ファイルシステム用の特殊なマウ
ントポイントです。 このマウントポイントから、OSS ユーティリティを使用して Guardian の
ボリューム、サブボリューム、ファイルに OSS 環境からアクセスできます。
/G ディレクトリには 3 レベルの階層構造のみ存在し、/G ディレクトリ自体は含まれません。
この 3 レベルの階層は、Guardian ファイルシステムのボリューム、サブボリューム、ファイ
ルに相当します。 たとえば、/G ディレクトリを開いて内容をリストすると、ローカルの
Guardian 環境にあるボリューム名が表示されます。 ボリュームにはそれぞれサブボリューム
があり、さらにサブボリュームにはファイルが格納されています。
/E ディレクトリ
OSS ファイルシステムには、/E というディレクトリがあります。これは、Guardian Expand
ネットワークのリモートノードファイルで使用する特殊なディレクトリです。 OSS パス名の前
に /E とリモートノード名を付加することによって、ローカルノードのルートディレクトリか
らリモートの OSS ファイルを操作できます。 たとえば、パス名は次のいずれかの形式になり
ます。
/E/node1/usr/share/man/cat5/filename.5
/E/node1/G/system/zossutl/T8620MAN
/G ディレクトリと /E ディレクトリ内のオブジェクトの指定
/G ディレクトリと /E ディレクトリは、OSS ファイルシステムのルートディレクトリ (/) にあ
ります。 OSS 環境では、OSS のディレクトリ変更コマンド (cd) を使用して、/G ディレクトリ
または /E ディレクトリに移動できます。
ローカルとリモートいずれの /G ディレクトリ内でも、Guardian のボリューム、サブボリュー
ム、ファイルの名前は、OSS のディレクトリ、サブボリューム、ファイルの名前として表示さ
れます。
Guardian ファイルシステム内のファイルを指定するには、ファイルの /G または /E パス名を
入力します。 その場合、Guardian ファイル名から OSS ファイル名への変換規則に従ってくだ
さい。
/G ディレクトリと /E ディレクトリの可視性
システム管理者は、UTILSGE 環境変数を使用して、次のコマンドで /G ディレクトリと /E ディ
レクトリが認識されるかどうかを指定できます。
chgrp
chmod
chown
cp
find
74
OSS 環境と Guardian 環境の相互運用性
ls
mv
pax
rm
UTILSGE 環境変数には、次の値を設定できます。
NOE
指定したコマンドは、/E ディレクトリを認識しません。
NOG
指定したコマンドは、/G ディレクトリを認識しません。
NOG:NOE
指定したコマンドは、/E および /G ディレクトリを認識しません。
注記:
NOE:NOG という値は無効であり、無視されます。
たとえば次のコマンドを入力すると、chgrp は Expand ディレクトリ (/E) と Guardian ディレ
クトリ (/G) を認識しません。
export UTILSGE=NOG:NOE
chgrp -R SUPER.SUPER/
この例では、ローカルノード上にあるすべてのファイルのグループが、スーパー ID に変更さ
れます。 このコマンドを有効にするには、再帰フラグ (-R) を指定し、初期ディレクトリをルー
トディレクトリにする必要があります。
chgrp、chmod、chown、cp、find、ls、mv、pax、rm の各コマンドで -W NOE フラグと
-W NOG フラグを使用できます。これは、それぞれ UTILSGE の NOE および NOG と同じ効果
があります。
chgrp -W NOE -W NOG -R / SUPER.SUPER/
次のコマンドは、/G ディレクトリと /E ディレクトリを除いて、/ ディレクトリを再帰的に検
索します。
find / -W NOG -W NOE -name abc*
これ以外にも、OSS 環境で再帰的な動作を行うコマンドやユーティリティがあります。 たとえ
ば、grep、egrep、fgrep、tar、cpio の各ユーティリティは、対象となるファイルの範囲
の点で、/ ディレクトリでは使用しないでください。
環境変数の設定方法については、「環境変数」 (49 ページ) を参照してください。
特定のコマンドで -W NOG フラグと -W NOE フラグを設定する方法については、『Open System
Services Shell and Utilities Reference Manual』を参照してください。
Guardian ファイルタイプ
OSS ユーティリティを使用することによって OSS 環境からアクセスできるのは、Guardian
ファイルのサブセットのみです。このサブセットには、Guardian EDIT ファイル (ファイルタ
イプ 101) と奇数非構造化ファイル (ファイルタイプ 180) が含まれます。 これ以外の Guardian
ファイルは構造化ファイルであり、レコードセパレーターを指定できます。 構造化ファイルに
は、OSS ユーティリティではアクセスできません。
OSS パス名から Guardian ファイル名への変換
Guardian ファイル名と OSS ファイル名には相違点があるため、Guardian と OSS の環境間で
ファイルを転送すると、次のように名前が変更されます。 OSS 名が 8 文字を超える場合、最初
の有効な 8 文字に切り詰められます。 たとえば、OSS ファイル名が abcde.fghi の場合、
Guardian 名は ABCDEFGH となります。 この規則を理解していないと、混乱を招き、ファイル
の特定が難しくなります。 類似した OSS ファイル名が複数あり、これを Guardian ファイル名
に変換した結果、ファイル名が同じになり、一方のファイルが上書きされてしまうことがあり
ます。 Guardian 環境に格納されているファイルでは、3 レベルを超える階層構造を持つパス
OSS パス名から Guardian ファイル名への変換
75
名を指定できません。 パス名で指定できるのは、ボリューム名、サブボリューム名、ファイル
識別子のみです。
OSS 環境から Guardian および Expand ファイル名を指定するには、次のように入力します。
/G/volumename/subvolumename/fileid
または
/E/nodename/G/volumename/subvolumename/fileid
/E は、後に続く部分が Expand ファイル名であることを示しています。 /G は、後に続く部分
が Guardian ファイル名であることを示しています。 ボリューム名では $ (ドル記号) は指定さ
れていません。 システムは、OSS パス名を検出すると、次の規則に従って Guardian ファイル
名に変換します。
•
•
•
•
/E/nodename を \nodename に変換します。
/G/ を $ (ドル記号) で置換します。
fileid の前の / (スラッシュ) を . (ピリオド) として解釈します。
アルファベット文字 (/G または /E) を小文字に変換します。
次の文字 (OSS ファイル名で使用) がパス名に含まれている場合、変換処理で削除されます。
.
ピリオド
,
カンマ
-
ハイフン
_
アンダースコア
以下は、OSS パス名を Guardian ファイル名に変換する例です。
OSS パス名
Guardian ファイル名
/G/data/mysubvol/file
$data.mysubvol.file
/E/node1/G/data/mysubvol/file
\node1.$data.mysubvol.file
/G/data.volume/src.11.v3.4.8
/properties.c
$datavol.src11v34.properti
/G/disk
$disk
/G/ztnt/#pty7
$ztnt.#pty7
以下は、無効な変換例です。
/G/data/a/b/c
階層レベルが多すぎるため、Guardian 名に変換できま
せん。
/G/oss/src:v3.4/logger.c
無効な文字 (コロン) が含まれているため、Guardian 名
には変換できません。
ファイル名やパス名が無効である場合、操作は ENOENT エラーで終了します。 ファイルを無効
な名前で作成しようとすると、操作は EINVAL エラーで終了します。
76
OSS 環境と Guardian 環境の相互運用性
Guardian ファイル名から OSS パス名への変換
以下は、Guardian ファイル名を OSS パス名に変換する例です。
Guardian ファイル名
OSS パス名
$VOL
/G/vol
$vol
/G/vol
$vol.subvol
/G/vol/subvol
$P.#1234
/G/p/#1234
$P.#pty12
/G/p/#pty12
\node1.$vol.subvol.file
/E/node1/G/vol/subvol/file
ボリューム名の前にある $ (ドル記号) は削除されます。
パス名のマッピング
OSS パス名と Guardian ファイル名には相違があるため、各 OSS ファイルには、OSS 名に加え
て基盤となる Guardian ファイル名が割り当てられています。
OSS ファイル向けの Guardian 名は、各ファイルの i ノード番号に基づいて割り当てられます。
これらの名前は、OSS ファイルに対する Guardian 識別子として機能します。
たとえば、 OSS パス名 /usr/rick/sales/notes の Guardian ファイル名は、次のようにな
ります。
$VOL2.ZYQ00001.Z0000034
OSS ファイルは、Guardian ファイルシステム内にある特殊なサブボリュームに格納されてい
ます。 このサブボリュームの名前は、必ず ZYQ で始まります。
ZYQ サブボリュームには特殊な制限があり、 OSS 環境からしかアクセスできません。 Guardian
環境からは、このサブボリュームを開くことはできず、内容への直接アクセスや、サブボリュー
ムでのファイルの新規作成もできません。 OSS 環境からは、/G ディレクトリ経由でファイル
にアクセスできます。この場合、OSS ファイル、ディレクトリ、サブディレクトリとして表示
されます。
pname コマンド
Guardian ファイル名に対応する OSS パス名を表示するには、OSS シェルから次のコマンドを
入力します。
pname [-s] filename
-s フラグ (オプション) は OSS パス名のみを表示するフラグであり、filename は Guardian
完全修飾ファイル名です。
次の例の 2 行目は、パス名 /h/goldg から pname コマンドを実行した結果を示しています。
/h/goldg: pname '\SATURN.$OSS.ZYQ00001.Z00001Y8'
pname: \SATURN.$OSS.ZYQ00001.Z00001Y8 --> /h/goldg/.kshrc
gname コマンド
OSS パス名に対応する Guardian ファイル名を表示するには、OSS シェルから次のコマンドを
入力します。
gname [-s] pathname
次の例の 2 行目は、パス名 /h/goldg から gname コマンドを実行した結果を示しています。
/h/goldg: gname /h/goldg/.kshrc
gname: /h/goldg/.kshrc --> \SATURN.$OSS.ZYQ00001.Z000018
Guardian ファイル名から OSS パス名への変換
77
OSS 環境からの Guardian プロセスの実行
Guardian プロセスを OSS 環境から実行するには、gtacl コマンドを使用します。
たとえば、Guardian File Utility Program (FUP) の SECURE コマンドを使用することにより、
OSS 環境から、Guardian 環境内のファイルのセキュリティを変更できます。
myfile という名前の Guardian ファイルのセキュリティを “nu-u,” に変更するには、OSS プ
ロンプトで次のように入力します。
gtacl -c 'fup secure myfile, "nu-u" '
サブボリューム間でファイルをコピーするには、OSS プロンプトで次のように入力します。
gtacl -c 'fup dup subvolume.filename, newsubvolume.filename『'』
Guardian サブボリュームに関する情報を取得するには、OSS プロンプトで次のように入力し
ます。
gtacl -p 'fup info \systemname.$volumename.subvolume.*'
gtacl コマンドと、その構文およびオプションの詳細については、gtacl(1) リファレンス
ページを、オンラインまたは『Open System Services Shell and Utilities Reference Manual』で
参照してください。
Guardian 環境からの OSS プロセスの実行
osh コマンドを使用することによって、Guardian 環境から、OSS オブジェクトに対して多数
の OSS コマンドを実行できます。
たとえば、OSS ディレクトリ間で OSS ファイルをコピーするには、TACL プロンプトで次のよ
うに入力します。
osh cp directory/filename newdirectory/filename
次のコマンドを実行すると、シェルで子プロセスが開始されます。
osh -ls
次のコマンドは、grep コマンドのリファレンスページを表示します。
osh -c "man grep"
osh コマンドで指定できるフラグについては、osh(1) のリファレンスページを、オンライン
または『Open System Services Shell and Utilities Reference Manual』で参照してください。
Guardian 属性による OSS プロセスの実行
run コマンドを使用すると、Guardian 属性を OSS プログラムに割り当てることができます。
たとえば、HP デバッガーの制御下で OSS プログラムを実行できます。 Guardian 実行優先順
位を OSS プログラムに割り当て、プロセスに Guardian 名を指定できます。
次のコマンドは、プロセッサー 3 で、HP Inspect プログラムを使用して program プログラム
を実行します。
$ run -cpu=3 -debug -inspect=on program
次のコマンドは、Guardian 優先順位 150 で program プログラムを実行します。
$ run -gpri=150 program
run コマンドでは、次のフラグを指定できます。
78
フラグ
説明
-cpu n
プロセスを実行するプロセッサーのプロセッサー番号を指定しま
す。
-debug
Debug シンボリックデバッガーでプロセスを開始します。
-defmode on | off
開始するプロセスで使用する defmode の初期設定を指定します。
OSS 環境と Guardian 環境の相互運用性
フラグ
説明
-inspect on | off | saveabend
プロセスは、Guardian Inspect プログラムを開始します。
-jobid jobidnum
新しいプロセスの新しいジョブ ID を指定します。
-lib /G/libfile | unset
実行中のプログラムが必要とする外部参照の検索対象となる /G
内のユーザーライブラリファイルを指定します。
-gpri priority
新しいプロセスの Guardian 実行優先順位を指定します。
-name /G/processname
新しいプロセスに割り当てる Guardian プロセス名を指定します。
-swap /G/swapfile
プロセスの仮想データを格納する /G のファイルの名前を指定し
ます。
-term /G/termname
新しいプロセスのホーム端末を指定します。
run コマンドの詳細については、run(1) リファレンスページを、オンラインまたは『Open
System Services Shell and Utilities Reference Manual』で参照してください。
ファイルの編集
OSS のプライマリテキストエディターは、vi エディターです (付録 A (169 ページ) を参照)。
Guardian のテキストエディターは、TEDIT です。
いずれのエディターも、他方の環境にあるファイルを直接編集することはできません。ただ
し、制限はありますが、間接的に使用することは可能です。
最も望ましいのは、ネイティブ環境でネイティブのテキストエディターを使用してファイルを
編集する方法です。 この方法で編集できない、または不都合がある場合には、以下で説明する
方法を使用できます。
vi を使用した Guardian ファイルの編集
vi エディターを使用して、Guardian 環境 (/G) 内にある Guardian タイプ 180 のファイル (C
プログラムで作成した Guardian ASCII テキストファイル) を編集できます。
vi エディターは、Guardian 環境内にある Guardian の編集書式ファイル (ファイルタイプ 101)
を読み取ることできますが、書き込むことはできません。 (vi エディターでは EDIT ファイル
を作成できません。)
vi エディターで Guardian タイプ 101 ファイルを編集する場合、Guardian プログラムの
EDITTOC を使用してタイプ 101 ファイルをタイプ 180 ファイルに変換する必要があります。
編集後、Guardian プログラムの CTOEDIT を使用してファイルをタイプ 101 ファイルに戻し
ます。
TEDIT を使用した OSS ファイルの編集
Guardian の TEDIT エディターで OSS ファイルを編集するには、OSS ファイルを /G ディレク
トリにコピーしてから、Guardian プログラム CTOEDIT を使用してタイプ 101 ファイルに変
換します。
TEDIT エディターでの編集後、Guardian プログラム EDITTOC を使用してファイルをタイプ
180 に戻します。 ファイルを OSS 環境にコピーして戻します。
ファイルの編集
79
Guardian 環境と相互運用可能な OSS コマンド
一部の OSS コマンドには、Guardian 環境との相互運用性はありません。 以下は、Guardian
環境と相互運用可能な OSS コマンドの一覧を示しています。
コマンド
説明
cancel
プリントコマンドを停止します。
cp
ファイルをコピーします。
file
ファイルタイプを表示します。
gtacl
オープンシステムサービスから Guardian プロセスを実行します。
kill
実行中のプロセスにシグナルを送信します。
ls
ファイルの統計をリストします。
osh
Guardian 環境から、OSS 環境でプロセスを実行します。 (TACL コマンド)
pax
アーカイブファイルの書き込み、リスト、抽出を行います。
pinstall
OSS ファイルを OSS ファイルシステムにインストールする Guardian プログラムを
起動します。 (TACL コマンド)
ps
現在のプロセスのステータスを表示します。
run
Guradian 属性でプロセスを実行します。
who
現在ログインしているユーザーを示します。
上記を含め、OSS コマンドを Guardian 環境内で実行する際は、以下で示す例を参考にしてく
ださい。 ただし、指定するフラグ、コマンドの実行対象となるオブジェクト、実行環境が OSS
か Guardian (osh を使用) かによって、実行結果が異なる場合があります。
プリントコマンドとスプーラーコマンド
OSS ファイルは、Guardian 環境を経由してプリンターにスプールされます。 ただし、OSS
ユーザーがこの処理を意識することはありません。 プリント関連の OSS コマンド (lp、lpstat、
cancel など) は、特殊な Guardian オプションや Guardian デバイスを指定しなくても実行で
きます。 詳細は、第8章 (101 ページ) を参照してください。
cancel コマンド
Guardian 環境で、ラインプリンターのスプールキューからジョブ要求を削除するには、オー
プンシステムサービスのホームディレクトリから次のコマンドを入力してください。
cancel request-ID … location …
request-ID は、lp コマンドで取得できます。 location には、削除するジョブ要求が存在
するスプーラーの位置を指定します。
request-ID を指定しないと、指定の場所にあるジョブのうち、ユーザーが開始したジョブが
すべて取り消されます。 場所を指定しないと、システムのデフォルト値が使用されます。
cancel コマンドでは、スーパー ID 特権を持つ場合を除いて、別のユーザーのジョブを削除
することはできません。
cp コマンド
OSS 環境の作業ディレクトリから、Guardian 環境内のサブボリュームにファイルをコピーす
るには、OSS のホームディレクトリから次のコマンドを入力します。
cp filename /G/volumename/subvolumename
80
OSS 環境と Guardian 環境の相互運用性
作業ディレクトリ内の filename ファイルが、Guardian 環境内のサブボリューム
subvolumename にコピーされます。
Guardian 環境のサブボリュームから、OSS 環境内のディレクトリにファイルをコピーするに
は、OSS 環境のホームディレクトリから次のコマンドを入力します。
cp /G/volumename/subvolumename/filename /directory/subdirectory
Guardian 環境内の filename ファイルが、OSS 環境内の subdirectory にコピーされます。
file コマンド
Guardian 環境内にあるファイルのタイプを表示するには、OSS 環境から次のコマンドを入力
します。
file /G/volumename/subvolumename/filename
ファイル名に続いてファイルタイプが表示されます。
gtacl コマンド
OSS 環境から Guardian 環境でプロセスを開始するには、gtacl コマンドを使用します。 次に
例を示します。
gtacl -p fup rename \*,newsvol.\*
上のコマンドは、デフォルトのサブボリュームにある Guardian ファイルの名前を、新しいサ
ブボリュームである newsvol に変更します。 シェルのエスケープ文字 \ が指定されているの
で、OSS シェルは * 文字を展開しません。
この例では、OSS プロンプトで次のコマンドを入力します。
gtacl -p 'fup info \systemname.$volumename.subvolume.*'
このコマンドは、Guardian サブボリュームに関する情報を取得します。 引用符で囲んだ特殊
文字は展開されず、Guardian プロセスが解釈します。
gtacl コマンドと、その構文およびオプションの詳細については、gtacl(1) のリファレンス
ページを、オンラインまたは『Open System Services Shell and Utilities Reference Manual』で
参照してください。
kill コマンド
Guardian 環境で実行中のプロセスを終了するには、OSS 環境のホームディレクトリで次のよ
うに入力します。
kill -s /G/processname
たとえば、次に例を示します。
kill -s /G/cmon
Guardian PROCESS_STOP_ procedure を、$cmon という名前の Guardian プロセスに対して
呼び出します。
ls コマンド
Guardian サブボリューム上のファイルをリストするには、OSS 環境のホームディレクトリで
次のように入力します。
ls /G/volumename/subvolumename
osh コマンド
Guardian 環境で、TACL プロンプトから OSS 環境を実行するには、次のように入力します。
osh
このコマンドを実行すると、OSS プロセスが開始され、OSS 環境のホームディレクトリに移動
します。
Guardian 環境と相互運用可能な OSS コマンド
81
osh コマンドは、OSS 環境の実行だけでなく、指定の OSS コマンドを Guardian 環境で実行す
ることもできます。 コマンド構文は以下のとおりです。
osh -p /bin/command
ここで、/bin/command は、実行するコマンドの OSS パス名です。
たとえば、Guardian プロンプトで次のコマンドを入力します。
osh -p /bin/ls
現在の Guardian サブボリューム内にあるファイルが、すべて一覧表示されます。
詳細については、第6章 (91 ページ) を参照してください。また、osh(1) のリファレンスペー
ジを、オンラインまたは『Open System Services Shell and Utilities Reference Manual』で参照
してください。
pax コマンド
pax コマンドは、アーカイブファイルの抽出、書き込み、リストを行います。 また、ファイル
やディレクトリの階層構造をコピーします。
pax ユーティリティの説明と例については、第13章 (163 ページ) を参照してください。
pinstall コマンド
OSS コマンド、ユーティリティ、ファイルを、Guardian 環境から OSS ファイル階層にインス
トールするには、次のコマンドを OSS 環境から入力します。
pinstall -flags pattern
-flags には、pinstall コマンドで使用できる各種オプションを指定します。詳細は、
pinstall(1) のリファレンスページを参照してください (オンラインまたは『Open System
Services Shell and Utilities Reference Manual』)。 pattern には、1 つまたは複数のアーカイ
ブメンバーのパス名を指定します。 pattern を指定しなと、デフォルトの動作で、すべての
アーカイブメンバーが選択されます。
ps コマンド
ps コマンドは、Guardian プロセス名で識別されるプロセスに関する情報を表示します。 次に
例を示します。
ps -W name=/G/cmon
上記のコマンドを実行すると、$cmon という名前の Guardian プロセスの情報が表示されま
す。次のような内容が表示されます。
PROCESS
/G/cmon
BK
CPU,PIN
GPRI
PFR
%WT
USERID
PROGRAMFILE HOMETERM
0,51
170
P
001
255,255
/G/system/ /G/osp
cmon/cmon
Guardian 環境で実行中のすべてのプロセスに関する情報を表示するには、次のように入力し
ます。
ps -W node=systemname,all
run コマンド
run コマンドを使用すると、OSS プログラムを Guardian 属性で起動できます。 たとえば、
OSS 環境から次のコマンドを入力します。
run -debug -inspect=on myprogram
これにより、Inspect デバッガーで myprogram プログラムが起動します。
82
OSS 環境と Guardian 環境の相互運用性
who コマンド
現在 Guardian 環境にログオンしているユーザーをリストするには、OSS 環境から次のコマン
ドを入力します。
who
Guardian DEFINE
DEFINE は、プロセスに情報を渡す手段の 1 つです。 たとえば、DEFINE を使用してプロセス
に属性を渡すことによって、次のような内容を提供できます。
•
•
•
•
ファイルにアクセスするための代替の名前
ファイル名を検索するサブボリュームのリスト
ラベル付きテープ処理に対して属性を設定する単純な手段
スプーラーサブシステムに属性を渡す単純な手段
DEFINE の作成と操作には、OSS コマンド群を使用します。これは、Guardian 環境で使用す
るコマンドに対応しています。
OSS コマンド
説明
Guardian コマンド
add_define
新しい DEFINE を作成します。
ADD DEFINE
del_define
DEFINE を削除します。
DELETE DEFINE
info_define
DEFINE 属性とその初期設定を表示し INFO DEFINE
ます。
reset_define
DEFINE 属性を初期設定に戻します。 RESET DEFINE
set_define
DEFINE 属性値を設定します。
SET DEFINE
show_define
DEFINE 属性と値を表示します。
SHOW DEFINE
DEFINE をサポートする OSS コマンドは、対応する Guardian コマンドと同じ方法で機能しま
す。 DEFINE と関連コマンドの詳細については、『Guardian ユーザーズ・ガイド』と『Guardian
プログラマーズ・ガイド』を参照してください。
Guardian コマンドとそれに対応する OSS コマンド
表 5-1 は、Guardian コマンドとそれに対応する OSS コマンドの一覧を示しています。 ただ
し、対応する OSS コマンドが存在しない Guardian コマンドや、対応する Guardian コマンド
が存在しない OSS コマンドもあります。 したがって、この表には、すべての Guardian コマン
ドと OSS のコマンドが含まれているわけではありません。
注記:
大カッコ ([ ]) 内の情報は、一連のコマンドステップを示しています。
表 5-1 Guardian コマンドに対応する OSS コマンド
Guardian コマンド
説明
対応する OSS コマンド
ADD DEFINE
属性と値の名前付きセットを追加します。 add_define
ALTER DEFINE
属性の値を変更します。
なし
ALTPRI
プロセスの優先順位を変更します。
なし
ASSIGN
物理ファイル名を論理名に割り当てます。 なし
BACKUP
ディスクファイルをテープにコピーしま pax
す。
C
TNS C コードをコンパイルします。
/nonnative/bin/c89
Guardian DEFINE
83
表 5-1 Guardian コマンドに対応する OSS コマンド (続き)
84
Guardian コマンド
説明
CLEAR
割り当てとパラメーターをクリアします。 なし
COMPUTE
式の値を表示します。
bc
CREATE
非構造化ファイルを作成します。
cat > filename
DDL
データオブジェクトをソースコードに変 なし
換します。
DEBUG
低水準デバッガーを提供します。
DEFAULT
ログオンのデフォルト設定を変更します。 [env, umask]
DELETE DEFINE
属性の名前付きセットを削除します。
DSAP
ディスクボリューム上にあるディスクス なし
ペースの使用状況を表示します。
EDIT
ラインエディターを提供します。
ed
ENV
環境パラメーターを表示します。
env
EXIT
現在のプロセスまたはコマンドを停止し kill
ます。
FC
コマンド履歴リストを処理します。
fc
FILEINFO
ファイル情報を表示します。
[file, ls]
FILENAMES
テンプレートを使用して、ファイル名を ls、find
表示します。
FILES
サブボリューム内の名前を表示します。 ls、find
FUP COPY
ファイルをレコード単位でコピーします。 cp
FUP DUP
ファイルを作成し、レコード単位でコピー cp
します
FUP GIVE
ファイルのオーナーを変更します。
FUP LOAD
構造化ファイルにデータをロードします。 なし
FUP PURGE
ファイルを削除します。
rm
FUP RENAME
ファイル名を変更します。
mv
FUP SECURE
ファイルのアクセスセキュリティを変更 chmod
します。
HELP
コマンドインタープリターに関する情報 man
を提供します。
HISTORY
これまでに発行されたコマンドを表示し fc
ます。
HOME
コマンドインタープリターが VAR を検
索する場所を指定します。
INFO DEFINE
現在のコマンドインタープリタープロセ info_define
スの属性を表示します。
INSPECT
高水準デバッガーを提供します。
LOAD
ライブラリファイルをメモリにロードし なし
ます。
LOGOFF
システムからログオフします。
OSS 環境と Guardian 環境の相互運用性
対応する OSS コマンド
run -debug
del_define
chown
env
run -debug
exit
表 5-1 Guardian コマンドに対応する OSS コマンド (続き)
Guardian コマンド
説明
対応する OSS コマンド
NMC
TNS/R ネイティブ C コードをコンパイル c89
します。
NMCPLUS
TNS/R ネイティブ C++ コードをコンパイ c89
ルします。
PARAM
プロセスの生成時に、プロセスにパラメー set、export
ターを設定します。
PAUSE
コマンドインタープリターに、プロンプ なし
トが表示されるまで待機させます。
PERUSE
スプーラージョブを監視および変更しま lpstat
す。
PMSEARCH
プログラム/マクロの検索パスを定義しま env、.profile
す。
PPD
プロセスの名前、ID、親を表示します。 ps
PURGE
ディスクファイルを削除します。
REMOTEPASSWORD
ネットワークセキュリティにで使用する なし
リモートパスワードを定義します。
RENAME
既存ファイルの名前を変更します。
RESET DEFINE
作業セット属性を、オリジナルの値に戻 reset_define
します。
RESTORE
ディスクファイルのバックアップコピー pax、pinstall
をリストアします。
RUN
プログラムを実行します。
SET DEFINE
作業セット内の属性に値を設定します。 set_define
SET DEFMODE
現在のコマンドインタープリタープロセ なし
スの属性を有効にします。
SETPROMPT
コマンドインタープリタープロンプトを env、.profile
変更します。
SETTIME
システムクロックの日付時刻を設定しま date
す (スーパーグループのみ)。
SHOW
SET コマンドで設定された属性値を表示 なし
します。
SHOW DEFINE
作業属性セットを表示します。
SPOOLCOM
スプーラーサブシステムの監視と制御を lpstat、cancel
行います。
STATUS
実行中のプロセスのステータスを表示し ps
ます。
STOP
プロセスを停止し、削除します。
SUSPEND
再度アクティブになるまで、プロセスの ^Z、kill
実行を停止します。
SYSTEM
デフォルトシステムを設定します。
TACL
コマンドインタープリタープロセスを開 sh
始します。
MEDIACOM
ラベル付けされたテープを管理します。 なし
TEDIT
フルスクリーンエディターを提供します。 vi
rm
mv
run
なし
kill
なし
Guardian コマンドとそれに対応する OSS コマンド
85
表 5-1 Guardian コマンドに対応する OSS コマンド (続き)
Guardian コマンド
説明
対応する OSS コマンド
TGAL
シンプルテキストフォーマッタを提供し なし
ます。
TIME
日付時刻を表示します。
USE
既存の変数を検索する検索リストを定義 なし
します。
USERS
ユーザーとグループの属性を表示します。 logname、who、id、env、umask
VOLUME
デフォルトのボリューム、サブボリュー cd、chmod
ム、セキュリティを一時的に変更します。
VPROC
製品バージョン情報を表示します。
WHO
現在の TACL プロセスに関する情報を表 id、tty、env
示します。
!
直前に実行したコマンドラインを再実行 r、^p、fc
します。
?
直前に実行したコマンドラインを表示し fc、history、^p
ます。
date
vproc (HP コマンド)
OSS コマンドとそれに対応する Guardian コマンド
表 5-2 は、OSS コマンドと、それに対応する Guardian コマンドの一覧を示しています。 ただ
し、対応する Guardian コマンドが存在しない OSS コマンドや、対応する OSS コマンドが存
在しない Guardian コマンドもあります。 したがって、この表には、すべての Guardian コマ
ンドと OSS のコマンドが含まれているわけではありません。
表 5-2 OSS コマンドに対応する Guardian コマンド
86
OSS コマンド
説明
alias
エイリアスを定義または表示します。 TACL ライブラリファイル内の ALIAS
ar
ライブラリアーカイブを作成および管 なし
理します。
at
コマンドを後で実行します。
awk
パターンのスキャンおよび処理言語を なし
提供します。
basename
パス名のディレクトリ以外の部分を返 TACL 組み込みコマンド: #set、
します。
#charfindv、#chargetv
bc
任意精度の算術言語を提供します。
bg
ジョブをバックグラウンドで実行しま TACL
す。
c89
ネイティブモードの C プログラムお
よび C++ プログラムをコンパイルし
ます。
ネイティブモードの C プログラム用
NMC、C++ プログラム用 NMCPLUS
/nonnative/bin/c89
TNS C プログラムをコンパイルしま
す。
C
cancel
ラインプリンターの要求をキャンセル PERUSE、JOB、DEL
します。
cat
ファイルを連結し、プリントします
FUP DUP、FUP COPY
cd
作業ディレクトリを変更します。
VOLUME
OSS 環境と Guardian 環境の相互運用性
対応する Guardian コマンド
NETBATCH
COMPUTE
表 5-2 OSS コマンドに対応する Guardian コマンド (続き)
OSS コマンド
説明
対応する Guardian コマンド
chgrp
ファイルグループの所有権を変更しま FUP GIVE
す。
chmod
ファイルモードを変更します。
FUP SECURE
chown
ファイルのオーナーを変更します。
FUP GIVE
cksum
ファイルのチェックサムとサイズを書 FUP CHECKSUM
き込みます。
cmp
2 つのファイルを比較します。
comm
2 つのファイルに共通の行を選択また なし
は除外します。
command
単一コマンドを実行します。
なし
compress
データを圧縮します。
なし
cp
ファイルをコピーします。
FUP COPY、FUP DUP
csplit
コンテンツに基づいてファイルを分割 TEDIT、SEARCH、WRITE (行範囲を指
します。
定)
cut
ファイルの各行の、選択したフィール なし
ドを切り出します。
date
日付と時刻を書き込みます。
TIME、SET TIME
diff
2 つのファイルを比較します。
COMPARE
dirname
パス名のディレクトリ部分を返しま
す。
TACL 組み込みコマンド: #set、
#charfindv、#chargetv
echo
引数を標準出力ファイルに書き込みま #output
す。
ed
テキストエディターを提供します。
env
コマンドを起動するための環境を設定 ENV、SET
します。
expand
タブをスペースに変換します。
なし
expr
引数を式として評価します。
#argument
fc
コマンド履歴リストを処理します。
FC、HISTORY、!、?
fg
ジョブをフォアグラウンドで実行しま RUN
す。
file
ファイルタイプを特定します。
FILEINFO、FUP INFO
find
ファイルを検索します。
FILES、FILEINFO、FILENAMES
fold
行を折り返すためのフィルターを提供 なし
します。
gencat
フォーマットされたメッセージカタロ なし
グを生成します。
getconf
構成値を取得します。
getopts
ユーティリティオプションを構文解析 なし
します。
grep
ファイル内でパターンを検索します。 LOCATE
head
ファイルの先頭部分をコピーします。 FUP COPY FIRST
COMPARE
EDIT
なし
OSS コマンドとそれに対応する Guardian コマンド
87
表 5-2 OSS コマンドに対応する Guardian コマンド (続き)
88
OSS コマンド
説明
対応する Guardian コマンド
iconv
コードセット変換を行います。
なし
id
ユーザー ID を返します。
WHO、#username、#userid
join
リレーショナルデータベース演算子を なし
提供します。
kill
プロセスを終了またはシグナルを送り STOP
ます。
lex
字句タスク用のプログラムを生成しま なし
す。
ln
ファイルをリンクします。
ASSIGN
ロケール
ロケール固有の情報を取得します。
なし
localedef
ロケール環境を定義します。
なし
logger
メッセージをログに記録します。
なし
logname
ユーザーのログイン名を返します。
WHO、USERS
lp
ファイルをプリンターに送信します。 FUP COPY
lpstat
ラインプリンターのステータス情報を PERUSE、SPOOLCOM
報告します。
ls
ディレクトリコンテンツをリストしま FILES、FILEINFO、FILENAMES
す。
make
プログラムのグループを管理、更新、 なし
再生成します。
man
システムドキュメントを表示します。 command help、HELP
mkdir
ディレクトリを作成します。
VOLUME
mkfifo
FIFO 特殊ファイルを作成します。
なし
more
ページ単位でファイルを表示します。 MORE
mv
ファイルを移動します。
nm
オブジェクトファイルのネームリスト CROSSREF
を書き込みます。
nohup
ハングアップの影響を受けないユー
ティリティを起動します。
od
ファイルを各種形式でダンプします。 FUP COPY
paste
複数ファイル間で対応する行または後 なし
続の行をマージします。
pathchk
パス名をチェックします。
pax
ポータブルアーカイブインターチェン BACKUP と RESTORE
ジ (Portable archive interchange) を提
供します。
pr
ファイルをプリントします。
printf
フォーマットされた出力を書き込みま #output
す。
ps
プロセスステータスをプリントしま
す。
STATUS、PPD
pwd
作業ディレクトリ名を返します。
#defaults
OSS 環境と Guardian 環境の相互運用性
FUP DUP、FUP RENAME、PURGE
/NOWAIT/ option
なし
FUP COPY
表 5-2 OSS コマンドに対応する Guardian コマンド (続き)
OSS コマンド
説明
対応する Guardian コマンド
rm
ディレクトリエントリーを削除しま
す。
PURGE
rmdir
ディレクトリを削除します。
PURGE
sed
ストリームエディターを提供します。 OBEY
これにより、ファイル内のスクリプト
コマンドが実行されます。
sh
シェルを起動します。シェルとは、標 TACL
準コマンド言語インタープリターで
す。
sleep
一定期間実行を中断します。
sort
テキストファイルのソート、マージ、 SORT
シーケンスチェックを行います。
strings
ファイル内でプリント可能な文字列を なし
検索します。
strip
実行可能ファイルから、不要な情報を なし
削除します。
stty
端末に対するオプションを設定しま
す。
tail
ファイルの最後の部分を表示し、標準 なし
出力にコピーします。
tee
標準入力ファイルを複製します。
なし
test
式を評価します。
なし
time
単一コマンドの実行時間を計測しま
す。
MEASURE
touch
ファイルのアクセス時間と変更時間を EDIT、DUMMY CHANGE、EXIT
変更します。
tr
文字を変換します。
なし
tty
ユーザーの端末名を返します。
WHO
umask
ファイルモード生成マスクを取得また SAFECOM
は設定します。
unalias
エイリアス定義を削除します。
なし
uname
システム名を返します。
#mysystem
unexpand
スペースをタブに変換します。
なし
uniq
ファイル内の反復行を報告またはフィ なし
ルタリングします。
vi
画面指向エディターを提供します。
vproc (HP コマンド)
オブジェクトバージョン情報を取得し VPROC
ます。
wait
プロセスが完了するまで待機します。 なし
wc
ワード、行、バイト、文字をカウント なし
します。
who
システム上に現在存在するユーザーの USERS、STATUS
名前を一覧表示します。
write
別のユーザーに書き込みます。
なし
なし
TEDIT
なし
OSS コマンドとそれに対応する Guardian コマンド
89
表 5-2 OSS コマンドに対応する Guardian コマンド (続き)
90
OSS コマンド
説明
xargs
引数リストを作成し、ユーティリティ なし
を起動します。
yacc
「Yet Another Compiler Compiler」
を起動します。
OSS 環境と Guardian 環境の相互運用性
対応する Guardian コマンド
なし
第6章 OSS シェルの実行
一般的な OSS 環境には、NonStop オペレーティングシステムが動作する NonStop システムが
存在します。 さらに、ユーザーの操作には、LAN 経由で NonStop システムに接続された PC
互換のワークステーションや UNIX ワークステーションがよく使用されます。
このような環境でオープンシステムサービスを実行するには、ワークステーションから TELNET
セッションを開始し、TACL プロンプトから OSS osh コマンドを入力します。
osh プロセスは、必ず Guardian 環境から開始され、 ワークステーションから直接開始するこ
とはできません。
エミュレーションソフトウェア
TELNET アプリケーション (NonStop システムを実行するサーバーソフトウェア) は、リモー
トホストに接続された仮想端末のエミュレーションを実行します。 ワークステーションに、
VT100 エミュレーションをサポートするクライアントソフトウェアをインストールする必要が
あります。 6530 エミュレーションや x6530 エミュレーションはサポート対象外です。
ワークステーションでのエミュレーションソフトウェアのインストールと構成は、システム管
理者またはシステムオペレーターが行います。
システム管理者またはシステムオペレーターが指示する手順、またはエミュレーションソフト
ウェアの製造元が指示する手順に従って、NonStop システムとワークステーション間で TELNET
セッションを開始します。
TACL へのログオン
TELNET セッションを開始したら、NonStop システムにログオンします。 ログオンには、ユー
ザー名が必要です。 通常、システムマネージャーがユーザー名を割り当てます。
ユーザー名は、グループ名とグループ内のメンバー名で構成されます。 これらの 2 つの名前
は、ピリオドで区切ります。 次の例では、Stein というユーザーが、Support というグループ
に所属しています。
support.stein
ログインには、ユーザー名のほかに、ログインパスワードが必要です。初期パスワードは、シ
ステムマネージャーが割り当てます。
たとえば、support.stein のパスワードが ABT という文字列 (すべて大文字) だとします。
Stein は、
TACL 1> LOGON support.stein
TACL プロンプトで上記のように入力してから、[Return] キーを押します。 システムは、次の
ように応答します。
Password
このプロンプトが表示されたら、Stein はパスワードとして ABT と入力します。
プロンプトにパスワードを入力する際に、入力した文字は表示されません。 これにより、パス
ワードの漏洩を防ぐことができます。
アカウントは存在していてもパスワードが設定されていない場合、ユーザー名を入力するだけ
でログオンできます。 TACL プロンプトでパスワード入力が求められても、何も入力せずに、
[Return] キーを押してください。 これにより、ユーザーはパスワードを選択できます (以下の
説明を参照してください)。
パスワードが設定されていない場合やパスワードを変更したい場合は、PASSWORD ユーティ
リティを使用します。 パスワードは 1~8 文字の英数字で、空白文字は使用できません。
入力したユーザー名やパスワードに誤りがあると、次の TACL メッセージが表示されます。
Expecting an existing userid or user name
エミュレーションソフトウェア
91
入力したパスワードに誤りがあると、次の TACL メッセージが表示されます。
*ERROR* Invalid username or password
ログオンに成功すると、次のような TACL メッセージが表示され、行番号の後にプロンプトが
表示されます。
Welcome to \MEL
The time is 3:44:11 pm 01/14/2002
Last Logon: 14 JAN 2002 10:22
TACL (T9205D46 - 20SEP2001), Operating System G06.14
COPYRIGHT HP COMPUTER CORPORATION 1985, 1987-2000
CPU 4, backup process in CPU 2
January 14, 2002 15:44:11
1>
osh コマンドを入力すると、OSS シェルが実行されます。
osh コマンド
TACL プロンプトで OSS シェルを実行するには、次のように入力します。
osh
OSS プロンプトが表示されます。この時点で、ユーザーは OSS ファイルシステムのホームディ
レクトリにいます。
OSS プロンプトでは、OSS ユーザーコマンドの入力や OSS ユーティリティの実行が可能です。
OSS プログラムやプロセスを実行し、OSS ファイルを編集することもできます。
本書では、シェルプロンプトとして $ (ドル記号) を使用します。 これは、Korn シェルのデフォ
ルトプロンプトです。 システム管理者が OSS 環境ファイル /etc/profile で別の設定を行っ
ている場合や、任意のユーザーがローカルの .profile ファイルでローカルプロンプトを指定
している場合には、デフォルト以外のシェルプロンプトが表示されます。 プロンプトには、
ユーザーのホームディレクトリのパス名、ユーザー ID、行番号がよく使用されます。
osh フラグ
osh コマンドでは、さまざまなフラグやオペランドを指定できます。 フラグや演算子によっ
て、osh を実行する条件を指定できます (使用するプロセッサー、実行優先順位、デバッグ、
入出力のリダイレクションなど)。 osh を使用して、Guardian 環境から OSS プログラムや単
一の OSS コマンドを実行できます。 osh とフラグの詳細については、osh(1) リファレンス
ページを、オンラインまたは『Open System Services Shell and Utilities Reference Manual』で
参照してください。
次のコマンドを実行すると、シェルで子プロセスが開始されます。
osh -ls
次のコマンドは、pathname で指定したプログラムをプロセッサー 4 で開始します。
osh -cpu 4 -p pathname
osh コマンドでは、次のフラグを指定できます。
92
フラグ
説明
-? または -help
使用方法に関する情報を表示します。
-c command
OSS 子プロセスに対して、コマンドを 1 つの引数として送信します。
-cpu n
子プロセスを実行するプロセッサーを指定します。
-debug
Guardian 環境のデバッグツールを起動します。
-defmode on | off
子プロセスで使用する Guardian DEFINE モードを指定します。
-extswap pathname
子プロセスの拡張データセグメントで使用する Guardian スワップファ
イルまたはスワップボリュームを指定します。
OSS シェルの実行
フラグ
説明
-gpri n
Guardian の実行優先順位 n (1~199) の初期値を子プロセスに割り当て
ます。 優先度の最低値は 1、最高値は 199 です。 デフォルトの優先順位
は、osh で使用する優先順位です。
-highpin on | off
255 よりも大きい Guardian プロセス識別番号 (PIN) で新規プロセスを実
行できるかどうかを指定します。
-inspect on | off | saveabend
子プロセスで使用する Inspect モードを指定します。
-jobid 0 | -1
子プロセスに割り当てるジョブ ID を管理します。
-lib pathname
新規プロセスで使用する、Guardian ファイルシステム内のユーザーラ
イブラリファイルのパス名を指定します。
+lib
ユーザーライブラリファイルを使用せずに子プロセスを実行することを
指定します。
-ls
子プロセスがログインシェルであることを指定します。
+ls
子プロセスがログインシェルでないことを指定します。
-name {/G/ | /E/nodename/G/ }
processname
子プロセスを名前付きプロセスとして開始します。
+name
子プロセスを名前なしプロセスとして開始します。
-nowait
子プロセスが終了するのを待たずに終了します。
-ostty
OSSTTY プロセスのコピーを開始します。このプロセス経由で、OSS 標
準入力ファイル、標準出力ファイル、標準エラーファイルを Guardian
ファイルシステムオブジェクトとの間でリダイレクトします。この操作
は、リダイレクション演算子またはコマンドの RUN オプションの指定
に基づいて実行されます。
-p pathname
pathname で指定したプログラムを子プロセスとして実行します。
-pfs n
子プロセスで使用する NonStop Kernel プロセスファイルセグメント
(PFS) のサイズをページ単位で指定します。
-phd
J06.03 以降の J シリーズ RVU、H06.11 以降の H シリーズ RVU、G06.31
以降の G シリーズ RVU を稼働するシステムでサポートされます。 子プ
ロセスを実行する HP ノードでの設定に基づいて、親プロセスの現在有
効なプロセスアクセス ID (PAID) の初期ログインディレクトリを子プロ
セスが使用することを指定します。 osh で -phd オプションを指定しな
い場合、子プロセスは、子プロセスを実行する HP ノードでの設定に基
づき、親プロセスの初期ログオンディレクトリを使用します。 Guardian
HOME PARAM または Guardian PWD PARAM の各変数が定義されて
いない場合、-phd オプションは、子プロセスで使用する OSS 環境変数
HOME または PWD の値に影響を与えることがあります。 詳細につい
ては、osh(1) リファレンスページの「プロセス環境」を参照してくださ
い。
-pmsg on | off
osh コマンドで、子プロセスの OSS プロセス ID と終了ステータスを
Guardian 標準出力ファイルに表示するかどうかを指定します。
-prog pathname
指定したプログラムファイルを子プロセスとして実行します。
-swap pathname
子プロセスのデータセグメントで使用する Guardian スワップファイル
またはスワップボリュームの名前を指定します。
-term pathname
子プロセスのホーム端末として使用する Guardian 端末デバイスを指定
します。
OSS の終了
現在の OSS プロセスを終了するには、OSS プロンプトで次のように入力します。
exit
TACL プロンプトに戻ります。
OSS の終了
93
TACL セッションからログオフするには、TACL プロンプトで次のように入力します。
logoff
TELNET セッションを終了します。 エミュレーションソフトウェアの製造元が提示する手順
を、必要に応じて参照してください。
stty コマンドによる端末文字の指定
stty コマンドは、標準入力情報を提供するデバイス向けに、端末の I/O 特性を設定および報
告します。 stty コマンドの詳細については、stty(1) のリファレンスページを、オンライン
または『Open System Services Shell and Utilities Reference Manual』で参照してください。
フラグや引数を指定しないで stty を実行すると、一部の特性の設定 (通常は、実装時に定義
されているデフォルト値と異なる設定) を報告します。 フラグや引数を指定して stty を実行
すると、指定された引数に基づいて端末状態が変更されます。 一部の端末タイプには、排他的
な引数の組み合わせが存在します。
stty コマンドをユーザーの .profile スクリプト (第3章 (35 ページ) を参照) に追加すること
によって、ユーザーが osh を実行した時点でオプションを自動設定することができます。 以
下に、stty コマンドの簡単な例を示します。
stty erase '^h'
ここで、各要素は次のとおりです。
erase '^h'
1 文字消去の文字を '^h' (Ctrl-h) に変更します。 1 文字消去のデフォルトは、ポンド
記号 (#) です。 ほとんどの端末では、[Backspace] キーを押すと '^h' が送信されま
す。
stty コマンドでは、次のフラグを指定できます。
フラグ
説明
-a
端末の現在の設定をすべて標準出力ファイルに書き込みます。
-f special_device
代替の端末または tty デバイスを指定します。
-g
現在の設定を、未指定の形式で標準出力ファイルに書き込みます。この設定
は、同じシステム上の別の stty コマンドの入力引数として使用できます。
シェル環境の変更
ホームディレクトリの .profile ファイルを変更することによって、多数のシェル環境変数を
変更できます。 シェル変数の変更については、第3章 (35 ページ) を参照してください。
OSS 環境の管理
OSS 環境でのシステム管理は、主に Guardian 環境から行われます。したがって、Safeguard
システムを熟知した管理者に比べて、UNIX システムを熟知した管理者は環境に慣れていない
かもしれません。
システム管理作業の多くは、システム管理者が、Guardian 環境で稼働する Safeguard システ
ム経由で行います。 ただし、ユーザーを OSS システムに追加すると、一部のアカウント操作
は OSS 環境で実行できます。
システム管理については、『オープン・システム・サービス 管理およびオペレーション・ガイ
ド』、『Safeguard 管理者ガイド』、『Safeguard リファレンスマニュアル』、『TACL Reference
Manual』を参照してください。
94
OSS シェルの実行
バックアップ
バックアップは、pax ユーティリティで実行します。 OSS システムのバックアッププロセス
については、『オープン・システム・サービス 管理およびオペレーション・ガイド』を参照し
てください。 pax の情報については、第13章 (163 ページ) も参照してください。
ファイルセットのマウントとマウント解除
ファイルセットのマウントとマウント解除 (1 つまたは複数の OSS ファイルセットを他の OSS
ファイルシステムで使用可能にすること) は、システム管理者が OSS Monitor を使用して行い
ます。 OSS Monitor とは、サブシステム制御ファシリティ (SCF) と呼ばれる対話的インター
フェイス経由で要求を受け取る Guardian ユーティリティです。
ディスクボリュームの管理
OSS システムでは、ファイルは、複数のディスクボリュームにまたがるファイルシステムに対
応したストレージプールに格納されます。 このボリュームがすべて一杯になると、ファイルシ
ステム内のファイルを格納するために、ボリュームを追加することが可能です。 ディスクボ
リュームの管理は、システム管理者が行います。
セキュリティ
OSS セキュリティ機能の多くは、Guardian Safeguard サブシステムによって管理されていま
す。 これには、Guardian 環境から OSS オブジェクト (ファイルなど) へのアクセスを規制する
機能や、OSS 環境から Guardian オブジェクトへのアクセスを規制する機能があります。 どの
ようなタイプのアクセスが許可されるかは、セキュリティ上の制限によって決まります。
セキュリティモデルは、アクセス対象のオブジェクトによって異なりますが、環境には依存し
ません。 たとえば、OSS 環境から Guardian オブジェクトにアクセスする場合、このアクセス
操作に適用されるのは Guardian 環境のセキュリティです。 このようなセキュリティモデルが
採用されているため、OSS 環境から Guardian オブジェクトへのアクセスを試行した結果、ア
クセスが拒否された場合、オブジェクトにアクセスする OSS プログラムを記述しても、オブ
ジェクトの保護を回避することはできません。
各ファイル (ファイルセットではなく) でのセキュリティ操作には OSS ユーティリティが使用
され、ほとんどの場合ユーザーが実行します。 OSS ユーザーコマンドである chmod、chown、
setacl は、ファイルの所有権やアクセスを変更します。
注記: setacl コマンドと OSS ACL は、OSS ファイルセットのバージョン 3 以降のみでサ
ポートされています。 ACL の詳細については、acl(5) リファレンスページを、オンライン
または『Open System Services System Calls Reference Manual』で参照してください。
OSS 環境の管理
95
96
第7章 ファイルの作成
この章から、本書のチュートリアルを始めます。ここでは、よく使用される各種 OSS ユーザー
コマンドとユーティリティをチュートリアル形式で紹介します。
チュートリアルと例について
本章以降で紹介する例とチュートリアルは、それぞれ独立したものではなく一連の流れになっ
ているため、本章の最初から記載された順番に実習してください。
例と形式
ここでは、コマンドとコマンドが実行する機能について説明し、コマンドごとに使用方法を例
を使って紹介します。 使用例は章ごとに独立したものではなく一連の流れになっているので、
順番通りに実習してください。
シェルプロンプト
本書では、シェルプロンプトとして $ (ドル記号) を使用します。 (これは、Korn シェルのデ
フォルトプロンプトです。) システム管理者が OSS 環境ファイル /etc/profile で別の設定
を行っている場合や、任意のユーザーがローカルの .profile ファイルでローカルプロンプト
を指定している場合には、デフォルト以外のシェルプロンプトが表示されます。 よく使用され
るプロンプトとしては、行番号、ユーザーのホームディレクトリのパス名の後に : (コロン) を
付加した形式、ユーザーのユーザー ID の形式があります。
リファレンスページへのアクセス
以下の内容を理解する上で、コマンドに関してさらに詳細な情報が必要になった場合は、
『Open System Services Shell and Utilities Reference Manual』を参照するか、man コマンドを
使用して OSS コマンドのオンラインリファレンスページにアクセスしてください。 (man コマ
ンドでリファレンスページにアクセスするためには、リファレンスページをシステム上にイン
ストールしておく必要があります。) man コマンドの使用方法については、第4章 (57 ページ)
を参照してください。
プロセスのエスケープ (Ctrl-c)
ここで紹介しているサンプルコマンドやユーザーコマンドを実行する際、開始したプロセスを
終了するには [Ctrl-c] を押してください。 これにより、最後に開始したプロセスが停止し、
シェルプロンプトに戻ります。
ファイルの操作
この節では、vi エディターを使用して、下記の作業を行う方法について説明します。
•
•
•
•
ファイルの作成、読み取り、書き込み
ファイル内のデータの表示と検索
データの追加、置換、削除
ファイル内のデータの移動とコピー
テキストエディターとは
テキストエディターとは、ファイル内のテキストやプログラムなどのデータを作成および変更
するプログラムです。 テキストエディターには、ワードプロセッサーのような書式設定やプリ
ントなどの機能はありません。
オープンシステムサービスでは、2 つのテキストエディタープログラム vi と ed が用意されて
います。 この 2 つには、それぞれ固有のテキスト表示方法、サブコマンド群、使用規則があり
ます。 編集した内容は、編集バッファーに格納され、保存または破棄することができます。
チュートリアルと例について
97
vi については、付録 A (169 ページ) を参照してください。 ed については、付録 B (181 ページ)
を参照してください。 また、vi と ed に関する市販の書籍も参照するようお勧めします。
vi エディターによるサンプルファイルの作成
ここでは、vi テキストエディターを使って 3 つのファイルを作成します。 この節では、vi エ
ディターの使用方法については説明しません。 ここでは、最小限のコマンド群を使用して、本
書の例で使用するファイルを作成します。
vi の後にファイル名を入力して [Return] を押すと、vi エディターが起動します。 vi ウィン
ドウが開きます。 vi エディターには、テキストを追加および変更するための挿入モードがあ
ります。 挿入モードを有効にするには、[i] (挿入) または [ a] (アペンド) を入力します。[Return]
を押す必要はありません。 また、入力した文字は画面に表示されません。 入力モードを終了
するには、[Escape] キーを押します。
vi エディターを終了するには、: (コロン) の後に q と入力してから、[Return] を押します
(:q<Return>)。 ファイルを変更した場合、変更内容を保存または破棄しないと、vi を終了で
きません。 変更内容を保存してから vi を終了するには、:wq と入力します。 変更内容を破棄
してから vi を終了するには、:q! と入力します。 挿入モードの状態では、vi を終了できま
せん。 挿入モードを終了してから、:wq または :q! と入力してください。
次の手順に従って、3 つのサンプルファイル (file1、file2、file3) を作成します。この
ファイルは、後の節でも引き続き使用します。
1.
コマンド名 vi の後に新しいファイル名 (file1) を入力し、[Return] を押すと、vi エディ
ターが起動します。
$ vi file1
これは新しいファイルなので、次に示すように、画面の一番上にカーソルが移動します。
~
~
~
~
~
~
"file1" [New file]
画面の空白行の先頭には ~ (波ダッシュ) が表示されます。 この波ダッシュは、行にテキス
トが含まれていないことを示します。 まだテキストを入力していないので、すべての行の
先頭に波ダッシュが表示されます。
2.
3.
新しいファイルにテキストを入力するには、i (テキスト挿入) と入力します。 入力した i
は、画面に表示されません。
i と入力した後、次のテキストを入力します。
You start the vi program by entering the command vi,
optionally followed by the name of a new or existing file.
~
~
~
~
~
~
"file1" [New file]
入力ミスがある場合は、次の行へ移動せずに、カーソルを逆向きに移動して訂正する部分
のテキストを再入力します。
これで、file1 のテキストを入力できます。
4.
[Esc] キー (挿入モードの終了) を押してから、: (コロン) の後に w を入力し、[Return] を
押します (:w <Return>)。これで、file1 ファイルが閉じます。 w と入力すると、OSS
システムはファイルのコピーを書き込みます (保存)。
画面に、次のように表示されます。
98
ファイルの作成
You start the vi program by entering the command vi,
optionally followed by the name of a new or existing file.
~
~
~
~
~
~
"file1" [New file] 2 lines, 112 characters
画面には、新しいファイルの名前、行番号、ファイル内の文字が表示されます。
現在、まだ vi は実行中です。 vi エディターを終了するには、: (コロン) の後に q と入力
します (:q)。 q を入力すると、vi は終了し、シェルプロンプトに戻ります。
次に、残りの 2 つのファイルを作成します。このファイルは、後の節の例で使用します。
作成の手順は file1 と同じですが、入力するテキストが異なります。
5.
次の手順に従って、2 番目のファイル file2 を作成します。
vi file2
オープンシステムサービスの画面には、次のような内容が表示されます。
~
~
~
~
~
~
~
"file2" [New file]
"file2" [New file] というメッセージは、file2 が新しいファイルであることを示し
ています。
新しいファイルにテキストを入力するために、i と入力します。 次のテキストを入力しま
す。
If you have created a new file, you will find
that it is easy to add text.
次に、[Esc] を押してから、: (コロン) の後に w と入力し、[Return] を押すとファイルが保
存されます。
画面に、次のように表示されます。
If you have created a new file, you will find
that it is easy to add text.
~
~
~
~
~
~
~
"file2" [New file] 2 lines, 75 characters
:q と入力してから [Return] を押して、vi を終了します。
6.
手順 5 に従って 3 番目のファイルを作成します。 ファイル名を file3 と指定し、次のテ
キストを入力してください。
You will find that vi is a useful
editor that has many features.
次に、エスケープキーを押して、: (コロン) の後に w と q を入力してから (:wq)、[Return]
を押します。
ファイルの操作
99
100
第8章 ファイルの管理
この章では、OSS ファイルを管理する方法について説明します。 この章で説明する項目は、次
のとおりです。
•
•
•
•
•
•
•
ファイルのリスト
ファイルの表示とプリント
ファイルのコピー、名前の変更、移動
ファイルの比較とソート
システムからのファイルの削除
ファイルのリンク
ファイルタイプの特定
OSS ファイルを管理する方法を学習したい方には、この章に掲載されている例を使った実習を
お勧めします。 順番通りに実習を進めていくと、本書と同じ内容が画面に表示されます。
ホームディレクトリに移動してから、実習を開始してください。ホームディレクトリには、第
7章 (97 ページ) で作成した 3 つのファイル (file1、file2、file3) が格納されています。
ホームディレクトリ内のファイルをリストするには、ls コマンドを実行します (「ファイルの
リスト (ls)」 (101 ページ) を参照)。 第7章 (97 ページ) で作成したファイルとは異なる名前の
ファイルを使用する場合は、ファイル名を適宜置き換えてください。
以下の例で、ホームディレクトリに戻る指示がある場合は、次の cd コマンド (ディレクトリの
変更) を実行します。
$ cd
上の例の $ (ドル記号) は、OSS シェルプロンプトを示しています。 シェルプロンプトとカーソ
ルは、ユーザー環境によって異なります。
第7章 (97 ページ) で作成した 3 つのファイルの他に、ホームディレクトリに /project とい
う名前のサブディレクトリを作成する必要があります。 そのためには、ホームディレクトリで
mkdir コマンド (ディレクトリの作成) を入力します。
$ mkdir project
cd コマンドと mkdir コマンドの詳細は、第9章 (121 ページ) を参照してください。
ファイルのリスト (ls)
1 つまたは複数のディレクトリの内容を一覧表示するには、ls (ディレクトリのリスト) コマン
ドを使用します。 このコマンドを実行すると、カレントディレクトリにあるファイルとサブ
ディレクトリ (存在する場合) のリストが作成されます。 また、これ以外の情報 (カレントディ
レクトリ以外のディレクトリの内容など) を表示することもできます。
ls コマンドの一般的な形式は、次のとおりです。
ls
ls コマンドでは、各種フラグを指定できます。これにより、ディレクトリの内容に関してさ
まざまな種類の情報を表示できます。 これらのフラグについては、「OSS のディレクトリとサ
ブディレクトリ」 (30 ページ) を参照してください。
カレントディレクトリの内容のリスト
フラグを指定しないで ls コマンドを実行すると、カレントディレクトリ内のファイルとディ
レクトリの名前が一覧表示されます。
$ ls
file1
file2
file3
project
次のコマンド形式を使用すると、カレントディレクトリにあるファイルとサブディレクトリを
個々にリストできます。
ファイルのリスト (ls)
101
ls filename
filename 項目には、単一のファイル名、または複数のファイル名をスペースで区切って指定
します。 ファイルの指定には、パターンマッチング文字も使用できます。 パターンマッチン
グについては、第3章 (35 ページ) を参照してください。
たとえば、ファイル名が “file” で始まるファイルをリストするには、次のコマンドを入力しま
す。
$ ls file*
file1
file2
file3
他のディレクトリの内容のリスト
カレントディレクトリ以外のディレクトリの内容を一覧表示するには、次のコマンドを入力し
ます。
ls dirname
dirname 項目には、表示対象となるディレクトリのパス名を指定します。
ls コマンドでは、通常、現在のロケールで指定された順序でディレクトリとファイル名が一
覧表示されます。
ls コマンドで使用するフラグ
最も簡単な形式の ls コマンドでは、指定したディレクトリ内のファイルとディレクトリの名
前のみ表示されます。 ls には複数のフラグを指定でき、リスト項目に関する詳細情報を表示
したり、表示方法を変更することができます。
ls コマンドでは、次の形式でフラグを指定します。
ls -flagname
-flagname 項目には、コマンドで使用するフラグ (オプション) を 1 つまたは複数指定します。
たとえば、-l フラグを指定すると、ディレクトリの内容を示すリストが詳細な形式で作成さ
れます。 フラグの前には、必ず - (ハイフン) 文字を指定してください。
ls コマンドで複数のフラグを指定する場合は、次のようにフラグ名を 1 つの文字列にまとめ
て入力します。
$ ls -ltr
表 8-1 は、ls コマンドでよく使用されるフラグの一覧です。
表 8-1 ls コマンドのフラグ
102
フラグ
説明
-l
名前の順序に従って、詳細な形式でリストします。 -l を指定すると、ファイルまたは
ディレクトリごとに、タイプ、パーミッション、リンクの数、オーナー、グループ、サ
イズ、最後に変更された時刻をリストします。
-t
ファイルとディレクトリの名前を、名前順ではなく、最後の変更時刻 (新しいものが先
頭) でソートします。
-r
ファイルとディレクトリの名前を降順でソートします。 -r フラグと -t フラグを組み
合わせると、最後に変更された時刻順に、古いものを先頭にソートします。
-a
隠しファイルを含めて、すべてのエントリーをリストします。 このフラグを指定しな
いで ls コマンドを実行すると、. (ドット) で始まる名前 (.profile ファイルや相対パ
ス名など) はリストに含まれません。
-W NOG、-W NOE
初期ディレクトリがルートディレクトリの場合で、再帰フラグ (-R) を指定した場合
に、/G ディレクトリまたは /E ディレクトリを省略できます。 初期ディレクトリが
/、/E、/E/system ではない場合や、再帰的にリストしない場合には、このフラグは
無視されます。 再帰的操作の詳細については、第5章 (73 ページ) を参照してください。
ファイルの管理
次に、カレントディレクトリを詳細な形式 (-l フラグ) でリストした例を示します。 (larry
は、ファイルのオーナーの名前です。 ご使用の画面には、larry ではなく自分のユーザー名
が表示されます。)
$ ls -l
total 4
-rw-r--r--
1
larry
system
101
Jun 5 10:03
file1
-rw-r--r--
1
larry
system
75
Jun 5 10:03
file2
-rw-r--r--
1
larry
system
65
Jun 5 10:06
file3
drwxr-xr-x
2
larry
system
32
Jun 5 10:07
project
表 8-2 は、ls -l コマンドで画面に表示される情報について説明します。
表 8-2 ls -l で表示される内容の説明
フィールド
説明
total 4
このディレクトリ内のファイルが使用している 512 バイトブロックの数です。
-rw-r--r--
ファイルまたはディレクトリのタイプとパーミッションです。
1
ファイルまたはディレクトリに対するリンクの数です。
larry
ファイルまたはディレクトリのオーナーのユーザー名です。
system
ファイルまたはディレクトリが所属するグループです。
101
ファイルまたはディレクトリに含まれるバイト数です。
June 5 10:03
ファイルまたはディレクトリが作成された日付時刻または最後に変更された日
付時刻を、現在のロケールで定義された形式で示します。
file1
ファイルまたはディレクトリの名前です。
ls -l コマンドで表示される時刻は、ファイルまたはディレクトリが作成または最後に変更さ
れた時刻です。 変更時刻の他に、次の内容も表示できます。
ls -lu
最後にアクセス (ただし、変更は行わない) した日付時刻を表示します。
ls -lc
パーミッション、所有権、ステータスのいずれかを最後に変更した日付時刻を表
示します。
ls には、他にも便利なフラグが用意されています。 ls フラグの詳細については、ls(1) リ
ファレンスページを、オンラインまたは『Open System Services Shell and Utilities Reference
Manual』で参照してください。
ファイルの表示
システム上に保存されている任意のテキストファイルを、テキストエディターで開くことがで
きます (必要なパーミッションがある場合)。 ただし、表示 (画面フォーマットを行うか、また
は行わない) するだけで変更が不要な場合は、more、cat、pr の各コマンドで表示できます。
フォーマットなしのファイル表示 (more と cat)
次のコマンドは、ファイルをそのまま表示します。内容の表示方法を指定する特殊文字は追加
しません。
•
•
more
cat
ファイルの表示
103
フォーマットなしのファイル表示の詳細については、「ファイルのフォーマット付きの表示
(pr)」 (104 ページ) を参照してください。
more と cat の一般的な形式は、次のとおりです。
command filename
command 項目には、more または cat を指定します。 filename 項目には、単一のファイル
名、または複数のファイル名をスペースで区切って指定できます。 ファイル指定には、パター
ンマッチング文字も使用できます。 パターンマッチング文字の詳細については、第3章 (35 ペー
ジ) を参照してください。
more コマンド
more コマンドは、テキストファイルを一度に 1 画面ずつ表示します。 ファイル内のすべての
行を 1 画面で表示できない場合、more コマンドは一時停止し、現在ファイルの何パーセント
が表示済みかを示すメッセージを表示します。 このメッセージが表示されたら、次のいずれか
の操作を行うことができます。
•
•
•
スペースバーを押すと、ファイルの残りの部分が一度に 1 ページずつ表示されます。
[Return] を押すと、一度に 1 行ずつ表示されます。
q を入力すると、ファイル表示を終了します。
cat コマンド
cat コマンドは、テキストを最後まで続けて表示します。 ファイルをページごとに区切らない
ため、長いファイルを表示する場合にはあまり役立ちません。 ファイルが 1 画面に収まらない
場合、表示が速すぎて内容を確認できないからです。
長いファイルを表示する場合は、cat を使用すると簡単に確認できないので、more コマンド
をお勧めします。
more コマンドと cat コマンドには、この他にも便利なオプションがあります。 詳細について
は、これらのコマンドのリファレンスページを、オンラインまたは『Open System Services
Shell and Utilities Reference Manual』で参照してください。
ファイルのフォーマット付きの表示 (pr)
フォーマットとは、ファイルの内容を表示またはプリントする場合に、外観を制御するプロセ
スです。 pr コマンドは、シンプルかつ使いやすい形式にファイルをフォーマットします。
ファイルをフォーマット付きで表示する pr コマンドは、一般に次の形式で指定します。
pr filename
filename 項目には、ファイル名、ファイルの相対パス名、ファイルの絶対パス名、またはス
ペースで区切られたファイルの並びを指定できます。 どれを使用するかは、カレントディレク
トリに対する相対的なファイルの格納場所によって異なります。 ファイルの指定には、パター
ンマッチング文字も使用できます。
フラグを指定しないで pr コマンドを実行すると、次のフォーマットが使用されます。
•
•
•
ファイルの内容は、ページごとに分割して表示されます。
各ページの先頭の見出しに、日付、時刻、ページ番号、ファイル名が表示されます。
ページの最後に、空白行が 5 行確保されます。
pr コマンドでファイルを表示すると、画面のスクロールが速すぎて内容を確認できないこと
があります。 このような場合には、pr コマンドと more コマンドを組み合わせて、フォーマッ
ト済みファイルを表示することができます。 more コマンドを使用すると、1 画面分のテキス
トが表示されると、一時停止します。 more コマンドの詳細については、「more コマンド」
(104 ページ) を参照してください。
たとえば、report という名前の長いファイルがあり、1 画面ごとに表示が一時停止する例を
考えてみましょう。 この操作を行うには、次のコマンドを入力します。
$ pr report | more
104
ファイルの管理
最初に 1 画面分のテキストを表示して一時停止した時点で、スペースバーを押すと、次の画面
が表示されます。 ([Return] を押すと、1 行ずつに表示されます。) このコマンドでは、| (パ
イプ) 文字を使用して、pr コマンドの出力を more コマンドの入力として使用します。 パイプ
の詳細については、第3章 (35 ページ) を参照してください。
ファイルの表示では、さらに高度なフォーマットが必要になることがあります。 pr コマンド
では、さらに各種フォーマットを指定するためのフラグが用意されています。 表 8-3では、こ
れらのフラグをいくつか説明します。
表 8-3 pr コマンドのフラグ
フラグ
説明
+page
ページ番号 page からフォーマットを開始します。指定がない場合は、1 ページ
目からフォーマットを行います。 たとえば、pr +2 file1 と指定すると、2 ペー
ジ目から file1 のフォーマットを開始します。
-column
指定された数の列 (デフォルト値は 1) を作成します。
-2
ページを 2 列で表示します。 指定しないと、pr はページを 1 列にフォーマット
します。
-m
指定したすべてのファイルを同時にフォーマットします。各 1 列で、隣り合わせ
に表示します。 たとえば、pr -m file1 file2 コマンドを実行すると、左の
列に file1 の内容、右の列に file2 の内容を表示します。
-d
ダブルスペースのフォーマットで出力します。指定しない場合は、シングルスペー
スで出力します。 たとえば、pr -d file1 コマンドを実行すると、file1 はダ
ブルスペースで表示されます。
-f
フォームフィード文字を使用して、次のページに進みます。指定しない場合、pr
は、ラインフィード文字のシーケンスを発行します。 標準出力デバイスが tty の
場合、最初のページを出力する前に一時停止します。 [Return] を押すと、一時停
止が解除されます。
-F
フォームフィード文字を使用して、次のページに進みます。指定しない場合、pr
は、ラインフィード文字のシーケンスを発行します。 標準出力デバイスが tty の
場合、最初のページを出力する前に一時停止しません。
-wnum
行の幅を num バイトに設定します。指定しない場合は、72 バイトになります。
たとえば、pr -w40 file1 コマンドを実行すると、file1 の行幅が 40 バイト
に設定されます。
-onum
num バイトだけ、各行をオフセット (インデント) します。 指定しない場合、オフ
セットは 0 (ゼロ) バイトになります。 たとえば、pr -o5 file1 コマンドを実
行すると、file1 の各行は、スペース 5 つ分インデントされます。
-lnum
ページ長を num 行に設定します。指定しない場合は、66 行になります。 たとえ
ば、pr -l 60 file1 コマンドを実行すると、file1 のページ長は 60 行に設定
されます。
-h string
各ページの一番上のヘッダー (タイトル) 部分に、ファイル名ではなく string を
出力します。 string に空白または特殊文字を指定する場合は、' ' (一重引用
符) で囲んでください。 たとえば、pr -h 'My Novel' file1 コマンドを実行
すると、タイトルに “My Novel” が表示されます。
-t
pr は、見出しやページの最後にある空白行のフォーマットを行いません。 たと
えば、pr -t file1 コマンドを実行すると、見出しやページ末尾の空白行を
フォーマットしないで file1 が表示されます。
-schar
空白のスペースではなく、char で指定した文字で列を区切ります。 文字は、一
重引用符で囲んでください。 char は 1 文字です。 たとえば、pr -s'*' file1
コマンドを実行すると、列をアスタリスクで区切ります。
pr コマンドには、複数のフラグを組み合わせて指定できます。 以下の例は、pr コマンドに対
して file1 を次のようにフォーマットするよう指示しています。
•
•
2 列 (-2)
ダブルスペース (-d)
ファイルの表示
105
•
ファイル名ではなく、“My Novel” をタイトルとして表示
$ pr -2dh 'My Novel' file1
pr コマンドとフラグの詳細については、pr(1) リファレンスページを、オンラインまたは
『Open System Services Shell and Utilities Reference Manual』で参照してください。 pr コマ
ンドは、プリント用のフォーマットにも使用できます。 詳細は、「ファイルのプリント 」
(106 ページ) を参照してください。
ファイルのプリント
OSS には、lp、lpstat、cancel という 3 つのプリントユーティリティがあります。 lp ユー
ティリティは、プリントジョブ要求を Guardian スプーラーに送信します。 lpstat ユーティ
リティは、オンラインプリンターデバイスとジョブ要求のステータスを表示します。 cancel
ユーティリティは、スプーラープリントキューからプリントジョブを削除し、プリントを停止
します。
lp ユーティリティは、OSS プロセスと Guardian スプーラーサブシステム間のインターフェイ
スレイヤーです。 プリント要求は、lp ユーティリティを経由し、スプーラーにリダイレクト
されます。 指定されたプリンターデバイスがジョブをプリント可能な状態になるまで、スプー
ラープロセスは、ファイルデータをプリントキューにコピーします。 lpstat では、ジョブが
スプーラー内にある間、ジョブステータスを照会できます。cancel ユーティリティでは、プ
リントキューからプリントジョブを削除できます。 lp、lpstat、cancel の各ユーティリ
ティの詳細については、各リファレンスページを、オンラインまたは『Open System Services
Shell and Utilities Reference Manual』で参照してください。
スプーラーに送信されたジョブには、1~4095 のジョブ番号が割り当てられます。 ジョブ番号
は、各プリントジョブを識別する番号です。 ジョブには、ジョブ番号の他に、バッチ番号、優
先順位、コピー、レポート名、フォーム名、状態、場所などの属性があります。 このような属
性の表示や変更には、Guardian PERUSE コマンドを使用します。 lpstat ユーティリティは、
プリントジョブ属性の一部を表示することはできますが、変更はできません。 cancel ユー
ティリティは、lpstat コマンドが返したジョブ番号に基づいて、プリントキューのジョブを
削除します。
Guardian SPOOLCOM コマンドまたは PERUSE コマンドを使用してスプーラーに送信したコ
マンド要求は、すべて承認チェックの対象になります。 スプーラー内のジョブのステータスは
どのユーザーでも参照できますが、ステータスを変更できるのはジョブのオーナーのみです。
アプリケーションプログラムは、次の 3 つのレベルでジョブをスプーラーにスプールできま
す。
•
•
•
レベル 1 のスプールでは、ジョブ属性にシステムデフォルト値を使用し、低レベルの
Guardian WRITE、CONTROL、SETMODE プロシージャーを使用します。
レベル 2 のスプールは、レベル 1 と類似していますが、SPOOLSTART プロシージャーを
使用してデフォルトのジョブ属性を指定できる点が異なります。
レベル 3 のスプールでは、スプーラーインターフェイスプロシージャーを使用して、ス
プーラーにデータを送信します。 データはバッファー内に格納されるので、効率的にデー
タ転送できます。 lp ユーティリティは、レベル 3 のスプールを使用して、スプーラーシ
ステムとのインターフェイスを提供します。
lp ユーティリティは、入力ファイルの複数プリント (最大 32767 部) をサポートします。 各部
は 1 つのファイルとしてプリントされ、他のファイルの一部とインタリーブされることはあり
ません。
lp ユーティリティは、オープンシステムサービスによって生成されたテキストファイル (単純
な ASCII ファイル) をすべてプリントできます。 また、lp では、EDIT ファイル (タイプ 101)、
コンパイラリスト (タイプ 129)、PostScript ファイル (タイプ 0) などの Guardian ファイルを
/G ディレクトリからプリントできるので、システムの相互運用性も実現されます。 一般的に、
lp ユーティリティは入力ファイルのデータを解釈または前処理しないでスプーラーに送信し
ます。したがって、本書で指定されているファイルタイプ以外のファイル (他の構造化または
106
ファイルの管理
非構造化の Guardian ファイルまたはオブジェクトファイル) を lp ユーティリティで処理する
場合、プリンター出力は保証されません。
lp ユーティリティは、Guardian 環境でサポートされるすべてのプリンターデバイスにプリン
トできます。 また、両面プリントなど、プリンターデバイス自体がサポートしている機能につ
いては、ユーザーによる指定および制御が可能です。 スプーラーデバイスのロケーション名に
は一般的なプリンター属性が多数含まれているので (#land はランドスケープモード、#book は
製本フォーム、#pscrpt は PostScript プリンター)、ユーザーは、プリントする入力ファイルの
タイプを確認し、正しいプリンターデバイスタイプやデバイス名を選択する必要があります。
lp ユーティリティでは、プリントジョブをローカルまたはリモートアクセスできる Guardian
オンラインプリンターに送信できます。 ローカルとリモートのプリンターデバイスのステータ
スは、lpstat ユーティリティで表示できます。 同様に、cancel ユーティリティは、ローカ
ルまたはリモートのスプーラーにあるプリントジョブを中止できます。
lpstat ユーティリティは、アクセス可能なオンラインプリンターデバイスの現在のステータ
スとスプーラージョブ要求のステータスに関する情報を、標準出力ファイルに書き込みます。
スプーラーの場所を指定しないで lpstat を実行すると、通常は printcap データベースファ
イルの指定に基づいて、デフォルトの場所が使用されます。 引数を指定しないで lpstat を実
行すると、ユーザーが lp に対して行ったすべてのジョブ要求のうち、スプーラーキュー内で
待機中の要求のステータスを書き込みます。
cancel ユーティリティは、lp ユーティリティが行ったジョブ要求を削除します。
プリンターへのファイル送信 (lp)
lp コマンドは、1 つまたは複数のファイルをシステムプリンターに送信します。 lp コマンド
は、実際にファイルをプリントキューに入れます。 lp コマンドでファイルをキューに格納し
た後、プリントされるまで待つ間、ユーザーは他の作業を続行できます。
lp コマンドの一般的な形式は、次のとおりです。
lp printername filename
printername は、プリンターの名前です。システムが複数のプリンターをサポートしていて、
デフォルト以外のプリンターを使用したい場合に指定します。 デフォルトのプリンターを使用
する場合は、printername を省略できます。 filename には、ファイル名、ファイルの相対
パス名、ファイルの絶対パス名、またはスペースで区切られたファイルの並びを指定できま
す。 どれを使用するかは、カレントディレクトリに対する相対的なファイルの格納場所によっ
て異なります。 ファイルの指定には、パターンマッチング文字も使用できます。
次のコマンドは、file1 をデフォルトプリンターに送信します。
$ lp file1
次のコマンドは、file2 と file3 を printername 引数で指定されたプリンターに送信しま
す。
$ lp printername file2 file3
lp コマンドと pr コマンドを組み合わせて、ファイルのフォーマットを指定できます。 pr コ
マンドの詳細については、「ファイルのプリント 」 (106 ページ) を参照してください。 たとえ
ば、report という名前の長いファイルがあり、フォーマットしてからプリントする例を考え
てみましょう。 この操作を行うには、次のコマンドを入力します。
$ pr report | lp
このコマンドは、| (パイプ文字) を使用して、pr コマンドの出力を lp コマンドの入力として
使用します。 パイプの詳細については、第3章 (35 ページ) を参照してください。
lp コマンドには、ファイルのプリント方法を制御するフラグがいくつかあります。 このコマ
ンドでフラグを指定する場合の一般的な形式は次のとおりです。
lp flag filename
表 8-4 は、最も役立つ lp コマンドについていくつか説明しています。
ファイルのプリント
107
表 8-4 lp コマンドのフラグ
フラグ
説明
ncopies
copies で指定した部数をプリントします。 たとえば、lp --n2 file1 を実
行すると、file1 が 2 部プリントされます。 デフォルトは 1 部です。
-t string
string で指定した文字列を、ジョブ名として出力のバナーページにプリント
します。 デフォルトのジョブ名は、ユーザーの Guardian ログオン名です。
string には、最大 16 文字の英数字を指定できます。 たとえば、lp -t "My
Report" file1 を実行すると、file1 のバナーページに “My Report.” とプ
リントされます。
プリントステータスの表示 (lpstat)
プリントキュー内のジョブの位置やジョブ番号を確認するには、lpstat コマンドを使用しま
す。 プリントキューを表示するには、次のように入力します。
$ lpstat
要求がすでにプリントされている場合や、プリントキューに要求がない場合、システムは次の
ようなメッセージを表示します。
No spooler jobs are found.
プリントキューにエントリーがある場合、システムはそのエントリーを一覧表示し、プリント
中の要求を示します。 以下は、プリントキュー内のエントリーの一般的なリストです (ユーザー
環境によって異なります)。
Job
State
Owner
Pages
Copies
Pri/Hold
Location
Report
253
Print
8,68
13
1
4
#Printer1
qa.cath
256
Ready
2,56
2
2
4
#Printer1
dev.stan
258
Ready
7,34
8
1
4
#Printer1
qa.sue
プリントキューのエントリーごとに以下の内容が表示されます。
•
•
•
•
•
•
•
•
ジョブ番号
ジョブの状態 (ステータス)
オーナー (ID 番号)
ジョブのサイズ (ページ数)
部数
優先順位
宛先プリンターの場所
バナーページにプリントする名前またはタイトル (レポート)
ファイルをプリントする場合、要求のキュー内での位置やサイズから、プリントが終了するま
でにかかる時間を見積もることができます。 一般的に、優先順位の値が大きいほど、またプリ
ント要求のサイズが大きくなるほど、プリントに時間がかかります。 システムに複数のプリン
ターが設置されている場合は、表示するプリントキューを次の形式で指定します。
lpstat -p printername
-p フラグは、プリントキューを指定することを示します。 printername 項目には、プリン
ターの名前を指定します。 lpstat -s コマンドを実行すると、すべてのプリンターの名前を
確認できます。
プリントジョブのキャンセル (cancel)
cancel コマンドは、lp ユーティリティが行ったジョブ要求を削除します。
たとえば、ジョブ番号 256 をプリントキューから削除するには、次のように入力します。
cancel 256
108
ファイルの管理
停止したいジョブがプリントキューから削除されたことを確認するには、プリンターに対して
もう一度 lpstat コマンドを実行し、削除したジョブ番号がキュー内に存在しないことを確認
します。
ファイルのコピー (cp)
cp (コピー) コマンドは、カレントディレクトリ内またはディレクトリ間でファイルをコピーし
ます。
cp コマンドは、重要なファイルのバックアップコピーを作成する際に、特に便利です。 バッ
クアップファイルとオリジナルファイルは独立した 2 つのファイルであるため、バックアップ
ファイルを変更しないで保管しておき、オリジナルを変更することができます。 オリジナル
ファイルに問題が発生した場合には、バックアップが役立ちます。 また、最新の変更内容をオ
リジナルファイルに適用したくない場合は、バックアップファイルから復元することもできま
す。
cp コマンドは実際にファイルをコピーしますが、ln コマンド (リンクコマンド) は、1 つのファ
イルに複数の名前を作成します。 ln の詳細については、「ファイルのリンク (ln)」 (116 ペー
ジ) の節を参照してください。 また、cp(1) と ln(1) のリファレンスページを、オンライン
または『Open System Services Shell and Utilities Reference Manual』で参照してください。
cp コマンドの一般的な形式は、次のとおりです。
cp source destination
source は、コピー対象のファイルの名前です。destination は、source のコピー先のファ
イル名です。 source と destination には、カレントディレクトリ内のファイル名または別
のディレクトリのパス名を指定できます。
source には、1 つまたは複数のファイル名を指定できます。この場合、destination には、
ターゲットディレクトリの名前で終わるパス名を指定してください。
source 項目には、パターンマッチング文字も指定できます (第4章 (57 ページ) を参照)。
カレントディレクトリ内でのファイルのコピー
cp コマンドは、宛先ファイルが存在しない場合は、これを作成します。 一方、宛先ファイル
と同じ名前のファイルが存在する場合、cp は、既存の宛先ファイルを上書きしてソースファ
イルをコピーします。
注意: 宛先ファイルが存在する場合には、ファイル内のデータが消去されてから、ソースファ
イルがコピーされます。 したがって、cp コマンドを実行する前に、宛先ファイル内のデータ
が不要であるか、バックアップ済みであることを確認してください。
次の例では、宛先ファイルが存在しないため、cp コマンドによってファイルが作成されます。
まず、ホームディレクトリの内容をリストします。
$ ls
file1
file2
file3
project
次に、ソースファイルである file2 を、新しい宛先ファイル file2x にコピーします。
$ cp file2 file2x
ディレクトリの内容をリストして、コピー処理が成功したことを確認します。
$ ls
file1
file2
file2x
file3
project
ディレクトリ間でのファイルのコピー
次の例では、新しいサブディレクトリが必要になります。mkdir (ディレクトリの作成) コマン
ドで /reports という名前のディレクトリを作成します。
ファイルのコピー (cp)
109
$ mkdir reports
$ ls
file1
file2
file2x
file3
project
reports
次のコマンドを入力し、file2 ファイルを /reports ディレクトリにコピーします。
$ cp file2 reports
ここで、/reports の内容をリストして、file2 のコピーが格納されていることを確認しま
す。
$ ls reports
file2
cp コマンドでは、ディレクトリ間で複数のファイルをコピーすることもできます。 このコマ
ンドの一般的な形式は、次のとおりです。
cp filename1 filename2 dirname
次の例では、cp コマンドを使用して file2 と file3 の両方を /reports ディレクトリにコ
ピーし、そのディレクトリの内容をリストします。
$ cp file2 file3 reports
$ ls reports
file2
file3
この例では、file2 と file3 を dirname の一部として指定する必要はありません。 これは、
コピー対象のファイル名を、そのまま宛先ファイルの名前として使用するからです。
コピー対象ファイルの指定には、パターンマッチング文字も使用できます。 たとえば、file1、
file2、file2x、file3 を /reports にコピーする場合は、cp file* reports のように
入力できます。
ファイル名を変更して別ディレクトリにファイルをコピーするには、ソースファイル (オリジ
ナルファイル)、ディレクトリ名、/ (スラッシュ)、新しいファイル名の順序で入力します。 次
の例では、file3 を /reports ディレクトリに notes という新しい名前でコピーしていま
す。 次に、/reports ディレクトリの内容をリストします。
$ cp file3 reports/notes
$ ls reports
file2
file3
notes
ディレクトリ全体のコピー
サブディレクトリを含めたディレクトリ全体をコピーするには、cp コマンドで -R フラグを指
定します。 ただし、ソースディレクトリがルート (/) の場合、/G (Guardian ファイル) ディレ
クトリと /E (リモートノード) ディレクトリもコピーの対象となるため、サイズが非常に大き
くなる可能性があります。 ソースディレクトリにルートディレクトリを指定し、-R を指定し
て cp コマンドを実行する場合、/E ディレクトリと /G ディレクトリをコピー対象から除外す
るには、 それぞれ -W NOG フラグと -W NOE フラグを指定します。 この 2 つのフラグを指定
することによって、/G ディレクトリと /E ディレクトリはコピー対象から除外されます。
たとえば、ディレクトリツリーを別のディレクトリにコピーするには、次のように入力しま
す。
cp -R dir1 dir2
dir1 ディレクトリツリーが dir2 ディレクトリに作成されます。
110
ファイルの管理
ファイルの名前変更と移動 (mv)
mv (移動) コマンドでは、次の操作を実行できます。
•
•
ファイル名の変更
ディレクトリ間で 1 つまたは複数のファイルを移動
mv コマンドの一般的な形式は、次のとおりです。
mv oldfilename newfilename
oldfilename 項目は、移動または名前を変更するファイルの名前です。 newfilename 項目
は、オリジナルファイルに新しく割り当てる名前です。 どちらの項目にも、カレントディレク
トリ内のファイルの名前や、別のディレクトリのファイルへのパス名を指定できます。 ファイ
ル指定には、パターンマッチング文字も使用できます。
mv コマンドを実行すると、新しい名前が既存の i ノード番号にリンクされ、古い名前と古い i
ノード番号のリンクは解除されます。 mv コマンドと、ln コマンドや cp コマンドを比較して
みてください (「ファイルのリンク (ln)」 (116 ページ) と 「ファイルのコピー (cp)」 (109 ペー
ジ) を参照)。 これらのコマンドのリファレンスページを、オンラインまたは『Open System
Services Shell and Utilities Reference Manual』参照してください。
注記: リモートユーザーが OSS ファイルシステム内の SQL オブジェクトを移動する場合、そ
のファイルが宛先ディレクトリに存在すると、mv コマンドは "Guardian or User Defined Error
197" というエラーで失敗します。 このようなファイルを移動するには、ローカルユーザーが
mv コマンドを実行する必要があります。
ファイル名の変更
ファイル名の変更には、mv コマンドを使用します。
次の例では、まずカレントディレクトリにある各ファイルの i ノード番号を ls -i コマンドで
リストします。 次に mv コマンドで、ファイル名 file2x を newfile に変更します。 (実習中
の画面に表示される i ノード番号は、この例の値と異なります。 i ノード番号の詳細について
は、「リンクの仕組み - ファイル名と i ノード番号について」 (118 ページ) を参照してくださ
い。)
$ ls -i
1077 file1
1088 file2x
1080 project
1078 file2
1079 file3
1085 reports
$ mv file2x newfile
もう一度、ディレクトリの内容をリストします。
$ ls -i
1077 file1
1079 file3
1080 project
1078 file2
1088 newfile
1085 reports
この例では、次の 2 つの点に注意してください。
•
•
mv コマンドによって、ファイル名が file2x から newfile に変更されます。
オリジナルファイル (file2x) と newfile の i ノード番号はいずれも 1088 です。
mv コマンドは、i ノード番号 1088 とファイル名 file2x のリンクを解除し、i ノード番号 1088
とファイル名 newfile で置換します。 ただし、このコマンドで、ファイルそのものが変更さ
れることはありません。
ファイルの名前変更と移動 (mv)
111
ディレクトリ間のファイルの移動
mv コマンドでは、カレントディレクトリから別のディレクトリに 1 つまたは複数のファイル
を移動できます。
mv コマンドでは、ファイル名とディレクトリ名は区別されないので、ターゲットディレクト
リの名前を正しく入力してください。 無効なディレクトリ名を入力すると、mv コマンドは、
単にその名前を新しいファイル名として使用します。 その結果、ファイルの移動ではなく、
ファイル名の変更が行われます。
次の例では、ls コマンドでホームディレクトリの内容を一覧表示します。 次に、mv コマンド
で、file2 をカレントディレクトリから /reports ディレクトリに移動します。 さらに、ls
コマンドで、ファイルが削除されたことを確認します。
$ ls
file1
file2
file3
newfile
project
reports
$ mv file2 reports
$ ls
file1
file3
newfile
project
reports
最後に、/reports ディレクトリの内容をリストし、ファイルが移動されたことを確認しま
す。
$ ls reports
file2
file3
notes
ファイルの移動には、パターンマッチング文字も使用できます。 たとえば、file1 と file3
を /reports に移動する場合、次のコマンドを入力します。
$ mv file* reports
ここで、ホームディレクトリの内容をリストし、file1 と file3 が移動されたことを確認し
ます。
$ ls
newfile
project
reports
次に、file1、file2、file3 をホームディレクトリにコピーして戻します。 次のコマンド
ラインの . (ドット) は、カレントディレクトリを示します。この例では、ホームディレクトリ
になります。
$ cp reports/file* .
ファイルがホームディレクトリに戻ったことを確認します。
$ ls
file1
file2
file3
newfile
project
reports
最後に、file1、file2、file3 が、引き続き /reports ディレクトリ内に存在することを
確認します。
$ ls reports
file1
file2
file3
notes
mv でディレクトリ全体を移動すると、ソースディレクトリに含まれるすべてのサブディレク
トリも移動されることに注意してください。 ソースディレクトリがルートディレクトリ (/) の
場合、/G (Guardian ファイル) と /E (リモートファイル) も移動の対象となるため、サイズが
非常に大きくなる可能性があります。 ソースディレクトリにルートディレクトリを指定して
mv コマンドを実行する場合、/E ディレクトリと /G ディレクトリを移動の対象から除外する
には、それぞれ -W NOG フラグと -W NOE フラグを指定します。 この 2 つのフラグを指定す
ることによって、/G ディレクトリと /E ディレクトリは移動の対象から除外されます。
112
ファイルの管理
ファイルの比較 (diff)
テキストファイルの内容の比較には、diff コマンドを使用します。 diff コマンドは、ファ
イルを比較し、差分を表示します。 差異があると思われる 2 つのファイルがある場合、diff
コマンドを使用することによって、差異を的確に特定できます。
diff コマンドの一般的な形式は、次のとおりです。
diff file1 file2
diff コマンドは、file1 と file2 の各行をスキャンし、相違点を探します。 相違する行 (1
行または複数行) が見つかると、次の内容を報告します。
•
•
差異を含む行の行番号
差分のタイプ (行の追加、削除、変更のいずれか)
追加による変更が発生している場合は、次の形式で表示されます。
l[,l] a r[,r]
ここで、l は file1 の行番号、r は file2 の行番号です。 a は、差分が追加であることを示
します。 行が削除されている場合は d、変更されている場合は c と表示されます。 その後に、
実際に相違点を含む行が表示されます。 左端の列にある < (左山カッコ) は file1 の行、> (右
山カッコ) は file2 の行を示します。
次に、jan15mtg ファイルと jan22mtg ファイルに含まれる会議の出席者名簿を素早く比較す
る例を考えてみましょう。
jan15mtg
jan22mtg
alice
alice
colleen
brent
daniel
carole
david
colleen
emily
daniel
frank
david
grace
emily
helmut
frank
howard
grace
jack
helmut
jane
jack
juan
jane
lawrence
juan
rusty
lawrence
soshanna
rusty
sue
soshanna
tom
sue
tom
次のように diff コマンドを実行して、jan15mtg と jan22mtg を比較します。
$ diff jan15mtg jan22mtg
1a2,3
> brent
ファイルの比較 (diff)
113
> carole
9d10
< howard
1 月 22 日の会議には、Brent と Carole は出席していますが、Howard は出席しませんでした。
これは、行番号とテキスト出力から、brent と carole が jan22mtg ファイルに追加され、
howard が削除されていることから確認できます。
ファイルに相違点がない場合、プロンプトが表示されます。 詳細については、diff(1) のリ
ファレンスページを、オンラインまたは『Open System Services Shell and Utilities Reference
Manual』で参照してください。
ファイルのソート (sort)
テキストファイルの内容をソートするには、sort コマンドを使用できます。 このコマンドで
は、1 つのファイルまたは複数のファイルをソートできます。
sort コマンドの一般的な形式は、次のとおりです。
sort filename
filename 項目には、ファイル名、ファイルの相対パス名、ファイルの絶対パス名、またはス
ペースで区切られたファイルの並びを指定できます。 ファイルの指定には、パターンマッチン
グ文字も使用できます。
sort コマンドの 1 例として、名前のリストをソートし、現在のロケールで定義された順序で
並べ替える場合などがあります。 たとえば、list1、list2、list3 という 3 つのファイル
に名前のリストが含まれているとします。
list1
list2
list3
Zenith, Andrew
Rocca, Carole
Hambro, Abe
Dickson, Barry
Shepard, Louis
Anastio, William
D’Ambrose, Jeanette
Hillary, Mimi
Saluccio, Julius
Julio, Annette
Chung, Jean
Hsaio, Peter
3 つのファイルに含まれる名前をソートするには、次のように入力します。
$ sort list*
Anastio, William
Chung, Jean
D’Ambrose, Jeanette
Dickson, Barry
Hambro, Abe
Hillary, Mimi
Hsaio, Peter
Julio, Annette
Rocca, Carole
Saluccio, Julius
Shepard, Louis
Zenith, Andrew
114
ファイルの管理
ソート済みのリストを取得するには、次のように入力して、画面への出力を newlist という
名前のファイルにリダイレクトします。
$ sort list* >newlist
出力のリダイレクトの詳細については、第11章 (145 ページ) を参照してください。 sort コマ
ンドとその多数のオプションの詳細については、sort(1) のリファレンスページを、オンラ
インまたは『Open System Services Shell and Utilities Reference Manual』で 参照してくださ
い。
ファイルの削除 (rm)
不要になったファイルは、rm (ファイルの削除) コマンドで削除できます。 このコマンドでは、
1 つのファイルまたは複数のファイルを削除できます。
rm コマンドの一般的な形式は、次のとおりです。
rm filename
filename には、ファイル名、ファイルの相対パス名、ファイルの絶対パス名、ファイルの並
びを指定できます。 どれを使用するかは、カレントディレクトリに対する相対的なファイルの
格納場所によって異なります。
1 つのファイルの削除
次の例では、file1 というファイルをホームディレクトリから削除します。 現在の位置がホー
ムディレクトリ以外の場合は、cd (ディレクトリの変更) コマンドでホームディレクトリに戻っ
てください。 pwd (作業ディレクトリのプリント) コマンドを実行し、カレントディレクトリが
ホームディレクトリであることを確認し、ディレクトリの内容をリストします。 例では、ホー
ムディレクトリの名前は /u/uname で表記されています。
$ cd
$ pwd
/u/uname
$ ls
file1
file2
file3
newfile
project
reports
rm コマンドで newfile を削除してから、ディレクトリの内容をリストし、ファイルが削除さ
れていることを確認します。
$ rm newfile
$ ls
file1
file2
file3
project
reports
ファイルを削除するには、ディレクトリにアクセスするパーミッションが必要です。 ディレク
トリのパーミションについては、第10章 (129 ページ) を参照してください。
rm を実行すると、1 つまたは複数のファイルが削除されるだけでなく、ファイルとファイル名
のリンクも削除されます。 rm コマンドでは、ファイルへの最後のリンクが削除された時点で、
ファイル自体が削除されます。
rm コマンドによるリンクの削除については、「リンクの削除」 (118 ページ) を参照してくださ
い。
複数のファイルの削除
複数のファイルを一度に削除するには、パターンマッチング文字を指定して rm コマンドを実
行します。
たとえば、カレントディレクトリに receivablejun、payablejun、payrolljun、
expensesjun というファイルが格納されているとします。
ファイルの削除 (rm)
115
rm *jun コマンドを実行すると、上記の 4 つのファイルがすべて削除されます。
注意: パターンマッチング文字である * (アスタリスク) を rm コマンドで指定するときは、注
意が必要です。 たとえば、rm * コマンドは、カレントディレクトリ内のファイルをすべて削
除します。 ファイル名の最初または最後に * を指定する場合は、特に注意してください。 rm
*name ではなく rm * name と入力すると、ファイル名が name で終わるファイルだけでな
く、すべてのファイルが削除されます。 このような誤りを避けるためには、rm コマンドに -i
フラグを指定して、ファイルを削除する前に確認のプロンプトが表示されるようにします。
また、パターンマッチング文字である ? (疑問符) を指定して rm コマンドを実行すると、1 文
字を除いて同じ名前のファイルを削除できます。 たとえば、カレントディレクトリに record1、
record2、record3、record4 というファイルがある場合、rm record? コマンドで 4 つの
ファイルをすべて削除できます。
パターンマッチング文字を使用する場合は、rm に -i (インタラクティブ) フラグを使用すると
特に便利です。 rm -i コマンドを実行すると、ファイルを選択して削除できます。 プロンプ
トに対応してファイルを選択することにより、ファイルを削除または維持ことができます。
たとえば、ディレクトリに record1、record2、record3、record4、record5、record6
というファイルがあるとします。
次のように、-i フラグを指定して rm コマンドを実行します。
$ rm -i record?
ファイルごとにプロンプトが表示されるので、それぞれのファイルを削除するかどうかを y ま
たは n で応答します。
rm: remove record1? n
rm: remove record2? y
rm: remove record3? y
rm: remove record4? y
rm: remove record5? y
rm: remove record6? n
この例では、record1 と record6 以外のファイルをすべて削除しています。
rm コマンドでは、1 つまたは複数のファイルを削除するだけでなく、-r フラグを指定するこ
とにより、ファイルだけでなくディレクトリもプロンプトなしで同時に削除できます。
ファイルのリンク (ln)
リンクとは、ファイル名とファイル本体との関連付けを意味しています。 通常、ファイルには
リンクが 1 つあり、これはオリジナルのファイル名に対する関連付けを示します。 ただし、ln
(リンク) コマンドを使用すると、1 つのファイルを複数のファイル名に対して同時に関連付け
ることができます。
複数の場所から同じデータに対して作業する場合、リンクを利用すると便利です。
オープンシステムサービスは、ハードリンクとシンボリックリンクの両方をサポートしていま
す。 デフォルトでは、ハードリンクが指定されます。
ハードリンク
ハードリンクとは、1 つのファイルと複数の名前の関連付けです。 ハードリンクを作成する
と、そのファイルに別の名前が追加されます。 オリジナルの名前を含め、ハードリンクによっ
て関連付けられた名前は、すべて同じステータスになります。 実際のファイル名は 1 つのみ
で、他は単なるリンクである、ということはありません。
116
ファイルの管理
ハードリンクで関連付けることができるのは、同じファイルシステム上にあるファイルとファ
イル名のみです。
ファイルを変更した場合、リンクした名前でそのファイルを開くと、変更された内容が表示さ
れます。
ハードリンクした名前を持つファイルは、すべての名前を削除するまでは削除できません。
シンボリックリンク
シンボリックリンク (「ソフトリンク」とも呼ばれる) は、他のファイルまたはディレクトリに
対するポインターを含むファイルで構成されます。 このポインターは、宛先となるファイルま
たはディレクトリへの単なるパス名です。 ファイルやディレクトリの実際の名前はオリジナル
名であり、これは 1 つしかありません。 ポインターとそのファイル名を含むファイルは、リン
クされたファイルとは区別されます。
シンボリックリンクでは、ファイルとディレクトリの両方をリンクできます。 さらに、異なる
ファイルシステム上にあるファイルやディレクトリをリンクすることも可能です。
ファイルを変更すると、別の名前でファイルを開いても、変更された内容が表示されます。
シンボリックリンクを指定するには、ln コマンドで -s フラグを指定します。
シンボリックリンクを持つファイルは、オリジナル名が削除された時点で削除されます。残っ
ているシンボリックリンクは、すでに存在しないファイルを指すことになります。
リンクとファイルシステム
リンクの説明で使用する「ファイルシステム」という用語は、これまで本書で使用してきた用
語の意味とは異なります。 これまで、ファイルシステムという用語は、ファイルをディレクト
リ構造に編成することとして定義されていました。 これに対して、ここでは、「1 つのディス
クパーティション内に含まれるファイルとディレクトリ」というさらに厳密な定義を行いま
す。 (ディスクパーティションは、物理ディスクまたはその一部であり、ファイルディレクト
リを格納できるように準備されたものです。)
リンクの使用
同じファイルシステム内のファイルにリンクするには、次のコマンド形式を使用します。
ln /dirname1/filename1 /dirname2/filename2
/dirname1/filename1 項目は、既存ファイルのパス名です。 /dirname2/filename2 項
目は、既存の /dirname1/filename1 にリンクする新しいファイル名のパス名です。 同じ
ディレクトリ内のファイルにリンクする場合には、dirname1 引数と dirname2 引数はオプ
ションです。
次の例では、ln コマンドを使用して、新しいファイル名 checkfile を既存の file3 という
名前のファイルにリンクしています。
$ ln file3 checkfile
more コマンドを使用して、file3 と checkfile という 2 つの名前が同じファイルにリンク
されていることを確認します。
$ more file3
次の内容が表示されます。
You will find that vi is a useful
editor that has many features.
checkfile のテキストを表示します。
$ more checkfile
次の内容が表示されます。
You will find that vi is a useful
editor that has many features.
ファイルのリンク (ln)
117
file3 と checkfile には、同じ内容が含まれていることがわかります。 一方の名前のファ
イルに対して変更を行った場合、もう一方の名前でファイルにアクセスしても、変更内容を参
照できます。 たとえば、file3 を更新すると、checkfile も更新されます。
リンクの仕組み - ファイル名と i ノード番号について
ファイルには、それぞれ「i ノード番号」という ID 番号が割り当てられています。 i ノード番
号は、ファイル名ではなく、ファイルそのもの (特定の場所に格納されているデータ) を示しま
す。 i ノード番号によって、同じファイルシステム内にある個々のファイルが識別されます。
ディレクトリエントリーは、物理ファイルを示す i ノード番号とファイル名を関連付ける単純
なリンクです。 このようなファイル名とファイルの関連付けによって、複数のファイル名を 1
つの物理ファイル (つまり同じ i ノード番号) にリンクすることができます。 カレントディレク
トリにあるファイルの i ノード番号を表示するには、次のように、ls コマンドで -i (i 番号の
プリント) フラグを指定します。
ls -i
ここで、ユーザーのログインディレクトリにあるファイルの ID 番号を確認してみましょう。
表示されている各ファイル名の前にある番号が、そのファイルの i ノード番号です。
$ ls -i
1079 checkfile
1077 file1
1078 file2
1079 file3
ユーザーの画面にリストされる内容には、この例の i ノード番号とは異なる数値が表示されま
す。 しかし、file3 と checkfile の i ノード番号は同じである点に注意してください。この
2 つは、前の例でリンクしたファイルです。 この例では、i ノード番号は 1079 です。
i ノード番号は、特定のファイルシステム内にあるファイルを示す番号なので、異なるファイ
ルセット間でハードリンクを設定することはできません。
リンクの削除
ファイルを削除するには、rm (ファイルの削除) コマンドを使用します。 1 つのファイルに複数
のファイル名がリンクされている場合 (複数の名前が 1 つの i ノード番号を参照)、rm コマンド
を実行すると、i ノード番号とファイル名とのリンクは削除されますが、物理ファイルは削除
されません。 図 8-1に示すように、rm コマンドで物理ファイルが削除されるのは、ファイルと
ファイル名の最後のリンクが削除された時点です。
rm コマンドの詳細については、「ファイルの削除 (rm)」 (115 ページ) を参照してください。
図 8-1 ハードリンクの削除
i ノード番号と、特定の i 番号にリンクされているファイル名の数を表示するには、ls コマン
ドで -i (i ノード番号のプリント) フラグと -l (ロングリスト) フラグを指定します。
ls -il
ここで、ホームディレクトリのリンクを確認します。 ご使用の画面で表示される i ノード番号
と、この例に記載されている番号は異なるのことに注意してください。また、larry と system
の代わりに、それぞれ自分のユーザー名とグループ名が表示されます。
$ ls -il
total 13
118
ファイルの管理
1079 -rw-r--r-- 2 larry system
65 Jun 5 10:06 checkfile
1077 -rw-r--r-- 1 larry system
101 Jun 5 10:03 file1
1078 -rw-r--r-- 1 larry system
75 Jun 5 10:03 file2
1079 -rw-r--r-- 2 larry system
65 Jun 5 10:06 file3
1080 drwxr-xr-x 2 larry system
32 Jun 5 10:07 project
もう一度、各エントリーの最初の項目として、そのファイル名の i ノード番号が表示されてい
ます。 2 番目の項目は、ファイルパーミッションです (第10章 (129 ページ) で詳細に説明)。
3 番目の項目 (ユーザー名の左の番号) は、各 i ノード番号にリンクされているリンクの数を示
しています。 file3 と checkfile には同じ i ノード番号 1079 が表示され、それぞれのリン
ク数も 2 と表示されていることに注意してください。 rm コマンドでファイル名を削除するた
びに、その i ノード番号にリンクされているリンク数が 1 つずつ減っていきます。
次の例では、rm コマンドを使用してファイル名 checkfile を削除しています。
$ rm checkfile
次に、ls -il コマンドでディレクトリの内容をリストします。 rm コマンドを実行した結果、
i ノード番号 1079 へのリンク数が 1 だけ小さくなっています。これは、file3 がリンクされて
いるのと同じ i 番号です。
$ ls -il
total 13
1077 -rw-r--r-- 1 larry system
101 Jun 5 10:03 file1
1078 -rw-r--r-- 1 larry system
75 Jun 5 10:03 file2
1079 -rw-r--r-- 1 larry system
65 Jun 5 10:06 file3
1080 drwxr-xr-x 2 larry system
32 Jun 5 10:07 project
ファイルタイプの特定 (file)
ファイルの内容を表示せずに、どのようなデータが格納されているのかを確認するには、file
コマンドを使用します。 file コマンドは、次のすべてのファイルを表示します。
•
•
•
•
テキストファイル
ディレクトリ
プログラミング言語のソースコードファイル
実行可能ファイル
特に、ファイルにコンパイル済みのプログラムが格納されている可能性がある場合には、file
コマンドを使用すると便利です。
file コマンドの一般的な形式は、次のとおりです。
file filename
filename には、ファイル名、ファイルの相対パス名、ファイルの絶対パス名、ファイルの並
びを指定できます。 どれを使用するかは、カレントディレクトリに対する相対的なファイルの
格納場所によって異なります。 ファイルの指定には、パターンマッチング文字も使用できま
す。
たとえば、ホームディレクトリ内にあるファイルのタイプを特定するには、次のように入力し
ます (/u/uname の部分にはユーザーのホームディレクトリが表示されます)。
$ cd
$ pwd
/u/uname
ファイルタイプの特定 (file)
119
$ file *
file1:
ascii text
file2:
ascii text
file3:
ascii text
project:
directory
reports:
directory
file コマンドを実行した結果、file1、file2、file3 は ASCII テキストファイル、project
と reports はディレクトリであることが確認されました。
注記: ASCII テキストファイルについては、file コマンドは ascii text または English
text を返します。
file コマンドの詳細については、file(1) リファレンスページを、オンラインまたは『Open
System Services Shell and Utilities Reference Manual』で参照してください。
120
ファイルの管理
第9章 ディレクトリの管理
この章では、OSS ディレクトリを管理する方法について説明します。 この章で説明する項目
は、次のとおりです。
•
•
•
•
ディレクトリの作成
ディレクトリの変更
ディレクトリの表示、コピー、名前の変更
ディレクトリの削除
ディレクトリを管理する方法を学習したい方には、この章に掲載されている例を使った実習を
お勧めします。 例は、指定された順序で実行してください。
例を使用した作業を開始する前に、OSS 環境内のユーザーのホームディレクトリが、前章第8
章 (101 ページ) の例を完了した後の状態になっている必要があります。次の項目が含まれてい
るはずです。
•
•
•
•
file1、file2、file3 の各ファイル
record1 ファイル、および record6 ファイル (rm コマンドの例を使用する前に、record1
ファイルから record6 ファイルまで作成した場合)
file1、file2、file3、および notes の各ファイルを含む /reports サブディレクト
リ
空の /project サブディレクトリ
ホームディレクトリに record1 ファイルと record6 ファイルが存在しない場合、この時点
で作成してください。 (空のファイルで構いません。)
別の名前のファイルを使用している場合には、例に対する作業で適切な名前に置き換えてくだ
さい。 カレントディレクトリ内のファイルのリストを作成するには、ls コマンドを入力しま
す。
ディレクトリの作成 (mkdir)
ディレクトリを使用すると、個々のファイルを使いやすいグループに編成できます。 たとえ
ば、レポートのすべてのセクションを /reports という名前のディレクトリに入れること、ま
たコスト見積もりに使用するデータとファイルを /estimate という名前のディレクトリに入
れることができます。 ディレクトリは、ファイルや他のディレクトリ、またはその両方を含む
ことができます。
ユーザーのホームディレクトリは、ユーザーのコンピューターアカウントの設定時に作成され
ます。 しかし、システムでの作業時に作成および編集するファイルを編成するために、ディレ
クトリを追加して作成することが必要になります。
新しいディレクトリは、 mkdir (ディレクトリの作成) コマンドで作成できます。
mkdir コマンドの形式は、次のとおりです。
mkdir dirname
dirname 項目は、新しいディレクトリに割り当てる名前です。 mkdir を実行すると、dirname
で指定した名前でディレクトリが作成されます。 新しいディレクトリは、ユーザーの作業ディ
レクトリのサブディレクトリとして作成されます。
次の例では、cd コマンドを入力して、自分のホームディレクトリにいることを確認します。
次に、 /project2 という名前の新しいディレクトリを作成します。
$ cd
$ mkdir project2
次に、相対パス名を入力することにより、/reports ディレクトリ内に /status という名前
のサブディレクトリを作成します。
$ mkdir reports/status
ディレクトリの作成 (mkdir)
121
図 9-1 のファイル構造では、/project、/project2、および /reports ディレクトリがホー
ムディレクトリの 1 レベル下に配置されており、/status ディレクトリが /reports ディレ
クトリの 1 レベル下に配置されています。
図 9-1 ファイル構造の例
ファイル名に関して、ディレクトリ名の最大長は 248 バイト (デフォルト長) です。
ファイル名とディレクトリ名を自動的に区別する記号やその他の表記法は存在しません。した
がって、ファイルとディレクトリを指定する独自の命名規則を設定すると有効な場合がありま
す。
カレントディレクトリの内容をリストするときに、ls -F コマンドを使用すると、ファイル名
とディレクトリ名を区別できます。 このコマンドの詳細については、「ディレクトリの表示
(ls -F)」 (124 ページ) を参照してください。
ディレクトリの変更 (cd)
cd (ディレクトリの変更) コマンドは、カレント (作業) ディレクトリを変更します。 正しいパ
ス名を指定して cd コマンドを使用することにより、ファイルシステム内の任意のディレクト
リから他の任意のディレクトリに移動できます。
カレントディレクトリを他のディレクトリに変更する前に、新しいディレクトリにアクセスす
るためのパーミッションを取得する必要があります。 ディレクトリパーミッションの詳細につ
いては、第10章 (129 ページ) を参照してください。
cd コマンドの一般的な形式は、次のとおりです。
cd pathname
pathname 項目には、カレントディレクトリに設定するディレクトリの絶対パス名または相対
パス名のどちらかを指定できます。
パス名なしで cd コマンドを入力すると、ユーザーのホームディレクトリに戻ります。
カレントディレクトリ名を確認するには、pwd (作業ディレクトリのプリント) コマンドを入力
します。
カレントディレクトリの変更
ディレクトリの変更方法を示す次の例では、まず pwd コマンドを入力してユーザーのカレント
ディレクトリ名 (パス名) を表示します。 次に、cd コマンドを使用して、現在のパス名を変更
します。
必要な場合には、パス名なしで cd コマンドを入力して、最初にホームディレクトリに戻りま
す。 次に、pwd コマンドを入力して、ホームディレクトリがカレントディレクトリであること
を確認します (/u/uname の代わりに、ホームディレクトリの名前が表示されます)。
$ cd
$ pwd
/u/uname
122
ディレクトリの管理
次に、相対パス名 project2 を指定した cd コマンドを入力して、カレントディレクトリを
ホームディレクトリから /project2 に変更します。
$ cd project2
もう一度 pwd を入力して、/project2 がカレントディレクトリであることを確認します。 次
に、cd を入力してホームディレクトリに戻ります。
$ pwd
/u/uname/project2
$ cd
カレントディレクトリを /status ディレクトリに変更するには、次のように、相対パス名を
指定した cd コマンドを入力します。
$ cd reports/status
$ pwd
/u/uname/reports/status
相対パス名表記の使用
以下の相対パス名表記を使用して、迅速にディレクトリを変更できます。
•
•
ドット表記 (. と ..)
波ダッシュ表記 (~)
すべてのディレクトリには、. (ドット) と .. (ドット 2 つ) で表現されるエントリーが少なくと
も 2 つ存在します。 これらのエントリーは、カレントディレクトリからの相対的なディレクト
リを指します。
. (ドット)
このエントリーは、カレントディレクトリを指します。
.. (ドット 2 つ)
このエントリーは、カレントディレクトリの親ディレク
トリを指します。 親ディレクトリは、カレントディレク
トリのすぐ上のディレクトリです。
. エントリーと .. エントリー、および名前がピリオドで始まる任意のファイルを表示するに
は、-a フラグを指定した ls コマンドを使用します。
次の例では、まずホームディレクトリに移行し、次に /reports ディレクトリに移行します。
$ cd
$ cd reports
次の ls コマンドは、前に作成した /status サブディレクトリを含めて、/reports ディレ
クトリの内容を表示します。
$ ls
file1
file2
file3
notes
status
次の ls -a コマンドは、. (ドット) および .. (ドット 2 つ) で始まる相対ディレクトリ名を含
めて、すべてのディレクトリエントリーをリストします。
$ ls -a
.
..
file1
file2
file3
notes
status
相対ディレクトリ名 .. (ドット 2 つ) を使用して、カレントディレクトリの上方に配置された
ファイルとディレクトリを指すことができます。 つまり、ディレクトリツリーを 1 レベル上に
移動する場合には、フルパス名を使用する代わりに、相対ディレクトリ名を使用して親ディレ
クトリを表すことができます。
ディレクトリの変更 (cd)
123
次の例では、cd コマンドは、カレントディレクトリを、/reports から、/reports の親ディ
レクトリである、ユーザーのホームディレクトリに変更しています。 /u/uname エントリー
は、ユーザーのホームディレクトリを表すことに注意してください。
$ pwd
/u/uname/reports
$ cd
..
$ pwd
/u/uname
ディレクトリ構造を上に 2 レベル以上移動するには、次の例に示すように、一連の相対ディレ
クトリ名を使用できます。 次の pwd コマンドへの応答である / (スラッシュ) エントリーは、
ホームディレクトリの親ディレクトリを表しています。
$ cd ../..
$ pwd
/
~ (波ダッシュ) を使用して、ユーザーのホームディレクトリを指定できます。 たとえば、ユー
ザーのホームディレクトリを指定するには、次のように波ダッシュのみを使用します。
$ cd ~
cd コマンドで使用すると、OSS シェルでは、パス名を指定せずに単に cd のみを入力したのと
同じ結果になるので、波ダッシュ表記ではキーストロークが保存されません。
しかし、ホームディレクトリの下のディレクトリにアクセスしたい場合には、波ダッシュ表記
を使用してキーストロークを保存できます。 たとえば、ファイルシステム内の任意の場所から
/reports ディレクトリにアクセスするには、次のように入力します。
$ cd ~/reports
また、波ダッシュ表記は、別のユーザーのホームディレクトリ内またはその下にあるファイル
やディレクトリにアクセスしたい場合に非常に便利です。 そのユーザーのホームディレクトリ
の正確な位置を知る必要はなく、適切なパーミッションを持っていると想定した場合、最小の
キーストロークでそこに到達できます。
たとえば、ファイルシステム内の任意の場所から、次のように入力することにより、仮定上の
ユーザー jones のホームディレクトリを指定できます。
$ cd ~jones
さらに、カレントディレクトリを、/jones 下にある /status という名前のディレクトリに
変更するには、次のように入力できます。
$ cd ~jones/status
ディレクトリの表示 (ls -F)
ディレクトリには、ファイルだけでなく、サブディレクトリも入れることができます。 サブ
ディレクトリを表示するには、ls -F コマンドを使用します。 このコマンドは、カレントディ
レクトリの内容を表示し、ディレクトリとファイルを区別できるように、各ディレクトリに /
(スラッシュ文字) のマークを付けます。
ls -F コマンドの一般的な形式は、次のとおりです。
ls -F
次の例では、まずホームディレクトリに戻り、次に ls -F コマンドを入力してディレクトリ
の内容を表示します。
$ cd
$ ls -F
124
ディレクトリの管理
file1
file3
project2/
record6
file2
project/
record1
reports/
/project、/project2、および /reports の各ディレクトリにはスラッシュのマークが付
いていることに注意してください。
ls コマンドにエイリアスを定義して、ls を入力すると ls -F コマンドが実行されるように
することができます。 エイリアスの定義の詳細については、第3章 (35 ページ) を参照してく
ださい。
ディレクトリのコピー (cp)
-r フラグを指定して cp コマンドを使用すると、ディレクトリ群およびディレクトリツリーを
ファイルシステムの別の場所にコピーできます。 cp -r コマンドの形式は、次のとおりです。
cp -r source destination
source 項目は、コピー対象のディレクトリの名前です。 destination 項目は、source の
コピー先のディレクトリ位置の名前です。
図 9-2 は、次の例の cp -r コマンドで、ディレクトリツリー /reports がディレクトリ
/project2 に、どのようにコピーされるかを示しています。 コマンドは、ユーザーのホーム
ディレクトリから入力されると想定しています。
$ cp -r reports project2
図 9-2 ディレクトリを別のディレクトリにコピー
/reports ディレクトリの file1、file2、file3、および notes の各ファイル、およびサ
ブディレクトリ /status が /project2 にコピーされています。
ディレクトリ名の変更 (mv)
名前を変更したディレクトリが同じディスクパーティションに含まれている場合のみ、mv コ
マンドを使用してディレクトリの名前を変更できます。 mv コマンドは、ファイル名の変更に
も使用されます。
mv コマンドの一般的な形式は、次のとおりです。
mv olddirectoryname newdirectoryname
olddirectoryname 項目は、削除または名前を変更したいディレクトリの名前です。
newdirectoryname 項目は、そのディレクトリに割り当てる新しい名前です。
ディレクトリのコピー (cp)
125
次の例では、まず /reports ディレクトリに移行します。 次に、ls -i -d コマンドを使用
して、/status ディレクトリの i ノード番号をリストします (実際の i 番号は、例とは異なる
可能性があることに注意してください)。
$ cd reports
$ ls -i -d status
1091 status
ここで mv コマンドを入力して、/status の名前を /newstatus に変更します。 次
に、/newstatus ディレクトリの i 番号をリストします。
$ mv status newstatus
$ ls -i -d newstatus
1091 newstatus
2 番目の ls -i -d コマンドでは、元のディレクトリ名 /status はリストされないことに注
意してください。 新しいディレクトリ /newstatus がリストされ、 この新しいディレクトリ
に対して元の /status ディレクトリと同じ i ノード番号 (この例では 1091) が表示されます。
ディレクトリの削除 (rmdir)
特定のディレクトリが必要なくなった場合、rmdir (ディレクトリの削除) コマンドを使用して
そのディレクトリをファイルシステムから削除できます。 このコマンドは、空のディレクトリ
だけを削除します。つまり、ファイルやサブディレクトリを含まないディレクトリだけが削除
されます。 ディレクトリからファイルを削除する方法については、「ファイルとディレクトリ
を同時に削除 (rm -r) 」 (128 ページ) および第8章 (101 ページ) を参照してください。
カレントディレクトリになっている間は、そのディレクトリを削除できません。 詳細について
は、「カレントディレクトリの削除 」 (127 ページ) を参照してください。
rmdir コマンドの一般的な形式は、次のとおりです。
rmdir dirname
dirname 項目は、削除するディレクトリの名前、またはパス名です。
以下の各節でこの例の作業を行う前に、次の説明に従って /project2 ディレクトリ内に 3 つ
のサブディレクトリを作成してください。
まず cd コマンドを使用して /project2 ディレクトリに移動し、/project2 をカレントディ
レクトリにします。
/project2 ディレクトリから mkdir コマンドを使用して、/schedule、/tasks、および
/costs の各ディレクトリを作成します。 最後に、/project2 ディレクトリの内容をリスト
します。
$ cd project2
$ mkdir costs schedule tasks
$ ls
costs
reports
schedule
tasks
次に、cd コマンドを使用してホームディレクトリに戻ります。
$ cd
$ pwd
/u/uname
126
ディレクトリの管理
空のディレクトリの削除
rmdir コマンドは、空のディレクトリだけを削除します。 ファイルまたはサブディレクトリ
が含まれるディレクトリを削除しようとすると、次の例に示すように、rmdir コマンドでエ
ラーが発生します。
$ rmdir project2
rmdir: project2: Directory not empty
/project2 ディレクトリを削除する前に、まずそのディレクトリの内容を削除する必要があ
ります。 次の例では、まず cd コマンドで /project2 をカレントディレクトリとし、次に ls
コマンドで /project2 の内容をリストしています。
$ cd project2
$ ls
costs
reports schedule
tasks
次に、カレントディレクトリから /schedule ディレクトリを削除し、さらに /project2 ディ
レクトリの残りの内容をリストします。
$ rmdir schedule
$ ls
costs
tasks
/project2 ディレクトリには、引き続き /costs、/reports、および /tasks の 3 つのサ
ブディレクトリがあります。 希望する場合には、パターンマッチング文字を使用して、これら
のディレクトリを削除できます。 これらのサブディレクトリを削除すると、「カレントディレ
クトリの削除 」 (127 ページ) で説明するように /project2 ディレクトリを削除できます。
複数のディレクトリの削除
パターンマッチング文字を使用すると、rmdir コマンドを使用して、2 つ以上のディレクトリ
を削除できます。
たとえば、/project2 ディレクトリにいると想定し、2 つのサブディレクトリ /costs と
/tasks を削除したいとします。 そのためには、rmdir *s?s コマンドを入力します。 次に、
ls コマンドを入力して /project2 ディレクトリにエントリーが存在しないことを確認しま
す。
$ rmdir *s?s
$ ls
* (アスタリスク) 文字だけを付けて rmdir コマンドを入力 (rmdir *) すると、カレントディ
レクトリからすべての空のディレクトリが削除されます。 パターンマッチング文字 * の使用に
は、注意が必要です。
カレントディレクトリの削除
ユーザーのカレントディレクトリ (つまり、現在作業しているディレクトリ) は削除できませ
ん。また、カレントディレクトリを含むディレクトリやサブディレクトリも削除できません。
カレントディレクトリを削除するには、まずその上のディレクトリに移動する必要がありま
す。
/project2 ディレクトリは空です。 /project2 を削除するには、まず /project2 の親ディ
レクトリであるホームディレクトリに移動します。 次に、rmdir dirname コマンドを使用し
て /project2 を指除し、ls を入力して削除を確認します。
$ cd
$ rmdir project2
ディレクトリの削除 (rmdir)
127
$ ls
file1
file2
file3
project
record1
record6
reports
これで、ホームディレクトリには /project2 ディレクトリが存在しなくなります。
ファイルとディレクトリを同時に削除 (rm -r)
rmdir コマンドは、ファイルではなく、ディレクトリだけを削除します。
-r (再帰) フラグを付けて rm コマンドを使用すると、ファイルとディレクトリを同時に削除で
きます。
rm -r コマンドは、指定されたディレクトリからまずファイルとサブディレクトリ (その中の
ファイルと共に) を削除し、次に指定されたディレクトリ自体を削除します。 そのため、この
コマンドの使用には注意が必要です。
rm -r コマンドの形式は、つぎのとおりです。
rm -r pathname
pathname 項目は、削除するディレクトリの絶対パス名または相対パス名のどちらかにするこ
とができます。 ファイルの指定には、パターンマッチング文字も使用できます。
注意: -r フラグの使用には、注意が必要です。 ユーザーのホームディレクトリから rm -r
* コマンドを入力すると、ユーザーがアクセス権を持つすべてのファイルとディレクトリが削
除されます。
rm -r コマンドを使用してファイルとディレクトリを削除する場合には、次の形式で、コマン
ドラインに -i フラグを指定するのが良い方法です。
rm -ri pathname
この形式でコマンドを入力すると、各ファイルやディレクトリを削除する前に確認を求められ
ます。 プロンプトに対して y (yes) または n (no) を応答することにより、ファイルやディレク
トリの実際の削除を制御できます。
rm -r コマンドを使用してルートディレクトリ内のファイルやディレクトリを削除すると、デ
フォルトで、/E ディレクトリと /G ディレクトリも削除されることに注意してください。 /E
ディレクトリと /G ディレクトリが削除されるのを防止するには、ルートディレクトリから
rm -r コマンドを使用するときに、そのコマンドラインに -W NOE フラグと -W NOG フラグ
を指定してください。
128
ディレクトリの管理
第10章
ファイルおよびディレクトリへのアクセスの管
理
この章では、ファイルおよびディレクトリへのアクセス制御を制御する方法について説明しま
す。 この章で説明する項目は、次のとおりです。
•
•
•
•
ファイルおよびディレクトリのパーミッションとは
ファイルおよびディレクトリのパーミッションの表示と設定
オーナーとグループの変更
ファイルオーディットとは
ディレクトリを管理する方法を学習したい方には、この章に掲載されている例を使った実習を
お勧めします。 各例は、指定された順序で実行してください。
例を使用した作業を開始する前に、OSS 環境内のユーザーのホームディレクトリが、前章第9
章 (121 ページ) の例を完了した後の状態になっている必要があります。次の項目が含まれてい
るはずです。
•
•
•
file1、file2、file3、record1、record6 の各ファイル
file1、file2、file3、および notes の各ファイルを含む /reports サブディレクト
リ、および /newstatus サブディレクトリ
空の /project サブディレクトリ
別の名前のファイルを使用している場合には、例に対する作業では適切な名前を代入してくだ
さい。 カレントディレクトリ内のファイルのリストを作成するには、ls コマンドを入力しま
す。
空のプロジェクトディレクトリ内に、file1、file2、file3、および notes の各ファイル
と、/status サブディレクトリを作成します。
ファイルとディレクトリの保護
次のいずれかの理由により、ファイルとディレクトリに対する他のユーザーからのアクセスを
制限することが必要な場合があります。
•
•
ファイルとディレクトリに、一部のシステム利用者に公開するべきではない機密情報が含
まれている。
ファイルとディレクトリへのアクセス権を持つユーザーのうち、一部のユーザーにのみ変
更を許可する。
パーミッションとは
パーミッションとは、システム上で作業するユーザーに対して、ファイルとディレクトリの使
用方法を設定する単純なコードです。 パーミッションを設定または変更することにより、ファ
イルとディレクトリを保護することができます。
また、パーミッションの設定と変更は、ユーザーのファイルやディレクトリに対する「保護の
設定と変更」とも呼ばれます。
ファイルとディレクトリへのアクセスは、次の 3 つの方法で制御します。
•
•
•
r (読み取り: ユーザーにファイルの表示とプリントを許可)
w (書き込み: ユーザーにファイルの変更を許可)
x (実行: ユーザーにファイルの実行とディレクトリの検索を許可)
システム上のユーザーは、以下の 1 つまたは複数に分類されます。
•
•
•
u (ユーザー/オーナー)
g (グループ)
o (アザー、その他すべてのユーザー。「世界」とも呼ばれます)
ファイルとディレクトリの保護
129
一般に、ファイルまたはディレクトリのユーザー/オーナーは、その作成者です。 ファイルの
オーナーは、「ファイルとディレクトリのパーミッションの設定 (chmod)」 (133 ページ) で説
明する chmod コマンドを使用して、ファイルのパーミッションを変更できます。
グループは、ファイルが所属するグループを指定します。 ファイルのオーナーは、「オーナー
とグループの変更」 (139 ページ) で説明する chgrp コマンドを使用して、ファイルのグループ
ID を変更できます。
「アザー」は、システム上の他のすべてのユーザーを示します。
3 種類のユーザーに対して、各ファイルとディレクトリへの読み取り、書き込み、または実行
を行う別々のパーミッションを設定できます。 ファイルやディレクトリに、読み取り、書き込
み、または実行を行うパーミッションを割り当てる事により、ファイルとディレクトリにアク
セスできるユーザーを制限するだけでなく、そのアクセス方法を規制することができます。
表 10-1 に示すように、通常のファイルとディレクトリでは、3 種類のパーミッションの意味が
若干異なります。
表 10-1 ファイルとディレクトリのパーミッションの相違点
パーミッション
ファイルに対する意味
ディレクトリに対する意味
r (読み取り)
内容を表示、プリントできます。
内容を読み取ることはできますが、検索はで
きません。 通常、r と x は一緒に使用され
ます。
w (書き込み)
内容を変更、削除できます。
エントリーを追加、削除できます。
x (実行)
ファイルはプログラムとして使用できます。 ディレクトリは検索できます。
これらをまとめて、すべてのファイルやディレクトリに対するパーミッションは「パーミッ
ションコード」と呼ばれます。 たとえば、次に例を示します。
drwxrwxrwx
図 10-1 に示すように、パーミッションコードは 4 つの部分で構成されます。
•
•
•
•
コードの最初の文字は、ファイルの種類を表します。 - (ハイフン) は一般ファイルを表
し、d はディレクトリを表します。 その他の文字は I/O デバイスを表します。
次の 3 文字は、ユーザーまたはオーナーのパーミッションを r (読み取り)、w (書き込み)、
そして x (実行) の順序で表しています。
次の 3 文字は、グループのパーミッションを r、w、x の順序で表しています。
最後の 3 文字は、アザー (その他すべてのユーザー) のパーミッションを r、w、x の順序
で表しています。
オーナーの「実行」位置にある s は、ユーザー ID の設定 (setuid) ビットが設定されているこ
とを表します。 グループの「実行」位置にある s は、グループ ID の設定 (setgid) ビットが設
定されていることを表します。 setuid ビットと setgid ビットは、プログラムに対して、その
許可がなければアクセスできないファイルとプロセスへのアクセスを許可するときに使用しま
す。
アザーの「実行」位置にある t は、スティッキービットが設定されていることを表します。
ディレクトリにスティッキービットが設定されている場合、アザーユーザーが書き込みパー
ミッションを持っている場合であっても、そのディレクトリまたはファイルを削除できるの
は、そのディレクトリのオーナーだけです。 プロセスに対してスティッキービットを設定する
と、そのプロセスは、実行されていない場合にもスワップ領域で保持されます。 スティッキー
ビットは、頻繁に実行されるプロセスに対して使用される場合があります。
オーナー、グループ、またはその他のパーミッション内のハイフンは、通常、コード内でその
位置を占めるパーミッション (読み取り、書き込み、実行) が有効ではないことを示すことに注
意してください。
130
ファイルおよびディレクトリへのアクセスの管理
図 10-1 ファイルとディレクトリのパーミッションフィールド
デフォルトのパーミッション
ファイルまたはディレクトリを作成すると、システムが、あらかじめ決められたパーミッショ
ンコードを自動的に提供します。 一般的なファイルのパーミッションコードは、次のとおりで
す。
-rw-r--r--
このファイルのパーミッションコードは、オーナーは読み取りパーミッションと書き込みパー
ミッションを持ち、実行パーミッションを持たないことを指定します。また、グループとア
ザー (その他すべてのユーザー) は、読み取りパーミッションを持ち、書き込みパーミッション
と実行パーミッションを持たないことを指定します。
一般的なディレクトリのパーミッションコードは、次のとおりです。
パーミッションとは
131
drwxr-xr-x
このディレクトリのパーミッションコードは、オーナーは読み取り、書き込み、実行パーミッ
ションを持つことを指定します。また、グループとアザー (その他すべてのユーザー) は、読み
取りパーミッションと実行のパーミッションを持ちますが、書き込みパーミッションを持たな
いことを指定します。
システムが提供するデフォルトのパーミッションコードにより、ファイルやディレクトリを作
成する際にコードを毎回指定する作業が軽減されます。 独自のデフォルトのパーミッション
コードを作成する場合、umask コマンドを使用して、ユーザーマスクを変更する必要がありま
す。 umask の説明については、「ユーザーマスクの設定」 (137 ページ) を参照してください。
ファイルとディレクトリのパーミッションの表示 (ls)
カレントディレクトリ内のすべてのファイルとディレクトリについて現在のファイルパーミッ
ションを表示するには、-l フラグを指定して ls コマンドを入力します。 1 つのファイル、も
しくはいくつかの選択されたファイルのパーミッションを表示するには、次の形式で入力しま
す。
ls -l filename
filename 項目には、ファイルの名前、またはスペースで区切られたファイル名の並びを指定
できます。 ファイルの指定には、パターンマッチング文字も使用できます。
カレントディレクトリ内のすべてのファイルのパーミッションを表示するには、次の例に示す
ls -l コマンドを入力します。
$ ls -l
total 21
-rw-r--r--
1 larry
system
101 Jun 5 10:03 file1
-rw-r--r--
1 larry
system
171 Jun 5 10:03 file2
-rw-r--r--
1 larry
system
130 Jun 5 10:06 file3
drwxr-xr-x
2 larry
system
32 Jun 5 10:07 project
-rw-r--r--
1 larry
system
0 Jun 5 11:03 record1
-rw-r--r--
1 larry
system
0 Jun 5 11:03 record6
drwxr-xr-x
2 larry
system
32 Jun 5 10:31 reports
ディレクトリ内の各エントリーの先頭文字列は、そのファイルまたはディレクトリのパーミッ
ションコードを示します。 たとえば、4 番目のエントリー drwxr-xr-x は、次の内容を示し
ています。
•
•
•
•
これはディレクトリです (d 表記)。
オーナーは表示、書き込み、検索を行うことができます (rwx シーケンス)。
グループは表示と検索を行うことができますが、書き込みを行うことはできません (最初
の r-x シーケンス)。
その他すべてのユーザーは、表示と検索を行うことができますが、書き込みを行うことは
できません (2 番目の r-x シーケンス)。
3 番目の列は、ファイルのオーナー (この場合は larry) を示し、4 番目の列はファイルが所属
するグループ (この場合は system) を示します。
1 つのディレクトリのパーミッションを表示するには、ls -ld コマンドを使用します。
$ ls -ld reports
drwxr-xr-x
132
2 larry
system
ファイルおよびディレクトリへのアクセスの管理
32 Jun
5 10:31 reports
ファイルとディレクトリのパーミッションの設定 (chmod)
パーミッションを変更する能力は、ファイルとディレクトリの使用方法の管理に大きく関係し
ます。 chmod (モードの変更) コマンドを使用して、ファイルとディレクトリのパーミッショ
ンを設定または変更します。
たとえば、普通、ユーザー自身 (オーナー/ユーザー) に対しては、ファイルの読み取り、書き
込み、および実行を許可します。 一般に、自分のグループのメンバーには、ファイルの読み取
りを許可します。 作業の性質やグループの構成によっては、しばしばグループのメンバーに対
してファイルの書き込みまたは実行を許可します。 一般に、その他すべてのシステムユーザー
に対しては、ファイルとディレクトリへのアクセスを禁止します。
オーナーだけが、ファイルやディレクトリのパーミッションを変更できます。 これは、ユー
ザー名がファイルの ls -l リスト内の 3 番目の列に記載されていなければならないことを意
味しています。
chmod コマンドで設定されるパーミッションを指定する方法には、次の 2 つがあります。
•
•
パーミッションは、文字と操作記号で指定できます。
パーミッションは 8 進数で指定できます。
8 進数でパーミッションを指定する方法を学習するのは、文字でパーミッションを指定する方
法を学習するより困難です。 ただし、8 進数でパーミッションを指定する方法を習得すると、
文字と操作記号を使用する方法に比べて、より効率的に作業を行うことができます。
次の節では、文字、操作記号、そして 8 進数を使用して、パーミッションを指定する方法を説
明します。
注記: chmod コマンドは、/G ディレクトリおよび /E ディレクトリ内のファイルのパーミッ
ションを変更することはできません。
文字と操作記号を使用したパーミッションの指定
文字と操作記号を使用して、ファイルとディレクトリのパーミッションを変更できます。 文字
と操作記号を使用した chmod コマンドの形式は、次のようになります。
chmod userclass-operation-permission filename
userclass-operation-permission 項目は、有効にするパーミッションのユーザークラ
ス、操作、タイプを指定するコードを表します。 filename 項目は、変更するパーミッション
を持つ 1 つまたは複数のファイルの名前です。 ファイルの指定には、パターンマッチング文字
も使用できます。
userclass-operation-permission コードは、次のように定義されます。
•
•
以下の文字から 1 文字以上を使用して、ユーザークラスを表します。
u
ユーザー (オーナー)
g
グループ
o
アザー、その他すべて (オーナーとグループは除く)
a
すべて (ユーザー、グループ、およびアザーを含む)
これらの記号の 1 つ以上を使用して、操作を表します。
+
パーミッションの追加
-
パーミッションの削除
=
以前の設定に関係なく、パーミッションを割り当てる
ファイルとディレクトリのパーミッションの設定 (chmod)
133
•
これらの文字の 1 つ以上を使用して、パーミッションの種類を表します。
r
読み取り
s
ユーザー ID またはグループ ID の設定
w
書き込み
x
実行
t
スティッキービットの設定
ファイルのパーミッションの変更
この節では、ファイルのアクセスパーミッションの変更方法を説明します。 次の例では、まず
ls -l コマンドを入力して、file1 ファイルのパーミッションを表示します。
$ ls -l file1
-rw-r--r--
1 larry
system
101 Jun
5 10:03 file1
オーナー (larry) は、読み取りと書き込みパーミッションを持っており、グループとアザーは
読み取りパーミッションのみ持っていることに注意してください。
次に、go+w フラグを指定して chmod コマンドを入力します。 このコマンドは、file1 の既
存の読み取りパーティションに書き込みパーミッション (+w) を追加することにより、グループ
(g) とアザー (o) のパーミッションを拡張します。
$ chmod go+w file1
次に、ファイルの新しいパーミッションをリストします。
$ ls -l file1
-rw-rw-rw-
1 larry
system
101 Jun
5 10:03 file1
グループおよびその他すべてのシステムユーザーに、file1 に対する書き込みパーミッション
を与えたことに注意してください。
ディレクトリのパーミッションの変更
ディレクトリのパーミッションンを変更する手順は、ファイルのパーミッションの変更手順と
同じです。 ただし、ディレクトリの情報を一覧表示するときは、次の例に示すように、ls
-ld コマンドを使用します。
$ ls -ld project
drwxr-xr-x
2 larry
system
32 Jun 5 10:07 project
次に、パーミッションを chmod g+w コマンドで変更します。これにより、グループ (g)
に、/project ディレクトリに対する書き込みパーミッション (+w) が与えられます。
$ chmod g+w project
$ ls -ld project
drwxrwxr-x
2 larry
system
32 Jun 5 10:07 project
パターンマッチング文字の使用
ディレクトリ内にあるすべてのエントリのパーミッションに同じ変更を行う場合、chmod コマ
ンドでパターンマッチング文字 * (アスタリスク) を使用できます。
次の例では、chmod g+x * コマンドで、カレントディレクトリ内のすべてのファイル (*) に関
して、グループ (g) に実行パーミッション (+x) を追加しています。
$ chmod g+x *
134
ファイルおよびディレクトリへのアクセスの管理
次に、ls -l コマンドを入力すると、この時点でカレントディレクトリ内のすべてのファイル
に対して実行パーミッションを持っているグループが表示されます。
$ ls -l
total 7
-rw-rwxrw-
1 larry
system
101 Jun 5 10:03 file1
-rw-r-xr--
1 larry
system
171 Jun 5 10:03 file2
-rw-r-xr--
1 larry
system
130 Jun 5 10:06 file3
drwxrwxr-x
2 larry
system
32 Jun 5 10:07 project
-rw-r-xr--
1 larry
system
0 Jun 5 11:03 record1
-rw-r-xr--
1 larry
system
0 Jun 5 11:03 record6
drwxr-xr-x
2 larry
system
32 Jun 5 10:31 reports
絶対パーミッションの設定
絶対パーミッションの割り当て (=) では、そのファイルの以前のパーミッションの状態にかか
わらず、1 つまたは複数のファイルに対してすべてのパーミッションを割り当てます。 次に例
では、まず ls -l コマンドにより file3 ファイルのパーミッションを表示します。 次に、
chmod a=rwx コマンドにより、すべてのユーザー (a) にファイルのすべてのパーミッション
(rwx) を割り当てます。
$ ls -l file3
-rw-r-xr--
1 larry
system
130 Jun 5 10:06 file3
$ chmod a=rwx file3
$ ls -l file3
-rwxrwxrwx
1 larry
system
130 Jun 5 10:06 file3
また、絶対割り当てを使用してパーミッションを削除することもできます。 次の例では、chmod
a=rw file3 コマンドにより、すべてのグループ (a) の file3 ファイルに読み取り (r) と書き
込み (w) パーミッションを割り当て、実行パーミッション (x) を削除します。
$ chmod a=rw file3
$ ls -l file3
-rw-rw-rw-
1 larry
system
130 Jun 5 10:06 file3
8 進数でのパーミッションの指定
8 進数を使用して、ファイルとディレクトリのパーミッションを変更できます。 chmod コマン
ドで 8 進数パーミッションコードを使用するには、次の形式のコマンドを入力します。
chmod octalnumber filename
octalnumber 項目には、4 桁の 8 進数を指定します。 右端の 3 桁は、オーナー、グループ、
およびアザーのパーミッションを指定します。 左端の桁は、ユーザー ID (setuid)、グループ
ID (setgid)、およびスティッキービットを指定します。 filename 項目には、変更するパー
ミッションを持つファイル名を指定します。 ファイルの名前またはスペースで区切られたファ
イル名の一覧を指定できます。 ファイルの指定には、パターンマッチング文字も使用できま
す。
8 進数は、各パーミッションタイプに対応します。
4 = r (読み取り) パーミッション
ファイルとディレクトリのパーミッションの設定 (chmod)
135
2 = w (書き込み) パーミッション
1 = x (実行) パーミッション
0 = - (パーミッションなし)
octalnumber の左端の桁は、setuid、setgid、およびスティッキービットを設定します。
4 = setuid ビット
2 = setgid ビット
1 = スティッキービット
パーミッションのグループ (パーミッションフィールド) を指定するには、該当する 8 進数値を
一緒に加算します。 たとえば、次に例を示します。
-wx= 2 + 1=3
rw-= 4 + 2=6
rwx= 4 + 2 + 1=7
--- = パーミッションなし =0
表 10-2は、8 つの可能なパーミッションの組み合わせを示しています。
表 10-2 8 進数でのパーミッションの組み合わせ
8 進数
パーミッション
説明
0
---
パーミッションなし
1
--x
実行
2
-w-
書き込み
3
-wx
書き込みと実行
4
r--
読み取り
5
r-x
読み取りと実行
6
rw-
読み取りと書き込み
7
rwx
読み取り、書き込み、および実行
ファイルまたはディレクトリのパーミッションコード全体は、4 桁の 8 進数により指定されま
す。オーナー、グループ、アザーにそれぞれ 1 桁が対応し、左端の 1 桁は setuid、setgid、お
よびスティッキービットに対応します (先頭の 0 は省略可能)。 表 10-3 は、いくつかの一般的
な 8 進数のパーミッションコード、およびパーミッションフィールドとの関係を示していま
す。
表 10-3 8 進数パーミッションコードとパーミッションフィールドの関係
8 進数
オーナーフィールド
グループフィールド
アザーフィールド
コード全体
0777
rwx
rwx
rwx
rwxrwxrwx
755
rwx
r-x
r-x
rwxr-xr-x
700
rwx
---
---
rwx------
666
rw-
rw-
rw-
rw-rw-rw-
4755
rws
r-x
r-x
rwsr-xr-x
8 進数を使用して次の例を入力し、file3 のパーミッションを -rwxr-xr-- に変更してくだ
さい。
$ ls -l file3
-rw-rw-rw-
136
1 larry
system
130 Jun 5 10:06 file3
ファイルおよびディレクトリへのアクセスの管理
$ chmod 754 file3
$ ls -l file3
-rwxr-xr--
1 larry
system
130 Jun 5 10:06 file3
ユーザーマスクの設定
ファイルやディレクトリを作成するたびに、実行中のプログラムが、デフォルトのパーミッ
ションコードを自動的に設定します。 これにより、ファイルやディレクトリを作成するとき
に、毎回パーミッションコードを明示的に指定する作業から解放されます。
ファイルやディレクトリを作成するときに、プログラムによって設定されるパーミッションを
さらに制限する場合には、umask コマンドを使用してユーザーマスクを指定する必要がありま
す。 ユーザーマスクは、ファイルやディレクトリの作成時に、最大のアクセスパーミッション
を決定する数値です。 結果として、ファイルやディレクトリのパーミッションは、作成するプ
ログラムが指定する内容から umask 値が禁止する内容を差し引いたものになります。
umask コマンドの形式は、次のとおりです。
umask octalnumber
octalnumber 項目は、オーナー、グループ、およびアザーのデフォルトの最大パーミッショ
ンを指定する 3 桁の 8 進数です。
ユーザーマスクの設定は、「8 進数でのパーミッションの指定」 (135 ページ) で説明した 8 進数
を使用するパーミッションコードの設定に類似しています。 ファイルやディレクトリのパー
ミッションコードは、3 桁の 8 進数により指定します。 各 8 進数は、パーミッションの種類を
表します。 各 8 進数の位置 (1 番目、2 番目、3 番目) は次のように対応しています。
•
•
•
最初の位置は、ファイルのオーナーを表します。
2 番目の位置は、ファイルのグループを表します。
3 番目の位置は、デフォルトのクラス、つまりアザーを表します。
ユーザーマスクの設定では、ファイル作成プログラムが要求するパーミッションに関係なく、
どのパーミッションを許可しないかを指定します。
各 8 進数の 3 ビットには、次の意味があります。
4 = 読み取りパーミッションなし
2 = 書き込みパーミッションなし
1 = 実行パーミッションなし
0 = 読み取り、書き込み、および実行パーミッション
表 10-4 は、umask の octalnumber の各位置に指定できる 8 つの 8 進数値を示しています。
umask パーミッションの値は、通常のパーミッションコードで指定されたものとは、逆の値で
あることに注意してください。 また、これらのパーミッション値は、作成するプログラムに
よって設定されたパーミッションに適用されることに注意してください。
表 10-4 umask パーミッションの組み合わせ
8 進数
許される最大のパーミッション
説明
0
rwx
読み取り、書き込み、および実行
1
rw-
読み取りと書き込み
2
r-x
読み取りと実行
3
r--
読み取り
4
-wx
書き込みと実行
5
-w-
書き込み
ユーザーマスクの設定
137
表 10-4 umask パーミッションの組み合わせ (続き)
8 進数
許される最大のパーミッション
説明
6
--x
実行
7
---
パーミッションなし
たとえば、027 のユーザーマスクを指定したとします。
•
•
•
オーナーは、ファイルを作成するプログラムから要求されたすべてのパーミッションを許
可されます (0)。
グループは、読み取りと実行パーミッションを許可されますが、書き込みパーミッション
は許可されません (2)。
アザーは、どのパーミッションも許可されません (7)。
ファイルとディレクトリに設定する適切なユーザーマスクの値は、情報リソースがシステム上
でどの程度自由に共有されているかによって異なります。 次のガイドラインが役立つことがあ
ります。
•
•
•
広く公開されたコンピューティング環境では、ユーザーマスク値に 000 を指定すること
で、ファイルやディレクトリへのアクセスに制約を加えないようすることがでます。 その
結果、プログラムがファイルを作成しパーミッションコードを指定するときに、ユーザー
マスクはそのパーミッションコードにまったく制約を加えません。
より安全なコンピューティング環境では、ユーザーマスク値に 066 を指定することで、
オーナーには自分のファイルに対する完全なアクセスを許可しますが、他のすべてのユー
ザーにはオーナーのファイルに対する読み取りと書き込みを禁止することができます。 そ
の結果、作成されるファイルのパーミッションは、プログラムが指定するものから、オー
ナー以外の読み取りアクセスと書き込みアクセスを許可しないというユーザーマスクの制
約を差し引いたものとなります。
非常に安全なコンピューティング環境では、ユーザーマスク値に 077 を指定することで、
オーナー以外によるファイルへのアクセスを禁止することができます。 その結果、作成さ
れるファイルのパーミッションは、プログラムが指定するものから、オーナー以外による
ファイルの読み取り、書き込み、実行を許可しないというユーザーマスクの制約を差し引
いたものとなります。
umask の動作を示すため、次のコマンドを入力したと想定します。
$ umask 037
このコマンドは、次の条件を設定します。
•
•
•
オーナーには、すべてのパーミッションが許可されます。
オーナーのグループのメンバーには、読み取りパーミッションが許可されますが、書き込
みパーミッションと実行パーミッションは許可されません。
アザーには、どのパーミッションも許可されません。
また、作成されたばかりのファイルがあると想定します。 デフォルトでは、テキストエディ
ターは常に次のデフォルトのパーミッションを割り当てます。 オーナーにはすべてのパーミッ
ションが許可されており、アザー (その他すべてのユーザー) には読み取りパーミッションと実
行パーミッションが許可されています。 ただし、あらかじめユーザーマスクを 037 に設定して
いるため、ファイルパーミッションがさらに制約されます。 その結果、オーナーには引き続き
すべてのパーミッションが許可されますが、グループには実行パーミッションが許可されず、
アザー (その他すべてのユーザー) にはすべてのパーミッションが許可されません。
umask コマンドを起動する方法は、2 通りあります。
•
•
138
.profile ファイル内に記述します。 osh を実行するたびに指定された値が自動的に設定
されるので、これは、ユーザーマスクを指定する最も一般的で効率的な方法です。
シェルのプロンプトで入力します。 設定されたユーザーマスクの値は、シェルセッション
の間有効です。
ファイルおよびディレクトリへのアクセスの管理
テキストエディターで作成するファイルのパーミションの制約に対してユーザーマスクがどの
ように機能するかについて、さらに詳しい例が必要な場合は次の手順を実行してください。
1.
次のコマンドを入力して、現在のユーザーマスクの値を検出します。
$ umask
ユーザーマスクの値が 000 の場合、ファイル作成プログラムにより設定されるパーミショ
ンに制約はありません。 ステップ 3 に進んでください。
ユーザーマスクの値が 000 ではない場合、その値を書き留め、ステップ 2 に進んでくださ
い。
2.
ユーザーマスクの値に 000 を設定してください。それにより、ファイル作成プログラムに
より設定されるパーミションに制約はありません。 ユーザーマスクの値に 000 を設定する
前に、現在の値を書き留めてください。元に戻すときに必要となります。
次のように入力します。
$ umask 000
3.
4.
afile ファイルを作成し、保存して、エディターを終了してください。
ls -l コマンドを使用して、ファイルのパーミッションを表示します。 この例では、読
み取りパーミッションと書き込みパーミッションがすべてのユーザーに与えられていると
仮定します。
$ ls -l afile
-rw-rw-rw-
5.
1 user
15 Oct 27 14:42 afile
次のように入力して、ユーザーマスクを 022 に変更します。
$ umask 022
ユーザーマスク 022 は、次のパーミッションの最大制約を設定します。 オーナーにはすべ
てのパーミッションが許可されており、アザー (その他すべてのユーザー) には読み取り
パーミッションと実行パーミッションが許可されています。
6.
7.
afile2 ファイルを作成し、保存して、エディターを終了してください。
ls -l コマンドを使用して、afile2 ファイルのパーミッションを表示します。
$ ls -l afile2
-rw-r--r--
1 user
15 Oct 27 14:42 afile2
グループとアザー (その他すべてのユーザー) に対する書き込みパーミッションは、ユー
ザーマスクの値を 022 に従って削除されていることに注意してください。
8.
ユーザーマスクを、元の値、またはそれ以外の値 (オプション) に変更してください。
オープンシステムサービスは、デフォルトのユーザーマスク値 022 を提供します。これによ
り、オーナーにはすべてのパーミッションが許可されますが、グループのメンバー、もしくは
アザー (その他のユーザー) には、ファイルに対する書き込みパーミッションが許可されませ
ん。 ただし、システムのデフォルトのユーザーマスクは異なる場合があります。
オーナーとグループの変更
パーミッションの設定に加えて、そのオーナーまたはグループを変更することにより、ファイ
ルまたはディレクトリの使用方法を制御できます。 chown コマンドを使用してオーナーを変
更し、chgrp コマンドを使用してグループを変更します。 chown コマンドを使用するには、
スーパーグループユーザーと同じ特権が必要です。 次の形式で chown コマンドを入力します。
chown owner filename
owner 項目は、ファイルの新しいオーナーのユーザー名です。 filename 項目は、所有権を
変更したい 1 つ以上のファイルの並びです。 ファイルの指定には、パターンマッチング文字も
使用できます。
次の形式で chgrp コマンドを入力します。
オーナーとグループの変更
139
chgrp group filename
group 項目は、新しいグループのグループ ID、もしくはグループ名です。 ファイルのグルー
プ所有権を変更するためには、変更されるファイルの変更先のグループに属するメンバーでな
ければならないことに注意してください。 filename 項目は、グループを変更したい 1 つ以上
のファイルの並びです。
詳細については、chown(1) と chgrp(1) のリファレンスページを、オンラインまたは『Open
System Services Shell and Utilities Reference Manual』で参照してください。
OSS ファイルのセキュリティオーディット
セキュリティファイルシステムの重要な構成要素として、システム内のオブジェクトに対する
セキュリティ関連操作の履歴をトレースをすることがあげられます。 OSS セキュリティオー
ディットでは、システム内で指定されたオーディット可能な一連のオブジェクトに対するオー
ディット操作 (オーディットトレイル) の履歴を収集できます。
OSS セキュリティオーディットでは、OSS ファイル名スペース内のオブジェクトに、オーディッ
トアクセスすることができます。 OSS オブジェクトと操作用のオーディットコマンドは
Safeguard によって提供され、SAFEART オーディットリダクションプログラムでは、OSS ファ
イル上の操作のオーディットレコードを検索できます。 SAFEART は、オーディットファイル
から情報を抽出し、ユーザーが指定した条件に基づくオーディット対象イベントに関するレ
ポートを作成します。 SAFEART は、『Safeguard オーディットサービスマニュアル』で説明
されています。
ユーザーのアプリケーションプログラムは、独自のファイルオーディットメカニズムを提供す
る必要はありません。 ユーザーのシステムマネージャーは、特定のファイルセットに対して
ファイルオーディットを有効にできます。 オーディットが有効になると、そのファイルセット
にある任意のファイルに対するアプリケーションプログラムアクティビティが、ファイルが存
在するシステムのオーディットファイル内にエントリーを自動的に生成します。
この節では次の内容について説明します。
•
•
•
「オーディットレコード内のオーディット対象ファイルを識別する方法」 (140 ページ)
「オーディット対象の操作およびオブジェクト」 (141 ページ)
「ファイルオーディットに関する留意事項」 (142 ページ)
オーディットレコード内のオーディット対象ファイルを識別する方法
オーディットレコードを処理する OSS または Guardian アプリケーションのいずれかを記述で
きます。 オーディットファイルは構造化ファイルであり、Guardian アプリケーションを使用
した処理が最も簡単にできます。 オーディットファイルの構造と Guardian ファイル命名規
則、フィールド名とオブジェクトタイプ、およびオーディットファイルレコードの形式は
『Safeguard オーディットサービスマニュアル』で説明されています。
オーディット対象のファイルイベントのオーディットレコードにより、絶対 OSS パス名と、
Guardian アクセスメカニズムにより使用される内部名との両方を使用してオーディットされ
ているファイルが識別されます。 内部名には、作成バージョンシリアル番号 (CRVSN) が含ま
れるため、ファイルの特定インスタンスを識別できます。 オーディットエントリーの形式は、
次のようになります。
pathname=$volume.subvolume.file_identifier:crvsn
たとえば、次に例を示します。
/bin/ed=$DATA13.ZYQ00001.Z0004G7:1934568735
ここでの 1934568735 は、オーディット中ファイルの CRVSN です。 ファイルの CRVSN の詳
細については、『オープン・システム・サービス 管理およびオペレーション・ガイド』を参照
してください。
140
ファイルおよびディレクトリへのアクセスの管理
オーディット対象の操作およびオブジェクト
表 10-5 および表 10-6 には、オーディット対象の OSS ファイルに対してログされ、SAFEART
プログラムで利用可能な情報の簡単な概要が記載されています。 表 10-7 には、OSS プログラ
ムから使用できるオーディット対象 Guardian プロシージャーの一覧が表示されています。
SAFEART プログラムとオーディットの詳細については、Safeguard オーディットサービス
マニュアルを参照してください。
また、OSS 関数呼び出しおよび /G ディレクトリを介してオーディット対象の Guardian ファ
イル を処理すると、ログエントリーが作成されます。Guardian ファイルのログ情報は、オー
ディット対象のファイルセット内のメンバーシップではなく、Guardian のオーディットポリ
シーにより制御されます。 同様に、OSS プログラムからの Guardian プロシージャー呼び出し
による Guardian ファイルの処理は、Guardian ポリシーを介してオーディットできます。
Guardian ポリシーについては本書では説明しません。
表 10-5 オーディット対象のファイルセットの使用時にオーディットされる OSS 関数
OSS 関数
オーディット対象の属性またはアクション
access()
access_mode パラメーターの値です。 /G ディレクトリ内のファイルに対する使
用もオーディットされます。
acl()
呼び出し前後の、OSS ユーザー ID、グループ ID、およびファイルパーミッション
(ファイルモードまたは ACL 項目、またはその両方) の値です。
bind()
AF_UNIX ソケットでは、access_mode パラメーターの値、OSS ユーザー ID、グ
ループ ID、および rdev です。
chmod()、lchmod()、
fchmod()
呼び出しの前後のファイルモードの値です。
chown(), lchown()、
fchown()
呼び出しの前後の、OSS ユーザー ID 、グループ ID 、およびファイルモードの値
です。 /G ディレクトリ内のファイルに対する使用もオーディットされます。
creat()
すべてのファイルでは、ファイルモードの値、OSS ユーザー ID、グループ ID、お
よび rdev です。通常のファイルでは、開かれているフラグの値です。
execl()、execle()、
execlp()、execv()、
execve()、execvp()
OSS ユーザー ID およびグループ ID の値です。 /G ディレクトリ内のファイルに対
する使用もオーディットされます。
fork()
OSS ユーザー ID およびグループ ID の値です。
kill()
送信済みシグナル、送信元の実 OSS ユーザー ID、有効 OSS ユーザー ID、OSS プ
ロセス ID またはプロセスグループ ID、プロセスハンドル、およびターゲットプロ
セスの保存セット OSS ユーザー ID。 ターゲットプロセスがプロセスグループのメ
ンバーの場合、プロセスの決定時に、呼び出しにより影響を受けるすべてのプロセ
スに対してオーディット情報がログされます。
link()
リンク先のファイルの名前およびリンクカウント、および新しいファイル名です。
mkdir()
ファイルモード、OSS ユーザー ID、グループ ID、および rdev の値です。
mkfifo()
ファイルモード、OSS ユーザー ID、グループ ID、および rdev の値です。
mknod()
ファイルモード、OSS ユーザー ID、グループ ID、および rdev の値です。
open()
呼び出しの前後の、オープンフラグの値およびファイルモードの値です。 /G ディ
レクトリ内のファイルに対する使用もオーディットされます。
opendir()
呼び出しの前後の、オープンフラグの値およびファイルモードの値です。
rename()
The old and new pathname values.
rmdir()
ゼロのリンクカウントでは、ファイルモードの値、OSS ユーザー ID、グループ
ID、mtime、ctime、size、および rdev です。 ゼロ以外のリンクカウントで
は、呼び出し後のリンクカウントの値です。
setgid() および
setregid()
呼び出しの前後の、実際の有効な保存済みグループ ID セットの値です。
OSS ファイルのセキュリティオーディット
141
表 10-5 オーディット対象のファイルセットの使用時にオーディットされる OSS 関数 (続き)
OSS 関数
オーディット対象の属性またはアクション
setpgid() および
setpgrp()
呼び出しの前後のプロセスグループ ID の値です。
setsid()
呼び出しの前後のプロセスグループ ID の値です。
setuid() および
setreuid()
呼び出しの前後の、実際の有効な保存済み OSS ユーザー ID セットの値です。
symlink()
シンボリックリンクのコンテンツおよびファイルモードの値、OSS ユーザー ID、
グループ ID、および rdev です。
tdm_execve()、
tdm_execvpe()
プロセス名および OSS ユーザー ID とグループ ID の値です。 /G ディレクトリ内
のファイルに対する使用もオーディットされます。
tdm_fork()
プロセス名および OSS ユーザー ID とグループ ID の値です。
tdm_spawn()、
tdm_spawnp()
プロセス名および OSS ユーザー ID とグループ ID の値です。 /G ディレクトリ内
のファイルに対する使用もオーディットされます。
unlink()
ゼロのリンクカウントでは、ファイルモードの値、OSS ユーザー ID、グループ
ID、mtime、ctime、size、および rdev です。 ゼロ以外のリンクカウントで
は、呼び出し後のリンクカウントの値です。
utime()
呼び出しの前後の、mtime、atime、および ctime の値です。 /G ディレクトリ
内のファイルに対する使用もオーディットされます。
表 10-6 オーディット対象のファイルセットとの使用時にオーディットされる Guardian プロ
シージャー
プロシージャー
オーディット対象の属性またはアクション
FILE_OPEN_
オーディット対象ファイルセット内の通常のファイルに対して提供されたパス名の
解決、内部 OSS ファイル名の使用、すべての Guardian ファイルオーディット属性
PROCESS_SPAWN_
オーディット対象ファイルセット内の通常のファイルに対して提供されたパス名の
解決、内部 OSS ファイル名の使用、すべての Guardian ファイルオーディット属性
表 10-7 プロセス制御のための使用時にオーディットされる Guardian プロシージャー
プロシージャー
オーディット対象の属性またはアクション
FILE_OPEN_
呼び出しの前後の、オープンフラグの値およびファイルモードの値です。
PROCESS_SPAWN_
プロセス名および OSS ユーザー ID とグループ ID の値です。
ファイルオーディットに関する留意事項
/G および /E ディレクトリ および ネットワークファイルシステム (NFS) ファイルセットはオー
ディットできません。 オーディット対象のファイルセットは、NFS クライアントの使用に対
してマウントできません。
connect() などの OSS ソケット関数呼び出しはオーディットされません。 pipe() 関数呼び
出しは、その影響が一時的であるため、オーディットされません。
chdir() および chroot() 関数呼び出しはオーディットされません。 オーディットは、シス
テムのルートディレクトリからの絶対パス名で実行されるため、これらはオーディットする必
要がありません。
再帰的動作と /G ディレクトリおよび /E ディレクトリ
chgrp、chmod、および chown の各コマンドに-R フラグを指定すると、そのディレクトリ引
数を通して再帰的に下位ディレクトリの操作を行います。 初期のディレクトリがルートディレ
クトリの場合、/G と /E は操作に含まれます。 UTILSGE この動作が意図したとおりに実行さ
142
ファイルおよびディレクトリへのアクセスの管理
れない場合、ルートディレクトリに対して再帰的に使用するときに、-W NOG フラグと -W NOE
フラグまたは環境変数を使用して、/G ディレクトリと /E ディレクトリを操作から除外するこ
とができます。 たとえば、次のコマンドはローカルノード上のすべてのファイルのグループを
スーパー ID に変更します。 Guardian ファイルとリモートノード上のファイルは除外されま
す。
chgrp -W NOE -W NOG -R / SUPER.SUPER/
セキュリティ上の追加考慮事項
サイトでのセキュリティガイドラインは、ファイルを権限のないアクセスから保護します。 セ
キュリティの詳細については、セキュリティ管理者へ問い合わせるか、次のマニュアルをご覧
ください。
•
•
•
『オープン・システム・サービス 管理およびオペレーション・ガイド』
『Safeguard ユーザーズガイド』
Security Management Guide
セキュリティ上の追加考慮事項
143
144
第11章
プロセスの管理
この章では、OSS プロセスについて説明します。 この章で説明する項目は、次のとおりです。
•
•
•
•
•
•
•
OSS プログラムとプロセスとは
プロセス入力、出力、およびエラーをリダイレクト
プロセスをフォアグラウンドとバックグラウンドで実行
プロセスの状態を確認
プロセスをキャンセル
ユーザーとそのプロセスに関する情報を表示
ジョブのスケジュール
これらのトピックについて学習したい方には、この章に掲載されている例を使った実習をお勧
めします。 例は、指定された順序で実行してください。
プログラムとプロセスとは
プログラムは、コンピュータが解釈して実行できる命令のセットです。 大部分のプログラム
は、以下の種類のいずれかであると考えることができます。
•
•
アプリケーションプログラム、テキストエディター、会計パッケージ、または電子スプ
レッドシート
ユーザーコマンドやシェルなど、オープンシステムサービスのコンポーネントであるプロ
グラム
実行中のプログラムは、「プロセス」と呼ばれます。
すべてのプロセスは、「プロセス識別子」または「プロセス ID」と呼ばれる一意の番号を割り
当てられます。
標準入力ファイル、出力ファイル、およびエラーメッセージとは
プロセスが実行を開始すると、オープンシステムサービスは、そのプロセスのために stdin
(標準入力ファイル)、stdout (標準出力ファイル)、および stderr (標準エラーファイル) の 3
つのファイルを開きます。 これらのファイルは、次のように使用されます。
•
•
•
標準入力ファイルは、プログラムがその入力を読み取る場所です。 デフォルトでは、プロ
セスはキーボードから stdin を読み取ります。
標準出力ファイルは、プログラムが出力を書き込む場所です。 デフォルトでは、プロセス
は stdout を画面に書き込みます。
標準エラーファイルは、プログラムがエラーメッセージを書き込む場所です。 デフォルト
では、プロセスは stderr を画面に書き込みます。
入力、出力、およびエラーメッセージを、stdin、stdout、および stderr のデフォルトの
場所から別の場所にリダイレクトすると有効な場合があります。 以下の各節では、入力、出
力、およびエラーメッセージをリダイレクトする方法について説明します。
入力と出力のリダイレクト
コマンドは、通常、入力をキーボード (標準入力ファイル) から読み取り、出力を画面 (標準出
力ファイル) に書き込みます。 ときに、コマンドでファイルから入力を読み取りたい場合や、
ファイルに出力を書き込みたい場合、またその両方の場合が存在します。 コマンドの入力時
に、コマンドラインで適切なシェル表記 (表 11-1 に示す) を使用することにより、入力ファイ
ルと出力ファイルを選択することができます。
プログラムとプロセスとは
145
表 11-1 入力と出力をリダイレクトするためのシェル表記
表記
説明
例
<
標準入力メッセージをファイルから読み取る。 wc <file3
>
標準出力メッセージをファイルに書き込む。 ls >file3
>>
標準出力メッセージをファイルの終端に追加 ls >>file3
する。
以下の各節では、入力をファイルから読み取る方法、および出力をファイルに書き込む方法を
説明します。
ファイルからの入力の読み取り —< 記号
入力リダイレクション記号 < (左山カッコ) を使用することにより、OSS シェルは、プロセスの
標準入力ファイルをリダイレクトして、入力をキーボード (デフォルトの場所) からではなく
ファイルから読み取ることができます。
入力リダイレクションは、stdin (キーボード) から入力を受け取る任意のコマンドで使用でき
ます。 入力リダイレクションは、who など、入力を受け取らないコマンドでは使用できませ
ん。
次の例では、wc コマンドは、入力をファイル (file3) から受け取ります。
$ wc < file3
3
27
129
wc (ワードカウント) コマンドは、指定されたファイルの行数、ワード数、およびバイト数をカ
ウントします。 例の wc の出力は、file3 に 3 行、27 ワード、および 129 バイトが含まれる
ことを示しています。 オペランドを指定しないと、wc コマンドは、入力をキーボードから読
み取ります。 しかし、この例では、wc の入力は file3 という名前のファイルから来ていま
す。
リダイレクション記号 < を付けずに wc コマンドを入力すると、次の出力が得られます。
$ wc file3
3
27
129
file3
ファイルへの出力の書き込み — > 記号と >> 記号
OSS シェルでは、プロセスの標準出力ファイルを画面 (デフォルトの場所) からファイルにリダ
イレクトできます。 その結果として、コマンドによって生成されたテキストを新しいファイル
または既存のファイルに格納できます。
出力をファイルに送るには、コマンドラインで > (右山カッコ) 記号または >> 記号を使用しま
す。
command > targetfile
command >> targetfile
> 記号を使用すると、シェルは次の処理を行います。
•
•
ターゲットファイルが既に存在する場合、ターゲットファイルの内容をコマンドの出力で
置き換える
存在しない場合、ターゲットファイルを作成する
>> 記号は、コマンドの出力を既存ファイルの終端に追加 (付加) します。 >> 記号を使用して、
存在しないファイルに出力を書き込むと、シェルはそのファイルを作成します。
次の例では、ls の出力は file という名前のファイルに入ります。
$ ls > file
146
プロセスの管理
file が既に存在する場合、シェルは、その内容を ls の出力で置き換えます。 file が存在し
ない場合、シェルはそのファイルを作成します。
次の例では、シェルは、ls の出力を file という名前のファイルの末尾に追加します。
$ ls >> file
If file does not exist, the shell creates it.
標準エラーメッセージのファイルへのリダイレクション
コマンドの実行が成功すると、その結果が標準出力ファイルに表示されます。 コマンドの実行
が失敗すると、デフォルトの標準エラーファイル、つまり画面にエラーメッセージが表示され
ます。 ただし、シェルでは、プロセスの標準エラーファイルを画面からファイルにリダイレク
トできます。
標準エラーメッセージのリダイレクションの一般的な形式は、次のようになります。
command 2> errorfile
command 項目は、OSS コマンドです。 errorfile 項目は、プロセスが標準エラーファイル
を書き込むファイルの名前です。 2> は、出力リダイレクション記号と組み合わされたファイ
ル記述子の数字です。 ファイル記述子の数字は、シェルに対して、その内容をリダイレクトす
るためにアクセスする標準ファイルを指示します。 ファイル記述子の数字 2 は、標準エラー
ファイルがリダイレクトされていることを意味しています。
OSS シェルファイル記述子は、次のようになります。
•
•
•
ファイル記述子 0 (< と同じ) は、標準入力ファイル (キーボード) を指定します。
ファイル記述子 1 (> と同じ) は、標準出力ファイル (画面) を指定します。
ファイル記述子 2 は、標準エラーファイル (画面) を指定します。
次の例では、ls コマンドで存在しないファイル reportx を表示しようとした場合、エラー
メッセージが error ファイルにリダイレクトされます。 次に、error ファイルの内容が表示
されます。
$ ls reportx 2> error
$ cat error
reportx not found
この例では、標準エラーファイルだけがファイルにリダイレクトされますが、一般には、標準
エラーファイルと標準出力ファイルの両方をリダイレクトします。 詳細については、次の節
「標準エラーメッセージと標準出力の両方のリダイレクト」 (147 ページ) を参照してください。
多くのコマンドでは、標準出力ファイルと標準エラーファイルの違いを確認するのは困難で
す。 たとえば、ls コマンドを使用して存在しないファイルを表示すると、画面にエラーメッ
セージが表示されます。 前の例のように、エラーメッセージをファイルにリダイレクトする
と、出力は同じになります。
標準エラーメッセージと標準出力の両方のリダイレクト
標準出力ファイルと標準エラーファイルの両方を、同時にリダイレクトしたい場合がありま
す。 標準出力ファイルと標準エラーファイルは、異なるファイルにリダイレクトすることも、
同じファイルにリダイレクトすることもできます。
標準出力ファイルと標準エラーファイルを、異なるファイルにリダイレクトする一般形式は次
のとおりです。
command > outfile 2> errorfile
command 項目は、OSS コマンドです。 outfile 項目は、プロセスが標準出力ファイルを書き
込むファイルです。 2> 記号は、標準エラー出力をリダイレクトします。 errorfile 項目は、
プロセスが標準エラー出力を書き込むファイルです。
標準入力ファイル、出力ファイル、およびエラーメッセージとは
147
標準出力ファイルと標準エラーファイルを、同じファイルにリダイレクトする一般形式は次の
とおりです。
command 1> outfile 2>&1
command 項目は、OSS コマンドです。 1> 記号は、標準出力ファイルをリダイレクトします。
outfile 項目は、プロセスが標準出力を書き込むファイルです。 2>&1 記号は、シェルに対し
て、標準エラー出力 (ファイル記述子 2) を標準出力ファイルに関連付けられたファイル (>&1)、
つまり outfile に書き込むよう指示します。
複数のプロセスを同時に実行
オープンシステムサービスは、複数の異なるプロセスを同時に実行できます。 この機能を最適
に使用するには、いくつかのコマンドをフォアグラウンドプロセスとして実行し、他のコマン
ドをバックグラウンドプロセスとして実行したい場合があります。
フォアグラウンドプロセスの実行
通常、コマンドラインにコマンドを入力したときには、画面に結果が表示されるのを待ちま
す。 シェルプロンプトに一度に 1 つずつ入力されたコマンドは、「フォアグラウンドプロセ
ス」と呼ばれます。 1 つのコマンドをフォアグラウンドプロセスとして実行した後は、最初の
ものが終了するまで、別のコマンドを実行できません。
数秒時終了するコマンドは、フォアグラウンドプロセスで実行するのに適しています。 しか
し、長い時間のかかるコマンドは、多くの場合バックグラウンドプロセスで実行して、新しい
コマンドのためにコマンドラインを解放する方が優れています。
バックグラウンドプロセスの実行
コマンドをバックグラウンドプロセスとして実行するには、そのコマンドを & (アンパサンド)
で終了します。
$ find options filename &
プロセスをバックグラウンドで実行した後では、コマンドラインに別のコマンドを入力して追
加のタスクを実行できます。 (find コマンドの詳細については、第12章 (159 ページ) を参照し
てください。)
バックグラウンドプロセスを実行すると、以下のようになります。
1.
2.
OSS プロセス識別番号が表示されます。 オープンシステムサービスがプロセス ID とジョ
ブ番号を作成して割り当てるので、システム上で現在実行中のすべてのプロセスを追跡で
きます。
プロンプトに戻るので、別のコマンドを実行できます。
バックグラウンドプロセスを作成するときには、そのプロセス ID をメモしてください。 プロ
セス ID は、プロセスを監視するとき、または終了するときに役立ちます。 詳細については、
「プロセスの監視とキャンセル」 (149 ページ) を参照してください。
バックグラウンドプロセスによってシステムの実行すべき作業量が増加するので、他のプロセ
スの速度が低下することがあります。 バックグラウンドプロセスの実行中は、システムの低速
化の程度や実行すべき他の作業の性質によって問題となる場合があります。
大部分のプロセスは、バックグラウンドでの実行時であっても、その出力を標準出力ファイル
に振り向けます。 バックグラウンドプロセスからの出力によって、他の作業が干渉される場合
があるため、普通は、バックグラウンドプロセスからの出力をファイルまたはプリンターにリ
ダイレクトするのが良い方法です。 そうすると、都合の良いときに出力を確認できます。 出
力のリダイレクトの詳細については、この章で後述する例、および「入力と出力のリダイレク
ト」 (145 ページ) を参照してください。
この節で後に示す例では、実行に数秒以上かかる find コマンドを使用します。
find / -type f -print
148
プロセスの管理
このコマンドは、ユーザーシステム上のすべてのファイルについてパス名を表示します。 この
節を完了するのに、find コマンドを学習する必要はありません。ここでは、単にプロセスで
作業する方法を示すために、このコマンドを使用します。 find コマンドの詳細については、
「ファイルの検索 (find)」 (161 ページ) 、および find(1) のリファレンスページをオンライン
または『Open System Services Shell and Utilities Reference Manual』で参照してください。
次の例では、find コマンドはバックグラウンド (&) で実行され、その出力を dirpaths とい
う名前のファイルに ( > 記号で) リダイレクトします。
$ find / -type f -print > dirpaths &
[1] 24
バックグラウンドプロセスが開始すると、システムはそのプロセスにジョブ番号とプロセス ID
を割り当てて表示します。 この例では、[1] がジョブ番号で 24 がプロセス ID です。 (実際のプ
ロセス ID は、この例および以降の例で示すものとは異なります。)
次に、jobs コマンドでプロセスのステータスを確認できます。 また、kill コマンドでプロ
セスを終了することもできます。 これらのコマンドの詳細については、「プロセスの監視と
キャンセル」 (149 ページ) を参照してください。
プロセスの監視とキャンセル
ps (プロセスステータス) コマンドを使用して、どのプロセスが実行されているか検索し、また
その情報を表示することができます。
jobs コマンドを使用して、バックグラウンドプロセスを監視します。
kill コマンドまたは [Ctrl-c] を使用すると、プロセスが終了する前に、そのプロセスをキャン
セル (停止) することができます。
プロセスステータスの確認
ps コマンドでは、ユーザーワークステーションに関連付けられたすべてのアクティブプロセ
スのステータスを、フォアグラウンドとバックグラウンドの両方について監視できます。
jobs コマンドを使用すると、ユーザーワークステーションに関連付けられたアクティブなす
べてのバックグラウンドプロセスのステータスを監視できます。
ps コマンド
ps コマンドの形式は、次のとおりです。
ps
次の例では、ps コマンドで、ユーザーワークステーションに関連付けられたすべてのプロセ
スのステータスを表示します。
$ ps
PID
TTY
TIME
CMD
29670
p4
00:00
/bin/-sh
515
p5
00:00
/bin/-sh
28476
p5
00:00
ps
790
p6
00:00
/bin/-sh
プロセスの監視とキャンセル
149
表示の見出しは、以下を意味しています。
PID
プロセス識別 (プロセス ID)。 システムは、プロセスの開始時に、プロセス ID を各プロセスに割り
当てます。 個々のプロセスと各プロセス ID の間には、特別な関係はありません。したがって、同
じプロセスを複数回開始すると、毎回異なるプロセス ID が割り当てられます。
TTY
tty デバイス名の制御。 2 つ以上のワークステーションの存在するシステムでは、このフィールド
は、プロセスを開始したワークステーションを示します。 ワークステーションが 1 つだけ存在する
システムでは、このフィールドには、コンソール識別子または 1 つまたは複数の端末の識別子を入
れることができます。
TIME
コンピューターがこのプロセスに費やした時間が、ps の入力時点から開始して分と秒で表示され
ます。
CMD
プロセスを開始したコマンド (またはプログラム) の名前。
ps コマンドで -p フラグとプロセス ID を使用することにより、特定のプロセスのステータス
を確認することもできます。 特定プロセスのステータスを確認する一般的な形式は、次のとお
りです。
ps -pprocess_ID
また、ps コマンドは、バックグラウンドプロセスのステータスも表示します。 実行中のバッ
クグラウンドプロセスが存在する場合、フォアグラウンドプロセスと共に表示されます。 次の
例は、バックグラウンドプロセスの find を開始する方法、および次にそのステータスを確認
する方法を示しています。
$ find / -type f -print >dirpaths &
25
$ ps -p25
PID
TTY
25
console
TIME
CMD
00:40
find
バックグラウンドプロセスのステータスは、プロセスの実行中に、必要に応じて何度でも確認
できます。 次の例では、ps コマンドで、先行する find プロセスのステータスを 5 回表示し
ます。
$ ps -p25
PID
25
TTY
TIME
console
00:18
CMD
find
$ ps -p25
PID
25
TTY
TIME
console
00:29
CMD
find
$ ps -p25
PID
25
TTY
TIME
console
00:49
CMD
find
$ ps -p25
PID
25
TTY
TIME
console
00:58
$ ps -p25
150
プロセスの管理
CMD
find
PID
25
TTY
TIME
console
01:02
CMD
find
$ ps -p25
6 回目の ps コマンドを入力する前に find プロセスが終了したため、この ps コマンドではス
テータス情報が返されていないことに注意してください。
ps コマンドは、終了したプロセスでありながらシステムテーブルに引き続き記録されている
ゾンビプロセスのステータスも表示します。 次の例に示すように、ゾンビプロセスは、COMMAND
カラムに <defunct> 記号で示されます。
$ ps
PID
TTY
TIME
CMD
38596
#ptmykzh
00:00
/bin/-sh
57618
#ptmy11a
00:00
/bin/-sh
46150
#ptmykzh
00:00
vi
57570
#ptmy110
00:00
<defunct>
85419
#ptmy110
00:00
<defunct>
一般には、ここで説明した単純な ps コマンドで、プロセスに関して知る必要のある内容が示
されます。 しかし、さらに ps コマンドのフラグを使用することによって、表示される情報の
種類を制御することができます。 -e は最も有益な ps フラグの 1 つであり、ps によって、ユー
ザーワークステーションに関連付けられたプロセス情報だけでなく、すべてのプロセスに関す
る情報が返されます。 すべての ps コマンドフラグの説明については、ps(1) リファレンス
ページをオンラインまたは『Open System Services Shell and Utilities Reference Manual』で参
照してください。
jobs コマンド
jobs コマンドは、ユーザーワークステーションに関連付けられているすべてのバックグラウ
ンドプロセスのステータスを、ジョブ番号に基づいて表示します。
jobs コマンドの形式は、次のとおりです。
jobs
-l フラグを指定すると、ジョブ番号とプロセス ID の両方が表示されます。
フォアグラウンドプロセスのキャンセル (Ctrl-c)
フォアグラウンドプロセスをキャンセル (つまり、実行中のコマンドを停止) するには、[Ctrl-c]
を押します。 プロセスの実行が停止し、シェルプロンプトが表示されます。 コマンドのキャ
ンセルは、フォアグラウンドプロセスの実行を停止するのと同じであることに注意してくださ
い。
フォアグラウンドプロセスをキャンセルする方法を示すには、実行に長時間かかるコマンドを
使用する必要があります。 (大部分のコマンドは、cancel コマンドを発行する前に実行が終
了します。) 次の find コマンドの実行には、[Ctrl-c] を押してキャンセルするのに十分な長い
時間がかかります。
$ find / -type f -print
/usr/sbin/acct/acctcms
/usr/sbin/acct/acctcon1
/usr/sbin/acct/acctcon2
/usr/sbin/acct/acctdisk
/usr/sbin/acct/acctmerg
プロセスの監視とキャンセル
151
/usr/sbin/acct/accton
/usr/sbin/acct/acctprc1
/usr/sbin/acct/acctprc2
/usr/sbin/acct/acctwtmp
/usr/sbin/acct/chargefee
/usr/sbin/acct/ckpacct
/usr/sbin/acct/dodisk
<Ctrl-c>
$
画面にシェルプロンプトが戻るので、別のコマンドを入力できます。
バックグラウンドプロセスのキャンセル (kill)
バックグラウンドプロセスを開始した後、そのプロセスを終了まで実行させないと決めた場合
には、kill コマンドでキャンセルできます。 しかし、バックグラウンドプロセスをキャンセ
ルするためには、そのプロセス ID を知る必要があります。
プロセスのプロセス ID を忘れた場合には、ps コマンドを使用してフォアグラウンドとバック
グラウンドの両方のプロセス ID を一覧表示するか、または jobs コマンドを使用してバック
グラウンドプロセスのプロセス ID だけを一覧表示します。
プロセスを終了するための一般的な形式は、次のとおりです。
kill process_ID
オープンシステムサービスの開始後に起動したすべてのプロセスを終了するには、kill 0 コ
マンドを使用します。 kill 0 コマンドは、プロセス ID を知らなくても使用できます。 この
コマンドでは、ユーザーのすべてのプロセスが削除されるため、使用には注意が必要です。
次の例では、別の find プロセスを開始し、そのステータスを確認し、次に kill コマンドで
そのプロセスを終了しています。
$ find / -type f -print >dirpaths &
[3] 738
$ ps
PID
TTY
STAT
TIME
CMD
520
p4
I
00:11
sh
738
p5
I
00:10
find
1216
p6
S
00:01
qdaemon
839
p7
R
00:03
ps
$ kill 738
$ ps
[3] Terminated
PID
TT
STAT
TIME
CMD
520
p4
I
00:11
sh
1216
p6
S
00:01
qdaemon
839
p7
R
00:03
ps
kill 738 コマンドは、バックグラウンドの find プロセスを停止します。. 2 回目の ps コマ
ンドでは、プロセス ID 738 に関するステータス情報が何も返されません。 次のコマンドを入
152
プロセスの管理
力するまで、終了メッセージは表示されません。 この例では、このワークステーションから開
始されたプロセスは 1 つだけなので、kill 738 と kill 0 が同じ効果を持つことに注意して
ください。
ユーザーとそのプロセスに関する情報の表示
オープンシステムサービスの提供する以下のコマンドを使用すると、オープンシステムサービ
スを実行しているユーザー、およびユーザーが実行している内容が示されます。
who
現在ログオンしているユーザーを表示します。
ps -fu
現在ログオンしているユーザーと、そのユーザーが実行しているプロセスに関する情報
を表示します。
who コマンドでは、誰がシステムにログオンしているか判断できます。
次の例では、現在ログオンしているすべてのユーザーのリストが表示されています。
$ who
QADEV.ANDY
/G/ztnt/#pty0051
Oct 20 18:17
SOFTDEV.ROB
/G/ztnt/#pty005l
Oct 21 13:22
SOFTWARE.REG
/G/ztnt/#pty005n
Oct 21 14:24
MANUALS.RICK
/G/ztnt/#pty003e
Oct 19 15:12
who コマンドでは、システム上の各ユーザーのユーザー名、使用されているシステム、および
各ユーザーがログオンした時間が表示されることに注意してください。
who -u コマンドでは、who コマンドのすべての情報が表示され、さらに各ユーザーのプロセ
ス ID と各ワークステーション上でのアクティビティの時間数と分数が表示されます。 1 分未
満のアクティビティは、ドット (.) で示されます。
次の例では、現在ログオンしているすべてのユーザーのリストが表示されています。
$ who -u
QADEV.ANDY
SOFTDEV.ROB
SOFTWARE.REG
MANUALS.RICK
/G/ztnt/#pty0051
/G/ztnt/#pty005l
/G/ztnt/#pty005n
/G/ztnt/#pty003e
Oct
Oct
Oct
Oct
20
21
21
19
18:17
13:22
14:24
15:12
03:28
01:16
00:05
07:21
684982336
903086189
1070858276
9024
場合によっては、特定のユーザーが所有する現在のプロセスの詳細なリストが必要なことがあ
ります。 たとえば、ユーザー ID が manuals.rick のユーザーが所有するすべてのプロセスのリ
ストを取得するには、次のように入力します。
$ ps -fu manuals.rick
UID
PID
PPID C TTY
STIME
MANUALS.RICK 9024
1 - #pty003e Oct 19
MANUALS.RICK 2152 9024 - #pty003e 15:14:25
TIME
15:12
01:03
CMD
/bin/-sh
ps -fu manuals.rick
ジョブのスケジューリング
オープンシステムサービスは、OSS コマンドとスクリプトのスケジューリングを制御するコマ
ンドを提供します。 スケジューリングコマンドは、特に時間を消費するジョブを実行する場合
に有効です。 スケジューリングコマンドを使用すると、後でシステムアクティビティが低下す
ユーザーとそのプロセスに関する情報の表示
153
ると予想される時間に実行するジョブをサブミットすることができます。 ジョブのスケジュー
リングコマンドには、次のとおりです。
at
指定した時間にコマンドを実行します。
batch
オペレーティングシステムが決定する時間にコマンドを実行します。
crontab
指定した時間に実行するために、コマンドのスケジュールを cron デーモンにサブミッ
トします。.
at コマンドを使用したジョブのスケジューリング
at コマンドは、1 つまたは複数の OSS コマンドを指定した時間に実行するよう要求します。
単純な形式の at コマンドは、次のとおりです。
at time [date] command
ここで、command は OSS コマンドであり、time と date は、コマンドが実行される時刻とオ
プションの日付です。 date を省略すると、現在の日付が想定されます。 たとえば、次の at
コマンドは、C のコンパイルを現在の日付の 3 p.m. にスケジュールします。
$ at 3pm c89 srce.c -o objfile
127448226.a
at コマンドを入力すると、at は、ジョブ番号を割り当てて表示します。ジョブ番号は、9 個
の数字に続いてピリオド、およびジョブが割り当てられているキューを示す 1 文字 (a はデフォ
ルトのキュー) で構成されています。 ジョブ番号は、その後ジョブをキャンセルする場合や、
ジョブに関する情報を要求する場合に使用できます。
次の例に示すように、各コマンドを別々の行に入力し、シーケンス内の最後のコマンドの後に
EOF 文字を含めることにより、at に複数のコマンドをサブミットできます。
$ at 3pm
c89 sfile.c -o bfile
bfile p1 p2 outfile
lp outfile
<EOF>
127448228.a
別の方法として、コマンドをファイルに入力して、at コマンドにファイル名を指定すること
により、複数のコマンドをサブミットできます。. vi などのエディターを使用して、各行に 1
つのコマンドが入ったファイルを作成します。 たとえば、filea に以下の内容が入っている
と仮定します。
c89 sfile.c -o bfile
bfile p1 p2 outfile
lp outfile
以下の at コマンドは、これらのコマンドを 10:00 a.m. に実行するようスケジュールします。
$ at 1000 filea
127448231.a
at コマンドの構文では、各種の方法で実行の時刻と日付を指定できます。 time パラメーター
は、24 時間クロックを使用するか、または am サフィックスや pm サフィックスを付けて 12 時
154
プロセスの管理
間クロックを使用して指定できます。 オプションの date パラメーターを、曜日または月と日
付で指定できます。
たとえば、次のコマンドは、filea 内のコマンドを金曜日の 10:30 a.m. に実行するようスケ
ジュールします。
$ at 10:30 am Friday filea
次のコマンドは、filea 内のコマンドを、1 月 24 日の 1400 時 (2:00 p.m.) に実行するようスケ
ジュールします。
$ at 1400 January 24 filea
次のコマンドは、filea 内のコマンドを 3 月 4 日の 12:00 p.m に実行するようスケジュールし
ます (日付/時刻形式 MMddhhmm を使用)。
$ at 03041200 filea
後から実行するようスケジュールしたコマンドで画面が生成される場合、そのコマンドの実行
時にユーザーがログオンしていない可能性があるため、出力をファイルにリダイレクトするこ
とを検討してください。 たとえば、次の at コマンドは、ps コマンドを 10:00 a.m. に実行する
ようスケジュールします。 通常は画面に送られる ps からの出力が、fileb にリダイレクトさ
れます。
$ at 1000 ps > fileb
以降の各節では、at コマンドの有用な 2 つのオプションについて説明します。 at コマンド構
文の詳細については、at(1) のリファレンスページをオンラインまたは『Open System Services
Shell and Utilities Reference Manual』で参照してください。
スケジュールされたジョブの表示 (at -l)
次の at コマンドを入力すると、スケジュールされたジョブのリストを表示できます。
$ at -l
-l フラグを指定すると、現在スケジュールされているユーザーのすべてのジョブに対して at
が割り当てたジョブ番号、およびそれらのジョブの実行がスケジュールされている日付と時刻
が一覧表示されます。
スケジュールされたジョブのキャンセル (at -r)
次の形式の at コマンドを入力することにより、スケジュールされたジョブをキャンセルできま
す。
at -r job-numbers
ここで、job-numbers は、at によって割り当てられた 1 つまたは複数のジョブ番号です。
たとえば、次のコマンドは 3 つのジョブをキャンセルします。
$ at -r 127448231.a 127448246.a 127451526.a
batch コマンドを使用したジョブのスケジューリング
batch コマンドは、実際には特殊な形式の at コマンドであり、ジョブを特殊なバッチ入力
キューにサブミットします。このバッチ入力キューは、システムアクティビティが許容される
レベルになったときに、一度に実行されます。
batch コマンドは、標準入力ファイル (端末) から実行対象のコマンドを読み取ります。 各行
に 1 つのコマンドを入力し、その後に EOF 文字を付けてコマンドの終端を示します。 たとえ
ば、次の batch コマンドは、システムが決定する時間に実行される 3 つの OSS コマンドをサ
ブミットします。
$ batch
c89 sfile.c -o bfile
bfile p1 p2 outfile
ジョブのスケジューリング
155
lp outfile
<EOF>
648281200.b
EOF 文字を入力すると、batch コマンドは、ジョブにジョブ番号を割り当て、後で実行する
ようにそのジョブをスケジュールします。 ジョブは、バッチ入力キューであるキュー b に割り
当てられることに注意してください。
次の例に示すように、リダイレクションを使用して OSS コマンドの入ったファイルを batch コ
マンドにサブミットすることができます (ここで、filea には OSS コマンドが含まれていま
す)。
$ batch < filea
648281344.b
at コマンドに -l フラグまたは -r フラグを指定して使用すると、スケジュールされたバッチ
ジョブを一覧表示するか、またはバッチジョブをキャンセルすることができます。 「スケジュー
ルされたジョブの表示 (at -l)」 (155 ページ) と 「スケジュールされたジョブのキャンセル (at
-r)」 (155 ページ) を参照してください。
crontab コマンドを使用したジョブのスケジューリング
crontab コマンドは、繰り返し実行されるジョブをスケジュールする方法を提供します。
crontab は、ファイルシステムのクリーンアップ、自動通知の送信、システムアカウンティ
ング情報の収集とアーカイブなど、周期的に実行する必要のあるシステム関連の各種維持管理
タスク実行するために、システム管理者によって実行されます。
crontab コマンドは、構成ファイル、または crontab ファイルを、ユーザーのカレントディ
レクトリからすべてのユーザーの crontab ファイルを含むディレクトリにコピーします。
crontab ファイルには、実行されるコマンドと、そのコマンドがいつ実行されるかを示す命
令が含まれています。 cron デーモンは、バックグラウンドで連続的に実行されるプログラム
であり、crontab ファイルをスキャンして、提供されている命令に従ってコマンドを実行し
ます。
crontab ファイルは、vi などのテキストエディターを使用して作成します。 crontab ファ
イルは、以下の形式の 1 つまたは複数のエントリーで構成されています。
minute hour day month weekday command
ここで、各項目の意味は次のようになります。
•
•
•
•
•
•
minute は、コマンドを実行する時点の分です (0 から 59)。
hour は、実行時点の時 (0 から 23) です。
day は、実行時点の月の日付 (0 から 31) です。
month は、実行時点の月 (1 から 12) です。
weekday は、実行時点の曜日 (日曜から土曜までに対応して 0 から 6) です。
command は、実行されるコマンドです。
前述した範囲内の数字のほかに、crontab エントリー内の各フィールドは、次のように設定
できます。
•
•
•
アスタリスク (*)。すべての正しい値を意味します。
ハイフンで分離された 2 つの数字。値の範囲を示します。
カンマで区切られた数の並び。並びのすべての値を意味しています。
crontab ファイル内の各エントリーは、1 つの OSS コマンドの実行を要求します。
たとえば、次のエントリーは、2 月 5 日の 10:00 a.m. に datefile に書き込みます。 コマンド
が実行される日付は 3 番目のフィールド (“day”) によって選択されるため、5 番目のフィール
ド (“weekday”) には * が指定されています。
0 10 5 2 * echo The date is ‘date’ > /datefile
156
プロセスの管理
次のエントリーは、cal コマンドを、毎回月曜、水曜、および金曜の 6:30 a.m. に実行します。
30 6 * * 1,3,5 cal > /calfile
次のエントリーは、timefile ファイルを 15 分ごとに書き込みます。
0,15,30,45 * * * *
echo The time is ‘date’ > /timefile
次のエントリーは、12 月 10 日から 31 日までの 4:00 p.m. に、ログインしているすべてのユー
ザーにメッセージを書き込みます。 % (パーセント) 記号で囲まれた文字列は、wall コマンド
の標準入力ファイルを定義します。
0 16 10-31 12 5 wall %Happy Holidays%
crontab ファイルを cron にサブミットするには、次のコマンドを入力します。
crontab file
ここで、file は、ユーザーの crontab 構成ファイルです。 たとえば、次に例を示します。
$ crontab mycommands
mycommands ファイルを cron にサブミットします。
既存の crontab ファイルを変更するには、次のコマンドを使用します。
$ crontab -e
このコマンドを実行すると、vi エディターで crontab ファイルディレクトリ内の現在の
crontab ファイルが開き、ユーザーが編集可能になります。 その他の有用な crontab コマ
ンドオプションには、次のものがあります。
$ crontab -l
ユーザーの crontab ファイルの内容を一覧表示します。
$ crontab -r
crontab ファイルディレクトリから、ユーザーの crontab ファイルを削除しま
す。
cron と crontab の詳細については、crontab(1) のリファレンスページをオンラインまた
は『Open System Services Shell and Utilities Reference Manual』で参照してください。
ジョブのスケジューリング
157
158
第12章
生産性向上ツール: grep と find
この章では、ファイルでの作業に役立つ 2 つのユーティリティについて説明します。 この章で
説明する項目は、次のとおりです。
•
•
grep コマンドを使用してファイルを検索
find コマンドを使用してファイルの場所を特定
grep ユーティリティと find ユーティリティは、高度な機能を備えています。 本章では、こ
れらのユーティリティについて詳細には説明しません。 その代り、一般的なユーザーに役立つ
いくつかの例を掲載しています。 grep と find についてさらに深く学習したい場合は、これ
らの機能について説明している市販の書籍を参照してください。
本章では、grep と find の使用方法を、例を使用して説明します。 前述の章とは異なり、前
の章で作成したファイルを使用して、今回の例を実行することはできません。 ただし、ユー
ザーのシステムで例を実行する場合、例のコマンドラインの引数を変更して、ユーザーのファ
イルの内容に合わせてください。
ファイルでテキストパターンを検索 (grep)
grep ユーティリティを使用して、ファイル内でテキストパターンを検索できます。 grep ユー
ティリティを使用して、以下の種類のテキストパターンを検索することができます。
•
•
“John Smith” など、特定のテキストパターン
以下のような正規表現
— “1989” で終わるすべての行
— “ レポート ” で始まるすべての語
— “Smith” という姓の、すべての従業員
grep ユーティリティを使用することにより、システムのどこかに存在するファイル内の情報
の場所を容易に特定できます。
grep の一般的な形式は、次のとおりです。
grep [flag] expression file
flag 項目は、コマンドの操作を変更するフラグを指定します。 表 12-1 は、選択対象のフラグ
を示しています。 expression 項目は、検索対象のテキストを指定します。 expression の
指定には、パターンマッチング文字を使用できます。 テキストが 2 文字以上の場合、“ ” (二重
引用符) で囲んでください。 file 項目には、ファイル名、ファイルの相対パス名、ファイル
の絶対パス名、またはスペースで区切られたファイルの並びを指定できます。 ファイルの指定
には、パターンマッチング文字も使用できます。
grep コマンドの使用例として、会社の従業員に関して次の連絡先ファイルを管理していると
想定します。
•
•
•
•
•
empsales (営業)
empmarket (マーケティング)
empaccount (会計)
emphr (人事)
empad (宣伝)
Mario Garcia の電話番号を検索するには、以下のコマンドを入力します。
$ grep "Mario Garcia" emp*
empad: Mario Garcia
X3871
grep コマンドを実行した結果、Mario Garcia は宣伝広告部門 (empad) に所属し、内線番号は
3871 であることがわかります。
ファイルでテキストパターンを検索 (grep)
159
さらに、grep コマンド内の多数のフラグを利用することにより、追加機能を指定できます。
表 12-1 では、これらのフラグをいくつか説明します。
表 12-1 grep コマンドのフラグ
フラグ
説明
-c
ファイル名、および一致する行数を表示します。
-i
指定されたテストの検索で、大文字と小文字の区別は無視します。 つまり、入力内の大文字と
小文字は同じものと解釈されます。
-l
指定されたテキストを含むファイル名のみ表示します。
-n
ファイル名、および一致する行番号を表示します。
-v
指定されたパターンに一致するもの以外の、すべての行を表示します。 出力を他のファイルに
リダイレクトする場合に、ファイルから不要な行を取り除くのに便利です。
grep 機能は多岐にわたるため、ここではいくつかの例に限って掲載します。 次の例は、grep
コマンドの使用方法の参考になります。
次の例では、前述の章で例に示したファイルとは、別のファイルが必要です。 自分のファイル
に、この例の原則を適用してください。
-i フラグの使用
自分の会社の顧客である DeSantis 氏に関する情報を含む、すべてのファイルを検索すると想
定します。 しかし、DeSantis 氏の名前のスペルは “DeSantis” と “Desantis.” の 2 種類で記載さ
れていることがわかりました。 grep コマンドはデフォルトで大文字と小文字が区別されるた
め、-i フラグを使用し以下のコマンドを入力します。そうすることにより、上記で示したス
ペルの相違にも対応して検索できます。
$ grep -i "Desantis" *
file1: DeSantis Enterprises f
file2: Mr. DeSantis
file3: In response to your letter, Mr. Desantis
file4: Thank for your talk, Mr. Desantis
行の抽出と他のファイルへの保存
社内の全社員名を部門ごとに記載したファイルで管理していると想定します。 その中から、会
計部門に所属する社員のみをリストに抽出するよう依頼されています。 社員のファイルを手作
業で目視検索して別のファイルを作成するではなく、以下のコマンドシーケンスを入力するこ
とにより、会計部門に所属する社員を特定、ソート、および表示することができます。
$ grep "Accounting" employees | sort > acctlist
$ more acctlist
Alicia Herstring
Bob Beenie
Sophire Smith
Accounting
Accounting
Accounting
行の削除と他のファイルへの出力の保存
社内の全社員名が医療保険キャリアごとに記載されたファイルを管理していると想定します。
その中から、Acme Insurance に加入していない社員のみをリストに抽出しようとしています。
医療ファイルを手作業で目視検索して別のファイルを作成するのではなく、以下のコマンド
シーケンスを入力することにより、社員レコードをソートし、印刷することができます。
160
生産性向上ツール: grep と find
$ grep -v "Acme Insurance" medlist | sort > medlist2
$ more medlist2
Alice Herstring
Bernard Smith
Bob Beenie
Connie Brown
Cranston Applewood
Randy Sparks
Great Insurance
ABC Insurance
ABC Insurance
Best Insurance
Best Insurance
Great Insurance
検索とソート
社内の全社員名が採用日付ごとに記載されたファイルを管理していると想定します。 その中か
ら、1991 年 1 月から 1997 年 12 月までの間に入社した社員のみをリストに抽出しようとしてい
ます。 社員ファイルを手作業で目視検索して別のファイルを作成するのではなく、以下のコマ
ンドシーケンスを入力することにより、社員レコードをソートし、印刷することができます。
$ grep "199[1-7]" employees | sort > emp90s
$ more emp90s
Alice Herstring
Bernard Smith
Bob Beenie
Connie Brown
Cranston Applewood
Randy Sparks
September 1994
March 1993
July 1997
February 1992
August 1991
October 1996
最初のコマンドライン内のカッコ指定範囲 [1-7] を使用する際には、注意が必要です。 この式
は、範囲内に示された単一文字に一致します。
grep コマンドには、この他にもさまざまな機能があります。 grep コマンドとそのフラグの
詳細については、grep(1) のリファレンスページを、オンラインまたは『Open System Services
Shell and Utilities Reference Manual』で参照してください。
ファイルの検索 (find)
find コマンドを使用すると、指定されたディレクトリおよびその下のすべてのサブディレク
トリを検索することにより、 ファイルの場所を特定できます。 このコマンドは、特にファイ
ル名によってそのファイルの内容をかなり把握できる場合、システム内にある多数のサブディ
レクトリの中から情報を検索するのに役立ちます。
ファイルの場所を特定して、その場所を表示する場合、find コマンドの一般的な形式は次の
とおりです。
find pathname -name filename -print
pathname 項目には、検索するディレクトリを指定します。 -name 項目は、対象の filename
を指定することを指定します。 filename 項目には、単一のファイルを指定するか、またはパ
ターンマッチング文字を使用して、複数のファイルを指定することができます。 パターンマッ
チング文字を使用して、複数のファイルを検索する場合、filename を “ ” (二重引用符) で囲
む必要があります。 -print 項目は、ファイルの場所を表示することを指定します。
find コマンドの使用例として、ユーザー chang が、ディレクトリ階層内のすべてのレポート
ファイルを検索するとします。 そのためには、以下にように入力します。
$ find /usr/chang -name "report*" -print
/usr/chang/reports96
/usr/chang/reports96/reportjan
/usr/chang/reports96/reportjan.tmp
/usr/chang/reports96/reportmay
/usr/chang/reports96/reportmay.tmp
/usr/chang/reports96/reportsept
/usr/chang/reports96/reportdec
ファイルの検索 (find)
161
/usr/chang/reports97
/usr/chang/reports97/reportjan
/usr/chang/reports97/reportmay
/usr/chang/reports97/reportsept
/usr/chang/reports97/reportsept.tmp
/usr/chang/reports97/reportdec
/usr/chang/reports98
/usr/chang/reports98/reportjan
/usr/chang/reports98/reportmay
/usr/chang/reports98/reportmay.tmp
/usr/chang/reports98/reportsept
また、find コマンドを使用してファイルを検索し、選択したファイルに対してコマンドを実
行することができます。 この検索の一般的な形式は、次のとおりです。
find pathname -name filename -print -exec command {} \;
pathname 項目には、検索するディレクトリを指定します。 -name 項目は、対象の filename
を指定することを指定します。 filename 項目には、単一のファイルを指定するか、またはパ
ターンマッチング文字を使用して、複数のファイルを指定することができます。 パターンマッ
チング文字を使用して、複数のファイルを検索する場合、filename を “ ” (二重引用符) で囲
む必要があります。 -print 項目は、コマンドによって操作されるファイルのパス名を表示す
ることを指定します。 -exec 項目は、選択したファイルに対してコマンドを実行することを
指定します。 command 項目は、選択したファイルに対して実行するコマンドを指定します。
{} (中カッコ) は、find コマンドの出力が、command のコマンドライン引数になることを示
します。 \; (バックラッシュとセミコロン) はエスケープシーケンスです。 セミコロンは command
の終了を指定し、バックラッシュは、シェルに対してセミコロンをインタープリトしないよう
に指示します。
たとえば、ユーザー chang が、前述の例に示した一時ファイルをすべて削除すると想定しま
す。 これらのファイルは、report という語で始まり、.tmp で終了しています。 次のように
入力します。
$ find /usr/chang -name "report*.tmp" -print -exec rm {} \;
/usr/chang/reports96/reportjan.tmp
/usr/chang/reports96/reportmay.tmp
/usr/chang/reports97/reportsept.tmp
/usr/chang/reports98/reportmay.tmp
ルートディレクトリを検索する場合、/G (Guardian ファイル) と /E (リモートノード) ディレ
クトリが検索に含まれます。そのため、予想以上に検索に時間がかかったり、広範な結果がで
る可能性があります。 find コマンドに -W NOG フラグと -W NOE フラグを指定することによ
り、それぞれ /G と /E を検索から除外することができます。 たとえば、次のコマンドはロー
カルノード上の f1 というファイルのみ検索し、Guardian ファイルやリモートノード上のファ
イルは検索しません。
find / -W NOG -W NOE -name f1 -print
find コマンドには、この他にもさまざまな機能があります。 詳細については、find(1) コマ
ンドのリファレンスページを、オンラインまたは『Open System Services Shell and Utilities
Reference Manual』で参照してください。
162
生産性向上ツール: grep と find
第13章
ファイルの転送とアーカイブ
OSS 環境と Guardian 環境の間でファイルをコピー、移動、転送するためのユーティリティが
いくつか準備されています。
Guardian 環境と OSS 環境の間でファイルとディレクトリを単にコピーまたは移動する場合に
は、OSS の cp (コピー) コマンドと mv (移動) コマンドが簡単です。
注記: リモートユーザーが OSS ファイルシステム内の SQL オブジェクトを移動する場合、そ
のファイルが宛先ディレクトリに存在すると、mv コマンドは "Guardian or User Defined Error
197" というエラーで失敗します。 このようなファイルを移動するには、ローカルユーザーが
mv コマンドで移動する必要があります。
OSS ディレクトリおよびファイルをコピーするには、pax コマンドを使用します。 テープか
ら OSS 環境にファイルやディレクトリをリストアする場合も、pax コマンドを使用します。
最後に、pax コマンドは、Guardian 環境と OSS 環境の間でファイルとディレクトリの読み取
りおよび書き込みを行うために、cp コマンドの代わりに使用できます。
注意: Guardian 環境と OSS 環境の構文の違いにより、両環境間でファイルをコピーすると
ファイル名が変化することがあります。
ファイル名とディレクトリ名の変換
Guardian ファイルシステムと OSS ファイルシステムの構文の違いにより、Guardian 環境と
OSS 環境の間でファイルを転送すると、次の処理が実行される可能性があります。
OSS 環境で生成された Guardian ファイル名は、Guardian ファイル名には使用できない文字を
含む場合があります。 その結果、Guardian ターゲット上でアーカイブメンバーを作成できず、
転送が失敗します。
名前変更プロセスでは、8 文字を超える OSS 名が最初の有効な 8 文字に切り詰められます。 た
とえば、OSS ファイル名 abcdefghi は Guardian 名 ABCDEFGH に変換されます。 これに
よって混乱が生じ、ファイルの識別が難しくなることがあります。 類似のファイル名が同じ
ファイル名に変換され、結果として 1 つのファイルが別のファイルを上書きする可能性があり
ます。
pax ユーティリティ
pax ユーティリティは、アーカイブファイルのメンバーの抽出、書き込み、一覧表示を行いま
す。 また、ファイルやディレクトリの階層構造をコピーします。
アーカイブファイルの名前は -f フラグで指定できます。 アーカイブファイルには、ディスク
ファイルとテープドライブに接続されたテープファイルを指定できます。 -f フラグを指定し
ない場合、読み取りモードではアーカイブファイルは標準入力ファイルとみなされ、書き込み
モードではアーカイブファイルは標準出力ファイルとみなされます。 標準入力がファイルから
提供される場合は、ファイルは、各行に前後の空白なしでパス名を 1 つ記述したテキストファ
イルでなければなりません。
特に指定しない限り、pax は Guardian ファイルと OSS ファイルを区別しません。
OSS 環境では、Guardian ファイルは /G パス命名規則で指定されます。 出力では、Guardian
ファイルは cp ユーティリティと同じ方法でコピーされます。つまり、Guardian ファイル属性
は保持されません。 入力では、ファイルは Guardian ターゲットにリストアされますが、既存
の Guardian ファイルは -W clobber フラグが指定された場合のみ上書きされます。 ファイ
ルは非構造化 Guardian ファイルとしてリストアされます。 OSS 環境でサポートされる Guardian
ファイルのみ処理されます。
OSS 環境で /G ファイルを操作できない場合は、pax によって診断メッセージが表示され、可
能な場合は他のファイルの処理が続行されます。
ファイル名とディレクトリ名の変換
163
pax ユーティリティは、Guardian テープデバイスを使用してテープアーカイブの読み取りと
書き込みを行います。 Guardian テープデバイスは、Guardian 環境で実行される Guardian
テーププロセスで制御され、UNIX テープデバイスと同様には動作しません。 テーププロセス
とテープデバイスとのやりとりは、pax ユーザーからは認識されません。
-W wait フラグがある場合は、pax は、まず Guardian テーププロセスにマウント要求を発行
してから、端末 (/dev/tty) に以下のテープマウントメッセージを出力します。
Device not ready or tape is not mounted?
-W wait フラグがない場合は、ラベルなしテープがテープドライブに正しくマウントされる
まで pax が待機状態になります。 Guardian ユーティリティ MEDIACOM を使用して、テー
プをマウントしてください。 これらの 2 つのユーティリティは、TACL 環境または OSS シェ
ルから gtacl コマンドで呼び出されます。
テープマウントプロセスでデバイスまたはマウントされたテープに関連するエラーが発生した
場合は、診断メッセージが表示されます。 エラーを修正してテープを再マウントするか、
MEDIACOM からのテープマウント要求を取り消すかを選択できます。
以下に pax の使用例を示します。
別のディレクトリへのディレクトリ階層のコピー
ディレクトリ階層を新しいディレクトリにコピーするには、次のように入力します。
$ mkdir newdir
$ pax -rw olddir newdir
-r フラグは、標準入力ファイルからアーカイブファイルを読み取ります。
-w フラグは、指定したアーカイブフォーマットでファイルを標準出力ファイルに書き込みま
す。
ターゲットディレクトリが存在しない場合は、これを作成する必要があります。
テープへのファイル階層のコピー
カレントディレクトリのファイル階層を Guardian テープデバイス $TAPE にマウントされた
テープに、ブロック化係数 5120 バイトでコピーするには、次のように入力します。
$ pax -wv -f /G/tape -b 10b
-w フラグは、指定したアーカイブフォーマットでファイルを標準出力ファイルに書き込みま
す。
リストモードで -v フラグを指定すると、詳細な目次が生成されます。 このフラグがない場合
は、標準エラーファイルにアーカイブメンバーのパス名が書き込まれます。
-f /G/tape フラグは、入力アーカイブまたは出力アーカイブのパス名を指定して、(リスト
モードまたは読み取りモードで) デフォルトの標準入力ファイルを上書きし、(書き込みモード
で) デフォルトの標準出力ファイルを上書きします。 Guardian テープデバイスは /G 命名規則
で指定できます。 Guardian システムプロシージャーコールは、Guardian テーププロセスとの
インターフェイスに使用されます。 また、-a フラグが指定され、ディスクアーカイブメディ
アが使用された場合は、アーカイブの終端にファイルが追加されます。
-b 10b フラグでは、アーカイブが一連の固定サイズブロックとして記録されます。 物理 I/O
の効率を上げるためには、指定されたブロックサイズを、ディスクアーカイブでは 32256 バイ
トに、テープアーカイブでは 28672 バイトに制限する必要があります。 ブロック化は、入力時
に自動的に決定されます。
ブロックサイズは一連の数字 (0~9) で指定し、後にオプション文字 b または k を付けます。 b
を使用すると、ブロックサイズの値に 512 が乗じられます。 k を使用すると、ブロックサイズ
の値に 1024 が乗じられます。 たとえば、10b はブロックサイズの値 5120 バイト (10 * 512) に
変換されます。
164
ファイルの転送とアーカイブ
cpio アーカイブフォーマットのデフォルトのブロックサイズは 10b (5120 バイト) です。 ブ
ロックの最後のグループは常にフルサイズです。 ustar アーカイブフォーマットのデフォル
トのブロックサイズは 10k (10240 バイト) です。 このブロックサイズは、512 バイトの倍数で
指定する必要があります。
カレントディレクトリがルートディレクトリの場合は、アーカイブに /E ディレクトリと /G
ディレクトリが含まれます。 -W NOG フラグを指定すると /E ディレクトリがアーカイブされ
ず、-W NOE フラグを指定すると /G ディレクトリがアーカイブされません。 たとえば、次の
コマンドでは、ローカルノード上のすべての OSS ファイルだけが paxfile という名前のファ
イルにアーカイブされます。
pax -wvf paxfile -W NOG -W NOE /
テープから Guardian 環境へのファイルのリストア
$TAPE にマウントされたテープから Guardian ターゲット $VOL.SUBVOL にファイルをリス
トアし、.c ファイルのみを抽出して既存の Guardian ファイルを上書きするには、次のように
入力します。
$ cd /G/vol/subvol
$ PAX -rv -f /G/tape -W clobber *.c
-r フラグは、標準入力ファイルからアーカイブファイルを読み取ります。
リストモードで -v フラグを指定すると、詳細な目次が生成されます。 このフラグがない場合
は、標準エラーファイルにアーカイブメンバーのパス名が書き込まれます。
-f /G/tape フラグは、入力アーカイブまたは出力アーカイブのパス名を指定して、(リスト
モードまたは読み取りモードで) デフォルトの標準入力ファイルを上書きし、(書き込みモード
で) デフォルトの標準出力ファイルを上書きします。 Guardian テープデバイスは /G 命名規則
で指定できます。 Guardian システムプロシージャーコールは、Guardian テーププロセスとの
インターフェイスに使用されます。 また、-a フラグが指定され、ディスクアーカイブメディ
アが使用された場合は、アーカイブの終端にファイルが追加されます。
-W clobber フラグは HP の拡張機能です。 このフラグを使用すると、アーカイブの対応す
るファイルを Guardian ターゲットに格納でき、同じ名前の Guardian ターゲットファイルが
ある場合はこれを上書きすることができます。 ファイルが非構造化ファイルとしてリストアさ
れること、Guardian ファイル属性が保持されないことに留意する必要があります。
注記: -W clobber フラグを使用して Guardian ターゲットにファイルをリストアする前に、
(pax(1) リファレンスページで説明するように) データ上書きの危険性を十分に理解してくだ
さい。
アーカイブ内のファイルをリストアする場合、pax コマンドに -W NOE フラグと -W NOG フラ
グを指定すると、それぞれ /E ディレクトリまたは /G ディレクトリからアーカイブされたファ
イルをスキップすることができます。 たとえば、次のコマンドは、paxfile という名前のアー
カイブ内のすべての OSS ファイルを抽出し、リストアしますが、/G からアーカイブされたファ
イルをスキップします。
pax -rvf paxfile -W NOG
ftp ユーティリティ
ftp ユーティリティはファイル転送ユーティリティ (FTP) へのインターフェイスであり、ロー
カルホストとリモートホストの間または 2 つのリモートホスト間のファイル転送に使用されま
す。
FTP は、異なるファイルシステムを使用するホスト間でファイルを転送できるように設計され
ています。 したがって、このプロトコルによってデータ転送に大きな柔軟性が提供されます
が、特定のファイルシステムに固有のファイル属性 (たとえば、保護モードまたはファイルの
変更時間) を保持しようとしません。 さらに、ftp には、ファイルシステムの構造全体に関す
る仮定がほとんどなく、サブディレクトリの再帰的なコピーはできません。
ftp ユーティリティ
165
ftp コマンドでは、リモートディレクトリのリスト、現在のローカルおよびリモートディレク
トリの変更、単一要求での複数ファイルの転送、ディレクトリの作成と削除、ローカルシェル
へのエスケープによるシェルコマンドの実行、などのタスクを行うためのサブコマンドが提供
されています。
ftp を実行してホスト名を指定しないと、ftp は直ちに ftp> プロンプトを表示して ftp サ
ブコマンドを待機します。 リモートホストに接続するには、open サブコマンドを実行しま
す。 ftp コマンドがリモートホストに接続すると、ftp は、再び ftp> プロンプトを表示する
前にユーザー名とパスワードのプロンプトを表示します。 指定したユーザー名のパスワードが
リモートホストで定義されていない場合は、ftp が失敗します。
リモートホストの名前を指定すると、ftp は、指定されたホストへの接続を直ちに確立しよう
とします。 ftp は、正常に接続すると、カレントディレクトリまたはホームディレクトリで
ローカル $HOME/.netrc ファイルを検索します。 ファイルが存在する場合は、ftp は、リ
モートホスト用のログインプロセスとコマンドマクロ定義を開始するエントリーをファイル内
で検索します。 $HOME/.netrc ファイルもオートログインエントリも存在しない場合、ftp
は、ユーザー名とパスワードを要求するプロンプトを表示します。 これは、コマンドラインに
ホスト名が入力されているかどうかにかかわらず表示されます。
ftp は、指定されたホストの $HOME/.netrc オートログインエントリーを検出した場合は、
このエントリーの情報を使用してリモートホストへのオートログインを試みます。 ftp コマン
ドは、このエントリー内で定義されたコマンドマクロもロードします。 場合によっては (たと
えば、要求されたパスワードがオートログインエントリーにリストされていない場合)、ftp
は、ftp> プロンプトを表示する前にパスワードのプロンプトを表示します。 ftp は、オート
ログインプロセスを完了すると、オートログインエントリーに init マクロが定義された場合
には、このマクロを実行します。 init マクロが存在しない場合、または quit コマンドも
bye コマンドも含まない場合、ftp は、プロンプトを表示してサブコマンドを待機します。
プロンプトまたは $HOME/.netrc ファイルで指定するリモートユーザー名が存在し、リモー
トホストでパスワードが定義されている必要があります。それ以外の場合は ftp が失敗しま
す。
ftp> プロンプトに入力されたすべてのコマンドを処理する ftp コマンドインタープリター
は、ftp コマンドへのファイル名引数の処理、コマンドのグループを単一のコマンドマクロに
収集する機能、$HOME/.netrc ファイルからマクロをロードする機能など、ファイル転送プ
ログラムでは使用できない多くの機能を提供します。 これらの機能は、反復タスクを簡素化し
て、無人モードでも ftp を使用できるように設計されています。
コマンドインタープリターは、以下の規則に従ってファイル名引数を処理します。
•
•
引数に - (ハイフン) を指定すると、読み取り操作に標準入力ファイル、書き込み操作に標
準出力ファイルが使用されます。
ファイル名の最初の文字が | (縦棒) の場合は、残りの引数はシェルコマンドと解釈されま
す。 ここで、ftp は、引数を指定した popen() を使用してシェルにフォークし、stdout
からの読み取り (stdin への書き込み) を行います。 シェルコマンドにスペースを含める
場合は、引数を引用符で囲む必要があります。たとえば、"| ls -lt" とします。 この
メカニズムの特に有効な例を、次に示します。
dir | more
•
•
166
前のチェックが失敗し、グロビングが有効な場合は、ローカルファイル名が展開されます
(glob(3) のリファレンスページを、オンラインまたは『Open System Services Shell and
Utilities Reference Manual』で参照してください)。 ftp コマンドが唯一のローカルファ
イルを想定している場合には (たとえば、put)、グロビング操作によって生成された最初
のファイル名だけが使用されます。
get サブコマンドと mget サブコマンドでローカルファイル名を指定しないと、ローカル
ファイル名はリモートファイル名と同じになります。これは、case、ntrans、または
nmap の設定で変更できます。 runique がオンの場合は、結果のファイル名を変更できま
す。
ファイルの転送とアーカイブ
•
mput コマンドと put コマンドでリモートファイル名を指定しないと、リモートファイル
名はローカルファイル名と同じになります。これは、ntrans または nmap の設定で変更
できます。 ここで、sunique がオンの場合は、リモートサーバーで結果のファイル名を
変更できます。
ftp コマンドインタープリターは、パイプをサポートしないことに注意してください。
会話型で実行している ftp セッションを終了するには、ftp> プロンプトで bye サブコマンド
または quit サブコマンド、あるいはファイルの終わり (EOF) キーシーケンスを使用します。
ファイル転送を完了前に終了するには、割り込みキーシーケンスを使用します。 デフォルトの
割り込みキーシーケンスは [Ctrl-c] です。
stty コマンドを使用すると、このキーシーケンスを再定義できます。 送信転送 (ローカルホ
ストからリモートホストへの転送) は通常は直ちに終了されます。 この受信転送の停止は、リ
モート FTP サーバーに FTP ABOR 命令を送信し、リモートサーバーがファイル転送パケット
の送信を停止するまですべての受信パケットを破棄することによって行われます。
リモートサーバーが FTP ABOR 命令をサポートしない場合は、リモートサーバーが要求された
すべてのファイルの送信を完了するまで、ftp> プロンプトは表示されません。 さらに、リ
モートサーバーに予期しない動作が発生した場合は、ftp プロセスを手動で終了する必要があ
ります。
ftp ユーティリティ
167
168
付録A vi エディター
テキストエディター vi は、大部分のコンピューターユーザーの日常の編集作業に適していま
す。 vi を使用すると、迅速かつ容易にファイルを開き、編集し、結果を保存することができ
ます。 vi エディターは、基本的にはすべての UNIX システム上で同様に動作します。したがっ
て、UNIX システム上で vi を使用したことがある場合には、OSS システムで直ちに vi の使用
を開始できるはずです。 vi には、市販のテキストエディターやワードプロセッサーの持つ一
部の機能が提供されていませんが、以下のような主要な機能を持つ完全なテキストエディター
です。
• 特に起動と一括操作における高速処理
• フルスクリーン処理とスクロール機能。vi の基になっているラインエディター ed とは異
なります。
• テキスト入力モードと編集モードの分離
• グローバルな置換と複合的な編集コマンド
vi エディターは、コマンドモードと入力モードの 2 つのモードで動作します。 vi は、開始時
はコマンドモードです。 コマンドモードでは、入力する文字はテキストを操作するコマンドと
して取り扱われます。 入力モードでは、入力する文字は、実際にテキストとしてファイルに格
納されます。
この付録では、vi の基本機能を例を使用して説明します。 この付録で説明する項目は、次の
とおりです。
• ファイルを開くか、または作成して編集を行う
• ファイル内でカーソルを移動する
• ファイルに新しいテキストを入力する
• ファイル内で既存のテキストを変更する
• ファイル内で単純な文字列を検索する
• テキストを移動、コピーする
• ファイル内で単純なグローバル置換を行う
• ファイルにテキスト全体または一部を書き込む
• テキストのブロックを削除、移動、またはコピーする
• 編集環境をカスタマイズする
この付録は、vi の機能の入門にすぎません。 詳細については、vi(1) のリファレンスページ
を、オンラインまたは『Open System Services Shell and Utilities Reference Manual』で参照し
てください。 また、vi について詳細に説明した書籍が多数市販されていますので参照してく
ださい。
この付録は、3 つのサブセクションに分割されます。 最初のサブセクションでは、vi の使用
を開始します。 2 番目のサブセクションでは、効率的に作業を行うための高度な技法がいくつ
か紹介されています。 3 番目のサブセクションでは、vi の基礎となっている ex コマンドの使
用方法を示します。
はじめに
このサブセクションでは、vi でファイルを開き、ファイル内を移動し、テキストを作成して
変更し、さらにその変更を保存する方法を説明します。
vi を開始する前に、OSS 環境で vi を使用するための予備的な手順をいくつか実行する必要が
あります。
OSS 環境で vi を使用する準備
OSS 環境で vi が正しく機能するためには、2 つの障害があります。 1 つは、vi は VT100 端末
で動作するように設計されたことです。他の端末では、vi が正しく機能しない可能性があり
ます。 2 つ目の障害は、OSS に vi を実装した方法に関係しています。 そのため、特定の vi
はじめに
169
コマンドキーが正しく機能しない可能性もあります。 しかし、以下の手順を実行することによ
り、vi が正しく動作することを保証できます。
• 端末セッションを、適切なエミュレーションモードで開始します。
• ホームディレクトリに .exrc ファイルを作成し、カスタマイズしたキーマッピングを保
存します。
端末エミュレーションモードの設定
端末エミュレーションモードを設定する方法は、ご使用のエミュレーションプログラムによっ
て異なります。 たとえば、OutsideView エミュレーションプログラムを使用している場合に
は、端末エミュレーションモードを VT320 に設定してください。
1. OutsideView を開始します。
2. [File] メニューで [New Session] を選択します。
3. 次の図に示すように、[Session Settings] ダイアログボックスで [Emulation:] を [VT320] に
設定します。
VT320 モードで動作する端末セッションで、vi コマンドは、この付録で以下に説明するよう
動作します。
.exrc ファイルを使用してコマンドキーをカスタマイズ
OSS に vi を実行した方法が原因で、いくつかの vi コマンドキーが正しく機能しないことが
あります。 ユーザーのホームディレクトリに、カスタマイズしたキーマッピングを格納した
.exrc ファイルを作成することにより、これらのコマンドキーが正しく機能するよう設定する
必要があります。 「ユーザー環境のカスタマイズ」 (178 ページ) に説明するように、.exrc
ファイルには、vi を起動したときに自動的に実行されるコマンドが格納されています。 .exrc
で map コマンドを使用して、vi の機能を特定のキーに対応付けることができます。
ユーザーが指定するカスタマイズしたキーマッピングは、使用する端末エミュレーションソフ
トウェアによって異なります。 例 A-1 (171 ページ) は、OutsideView エミュレーターで機能す
るキーマッピングを含む .exrc ファイルを示しています。 異なるエミュレーターを使用して
いる場合には、そのエミュレーターに該当する .exrc ファイルを作成します。
170
vi エディター
コメントに示すように、例のキーマッピングでは、以下のコマンドキーに対して正しい機能が
提供されます。
• 矢印キーを使用したカーソル制御
• Insert キーと Delete キー
• Page Up キーと Page Down キー
例 A-1 Sample .exrc File
" arrow keys
map <Ctrl-V><up-arrow> k
map! <Ctrl-V><up-arrow> <Ctrl-V><Esc>ki
map <Ctrl-V><down-arrow> j
map! <Ctrl-V><down-arrow> <Ctrl-V><Esc>ji
map <Ctrl-V><right-arrow> l
map! <Ctrl-V><right-arrow> <Ctrl-V><Esc>li
map <Ctrl-V><left-arrow> h
map! <Ctrl-V><left-arrow> <Ctrl-V><Esc>hi
" Insert key
map <Ctrl-V><Insert> i
" Delete key
map <Ctrl-V><Delete> x
map! <Ctrl-V><Delete> <Esc>xi
" Page Up key
map <Ctrl-V><Page Up> <Ctrl-V><Ctrl-B>
map! <Ctrl-V><Page Up> <Ctrl-V><Esc><Ctrl-B>i
" Page Down key
map <Ctrl-V><Page Down> <Ctrl-V><Ctrl-F>
map! <Ctrl-V><Page Down> <Ctrl-V><Esc><Ctrl-F>i
map コマンドは、vi コマンドをコマンドキーに対応付けます。 map! コマンドは、テキスト
入力モードと同じマッピングを実行します。
編集ファイル例の作成
次の vi の例を開始する前に、編集するファイル例を作成する必要があります。 次に示すよう
に、このファイルを cat コマンドで作成します。
$ cat > my.file
You can use this text file
to experiment with vi.
<Ctrl-c>
ファイルのオープン
vi の基本的な構文は、新しいファイルを作成するか、既存のファイルを開くかに関係なく同
じです。
vi file
file は、作成する新しいファイルまたは開いている既存のファイルの名前です。
my.file ファイルを開くには、次のように入力します。
$ vi my.file
画面に、次のように表示されます。
You can use this text file
to experiment with vi.
~
はじめに
171
~
~
~
~
~
~
"my.file" 2 lines, 46 characters
サンプルファイルのテキストが画面の最上部に表示され、その後に ~ (波ダッシュ) に続いて行
数が表示されます。 波ダッシュで始まる行は、画面上の残りの空白行です。 画面の最下行に
は、ファイル名、ファイル内の行数、および文字数が表示されます。
この時点で vi を終了するには、次のように入力します。
:q
vi の終了については、「編集セッションの終了」 (174 ページ) で説明します。
ファイル内での移動
my.file を閉じた場合には、前述のサブセクションの説明に従って再度開きます。 カーソル
は、“You.” の中の Y のように、ファイルの最初の文字に置く必要があります。
vi は、起動時にはコマンドモードになります。 コマンドモードでは、入力する文字は、ファ
イルに対するテキスト入力ではなく、コマンドとして扱われます。 [h]、[j]、[k]、[l] の各キー
を使用して、それぞれ一度に 1 文字ずつ左、下、上、右にカーソルを移動することができま
す。 次のように入力すると、“experiment” というワードの最初の文字に移動します。
lllj
キーボードに矢印キーが存在する場合、それらのキーを使用して左、右、上、下に移動できる
ことに注意してください。 しかし、[h]、[j]、[k]、および [l] の各キーを使用すると、指をキー
ボードの主要セクションに置いたまま素早く入力できます。 また、大部分の vi コマンドの後
に、[Return] キーを押す必要がないことにも注意してください。 コマンドモードでは、[Return]
を押すと次の行の最初の文字にカーソルが移動します。
また、ワードごとの境界にカーソルを移動することもできます。 w コマンドを使用すると、次
のワードの先頭に移動します。 次のように入力すると、カーソルが “with” というワードの先
頭に移動します。
w
また、b コマンドを使用すると、ワードの隣の先頭に戻ります。 たとえば、次のように入力す
ると、カーソルが “experiment” というワードの先頭に移動します。
b
ここで、ワードの先頭で b コマンドを使用しない場合にはどのようになるか、次のように入力
して確認してください。
llllb
カーソルは、“experiment.” というワードの先頭に戻ります。
該当する場合には、カーソルは、次のテキスト行または直前のテキスト行の先頭に戻ります。
次のように入力すると、カーソルが “text” というワードの先頭に移動します。
bbb
以下に、その他の移動コマンドを示します。
• 0 コマンドと $ コマンドでは、現在のテキスト行の先頭と終端に移動します。
• ) コマンドと ( コマンドでは、前のセンテンスと次のセンテンスの先頭に移動します。
• } コマンドと{ コマンドでは、前のパラグラフと次のパラグラフの先頭に移動します。
大きなファイルでは、[Ctrl-f] および [Ctrl-b] を押すことにより、画面分だけカーソルを移動
し、同時に画面をスクロールできます。 [Ctrl-f] では、カーソルがテキスト 1 画面分だけ前方
にスクロールし、[Ctrl-b] では、テキスト 1 画面分だけ後方にスクロールします。
vi エディターには、さらに別のカーソル移動方法があります。これらは、vi に関する書籍お
よびオンラインまたは『Open System Services Shell and Utilities Reference Manual』の vi(1)
のリファレンスページに詳細に説明されています。
172
vi エディター
新しテキストの入力
ファイルに新しいテキストを入力するには、入力モードに変更する必要があります。 入力モー
ドでは、入力する文字は、ファイルのテキストに直接追加されます。 [Esc] キーを押すことに
より、いつでも入力モードを終了して、コマンドモードに戻ることができます。 どちらのモー
ドにいるか分からなくなった場合には、[Esc] キーを押してこコマンドモードに戻ります。 コ
マンドモードで [Esc] キーを押すと、ビープ音が鳴るようにシステムを構成できます。
ファイル内の最初の行の “text” というワードの前に “new” というワードを追加するには、ま
ずカーソルを “text.” 内の t に移動し、次のように入力して入力モードに入ります。
I
次に、“new,” というワードと空白文字を入力します。
new <Space>
ここで、次のように入力して入力モードを終了します。
<Esc>
ここで、カーソルは、“new” および “text.” というワードの間のスペースにあります。
i コマンドを使用すると、カーソル位置の文字の前にテキストを挿入できるようになります。
カーソル位置の文字の後にテキストを挿入するには、a コマンドを使用します。 a コマンド
は、行の終端にテキストを追加するために必要です。
o コマンドでは、カーソル位置の行の下に新しい行が作成され、その新しい行の先頭からテキ
ストを挿入できるようになります。 このファイルの終端に文章を追加するには、まず次のよう
に入力して、カーソルを次の行に移動します。
j
カーソルが、 “vi” 内で i の上に来るはずです。 ここで、次のように入力して入力モードに入
ります。
o
新しい文章を入力しますが、その中に [Return] 文字を含めることができます。入力が終わった
ら、[Esc] を押してコマンドモードに戻ります。 間違った場合には、[Backspace] キーを押して
修正できます。
New text can be easily entered<Return>
while in input mode.<Esc>
ここで、画面には、次のように表示されます。
You can use this new text file
to experiment with vi.
New text can be easily entered
while in input mode.
~
~
~
~
~
~
~
"my.file" 4 lines, 102 characters
また、O コマンドでは、現在の行の上に新しい行が作成され、新しい行の先頭からテキストを
挿入できます。 このコマンドは、ファイルの先頭に新しいテキストを挿入する際に便利です
が、任意の位置で使用できます。
入力モードを開始するコマンドには、その他に I と A の 2 つがあります。 I コマンドを使用す
ると、現在の行の先頭文字の前にテキストを挿入できるようになります。 A コマンドを使用す
ると、現在の行の最終文字の後にテキストを挿入できるようになります。
テキストの編集
vi エディターには、テキストブロックの削除や変更を行うコマンドがあります。 たとえば、
あるワードの最初の文字にカーソルを移動して次のように入力すると、そのワードを「簡単」
に削除できます。
はじめに
173
dw
これは、削除コマンド d とモーションコマンド w を組み合わせたものです。 実際に、多数の
vi コマンドでは、モーションコマンドと組み合わせることにより、アクションの持続期間を
指定できます。 アクションコマンドとモーションコマンドの組み合わせの一般的な形式は、次
のとおりです。
[number] command motion
command 項目にはアクションコマンドを指定し、motion にはモーションコマンドを指定しま
す。また、number には、オプションで、コマンドの実行回数を指定します。 この一般形式を
使用して、カーソルを多数のステップ分だけ移動することもできます。 たとえば、カーソルを
5 ワード前方に移動するには、次のように入力します。
5w
複数ワードの削除
上に示した一般形式を使用すると、my.file ファイルの最後の行に移動して次のように入力
することにより、最後の 5 ワードを削除できます。
5dw
行全体を削除するには、4 ワードではなく、5 ワード削除することに注意してください。 これ
は、末尾のピリオドも 1 ワードにカウントされるためです。
dd コマンドは、テキストの 1 行全体を削除します。 また、dd コマンドに数を指定して使用す
ると、複数行を削除できます。
テキストの変更
テキストを変更するコマンドは c であり、削除した後、入力モードに戻るアクションを組み合
わせて使用できます。 c コマンドの形式は、d コマンドの一般形式に従います。 “new text” を
“almost new demo” に変更するには、カーソルを new というワードの先頭文字に移動します。
そこで、次のコマンドを入力します。
2cw
テキストは、すぐには消えません。 その代わりに、変更範囲の終端 (“text” の最後の t に $ (ド
ル記号) が表示され、入力モードに入ります。 テキストを入力すると、既存のテキストがドル
記号まで上書きされ、その後、必要に応じてテキストが拡張されます。 次のように、新しいテ
キストを入力します。
almost new demo<Esc>
c コマンドと d コマンドを任意のモーションコマンドと一緒に使用することで、強力な編集を
行うことができます。
コマンドの取り消し
変更を行った後、間違いに気付いた場合には、その間違いを修正できます。 u コマンドは、最
後に入力されたコマンドを取り消します。 次のように入力して、最後のコマンドを取り消しま
す。
u
文字列 “almost new demo” が、“new text” に戻ります。
編集セッションの終了
変更を行った後、その変更を保存してから vi を終了する必要があります。 変更を保存して vi
を終了するには、次のように入力します。
:wq<Return>
このコマンドの形式は、他の vi とは大きく異なることに注意してください。 その理由は、こ
のコマンドは vi のコマンドではなく、ex のコマンドであることによります。 [:] キーを押す
と、コロンが画面の最下行に表示されます。 : に続いて、すべての ex コマンドを vi から開
始できます。 wq コマンドは、ファイルを書き込んで編集セッションを終了します。 コマンド
の後で [Return] を押し、ex に対してコマンドの入力の終了を指示する必要があります。 ex コ
マンドについては、この付録で後ほど詳しく説明します。
174
vi エディター
変更を保存せずに vi を終了するには、次のように入力します。
:q!<Return>
次の節では、生産性を向上させるとともに、ユーザー環境をカスタマイズする高度な技法を説
明します。
高度な技法の使用法
この節では、文字列の検索、テキストの移動、およびテキストのコピーを行う方法を示しま
す。 大きなドキュメントを取り扱う際には、以下の作業を行うことによって作業効率が向上し
ます。
「その他の vi の機能」 (176 ページ) に、その他の vi の高度な機能が端的に示されています。
文字列の検索
ファイル内の文字列の検索には、/ コマンドを使用します。 / コマンドを使用するには、まず
my.file ファイルの先頭に移動します。 ここで、次のように / に続いて文字列 “th” を入力し
て [Return] を押します。
/th<Return>
/ を入力すると、その文字がすぐに画面の最下行に表示されます。 文字列 “th” を入力すると、
その文字列が画面の最下行に表示されます。 検索文字列の入力時には、[Backspace] を押して
間違いを修正できます。 [Return] を押すと、カーソルが、この文字列が最初に出現する位置に
移動します。
n コマンドは、最後に検索した文字列が、次に出現する位置を検索します。 ここで、次のよう
に入力して試してみてください。
n
この文字列の次の出現位置にカーソルが移動しますが、これは、“with” というワード内の “th”
になります。 また、n と同様に N を使用すると、ファイル内を逆方向に検索します。
? コマンドは、/ と同じ方法で使用できますが、ファイル内で検索文字列を後方に向けて検索
するよう指定することになります。 後方に向けて検索している場合、n コマンドでは後方に向
けて次の文字列の出現位置にカーソルが移動し、N コマンドではカーソルが前方に移動します。
テキストの移動
テキストのブロックを移動する最初のステップでは、移動するテキストを選択します。 d コマ
ンドは、テキストのブロックを削除するだけでなく、それをペーストバッファーにコピーしま
す。 ペーストバッファーに入ったテキストは、カーソルを別の位置に置いて、次に p コマンド
を使用してそのカーソル位置の後にテキストを挿入することにより、移動することができま
す。
ファイルの最初の行を削除するには、その位置に移動して、次のように入力します。
dd
その行が削除されてペーストバッファーにコピーされ、カーソルがファイル内の次の行に移動
します。 現在のカーソル行の後に削除した行を貼り付けるには、次のように入力します。
p
カーソルの後ではなく、前にテキストを貼り付けるには、P コマンドを使用します。
文字またはワードサイズのブロックを削除した場合には、そのブロックは、現在の行内の新し
い位置に貼り付けられます。 たとえば、“can” というワードを “with” というワードの直前に
移動するには、次のコマンドシーケンスを使用します。
/can<Return>
dw
/with<Return>
P
高度な技法の使用法
175
テキストのコピー
テキストのコピーは、テキストのヤンクコマンドである y を使用する点を除いて、テキストの
移動コマンドと同じ方法で実行できます。 y コマンドは、指定されたテキストを削除すること
なく、ペーストバッファーにコピーします。 このコマンドでは、d コマンドと同じ構文を使用
できます。 yy コマンドを使用すると、1 行のテキスト行全体がペーストバッファーにコピー
されます。
たとえば、ファイルの先頭の 2 行を、そのすぐ下の位置にコピーするには、ファイルの先頭行
で次のように入力します。
2yy
j
P
j を使用して、1 行下に移動する必要があることに注意してください。移動しないと、2 行目の
後ではなく、先頭行の後に 2 行が貼り付けられます。
その他の vi の機能
その他の vi の機能を使用したい場合があります。 vi のリファレンスページに、使用できる
コマンドがリストされています。 以下のコマンドには、特に注目する価値があります。
J
後続行を現在の行に結合します。
.
最後のコマンドを繰り返し実行します。
s
現在の文字を、このコマンドに続いて入力されるテキストで置き換えます。
x
現在の文字を削除します。
~
現在の英字の大文字と小文字を入れ替えます。
!!
テキストの現在行に対して OSS コマンドを実行し、その行を出力で置き換えます。
Ctrl-l
vi の画面表示機能で問題が発生した場合に、その画面をリフレッシュします。 画面の出力表
示が混乱した場合には、いつでも [Ctrl-l] を押してください。
基盤となる ex コマンドの使用法
スクリーンエディター vi は、ラインエディター ex に基づいています。 ラインエディター ex
を使用すると、ファイルに対してグローバルな変更を行うことができます。 vi の: コマンド
を使用して、vi の中から ex のコマンドを実行できます。
: コマンドを使用すると、画面の最下行に ex の プロンプト : が表示され、単一のコマンドラ
インを入力できます。 各 ex コマンドは、[Return] を押して終了します。 各 ex コマンドが終
了した後、ex が終了して vi に戻ります。 vi のコマンド Q を使用すると、さらに恒久的に ex
モードに留まることができます。 このコマンドを実行すると、明示的に vi に戻るまで、ex
による処理が継続します。 この状態は、しばしば偶然発生します。 この状態が発生した場合
には、次に示すように、: (コロン) プロンプトで vi と入力して [Return] を押すことにより、
vi に戻ってください。
:vi<Return>
ex コマンドは、次の一般的な構文に従って、テキストファイル内の行のブロックに作用しま
す。
:address1,address2 command
command とその引数は、address1 と address2 を含めて、その間の行に作用します。 アド
レスを 1 つだけ指定した場合、コマンドは、指定された行に対してのみ作用します。 アドレス
を指定しないと、コマンドは、現在の行に対してのみ作用します。 アドレスは、いくつかの方
法で指定できます。
176
vi エディター
以下に、いくつかのコマンドアドレス指定を示します。
line_number
アドレスを絶対行番号で指定します。
/pattern/
次にパターンを含む行を指定します。
.
カーソルが置かれている行を指定します。
$
ファイルの最後の行を指定します。
address±lines
アドレス行からの相対オフセットを指定します。
%
ファイル内のすべての行を指定し、両方のアドレスの代わりに使用されます。
以降の各節では、効果の大きい ex コマンド、および ex が提供するカスタマイズ機能をいく
つか示します。 詳細なコマンドリストについては、ex(1) のリファレンスページを、オンラ
インまたは『Open System Services Shell and Utilities Reference Manual』で参照してくださ
い。
置換の実行
ex で共通に行われる作業の 1 つに、1 つのワードまたはフレーズを別のものにグローバルに置
換することがあります。 これは、s コマンドで実行できます。 my.file ファイルを閉じた場
合には、もう一度開いてください。
“is” のすべての出現箇所を “was” に変更するには、次のコマンドを使用します。
:%s/is/was/g<Return>
vi コマンドの : は、ex コマンドの入力を要求します。 この置換は、% アドレスによって、
ファイル内のすべての行に適用されます。 区切り文字として / (スラッシュ) が使用されていま
す。 (他の任意の文字を使用できます。) コマンドの末尾に g フラグが指定されているため、各
行内のパターンの各インスタンスに対して置換が行われます。 g フラグを指定しないと、各行
内で一度だけ置換が行われます。
置換を行う時には、目的とする置換が確実に行われるように注意してください。 上のコマンド
では、“this” が “thwas” に変更されることに注意してください。
g フラグと一緒に c フラグを指定することにより、各置換の前に確認を要求するよう指定でき
ます。
置換を確認する例として、次のコマンドを入力することにより、“thwas” というワードを “this”
に戻します。
:%s/thwas/this/gc<Return>
画面の最下部に、次のプロンプトが表示されます。
You can use thwas text file
^^^
置換するテキストとして、“thwas” の “was” が強調されていることに注意してください。 次
の例に示すように、y を入力して [Return] を押します。 次に、2 番目の置換に対するプロンプ
トが表示されます。
You can use thwas text file
^^^y<Return>
You can use thwas text file
^^^
y を入力し、[Return] を押します。 Hit return to continue プロンプトへの応答として、
次のように、もう一度 [Return] を押します。
You can use thwas text file
4ª
^^^y
You can use thwas text file
4ª
^^^y<Return>
[Hit return to continue]<Return>
“thwas” というワードの 2 つの出現箇所が、“this” に戻ったのがわかります。 さらに、コマン
ドモードに戻って、最後の置換の位置にカーソルが表示されます。
基盤となる ex コマンドの使用法
177
ここで、サンプルファイルに対して別の置換を行います。 次のように、$ (最後の行の先頭に
移動)、o (新しい行を作成)、yy (ヤンク)、および p (貼り付け) の各コマンドを使用して、ファ
イルに新しいテキストを 3 行追加します。
:$<Return>
o
Some new text with a mispelling. <Esc>
yy
p
p
p
ここで、4 行の新しいテキストがあり、そのすべてにスペルの誤っている “mispelling” という
ワードが含まれています。
スペルの誤りを修正するため、次のコマンドを入力します。
:$-3,$s/mispelling/misspelling/<Return>
アドレス $-3 は最後の行の 3 行上の行を示しており、2 番目のアドレス $ は最後の行を示して
います。 この場合には各行で 1 回のみ変更が必要なため、g フラグは使用する必要がありませ
ん。
ファイル全体または一部の書き込み
:wq コマンドは、ファイル全体を書き込む特殊な ex コマンドです。 このコマンドには、書き
込みコマンド w と終了コマンド q の機能が結合されています。 quit コマンドに指定できる唯
一の引数は、感嘆符 (!) です。 この引数を指定すると、終了するとファイルに対する変更が失
われる場合にも、セッションを強制的に終了します。
w コマンドには、引数としてアドレスとファイル名を指定でき、テキストの一部を別のファイ
ルに保存できます。 たとえば、テキストの最初の 3 行を新しいファイル my.new.file に保存
するには、次のコマンドを使用します。
:1,3w my.new.file<Return>
テキストのブロックの削除
ex の削除コマンドは、vi と同じで d です。 現在の行からファイルの終端までを削除するに
は、次のコマンドを使用します。
:.,$d<Return>
テキストのブロックの移動とコピー
ex のコマンド d は、削除したテキストを、vi コマンドと同じペーストバッファーに保存しま
す。 また、ex のコピーコマンド ya (yank) と貼り付けコマンド pu (put) を使用して、テキス
トのコピーと貼り付けを行うことができます。
ユーザー環境のカスタマイズ
ex エディターは、ユーザーの vi 環境をカスタマイズするために 2 つのメカニズムを提供して
います。 :set コマンドを使用して環境変数を設定し、:map コマンドを使用してキーシーケ
ンスを vi のコマンドキーにマップすることができます。
環境変数には option または nooption (Boolean 変数用) または option=value を割り当て
ることができます。 環境変数の全セットについては、ex(1) のリファレンスページを、オン
ラインまたは『Open System Services Shell and Utilities Reference Manual』で参照してくださ
い。 表 A-1 に、環境変数をいくつか示します。
表 A-1 vi 環境変数の抜粋
178
変数
説明
errorbells
エラーが発生すると、ビープ音が鳴るよう指定します。 これは、デフォルトの設定で
す。
ignorecase
検索の実行時に、大文字と小文字を無視するよう指定します。 デフォルトの設定は
noignorecase です。
vi エディター
表 A-1 vi 環境変数の抜粋 (続き)
変数
説明
number
左マージンに行番号を表示するよう指定します。 デフォルトの設定は nonumber です。
showmatch
カッコまたは中カッコの片方を入力すると、カーソルが対応する文字に移動した後、戻
ります。 デフォルトの設定は noshowmatch です。
tabstop
タブストップ間のスペースの大きさを指定します。 デフォルトの設定は、スペース文
字 8 個です。
サンプルファイルの行番号を表示するには、次のコマンドを入力します。
:set number<Return>
行番号を消すには、次のように入力します。
:set nonumber<Return>
:map コマンドは、単一の vi コマンドキーに、vi コマンドのシーケンスを設定します。 :map
コマンドの構文は次のとおりです。
:map key sequence<Return>
このコマンドシーケンスは、そのキーに対して設定されていた既存のコマンドを置き換えま
す。 コマンドシーケンスは、マップするキー入力と同じ必要があります。ただし、[Return]、
[Esc] 、および [Ctrl] で修飾されるキーなどの特殊キーは除きます。これらのキーには、[Ctrl-V]
を前に付ける必要があります。 [q] キーと [v] キーにはコマンド癌連付けられていないので、
マップの対象となる良いキーです。
たとえば、“This space held for new text” という行をテキストに挿入するキーシーケンスをマッ
プするには、次のコマンドを使用できます。
:map q oThis space held for new text<Ctrl-V><Esc><Return>
[Esc] 文字の前に [Ctrl-V] が使用されていることに注意してください。
ユーザーカスタマイズの保存
ユーザーのホームディレクトリにある .exrc という名前のファイルに適切な ex コマンドを格
納することにより、ユーザー環境のカスタマイズを恒久的にすることができます。 このファイ
ルに格納されたコマンドは、ユーザーが vi や ex に入るたびに効力を持ちます。 このファイ
ルでは、 vi コマンドの : を使用する必要はありません。その理由は、これらのコマンドは、
基盤となる ex エディターによって直接読み取られるためです。
たとえば、ファイルの行番号を常に表示するようにユーザー環境をカスタマイズする場合、前
節に示したキーシーケンスを使用する場合、および右マージンを自動的にスペース 5 個分に設
定する場合には、ユーザーのホームディレクトリにある .exrc ファイルを vi で開いて、次の
テキスト行を追加します。
set number
map q oThis space held for new text<Ctrl-V><Esc>
set wrapmargin=5
このファイルを書き込んだ後、vi を再起動してサンプルファイルを開くことにより、このカ
スタマイズが機能しているか確認してください。
基盤となる ex コマンドの使用法
179
180
付録B ed エディター
この付録では、ラインエディターである ed エディターを使用して、テキストファイルを作成、
編集、表示、および保存する方法について説明します。
ed の機能を理解するには、この付録に掲載されている例を使った実習をお勧めします。 使用
例は独立したものではなく一連の流れになっているので、順番に作業していくことが重要で
す。 また、画面に表示される内容と、このガイドに記載されている内容を一致させるために
は、指定された順番に例を実行することが重要です。
ed はラインエディターであるため、一度に作業できるファイルの内容は 1 行のみです。 画面
上に表示されているテキストにかかわらず、現在の行のみ編集できます。 上矢印キー (¦) と下
矢印キー (Ø) を使用して、現在の行を変更することはできません。
テキストファイルの作成と保存
テキストファイルの作成と保存を行うには、次の手順を実行してください。
1. シェルプロンプトで、次のように入力します。
ed filename
ここで、filename は、作成または編集するファイルの名前です。
2.
?filename メッセージが表示された場合には、次のように入力します。
a
3.
4.
5.
テキストを入力します。
テキストをそれ以上追加しない場合は、新しい行の先頭でピリオド (.) を入力します。
filename ファイルに編集バッファーの内容をコピーするには、次のように入力します。
w
6.
ed プログラムを終了するには、次のように入力します。
q
ed プログラムの起動
ed プログラムを起動するには、$ (シェル) プロンプトの後に ed filename 形式のコマンドを
入力します。
次の例は、ed afile コマンドで ed プログラムを起動し、afile という名前のファイルで作
業することを示しています。
$ ed afile
?afile
ed プログラムから ?afile というメッセージが表示されますが、これは、このファイルが現
在存在しないことを意味しています。 ここで、a (付加) サブコマンド (「osh フラグ」 (92 ペー
ジ) を参照) を使用して afile を作成し、テキストを入力することができます。
テキストの入力 — a (付加) サブコマンド
ファイルにテキストを入力するには、a と入力します。 a サブコマンドは、ed に対して、入
力されたテキストを編集バッファーに追加、または付加するよう指示します。 ファイル内にす
でにテキストが存在する場合、a サブコマンドは、新しいテキストを、すでに存在するテキス
トの後に追加することに注意してください。
テキストを入力し、各行の終端で [Return] キーを押してください。 テキストをすべて入力し
た場合は、新しい行の先頭でピリオド (.) を入力します。
テキストファイルの作成と保存
181
注記: 各行の終端で [Return] キーを押さないと、ed プログラムは、その行が文字で一杯に
なったときに、自動的にカーソルを次の行に移動します。 ただし ed は、[Return] キーを押す
前に入力された内容を、すべて 1 つの行として扱います。つまり、画面上で複数行にまたがる
場合、つまり次の行に折れ曲がって繋がる (ワークステーションの表示設定による) 場合であっ
ても 1 行と捉えます。
次の例は、afile ファイルへのテキストの入力方法を示しています。
a
The only way to stop
appending is to type a
line that contains only
a period.
.
バッファーへのテキストの入力を終了した後、さらにテキストを追加したい場合には、もう一
度 a サブコマンドを入力します。 テキストを入力し、次に新しい行の先頭でピリオドを入力し
て、バッファーへのテキストの入力を終了します。
テキストの入力を間違えた場合には、[Return] キーを押す前に訂正できます。 [Backspace] キー
を押して、誤った文字を消去します。 その後、正しい文字を入力してください。
テキストの表示 — p (プリント) サブコマンド
p (プリント) サブコマンドを使用して、編集バッファーの内容を表示できます。
1 つの行を表示するには、np サブコマンドを使用します (ここで、n は行番号)。
2p
appending is to type a
連続する複数行を表示するには、n, mp サブコマンドを使用します。ここで、n は最初の行の
行番号で、m は最後の行の行番号です。
1,3p
The only way to stop
appending is to type
a line that contains only
指定された行からバッファーの終端までのすべてを表示するには、n,$p サブコマンドを使用
します。ここで、n は最初の行の行番号で、$ はバッファーの最後の行を意味しています。
次の例では、1,$p により、バッファー内のすべてが表示されています。
1,$p
The only way to stop
appending is to type a
line that contains only
a period.
注記: この付録では、これ以降、多くの例で 1,$p を使用してバッファーの内容を表示しま
す。 それらの例では、1,$p サブコマンドは便利なオプションとなります。 これにより、例
で、サブコマンドが想定通りに動作しているか検証できます。
テキストの保存 —w (書き込み) サブコマンド
w (書き込み) サブコマンドは、バッファーの内容をファイルに書き込みます。またはコピーし
ます。 ファイルのすべて、または一部をそのままのファイル名、または別の名前で保存するこ
とができます。 いずれの場合も、ed は指定された元のファイルの内容を、バッファーからコ
ピーされたデータに置き換えます。
同じファイル名でのテキストの保存
元のファイル名でバッファーの内容を保存する場合は、次のように w を入力します。
w
78
182
ed エディター
ed プログラムは、バッファーの内容を afile という名前のファイルにコピーし、ファイルに
コピーした文字数を表示します (78)。 この数には、ブランクや [Return] など (「改行文字」と
も呼ばれる) など、実際に画面には表示されない文字も含まれます。
w サブコマンドは、編集バッファーの内容に影響を与えません。 ファイルのコピーを保存し、
バッファーの内容に対する作業を続けることができます。 格納されたファイルは、次回に w を
使用して、バッファーの内容をファイルにコピーするまで変更されません。 安全策として、作
業中のファイルを定期的に保存することをお勧めします。 それにより、変更や間違えを発見し
た場合にも、最も近い時点に保存したファイルバージョンから作業をやり直すことができま
す。
注記: u (取り消し) サブコマンドは、ed サブコマンドで最後に変更する前の状態にバッファー
を復元します。 u で復元できるサブコマンドには、a、c、d、g、G、i、j、m、r、s、t、v、
V があります。
別のファイル名でのテキストの保存
前述の例を使用した場合には、文章の元々のテキストを含む afile という名前のファイルが
あるはずです。 そのファイル (その内容がまだバッファーにある状態) のコピーをもう 1 つ作
成するには、次の例のように、w filename 形式 のサブコマンドを使用します。
w bfile
78
この時点では、同じバッファーの内容のコピーであるため、afile と bfile の内容は同じで
す。 ただし、afile と bfile は別々のファイルであるため、互いに影響を与えることなく各
ファイルの内容を変更できます。
ファイルの一部の保存
ファイルの一部を保存するには、n,mw filename 形式のサブコマンドを使用します。
n
保存するファイル部分の先頭の行番号です。
m
保存するファイル部分の末尾の行番号です (もしくは、その行だけを保存したい場合には、単
一の行番号)。
filename
ファイルの名前です (オプション)。
次の例では、w サブコマンドを使用して、バッファーから 1 行目と 2 行目を cfile という名前
の新しいファイルにコピーします。
1,2w cfile
44
ここで、ed は、cfile に書き込まれる文字数を表示します (44)。
ed プログラムの終了 — q (終了) サブコマンド
ed プログラムを終了するには、q (終了) サブコマンドを入力します。
q
q サブコマンドを入力すると、$ (シェル) プロンプトに戻ります。
注意: ed プログラムを終了すると、バッファーの内容は失われます。 バッファー内のデータ
を保存するには、ed プログラムを終了する前に、w サブコマンドを使用してバッファーをファ
イルにコピーしてください。
バッファーを変更した後、その内容を保存していない場合、q サブコマンドを使用すると ? と
いうエラーメッセージが表示されます。 この時点、w サブコマンドでバッファーのコピーを保
存するか、またはもう一度 q サブコマンドを入力して、バッファーを保存せずに ed プログラ
ムを終了することができます。
テキストファイルの作成と保存
183
編集バッファーへのファイルのロード
ファイルを編集する前に、ファイルを編集バッファーに読み込む必要があります。 ファイルの
ロードは、ed プログラムを開始したとき、または ed プログラムの実行中に行うことができま
す。
ed プログラムの開始時にファイルを編集バッファーにロードするには、次のように入力しま
す。
ed filename
このコマンドは、ed を開始し、ファイル filename を編集バッファーにロードします。
ed の実行中にファイルを編集バッファーにロードするには、次のいずれかを入力します。
e filename
このコマンドは、filename ファイルをバッファーにロードし、以前のバッファーの内容
を消去します。
nr filename
このコマンドは、バッファーの n 行目の後に、指定されたファイルを読み込みます。 n を
指定しないと、ed は、ファイルをバッファーの終端に追加します。
ed (編集) コマンドの使用
ed プログラムの開始時にファイルを編集バッファーにロードするには、単に ed コマンドの後
にファイル名を入力します。 次の例の ed コマンドは ed プログラムを呼び出し、afile ファ
イルを編集バッファーにロードします。
$ ed afile
78
ed プログラムは、編集バッファーに読み込まれた文字数を表示します (78)。
ed がファイルを見つけられない場合は、?filename が表示されます。 そのファイルを作成す
るには、「osh フラグ」 (92 ページ) で説明した a (追加) サブコマンド、および「テキストの
保存 —w (書き込み) サブコマンド」 (182 ページ) で説明した w (書き込み) サブコマンドを使用
します。
e (編集) サブコマンドの使用
ed プログラムを開始すると、e (編集) サブコマンドを使用してファイルをバッファーにロード
することができます。 e サブコマンドは、バッファーの内容を新しいファイルで置き換えま
す。 (新しいファイルをバッファーの内容に追加する r サブコマンドと、e サブコマンドを比
較してください。詳細については、「r (読み込み) サブコマンドの使用」 (185 ページ) を参照し
てください。)
注意: e サブコマンドを使用して新しいファイルをバッファーにロードすると、バッファー
の以前の内容が新しいファイルで置き換えられます。 新しいファイルをバッファーに読み込む
前に、w サブコマンドでバッファーを保存してください。
次の例では、e cfile サブコマンドで cfile ファイルが編集バッファーに読み込まれ、afile
を置き換えます。 次に、e afile サブコマンドで afile が再びバッファーにロードされ、
cfile の内容が削除されます。 ed プログラムは、各 e サブコマンドを実行した後で、バッ
ファーに読み込まれた文字数を返します (44 と 78)。
e cfile
44
e afile
78
ed は、ファイルが見つからない場合は、?filename を返します。 そのファイルを作成するに
は、「osh フラグ」 (92 ページ) で説明した a (追加) サブコマンド、および「テキストの保存
—w (書き込み) サブコマンド」 (182 ページ) で説明した w (書き込み) サブコマンドを使用しま
す。
ed プログラムを終了することなく、任意のファイル数を一度に 1 つずつ編集できます。 e サ
ブコマンドを使用して、ファイルをバッファーにロードします。 ファイルを変更した後に、w
184
ed エディター
サブコマンドを使用して改訂したファイルを保存します。 w サブコマンドの詳細については、
「テキストの保存 —w (書き込み) サブコマンド」 (182 ページ) を参照してください。 その後、
もう一度 e サブコマンドを使用して、他のファイルをバッファーにロードします。
r (読み込み) サブコマンドの使用
ed プログラムを開始した後、r (読み込み) サブコマンドを使用してファイルをバッファーに読
み込むことができます。 r サブコマンドは、ファイルの内容をバッファーの内容に追加しま
す。 r サブコマンドでは、バッファーの内容が削除されません。 (「ディレクトリの表示 (ls
-F)」 (124 ページ) で説明した e サブコマンドは、他のファイルを読み込む前にバッファーの内
容を削除します。r サブコマンドと比較してください。)
r サブコマンドでは、ファイルをバッファーの特定の位置に読み込むことができます。 たとえ
ば、4r cfile サブコマンドは、cfile ファイルをバッファーの 4 行目の後に読み込みます。
次に、ed プログラムは、バッファーのすべての行番号を付け直します。 行番号を指定しない
と、r サブコマンドは、新しいファイルをバッファーの内容の終端に追加します。
次の例は、行番号を指定した r サブコマンドの使用方法を示しています。
1,$p
The only way to stop
appending is to type a
line that contains only
a period.
3r cfile
44
1,$p
The only way to stop
appending is to type a
line that contains only
The only way to stop
appending is to type
a period.
1,$p サブコマンドは、afile の 4 行を表示します。 次に、3r cfile サブコマンドで、バッ
ファーの 3 行目の後に cfile の内容をロードし、バッファーに 44 文字読み込んだことを表示
します。 次の 1,$p サブコマンドで、もう一度バッファーの内容を表示して、r サブコマンド
がバッファーの 3 行目の後に cfile を読み込んだことを確認できます。
ユーザーシステムでこれらの例に対する作業を行っている場合には、次の節に進む前に以下を
実行してください。
1. バッファーの内容を cfile ファイルに保存してください。
w cfile
2.
afile をバッファーにロードしてください。
e afile
現在行の表示と変更
ed プログラムはラインエディターです。 これは、ed は、バッファーの内容を一度に 1 行ずつ
処理することを意味しています。 任意の時点で作業できる行は「現在行」と呼ばれ、ピリオド
(.) で表されます。 ファイルの別の部分に対して作業するには、現在行を変更する必要があり
ます。
現在行を表示する場合は、次のように入力します。
p
現在行の行番号を表示するには、次のように入力します。
.=
現在行の表示と変更
185
注記: 上矢印キー (¦) と下矢印キー (Ø) を使用して、現在行を変更することはできません。
現在の行を変更するには、以降の各節で説明する ed サブコマンドを使用してください。
バッファー内での位置を変更するには、次の 1 つを実行してください。
• 行番号 n を現在行に設定するには、次のように入力します。
n
•
•
•
バッファー内で現在行を 1 行ずつ次に進めるには、[Return] を押します。
バッファー内で現在行を 1 行ずつ後方に戻すには、ハイフン (-) を入力します。
バッファー内で現在行を n 行だけ前方に進めるには、次のように入力します。
+n
•
バッファー内で現在行を n 行だけ後方に戻すには、次のように入力します。
-n
バッファー内での位置の検索
ファイルを最初にバッファーにロードしたときには、ファイルの最後の行が現在行となりま
す。 ファイルに対して作業を行うと、普通は現在の行を何度も変更することになります。 現
在の行またはその行番号は、いつでも表示できます。
現在行を表示するには、p を入力します。
p
a period.
p サブコマンドは現在行 (「ピリオド」) を表示します。 バッファーに afile を読み込んだ後、
現在行が変更されていないので、現在行はバッファーの最後の行となっています。
現在行の行番号を表示するには、次に示すように .= を入力します。
.=
4
afile には 4 行が存在し、現在行はバッファー内の最後の行なので、.= サブコマンドを入力
すると 4 と表示されます。
また、= サブコマンドで $ (バッファーの最後の行を表すシンボル) を使用して、バッファーの
最後の行番号を判断することができます。
$=
4
$= サブコマンドは、バッファー内の行数を調べる簡単な方法です。 ed プログラムの $ 記号
は、 $ シェルプロンプトとは関係がないことに注意してください。
バッファー内での位置の変更
バッファー内での位置は、次の 2 つの方法のいずれかを使用して変更 (現在行の変更) できま
す。
• 行番号 (絶対位置) を指定
• 現在行から相対的に前後に移動
現在行から指定した行に移動するには、行番号を入力します。ed が新しい現在行を表示しま
す。 次の例では、afile の最初の行が現在行になります。
1
The only way to stop
次の例に示すように、[Return] を押すと、バッファー内で 1 行次に進み、新しい現在行が表示
されます。
appending is to type a
<Return>
line that contains only
186
ed エディター
<Return>
a period.
<Return>
?
バッファーの最後の行を越えて進もうとすると、ed はエラーメッセージ ? を返すことに注意
してください。 バッファーの終端を越えて移動することはできません。
現在行をバッファーの最後の行に設定するには、$ を入力します。
バッファー内で現在行を 1 行ずつ前方に戻すには、次の例に示すように、1 行ごとにハイフン
(-) を入力します。
line that contains only
appending is to type a
The only way to stop
?
バッファー内の最初の行を越えて移動しようとすると、? メッセージが表示されます。 バッ
ファーの先頭を越えて移動することはできません。
バッファー内で現在行を一度に 2 行以上進めるには、.n と入力します (ここで、n は移動する
行数)。
.2
line that contains only
Note that .2 is an abbreviation for .+2.
バッファー内で現在行を一度に 2 行以上後方に戻すには、.-n と入力します (ここで、n は移
動する行数)。
.-2
The only way to stop
テキストの検索
特定のワード、または文字列を含む行の番号がわからない場合、コンテキスト検索によりその
行を見つけることができます。
コンテキスト検索を行うには、次のいずれかを実行してください。
• 前方に検索するには、次のように入力します。
/string_to_find/
•
後方に検索するには、次のように入力します。
?string_to_find?
バッファー内を前方に検索
バッファー内を前方に検索するには、文字列を // (スラッシュ) で囲んで入力してください。
/only/
line that contains only
コンテキスト検索 (/only/) は、現在行の次の行から開始し、次に文字列 “only” を含む行の位
置を特定して表示します。 その行が現在行になります。
ed は、検索の最初の行とバッファーの最後の行の間で文字列を検出できなかった場合、続い
て 1 行目から現在行の間を検索します。 ed は、バッファー全体を検索しても文字列を検出で
きない場合、エラーメッセージ ? を表示します。
テキストの検索
187
/random/
?
一度文字列を検索すると、// と入力するだけで同じ文字列をもう一度検索できます。 次の例
では、文字列 “only” を一度検索し、同じ文字列をもう一度検索します。
/only/
The only way to stop
//
line that contains only
バッファー内を後方に検索
バッファー内を後方に検索するのは、文字列を疑問符 (??) で囲む点を除いて、前方に検索する
のと類似しています。
?appending?
appending is to type a
コンテキスト検索は、現在行の直前の行から始まり、appending の文字列を含む最初の行の
位置を特定します。 その行が現在行になります。 ed は、バッファー全体を検索しても文字列
を検出できなかった場合、現在行で検索を停止してエラーメッセージ ? を表示します。
一度文字列を後方に検索すると、??. と入力するだけで、同じ文字列をもう一度後方に検索で
きます。
検索方向の変更
個々の文字列の検索方向は、/ (スラッシュ) と ? (疑問符) の検索文字を使用して別の方向に変
更できます。
/only/
line that contains only
??
The only way to stop
文字列の検索中に行き過ぎた場合、検索方向を変更できるので便利です。
置換の実行 — s (置換) サブコマンド
s (置換) サブコマンドを使用して、1 つの文字列 (1 つ以上の文字列のグループ) を他の文字列
に置き換えることができます。 s サブコマンドは、一度に 1 つ以上の行に対して作用すること
ができるため、入力やスペルの間違いを訂正するのに特に便利です。
置換を行うには、次のいずれかを実行してください。
• 現在行で最初に出現した oldstring を newstring に置換するには、このが、次のよう
に入力します。
s/oldstring/newstring/
•
行番号 n で最初に出現した oldstring を newstring に置換するには、次のように入力
します。
ns/oldstring/newstring/
•
行番号 n から m の各行において、最初に出現した oldstring を newstring に置換する
には、次のように入力します。
n,ms/oldstring/newstring/
現在行での置換
現在行で置換を行う場合、まず変更したい行が現在行であることを確認してください。 次の例
では、/appending/ (検索) サブコマンドで変更対象の行の位置を見つけます。 次に、
s/appending/adding text/p (置換) サブコマンドで、現在行の文字列 “appending” を文
字列 “adding text” に置換します。 p (プリント) サブコマンドで、変更されたファイルを表示
します。
/appending/
appending is to type a
188
ed エディター
s/appending/adding text/p
adding text is to type a
注記: 使いやすくするため、p サブコマンドを s サブコマンドに付加することができます (た
とえば、s/appending/adding text/p)。 これにより、p サブコマンドを別途入力して、
置換の結果を確認する必要がありません。
単純な s サブコマンドは、指定された行でその文字列が最初に出現した箇所のみ変更します。
その行でその文字列が出現するすべての箇所を変更する方法については、「文字列の出現箇所
をすべて置換」 (189 ページ) を参照してください。
特定の行での置換
特定の行で置換を行うには、次の形式のサブコマンドを使用します。
ns/oldstring/newstring/
ここで、n は、置換を行う行番号を表しています。 次の例では、s サブコマンドは、行番号 1
に移動し、文字列 “stop” を文字列 “quit” に置き換え、新しい行を表示します。
1s/stop/quit/p
The only way to quit
s サブコマンドは、指定された行でその文字列が最初に出現した箇所のみ変更します。 その行
でその文字列が出現するすべての箇所を変更する方法については、「文字列の出現箇所をすべ
て置換」 (189 ページ) を参照してください。
複数行での置換
複数行で置換を行うには、次の形式のサブコマンドを使用します。
n,ms/oldstring/newstring/
ここで、n はグループ内の最初の行の行番号を表し、m は最後の行の行番号を表しています。
次の例では、s サブコマンドは、バッファー内のすべての行で、最初に出現した文字列 “to” を
文字列 “TO” に置き換えます。
1,$s/to/TO/
1,$p
The only way TO quit
adding text is TO type a
line that contains only
a period.
1,$p サブコマンドでバッファーの内容を表示して、置換されたかどうか検証できます。
文字列の出現箇所をすべて置換
s サブコマンドは、普通は指定された行で文字列が最初に出現した箇所のみを変更します。 し
かし、g (グローバル) 演算子を指定すると、行内または行のグループ内で文字列が出現するす
べての箇所を変更できます。
1 つの行でグローバル置換を行うには、次の形式のサブコマンドを使用します。
ns/oldstring/newstring/g
次の例では、3s/on/ON/gp を使用して、3 行目に文字列 “on” が出現する各箇所を “ON” に変
更し、新しい行を表示します。
3s/on/ON/gp
line that cONtains ONly
複数行でグローバル置換を実行するには、次の形式のサブコマンドを使用して行のグループを
指定します。
n,ms/oldstring/newstring/g
次の例では、1,$s/TO/to/gp を使用して、バッファー内の各行で文字列 “TO” が出現する箇
所を文字列 “to” に変更します。
1,$s/TO/to/gp
The only way to quit
置換の実行 — s (置換) サブコマンド
189
adding text is to type a
line that cONtains ONly
a period.
文字の削除
s (置換) サブコマンドを使用して、文字列を削除できます (つまり、文字列を何もないものと置
換)。 文字を削除するには、s/oldstring// 形式のサブコマンドを使用します。この場合、//
(最後の 2 つのスラッシュ) の間に空白文字を入れません。
次の例では、ed コマンドで、行番号 2 から文字列 “adding” を削除し、変更された行を表示し
ます。
2s/adding// p
text is to type a
行の先頭または終端での置換
2 つの特殊文字を使用すると、行の先頭または終端で置換を行うことができます。
^ (山形記号)
行の先頭で置換を行うことができます。
$ (ドル記号)
行の終端で置換を行うことができます。 (この場合、$
文字は、バッファーの最後の行を示すものではありませ
ん。)
行の先頭で置換を行うには、s/^/newstring サブコマンドを使用します。 次の例では、最初
の s サブコマンドは、1 行目の先頭に文字列 “Remember” を追加します。 2 番目の s サブコマ
ンドは、文字列 “adding” を 2 行目の先頭に追加します。
1s/^/Remember, /p
Remember, The only way to quit
2s/^/adding/p
adding text is to type a
行の終端で置換を行うには、s/$/newstring 形式のサブコマンドを使用します。 次の例で
は、s サブコマンドを使用して、4 行目の終端に文字列 “Then press Enter.” を追加します。
4s/$/ Then press Enter./p
a period. Then press Enter.
2 つの文章を分離するために、置換文字列にはワード “Then” の前に空白文字が 2 つ含まれて
いることに注意してください。
コンテキスト検索の使用
変更したい行番号がわからないときは、コンテキスト検索で位置を見つけることができます。
コンテキスト検索の詳細については、「テキストの検索」 (187 ページ) を参照してください。
使いやすくするため、次のように、コンテキスト検索と置換を 1 つのサブコマンドに組み合わ
せることができます。 /string_to_find/s/oldstring/newstring/
次の例では、ed は、文字列 “, The” を含む行の位置を見つけ、 “, the” に置き換えます。
/, The/s/, The/, the/p
Remember, the only way to quit
また、/string_to_find/s//newstring/ 形式 のサブコマンドを使用して、検索文字列
を、置換対象の文字列として検索することもできます。 次の例では、ed は、文字列 “cONtains
ONly” を含む行の位置を見つけ、“contains only” と置き換えて、変更された行を表示します。
/cONtains ONly/s//contains only/p
line that contains only
行の削除 — d (削除) サブコマンド
d (削除) サブコマンドを使用して、1 行または複数の行をバッファーから削除できます。 d サ
ブコマンドの一般的な形式は、次のとおりです。
starting_line,ending_lined
190
ed エディター
行を削除した後、ed は、削除された次の行を現在行に設定します。 バッファーから終端の行
を削除した場合、バッファー内の残りの最後の行が現在行になります。 削除後に、ed は、バッ
ファー内の残りの行の番号を付け直します。
バッファーから行を削除するには、以下のように実行してください。
• 現在行を削除するには、次のように入力します。
d
•
バッファーから行番号 n の行を削除するには、次のように入力します。
nd
•
バッファーから行番号 n から m までの行を削除するには、次のように入力します。
n,md
現在行の削除
現在の行を削除するには、単に d し入力します。 次の例では、1,$p サブコマンドでバッファー
のすべての内容を表示し、$ サブコマンドでバッファーの最後の行を現在行にします。
1,$p
Remember, the only way to quit
adding is to type a
line that contains only
a period. Then press Enter.
$
a period. Then press Enter.
d
次に、d サブコマンドで現在行 (この場合はバッファー内の最後の行) を削除します。
特定の行の削除
削除したい行の行番号がわかっている場合には、nd 形式のサブコマンドを使用して削除を行っ
てください。 次の例では、2d サブコマンドで 2 行目の行をバッファーから削除します。
2d
1,$p
Remember, the only way to quit
line that contains only
1,$p サブコマンドでバッファーの内容を表示して、行が削除されたことを確認できます。
複数行の削除
行のグループをバッファーから削除するには、n,md 形式のサブコマンドを使用します。ここ
で、n は削除するグループの最初の行の番号、m は最後の行の番号となります。
次の例では、1,2d サブコマンドで 1 番目と 2 番目の行をバッファーから削除します。
1,2d
1,$p
?
バッファーが空になると、1,$p サブコマンドは ? メッセージを表示します。
ユーザーシステム上でこれらの例をする場合には、次の節に進む前に、バッファーの内容を復
元して必要があります。 次の例では、バッファーの内容を復元する方法を示します。
e afile
?
e afile
78
このコマンドシーケンスは、元のファイル afile をバッファーに読み込みます。
テキストの移動 — m (移動) サブコマンド
m (移動) サブコマンドを使用して、行のグループをバッファー内の他の場所に移動することが
できます。 移動後は、移動した終端の行が現在行になります。
テキストの移動 — m (移動) サブコマンド
191
テキストを移動するには、x,ymz 形式のサブコマンドを入力します。ここで、
x
移動するグループの最初の行です。
y
移動するグループの最後の行です。
z
この行の後に移動します。
次の例では、1,2m4 サブコマンドで、バッファーの最初の 2 行を、4 行目の後の位置に移動し
ます。
1,2m4
1,$p
line that contains only
a period.
The only way to stop
appending is to type a
1,$p サブコマンドでバッファーの内容を表示して、行が移動されたことを確認できます。
行のグループをバッファーの先頭に移動する場合は、移動した行の前に来る行の行番号に 0 を
指定します。 次の例では、3,4m0 サブコマンドで、行番号 3 と 4 をバッファーの先頭に移動
します。
3,4m0
1,$p
The only way to stop
appending is to type a
line that contains only
a period.
1,$p サブコマンドでバッファーの内容を表示して、行が移動したことを確認できます。
行のグループをバッファーの終端に移動するには、移動した行の前に来る行の行番号に $ を指
定します。
1,2m$
1,$p
line that contains only
a period.
The only way to stop
appending is to type a
テキストの行の変更 — c (変更) サブコマンド
c (変更) サブコマンドは、バッファーの 1 つ以上の行を、1 つ以上の新しい行で置き換えます。
c サブコマンドは、まず置き換えたい行を削除して、新しい行を入力できるようにします。こ
れはa (追加) サブコマンドを使用するのに類似しています。 新しいテキストをすべて入力した
ら、行にピリオド (.) だけを入力します。 c サブコマンドの一般的な形式は、次のとおりです。
starting_line,ending_linec
テキストの行を変更するには、次のように実行してください。
1. 次の形式のサブコマンドを入力します。
n,mc
ここで、各要素は次のとおりです。
2.
3.
192
n
削除するグループの最初の行の行番号。
m
削除するグループ (または 1 行のみ) の最後の行の行番号。
新しい行を入力し、各行の終端で [Return] キーを押します。
行にピリオドだけを入力します。
ed エディター
単一行の変更
テキストの単一行を変更するには、c (変更) サブコマンドに 1 つの行番号だけを指定します。
単一行を、任意の行数の新しい行で置き換えることができます。
次の例では、2c サブコマンドでバッファーからの 2 番目の行を削除した後、新しいテキスト
を入力できます。
2c
appending new material
use the proper keys to
.
1,$p
The only way to stop
appending new material
use the proper keys to
a period.
is to
create a
is to
create a
行にピリオドだけを入力すると、ed は、バッファーへのテキストの追加を終了します。 1,$p
サブコマンドでバッファー全体の内容を表示して、変更されたことを確認できます。
複数行の変更
テキストの 2 行以上を変更するには、置き換える行のグループの最初と最後の行番号を c サブ
コマンドで入力します。 行のグループを、1 行以上の新しい行で置き換えることができます。
次の例では、2,3c サブコマンドで、バッファーから 2 行目と 3 行目を削除し、その後新しい
テキストを入力できます。
2,3c
adding text is to type a
.
1,$p
The only way to stop
adding text is to type a
line that contains only a
period.
行にピリオドだけを入力すると、ed は、バッファーへのテキストの追加を終了します。 1,$p
サブコマンドでバッファー全体の内容を表示して、変更されたことを確認できます。
テキストの挿入 — i (挿入) サブコマンド
i (挿入) サブコマンドを使用して、1 行以上の新しい行をバッファーに挿入できます。 バッ
ファー内で行を挿入する位置を指定するには、行番号またはコンテキスト検索を使用できま
す。 i サブコマンドは、指定した行の前に新しい行を挿入します。 (i サブコマンドと、指定
した行の後に新しい行を挿入する a サブコマンド (「osh フラグ」 (92 ページ) で説明) を比較
してください。) テキストを挿入するには、次のように実行してください。
1. 次のサブコマンドのいずれかを入力します。
ni
ここで、n は、新しく挿入する行の後に来る行の行番号です。
/string/i
ここで、string は、新しく挿入する行の後に来る行に含まれる文字のグループです。
2. 新しい行を入力します。
3. 新しい行の先頭で、ピリオドを入力します。
行番号の使用
新しい行を挿入する行の番号がわかっている場合には、ni 形式の挿入サブコマンドを使用で
きます (ここで n は行番号)。 入力した新しい行は、バッファー内で行番号 n の前に挿入されま
す。 i サブコマンドを終了するには、行にピリオド (.) だけを入力します。
次の例では、1,$p サブコマンドで、バッファーの内容をプリントします。 次に、4i サブコマ
ンドで、行番号 4 の前に新しい行を挿入します。
テキストの挿入 — i (挿入) サブコマンド
193
1,$p
The only way to stop
adding text is to type a
line that contains only
a period.
4i --repeat, only-.
1,$p
The only way to stop
adding text is to type a
line that contains only
--repeat, only-a period.
4i サブコマンドで新しいテキスト行を入力後、次の行でピリオドを入力して i サブコマンド
を終了します。 2 番目の 1,$p サブコマンドで、もう一度バッファーの内容を表示して、新し
いテキストが挿入されたことを確認できます。
コンテキスト検索の使用
i サブコマンドで挿入する新しい行の位置を指定するもう 1 つの方法として、コンテキスト検
索を使用する方法があります。 /string/i 形式のサブコマンドを使用すると、string を含
む行の位置を見つけて、その前の行に新たな行を挿入することができます。 i サブコマンドを
終了するには、行にピリオドだけを入力します。
次の例では、/period/i サブコマンドで、文字列 “period” を含む行の前にテキストを挿入し
ます。
/period/i
and in the first position-.
1,$p
The only way to stop
adding text is to type a
line that contains only
--repeat, only-and in the first position-a period.
1,$p サブコマンドでバッファー全体の内容を表示して、i サブコマンドでテキストが挿入さ
れたことを確認できます。
行のコピー — t (転送) サブコマンド
t (転送) サブコマンドを使用すると、バッファー内のある行をコピーし、コピーした行を別の
場所に挿入することができます。 t サブコマンドは、元の行に影響を与えません。 t サブコマ
ンドの一般的な形式は、次のとおりです。
starting_line,ending_linetline_to_follow
行をコピーするには、次の形式のサブコマンドを入力してください。
n,mtx
ここで、各要素は次のとおりです。
n
コピーするグループの最初の行。
m
コピーするグループの最後の行。
x
コピーした行の前に来る行。
行をバッファーの先頭にコピーするには、コピーした行の前の来る行の行番号に 0 (ゼロ) を指
定します。 行をバッファーの終端にコピーするには、コピーした行の後に来る行の行番号に $
を指定します。
次の例では、1,3t4 サブコマンドで、行番号 1 から 3 をコピーして、行番号 4 の後に挿入しま
す。
194
ed エディター
1,3t4 1,$p
The only way to stop
adding text is to type a
line that contains only
--repeat, only-The only way to stop
adding text is to type a
line that contains only
and in the first position-a period.
1,$p サブコマンドでバッファー全体の内容を表示して、ed がコピーを挿入したこと、および
元の行が影響を受けていないことを確認できます。
ed からのシステムコマンドの使用
ed プログラムを終了せずにシステムコマンドを使用できると、便利な場合があります。 感嘆
符 (!) 文字を使用して、一時的に ed プログラムを終了してください。
ed からのシステムコマンドを使用するには、次のように入力します。
!command
次の例では、!ls コマンドで一時的に ed プログラムを中断し、ls (リスト) システムコマンド
を実行します。
!ls
afile
bfile
cfile
!
ls コマンドは、カレントディレクトリ内のファイル名 (afile、 bfile、および cfile) を表
示し、もう一度の感嘆符 ! 文字を表示します。 ls コマンドが終了し、引き続き ed を使用で
きます。
ed プログラム内から、任意のシステムコマンドを使用できます。 別の ed プログラムを実行
して、ファイルを編集し、さらに元のed プログラムに戻ることもできます。 2 番目のed プロ
グラムから 3 番目の ed プログラムを実行し、システムコマンドを使用することなども可能で
す。
ed プログラムの終了
ファイルを保存し、ed プログラムを終了するには、次の手順を実行してください。
1. 次のように入力して、ファイルを保存します。
w
2.
次のように入力して、ed を終了します。
q
w と q サブコマンドの詳細については、それぞれ「テキストの保存 —w (書き込み) サブコマン
ド」 (182 ページ) と「ed プログラムの終了 — q (終了) サブコマンド」 (183 ページ) を参照して
ください。
その他の ed 機能の詳細については、ed(1) のリファレンスページを、オンラインまたは『Open
System Services Shell and Utilities Reference Manual』で参照してください。 ed で作成した
ファイルのプリントの詳細については、第8章 (101 ページ) を参照してください。
ed からのシステムコマンドの使用
195
196
付録C vproc でのバージョン情報の表示
vproc コマンドは、1 つ以上のファイルに対する製品バージョン情報を一意に識別して表示し
ます。 問題を報告する場合、または製品サポートが必要な場合は、その製品のファイルの正確
な製品バージョン情報を HP に提出する必要があります。
vproc を使用するには、次の手順を実行する必要があります。
1. 製品のファイルを見つけます。
2. すべての製品のファイルに対するファイルコードから、vproc が回答するのに必要な情報
を含むファイルを選択します。
3. vproc. を実行します。
4. vproc の出力を解釈します。
製品ファイルの検索
システム上には、製品に関する多数のファイルが異なる場所に存在しています。実際に使用さ
れているファイルが必要となるため、実行する必要のある手順は、製品ファイルが存在する場
所によって異なります。
OSS 製品に対する正確なオブジェクトファイルを検索するには、OSS シェルプロンプトから
find コマンドを使用してファイルの場所を特定します。 find コマンドは、OSS ファイルシ
ステムと Guardian ファイルシステムの両方のノード上で、名前が一致するすべてのファイル
の場所を特定します。
また、whence コマンドを使用してファイルの場所を特定することもできます。 whence コマ
ンドは、PATH 環境変数を通してアクセスできるファイルのみ検索します。
次の例では、OSS シェルが入っている sh ファイルの場所を特定する方法について説明します。
$
find / -W NOE -W NOG -name sh
たとえば、次のような結果が返されます。
...
/bin/sh
...
この例では、vproc 情報用に必要な sh ファイルは OSS ファイルシステム内のファイルである
ため、これらのファイルは /bin/sh 内にあることがわかります。 (find コマンドに -W NOE
フラグと -W NOG フラグが指定されているため、時間のかかる /E と /G ディレクトリの検索
は省略されます。)
ファイルは、ar 形式のアーカイブファイルに、単一またはセットで格納できます。 ar 形式の
アーカイブファイルは、普通は OSS ファイルシステムと UNIX システムでのみ使用されます。
Binder 形式のオブジェクトファイルを含まない、ar 形式のアーカイブファイルのバージョン
情報を要求すると、vproc は、アーカイブファイル内で最も近い時点に変更されたファイルの
タイムスタンプを返します。
vproc の実行
vproc は、vproc コマンド全体 (コマンドラインでファイル名を使用) を指定するか、または
対話型プロセスとして実行できます。
vproc を完全なコマンドとして実行
vproc コマンドは、OSS シェルから呼び出されるスクリプトとして実装されています。
vproc コマンドの完全な構文は、次のとおりです。
$ vproc pathname
ここで、pathname は、ファイルの相対 OSS パス名です。
vproc コマンドの詳細については、vproc(1) のリファレンスページを、オンラインまたは
『Open System Services Shell and Utilities Reference Manual』で参照してください。
製品ファイルの検索
197
vproc の対話型での実行
vproc は対話形式で実行できます。 OSS 環境から対話型の vproc プロセスを開始することに
より、複数の関連性のないファイルに関する情報を取得できます。
vproc プロセスを開始するには、OSS シェルプロンプトの後に vproc と入力してください。
vproc は、以下のようなテキストを表示します。
vproc — T9617G03 — (01 MAY 2002) SYSTEM \ACME Date 15 JAN,
2002,09:26:14
COPYRIGHT TANDEM COMPUTERS INCORPORATED 1986 - 2001
Enter filename:
>
vproc プロンプト (>) の後に、OSS ファイルシステム内のファイルの OSS パス名値を入力でき
ます。 vproc では、OSS パス名内でワイルドカードアスタリスク (*) を使用できます。
注記: 対話型モードでは、ファイルの存在するディレクトリから vproc を実行している場合
であっても、ファイルの絶対パス名を入力しなければなりません。
vproc を終了するには、vproc プロンプトで、[Ctrl+Y] キーを押します。
次の例では、vproc が OSS コマンド who に関する情報を表示します。
/bin: vproc
VPROC - T9617G03 - (01 MAY 2001)SYSTEM \KT22 Date 15 JAN 2002,
09:02:53
COPYRIGHT TANDEM COMPUTERS INCORPORATED 1986 - 2001
Enter filename:
> /bin/who
/bin/who
GMT Binder timestamp: 03MAR2001 13:51:07
Version procedure: T8432G05_15NOV97_CRTLMAIN
Version procedure: T8626D40_15JUN96_AAD_OSSUTIL
Native Mode: runnable file
> EOF!
/bin:
vproc の出力の解釈
vproc は、ファイルに関して持っているすべての情報を返します。 vproc の実行すると、情
報の取得に成功、部分的に成功、または失敗する場合があります。
取得に成功
vproc は、取得に成功すると、次の製品バージョン情報を提供します。
198
表示されるラベル
表示される情報
Archive member:
OSS または UNIX アーカイブメンバーのファイル名を示します。
ar 形式のアーカイブファイルに関してのみ、情報が表示されます。
Binder timestamp:
オブジェクトファイルが生成された日付と時刻を示します。 タイム
スタンプは、オブジェクトがコンパイルされた時間、またはオブ
ジェクトが Binder プログラムによって処理された時間のいずれか
です。
GMT binder timestamp:
ELF ファイルが作成された日付時刻を、グリニッジ標準時間 (GMT
または UTC) で示します。 この情報は、該当するファイルタイプに
関してのみ表示されます。
vproc でのバージョン情報の表示
表示されるラベル
表示される情報
Version procedure:
製品の種類、製品番号、そしてバージョンレベルを示します。 製品
ごとに、複数のバージョンプロシージャーが存在する場合がありま
す。 バージョンプロシージャー情報には、次の形式があります。
cttttrvv_ddmmmyy_nnnnnn_xxxxxx または
cttttrvv_ddmmmyyyy_nnnnnn_xxxxxx。ここで、ctttt は、
対応する製品の T 番号です。rvv は、製品のバージョンです。
ddmmmyy または ddmmmyyyy は、製品バージョンのリリース日で
す。nnnnnn は、コードの製品の省略名です。xxxxxx は、HP が使
用するためのオプションの情報です。
Target CPU:
製品が稼働するシステムの種類を示し、TNS (CISC ベースアーキテ
クチャー)、TNS/R (RISC ベースアーキテクチャー)、または
UNSPECIFIED にすることができます。
AXCEL timestamp:
コードがアクセラレートされた日付時刻を示します。 この情報は、
アクセラレートされたファイルにのみ表示されます。
Native Mode:
ファイルが実行可能かどうかを示します。 この情報は、ファイル
コード 700 のファイルにのみ表示されます。 取り得る値は、Not
runnable filerunnable file です。
部分的な取得または取得の失敗
vproc にバージョンプロシージャーの識別の問題が発生すると、次の診断メッセージが表示さ
れます。
ERROR: {
filename | pathname
} does not exist.
原因 指定されたファイルが存在しないか、または指定されたフィル名またはパス名の入力
で、入力内容が誤っています。
結果 対話形式で vproc を使用している場合、vproc は、他のファイル名やパス名の入力
を要求するプロンプトを表示します。 OSS シェルプロンプトから vproc を使用している場
合、vproc は終了します。
対処方法 ファイル名またはパス名を確認し、正しいコマンドまたは値を入力します。
>>NO T9xxx PROC<<
原因 指定されたファイルに、バージョンプロシージャー情報が格納されていません。
結果 これは通知メッセージです。
対処方法 何もする必要はありません。
No vproc found in this ar-format file
原因 示されたファイルには、バージョンプロシージャー情報が格納されていません。
結果 これは通知メッセージです。
対処方法 何もする必要はありません。
Version procedure:
{filename | pathname }: Not object file
原因 示されたファイルには、vproc が読み取れる種類のファイルコードが存在しない、
またはファイルにテキストデータのみ含まれています。
結果 これは通知メッセージです。
対処方法 何もする必要はありません。
vproc の出力の解釈
199
200
用語集
$ZTC0
1. ソケットプログラムに伝送制御プロトコル/インターネットプロトコル (TCP/IP) サービス
を提供するデフォルトのトランスポートプロバイダープロセス。
2. AF_INET ソケットプログラムのデフォルトのトランスポートプロバイダープロセス。
ADE
アプリケーション開発環境 (CAE) を参照。
ANSI
American National Standards Institute (米国規格協会)。
API
アプリケーションプログラミングインターフェイス (API) を参照。
ASCII
American Standard Code for Information Interchange (情報交換用米国標準コード)。 バイト
内の 8 ビットのうち 7 ビットのみを使用して各文字を表すシングルバイトコードセット。
ASCII コードセットには、米国英語アルファベットの大文字と小文字、句読点、0~9 の数字、
およびいくつかの記号と制御文字が含まれます。 文字が限定されているため、および ASCII
プログラムでは第 8 ビットが時々ユーティリティビットとして使用されるため、ASCII コー
ドセットは国際ソフトウェアにおいて使用するには適切でありません。
BSD
Berkeley Software Distribution
CAE
Common Applications Environment (CAE) を参照。
Common
Applications
Environment
(CAE)
アプリケーションが国際化および業界標準を使用しているため、すべての X/Open ブランド
化製品にわたって移植できるコンピューター環境。 CAE は、オープンシステムアプリケー
ション開発環境、またはオープンシステム実行環境、またはその組み合わせを指します。
CRVSN
作成バージョンシリアル番号 (CRVSN) を参照。
CSQ
準拠に関する質問 (CSQ) を参照。
EDIT ファイル
ファイルコード 101 を含む、Guardian ファイルシステムの非構造化ファイル。 EDIT ファイ
ルは、EDIT または PS Text Edit (TEDIT) エディターで処理できます。 通常、EDIT ファイル
はソースプログラムまたはスクリプトコード、ドキュメント、あるいはプログラム出力を含
んでいます。 オープンシステムサービス (OSS) 関数では、読み取り専用で EDIT ファイルを
開くことができます。
errno
C 関数で設定される最新のエラー状態を含む外部変数。
FIFO
常に、先入れ先出し方式で読み取り/書き込みされる特殊ファイルタイプ。
FIFO 特殊ファイ
ル
FIFO を参照。
FIPS
合衆国政府の Federal Information Processing Standard。
FIPS 151-1
ISO/IEC IS 9945-1:1990 (FIPS 151-1 は、IEEE 標準 1003.1-1988 への適合を示す) として採用さ
れたバージョンよりも古い POSIX.1 のドラフトに適合するための要件と、いくつかの追加要
件を指定する Federal Information Processing Standard。
FIPS 151-2
ISO/IEC IS 9945-1:1990 として POSIX.1 に適合するための要件と、いくつかの追加要件を規定
した Federal Information Processing Standard。
FTAM
ファイル転送、アクセス、管理 (FTAM) を参照。
FTP
ファイル転送プロトコル (FTP) を参照。
Guardian
HP NonStop オペレーティングシステムと組み合わせて、対話型またはプログラムで使用で
きる環境。 Guardian 環境で実行されるプロセスは、通常、そのアプリケーションプログラム
インターフェイスとして Guardian システムプロシージャーコールを使用します。Guardian
環境のインタラクティブユーザーは、通常、HP Tandem Advanced Command Language
(TACL) または別の HP 製品のコマンドインタープリターを使用します。 オープンシステム
サービス (OSS) と対比してください。
Guardian 環境
Guardian アプリケーションプログラムインターフェイス (API)、ツール、およびユーティリ
ティ。
Guardian サービ
ス
HP NonStop オペレーティングシステムに対するアプリケーションプログラムインターフェ
イス (API)、およびその API に関連付けられたツールとユーティリティ。 「Guardian 環境」
と同義です。
Guardian も参照。
201
HP NonStop オー
プンシステムサー
ビス (OSS)
OSS 環境の製品名。
オープンシステムサービス (OSS) も参照。
HP NonStop オペ
レーティングシス
テム
HP NonStop システム用オペレーティングシステム。
HP NonStop ユー
ザー ID
HP NonStop システム内のユーザーの一意の識子。 このユーザー ID の構造化ビューは、
group-number,user-number の値のペア、またはgroup-name.user-name の値のペアの
いずれかで構成されます。構造化ビューは、通常 Guardian 環境で使用されます。 このユー
ザー ID のスカラービューは、(グループ番号 *256) + ユーザー番号で構成されます。スカラー
ビューは、通常オープンシステムサービス (OSS) 環境で OSS UID として使用されます。
UID、 ユーザー ID も参照。
i ノード
ファイルの場所を記憶するデータ構造。
i ノード番号
オープンシステムサービス (OSS) ファイルシステム内での、OSS ファイルインスタンスの一
意の識別子。 i ノード番号は、ファイルシステムカタログ内のインスタンスを識別します。
I18N:
国際化 を参照。
IEC
International Electrotechnical Committee (国際電気標準会議)。 IEC は、コンピューターハー
ドウェア、環境、および物理的な相互接続に関する標準を作成または採用するための専門家
の組織です。
IEEE
Institute of Electrical and Electronics Engineers (電気電子技術者協会)。 IEEE は、通信ネット
ワークなど、エンティティの物理層プロトコルやデータリンクプロトコルを定義するコン
ピューター標準を開発および提案する専門家の組織です。
ISO
International Organization for Standardization (国際標準化機構)。 ISO は、ネットワークプロ
トコルの標準化に関するドラフト作成、議論、指定を行う国際団体です。 ISO は、プロトコ
ルの概念的な構成を記述する 7 階層モデルによって最もよく知られています。
ISO は、International Standards Organization” と記述される場合もあります。ISO は正式な
略称ですが、どの言語の組織名にも対応していません。
ISO 10646
一般的に使用されるすべてのスクリプトおよび言語の、すべての文字および記号を表すユニ
バーサルコード化文字セット。
ISO 646
アルファベットに基づく言語の文字を表すための ISO 標準。 ASCII と同様に、ISO 646 は、
各 8 ビットバイトの 7 ビットのみを使用してデータを表します。 ISO 8859 と対比してくださ
い。
ISO 8859
ローマ字、ギリシャ文字、キリル文字、ヘブライ文字、トルコ文字、アラビア文字を含めて、
多くの文字に基づく言語を表すために使用される一連の ISO (ISO) 標準 8 ビットコードセッ
ト。 ISO 8859 コードセットは、データ透過性を必要とする国際アプリケーションで使用され
ます。 ASCII は、各 ISO 8859 コードセットのサブセットです。
ISO/IEC 準拠の
POSIX.1 アプリ
ケーション
以下の両方を満足するアプリケーション:
•
ISO/IEC IS 9945-1:1990 に記述された機能、およびいずれかの ISO 標準または IEC 標準
に準拠する言語バインディングとして承認された機能だけを使用。
•
ISO/IEC IS 9945-1:1990 に記述された機能、およびいずれかの ISO 標準または IEC 標準
に準拠する言語バインディングとして承認された機能だけを使用して文書化。
L10N
ローカリゼーション を参照。
man ページ
リファレンスマニュアル情報を提供するファイルのオンラインバージョンまたはハードウェ
アコピーバージョン。 リファレンスページ を参照。
NonStop オープ
ンシステムサービ
ス
HP NonStop オープンシステムサービス (OSS) を参照。
NonStop オペ
レーティングシス
テム
HP NonStop オペレーティングシステム を参照。
OSS
オープンシステムサービス (OSS) を参照。
OSS 環境
オープンシステムサービス (OSS) 環境 を参照。
202
用語集
OSS シグナル
オープンシステムサービス (OSS) シグナル を参照。
OSS プロセス ID
(PID)
プロセスおよびプロセスグループが存在している間のプロセスを表す一意の識別子。
PID も参照。
OSS モニター
オープンシステムサービス (OSS) モニター を参照。
PID
オープンシステムサービス (OSS) 環境では、OSS プロセス ID。OSS プロセスに割り当てら
れ、HP NonStop ノードで一意である数字の識別子。 Guardian 環境では、PID は次のいずれ
かを意味する場合があります。
•
プロセス ID など、Guardian のプロセス識別子
•
ノード内でプロセスに対して一意な cpu, pin
OSS プロセス ID (PID) も参照。
POSIX
Institute of Electrical and Electronics Engineers (IEEE) および American National Standards
Institute (ANSI) によって定義された Portable Operating System Interface。 POSIX インター
フェイスはそれぞれ、番号の付けられた ANSI/IEEE 規格またはドラフト標準で個別に定義さ
れています。 アプリケーションプログラムインターフェイスは、POSIX.1 と呼ばれており、
ISO/IEC IS 9945-1: 1990 になりました。
save ファイル
Inspect 製品または Debug 製品で生成されたファイル。 save ファイルには、任意の時点で実
行中のプロセスに関して、同じ実行時点でそのプロセスを再開するのに十分な情報が入って
います。 save ファイルには、その save ファイルが作成された時点でのプロセスのイメージ、
プロセスに関するデータ、プロセスのステータスが格納されています。
save ファイルは、任意の時点で、Inspect SAVE コマンドを通して作成できます。 プロセス
の SAVEABEND 属性が設定されている場合、プロセスが異常終了すると、DMON デバッグ
モニターによって saveabend ファイルと呼ばれる save ファイルを作成できます。
saveabend ファイ
ル
TNS システムまたは TNS/R システム上でシステムデバッグツールが必要とするダンプ情報が
入っているファイル。 UNIX システムでは、このようなファイルは、しばしばコアファイル
またはコアダンプファイルと呼ばれます。 saveabend ファイルは、保存 (save) ファイルの特
殊な場合です。
save ファイル も参照。
SRL
共有ランタイムライブラリ (SRL) を参照。
SVID
AT&T によって出版された『System V Interface Definition for UNIX』。
SVR4
System V Release 4 の略で、固有の UNIX インプリメンテーション。
System V も参照。
System V
AT&T によって開発され、市場に提供された UNIX のバージョン。
UID
ノード内のユーザーを一意に識別する非負整数。
UID は、256 で乗算されてメンバー番号で加算されるグループ番号で構成されるスカラー番
号です。たとえば、スーパー ID の UID は、(255*256) + 255 つまり 65535 です。 UID は、オー
プンシステムサービス (OSS) 環境で、通常 UNIX のユーザー ID に関連する機能に使用されま
す。
HP NonStop ユーザー ID も参照。
UTC
協定世界時 (UTC) を参照。
アクセスモード
ユーザーまたはプロセスに許可されたファイルアクセスの形式。
アトミック
単一の分割できない操作としての動作。 たとえば、ファイルへのアトミックな書き込み操作
では、そのファイルへの別の同時書き込み操作のデータでインターリーブされたデータを書
き込むことができません。
アドレス空間
プロセスがアクセスするメモリ位置。
アプリケーション
開発環境 (CAE)
アプリケーションプロジェクトを設計し、コーディングし、管理するために、そのプロジェ
クトのライフサイクル全体にわたって使用する方法とツールのセット (Pathmaker 製品など)。
アプリケーションプログラミングインターフェイス (API)
アプリケーションプログラムが他のソフトウェアコンポーネントと通信するために呼び出す
サービス (プログラミング言語の関数、プロシージャーなど) のセット。 たとえば、アプリ
ケーションのクライアントプログラムは、サーバープログラムと通信するために、API を使
用できます。
203
アンマウント
ファイルセットに、ノードのユーザーからアクセスできないようにすること。
移植性が高いアプ
リケーション
複数のメーカーの広範なハードウェアシステムで実行できるアプリケーション。 移植性が高
いアプリケーションは、別のメーカーのシステムから HP NonStop システムに、ソースコー
ドをほとんどまたはまったく変更せずに移植できるプログラムです。
移植性の高いパス
名文字セット
アルファベットの大文字と小文字、アラビア数字、ピリオド、アンダースコア、スラッシュ
(/)、およびハイフンを含む文字のセット。 ハイフンは、移植性の高いパス名の最初の文字に
は使用できません。
移植性の高いファ
イル名文字セット
アルファベットの大文字と小文字、アラビア数字、ピリオド、アンダースコア、およびハイ
フンを含む文字のセット。 ハイフンは、移植性の高いファイル名の最初の文字には使用でき
ません。
演算子 (1、2)、オ
ペレーター (3、4)
1. オペランドに対して特定の演算を実行する記号 (算術演算子や条件演算子など)。
2. ネットワーク制御言語 (NCL) では、式の項に作用する字句要素。 挿入演算子、算術演算
子、論理演算子、関係演算子、文字列演算子の 5 種類があります。
3. HP NonStop システムの場合、HP NonStop オペレーティングシステムおよび NonStop
ノードのハードウェアに関連する日常的な監視作業と保守作業を担当する要員またはプログ
ラム。 オペレーターは、サブシステムへのコマンド発行、イベントメッセージの受信/検証/
応答、あるいはそれらの任意の組み合わせを実行します。 ローカルオペレーターも参照して
ください。 管理者 と対比してください。
4. UNIX システムの場合、そのシステムの対話型ユーザー。
オープン移行
オープンファイル記述が親プロセスとは異なるプロセッサ内の子プロセスによって継承され
るときに発生するイベントおよび結果のセット。 オープン伝播 と対比してください。
オープンシステム
国際的なコンピューティング標準に準拠するインターフェイスを持つシステムであり、した
がってシステムの製造元に関係なく同じ外観を持つシステム。 たとえば、HP NonStop シス
テム上のオープンシステムサービス (OSS) 環境は、ISO/IEC IS 9945-1:1990 (ANSI/IEEE 標準
1003.1-1990、POSIX.1 とも呼ばれる) などの国際標準、FIPS 151-2 などの国内標準、および
X/Open Portability Guide バージョン 4 (XPG4) などの業界仕様の一部に準拠しています。
オープンシステム
サービス (OSS)
HP NonStop オペレーティングシステムと組み合わせて、対話型またはプログラムで使用で
きるオープンシステム環境。 OSS 環境で実行されるプロセスは、OSS アプリケーションプロ
グラミングインターフェイスを使用します。OSS 環境の対話型ユーザーは、コマンドインター
プリターとして OSS シェルを使用します。 オープンシステムサービス (OSS) 環境 と同義で
す。 Guardian と対比してください。
オープンシステム
サービス (OSS) 環
境
HP NonStop オープンシステムサービス (OSS) アプリケーションプログラムインターフェイ
ス (API)、ツール、およびユーティリティ。
オープンシステム
サービス (OSS) シ
グナル
POSIX.1 仕様で定義され、OSS 環境内の TNS プロセスと TNS/R ネイティブプロセスで使用
できるシグナルモデル。 OSS シグナルは、プロセス間で送信できます。
オープンシステム
サービス (OSS) モ
ニター
サブシステム制御ファシリティ (SCF) と呼ばれる対話的な Guardian インターフェイスを通し
て OSS オブジェクトに影響するコマンドを受け取る Guardian ユーティリティ。
オープン伝播
オープンファイル記述が親プロセスと同じプロセッサ内の子プロセスによって継承されると
きに発生するイベントおよび結果のセット。 オープン移行 と対比してください。
オープンファイル
ファイルディスクリプタを持つファイル。
オープンファイル
記述
ファイルに対するプロセスまたはプロセスグループのアクセスに関する情報の入っている HP
NonStop ノード内のデータ構造。 オープンファイル記述は、ファイルオフセット、ファイル
ステータス、およびファイルアクセスモードなどの属性を記録します。 オープンファイル記
述は 1 つのオープンファイルにのみ関連付けられますが、1 つまたは複数のファイルディスク
リプタに関連付けることができます。
オブジェクトファ
イル
機械命令と、実行可能コード領域およびプロセスの初期データの構成に必要なその他の情報
とを含む、コンパイラ、バインダー、またはリンカーによって生成されたファイル。 このファ
イルは、直ちに実行できる完全なプログラムである場合も、不完全で実行の前に他のオブジェ
クトファイルとのバインドまたはリンクを必要とする場合もあります。
オプション
フラグとそのパラメーター、またはパラメーターなしのフラグ。
フラグ も参照。
204
用語集
拡張機能を使用し
た標準に準拠する
POSIX.1 アプリ
ケーション
以下のすべてを満足するアプリケーション。
•
準拠した POSIX.1 アプリケーション。
•
ISO/IEC IS 9945-1:1990 (POSIX.1) に記載されていないが標準に準拠する機能も使用しま
す。
•
標準に準拠する POSIX.1 アプリケーションのドキュメンテーション要件を満たし、その
非標準機能の使用について記載します。
たとえば、tdm_fork() 関数を使用するアプリケーションは、拡張機能を使用した標準に準
拠する POSIX.1 アプリケーションです。
拡張データセグメ
ント
データを格納する仮想メモリ領域。
仮想ファイルシス
テム
ファイルセットのファイルを複数の物理デバイス上に分散できるようにするファイルシステ
ム。
環境文字列
プロセスにアクセスでき、その子プロセスに継承される name = value の形式をとる文字列
のベクトル。 環境文字列には、プロセスが動作する環境に関する情報をが含まれます。
完全準拠 POSIX.1
アプリケーション
ISO/IEC IS 9945-1: 1990 と適用可能なコンピューター言語標準に記述された機能だけを必要と
するアプリケーション。 このようなアプリケーションは、ISO/IEC IS 9945-1: 1990 で未指定
またはインプリメンテーション定義として記述されているすべての動作と値、および ISO/IEC
IS 9945-1: 1990 にシンボリックコンスタントとして許可されているすべての値を受け入れる必
要があります。
管理者
1. HP NonStop システムの場合、NonStop ノード上でソフトウェアサブシステムのインス
トールと構成を担当する要員。 演算子 (1、2)、オペレーター (3、4) と対比してください。
2. IBM システムの場合、IBM ノード上のソフトウェアサブシステムに関連する日常的な監視
作業と保守作業を担当する要員。
3. UNIX システムの場合、/dev/console のオーナー。 管理者は、ノード内のすべてのハー
ドウェアおよびソフトウェアのインストールおよび構成を担当します。
機能テストマクロ
プログラムのソースコードに定義された場合にヘッダーからプログラムのソースコードに他
の特定のシンボルをインクルードする機能。
基本コンピューティングプラットフォーム
X/Open Common Applications Environment (CAE) の基礎となる最低限のソフトウェアイン
プリメンテーション。
Common Applications Environment (CAE) も参照。
基本プロファイル
Common Applications Environment (CAE) を作成するための必要最低限のソフトウェアコン
ポーネントセット。
キャッチシグナル
プロセスに配信され、プロセスがそのシグナル処理機能を備えるプログラムに基づくシグナ
ル。 シグナルがキャッチされると、プロセスは中断され、シグナル処理機能が実行されます。
キャラクター特殊
ファイル
入力または出力をすべてキャラクターバイト単位で行う必要のあるファイルとして処理され
るデバイス。 従来、そのようなファイルは会話型の端末であり、ISO/IEC IS 9945-1:1990 標準
では、そのような端末ファイルへのアクセスのみ定義されています。 また、端末を参照して
ください。 ブロック特殊ファイル と対比してください。
協定世界時 (UTC)
最新の元基以降の時間に基づく標準時。 UTC は、世界協定時、CUT、UCT とも呼ばれ、標
準名では UTC (アルファベットの配列は任意) と短縮されます。 UTC は、以前はグリニッジ
標準時 (GMT) と呼ばれていました。
元期 も参照。
共有メモリ
複数のプロセスが特定のメモリ領域を共有できるプロセス間通信機能。
共有ランタイムラ
イブラリ (SRL)
プログラムファイルの実行時にオペレーティングシステムがリンクするオブジェクトファイ
ルです。 SRL は、直接アドレッシングを使用します。また、割り当てられた特定の仮想記憶
アドレス (すべてのプロセスで同じアドレス) でのみロードし、実行することができます。
TNS プロセスと TNS/R プロセスは、異なる形式の SRL を使用します。
許可属性
setuid() (または PROCESS_CREATE_ などの Guardian プロシージャー) などの関数を使用
して、再認証の必要なしに変更できるプロセスのセキュリティ属性。 許可属性には、有効な
ユーザー ID、保存セットユーザー ID、保存セットグループ ID、有効なユーザー ID が含まれ
ます。
空白文字列
ヌルターミネータのみを含む文字列。 ヌル文字列と同義です。
205
組み込みコマンド
OSS 環境で、/bin/sh ファイル内に実装されたコマンド。 一部の組み込みコマンドは、実
行可能ファイルとして別々に利用することもできます。
クライアントアプ
リケーション
サーバーアプリケーションにサービスを要求するアプリケーション。 クライアントアプリケー
ションの例として、リモートプロシージャーコールの実行があります。
グループ
オープンシステムサービス (OSS) 環境では、同じグループ ID を持つユーザー ID のセット。
グループ ID
HP NonStop ネットワークノードのユーザーグループを識別する非負整数。 ノードのそれぞ
れのユーザーは、1 つ以上のグループのメンバーです。 グループの識別子がプロセスに関連
している場合、グループ ID の値は次のいずれかと呼ばれます。
•
実グループ ID
•
有効グループ ID
•
補足グループ ID
•
保存セットグループ ID
グループデータ
ベース
ノードのデータベース。 グループデータベースには、そのノードを使用する各グループのグ
ループ名、グループ ID、ユーザー名が含まれます。
グループリスト
プロセスのファイルアクセスパーミッションを判断するために、有効グループ ID とともに使
用するプロセスの属性。
ゲートウェイ
1 つのネットワークのメッセージプロトコルを、別のネットワークのメッセージプロトコル
に変換するためのデバイス。
現在の作業ディレ
クトリ
相対パス名を解決する基準となるディレクトリ。 プロセスには、必ず現在の作業ディレクト
リがあります。
作業ディレクトリ も参照。
コアダンプファイ
ル
saveabend ファイル を参照。
コアファイル
saveabend ファイル を参照。
コードセット
文字セット内の各文字に一意な数値をマップするコードであり、指定されたビット数を使用
して各文字を表します。 シングルバイトコードセットは、7 ビットまたは 8 ビットを使用し
て各文字を表します。 ASCII コードセットと ISO 646 コードセットは、7 ビットを使用して
ローマ字ベースのアルファベットを各文字を表します。これらのコードセットは、非常に限
定的であり、国際的な用途には適切ではありません。 ISO 8859 コードセット内のシングルバ
イトコードセットは、8 ビットを使用して各文字を表します。したがって、ローマ字ベースの
アルファベットだけでなく、ギリシャ、アラビア、ヘブライ、トルコなど、他の多くの文字
をサポートできます。 マルチバイト文字は、東アジアの表意文字など、2 バイト以上を必要
とする文字を表現します。
国際化
異なる言語、文化、文字セットの要求に対応し、各種の言語および文化的な規則を処理する
能力を提供できるように、ソフトウェアの設計とコーディングを行うプロセス。 国際化方式
により、基礎となる文字コードとは独立に文字ベースデータを処理できるようになり、文字
セット間の選択肢が提供されます。 「internationalization」という単語の最初の「I」と最後
の「N」の間に 18 文字あることから、「I18N」と呼ばれることもあります。
文字セット も参照。
国家標準準拠の
POSIX.1 アプリ
ケーション
国家標準に準拠する POSIX.1 アプリケーションです。以下の両方を満足するアプリケーショ
ン:
•
ISO/IEC IS 9945-1:1990 および ISO または IEC (国家標準機関) の特定のメンバーの承認さ
れた標準に記載された機能のみを使用します。
•
ISO/IEC IS 9945-1:1990 および ISO または IEC (国家標準機関) の特定のメンバーの承認さ
れた標準に記載された機能のみの使用について説明し、すべてのオプションと制限への
依存について記載します。
子プロセス
別のプロセスで生成されるプロセス。 生成元のプロセスは新しいプロセスの親プロセスにな
ります。
親プロセス も参照。
孤立した i ノード
PXINODE ファイルに含れるが、PXLINK ファイルにリンクがない i ノード。
孤立したファイル
PXINODE ファイル内に対応する i ノードのないファイル。
孤立したプロセス
グループ
すべてのメンバーの親が同じプロセスグループのメンバーであるか、または異なるセッショ
ンのメンバーであるプロセスグループ。
206
用語集
コンプライアンス
X/Open のライセンスを付与する前のテストおよび検証プロセス。
サーバーアプリ
ケーション
クライアントアプリケーションにサービスを提供するアプリケーション。 サーバーアプリケー
ションの例として、リモートプロシージャーコールのローカルでの実行を可能にするアプリ
ケーションがあります。
作業ディレクトリ
プロセスに関連付けられたディレクトリであり、スラッシュ (/) 文字で始まらないパス名の解
決に使用されます。
作成バージョンシ
リアル番号
(CRVSN)
ファイルの作成時にディスクプロセスによって割り当てられる番号。 CRVSN は、正しいファ
イルにアクセスしていることを確認するため、ディスクプロセスおよびオープンシステムサー
ビス (OSS) ネームサーバーによって使用されます。 CRVSN は通常ファイルのカタログエン
トリーに格納され、ファイルに関するデータ記述言語 (DDL) 要求が作成されるときにディス
クプロセスに渡されます。
シグナル
環境がプロセスにイベントを通知する方法。
シグナル生成
プロセスのシグナルを生成するイベントが発生するタイミング。
シグナル配信
OSS が特定のプロセスおよびシグナルに適切なアクションを実行するタイミング。
シグナルハンド
ラー
特定のシグナルが特定のプロセスに配信された場合に実行される関数またはプロシージャー。
シグナルマスク
特定のプロセスに現在配信されていないシグナルのセット。
システム
HP NonStop オペレーティングシステムの単一コピーと、それを実行するハードウェアグルー
プの集合。
システムコンソー
ル
特定の関数またはプロシージャーコールを通して送信されたメッセージを受信するオプショ
ンのファイル。
システムプロセス
オープンシステムサービス (OSS) インターフェイスを持つ HP NonStop オペレーティングシ
ステムの単一コピーの一部。 システムプロセスは、OSS プロセス ID を持っていません。
システムマネー
ジャー
マネージャー を参照。
実グループ ID
プロセスの属性。 プロセスの作成時に、実グループ ID はプロセスを作成したユーザーのグ
ループまたは親プロセスを識別します。 実グループ ID は、プロセス作成後に変更される可
能性があります。
実装定義
標準では指定されません。 実装定義の正しい値または挙動は、システムごとに異なる可能性
があります。したがって、移植できない機能を表すことがあります。
実ユーザー ID
プロセスの属性。 プロセスの作成時に、実ユーザー ID はプロセスを作成したユーザーまた
は親プロセスを識別します。 実ユーザー ID は、プロセス作成後に変更される可能性があり
ます。
重複ファイル記述
子
別のファイル記述子と同じ開いているファイル記述を表すファイル記述子。
準拠
特定の標準の要件を満たしていること。
準拠に関する質問
(CSQ)
製品が XPG コンポーネント/プロファイル定義で定義された X/Open 仕様をどのように実装
しているかを識別する文書。 CSQ はブランド化製品ごとに存在します。
準拠文書
POSIX 標準への準拠を主張するソフトウェアを伴う必要のあるインプリメンターの文書。 こ
の標準に動作または側面が実装定義として記載されている場合、この文書にはソフトウェア
の挙動または他の側面を指定します。
ジョブ制御
プロセスの停止、継続、およびバックグラウンドへの移動を可能にするオープンシステムサー
ビス (OSS) 機能。
親ディレクトリ
ファイルシステム内のディレクトリ階層内の特定のディレクトリ。 ディレクトリの親ディレ
クトリは、その特定のディレクトリのエントリーを含み、そのディレクトリ内ですぐ上の階
層のディレクトリとして識別されます。 ファイルの親ディレクトリには、そのファイルのエ
ントリーが含まれます。
親プロセス
指定されたプロセスを生成したプロセス、または (そのプロセスが停止した場合には) 指定さ
れたプロセスを継承したプロセス。
子プロセス も参照。
親プロセス ID
親プロセスによって決まる子プロセスの属性。 親プロセス ID は、現在の親プロセスのオー
プンシステムサービス (OSS) プロセス ID です。
207
シンボリックリン
ク
別のファイルへの名前ポインターとして機能する特殊ファイルのタイプ。 シンボリックリン
クは、パス名を含んでおり、別のファイルセット内のファイルを指すためには使用できます。
シンボリックリンクは、ISO/IEC IS 9945-1: 1990 には含まれていません。 ハードリンク と対
比してください。
スーパー ID
HP NonStop システムですべてのファイルを読み取り、書き込み、実行、および削除できる
特権があるユーザー。 通常、スーパー ID はシステムスーパーバイザーグループのメンバー
です。
スーパー ID には、適切な特権と呼ばれる特殊な権限のセットが付与されています。 Guardian
環境では、スーパー ID の構造化ビュー (255, 255) が一般的に使用されます。オープンシステ
ムサービス (OSS) 環境では、スーパー ID のスカラービュー 65535 が一般的に使用されます。
スーパーブロック
オープンシステムサービス (OSS) 環境で、OSS ファイルシステムの現在の状態に関するすべ
ての情報を含む部分。 スーパーブロックには、空きリストや i ノードのサイズなどの項目が
含まれます。
ストレージプール
論理ディスクボリュームのセットとして管理される、物理ディスクボリュームのセット。 論
理ディスクボリュームは、複数の物理ディスクボリュームにわたることができます。 論理ボ
リュームが一杯になると、物理ボリュームを追加できます。
ストレージプール
ファイル
ファイルセットによって使用されるディスクボリュームのリストを含むファイル。 これらの
ボリュームが一杯になると、ストレージプールファイルにより多くのボリュームを追加する
ことができます。
正規入力モード
論理行全体 (改行文字、ファイル終端文字、または行末文字で区切られる) を入力するまで、
プロセスでデータを使用できない端末入力モード。 このモードは、ラインモードまたは非透
過モードとも呼ばれます。 非正規入力モード と対比してください。
制御端末
セッションに関連付けることができる端末。 1 つのセッションに関連付けることができる制
御端末は 1 台のみであり、1 台の制御端末は 1 回に 1 つのセッションのみを制御できます。
セッションに制御端末が関連付けられている場合は、次のすべてが適用されます。
•
特定の端末から特定の文字シーケンスを入力すると、シグナルが特定のセッションのプ
ロセスグループのすべてのプロセスに送信されます。
•
特定の端末から入力した特定の文字には、特殊な処理が実行される可能性があります。
•
セッションのバックグラウンドプロセスグループのメンバーは、制御端末に対する特定
の種類のアクセスから制限されます。
セッション も参照。
制御プロセス
制御端末への接続を確立したセッションリーダー。 セッションリーダーは、対応する端末が
制御端末でなくなったときに制御プロセスではなくなります。
静的サーバー
Guardian 環境で継続的に動作し、他のプロセスに特定のサービスを提供するプロセス。 デー
モンは実行するタスクを動的に検索し、静的サーバーはクライアント (リクエスター) プロセ
スのタスクのみを実行するため、静的サーバーは従来の UNIX デーモンと異なります。 ま
た、デーモンを参照してください。
セッション
ジョブを制御するための関連するプロセスグループのセット。 セッションに制御端末を関連
付けることができます。
セッション存続期
間
セッションが生成されたときに開始し、セッション内の最後に残ったプロセスグループの存
続期間が終了したときに終了する期間。
セッションリー
ダー
セッションを生成したプロセス。
接続性
システムと別のベンダーのシステムとの間で情報を転送するシステムの能力。 相互運用性 と
対比してください。
絶対パス名
スラッシュ (/) 文字で始まり、ルートディレクトリから名前解決されるパス名。 相対パス名
と対比してください。
セマフォ
複数のプロセスが共有データオブジェクトにアクセスできる機能。
相互運用性
1. HP NonStop ノードで、特定の環境の機能を別の環境から使用できる機能。 たとえば、OSS
環境で gtacl コマンドによって、対話型ユーザーは、Guardian 環境で Guardian ツールを開
始し使用することができます。
2. 複数のベンダーのシステムまたは同じベンダーのオペレーティングシステムの複数のバー
ジョンでステータス、ファイルなどの情報を交換できる機能。 NonStop の外部製品およびエ
208
用語集
ンドユーザー向けの書籍では、この状況を指すのにしばしば「接続性」という用語を使用し
ますが、他のベンダーでは、ハードウェアの互換性を意味するのに「接続性」という用語が
使用されています。
相対パス名
スラッシュ (/) 文字で始まらないパス名。 相対パス名は現在の作業ディレクトリから解決さ
れます。 絶対パス名 と対比してください。
ソケット
ストリーム指向通信のエンドポイント。 ソケットはファイル記述子を含んでいます。
空のディレクトリ
自分自身用のエントリーと、階層内で直接上位にあるディレクトリ用のエントリーのみを含
むディレクトリ。
ゾンビプロセス
終了しているにもかかわらず、引き続きシステムテーブルに記録されているプロセス。
端末
『ISO/IEC IS 9945-1: 1990』の第 7 節に記載されたインターフェイスに準拠する文字特殊ファ
イルのタイプ。
陳腐化
機能が、以前のバージョンまたは標準のドラフトとの互換性のための存在することを示しま
す。 陳腐化した機能は使用しないでください。将来の標準のバージョンから除去される可能
性があり、したがって移植できなくなる場合があります。
通常ファイル
ランダムアクセスできるバイトシーケンスのファイル。 通常ファイルはバイナリデータまた
はテキストデータを含んでおり、システムで構造化されていません。 特殊ファイル と対比し
てください。
デアーカイブ
アーカイブと呼ばれる特殊な形式のファイルからファイルシステムにファイルを復元します。
ディレクトリ
名前が他のファイルに関連する、ディレクトリエントリーを含むオープンシステムサービス
(OSS) 特殊ファイルのタイプ。 同じディレクトリの複数のディレクトリエントリーに同じ名
前を付けることはできません。
ディレクトリエン
トリー
ファイルにファイル名を関連付けるオブジェクト。 複数のディレクトリエントリーが同じファ
イルに名前を関連付けることができます。
リンク も参照。
ディレクトリスト
リーム
不透明なデータタイプのオブジェクト プロセスは、ディレクトリストリームからディレクト
リエントリーを順次読み出します。
ディレクトリツ
リー
ディレクトリの階層。 オープンシステムサービス (OSS) 環境では、ディレクトリは任意の 2
つのディレクトリの間に 1 つのパスのみがある分岐階層で相互に接続しています (バックト
ラックがない場合)。
ディレクトリ特殊
ファイル
ディレクトリ を参照。
ディレクトリルー
プ
ディレクトリが、それ自体の親として識別されたエラー状態。
データ透過
すべてのデータバイトの全 8 ビットを検証し、データバイトを独自の目的には使用しないソ
フトウェアのことです。 国際化されたアプリケーションはデータ透過でなければなりません。
デーモン
デーモン を参照。
デーモン
UNIX システムでは、継続的に動作して他のプロセスに特定のサービスを提供するプロセス
です。 デーモンは、制御端末を含まず、明示的に起動しません。 システムでは、デーモン
は、OSS 環境で動作し、オープンシステムサービス (OSS) のプロセス ID を持っています。
静的サーバー も参照。
適切な特権
特権が必要な関数呼び出し、または関数呼び出しオプションを使用するために、特権をプロ
セスに関連付ける実装定義の手段。
デバイス
アプリケーションから認識されるコンピューター周辺装置またはオブジェクト。
端末 も参照。
特殊ファイル
オープンシステムサービス (OSS) ファイルシステム内の通常ファイル以外のファイル。 特殊
ファイルには、ディレクトリ、FIFO、および端末デバイスファイルなどの文字特殊ファイル
が含まれます。 通常ファイル と対比してください。
特殊文字
端末から入力される文字のうち、その端末からの入力ストリームの一部となること以外の効
果を持つ文字。
ドメイン
インターネットでの名前階層構造の部分。 構文的には、ドメイン名は、ピリオド (ドット) で
区切られた一連の名前 (ラベル) で構成されます。
209
認証属性
再認証が正常に実行されない限り、またはスーパー ID が変更しない限り、変化しないプロセ
スのセキュリティ属性。 認証属性には、ログイン名、実際のユーザー ID、実際のグループ
ID、認証システム (ノード名)、認証端末 (端末名)、補助グループ名と補助グループ ID、ファ
イル作成モードマスク (ファイルの作成中に付与されないパーミッション)、およびユーザー
ロールグループリスト) が含まれます。
ヌル文字列
1 つまたは複数のヌル文字で始まる、論理的に空の文字列。
ハードリンク
同じファイルに対する 2 つのディレクトリエントリー間の関係。 ハードリンクは、ファイル
に対する追加ポインターとして機能します。 ハードリンクは、別のファイルシステム内のファ
イルを指すためには使用できません。 シンボリックリンク と対比してください。
パイプ
pipe() 関数を呼び出してプログラムで作成するか、またはシェルのパイプ構文文字 (|) で対
話的に作成した無名 FIFO。 シェルパイプは、特定のプロセスの標準出力をリダイレクトし
て、別のプロセスの標準入力にします。 プログラムのパイプはプロセス間通信機能です。
パスプレフィック
ス
オープンシステムサービス (OSS) 環境で、ディレクトリを参照するパス名であり、オプショ
ンで末尾にスラッシュ (/) 文字を付けます。
パス名
OSS 環境でファイルシステム内のファイルを一意に識別する文字列です。 パス名には、相対
および絶対があります。 ISO/IEC IS 9945-1:1990 (ANSI/IEEE Std. 1003.1-1990 または POSIX.1)
の第 2.2.2.57 条も参照してください。
パス名コンポーネ
ント
ファイル名 を参照。
パス名の解決
オープンシステムサービス (OSS) 環境で、指定されたパス名を単一のファイルに関連付ける
プロセス。
パス名変数の制限
オープンシステムサービス (OSS) ファイル階層内で変動する可能性がある制限。つまり、パ
ス名変数の制限は、パス名の解決を開始するディレクトリによって変化する可能性がありま
す。
バックグラウンド
プロセス
バックグラウンドプロセスグループのメンバーであるプロセス。
バックグラウンド
プロセスグループ
次の 2 つの条件を満たすプロセスグループ。
•
フォアグラウンドプロセスグループではない。
•
制御端末との接続を持つセッションのメンバー。
非正規入力モード
タイマーが時間切れになるか、特定の個数の文字を入力した場合にデータをプロセスに使用
できる端末入力モード。 非正規データは論理入力行にグループ化されません。 このモード
は、ブロックモードまたは透過モードとも呼ばれます。 正規入力モード と対比してくださ
い。
表意文字
表意文字 を参照。
表意文字
語または概念を表す文字または記号。 日本語や中国語などのいくつかの言語では、何千もの
表意文字を使用します。 表意文字 (ideograph) は「表意文字 (ideogram)」とも呼ばれます。
標準に準拠する
POSIX.1 アプリ
ケーション
ISO/IEC または国家標準に準拠する POSIX.1 アプリケーション。
ファイル
データを書き込むか、読み取ることができるオブジェクト。 ファイルはアクセス権限、ファ
イルタイプなどの属性を含んでいます。 オープンシステムサービス (OSS) 環境では、ファイ
ルタイプには、通常のファイル、文字特殊ファイル、ブロック特殊ファイル、FIFO、および
ディレクトリがあります。
ファイルアザーク
ラス
プロセスのユーザー ID およびグループ ID に関係するプロセスのアクセス許可を示すファイ
ルのプロパティ。 プロセスは、以下が両方とも真の場合、ファイルのファイルアザークラス
に入ります。
•
プロセスは、ファイルのファイルオーナークラスのメンバーではない。
•
プロセスは、ファイルのファイルグループクラスのメンバーではない。
ファイルオーナー
クラス
プロセスのユーザー ID に関係するプロセスのアクセス許可を示すファイルのプロパティ。
プロセスが、ファイルのユーザー ID (オーナー) と同じ有効ユーザー ID を有する場合、プロ
セスはファイルのファイルオーナークラスに入ります。
ファイル記述
オープンファイル記述 を参照。
210
用語集
ファイル記述子
実行中のプロセスで開いているファイルを一意に識別する非負整数。 それぞれのファイル記
述子は、ファイルに関するデータを含む開いているファイル記述に関連しています。
ファイルクラス
プロセスのオーナー、グループ、またはアザーの識別に関係するプロセスのアクセスパーミッ
ションを示すファイルのプロパティ。
ファイルグループクラス、 ファイルアザークラス、 ファイルオーナークラス も参照。
ファイルグループ
クラス
プロセスのグループ識別に関係するプロセスのアクセス許可を示すファイルのプロパティ。
プロセスは、以下の両方が真の場合、ファイルのファイルグループクラスに入ります。
•
プロセスはファイルオーナークラスのメンバーではない。
•
プロセスには、ファイルに関連するグループ ID に一致する有効グループ ID または補助
グループ ID があります。
ファイル識別子
Guardian 環境では、サブボリューム名の後のファイル名の部分。 オープンシステムサービス
(OSS) 環境では、OSS ファイルシステムのファイルを識別する内部情報の部分。 2 つの識別
子は同等ではありません。
ファイルシステム
オープンシステムサービス (OSS) 環境では、ファイルとファイル属性の集合。 ファイルシス
テムはファイルを一意に識別するシリアル番号の名前空間を実装しています。 オープンシス
テムサービスはファイルシステムを実装しています (ISO/IEC IS 9945-1:1990 (ANSI/IEEE Std.
1003.1-1990) の第 2.2.2.38 条も参照)。Guardian のアプリケーションプログラムインターフェ
イス (API) および OSS ネットワークファイルシステム (NFS) もファイルシステムを実装して
います。 (OSS NFS のファイル名およびパス名は、OSS のファイル名およびパス名と少し異
なるルールで管理されます。) OSS ファイルシステムおよび OSS NFS ファイルシステムに、
ファイルセットは管理可能なオブジェクトとして存在します。
HP NonStop システムで、ノードの Guardian ファイルシステムは、OSS の仮想ファイルシス
テムのサブセットです。 従来の Guardian 環境のファイルアクセス API は、「Guardian ファ
イルシステム」と呼ばれます。
一部の UNIX および NFS 実装では、「ファイルシステム」という用語は「ファイルセット」
と同じ意味です。 つまり、ルート以外のファイルシステムはファイルシステム内のディレク
トリのみに含まれるファイルの論理グループです。
ファイルセット も参照。
ファイルシリアル
番号
ファイルシステム内のファイルを一意に識別する番号です。
ファイルセット
オープンシステムサービス (OSS) 環境でファイル階層に共通のマウントポイントを含むファ
イルセット。 ファイルセットは、1 つの仮想ファイルシステムの一部またはすべてです。
HP NonStop システムで、ノードの Guardian ファイルシステムは、マウントポイントを含ん
でおり、OSS の仮想ファイルシステムのサブセットです。 このため、Guardian ファイルシ
ステム全体は、1 つのファイルセットと見なすことができます。 ただし、Guardian ファイル
システム内のそれぞれのボリュームおよびサブタイプ 30 のそれぞれのプロセスは、実際には
別のファイルセットです。
通常、UNIX マニュアルでは、「ファイルシステム」という用語は「ファイルセット」と同
じ意味です。
ファイル転送、ア
クセス、管理
(FTAM)
国際標準化機構によって、ネットワークファイル交換および管理サービスのための開発され
た開放型システム間相互接続 (OSI) 標準。
ファイル転送プロ
トコル (FTP)
1. インターネット標準規格であり、マシン間でのファイル転送を行うための上位プロトコル。
サーバー側は、クライアントにログイン識別子とパスワードを要求します。それを受け取る
まで、要求を処理しません。 ソースシステムと宛先システムのファイル名構造に関する仮定
はありません。 各システムのファイル名は、方言で表すことができます。
2. ファイル全体を伝送制御プロトコル/インターネットプロトコル (TCP/IP) サービスを介し
て送信するために使用されるアプリケーション。
ファイルパーミッ
ションビット
プロセスまたはユーザーにファイルの読み取りパーミッション、書き込みパーミッション、
または実行/検索パーミッションが付与されているかどうかを確認するために、他の情報と組
み合わせて使用されるファイル情報。 ビットは、オーナー、グループ、アザー (その他) とい
う 3 つの部分に分類されます。 それぞれの部分はプロセスの対応するファイルクラスと組み
合わせて使用されます。
211
ファイル名
オープンシステムサービス (OSS) 環境では、スラッシュ (/) および NULL 以外の有効な文字
を含むパス名の要素。 Guardian 環境では、ノード名、ボリューム名、サブボリューム名、お
よびファイルを一意に識別するファイル識別子の文字の組み合わせ。
ファイルモード
ファイルのタイプおよび特性を記述し、ファイルのアクセスパーミッションビットを含む特
定ファイルの stat 構造内のフィールド。
ファイルモード作
成マスク
プロセスに関連するマスク。 プロセスがファイルを作成するとき、このマスクで設定された
ビットはファイルのアクセスパーミッションビット内でクリアされます。
ファイルリンクカ
ウント
HP NonStop ノード内のディレクトリエントリーの総数。
フィールド
データ構造内のアドレス指定可能なエントリー。 「フィールド」という用語は、「メンバー」
の意味で使用することもあります。
フォアグラウンド
プロセス
フォアグラウンドプロセスグループに所属するプロセス。
フォアグラウンド
プロセスグループ
このプロセスグループのメンバーは、制御対象の端末にアクセスする権限を持ちますが、バッ
クグラウンドプロセスグループのプロセスは、その端末へのアクセスを拒否されます。 制御
対象端末の各セッションは、その端末に関して 1 つだけフォアグラウンドプロセスグループ
持ちます。
フォアグラウンド
プロセスグループ
ID
フォアグラウンドプロセスグループのプロセスグループ ID。
フラグ
コマンド内で、1 つのユニットとして処理される、ハイフンで始まる文字列。
ブランド化製品
X/Open によってライセンスされ、X/Open または UNIX の商標をもつソフトウェア製品。
ブランド化プロセ
ス
商標ライセンス契約に従い、X/Open によって製品が許容されるまでの作業。
フリーリスト
ファイルに割り当て可能な i ノードのリスト。
ブレーク状態
非同期シリアル通信回線上で送信される連続する 0 ビットの列。
プロセス
プログラム実行を可能とするためのアドレス空間、アドレス空間で実行される制御スレッド、
および必要なシステムリソース。
プロセス ID
OSS プロセス ID (PID) を参照。
プロセスイメージ
ファイル
UNIX システム上の実行可能オブジェクトファイル。 Guardian の外部製品およびエンドユー
ザー向けの書籍では、実行可能オブジェクトファイルは「プログラムファイル」と呼ばれて
います。
オブジェクトファイル も参照。
プロセスグループ
関連のプロセスにシグナルを送信できるプロセスのセット。 ノード内のそれぞれのプロセス
はプロセスグループのメンバーです。プロセスグループにはプロセスグループ ID が割り当て
られています。 新しいプロセスは作成元のプロセスグループのメンバーになります。
プロセスグループ
ID
プロセスグループの存続期間中、そのプロセスグループを示す一意の識別子。
プロセスグループ
存続期間
プロセスグループが生成されたときに開始し、グループ内の最後に残ったプロセスの存続期
間が終了したときに終了する期間。
プロセスグループ
リーダー
オープンシステムサービス (OSS) プロセス ID として、そのプロセスグループのプロセスグ
ループ ID を持っているプロセス。
プロセス存続期間
プロセスが生成されたときに開始し、再利用のためにオープンシステムサービス (OSS) プロ
セス ID がシステムに返されたときに終了する期間。
ブロックシグナル
現在プロセスの保留シグナルマスクに含まれており、生成されたときにシグナルマスク設定
によってプロセスに配信されないプログラムに基づくシグナル。 一部のシグナルはブロック
できません。
ブロック特殊ファ
イル
入力または出力をすべてデータブロック単位で行う必要のあるファイルとして処理されるデ
バイス。 従来、このようなファイルはディスクデバイスまたはテープデバイスです。 ブロッ
ク特殊ファイルでは、デバイスのハードウェア特性を隠した状態でデバイスにアクセスする
ことができます。 キャラクター特殊ファイル と対比してください。
分散型システム
接続され、連携するコンピューターのグループで構成されるシステム。
212
用語集
ヘッダー
プログラムのソースコードにインクルードするように指定された場合に、ヘッダーをインク
ルードするステートメントが実際に他のプログラミングステートメントの特定のセットであ
るかのように、プログラムを実行するオブジェクト。 ヘッダーは、ヘッダーで始まるデータ
の詳細 (データ項目の長さなど) に関するコード化された情報を含んでいます。
オープンシステムサービス (OSS) プログラムでは、ヘッダーはプロセスで使用されるランタ
イムライブラリに一般的なファイルの名前です。 Guardian 環境の C 言語プログラムでは、
ヘッダーはプロセスで使用されるランタイムライブラリに一般的なファイルの識別子です。
補足グループ ID
プロセスのファイルアクセスパーミッションを判断するために使用するプロセス属性。
保存セットグルー
プ ID
プロセスの有効グループ ID として後で使用できるようにグループ ID を格納するプロセス属
性。
保存セットユー
ザー ID
プロセスの有効ユーザー ID として後で使用できるようにユーザー ID を格納するプロセス属
性。
保留中のシグナル
プロセス用に生成されたが、配信されていないシグナル。 保留中のシグナルは通常はブロッ
クシグナルです。
マウント
ファイルセットにノードのユーザーからアクセスできるようにすること。
マウントポイント
マウントされたファイルセットを含むディレクトリ。 マウントされるファイルセットは、別
のファイルシステムに存在することもできます。
マネージャー
1. HP NonStop システムの場合、NonStop ノード上のソフトウェアサブシステムに関連する
日常的な監視作業と保守作業を担当する要員。
2. UNIX システムの場合、サイトの管理および情報サービス管理の担当者。
未指定
ISO/IEC IS 9945-1: 1990 標準で移植性の要件がないデータに関する、正しい値の使用またはプ
ログラムの正しい挙動に関連します。
未定義
ISO/IEC IS 9945-1: 1990 標準で移植性の要件がないデータに関する、誤った値の使用またはプ
ログラムの誤った挙動に関連します。
メンバー
データ構造内のアドレス指定可能なエントリー。 メンバーは、単なるフィールドやデータ構
造を指すこともあります。
モード
ファイルのタイプとアクセスパーミッションを指定する属性のセット。
ファイルモード も参照。
文字
データの編成、表現、または制御に使用される、単一の文字を表す 1 バイトまたは複数バイ
トのシーケンス。 シングルバイト文字は、1 文字を表す 8 ビットで構成されます。 マルチバ
イト文字は、1 バイトまたは複数バイトを使用して 1 文字を表します。 ワイド文字は、イン
プリメンテーションでサポートされる任意のコード化文字を格納するための、十分な大きさ
を持つ固定幅文字です。
ISO C 標準によって、マルチバイト文字という用語が定義されています。シングルバイト文
字は、マルチバイト文字の特殊なケースです。
文字セット
データの編成、表現、または制御に使用される、有限の文字セット (文字、数字、記号、表意
文字、制御関数)。
コードセット も参照。
元期
協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00) 以降の時間。
協定世界時 (UTC) も参照。
有効グループ ID
プロセスに許可されたファイルアクセスなどのパーミッションを判断するために使用するプ
ロセスの属性。 プロセスの有効グループ ID は、そのプロセスのグループアクセス権限に関
連するグループ ID です。 プロセスの有効グループ ID は、そのプロセスによって作成された
ファイルのグループ ID の設定に使用されます。 有効グループ ID は、プロセス実行中に変更
される可能性があります。
有効ユーザー ID
プロセスに許可されたファイルアクセスなどの許可を判断するために使用するプロセスの属
性。 プロセスの有効ユーザー ID は、そのプロセスのオーナーアクセス権限に関連するユー
ザー ID です。 プロセスの有効ユーザー ID は、そのプロセスによって作成されたファイルの
ユーザー ID の設定に使用されます。 有効ユーザー ID は、プロセス実行中に変更される可能
性があります。
ユーザー ID
ノード内のユーザーの一意の識別子
213
通常、Guardian 環境では、「ユーザー ID」という用語はグループ番号とメンバー番号のペ
アを意味します。たとえば、通常、スーパー ID のユーザー ID は、(255, 255) と表されます。
通常、オープンシステムサービス (OSS) 環境では、「ユーザー ID」という用語は、ユーザー
ID のスカラービューである 1 つの番号、つまり UID と呼ばれる番号を意味します。
HP NonStop ユーザー ID、 UID も参照。
ユーザー ID 設定
プログラム
そのファイルモードに S_ISUID ビットが設定されたプログラムファイル。
ユーザーデータ
ベース
HP NonStop ノード内のデータベースであり、ノードの各ユードーのユーザー名、ユーザー
ID、グループ ID、初期作業ディレクトリ、および初期ユーザープログラムが含まれます。
ユーザー名
ノードのユーザーデータベース内のユーザーを、一意に識別する文字列。
読み取り専用ファ
イルシステム
そのファイルシステム内のファイルに対する変更を制限する実装定義特性を持つファイルシ
ステム。
予約された記号
システムまたはコンパイラ言語インプリメンターが使用するために予約された識別子。
リファレンスペー
ジ
ソフトウェア機能のリファレンス情報を提供するファイルのオンラインバージョンまたはハー
ドウェアコピーバージョン。 一部の UNIX の外部製品およびエンドユーザー向けの書籍は、
この用語ではなく、「man ページ」という用語を使用しています。ファイル (通常は、シェ
ルの man コマンド) の表示に使用されるオンライン配信機能、または書籍の一部としてのファ
イルを意味します。
リモートプロシー
ジャー
クライアントプロセスによってサーバープロセス内で間接的に呼び出されるようにパッケー
ジ化されたプロシージャーまたは関数。
リモートプロシー
ジャーコール
リモートプロシージャーまたはリモートプロシージャーを呼び出すアクション
リモートプロシー
ジャーコールシス
テム
クライアントプロセスがリモートサーバー上のプロシージャーを実行するためのメカニズム
を提供する、プログラミングライブラリ、ネットワークリソースマッピング、およびバイン
ディングサービスを含む機能のセット。 リモートプロシージャーコールシステムは、分散コ
ンピューティング環境 (DCE) と他の製品のサブセットです。
リンク
ファイルのディレクトリエントリー。
リンクカウント
特定のファイルを参照するディレクトリエントリー数。
リンク名
ディレクトリ内の特定のファイルに結合されたファイル名。 ファイル名の長さ、したがって
リンク名の長さはファイルシステムに依存します。
ファイル名 も参照。
ルート
ルートファイルセットとルートディレクトリを参照してください。
ルートディレクト
リ
パス名がスラッシュ (/) 文字から始まる場合にパス名の解決に使用されるプロセスに関連する
ディレクトリ。
ルートファイル
セット
デバイス識別子が 0 のファイルセット。通常は、HP NonStop システムのオープンシステム
サービス (OSS) ファイルシステムのルートディレクトリを含んでいます。 HP は、このファ
イルセットに “root” という名前を付けることを推奨しています。
レガシーシステム
オープンではないオペレーティングシステムであり、そこからアプリケーションを移植し、
ユーザーを移転する必要のあるオペレーティングシステム。
ローカリゼーショ
ン
各文化に合わせて、文化的に受け入れられる方法で情報を表示するため、コンピューターイ
ンターフェイス、データ、およびドキュメントを適応させるプロセス。 「localization」とい
う単語の最初の「L」と最後の「N」の間に 10 文字あることから、「L10N」と呼ばれること
もあります。
ローカルオペレー
ター
システムの起動と停止、テープのロードとアンロード、エアフィルターの交換などの定常的
なシステム操作を実行する要員。 ローカルオペレーターは、通常はノードの非同期システム
コンソールのオペレーターです。
演算子 (1、2)、オペレーター (3、4) も参照。
ローカルマウント
サーバーに関連するファイルセットを、ローカルディレクトリ階層内で指定されたマウント
ポイントに追加するマウント。 ローカルマウントは、ネットワークファイルシステム (NFS)
サブシステム内で可視的であり、サーバーに関連するファイルをローカルマウントポイント
に関連するパスを通して利用可能にします。
214
用語集
ログイン
ユーザーが、HP NonStop サーバーノード上で、ローカルに認証された ID を確立するアク
ティビティ。 ログインごとに、ログイン名が 1 つ存在します。
ログイン名
セッションに結合されたユーザー名。
ロケール
言語と文化的な規則に依存するユーザー環境のサブセットの定義。
215
216
索引
記号
?, 33
.exrc ファイルと vi エディター, 170
.profile ファイル, 47, 94
> エイリアス, 44
> 再実行, 44
> 例, 53
” “, 42
*, 33
/ ディレクトリ (スラッシュディレクトリ), 31, 124
/E ディレクトリ
>-W NOE フラグ, 74, 102, 110, 112, 128, 142, 162, 165
>Expand ネットワーク, 31, 74
>OSS ファイルシステム, 73
>UTILSGE 変数, 49, 142
> オブジェクトの指定, 74
> パーミッション, 133
> 再帰的動作と, 142
/etc/profile ファイル, 47
/G ディレクトリ
>-W NOG フラグ, 74, 102, 110, 112, 128, 142, 162, 165
>-W NOG フラグ, 74, 102, 110, 112, 128, 142, 162, 165
>Guardian ファイルセット, 31
>OSS ファイルシステム, 73
>UTILSGE 変数, 49, 142
> オブジェクトの指定, 74
> パーミッション, 133
> ファイルアクセス, 74
> 再帰的動作と, 142
UTILSGE 変数, 74
\, 42
&, 148
&&, 39
>, 146
>>, 146
||, 39
~, 33, 124
6530 エミュレーション, 91
A
access() 関数, 141
add_define コマンド, 37, 59, 69
AF_UNIX ソケット, 141
alias コマンド, 37, 43, 59, 69
apropos コマンド, 58, 59
ar コマンド, 59
at コマンド, 59, 154
awk コマンド, 59
AXCEL タイムスタンプ情報, 199
B
banner コマンド, 59
basename コマンド, 59
batch コマンド, 59, 155
bc コマンド, 59
bg コマンド, 37, 59, 69
bind() 関数, 141
Binder タイムスタンプ情報, 198
break コマンド, 37, 59, 69
C
c89 コマンド, 59
cal コマンド, 59
cancel コマンド, 59, 80, 108
cat コマンド, 59, 104
cd コマンド, 37, 59, 69, 101, 122
CDPATH 変数, 48
charmap(4), 71
chdir() 関数, 142
chgrp コマンド, 59, 139
chmod() 関数, 141
chmod コマンド, 59, 133
chown() 関数, 141
chown コマンド, 60, 139
chroot() 関数, 142
cksum コマンド, 60
clear コマンド, 60
cmp コマンド, 60
cobol コマンド, 60
COLUMNS 変数, 48
comm コマンド, 60
command コマンド, 60
Commands
tail, 63
Compaq Tandem Advanced Command Language (TACL)
(参照 TACL)
compress コマンド, 60
connect() 関数, 142
continue コマンド, 37, 60
cp コマンド, 60, 80, 109, 125
cpio コマンド, 60
creat() 関数, 141
cron プログラム, 156
crontab コマンド, 60, 156
crontab ファイル, 156
csplit コマンド, 60
Ctrl-c, 97
cut コマンド, 60
D
date コマンド, 60
dc コマンド, 60
dd コマンド, 60
del_define コマンド, 37, 60, 69
df コマンド, 60
diff コマンド, 60, 113
dircmp コマンド, 60
dirnam コマンド, 60
dspcat コマンド, 60
dspmsg コマンド, 60
du コマンド, 60
217
HP NonStop オペレーティングシステム, 24
E
echo コマンド, 37, 60, 69
ed エディター, 60, 97, 181
EDITORS 変数, 48
egrep コマンド, 60
env コマンド, 60
ENV 変数, 48
ERRNO 変数, 48
eval コマンド, 37, 60, 69
ex コマンド, 60
exec 関数セット, 141
exec コマンド, 37, 60, 69
exit コマンド, 37, 60, 69, 93
expand コマンド, 60
Expand ネットワーク, 31, 73
export コマンド, 37, 60, 69
expr コマンド, 60
F
false コマンド, 60
fc コマンド, 37, 45, 61, 69
FCEDIT 変数, 46, 48
Federal Information Processing Standards (FIPS), 27
fg コマンド, 37, 61, 69
fgrep コマンド, 61
file コマンド, 61, 80, 81, 119
find コマンド, 61, 148, 161
FIPS, 27
flex コマンド, 61
fold コマンド, 61
fork() 関数, 141
FPATH 変数, 48
FTP, 165
ftp コマンド, 61, 165
G
gencat コマンド, 61
genxlt コマンド, 61
getconf コマンド, 61
getopts コマンド, 37, 61, 69
GMT binder タイムスタンプ情報, 198
gname コマンド, 61
grep コマンド, 61, 159
gtacl コマンド, 61, 78, 80, 81
Guardian 環境、OSS との相互運用性, 24
Guardian 固有のコマンド, 66
Guardian スプーラー, 106
Guardian ファイルシステム
>/G ディレクトリ, 31
i ノード番号, 77
概要, 73
H
hash コマンド, 37, 61, 69
head コマンド, 61
HISTFILE 変数, 48
history コマンド, 37, 44, 61
HISTSIZE 変数, 45, 48
HOME 変数, 48
218
索引
I
iconv コマンド, 61
id コマンド, 61
IEEE, 26
IEEE Std 1003.1-1990, 27
IFS 変数, 48
info_define コマンド, 37, 61, 69
ipcrm コマンド, 61
ipcs コマンド, 61
ISO, 26, 27
ISO/IEC 9945, 27
ISO/IEC 標準, 27
J
Job スケジューリング
batch コマンド, 155
Job のスケジューリング
at コマンド, 154
jobs コマンド, 37, 61, 70, 151
join コマンド, 61
K
kill() 関数, 141
kill コマンド, 37, 61, 70, 80, 81, 152
Korn シェル, 35
ksh コマンド, 63
L
let コマンド, 37, 61, 70
lex コマンド, 61
line コマンド, 61
LINENO 変数, 48
LINES 変数, 48
link() 関数, 141
ln コマンド, 61, 116
local(4), 71
locale コマンド, 61
logger コマンド, 61
logname コマンド, 61
LOGNAMES 変数, 48
lp コマンド, 61, 107
lpstat コマンド, 62, 108
ls コマンド, 62, 80, 81, 101, 124
M
make コマンド, 62
man コマンド, 58, 62
Man ページ, 57
mkcatdefs コマンド, 62
mkdir() 関数, 141
mkdir コマンド, 62, 101, 121
mkfifo() 関数, 141
mkfifo コマンド, 62
mknod() 関数, 141
more コマンド, 62, 104
mv コマンド, 62, 111, 125
N
nawk コマンド, 62
newgrp コマンド, 62
NFS, 142
nice コマンド, 62
NIST, 26
nld コマンド, 62
nm コマンド, 62
nmcobol コマンド, 62
noft コマンド, 62
nohup コマンド, 62
NonStop オペレーティングシステム, 24
O
od コマンド, 62
OLDPWD 変数, 48
open() 関数, 141
opendir() 関数, 141
OPTARG 変数, 48
OPTIND 変数, 48
osh コマンド, 35, 78, 80, 81, 92
OSS
概要, 23
システム管理, 94
実行, 92
終了, 93
デバイスサポート, 26
ファイル (参照 ファイル)
ファイルシステム, 73
プロセス, 26
マニュアル, 57
OSS シェル
開始, 92
概要, 35
環境, 47
機能, 35
組み込みコマンド, 69
コマンド入力支援, 38
コマンドのグループ化, 41
実行, 92
終了, 93
スクリプト, 55
パイプ, 40
フィルター, 40
プロシージャー, 55
プロンプト, 97
OSS の実行, 92
OSS の終了, 93
P
pack コマンド, 62
paste コマンド, 62
patch コマンド, 62
PATH 変数, 55
pathchk コマンド, 62
PATHS 変数, 48
pax コマンド, 62, 80, 82, 163
PERUSE, 106
pinstall コマンド, 80
pipe() 関数, 142
pname コマンド, 62
POSIX.1 標準, 27
POSIX.2 標準, 27
PPID 変数, 48
pr コマンド, 62, 104
print コマンド, 37, 62, 70
printf コマンド, 62
ps コマンド, 62, 80, 82, 149
PS1 変数, 48
PS2 変数, 48
PS3 変数, 48
PS4 変数, 49
pwd コマンド, 37, 62, 70, 122
PWD 変数, 49
R
RANDOM 変数, 49
read コマンド, 37, 62, 70
readonly コマンド, 37, 62, 70
rename() 関数, 141
REPLY 変数, 49
reset_define コマンド, 37, 62, 70
return コマンド, 37, 62, 70
rm コマンド, 62, 115
rmdir() 関数, 141
rmdir コマンド, 62, 126
rsh コマンド, 62
run コマンド, 62, 78, 80, 82
runcat コマンド, 63
runv コマンド, 63
S
Safeguard, 140
SECONDS 変数, 49
sed コマンド, 63
set コマンド, 37, 63, 70
set_define コマンド, 37, 63, 70
setgid() 関数, 141
setgid (グループ ID の設定) ビット, 130, 135
setpgid() 関数, 142
setpgrp() 関数, 142
setreuid() 関数, 142
setsid() 関数, 142
setuid() 関数, 142
setuid (ユーザー ID の設定) ビット, 130, 135
sh コマンド, 63
sh、ksh コマンド, 61
SHELL 変数, 49
shift コマンド, 38, 63, 70
show_define コマンド, 38, 63, 70
sleep コマンド, 63
sort コマンド, 63, 114
split コマンド, 63
SPOOLCOM, 106
stderr, 145
stdin, 145
stdout, 145
strings コマンド, 63
219
strip コマンド, 63
stty コマンド, 63, 94
su コマンド, 63
sum コマンド, 63
symlink() 関数, 142
T
TACL
ログオフ, 94
ログオン, 91
TACL のログオフ, 93
TACL へのログオン, 91
tail コマンド, 63
tar コマンド, 63
tee コマンド, 63
telnet コマンド, 63
Telnet、セッションの終了, 93
TERM 変数, 49
test コマンド, 63
time コマンド, 63
times コマンド, 38, 63, 70
TMOUT 変数, 49
touch コマンド, 63
tr コマンド, 63
trap コマンド, 38, 63, 70
true コマンド, 63
tty コマンド, 63
type コマンド, 38, 63, 70
typeset コマンド, 38, 63, 70
U
umask コマンド, 38, 63, 70, 137
unalias コマンド, 38, 43, 63, 70
uname コマンド, 63
uncompress コマンド, 63
unexpand コマンド, 63, 70
uniq コマンド, 63
unlink() 関数, 142
unpack コマンド, 63
unset コマンド, 38, 63, 70
UTILSGE 変数, 49, 142
utime() 関数, 142
uudecode コマンド, 64
uuencode コマンド, 64
V
vi エディター, 64, 97, 98, 169
vi 環境のカスタマイズ, 170
VISUAL 変数, 49
vproc コマンド, 64, 197
対話型, 198
VT100 エミュレーション, 91
W
wait コマンド, 38, 64, 70
wall コマンド, 64
wc コマンド, 64, 146
whatis コマンド, 58, 64
whence コマンド, 38, 64, 70
220
索引
who コマンド, 64, 80, 83
wr コマンド, 64
X
X/Open Common Applications Environment (CAE) , 27
X6530 エミュレーション, 91
xargs コマンド, 64
XPG4 標準, 27
Xterm エミュレーション, 91
Y
yacc コマンド, 64
Z
zcat コマンド, 64
ZYQ サブボリューム, 77
あ
アーカイブ, 163
アーカイブメンバー
情報, 198
アプリケーション開発用のコマンド, 64
い
一重引用符文字, 42
引用符, 41
え
エイリアス
.profile ファイル, 44
エクスポート, 43
削除, 43
定義, 43
定義の表示, 44
エクスポート
エイリアス, 43
シェル変数, 51
エスケープ文字, 97
エディター
ed, 181
vi, 169
概要, 97
エミュレーションソフトウェア, 91
お
オーディット対象のファイルで PROCESS_SPAWN_ プ
ロシージャーを使用, 142
オーディット対象のファイルで、tdm_execve() 関数を
使用, 142
オーディット対象のファイルで、tdm_execvep() 関数を
使用, 142
オーディット対象ファイルで FILE_OPEN_ プロシー
ジャーを使用, 142
オーディット対象ファイルで tdm_fork() 関数を使用, 142
オーディット対象ファイルで tdm_spawn() 関数を使用,
142
オーディット対象ファイルで tdm_spawnp() 関数を使
用, 142
オーナー
chown コマンド, 139
変更, 139
オープンシステムサービス (OSS) (参照 OSS)
オンラインドキュメンテーション, 57
か
書き込みパーミッション, 129
カレントディレクトリ
概要, 122
削除, 127
く
グループ
chgrp コマンド, 139
概要, 130
変更, 139
け
検索コマンド, 67
こ
国際標準化機構 (ISO), 26, 27
コピー
ディレクトリ, 125
テープドライブへ, 163
ファイル, 109
コマンド
add_define, 37, 59, 69
alias, 37, 43, 59, 63, 69
apropos, 58
ar, 59
at, 59, 154
awk, 59
banner, 59
basename, 59
batch, 59, 155
bc, 59
bg, 37, 59, 69
break, 37, 59, 69
c89, 59
cal, 59
cancel, 59, 80, 108
cat, 59, 104
cd, 37, 59, 69, 101, 122
chgrp, 59, 139
chmod, 59, 133
chown, 60, 139
cksum, 60
clear, 60
cmp, 60
cobol, 60
comm, 60
command, 60
compress, 60
continue, 60
cp, 60, 80, 109, 125
cpio, 60
crontab, 60, 156
csplit, 60
cut, 60
date, 60
dc, 60
dd, 60
del_define, 37, 60, 69
df, 60
diff, 60, 113
dircmp, 60
dirnam, 60
dspcat, 60
du, 60
echo, 37, 60, 69
ed, 60
egrep, 60
env, 60
eval, 37, 60, 69
ex, 60
exec, 37, 60, 69
exit, 37, 60, 69
expand, 60
export, 37, 60, 69
expr, 60
false, 60
fc, 37, 45, 61, 69
fg, 37, 61, 69
fgrep, 61
file, 61, 80, 119
find, 61, 148, 161
flex, 61
fold, 61
ftp, 165
gencat, 61
genxlt, 61
getconf, 61
getopts, 37, 61, 69
gname, 77
grep, 61, 159
gtacl, 61, 78, 80
Guardian 環境, 66
Guardian 環境向け, 66
hash, 37, 61, 69
head, 61
history, 37, 44
iconv, 61
id, 61
info_define, 37, 61, 69
ipcrm, 61
ipcs, 61
jobs, 37, 61, 70, 151
join, 61
kill, 37, 61, 70, 80, 152
ksh, 61
let, 37, 61, 70
lex, 61
line, 61
ln, 61, 116
locale, 61
logger, 61
logname, 61
221
lp, 61, 107
lpstat, 62, 108
ls, 62, 80, 81, 101, 124
make, 62
man, 58, 62
man ページ, 57
mkcatdefs, 62
mkdir, 62, 101, 121
mkfifo, 62
more, 62, 104
mv, 62, 111, 125
nawk, 62
newgrp, 62
nice, 62
nld, 62
nm, 62
nmcobol, 62
noft, 62
nohup, 62
od, 62
osh, 78, 80, 81, 92
paste, 62
patch, 62
pathchk, 62
pax, 62, 80, 82, 163
pinstall, 80, 82
pname, 77
pr, 62, 104
print, 37, 62, 70
printf, 62
ps, 62, 80, 82, 149
pwd, 37, 62, 70, 122
read, 37, 62, 70
readonly, 37, 62, 70
reset_define, 37, 62, 70
return, 37, 62, 70
rm, 62, 115
rmdir, 62, 126
rsh, 62
run, 62, 78, 80, 82
runcat, 63
runv, 63
sed, 63
set, 37, 63, 70
set_define, 37, 63, 70
sh, 63
shift, 38, 63, 70
show_define, 38, 63, 70
sleep, 63
sort, 63, 114
split, 63
strings, 63
strip, 63
stty, 63, 94
su, 63
sum, 63
tar, 63
tee, 63
telnet, 63
222
索引
test, 63
time, 63
times, 38, 63, 70
touch, 63
tr, 63
trap, 38, 63, 70
true, 63
tty, 63
type, 38, 63, 70
typeset, 38, 63, 70
umask, 38, 63, 70, 137
unalias, 38, 43, 63, 70
uname, 63
uncompress, 63
unexpand, 63, 70
uniq, 63
unpack, 63
unset, 38, 63, 70
uudecode, 64
uuencode, 64
vi, 64
vproc, 64, 197
対話型, 198
wait, 38, 64, 70
wall, 64
wc, 64, 146
whatis, 58
whence, 38, 64, 70
who, 64, 80, 83
wr, 64
xargs, 64
yacc, 64
zcat, 64
アーカイブ, 64
アプリケーション開発, 64
グループ化, 41
検索用の, 67
構文, 59
再実行, 45
シェル組み込み, 69
システム管理用の, 68
システム構成用の, 68
システム情報用の, 68
使用法, 59
スケジューリング
at コマンド, 154
batch コマンド, 155
crontab コマンド, 156
セキュリティ用の, 68
ソート用の, 67
入力支援, 38
パーミッション, 68
ファイルとディレクトリ, 65
ファイルの表示, 65
プリントとフォーマット, 66
プロセス管理用の, 67
マニュアル, 57
ユーザー情報用の, 69
リスト, 67
リモートアクセス用の, 67
コマンドインタープリター, 35
コマンドキー、カスタマイズ, 170
コマンドとジョブのスケジューリング
batch コマンド, 155
crontab コマンド, 156
コマンドの再帰的動作, 142
コマンドの再帰的な動作, 74
コマンドラインの編集, 45
さ
再実行
>.profile ファイル, 44
コマンド, 45
削除
エイリアス, 43
カレントディレクトリ, 127
ディレクトリ, 126
ファイル, 115
ファイルとディレクトリを同時に, 128
リンク, 118
サブディレクトリ, 30
し
シェル (参照 OSS シェル)
シェル変数
.profile ファイル, 51
エクスポート, 51
クリア, 52
定義, 50
パラメーター置換, 51
表示, 52
シグナルトラップ, 35
システム管理, 94
実行パーミッション, 129
出力、リダイレクト, 145
条件式, 35
ジョブ制御, 35
ジョブのスケジューリング
crontab コマンド, 156
親ディレクトリ, 31
シンボリックリンク, 116
す
スクリプト, 55
スケジューリングコマンドとジョブ
at コマンド, 154
スティッキービット, 130, 135
スプーラー, 106
絶対パーミッション, 135
絶対パス名, 31
そ
相互運用性
>/E ディレクトリ, 76
gtacl コマンド, 78
Guardian プロセス, 78
OSS プロセス, 78
相対パス名, 32, 123
ソート
コマンド, 67
ファイル, 114
ソフトリンク, 116
ゾンビプロセス, 151
た
ターゲット CPU 情報, 199
端末, 94
端末エミュレーション, 170
て
ディスクボリュームの管理, 95
ディレクトリ
>/E, 31, 73
>/G, 31, 73
アクセス, 129
概要, 30
カレント, 122
管理, 121
コピー, 125
削除, 126
作成, 121
名前変更, 125
パーミッション, 129
変更, 134
表示, 124
変更, 122
リスト, 101, 122, 124
ルート, 31
ディレクトリ名
長さ, 30
テープドライブ, 163
テキストエディター
ed, 97, 181
vi, 97, 169
と
特殊文字, 33
せ
な
整数演算, 35
製品バージョン情報, 198
製品ファイル、検索方法, 197
セキュリティ
Safeguard, 143
概要, 95
コマンド, 68
ファイルのオーディット, 140
名前の変更
ファイル, 111
名前変更
ディレクトリ, 125
波ダッシュ文字, 33
に
二重引用符文字, 42
223
入力、リダイレクト, 145
ね
標準エラーファイル, 145, 147
標準出力ファイル, 145
標準入力ファイル, 145
ネイティブモード情報, 199
ネットワークファイルシステム (NFS), 142
ふ
は
バージョンプロシージャー情報, 199
バージョンプロシージャーユーティリティ (VPROC),
197
ハードリンク, 116
パーミッション
>/G ディレクトリ, 133
umask コマンド, 137
コマンド, 68
絶対, 135
設定, 133
ディレクトリ, 129
デフォルト, 131
表示, 132
ファイル, 129
フィールド, 130
変更、設定, 133
パーミッションの指定
8 進数, 135
umask コマンド, 137
パーミッションの設定, 133
パイプ, 40
配列, 35
パス, 55
パス名
概要, 31
絶対, 31
相対, 32, 123
長さ, 33
表示, 122
マッピング, 77
パターンマッチング文字, 33
バックアップ, 95
バックグラウンドプロセス
キャンセル, 152
実行, 148
バックスラッシュ文字, 42
パラメーター置換, 51
ひ
表示
コマンドライン, 46
ディレクトリ, 124
ファイル, 103
標準
FIPS, 27
ISO/IEC, 27
POSIX.1, 27
POSIX.2, 27
X/Open Common Applications Environment (CAE),
27
XPG4, 27
国際標準化機構 (ISO), 26
224
索引
ファイル
.profile (参照 .profile ファイル)
>.exrc と vi エディター, 170
アーカイブ, 163
アクセス, 129
移動, 112
オーディット, 140
概要, 29
検索, 159, 161
コピー, 109
削除, 115
作成, 97
ソート, 114
タイプ, 119
転送, 163
名前の変更, 111
パーミッション, 129, 134
比較, 113
表示, 65, 103
フォーマット, 104
フォーマットと説明, 71
プリント, 106
リスト, 101
リンク, 116
ファイル検索, 159
ファイルシステム
Guardian, 31, 73
OSS, 30, 73
ファイルセット
概要, 33
マウント, 95
マウント解除, 95
ファイルタイプ
file コマンド, 119
OSS, 29
特定, 119
ファイル転送プロトコル (FTP), 165
ファイルの移動, 112
ファイルのオーディット, 140
ファイルの検索, 161
ファイルの作成, 97
ファイルの転送, 165
ファイルの場所の特定, 161
ファイルの比較, 113
ファイルのプリント
lp コマンド, 107
lpstat コマンド, 108
ジョブのキャンセル, 108
ステータス, 108
ユーティリティ, 106
ファイルのリンク, 116
ファイル名
概要, 29
自動補完入力, 42
長さ, 29
フィルター, 40
フォアグラウンドプロセス, 148
フォーマット
pr コマンドによるファイル操作, 104
コマンド, 66
複数のコマンド, 38
プリンターサポート, 106
プリントおよびフォーマット用のコマンド, 66
プリントジョブのキャンセル, 108
フロー制御, 35
プログラム, 145
プロセス
Guardian 属性, 78
ps コマンド, 149
概要, 145, 148
監視, 149
キャンセル, 152
終了, 97, 149
ステータスの確認, 149
ステートメントタスクの確認, 151
バックグラウンド, 148
フォアグラウンド, 148
プロセス ID, 149
プロセス ID, 149
表示, 149
プロセス管理用のコマンド, 67
プロセスの監視, 149
プロセスの終了, 97, 149
ファイルとディレクトリ, 101
リダイレクション
標準エラー, 147
リダイレクト
出力, 145
入力, 146
リファレンスページ, 57
リンク
削除, 118
シンボリック, 116
ソフト, 116
ハード, 116
る
ルートディレクトリ, 31
わ
ワードカウント, 146
へ
変更
オーナー, 139
グループ, 139
ディレクトリ, 122
パーミッション, 133
変数、シェル, 49
ほ
ホームディレクトリ, 30
め
メタキャラクター, 33
ゆ
ユーザー/オーナーパーミッション, 130
ユーザーインターフェイス, 35
ユーザー情報コマンド, 69
ユーザープロセス, 145
ユーザーマスク, 137
よ
読み取りパーミッション, 129
予約文字, 41
り
リスト
コマンド, 67
ディレクトリ, 122, 124
225
Fly UP