#author("2023-02-07T12:45:17+09:00;2023-02-07T12:15:47+09:00","default:kaw","kaw")
#navi(河豚板ガイド)
この章ではシステムが起動完了し、実際に使用する時の基本的な手順について説明します。

また、Unix系OSになじみのない人、そして他のUnix系OSを使用経験がある人が参照すると役に立つ情報源をそれぞれ紹介します。

#contents

#aname(firstlogin)
*初めてのログイン [#cb54daf8]
**rootでログイン [#j9dcb23b]
河豚板の起動が完了すると、OpenBSDオペレーティングシステムのログイン画面が表示されます。~
最初はスーパーユーザのアカウントのみがログインできる状態ですので「login:」のプロンプトに対し ''root''、「Password:」のプロンプトに対し起動時に設定したパスワードを入力します。

 OpenBSD/amd64 (fugu-demo.localnet) (tty00)
 
 login: root
 Password:
 OpenBSD 6.7-stable (RDROOT.MP) #1: Fri Jun  5 09:41:45 JST 2020
 
 Welcome to OpenBSD: The proactively secure Unix-like operating system.
 
 Please use the sendbug(1) utility to report bugs in the system.
 Before reporting a bug, please try to reproduce it with the latest
 version of the code.  With bug reports, please try to ensure that
 enough information to reproduce the problem is enclosed, and if a
 known fix for it exists, include that as well.
 
 You have new mail.
 fugu-demo# 

ログインに成功するとシェルのプロンプト「#」が表示され、コマンドが実行可能な状態になります。~
例としてpsというコマンドを実行してみます。

 fugu-demo# ps -aux
 USER       PID %CPU %MEM   VSZ   RSS TT  STAT   STARTED       TIME COMMAND
 root     68528  3.6  0.1   868   884 00  Sp      6:51AM    0:01.89 -ksh (ksh)
 root         1  0.0  0.1   884   532 ??  I       6:40AM    0:01.68 /sbin/init
 root     14453  0.0  0.1   792   644 ??  Ip      6:43AM    0:00.47 /sbin/slaacd
 _slaacd  53995  0.0  0.1   812   784 ??  Ip      6:43AM    0:00.81 slaacd: engi
 _slaacd  33982  0.0  0.1   800   732 ??  Ip      6:43AM    0:00.81 slaacd: fron
 root     55401  0.0  0.1   712   548 ??  IU      6:44AM    0:00.17 dhclient: em
 _dhcp    78950  0.0  0.1   840   700 ??  Ip      6:44AM    0:00.10 dhclient: em
 root     86344  0.0  0.2   520  2184 ??  IpU     6:46AM    0:00.64 syslogd: [pr
 _syslogd 45328  0.0  0.1  1128  1488 ??  Sp      6:46AM    0:01.04 /usr/sbin/sy
 root     73380  0.0  0.1   836   584 ??  IU      6:46AM    0:00.27 pflogd: [pri
 _pflogd  53476  0.0  0.1   876   540 ??  Sp      6:46AM    0:02.97 pflogd: [run
 _ntp     63935  0.0  0.3  1016  2868 ??  S<p     6:47AM    0:02.87 ntpd: ntp en
 _ntp     18769  0.0  0.2   820  2508 ??  Ip      6:47AM    0:01.86 ntpd: dns en
 root     34145  0.0  0.2   788  1568 ??  S<pU    6:47AM    0:00.81 /usr/sbin/nt
 root     63360  0.0  0.1  1324  1280 ??  I       6:47AM    0:00.37 sshd: /usr/s
 root     61566  0.0  0.2  1680  2052 ??  Ip      6:48AM    0:00.82 /usr/sbin/sm
 _smtpd   19845  0.0  0.4  1448  3940 ??  Ip      6:48AM    0:01.83 smtpd: klond
 _smtpd   66321  0.0  0.4  1716  4240 ??  Ip      6:48AM    0:02.23 smtpd: contr
 _smtpd   91561  0.0  0.4  1552  4164 ??  Ip      6:48AM    0:01.95 smtpd: looku
 _smtpd   90688  0.0  0.4  1844  4396 ??  Ip      6:48AM    0:02.69 smtpd: pony
 _smtpq   16446  0.0  0.4  1640  4252 ??  Ip      6:48AM    0:02.47 smtpd: queue
 _smtpd   82450  0.0  0.4  1440  3988 ??  Ip      6:48AM    0:02.17 smtpd: sched
 _sndio   66682  0.0  0.1   516   744 ??  I<p     6:48AM    0:00.17 /usr/bin/snd
 _sndiop  92235  0.0  0.1   504   920 ??  IpU     6:48AM    0:00.08 sndiod: help
 root      1376  0.0  0.1   672  1268 ??  Sp      6:51AM    0:00.84 /usr/sbin/cr
 root      6575  0.0  0.0   484   360 00  R+pU/0  7:32AM    0:00.35 ps -aux
 root     13541  0.0  0.1   288  1296 C0  I+pU    6:51AM    0:00.58 /usr/libexec
 root     70324  0.0  0.1   292  1308 C1  I+pU    6:51AM    0:00.54 /usr/libexec
 root     10475  0.0  0.1   296  1312 C2  I+pU    6:51AM    0:00.44 /usr/libexec
 root     81779  0.0  0.1   292  1304 C3  I+pU    6:51AM    0:00.58 /usr/libexec
 root     45364  0.0  0.1   284  1280 C5  I+pU    6:51AM    0:00.47 /usr/libexec
 fugu-demo# 

psは、現在どのようなプログラム(プロセス)が動いているかを表示するコマンドです。~
システムが起動直後、しかも画面表示上動きのない様子であっても内部ではすでに沢山のプロセスが起動されていることがわかります。

ログアウトするにはシェルのプロンプト「#」が出ているときに <Control>-D を押すか、「exit」と入力します。
>''【メモ】''~
''⇒''<Control>-Dは「<Control>キーを押したままの状態でアルファベットの「D」キーも押す」という意味です。<Control>-Dはまた、「^D」と表記されることもあります。

 # exit
 
 OpenBSD/amd64 (fugu-demo.localnet) (tty00)
 
 login: 
ログアウトすると「login:」が表示され、再度ログインできる状態になります。

***一般ユーザの登録 [#g69bab25]
起動直後の河豚板は、スーパユーザ(システム管理者)用のアカウントrootでのみログインできます。

Unix系のOSでは、通常は一般ユーザとしてログインし、日常の利用を行います。~
システム管理の時には一般ユーザから一時的にスーパユーザになるか、あるいは一般ユーザからログアウトした後、スーパユーザとしてログインし直して管理作業を行います。
>&color(red){''【ご注意】''};~
&color(red){''!!''スーパユーザでログイン中はシステムを動作不能にしてしまうような操作を容易に実行できてしまいます。勿論、故意にではない誤操作の場合も例外ではありません。このようなリスクを防ぐため、一般ユーザのアカウントを作成し、通常はそのアカウントで使用することを''強くお勧め''します。};

以下、一般ユーザとしてyoshiというアカウントを作成してみます。~
ユーザアカウントの作成もシステム管理ですので、rootで行います。

ユーザアカウントを追加するにはadduserというコマンドを使用します。~
まず、ユーザアカウント追加時のデフォルト値を訊かれます。これはadduserの初回の実行時にだけ訊かれます。通常は全て<Enter>キーのみの入力で問題ありません。
 # adduser
 Couldn't find /etc/adduser.conf: creating a new adduser configuration file
 Reading /etc/shells
 Enter your default shell: bash csh ksh nologin nsh sh [ksh]:    ←<Enter>を入力
 Your default shell is: ksh -> /bin/ksh
 Default login class: authpf bgpd daemon default pbuild staff unbound
 [default]:                                                      ←<Enter>を入力
 Enter your default HOME partition: [/home]:                     ←<Enter>を入力
 Copy dotfiles from: /etc/skel no [/etc/skel]:                   ←<Enter>を入力
 Send welcome message?: /path/file default no [no]:              ←<Enter>を入力
 Do not send message(s)
 Prompt for passwords by default (y/n) [y]:                      ←<Enter>を入力
 Default encryption method for passwords: auto blowfish [auto]:  ←<Enter>を入力
 Use option ``-silent'' if you don't want to see all warnings and questions.
 
 Reading /etc/shells
 Check /etc/master.passwd
 Check /etc/group
以降は、一般ユーザのアカウント「yoshi」を作成してみます。~
最初に表示されているように、入力内容は最後に訂正でき(入力しなおせ)ます。
 Ok, let's go.
 Don't worry about mistakes. There will be a chance later to correct any input.
 Enter username []: yoshi                        ←アカウント名(半角アルファベット半角数字)
 Enter full name []: Yoshihiro Kawamata          ←ユーザの本名
 Enter shell bash csh ksh nologin nsh sh [ksh]:  ←<Enter>を入力 (ログインシェル)
 Uid [1000]:                                     ←<Enter>を入力 (ユーザID)
 Login group yoshi [yoshi]:                      ←<Enter>を入力 (ログイングループ)
 Login group is ``yoshi''. Invite yoshi into other groups: guest no
 [no]: wheel                                     ←(ログイングループ以外に加入するグループ)
 Login class authpf bgpd daemon default pbuild staff unbound
 [default]:                                      ←<Enter>を入力 (ログインクラス)
 Enter password []:                              ←パスワードを入力 (表示されません)
 Enter password again []:                        ←確認のためのパスワード再入力
 
 Name:        yoshi
 Password:    ****
 Fullname:    Yoshihiro Kawamata
 Uid:         1000
 Gid:         1000 (yoshi)
 Groups:      yoshi wheel
 Login Class: default
 HOME:        /home/yoshi
 Shell:       /bin/ksh
 OK? (y/n) [y]: y                                ←入力内容の確認
 Added user ``yoshi''
 Copy files from /etc/skel to /home/yoshi
 Add another user? (y/n) [y]: n                  ←他にもユーザアカウント作成するなら「y」
 Goodbye!
 # 
>''【メモ】''~
''⇒''この例ではアカウントyoshiをwheelというグループにも加入させています。~
wheelに加入しているユーザは、システム管理作業を行うために、一時的にrootになることができます。

以上で、yoshiという一般ユーザアカウントが作成されましたので、実際にログインできるか確認してみます。
 fugu-demo# exit
 
 OpenBSD/amd64 (fugu-demo.localnet) (tty00)
 
 login: yoshi
 Password:
 OpenBSD 6.7-stable (RDROOT.MP) #1: Fri Jun  5 09:41:45 JST 2020
 
 Welcome to OpenBSD: The proactively secure Unix-like operating system.
 
 Please use the sendbug(1) utility to report bugs in the system.
 Before reporting a bug, please try to reproduce it with the latest
 version of the code.  With bug reports, please try to ensure that
 enough information to reproduce the problem is enclosed, and if a
 known fix for it exists, include that as well.
 
 fugu-demo$ pwd
 /ram/home/yoshi
 fugu-demo$ ls
 fugu-demo$ ls -a
 .          .Xdefaults .cvsrc     .mailrc    .ssh
 ..         .cshrc     .login     .profile
 fugu-demo$ ^D
 
 OpenBSD/amd64 (fugu-demo.localnet) (tty00)
 
 login: 
>''【メモ】''~
''⇒''rootでログインしたときのシェルのプロンプトは「#」になりますが、一般ユーザの場合は「$」となります。~
以降の例示箇所でもこの表記に従います。~
''⇒''OpenBSDではrootアカウントでのSSHによるログインは許可されていません。SSHによるリモートログインを行ないたい場合も一般ユーザのアカウントを作成しておく必要があります。

**X Window Systemを起動してみる。 [#x82da9c0]
OpenBSDはX Window Systemというグラフィック環境を含んだ形で出荷されており、河豚板もこのX Window Systemを使用することができます。
>''【メモ】''~
''⇒''X Window Systemは「X」や「X11」などと略して呼んでもよいことになっています。以下、X Window SystemをXと表記することにします。

Xを使用するには、[[準備編でのログイン方法の選択>fg1:loginmethod]] で説明したように、ログイン方法としてX Window Systemを選択します。
 Do you login with Console or X Window System?
 [default: Console] -> x
Xが起動すると、以下のようなログイン画面が表示されますので、ユーザ名とパスワードを入力します。
#ref(河豚板ガイド/xenodm-login.png,,50%)
ログインに成功すると以下のような画面になります。
#ref(河豚板ガイド/startx.png)
画面左上の白いウィンドウは「端末エミュレータ」というもので、X上でシェルとのセッションなど、文字端末での作業を行うためのプログラムです。~
右上には時計が表示されています。~
左下にあるものは「xconsole」といい、システムのログ情報を表示するプログラムです。起動直後はこのプログラムはアイコン化されています。~
右下の表のようなものは、「仮想デスクトップ」といい、複数のデスクトップ画面を切り替えて使用できるようにするものです。標準の設定では3列×3行=9面のデスクトップ画面を切り替えられます。

壁紙部分(Xでは、「ルートウィンドウ」と呼びます)でマウスの左ボタンを押すとメニューが表われます。このメニューからXのアプリを選択して実行できます。メニューにないものは端末エミュレータからコマンドを投入して実行することもできます。

以下の画面は、実際にアプリを実行してみた例です。
#ref(河豚板ガイド/various-xclt.png,wrap)
ルートウィンドウではマウスの中ボタンや右ボタンを押すことで、別のメニューが表示されます。
>''【メモ】''~
''⇒''Xの操作は3ボタンマウスによる操作を想定して設計されています。
中ボタンのないマウスの場合は、左右のボタンを両方同時に押すか、あるいはホイールを押します。

Xを終了するには、マウスの左ボタンのメニュー中、「Exit」を選択し、さらに本当に終了するかを確認するウィンドウに対し「Exit」を選択します。
#ref(河豚板ガイド/quit-verify-win.png,wrap)

>''【メモ】''~
''⇒''OpenBSDには、X Windowを使うためのソフトウェア(デスクトップ環境)が何種類か用意されており、また、日本語の表示や入力用のソフトウェアを追加することもできます。これについては応用編の [[日本語デスクトップ環境を導入する>fg3:dtjsetup]] で説明致します。

**河豚板を終了する [#lcb9f9a0]
河豚板の運用を終了するにはrootでログインし、shutdownコマンドを実行します。
 fugu-demo# shutdown -h -p now
 Shutdown NOW!
 shutdown: [pid 4771]
 fugu-demo#
 *** FINAL System shutdown message from root@fugu-demo.localnet ***
 System going down IMMEDIATELY
 
 
 
 System shutdown time has arrived
 
 fugu-demo# syncing disks... done
上の例では、shutdownコマンドへの指定として -h オプションを指定しているので、システムは停止(halt)します。
また、-p オプションを指定しているので停止直後に電源が自動的にOFF (power off)になります(PCによっては -p オプションによる電源OFFに対応していない機種もあります。この場合は手動で本体の電源をOFFにします)。
~ -h オプションや -p オプションの替わりに -r オプションを指定すると、システムは再起動(reboot)します。~

システムの停止や再起動を行うと、今回の起動後に行った設定や作成したユーザアカウント、また、ファイルやディレクトリの作成や編集、削除などの一切の結果は消えてなくなります。
>''【メモ】''~
''⇒''これら各種の設定やデータを保存・復帰させることもできます。この方法は [[起動時に保存した設定やファイルを読み込む>#boot_mode3]] で説明します。

河豚板上で行った操作がシステムを停止すると消えてしまうということは、見方を変えると内蔵ハードディスクにインストールされている既存のシステムなどに影響を及ぼしにくいということでもあります。~
つまり、rootでファイルの消去やプロセスの停止などを行ってもその影響は限定的なので、システム管理の練習などを安心して行うことができます。

#aname(usbfadm_sync)
**設定やファイルを保存する - usbfadm syncコマンド [#x66d25f8]
河豚板ではユーザが作成したファイル、設定の変更、追加されたパッケージ、システムのログなど一切のファイルをLiveUSB版の河豚板に作成されているデータ保存用パーティションに保存し、以降の起動時に呼び出すことができます。

データの保存にはrootでログインし、usbfadmコマンドを実行します。
>''【メモ】''~
''⇒''usbfadmは(USB Flash drive ADMinistration tool)の略です。

 # usbfadm
 Welcome to usbfadm.
 USB flash drive administration tool for FuguIta
 
   Version/Arch: 6.0/amd64  (FuguIta-6.0-amd64-201612291)
      Boot mode: manual
 Data stored in: not set
  Data Saved as: not set
 
 Type ? for help.
 
まず、targetコマンドを使用して保存先のパーティションを指定します。~
保存用のデバイスが装着されていることを確認した後、ENTERを押下するとデバイスのスキャンが行われます。~
デバイス名の前に+記号がついているものが、保存に使用することができるデバイスです。
 ? : ? --> target
 
 Searching USB flash drives
 Please make sure the device inserted.
 Then press ENTER ->
 cd0a sd0a +sd0d
 
 targe device--> sd0d

次に、saveasコマンドを使用して保存するデータに名前を付けます。~
名前を省略した場合、ホスト名が保存名として使用されます。
 sd0d : ? --> saveas
 Name of saved data --> fugu-demo
 
 Your data will be saved as ``fugu-demo''.
当初「?:?」だったプロンプトの文字列が変化していることにご注目下さい。
今ほどのtargetコマンドとsaveasで設定した値がプロンプト内に表示され、確認ができるようになっています。

最後にsyncコマンドを実行し、データを実際に保存します。
  /dev/sd0d : fugu-demo -> sync
 
 Sync current mfs as fugu-demo, OK? -> y
 
 building file list ... done
 created directory /mnt/livecd-config/fugu-demo
 ./
 etc/
 etc/bgpd.conf
 etc/boot.conf
    :
    :
 var/yp/Makefile.yp
 var/yp/Makefile.yp.dist
 var/yp/README
 
 sent 16455591 bytes  received 232568 bytes  180412.53 bytes/sec
 total size is 15492096  speedup is 0.93
infoコマンドで保存されたデータの情報を表示してみます。
 /dev/sd0d : fugu-demo -> info
 
 Filesystem     Size    Used   Avail Capacity  Mounted on
  /dev/sd0d     218M   18.9M    179M   9.6%    /mnt
 
 scanning...
 
 18.9M   6.0/amd64/fugu-demo
データは問題なく保存されているようなのでusbfadmを終了します。
 /dev/sd0d : fugu-demo -> bye
 
 #
>''【メモ】''~
usbfadmによる保存は、シェルのコマンドラインからも行うことができます。
 # usbfadm -r
 
 ========================================
 = Sync current mfs as fugu-demo into /dev/sd0d
 =
 sending incremental file list
 deleting etc/X11/xenodm/authdir/authfiles/A:0-G4H73h
    :
 var/spool/smtpd/purge/
 var/spool/smtpd/temporary/
 #
オプション -r は、usbfadmにファイル保存の再実行を指示します。~
~
また、cronを使用してバックグラウンドで定期的に実行することもできます。
 (crontabファイル)
 # crontab file
 #minute hour    mday    month   wday    command
   ~ 略 ~
 #save session periodically
 #0       */4     *       *       *       PATH=$PATH:/usr/local/bin /usr/fuguita/sbin/usbfadm -rq
これにより、usbfadmによる保存がバックグラウンドで4時間ごとに行われます。-q は進捗状況などを表示しない「quiet」オプションです。

>''【メモ】''~
''⇒''usbfadmコマンドで作成したパーティションでなくとも、OpenBSDのFFS形式でフォーマットされていて、/livecd-configというディレクトリが作成されているパーティションであれば使用できます。

#aname(boot_mode3)
**起動時に保存した設定やファイルを読み込む - 起動モード3 [#p11aec5c]
[[設定やファイルを保存する>#usbfadm_sync]] で説明した方法で保存されたデータは以降の起動時に読み込ませ、環境を復帰させることができます。~
データを復帰させるには、ブートモード3を選択します。
 Boot modes:
   0: fresh boot - standard mode as a live system
   1: fresh boot - less memory, faster boot (/usr is non-writable, can't pkg_add)
   2: fresh boot - works using only RAM (about 1GB or more of RAM required)
   3: boot with retrieving saved files from storage device
      or enter passphrase for an encrypted volume
   4: boot with retrieving saved files from floppy disk
   5: interactive shell for debugging
 ->3
 scanning partitions: sd0a sd0d sd0i cd0a
 Device(s) found:
   loadable from: sd0d
 Which is FuguIta's storage device? [default: sd0d] -> sd0d
 /dev/sd0d : available data;
 
 fugu-demo
 
 config name -> fugu-demo
 Copying files from flash to ram ... 
保存したデータ名を指定すると退避させていたデータを復帰し、起動が再開されます。~
各種設定値もすべて復帰するため、最初に説明した起動モード0と違いネットワークの設定などは訊かれません。

ログイン後、さらにデータを保存することもできます。手順は [[設定やファイルを保存する>#usbfadm_sync]] で説明した方法と同じですが、
すでにLiveUSB上にファイルが保存されているため、変更したファイルやディレクトリのみが対象となります。~
そして、保存デバイス名と保存名はすでに設定済みなので、いきなりsyncコマンドを実行してもOKです。

シャットダウン時、データの退避は自動的には行われないので、その都度手動でusbfadmコマンドを実行する必要があります。
これを自動化したい場合は [[終了時にデータが自動で保存されるようにする>fg3:autosave]] をご参照下さい。

*使用法の習得 [#r70ef50e]
#aname(useunix)
** Unix系OSの使い方を調べる [#h19a6ead]
本ガイドの冒頭で説明したように、河豚板はUnix系OSの一種である OpenBSD をベースにして作成されています。

Unixは約半世紀前の1969年に開発され、以降さまざまなコンピュータ向けの実装が作成されてきました。今ではUnix系のOSはスーパーコンピュータからスマートフォンや家電製品、あるいは小さな組込み機器までさまざまな環境で使用されるに至っています。

Unix系OSはMicrosoft WindowsなどのOSとは操作方法が大きくことなっており、最初はどのように使ってよいか見当がつかない方もいるかも知れません。

Unix系OSの基本的な部分はコンシューマユーザ向けに作られてはいません。OpenBSDも例外ではなく、予備知識を持たないユーザを想定した親切なユーザインターフェースなどは初期状態ではほとんど用意されていません。言い替えると''「なんとなくあちこちいじっているうちに使い方がわかった」ということにはなりません。''

そんなUnix系OSを理解し、活用するにはどのようなアプローチを取ればよいのでしょうか。

***書籍を用意しましょう [#u17669c8]
>Unix系OSに関する基本を解説している書籍を用意しましょう。~
様々な実装が存在するUnix系OSですが、それらには[[Unix哲学>https://ja.wikipedia.org/wiki/UNIX%E5%93%B2%E5%AD%A6]]とも呼ばれる共通した考え方があります。この考え方を理解し、実践できるようになることがUnix系OSを習得する上でのキーになります。~
書籍の内容としては特定の実装だけを対象とせず、基本的な概念から応用の入口までを網羅的・体系的に解説しているものがよいでしょう。~
>「これ一冊読めばすべてOK」というような書籍はなかなかないのですが、定評のあるものをいくつか挙げておきます;
-はじめてUNIXで仕事をする人が読む本 / 木本雅彦 他 著 / KADOKAWA アスキーメディアワークス
-新 The Unix Super Text [上]  / 山口和紀・古瀬一隆 著 / 技術評論社

>以下のものは副読本として読むと、より理解が進むかもしれません;
-Unixという考え方-その設計思想と哲学 / Mike Gancarz著 芳尾桂訳 / オーム社
-Linuxを「読む」 / こじまみつひろ著 / 毎日コミュニケーションズ

***自分でやってみましょう / マニュアルページを活用しましょう [#w1893733]
>やはり自分で手を動かすことが、効果的なスキル習得の基本になります。~
その際、やみくもにやってみるのではなく、オンラインマニュアル(manコマンド)を活用しましょう。オンラインマニュアルはそのシステムに即していますから書籍やネットが持つ弱点、記述が古くなっていたりとか、違う実装に基いて説明している、というようなことがありません。
>>''【メモ】''~
''⇒''Unixのマニュアルページは幾つかの章に別れています。~
同じ名前の項目が複数の章にある場合があります。例えば「sleep」は、1章(一般コマンド)と3章(ライブラリ)の両方にあり、それぞれsleep(1)、sleep(3)の様に記述します。ですので、sleepコマンドのコマンドラインを知りたい場合は、
 $ man 1 sleep
C言語でプログラミングをしていて、sleep関数の使い方を知りたい場合は、
 $ man 3 sleep
として第3章にあるsleep関数の説明を表示します。

ですので、これ以降「ls(1)」のような表記が出てきますが、これは「"man 1 ls"を実行してオンラインマニュアルの1章にある"ls"の項を参照して下さい」という意味になります。

オンラインマニュアルとは別に、Unixのコマンドの多くは自分自身の使用説明を表示する機能を持っています;
 $ man
 usage: man [-acfhklw] [-C file] [-I os=name] [-K encoding] [-M path] [-m path]
            [-O option=value] [-S subsection] [-s section] [-T output] [-W level]
            [section] name ...
 $ cp -?
 cp: unknown option -- ?
 usage: cp [-fip] [-R [-H | -L | -P]] source target
        cp [-fip] [-R [-H | -L | -P]] source ... directory
上の例ではmanコマンドとcpコマンドのヘルプメッセージを表示させています。~
このようにコマンドのヘルプメッセージは非常に簡素な説明なので、忘れてしまったコマンドラインオプションを思い出すため、といったような備忘録的な役割で使用されます。

***ネットは「参考情報」として活用しましょう
>インターネットを活用するとUnix系OSに関連する情報も、簡単に得ることができます。 ~
しかし、前項で説明したような弱点もあります。特に検索エンジンでの検索結果については目の前の実機にもあてはまるかどうかは自分で判断する必要があります。検索サイトの結果は「参考情報」として活用するのがよいでしょう。~
さらに、現在では多くのUnix系OSが開発コミュニティなどによる「公式サイト」を持っています。公式サイトの情報は一次情報として活用できます。~

***まとめ [#m2783069]
以上述べたことを例えば「ファイルの属性」というトピックにあてはめて考えると、次のようになるでしょう;

-書籍で基礎事項を押さえる ~
→ファイルのオーナ・グループ・パーミッションとは何か、どのようなコマンドで操作するかを調べる。

-オンラインマニュアル等で確認しながら実際に操作 ~
→実際にchown, chgrp, chmodコマンドなどを実行し、結果を確認してみる。どのようなコマンドラインオプションがあるかなどをmanコマンドで調べる。

-ネットで関連情報・参考情報をゲット~
→ネットの検索などで注意点、はまりやすい点、色々な応用法などを調べてみる。~
→公式サイトで関連情報を調べる ... 仕様の変更やセキュリティホール情報がないか、など。

河豚板は以上で述べたようなUnix系OSの習得にも向いています。つまり、インストール作業不要というライブシステムの特徴を活かし、ユーザが気軽に色々と試せる環境、失敗しても容易にやりなおせる環境を提供しています。

#aname(useopenbsd)
**OpenBSDの使い方を調べる [#g576b58f]
前節の [[Unix の使い方を調べる>#useunix]] ではUnix系OSの使用経験のあまりない人がUnix系OSの使い方を習得するためのヒントについて説明しましたが、この節ではOpenBSDを使う場合の情報源やそれらを活用する上でのポイントについて説明します。

***導入
rootでログインすると、OpenBSDプロジェクト開発リーダーTheo de Raadt氏からのメールが届いています。
 # mail
 Mail version 8.1.2 01/15/2001.  Type ? for help.
 "/var/mail/root": 1 message 1 new
 >N  1 deraadt@do-not-re  Sun Oct 18 07:58   86/4565  Welcome to OpenBSD 5.8!
 & more 1
 Message 1:
 From deraadt@do-not-reply.openbsd.org Sun Oct 18 07:58:58 MST 2015
 Date: Oct 18 07:58:58 MST 2015
 From: deraadt@do-not-reply.openbsd.org (Theo de Raadt)
 To: root
 Subject: Welcome to OpenBSD 5.8!
 
 This message attempts to describe the most basic initial questions that a
 system administrator of an OpenBSD box might have.  You are urged to save
 this message for later reference.
 ....(以下略)....
このメールでは、OpenBSDをインストールした人が最初に持つと思われる疑問について説明しています。メール本文に書いてある情報源をたどってゆくことで、OpenBSDを使用する上での様々なノウハウを得ることができます。

以下このメールの内容と重複する部分もありますが、システム上の各種情報源について触れていきます。

***オンラインドキュメント [#v2da204b]
[[Unixの使い方を調べる>#useunix]]で述べたようにマニュアルページはUnix系OSの重要な情報源ですが、OpenBSDにおいても例外ではありません。~
そのことはインストール直後のroot宛てメールにおいても、以下のように強調されています;
 Again, PLEASE READ THE MANUAL PAGES.  Our developers have spent countless
 hours improving them so that they are clear and precise.
マニュアルページには、特に導入のためのエントリも幾つか用意されています。
:help|Unix初心者向けのエントリです。コマンドラインで''help''コマンドを実行した場合もこのエントリが表示されます。
:man|manコマンドの説明です。OpenBSDではmandocというプログラムによってマニュアルページのシステムが再実装されていますが、manコマンドの使い方は他のUnix系OSとほぼ同じです。
:afterboot|インストール直後にチェックを行ったほうがよい項目について解説しています。この文書の [[入門編>fg2:pagetop]] より詳しく網羅的な内容ですので、ご一読をお勧めします。
:intro|マニュアルページはカテゴリごとに章に別れていますが、その各章に関する説明です。例えば、
 man 1 intro
とすると、一般コマンドカテゴリについての説明が、
 man 5 intro
では、ファイル形式のカテゴリ全般についての説明が表示されます。

OpenBSDでは、マニュアルページの章立ては以下のようになっています;
|1    |一般コマンド                              |
|2    |システムコールとエラー番号                |
|3    |ライブラリ                                |
|4    |デバイスドライバ                          |
|5    |ファイル形式                              |
|6    |ゲーム                                    |
|7    |その他                                    |
|8    |システム保守・運用のためのコマンド        |
|9    |カーネル                                  |

各セクションのマニュアルの内容は現状のシステムに追従し続けており、常にアップデートと推敲が行われています。~
また他のUnix系OSでは4章(デバイスドライバ)などの章で、ほとんど情報が提供されていない実装系もありますが、OpenBSDではこのような情報も完備されており、例えばWi-Fiの設定のように使用するハードウェアに依存した設定情報が必要な場合も十分な情報を得ることができます。

///|TO BE REVISED|
#ref(河豚板ガイド/emacsinfo.png,around,right)
GNUプロジェクト由来のコマンドやEmacs上で動作するアプリケーションに関しては、Info形式のドキュメントが提供されている場合があります。~
Infoドキュメントを閲覧するには、infoコマンドを実行します。
>''【メモ】''~
''⇒''Emacsエディタを追加インストールしている環境では、InfoドキュメントはEmacsエディタから、''<Meta>-x info<Enter>''、あるいは''<Escape> x info<Enter>''と入力し、閲覧することができます。
#clear

マニュアルページやInfo以外にもアプリケーション固有のドキュメントがあります。
それらは主に次に挙げるディレクトリの下にあります;
-/usr/share/doc
-/usr/X11R6/share/doc
-/usr/local/share/doc
-/usr/local/share/gtk-doc

***システム上のファイル [#sd8aa942]
サーバやアプリケーションソフトなどの設定ファイルはすべて/etc以下に集約されています。~
パッケージ管理ツールports/packagesで追加されたソフトウェアは、/usr/local以下にインストールされますが、設定ファイルに関しては/etc以下に配置されます。X関連の設定ファイルについても同様です。

システムの動作ログは、/var/log以下にあります。唯一、cronのみが/var/cron/logというログファイルを作成します。

[[起動時の設定>fg1:bootsetup]] で説明した起動時に表示されるカーネルメッセージは、/var/run/dmesg.boot というファイルに記録されています。システム起動完了後はこのファイルの内容を閲覧することで、システム起動時の様子を調査することができます。

***インターネット上の情報
:http://www.openbsd.org/|プロジェクトによって運営されている公式サイト。[[OpenBSD全般に関する詳細なガイド>http://www.openbsd.org/faq/index.html]]や[[システムの更新情報>http://www.openbsd.org/errata72.html]]など、ウェブ上のOpenBSD関連情報の起点です。
:http://undeadly.org/ 「OpenBSD Journal」|OpenBSD関連のニュースサイト。その都度OpenBSDの旬の話題が取り上げられ、OpenBSD開発の最前線の様子なども知ることができます。以前、[[河豚板の紹介記事>http://undeadly.org/cgi?action=article&sid=20131210093950]]も投稿されました。
:メーリングリスト|[[公式に管理・運営されているメーリングリスト>http://www.openbsd.org/mail.html]]があります。また、これらのアーカイブサイトもあり、メーリングリストに加入しなくてもウェブ上での閲覧が可能です。

***書籍 [#y291b608]
作者の知る限り、OpenBSDユーザ向けに書かれた日本語の書籍は2015年現在出版されておりません。~
BSD系のUnix向けの書籍の中には、
-BSD HACKS ~ プロが使うテクニック&ツール100選 / Dru Lavigne著,桃井康成監修,林秀幸訳 / オライリー・ジャパン

など、部分的にOpenBSDについて言及されている書籍もあります。

英語の書籍に関しては[[公式サイトの記述>http://www.openbsd.org/books.html]]をご参照下さい。~
'''Absolute OpenBSD, 2nd Edition''' や '''The book of PF, 3rd Edition'''など、OpenBSD向けの書籍がいくつか出版されているようです。
#navi(河豚板ガイド)

Front page   New Page list Search Recent changes   Help   RSS of recent changes