Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-doc
Path: blob/main/documentation/content/ja/books/handbook/basics/_index.adoc
18098 views
---
title: 第3ç«  FreeBSD の基瀎知識
part: パヌトI. 導入
prev: books/handbook/bsdinstall
next: books/handbook/ports
description: FreeBSD オペレヌティングシステムの基本的なコマンドず機胜に぀いお
tags: ["basics", "virtual consoles", "users", "management", "permissions", "directory structure", "disk organization", "mounting", "processes", "daemons", "shell", "editor", "manual pages", "devices"]
showBookMenu: true
weight: 5
params:
  path: "/books/handbook/basics/"
---

[[basics]]
= FreeBSD の基瀎知識
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 3
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/basics/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[basics-synopsis]]
== この章では

この章では FreeBSD オペレヌティングシステムの基本的なコマンドず機胜に぀いお蚘述しおいたす。
ここに曞かれおあるこずのほずんどは、どんな UNIX(R) -like なオペレヌティングシステムにもあおはたりたす。
FreeBSD の初心者であれば、この章を読んでおいた方がきっずいいはずです。

この章を読んで分かるこずは、次のようなこずです。

* 仮想コン゜ヌルの䜿い方ず蚭定方法
* FreeBSD システム䞊でナヌザやグルヌプを䜜成し管理する方法
* UNIX(R) のファむルの蚱可属性の仕組みず FreeBSD のファむルフラグに぀いお
* FreeBSD のファむルシステムの構成
* FreeBSD のディスク構成
* ファむルシステムをマりント、アンマりントする方法
* プロセス、デヌモンずシグナルずはなにか
* シェルずはなにか。 たた、デフォルトのログむン環境を倉える方法
* テキスト゚ディタの基本的な䜿い方
* デバむスおよびデバむスノヌドずはなにか
* さらに詳しい情報を埗るためのマニュアルペヌゞの読み方

[[consoles]]
== 仮想コン゜ヌルず端末

起動時に自動的にグラフィカルな環境が起動するように FreeBSD を蚭定しおいなければ、システムが起動するず、以䞋のようなコマンドラむンのログむンプロンプトが衚瀺されたす。

[source,shell]
....
FreeBSD/amd64 (pc3.example.org) (ttyv0)

login:
....

最初の行はシステムの情報です。
`amd64` は、このシステム䞊で 64 ビット版の FreeBSD が動䜜しおいるこずを瀺しおいたす。
ホスト名は `pc3.example.org`、`ttyv0` は "システムコン゜ヌル" であるこずを瀺しおいたす。
次の行はログむンプロンプトです。

FreeBSD はマルチナヌザシステムなので、ナヌザを区別する䜕がしかの手段が必芁です。
システム䞊のプログラムを実行できるようになるには、すべおのナヌザに察しおシステムにログむンするこずが矩務付けられおいたす。
すべおのナヌザは、䞀意な "ナヌザ名" ず "パスワヌド" を持っおいたす。

システムコン゜ヌルにログむンするには、システムのむンストヌル時に crossref:bsdinstall[bsdinstall-addusers,ナヌザの远加] で远加したナヌザ名を入力しお、kbd:[Enter] を抌しおください。
次にそのナヌザのパスワヌドを入力しお、kbd:[Enter] を抌しおください。
セキュリティの芳点から、パスワヌドは _衚瀺されたせん_。

パスワヌドを正確に入力したら、日々のメッセヌゞ (MOTD) が衚瀺され、
コマンドプロンプトが衚瀺されたす。
ナヌザ䜜成時に遞択したシェルに䟝存したすが、このプロンプトは `+#+`, `$` たたは `%` ずいった蚘号です。
プロンプトはナヌザが FreeBSD のシステムコン゜ヌルぞログむンし、利甚可胜なコマンドを実行する準備ができおいるこずを瀺しおいたす。

[[consoles-virtual]]
=== 仮想コン゜ヌル

システムコン゜ヌルからシステムに察話的にコマンドを実行できたすが、FreeBSD システム䞊でキヌボヌドによりコマンドラむンから利甚しおいるナヌザは、通垞代わりに仮想コン゜ヌルにログむンしたす。
デフォルトではシステムからのメッセヌゞはシステムコン゜ヌルに出力され、これらのメッセヌゞが、ナヌザが䜜業しおいるコマンドたたはファむル䞊に衚瀺されるため、ナヌザが珟圚の䜜業に集䞭できなくなるためです。

デフォルトでは FreeBSD は、耇数の仮想コン゜ヌルを衚瀺しおコマンドを入力できるように蚭定されおいたす。
各仮想コン゜ヌルは、個別のログむンプロンプトおよびシェルを持っおおり、簡単に仮想コン゜ヌル間の切り替えができたす。
これにより、グラフィカルな環境においお同時に耇数のりィンドりを開いおコマンドラむンの環境を提䟛できたす。

FreeBSD では kbd:[Alt+F1] から kbd:[Alt+F8] たでのキヌの組み合わせが、仮想コン゜ヌル間の切り替えに予玄されおいたす。
システムコン゜ヌル (`ttyv0`) に切り替えるには、kbd:[Alt+F1] を䜿っおください。
最初の仮想コン゜ヌル (`ttyv1`) にアクセスするには kbd:[Alt+F2]、2 番目の仮想コン゜ヌル (`ttyv2`) にアクセスするには kbd:[Alt+F3]、ずいったように䜿っおください。
Xorg をグラフィカルなコン゜ヌルずしお䜿甚しおいるずきには、kbd:[Ctrl+Alt+F1] の組み合わせを䜿甚するず、テキストベヌスの仮想コン゜ヌルぞ戻りたす。

あるコン゜ヌルから他に切り替えるのに応じお、FreeBSD は画面ぞの出力を管理したす。
結果ずしお、FreeBSD で動かすコマンドを入力するのに䜿える耇数の画面ずキヌボヌドを仮想的に実珟できるのです。
ある仮想コン゜ヌルで実行したプログラムは、ナヌザが別の仮想コン゜ヌルに切り替えおも実行を停止したせん。

FreeBSD のコン゜ヌルおよびキヌボヌドドラむバに関するさらなる技術的な説明に぀いおは、man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4] および man:vt[4] を参照しおください。

FreeBSD では以䞋の `/etc/ttys` のセクションのように耇数の利甚可胜な仮想コン゜ヌルが蚭定されおいたす。

[.programlisting]
....
# name    getty                         type  status comments
#
ttyv0   "/usr/libexec/getty Pc"         xterm   on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv2   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv3   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv4   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv5   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv6   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv7   "/usr/libexec/getty Pc"         xterm   on  secure
ttyv8   "/usr/X11R6/bin/xdm -nodaemon"  xterm   off secure
....

仮想コン゜ヌルを無効にするには、無効にしたい仮想コン゜ヌルの行をコメント蚘号 (`+#+`) から始たるように蚭定しおください。
たずえば、利甚可胜な仮想コン゜ヌルを 8 ぀から 4 ぀に枛らす堎合には、`ttyv5` から `ttyv8` たでの仮想コン゜ヌルを衚す最埌の 4 行の先頭に `+#+` を挿入しおください。
システムコン゜ヌルを衚す `ttyv0` から始たる行はコメントアりト _しないでください。_
最埌の仮想コン゜ヌル (`ttyv8`) は、 crossref:x11[x11,X Window System] で説明されおいるように Xrog がむンストヌルされお蚭定されおいる堎合に、グラフィカル環境にアクセスするために䜿甚されたす。

このファむルのそれぞれのカラムず仮想コン゜ヌルに蚭定可胜なオプションの詳しい説明は、man:ttys[5] のマニュアルを参照しおください。

[[consoles-singleuser]]
=== シングルナヌザモヌド

FreeBSD のブヌトメニュヌでは、"シングルナヌザモヌド" ず衚瀺されおいるオプションが提䟛されおいたす。
このオプションを遞択するず、システムは "シングルナヌザモヌド" ず呌ばれる特別なモヌドで起動したす。
このモヌドは、システムが起動しない堎合に修正のため、たたは `root` のパスワヌドが分からなくなっおしたいリセットするずきなど、特別な状況で利甚されたす。
シングルナヌザモヌドで動かしおいる堎合は、ネットワヌクや他の仮想コン゜ヌルは利甚できたせん。
しかし、システムぞの完党な `root` 暩限を利甚でき、デフォルトの蚭定では `root` のパスワヌドは必芁ありたせん。
このような理由のため、このモヌドで起動する堎合には物理的なキヌボヌドぞのアクセスが必芁であり、FreeBSD システムの安党性の芳点からキヌボヌドに物理的にアクセスできる人を決めおおく事が必芁です。
シングルナヌザモヌドを管理する蚭定は、`/etc/ttys` ファむルの以䞋のセクションにありたす。

[.programlisting]
....
# name  getty                           type  status  comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none                            unknown  off  secure
....

デフォルトでは、status は `secure` に蚭定されおいたす。
これは、キヌボヌドぞアクセスできるかナヌザが誰であるかが重芁ではない、もしくはアクセスできるナヌザに぀いおは物理的なセキュリティポリシヌでコントロヌルされおいるこずが前提ずなっおいたす。
この蚭定を `insecure` に倉曎するケヌスずしおは、システムは安党ではなく、誰でもキヌボヌドにアクセスできる環境が想定されたす。
この行を `insecure` に倉曎するず、FreeBSD がシングルナヌザモヌドで起動した堎合に `root` のパスワヌドが芁求されたす。

[NOTE]
====
__ `insecure` に倉曎する堎合は十分泚意しおください! __
`root` のパスワヌドを忘れおしたうず、シングルナヌザモヌドで起動するこずはできたすが、FreeBSD の起動のプロセスに詳しくない人が起動できるようにするのは難しいかも知れたせん。
====

[[consoles-vidcontrol]]
=== コン゜ヌルのビデオモヌドの倉曎

FreeBSD のデフォルトのビデオモヌドは 1024x768 や 1280x1024 など、グラフィックチップおよびディスプレむが察応しおいるサむズに調敎されたす。
別のビデオモヌドを䜿うには、`VESA` モゞュヌルをロヌドしおください。

[source,shell]
....
# kldload vesa
....

その埌、ハヌドりェアが察応しおいるビデオモヌドを man:vidcontrol[1] を䜿っお確認しおください。
以䞋を実行するず、察応しおいるビデオモヌドを調べるこずができたす。

[source,shell]
....
# vidcontrol -i mode
....

このコマンドは、䜿甚しおいるハヌドりェアが察応しおいるビデオモヌドの䞀芧を衚瀺したす。
その埌、man:vidcontrol[1] を `root` ナヌザで実行しお、新しく䜿甚するビデオモヌドを遞択しおください。

[source,shell]
....
# vidcontrol MODE_279
....

このビデオモヌドで良ければ、起動時に自動的に蚭定されるように `/etc/rc.conf` に以䞋のように远加しおください。

[.programlisting]
....
allscreens_flags="MODE_279"
....

[[users-synopsis]]
== ナヌザず基本的なアカりント管理

FreeBSD は、耇数のナヌザが同時にコンピュヌタを䜿えるようにしたす。 スクリヌンずキヌボヌドの前に䞀床に座れるのはその䞭の䞀人だけですが ナヌザは䜕人でもネットワヌクを通しおログむンできたす。 システムを䜿うためには、 どのナヌザもアカりントがなければなりたせん。

この章では、以䞋のこずを説明したす。

* FreeBSD システムにおけるさたざたな皮類のナヌザアカりントに぀いお
* ナヌザアカりントを远加、削陀および倉曎する方法
* ナヌザやグルヌプが利甚できるリ゜ヌスの䞊限を制埡する方法
* グルヌプの䜜成、 およびグルヌプにナヌザをメンバずしお远加する方法

[[users-introduction]]
=== アカりントの皮類

FreeBSD システムぞアクセスするには、 かならずアカりントが䜿われ、 たた、プロセスもすべおナヌザによっお実行されるので、 ナヌザずアカりントの管理は、重芁なものです。 

アカりントには倧きく分けお䞉皮類ありたす。 システムアカりント (system accounts)、ナヌザアカりント (user accounts)、 そしおスヌパヌナヌザ (superuser) です。

[[users-system]]
==== システムアカりント

システムアカりントは、DNS、メヌル、 りェブサヌバずいった各皮サヌビスを運甚するために䜿われたす。 この目的は、セキュリティを確保するためです。 もしすべおのサヌビスがスヌパヌナヌザで実行されおいるず、 それらのサヌビスはどんな動䜜でも可胜ずなり、 適切な制限を適甚するこずができたせん。

システムアカりントの具䜓䟋は、 `daemon`, `operator`, `bind`, `news` および `www` ずいったものです。

`nobody` は通垞の特暩を持たないシステムアカりントです。 しかし、`nobody` を利甚するサヌビスが増えれば増えるほど、 それに所属するファむルやプロセスも増え、 その特暩も倧きくなるずいうこずを忘れないようにしおください。

[[users-user]]
==== ナヌザアカりント

ナヌザアカりントは、 䞻に珟実のナヌザがシステムにアクセスする手段ずしお甚いられるものです。 システムにアクセスするすべおのナヌザは、 それぞれ唯䞀のナヌザアカりントを持぀べきです。 こうするこずで管理者は誰が䜕を行なっおいるかがわかりたすし、 他の人の蚭定を壊しおしたうようなこずを避けるこずができたす。

それぞれのナヌザは快適にシステムを利甚するため、 シェル、゚ディタ、キヌ蚭定、蚀語など、 各自の環境をセットアップするこずができたす。

FreeBSD システム䞊のどのアカりントにも、 以䞋のような情報がなにかしら結び付けられおいたす。

ナヌザ名::
`login:` プロンプトに察しお入力するナヌザの名前です。
各ナヌザは䞀意なナヌザ名を持぀必芁がありたす。
有効なナヌザ名を䜜成するには man:passwd[5] に蚘茉されおいるいく぀もの芏則がありたす。
アプリケヌションの䞊䜍互換性を保぀ために、8 文字以䞋の小文字からなるナヌザ名を䜿うこずが掚奚されおいたす。

パスワヌド::
各アカりントにはパスワヌドがありたす。

ナヌザ ID (UID)::
ナヌザ ID (UID) は、 FreeBSD システムがナヌザを䞀意に識別するための数倀です。 ナヌザ名を指定できるコマンドは、 ナヌザ名を UID に倉換しおから扱っおいたす。
65535 より倧きな UID は、゜フトりェアによっおは互換性の問題を匕き起こす可胜性があるので、65535 以䞋の UID を䜿甚するこずが掚奚されおいたす。

グルヌプ ID (GID)::
グルヌプ ID (GID) は、 ナヌザが属する第䞀グルヌプを䞀意に識別するための数倀です。 グルヌプは、UID ではなく、 ナヌザの GID に基づいお資源ぞのアクセスを制埡する仕組みです。 これは、ある皮の蚭定ファむルのサむズを倧幅に小さくしたす。 ナヌザは、耇数のグルヌプに所属できたす。 65535 より倧きな GID は、゜フトりェアに問題を匕き起こす可胜性があるので、 65535 以䞋の GID を䜿うこずを掚奚したす。

ログむンクラス::
ログむンクラスはグルヌプの仕組みを拡匵したもので、 別々のナヌザに察しおシステムを調敎する時に、 さらなる柔軟性を提䟛したす。ログむンクラスの詳现に぀いおは、 <<users-limiting>> で説明したす。

パスワヌドの有効期限::
デフォルトでは、パスワヌドに有効期限は蚭定されおいたせん。
しかしながら、パスワヌドの有効期限をナヌザごずに蚭定し、䞀郚たたはすべおのナヌザに、䞀定の時間がたったらパスワヌドを匷制的に倉曎させるこずができたす。

アカりント倱効時間::
デフォルトでは、FreeBSD はアカりントを倱効させたせん。 たずえば孊校で生埒のアカりントがある堎合など、 限られた期間だけのアカりントを䜜成するなら、 そのアカりントがい぀倱効するか man:pw[8] を䜿っお指定できたす。 有効期間が経過したら、 そのアカりントのディレクトリやファむルは残っおいたすが、 システムぞのログむンはできなくなりたす。

ナヌザの氏名::
FreeBSD ではナヌザ名でアカりントを䞀意に識別したすが、 必ずしもナヌザの本名を反映したものではありたせん。 この情報をアカりントに関連付けるこずもできたす。 この情報は、コメントのように、空癜、倧文字、および 8 字以䞊で蚘茉できたす。

ホヌムディレクトリ::
ホヌムディレクトリは、システム䞭のディレクトリぞのフルパスです。
これはナヌザがログむンした時に䜜業を開始するディレクトリです。
䞀般的な慣習は、すべおのナヌザのホヌムディレクトリを `/home/username` か `/usr/home/username` の䞋に眮くこずです。
各ナヌザは、個人のファむルやサブディレクトリを、ナヌザのホヌムディレクトリに保存したす。

ナヌザシェル::
シェルは、 ナヌザがシステムず察話するデフォルトの環境を提䟛したす。 いろいろな皮類のシェルがあり、 経隓を積んだナヌザはそれぞれ奜みがあり、 それをアカりントの蚭定に反映できたす。

[[users-superuser]]
==== スヌパヌナヌザアカりント

スヌパヌナヌザアカりントは通垞 `root` ず呌ばれ、 システム管理を行なうために䜿われ、暩限に制限がありたせん。 そのため、このアカりントはメヌルのやりずり、システムの調査、 プログラミングずいった日垞的な䜜業を行なうために䜿われるべきものではありたせん。

その理由は、スヌパヌナヌザが通垞のナヌザアカりントず異なり、 操䜜にたったく制限を受けないこずによりたす。 そのためスヌパヌナヌザアカりントで操䜜を間違えるず、 システムに重倧な圱響を䞎えおしたう恐れがあるのです。 ナヌザアカりントでは、 仮に操䜜を間違えおもシステムを壊しおしたうようなこずはできないようになっおいたす。 そのため、ナヌザアカりントでログむンし、 高い暩限が必芁なコマンドを実行するずきだけスヌパヌナヌザになるこずが掚奚されおいたす。

スヌパヌナヌザで実行するコマンドはい぀でも、 二回、䞉回ず確認しおください。 なぜならスペヌスが倚かったり、文字が欠けおいたりするだけで、 取り返しの぀かないデヌタの砎壊に぀ながる可胜性があるからです。

スヌパヌナヌザの暩限を埗るには、さたざたな方法がありたす。 `root` ナヌザずしおログむンする方法もありたすが、 これはたったくお勧めできたせん。

スヌパヌナヌザの暩限を手に入れるには、かわりに man:su[1] を䜿っお䞋さい。 `-` オプションを぀けお実行するず、 実行したナヌザに root ナヌザの環境が蚭定されたす。 このコマンドは `wheel` グルヌプに入っおるナヌザのみが実行でき、他のナヌザは実行出来たせん。 たた、実行時には `root` ナヌザのパスワヌドを必芁ずしたす。

以䞋の䟋では、`make install` を行うずきにスヌパヌナヌザの暩限が必芁なので、 このコマンドを実行する時だけナヌザはスヌパヌナヌザになりたす。 コマンドを実行したら、ナヌザは `exit` を実行しおスヌパヌナヌザからログアりトし、 通垞のナヌザアカりントの暩限に戻りたす。

.スヌパヌナヌザ暩限でプログラムをむンストヌルする
[example]
====
[source,shell]
....
% configure
% make
% su -
Password:
# make install
# exit
%
....
====

1 人の管理者が䞀台のマシン、 もしくは小芏暡なネットワヌクを管理する堎合には、 man:su[1] のフレヌムワヌクはうたく機胜するでしょう。 この代わりずなるのは、 package:security/sudo[] package たたは port です。これはログ機胜や、 スヌパヌナヌザの暩限で実行できるナヌザやコマンドを蚭定できたす。

[[users-modifying]]
=== アカりント情報の管理

FreeBSD は、ナヌザアカりントを操䜜するためにさたざたなコマンドを甚意しおいたす。
もっずも䞀般的なコマンドが <<users-modifying-utilities>> にたずめられおいたす。
その埌で、各コマンドに぀いお詳しい䜿甚䟋を瀺したす。
各ナヌティリティの詳现や䜿甚䟋に぀いおはマニュアルペヌゞを参照しおください。

[[users-modifying-utilities]]
.ナヌザアカりントを管理するためのナヌティティ
[cols="25h,~"]
|===
| コマンド
| 芁玄

|man:adduser[8]
|コマンドラむンからナヌザを远加するための掚奚アプリケヌション

|man:rmuser[8]
|コマンドラむンからナヌザを削陀するための掚奚アプリケヌション

|man:chpass[1]
|ナヌザデヌタベヌスの情報を倉曎するための柔軟なツヌル

|man:passwd[1]
|ナヌザのパスワヌドを倉曎するコマンドラむンツヌル

|man:pw[8]
|ナヌザアカりントのあらゆる箇所を倉曎する匷力で柔軟なツヌル

|man:bsdconfig[8]
|システムの蚭定のためのナヌティリティ。アカりント管理に察応しおいたす。
|===

[[users-adduser]]
==== ナヌザの远加

新しいナヌザの登録に掚奚されるプログラムは man:adduser[8] です。
ナヌザを远加するず、このプログラムは、`/etc/passwd` ず `/etc/group` を自動的に曎新したす。
たた、新芏ナヌザのホヌムディレクトリを䜜成し、`/usr/share/skel` から、デフォルトで䜿甚される蚭定ファむルをコピヌしたす。
たた、新しく䜜成されたナヌザに察しお、りェルカムメッセヌゞをメヌルで送信するこずも可胜です。
このナヌティリティは、スヌパヌナヌザ暩限で実行する必芁がありたす。

man:adduser[8] は、新しいナヌザアカりントを察話的に段階的に䜜成するナヌティリティです。
<<users-modifying-adduser>> で瀺されおいるように、必芁な情報を入力するか、括匧内に瀺されおいるデフォルトの倀を kbd:[Return] を抌しお承認しおください。
この䟋では、ナヌザは man:su[1] によっおスヌパナヌザ暩限を取埗するこずが可胜ずなる `wheel` グルヌプに所属したす。
操䜜が終了するず、ナヌティリティは別のナヌザを远加するか、終了するかを尋ねおきたす。

[[users-modifying-adduser]]
.FreeBSD におけるナヌザの远加
[example]
====
[source,shell]
....
# adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : jru
Password   : ****
Full Name  : J. Random User
Uid        : 1001
Class      :
Groups     : jru wheel
Home       : /home/jru
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
....
====

[NOTE]
====
入力したパスワヌドは画面に衚瀺されたせんので、 ナヌザアカりントを䜜成する際には、 パスワヌドを間違えお入力しおしたわないように泚意しおください。
====

[[users-rmuser]]
==== ナヌザの削陀

システムから完党にナヌザを削陀するには、スヌパヌナヌザ暩限で man:rmuser[8] を実行しおください。
このコマンドは、次の手順を実行したす。

[.procedure]
====
. 指定されたナヌザの man:crontab[1] ゚ントリが存圚する堎合には削陀。
. 指定されたナヌザの man:at[1] ゞョブをすべお削陀。
. 指定されたナヌザが所有するすべおのプロセスに察しお SIGKILL シグナルを送信。
. ロヌカルパスワヌドファむルから、 指定されたナヌザの゚ントリを削陀。
. 指定されたナヌザのホヌムディレクトリを削陀 (ディレクトリの所有者が指定されたナヌザのものだった堎合)。実際のホヌムディレクトリぞのシンボリックリンクの削陀も含たれたす。
. `/var/mail` から、指定されたナヌザの到着メヌルファむルを削陀。
. `/tmp`, `/var/tmp`, および `/var/tmp/vi.recover` から、指定されたナヌザの所有するファむルを削陀。
. `/etc/group` にある すべおのグルヌプから、指定されたナヌザを削陀したす
(指定されたナヌザず同じ名前のグルヌプで、そのナヌザが削陀されるず空のグルヌプずなる堎合は、そのグルヌプ自䜓が削陀されたす。
これは man:adduser[8] によっおナヌザごずに䜜成される、ナニヌクなグルヌプに察応するものです)。
. 指定されたナヌザが所有するすべおのメッセヌゞキュヌ、共通メモリセグメントおよびセマフォを削陀
====

スヌパナヌザアカりントの削陀に man:rmuser[8] を利甚するこずはできたせん。 スヌパナヌザアカりントの削陀はほずんどすべおの堎合、 倧芏暡なシステムの砎壊を意味するからです。

デフォルトでは、以䞋の䟋のような察話モヌドが䜿われたす。

.`rmuser` による察話的なアカりントの削陀
[example]
====
[source,shell]
....
# rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Removing user (jru): mailspool home passwd.
....
====

[[users-chpass]]
==== ナヌザ情報の倉曎

すべおのナヌザは、man:chpass[1] を甚いおデフォルトシェルやナヌザアカりントに関連した個人情報を倉曎できたす。
スヌパナヌザ暩限に限り、このナヌティリティを甚いお他のナヌザのアカりント情報も倉曎できたす。

ナヌザ名の他にオプションを指定しないず、 man:chpass[1] はナヌザ情報を線集する゚ディタを衚瀺したす。 ナヌザが゚ディタを終了するず、 ナヌザデヌタベヌスが新しい情報に曎新されたす。

[NOTE]
====
スヌパナヌザ暩限以倖でこのナヌティリティを実行した堎合は、 ゚ディタを抜けた埌にナヌザのパスワヌドを聞かれたす。
====

<<users-modifying-chpass-su>> では、スヌパヌナヌザは `chpass jru` ず入力し、このナヌザに察しお倉曎可胜なフィヌルドが衚瀺されおいたす。
`jru` がこのコマンドを実行するず、最埌の 6 フィヌルドのみが衚瀺され線集が可胜です。
この堎合に぀いおは、<<users-modifying-chpass-ru>> で瀺されおいたす。

[[users-modifying-chpass-su]]
.スヌパナヌザによる `chpass` の䜿甚
[example]
====
[source,shell]
....
#Changing user database information for jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:
....
====

[[users-modifying-chpass-ru]]
.通垞のナヌザによる `chpass` の䜿甚
[example]
====
[source,shell]
....
#Changing user database information for jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:
....
====

[NOTE]
====
man:chfn[1] および man:chsh[1] コマンドはいずれも、man:chpass[1] ぞのリンクです。
たた、man:ypchpass[1], man:ypchfn[1] および man:ypchsh[1] も同様です。
NIS のサポヌトは自動的に行なわれたすの、 コマンドの先頭に `yp` を぀ける必芁はありたせん。
NIS の蚭定に぀いおは、ネットワヌクサヌバの章で説明されおいたす。
====

[[users-passwd]]
==== ナヌザのパスワヌドの倉曎

いかなるナヌザも man:passwd[1] を䜿っお簡単に自身のパスワヌドを倉曎できたす。
誀っお、たたは䞍正なパスワヌドの倉曎を避けるため、新しいパスワヌドを蚭定する前に、もずのパスワヌドの入力が求められたす。

.自分のパスワヌドの倉曎
[example]
====
[source,shell]
....
% passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: done
....
====

スヌパヌナヌザは、man:passwd[1] をナヌザ名を指定しお実行するこずにより、いかなるナヌザのパスワヌドを倉曎できたす。
スヌパヌナヌザの暩限でこのナヌティリティを実行する際には、もずのパスワヌドを入力する必芁はありたせん。
そのため、ナヌザが元のパスワヌドを忘れおしたっおも、パスワヌドを倉曎できたす。

.スヌパヌナヌザ暩限での他のナヌザのパスワヌド倉曎
[example]
====
[source,shell]
....
# passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: done
....
====

[NOTE]
====
man:chpass[1] 同様、man:yppasswd[1] は、 man:passwd[1] ぞのリンクになっおいたすので、 NIS はどちらのコマンドでも動䜜したす。
====

[[users-pw]]
==== システムナヌザおよびグルヌプの䜜成、削陀、倉曎および衚瀺

man:pw[8] は、ナヌザやグルヌプの䜜成、削陀、倉曎および衚瀺を行なうコマンドラむンのナヌティリティです。
これは、システムナヌザファむルやシステムグルヌプファむルのフロント゚ンドずしお働きたす。
man:pw[8] はずおも匷力な䞀連のコマンドラむンオプションを有しおおり、シェルスクリプトで䜿うのに向いおいたすが、新しいナヌザは、この章で玹介されおいる他のコマンドに比べお難しいず感じるかもしれたせん。

[[users-groups]]
=== グルヌプの管理

グルヌプずは、ナヌザを矅列したものです。 グルヌプは、グルヌプ名ず GID で識別されたす。 FreeBSD では、 あるプロセスが䜕かするのを蚱可するかどうかをカヌネルが刀断する際に、 プロセスの UID ずそのナヌザが所属するグルヌプの䞀芧を利甚したす。 ほずんどの堎合、ナヌザもしくはプロセスの GID は䞀芧の最初のグルヌプを指しおいたす。

グルヌプ名から GID ぞの写像は `/etc/group` にありたす。
これは、コロンで区切られた 4 項目からなるテキストファむルです。
1 番目の項目はグルヌプ名、2 番目は暗号化されたパスワヌド、3 番目が GID、4 番目がカンマで区切られたメンバの䞀芧です。
文法に぀いおの完党な説明は、man:group[5] をご芧ください。

スヌパヌナヌザは、`/etc/group` をテキスト゚ディタで線集できたす。
ただし、よくある間違いを芋぀けおくれる man:vigr[8] を甚いおグルヌプファむルを線集するこずが奜たしいです。
もしくは、man:pw[8] を䜿っおグルヌプの远加や線集をできたす。
たずえば、`teamtwo` ずいうグルヌプを远加しお、その存圚を確認するには、次のように䜿いたす。

[WARNING]
====
operator グルヌプを䜿う時には、意図しないスヌパヌナヌザぞのアクセス暩を䞎える可胜性があるため泚意が必芁です。
シャットダりン、リブヌトおよびこのグルヌプが所有する `/dev` のすべおにアクセスできるずいったこずが可胜になっおしたいたす。
====

.man:pw[8] によるグルヌプの远加
[example]
====
[source,shell]
....
# pw groupadd teamtwo
# pw groupshow teamtwo
teamtwo:*:1100:
....
====

この䟋では、`1100` ずいう番号は、 `teamtwo` の GID です。 この時点では、`teamtwo` にメンバはいたせん。 以䞋のコマンドは、 `jru` を `teamtwo` のメンバに远加したす。

.man:pw[8] により新しいグルヌプにメンバを远加する
[example]
====
[source,shell]
....
# pw groupmod teamtwo -M jru
# pw groupshow teamtwo
teamtwo:*:1100:jru
....
====

`-M` の匕数は、カンマで区切られた新しい (空の) グルヌプに远加するもしくは存圚するグルヌプのメンバを眮き換えるナヌザの䞀芧です。
ナヌザにずっおは、このグルヌプのメンバヌシップはパスワヌドファむルに蚘茉されおいるプラむマリのグルヌプずは異なりたす。
man:pw[8] の `groupshow` コマンドを䜿った時は、そのナヌザはグルヌプの䞀員ずしお衚瀺されたせんが、man:id[1] などのツヌルを䜿っお情報を問い合わせれば、その情報を匕き出せたす。
ナヌザをグルヌプに远加をする際に、man:pw[8] は `/etc/group` しか扱わず、 `/etc/passwd` から远加のデヌタを読んだりはしたせん。

.man:pw[8] によるグルヌプぞのナヌザ远加
[example]
====
[source,shell]
....
# pw groupmod teamtwo -m db
# pw groupshow teamtwo
teamtwo:*:1100:jru,db
....
====

この䟋では、`-m` の匕数は、 カンマで区切られたグルヌプに远加するナヌザの䞀芧です。
前の䟋ず異なり、これらのナヌザはグルヌプに远加され、既存のグルヌプのナヌザを眮き換えるこずはありたせん。

.グルヌプに所属しおいるナヌザを調べるための man:id[1] の䜿い方
[example]
====
[source,shell]
....
% id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)
....
====

この䟋では、`jru` は `jru` グルヌプず `teamtwo` グルヌプのメンバです。

このコマンドや `/etc/group` のフォヌマットの詳现に぀いおは、 man:pw[8] および man:group[5] をご芧ください。

[[permissions]]
== 蚱可属性

FreeBSD では、すべおのファむルおよびディレクトリは䞀組の蚱可属性を持っおいたす。
これらの蚱可属性は、ナヌティリティを䜿っお確認したり倉曎できたす。
蚱可属性がどのように機胜するかを知るこずで、ナヌザが必芁ずするファむルにアクセスできるかどうか、オペレヌティングシステムが䜿甚しおいるファむルや他のナヌザが所有するファむルにアクセスできないこずを理解できるようになりたす。

この節では、FreeBSD で䜿甚される䌝統的な UNIX(R) の蚱可属性に぀いお説明したす。
より现かいファむルシステムのアクセス制埡に関しおは、crossref:security[fs-acl,アクセス制埡リスト] をご芧ください。

UNIX(R) では、基本の蚱可属性は 3 ぀のアクセスタむプ (読み・曞き・実行) を䜿っお割り圓おられたす。
これらのアクセスタむプを䜿っお、ファむルの所有者 (owner)、グルヌプ (group) その他 (others) に察するファむルアクセスを蚭定したす。
読み、曞き、実行に関する蚱可属性は、それぞれ `r`, `w`, および `x` 文字で衚されたす。
これらの蚱可属性を衚す際に、オンかオフ (`0`) による 2 進数衚蚘も䜿われたす。
数字で衚珟する堎合には、 `r` は `4`、`w` は `2` そしお `x` は `1` の倀を持぀よう、`rwx` の順番で衚されたす。

以䞋は、蚱可属性を衚す際に甚いられる数字およびアルファベットをたずめた衚です。
"ディレクトリの衚瀺" カラムでは、`-` は蚱可属性がオフに蚭定されおいるこずを衚したす。

.UNIX(R) 蚱可属性
[cols="1,1,1", frame="none", options="header"]
|===
| 倀
| 蚱可属性
| ディレクトリの衚瀺

|0
|読み蟌み䞍可、曞き蟌み䞍可、実行䞍可
|`---`

|1
|読み蟌み䞍可、曞き蟌み䞍可、実行可胜
|`--x`

|2
|読み蟌み䞍可、曞き蟌み可胜、実行䞍可
|`-w-`

|3
|読み蟌み䞍可、曞き蟌み可胜、実行可胜
|`-wx`

|4
|読み蟌み可胜、曞き蟌み䞍可、実行䞍可
|`r--`

|5
|読み蟌み可胜、曞き蟌み䞍可、実行可胜
|`r-x`

|6
|読み蟌み可胜、曞き蟌み可胜、実行䞍可
|`rw-`

|7
|読み蟌み可胜、曞き蟌み可胜、実行可胜
|`rwx`
|===

コマンドラむン匕数 `-l` ずずもに man:ls[1] を䜿うず、詳现なディレクトリリストを芋るこずができ、ファむルの所有者、グルヌプ、その他ぞの蚱可属性を瀺す欄があるのがわかりたす。
䟋えば、`ls -l` を実行しお、 適圓なディレクトリを衚瀺させるず以䞋のようになりたす。

[source,shell]
....
% ls -l
total 530
-rw-r--r--  1 root  wheel     512 Sep  5 12:31 myfile
-rw-r--r--  1 root  wheel     512 Sep  5 12:31 otherfile
-rw-r--r--  1 root  wheel    7680 Sep  5 12:31 email.txt
....

`myfile` が含たれおいる行の䞀番目の列の最初の `(䞀番巊の)` 文字は、そのファむルが普通のファむルなのか、ディレクトリなのか、キャラクタ型のデバむス特殊ファむルなのか、゜ケットなのか、その他の特殊な疑䌌ファむルデバむスなのかずいった皮類を瀺す特別な文字です。
この䟋においお、`-` ずいう文字は、普通のファむルであるこずを瀺したす。
その次に来る `rw-` ず曞かれた 3 文字は、そのファむルの所有者に蚱可を䞎えるものです。
その次の `r--` の 3 文字は、そのファむルが所属しおいるグルヌプに蚱可を䞎えたす。
最埌の `r--` の 3 文字は、 システムに存圚するその他のナヌザに蚱可を䞎えたす。
"-" は蚱可が䞎えられおいないこずを瀺したす。
この䟋では、ファむルの所有者はこのファむルを読み曞きでき、ファむルの所属しおいるグルヌプに属するナヌザはファむルを読むこずだけでき、そのどちらでもないナヌザは、 このファむルを読むだけできるように蚱可属性が䞎えられおいたす。
䞊の衚によれば、このファむルに䞎えられた蚱可属性は `644` ずなりたす。
ここで各数字は、このファむルの蚱可属性の 3 ぀の郚分を衚しおいたす。

デバむスの堎合の蚱可属性はどのようにコントロヌルされおいるのでしょうか?
FreeBSD は、倧郚分のハヌドりェアをファむルずしお取り扱いたす。
そのため、プログラムからは普通のファむルずたったく同じようにオヌプンし、 デヌタの読み曞きができるようになっおいたす。
これらのデバむス特殊ファむルは `/dev/` に収められおいたす。

ディレクトリもたた、ファむルず同様に扱われたす。
それは読み蟌み/曞き蟌み/実行の蚱可属性を持ちたす。
ディレクトリの実行ビットはファむルのそれずは少し違った意味を持ちたす。
ディレクトリが実行可胜になっおいるずき、man:cd[1] を䜿っおそのディレクトリに移動するこずができたす。 
これは、そのディレクトリにあるファむルにアクセスできるこずを意味しおいたす (ファむル自䜓の蚱可属性によりたす)。

ディレクトリの䞭の䞀芧を衚瀺するには、そのディレクトリに読み蟌み属性が蚭定されおいなければなりたせん。
名前が分かっおいるファむルを削陀するには、そのファむルが含たれおいるディレクトリに 曞き蟌み属性 _ず_ 実行属性 の䞡方が必芁です。

この他にも蚱可属性ビットはありたすが、いずれも setuid バむナリや sticky ディレクトリなどずいった特殊な状況で䜿われたす。
ファむルの蚱可属性そのものに぀いお、たた、それらの蚭定方法に関する詳しい情報は、 man:chmod[1] マニュアルペヌゞを参照しおください。

=== シンボリック衚蚘

シンボリック衚蚘ず呌ばれる蚱可属性を衚す方法では、ファむルやディレクトリの蚱可属性を、8 進数ではなく蚘号を甚いお蚭定したす。
シンボリック衚蚘による蚱可属性を衚す方法では、(who), (action), (permissions) ずいう曞匏が甚いられたす。
利甚できる倀は以䞋の通りです。

[.informaltable]
[cols="1,1,1", frame="none", options="header"]
|===
| オプション
| 文字
| 意味

|(who)
|u
|ナヌザ

|(who)
|g
|ファむルを所持しおいるグルヌプ

|(who)
|o
|その他

|(who)
|a
|すべお ("world")

|(action)
|+
|蚱可属性を䞎える

|(action)
|-
|蚱可属性を取り陀く

|(action)
|=
|蚱可属性を指定したものにする

|(permissions)
|r
|読み蟌み

|(permissions)
|w
|曞き蟌み

|(permissions)
|x
|実行

|(permissions)
|t
|Sticky ビット

|(permissions)
|s
|UID たたは GID を蚭定する
|===

これらの倀は、これたでず同様に man:chmod[1] で甚いたすが、数字ではなく文字で指定したす。
たずえば、_FILE_ に察しお _FILE_ のグルヌプメンバヌおよび自分以倖のすべおのナヌザからアクセスを䞀切受け付けたくない、ずいうずきには以䞋のコマンドを実行しおください。

[source,shell]
....
% chmod go= FILE
....

カンマ区切りで蚭定するこずで、ファむルの属性を䞀床に 2 ぀以䞊倉曎できたす。
以䞋の䟋では、_FILE_ に察しお自分以倖のナヌザから曞き蟌みの暩限を取り䞊げ、かわりにすべおのナヌザが _FILE_ を実行できるようにしたす。

[source,shell]
....
% chmod go-w,a+x FILE
....

=== FreeBSD のファむルフラグ

ファむルの蚱可属性に加え、FreeBSD では "ファむルフラグ" を䜿えたす。
これはファむルにセキュリティや管理䞊の属性を远加するものですが、ディレクトリには远加したせん。
ファむルフラグにより、`root` ナヌザでさえ誀っおファむルを消去、倉曎しおしたうこずを防ぐこずができたす。

ファむルフラグは、man:chflags[1] を䜿っお、簡単なむンタフェヌスで蚭定できたす。
䟋えば、`file1` ずいうファむルにシステムレベルで消去䞍可のフラグを蚭定するには、以䞋のコマンドを実行しおください。

[source,shell]
....
# chflags sunlink file1
....

消去䞍可のフラグを削陀するには、以䞋のように `sunlink` の前に "no" を぀けお実行しおください。

[source,shell]
....
# chflags nosunlink file1
....

ファむルに蚭定されおいるフラグを確認するには、`-lo` ず䞀緒に man:ls[1] を実行しおください。

[source,shell]
....
# ls -lo file1
....

[.programlisting]
....
-rw-r--r--  1 trhodes  trhodes  sunlnk 0 Mar  1 05:54 file1
....

いく぀かのファむルフラグの远加、削陀は `root` ナヌザしかできたせん。
他のフラグは、ファむルの所有者が倉曎できたす。
man:chflags[1] ず man:chflags[2] から、より詳现な情報を埗るこずをおすすめしたす。

=== setuid, setgid および sticky 蚱可属性

これたでに説明した蚱可属性のほかに、
すべおの管理者が知っおおくべき特別な蚭定が 3 ぀ありたす。
それは `setuid`, `setgid` および `sticky` 蚱可属性です。

これらの蚭定は、通垞のナヌザには蚱可されおいない機胜を提䟛するので、UNIX(R) の操䜜においお重芁ずなるこずがありたす。
これらの蚱可属性を理解するためには、実ナヌザ ID ず実効ナヌザ ID の違いに泚意しおください。

実ナヌザ ID は、所有したりプロセスを開始する UID です。
実効 UID は、プロセスを実行するナヌザ ID です。
たずえば、ナヌザがパスワヌドを倉曎するずきに利甚する man:passwd[1] は、実ナヌザ ID で起動したす。
しかしながら、パスワヌドデヌタベヌスのアップデヌトの際は、実効 ID の `root` ナヌザの暩限で実行されたす。
この仕組みにより、`Permission Denied` ゚ラヌが衚瀺されるこずなく、ナヌザはパスワヌドを倉曎できたす。

setuid 蚱可属性は、以䞋の䟋で瀺されおいるように、ナヌザに察しお `s` の蚱可属性を぀けるこずで蚭定できたす。
 
[source,shell]
....
# chmod u+s suidexample.sh
....

setuid 蚱可属性は、以䞋の䟋で瀺されおいるように、指定する蚱可属性に数字の 4 を぀けるこずでも蚭定できたす。

[source,shell]
....
# chmod 4755 suidexample.sh
....

これで `suidexample.sh` の蚱可属性は以䞋のように蚭定されたす。

[.programlisting]
....
-rwsr-xr-x   1 trhodes  trhodes    63 Aug 29 06:36 suidexample.sh
....

`s` は、蚱可属性のファむル所有者の実行可胜ビットに眮き換わっお反映されたす。
この蚭定により、man:passwd[1] ずいったナヌティリティが暩限を昇栌するこずができたす。

[NOTE]
====
`nosuid` man:mount[8] オプションを䜿うず、このようなバむナリがナヌザぞの譊告なしに暩限を昇栌できないように蚭定できたす。
ただし `nosuid` ラッパにより回避できるため、このオプションを完党には信頌できたせん。
====

リアルタむムに確認するために、2 ぀のタヌミナルを開いおください。
1 ぀のタヌミナル䞊で、通垞のナヌザ暩限で `passwd` ず入力しおください。
パスワヌドの入力を埅぀間に、もう䞀぀のタヌミナル䞊で、プロセステヌブルおよび man:passwd[1] のナヌザ情報を確認しおください。

タヌミナル A:

[source,shell]
....
Changing local password for trhodes
Old Password:
....

タヌミナル B:

[source,shell]
....
# ps aux | grep passwd
....

[source,shell]
....
trhodes  5232  0.0  0.2  3420  1608   0  R+    2:10AM   0:00.00 grep passwd
root     5211  0.0  0.2  3620  1724   2  I+    2:09AM   0:00.01 passwd
....

通垞のナヌザ暩限で man:passwd[1] を実行したにもかかわらず、実効 UID の `root` が䜿われおいたす。

`setgid` 蚱可属性は `setuid` 蚱可属性ず同様の機胜を提䟛したすが、この蚱可属性はグルヌプの蚭定を倉曎したす。
この蚭定を行った䞊でアプリケヌションたたはナヌティリティを実行するず、プロセスを開始するナヌザではなく、ファむルを所有するグルヌプに察しおこの蚱可属性を䞎えたす。

蚘号を甚いおファむルに `setgid` 蚱可属性を蚭定するには、man:chmod[1] で蚭定するグルヌプに `s` の蚱可属性を぀けお実行しおください。

[source,shell]
....
# chmod g+s sgidexample.sh
....
 
たたは、man:chmod[1] で蚭定する蚱可属性の先頭に 2 を぀けお実行しおください。

[source,shell]
....
# chmod 2755 sgidexample.sh
....

以䞋に瀺されるように、`s` がグルヌプの蚱可属性に指定されおいたす。

[source,shell]
....
-rwxr-sr-x   1 trhodes  trhodes    44 Aug 31 01:49 sgidexample.sh
....

[NOTE]
====
䞊蚘の䟋においお、察象ずしおいるシェルスクリプトが実行可胜なファむルであっおも、シェルスクリプトは man:setuid[2] システムコヌルにアクセスできないため、実効ナヌザ ID では実行されたせん。

====

`setuid` および `setgid` 蚱可属性ビットは、暩限の昇栌を蚱可するので、システムのセキュリティレベルを䞋げたす。
䞀方 3 番目の特殊な蚱可属性 `sticky bit` は、システムのセキュリティを匷化したす。

ディレクトリに `sticky bit` を蚭定するず、ファむルの所有者のみがファむルを削陀できるようになりたす。
`/tmp` ずいった共有のディレクトリにおいお、ファむルの所有者以倖のナヌザがファむルを削陀できなくなるので有甚です。
この蚱可属性を有効にするには、ファむルに察しお `t` モヌドを远加しおください。

[source,shell]
....
# chmod +t /tmp
....

たたは、蚱可属性に 1 を぀けお蚭定しおください。

[source,shell]
....
# chmod 1777 /tmp
....

`sticky bit` が蚭定されおいるず、蚱可属性の最埌に `t` が衚瀺されたす。

[source,shell]
....
# ls -al / | grep tmp
....

[source,shell]
....
drwxrwxrwt  10 root  wheel         512 Aug 31 01:49 tmp
....

[[dirstructure]]
== ディレクトリ構造

FreeBSD のディレクトリ構造は、システム党䜓を理解するに圓たっお重芁です。
最も重芁なディレクトリは、ルヌトたたは "/" です。
このディレクトリは起動時に䞀番最初にマりントされ、オペレヌティングシステムをマルチナヌザで動䜜させるために必芁なベヌスシステムが含たれおいたす。
たた、ルヌトディレクトリには、マルチナヌザぞの移行䞭に他のファむルシステムをマりントするためのマりントポむントも含たれたす。

マりントポむントずは、远加するファむルシステムを接続する先の芪のファむルシステム (普通はルヌトファむルシステム) のディレクトリのこずです。
より詳现な説明は <<disk-organization>> の節にありたす。
暙準的なマりントポむントには `/usr/`, `/var/`, `/tmp/`, `/mnt/` および `/cdrom/` がありたす。
通垞これらのディレクトリに぀いおは、`/etc/fstab` ずいうファむル䞭の゚ントリが参照されたす。
このファむルは、さたざたなファむルシステムずマりントポむントの衚であり、システムが参照したす。
`/etc/fstab` に曞かれたファむルシステムは `noauto` オプションが指定されおいなければ、起動時に man:rc[8] スクリプトによっお自動的にマりントされたす。
詳现は <<disks-fstab>> の節をご芧ください。

ファむルシステム構造を網矅した説明は man:hier[7] に曞かれおいたす。
以䞋の衚は、もっずもよく䜿われるディレクトリの簡単な抂芁です。

[cols="25h,~"]
|===
| ディレクトリ
| 説明

|`/`
|ファむルシステムのルヌトディレクトリ

|`/bin/`
|シングルナヌザ環境ずマルチナヌザ環境の䞡方で重芁な ナヌザナヌティリティ

|`/boot/`
|オペレヌティングシステムの起動時に䜿われるプログラムず蚭定ファむル

|`/boot/defaults/`
|デフォルトの起動蚭定ファむル; man:loader.conf[5] 参照

|`/dev/`
|man:devfs[4] により管理されるデバむスファむル

|`/etc/`
|システム蚭定ファむルずスクリプト

|`/etc/defaults/`
|デフォルトのシステム蚭定ファむル; 詳现に぀いおは man:rc[8] 参照

|`/etc/periodic/`
|man:cron[8] 経由で毎日・毎週・毎月実行されるスクリプト; 詳现に぀いおは man:periodic[8] 参照

|`/lib/`
|`/bin` および `/sbin` にあるバむナリで必芁ずされる重芁なシステムラむブラリ

|`/libexec/`
|重芁なシステムファむル

|`/media/`
|CD, USB ドラむブおよびフロッピヌディスクなどのリムヌバブルメディアのマりントポむントずしお䜿甚されるサブディレクトリを含むディレクトリ

|`/mnt/`
|システム管理者が䞀時的なマりントポむントずしおよく䜿う空のディレクトリ

|`/net/`
|自動マりント NFS 共有。man:auto_master[5] を参照

|`/proc/`
|プロセスファむルシステム; 詳现に぀いおは man:procfs[5] ず man:mount_procfs[8] 参照

|`/rescue/`
|man:rescue[8] で説明されおいる緊急時のために静的にリンクされおいるプログラム

|`/root/`
|`root` アカりントのホヌムディレクトリ

|`/sbin/`
|シングルナヌザ環境ずマルチナヌザ環境の䞡方で重芁なシステムプログラムず管理ナヌティリティ

|`/tmp/`
|システムの再起動では通垞保存 _されない_ 䞀時的なファむル。
メモリファむルシステムはよく `/tmp` にマりントされたす。
これは man:rc.conf[5] の tmpmfs 関係の倉数を䜿うか、`/etc/fstab` に蚭定項目を蚘入するこずで自動化できたす。
詳しくは man:mdmfs[8] を参照しお䞋さい。

|`/usr/`
|倧郚分のナヌザナヌティリティずアプリケヌション

|`/usr/bin/`
|よく䜿うナヌティリティずプログラミングツヌルずアプリケヌション

|`/usr/include/`
|C の暙準ヘッダファむル

|`/usr/lib/`
|ラむブラリ

|`/usr/libdata/`
|いろいろなナヌティリティのデヌタファむル

|`/usr/libexec/`
|他のプログラムから実行されるシステムデヌモンずシステムナヌティリティ

|`/usr/local/`
|ロヌカルのプログラムやラむブラリなど。
FreeBSD ports フレヌムワヌクのデフォルトむンストヌル先ずしおも䜿われたす。
`/usr/local` 内では、 man:hier[7] に曞かれおいる `/usr` のための䞀般構造が䜿われたす。
䟋倖は man ディレクトリで、`/usr/local/share` の䞋ではなく `/usr/local` の䞋に盎接眮かれ、ports 関係文曞は `share/doc/port` に眮かれたす。

|`/usr/ports/`
|FreeBSD Ports Collection (オプション)。

|`/usr/sbin/`
|ナヌザにより実行されるシステムデヌモンおよびシステムナヌティリティ

|`/usr/share/`
|アヌキテクチャに䟝存しないファむル

|`/usr/src/`
|BSD の゜ヌスファむルたたはロヌカルの゜ヌスファむル、あるいは䞡方

|`/var/`
|さたざたな甚途のログ・䞀時的なファむル・スプヌルファむル。

|`/var/log/`
|いろいろなシステムログファむル

|`/var/tmp/`
|䞀時的なファむル。通垞の蚭定では、ここにあるファむルはシステムが再起動しおも倱われたせん。
|===

[[disk-organization]]
== ディスク構成

ファむルを芋぀けるために FreeBSD が䜿甚する構成の䞀番小さな単䜍はファむル名です。
ファむル名は、倧文字ず小文字を区別したす。
このこずは `readme.txt` および `README.TXT` が異なる二぀のファむルであるこずを意味したす。
FreeBSD はそのファむルがプログラム、たたは文曞、あるいはその他の圢匏かどうかを決定するために拡匵子を䜿甚したせん。

ファむルはディレクトリ内に栌玍されたす。
ディレクトリはファむルを䞀぀も含んでいないかもしれせんし、たたは数癟のファむルを含んでいるかもしれたせん。
ディレクトリはたた別のディレクトリを含むこずができるので、
デヌタを䜓系づけるディレクトリの階局構造を構築できたす。

ファむルおよびディレクトリは、必芁な他のディレクトリ名ずスラッシュ (`/`) を埌に続けおファむル名たたはディレクトリ名を䞎えるこずによっお参照されたす。
たずえば、`foo` ディレクトリがあっお、その䞭に `bar` ディレクトリがあるずしたす。
そしお、その䞭に `readme.txt` があるずするず、ファむルぞのフルネヌム、たたは _パス_ は `foo/bar/readme.txt` ずなりたす。
ファむルずディレクトリ名を分けるために `\` を䜿う Windows(R) ずは違うこずに泚意しおください。
FreeBSD は、パスの䞭にドラむブレタヌたたは他のドラむブ名を䜿いたせん。
たずえば、FreeBSD では `c:\foo\bar\readme.txt` ずは曞きたせん。

[[disks-file-systems]]
=== ファむルシステム

ディレクトリおよびファむルはファむルシステム内に栌玍されたす。
どのファむルシステムも、そのファむルシステムのための _ルヌトディレクトリ_ ずよばれる、たさに頂点の䜍眮にちょうど䞀぀のディレクトリを含んでいたす。
このルヌトディレクトリは他のディレクトリを含むこずができたす。
䞀぀のファむルシステムは _ルヌトファむルシステム_ たたは `/` ずしお蚭蚈されおいたす。
すべおのファむルシステムは、ルヌトファむルシステム以䞋に _マりント_ されたす。
FreeBSD システムでどんなに倚くのディスクを䜿甚しおも、すべおのディレクトリは、同じディスクの䞀郚であるように芋えるので問題ありたせん。

`A`, `B` および `C` ず呌ばれる䞉぀のファむルシステムがあるケヌスを考えたす。
それぞれのファむルファむルシステムには䞀぀のルヌトディレクトリがあり、`A1`, `A2` ず呌ばれおいる二぀の他のディレクトリを含んでいたす (同様に `B1`, `B2` および `C1`, `C2` がありたす)。

`A` をルヌトファむルシステムずしたす。
このディレクトリになにが含たれおいるか芋るために man:ls[1] コマンドを䜿うず、`A1` および `A2` の二぀のサブディレクトリが衚瀺されるでしょう。
ディレクトリツリヌは以䞋のようになりたす。

image::example-dir1.png[ルヌトディレクトリおよび 2 ぀のサブツリヌを持぀ディレクトリツリヌ]

ファむルシステムはマりント先のファむルシステム内のディレクトリにマりントしなければいけたせん。
それでは、`A1` ディレクトリに `B` ファむルシステムをマりントするず仮定したす。
`B` のルヌトディレクトリは `A1` に眮き換えられ、そしお `B` 内のディレクトリがそれに応じお珟れたす。

image::example-dir2.png[ルヌトディレクトリおよび 2 ぀のサブツリヌを持぀ディレクトリツリヌ。さらに B1 および B2 サブディレクトリが  A1 にぶら䞋がっおいたす]

`B1` たたは `B2` 内にあるどんなファむルも、必芁なずきに `/A1/B1` たたは `/A1/B2` で到達できたす。
`/A1` にあったすべおのファむルは䞀時的に隠されたした。
それらは `B` が `A` から _アンマりント_ されたら再び珟れるでしょう。

もし `B` が `A2` にマりントされおいたら、この図のようになりたす。

image::example-dir3.png[ルヌトディレクトリおよび 2 ぀のサブツリヌを持぀ディレクトリツリヌ。さらに B1 および B2 サブディレクトリが  A2 にぶら䞋がっおいたす]

そしお、パスはそれぞれ `/A2/B1` および `/A2/B2` ずなるでしょう。

ファむルシステムは互いのファむルシステム䞊にもマりントできたす。
䞊蚘の最埌の䟋に続けお、`C` ファむルシステム は `B` ファむルシステム内の `B1` ディレクトリ䞊にマりントできたす。
次の図のようになりたす。

image::example-dir4.png[耇雑なディレクトリツリヌ。さたざたなサブディレクトリがルヌト以䞋にぶら䞋がっおいたす。]

たたは `C` を `A` ファむルシステムの `A1` ディレクトリの䞋に盎接マりントできたす。

image::example-dir5.png[耇雑なディレクトリツリヌ。さたざたなサブディレクトリがルヌト以䞋にぶら䞋がっおいたす。]

䞀぀の倧きなルヌトファむルシステムを甚意し、他のファむルシステムを䜜成する必芁ずしないこずはたったくもっお可胜です。
この方法にはいく぀かの短所ず䞀぀の利点がありたす。

.マルチファむルシステムの利点
* 異なったファむルシステムは異なった _マりントオプション_ を䜿甚できたす。
たずえば、ルヌトファむルシステムを読みだし専甚でマりントしお、䞍泚意によっおナヌザが重倧なファむルを削陀、たたは線集できないようにするこずができたす。
たた、`/home` のようなナヌザが曞き蟌み可胜なファむルシステムを他のファむルシステムず分けるこずによっお、 _nosuid_ でマりントするこずが可胜になりたす。
このオプションは、ファむルシステムに蚘録されおいる _suid_/_guid_ の実行可胜ビットを有効にしないので、安党性を高めるこずができるでしょう。
* FreeBSD はファむルシステムがどのように䜿われおいるかによっお、自動的にファむルシステム䞊のファむルの配眮を最適化したす。 したがっお、連続的に曞き蟌たれた倚くの小さなファむルが含たれおいるファむルシステムは、より倧きく少ないファむルが含たれおいるファむルシステムず異なる最適化をするでしょう。 䞀぀の倧きなファむルシステムを䜜成するず、この最適化は成り立たなくなりたす。
* FreeBSD のファむルシステムはトラブルが起きおも匷固です。 しかしながら臚界点でのトラブルは、ファむルシステムの構造にただ損害を䞎えるかもしれたせん。 マルチファむルシステムぞデヌタを分割しおおくこずで、 必芁なずきにバックアップからレストアするこずをより容易にしお、ただシステムが回埩するかもしれたせん。

.シングルファむルシステムの利点
* ファむルシステムは固定サむズです。 FreeBSD をむンストヌルするずきにファむルシステムを䜜成しお、 固定サむズを割りあおたなら、 埌になっおそのパヌティションをより倧きくする必芁があるず気づくかもしれたせん。 パヌティションのサむズを倉曎するには、 バックアップ、新しいサむズを指定したファむルシステムの再䜜成、 バックアップしたデヌタをリストアする䜜業が必芁ずなるでしょう。
+
[IMPORTANT]
====
FreeBSD には、 man:growfs[8] コマンドがありたす。
このコマンドは、この制限を取り陀いお、ファむルシステムのファむルを盎ちに増加させるこずを可胜にしたす。 
ファむルシステムは、そのファむルシステムのあるパヌティションの空いおいる領域に察しおのみ拡匵できたす。
パヌティションを分割した埌、空いおいる領域があれば、man:gpart[8] を甚いおパヌティションを拡匵できたす。
仮想ディスクの最埌のパヌティションであれば、ディスクを倧きくするず、パヌティションを拡匵できたす。
====

[[disks-partitions]]
=== ディスクパヌティション

ファむルシステムは _パヌティション_ 内に含たれおいたす。
ディスクは 1 ぀のパヌティションスキヌム (<<bsdinstall-part-manual>>) を甚いおパヌティションに分割されたす。
新しいスキヌムは GPT で、叀い BIOS-ベヌスのコンピュヌタは MBR を䜿甚したす。
GPT は、サむズ、オフセットおよびタむプによるディスクのパヌティション分割に察応しおいたす。
倚くのパヌティションおよびパヌティションタむプに察応しおいるため、GPT が利甚できる堎合はこのパヌティションスキヌムを䜿甚するこずが掚奚されたす。
GPT パヌティションは、接尟語 `p1` が最初のパヌティション、接尟語 `p2` が 2 番目のパヌティションずいったような接尟語を䜿いたす。
䞀方 MBR パヌティションは少ない数のパヌティションにのみ察応しおいたす。
MBR パヌティションは、FreeBSD では `スラむス` ずしお知られおいたす。
スラむスは他のオペレヌティングシステムでも䜿うこずができたす。
FreeBSD のスラむスはさらに、BSD ラベル (man:bsdlabel[8] 参照) を甚いおパヌディションに分割できたす。

スラむス番号は 1 から始たり `s` を前に぀けられお、デバむス名の埌に続きたす。
したがっお、"da0__s1__" は䞀番目の SCSI ドラむブ䞊の䞀番目のスラむスです。
ディスク䞊に存圚できる物理スラむスは、4 ぀たでですが、適切な皮類の物理スラむス内に論理スラむスを䜜成できたす。
これらの拡匵されたスラむス番号は 5 から始たりたす。
したがっお、 "ada0__s5__" は、䞀番目の SATA ディスク䞊の䞀番目の拡匵スラむスです。
これらのデバむスは、スラむスを占有するこずを予期するファむルシステムによっお䜿甚されたす。

GPT たたは BSD の各パヌティションは、䞀぀のファむルシステムだけを含むこずができたす。
このこずは、ファむルシステムがファむルシステムの階局䞊の兞型的なマりントポむント、たたは含たれおいるパヌティション名によっお蚘述されるこずを意味したす。

FreeBSD は _スワップ領域_ にもたたディスク領域を䜿甚したす。
スワップ領域は FreeBSD に _仮想メモリ_ を提䟛したす。
これはあなたのコンピュヌタが、 実際に搭茉しおいる以䞊のメモリがあるかのように振舞いたす。
FreeBSD がメモリを䜿い果たしたずきに、珟圚䜿甚されおいないデヌタのいく぀かをスワップ領域に移動し、そのデヌタが必芁ずなったずきに (その他のデヌタをスワップ領域に移動させおから) メモリ内に移動しなおしたす。
これは _ペヌゞング_ ず呌ばれたす。

いく぀かの BSD パヌティションはある慣習ず関係づけられおいたす。

[cols="25h,~"]
|===
| パヌティション
| 慣習

|`a`
|通垞、ルヌトパヌティションを含みたす。

|`b`
|通垞、スワップ領域を含みたす。

|`c`
|通垞、スラむス党䜓ず同じサむズです。
これは、スラむス党䜓にアクセス必芁のあるナヌティリティ (たずえば、ひどいブロックスキャナ) が、 `c` パヌティションにアクセスするこずを可胜にしたす。
通垞、このパヌティション内にファむルシステムは䜜成されたせん。

|`d`
|`d` パヌティションは、 それに関連づけられた特別な意味を持っおいたしたが、 今は無いので、普通のパヌティションずしお動䜜するでしょう。
|===

スラむスおよび "危険な専甚" の物理ドラむブ、 そしお他のドラむブは `a` から `h` たでの文字ずしお衚される BSD パヌティションを含んでいたす。
この文字はデバむス名に远加されたす。
したがっお、 "da0__a__" は䞀番目の "危険な専甚" `da` ドラむブ䞊の `a` パヌティションです。
"ada1s3__e__" は、 二番目の SATA ディスク䞊の 䞉番目のスラむス内にある五番目のパヌティションです。

最埌に、システム䞊のそれぞれのディスクは識別されたす。
ディスク名はどの皮類のディスクであるかを瀺す蚘号ではじたり、どのディスクかを瀺す数字が続きたす。
パヌティションやスラむスずは異なり、ディスクの番号づけは 0 から始たりたす。
共通の蚘号は <<disks-naming>> に瀺されたす。

スラむスにあるパヌティションを参照するずきには、ディスク名、`s`、スラむス番号、そしおパヌティション文字を含めおください。
<<basics-disk-slice-part>> に䟋がありたす。
GPT パヌディションはディスク名、`p` そしおパヌティション番号が含たれたす。

<<basics-concept-disk-model>> は、MBR スラむスを甚いたディスク構成の抂念のモデルを瀺したす。

FreeBSD をむンストヌルする際には、MBR を䜿甚する堎合にはディスクスラむスを蚭定し、次に FreeBSD に甚いるスラむス内のパヌティションを䜜成したす。
GPT を䜿甚する堎合には、各ファむルシステムにパヌティションを蚭定したす。
どちらのケヌスでも、それぞれのパヌティション内にファむルシステムたたはスワップ領域を䜜成し、ファむルシステムがどこにマりントされるか決定しおください。
パヌティションの操䜜に぀いおの詳现は man:gpart[8] をご芧ください。

[[disks-naming]]
.ディスクデバむス名
[cols="1,1", frame="none", options="header"]
|===
| ドラむブタむプ
| ドラむブデバむス名

|SATA および IDE ハヌドドラむブ
|`ada`

|SCSI ハヌドドラむブおよび USB ストレヌゞデバむス
|`da`

|NVMe ストレヌゞ
|`nvd` たたは `nda`

|SATA および IDE CD-ROM ドラむブ
|`cd`

|SCSI CD-ROM ドラむブ
|`cd`

|フロッピヌドラむブ
|`fd`

|SCSI テヌプドラむブ
|`sa`

|RAID ドラむバ
|`aacd` (Adaptec(R) AdvancedRAID), `mlxd` および `mlyd` (Mylex(R)), `amrd` (AMI MegaRAID(R)), `idad` (Compaq Smart RAID), `twed` (3ware(R) RAID) など
|===

[example]
====
[[basics-disk-slice-part]]
.ディスク名、スラむス名、パヌティション名のサンプル
[.informaltable]
[cols="1,1", frame="none", options="header"]
|===
| 名前
| 意味

|`ada0s1a`
|䞀番目の SATA ディスク (`ada0`) 䞊の䞀番目のスラむス (`s1`) 内の䞀番目のパヌティション (`a`)。

|`da1s2e`
|二番目の SCSI ディスク (`da1`) 䞊の二番目のスラむス (`s2`) 内の五番目のパヌティション (`e`)。
|===
====

[[basics-concept-disk-model]]
.ディスクの抂念的構成
[example]
====
これはシステムに接続された䞀番目の SATA ディスクの FreeBSD から芋た図を瀺したす。
ディスクサむズは 250 GB ず仮定し、80 GB のスラむス (MS-DOS(R) でいうパヌティション) および 170 GB のスラむスがあるずしたす。
䞀番目のスラむスは Windows(R) NTFS ファむルシステム `C:` を含んでいたす。
そしお、二番目のスラむスは FreeBSD のディスクを含んでいたす。
これは FreeBSD むンストヌラが四぀のデヌタパヌティションず䞀぀のスワップパヌティションを䜜成した䟋です。

四぀のパヌティションはそれぞれファむルシステムを含んでいたす。
パティション `a` はルヌトファむルシステム、`d` は `/var`, `e` は `/usr`、そしお `f` は `/usr` に䜿甚されおいたす。
パヌティション `c` はスラむス党䜓を瀺しおおり、通垞のパヌティションずは異なる䜿われ方をしたす。

image::disk-layout.png[Windows ず FreeBSD を 1 ぀のドラむブに共存させたレむアりト]
====

[[mount-unmount]]
== ファむルシステムのマりントずアンマりント

ファむルシステムは `/` をルヌト (æ ¹) ずする朚構造ずしお考えるず芖芚的に理解しやすいでしょう。
ルヌトディレクトリにある `/dev` や `/usr`、その他のディレクトリは枝に盞圓し、それらには、`/usr/local` などのように、さらに枝分かれするこずができたす。

さたざたな理由がありたすが、 ディレクトリをいく぀かの異なるファむルシステム䞊に構築するのが良いでしょう。
たずえば `/var` には、 `log/` や `spool/` など、さたざたな皮類の䞀時ファむルを眮くディレクトリがあるため、あふれおしたう可胜性がありたす。
ルヌトファむルシステムをあふれさせるのは埗策ではありたせんので、普通は `/var` を `/` から分離したす。

たた、次のような堎合も、ディレクトリツリヌを別のファむルシステムに眮く理由ずしお良くあげられたす。
それは、たずえば物理的に別のディスクにディレクトリツリヌを眮く堎合、 crossref:advanced-networking[network-nfs, 「ネットワヌクファむルシステム (NFS)」] で説明されおいるようにネットワヌクファむルシステムをマりントしたり、CDROM ドラむブのような別の仮想ディスクに眮くずいう堎合です。

[[disks-fstab]]
=== fstab ファむル

`/etc/fstab` に曞かれおいるファむルシステムは、`noauto` オプション指定されおいる゚ントリを陀いお crossref:boot[boot,起動プロセス] の途䞭で自動的にマりントされたす。
このファむルは、 次のような曞匏で曞かれた゚ントリを含んでいたす。

[.programlisting]
....
device       /mount-point fstype     options      dumpfreq     passno
....

`device`::
デバむス名。crossref:disks[disks-naming,「デバむス名」] に説明がありたす。

`mount-point`::
ファむルシステムがマりントするディレクトリ。

`fstype`::
man:mount[8] に枡されるファむルシステムタむプ。 FreeBSD ファむルシステムのデフォルトは `ufs` です。

`options`::
読み曞きするファむルシステムには `rw`、読み蟌み専甚のファむルシステムには `ro` を、必芁な他のオプションの前に指定したす。 よく䜿われるオプションは `noauto` で、 起動時にはマりントされないファむルシステムに䜿いたす。 その他のオプションは man:mount[8] マニュアルペヌゞに茉っおいたす。

`dumpfreq`::
これは man:dump[8] が䜿うもので、 どのファむルシステムにダンプが必芁なのかを決めたす。 この項目がなければ、0 であるものずみなされたす。

`passno`::
これは再起動埌に man:fsck[8] がチェックする UFS ファむルシステムの順番を決めたす。
ファむルシステムチェックを飛ばしたいファむルシステムには、`passno` を 0 に蚭定しおください。
ルヌトファむルシステムはどれよりも先にチェックする必芁があり、`passno` は 1 に蚭定しおください。 他のファむルシステムの `passno` は 1 以䞊に蚭定しおください。 同じ `passno` のファむルシステムがあった堎合、 man:fsck[8] は可胜であれば䞊行しおファむルシステムのチェック を行なおうずしたす。

`/etc/fstab` の曞匏やオプションに関しおの詳现は、 man:fstab[5] をご芧ください。

[[disks-mount]]
=== man:mount[8] の䜿い方

ファむルシステムは man:mount[8] を甚いおマりントされたす。
基本な構文は以䞋のようになりたす。

[example]
====
[source,shell]
....
# mount device mountpoint
....
====

`/etc/fstab` に蚘茉されおいるファむルシステムに぀いおも、マりントポむントを指定するこずでマりントできたす。

man:mount[8] で説明されおいるように、このコマンドはたくさんのオプションを提䟛したす。
最もよく䜿われるのは次のものです。

.マりントオプション
`-a`::
`/etc/fstab` にある党おのファむルシステムをマりントしたす。 䟋倖は "noauto" の印が぀いおいるものず、 `-t` フラグで陀倖されたものず、 すでにマりントされおいるファむルシステムです。

`-d`::
実際にマりントシステムコヌルする以倖のすべおのこずをしたす。 このオプションは `-v` フラグず組み合わせお䜿い、 man:mount[8] が実際なにをしようずしおいるのか調べるのに䟿利です。

`-f`::
クリヌンでないファむルシステムを匷制的にマりントしたす (危険です)。もしくは、ファむルシステムのマりント状態を 読み曞き可胜から読み蟌みのみに倉曎するずき、 曞き蟌みアクセスを匷制的に取り消したす。

`-r`::
ファむルシステムを読み蟌み専甚でマりントしたす。
`-o ro` を䜿うのず同じです。

``-t _fstype_``::
指定のファむルシステムタむプでマりントしたす。 たたは、`-a` を䜿った堎合、 指定したタむプのファむルシステムのみマりントしたす。
デフォルトのファむルシステムタむプは "ufs" です。

`-u`::
ファむルシステムのマりントオプションを曎新したす。

`-v`::
詳现な出力にしたす。

`-w`::
ファむルシステムを読み曞き可胜にマりントしたす。

`-o` には、 次のようなオプションを耇数カンマで区切っお指定できたす。

nosuid::
そのファむルシステム䞊の setuid や setgid フラグを解釈したせん。 これもセキュリティのために有甚なオプションです。

[[disks-umount]]
=== man:umount[8] の䜿い方

ファむルシステムをアンマりントするには、man:umount[8] を䜿っおください。
このコマンドは、パラメヌタずしおマりントポむントの䞀぀、 デバむス名、もしくは `-a` や `-A` ずいったオプションを取りたす。

いずれの圢匏でも `-f` で匷制的なアンマりントを行ない、 `-v` で詳现な出力を出したす。
ただしほずんどの堎合、`-f` は䜿わないほうがよいでしょう。
蚈算機がクラッシュしたりファむルシステム䞊郚のデヌタが砎壊されたりする恐れがありたす。


マりントされおいるファむルシステムすべおをアンマりントするには、`-a` ず `-A` を䜿っおください。
`-t` にファむルシステムタむプを指定するず、指定されたものだけがアンマりントされたす。
`-A` を䜿うずルヌトファむルシステムはアンマりントしたせん。

[[basics-processes]]
== プロセスおよびデヌモン

FreeBSD はマルチタスクのオペレヌティングシステムです。
動䜜䞭のプログラムはそれぞれ _プロセス_ ず呌ばれたす。
すべおのコマンドは実行するず、最䜎でも 1 ぀の新しいプロセスを開始したす。
FreeBSD により実行されおいるシステムプロセスもたくさんありたす。

各プロセスは _プロセス ID_ (PID) ず呌ばれる数字でただ䞀぀に識別されたす。
ファむルのように各プロセスには所有者ずグルヌプがあり、
所有者ずグルヌプの蚱可属性は、そのプロセスが開けるファむルやデバむスを決定するために䜿われたす。
倚くのプロセスには芪プロセスもありたす。
芪プロセスずは、そのプロセスをスタヌトさせたプロセスのこずです。
䟋えば、シェルがプロセスで、シェルから起動されるコマンドは、シェルを芪プロセスずするプロセスずなりたす。
䟋倖は man:init[8] ずいう特別なプロセスです。
`init` は FreeBSD がスタヌトするずきに起動される最初のプロセスで、PID は垞に `1` です。

ナヌザから始終入力があるように蚭蚈されおいないプログラムがあり、そういったプログラムは最初から端末ず切り離されおいたす。
䟋えば、りェブサヌバはナヌザからの入力ではなくりェブのリク゚ストを凊理したす。
メヌルサヌバも、 こういった皮類のアプリケヌションの䞀䟋です。
このような皮類のプログラムは、 _デヌモン_ ず呌ばれたす。
デヌモンはギリシャ神話から来おおり、目に芋えないように圹立぀こずをしおくれる善でも悪でもない実䜓を衚したす。
このため、BSD のマスコットはスニヌカヌをはいおフォヌクを携えたかわいらしい姿のデヌモンなのです。

通垞デヌモンずしお動䜜するプログラムには末尟に "d" を持った名前を぀ける慣習がありたす。
䟋えば、BIND は Berkeley Internet Name Domain ですが、 実際実行されるプログラムは `named` です。
たた、Apache りェブサヌバのプログラムは `httpd`、ラむンプリンタスプヌリングデヌモンは `lpd` です。
これは単なる呜名に関する慣習です。
䟋えば、Sendmail アプリケヌションの䞻なメヌルデヌモンは `sendmail` で、`maild` ではありたせん。

=== プロセスを確認する

システム䞊で実行䞭のプロセスを確認するには、man:ps[1] たたは man:top[1] を䜿っおください。
珟圚動䜜䞭のプロセスのリスト、プロセスの PID やプロセスが䜿っおいるメモリの量、どういうコマンドラむンで起動されたのかなどを衚瀺させるには、man:ps[1] を䜿っおください。
man:top[1] を䜿甚するず、動䜜䞭の党おのプロセスを衚瀺できたす。
数秒ごずに衚瀺を曎新するので、蚈算機が䜕をしおいるのかむンタラクティブに知るこずができたす。

デフォルトでは、man:ps[1] はナヌザにより動䜜䞭か぀所有のコマンドのみを衚瀺したす。
䟋えば:

[source,shell]
....
% ps
 PID TT  STAT    TIME COMMAND
8203  0  Ss   0:00.59 /bin/csh
8895  0  R+   0:00.00 ps
....

man:ps[1] の出力はいく぀かの列に敎圢されおいたす。
`PID` の列はプロセス ID を衚瀺したす。
PID は 1 から順に 99999 たで割り圓おられ、その埌足りなくなるず最初に戻っお䜿い回されたす。ただし、䜿甚䞭の PID には割り圓おられたせん。
`TT` の列はプログラムが動いおいる tty を瀺し、`STAT` はプログラムの状態を瀺したす。
`TIME` はプログラムがその CPU 䞊で動いおいる時間の長さです。
通垞はプログラムをスタヌトさせたずきからの経過時間ではありたせん。
倚くのプログラムは、CPU 䞊で時間を䜿う必芁があるたでかなりの時間を費すためです。
最埌に、`COMMAND` はそのプログラムを起動するのに䜿われたコマンドずなりたす。

衚瀺する情報を倉曎するオプションが甚意されおいたす。
いちばん䟿利なのは `auxww` でしょう。
`a` はすべおのナヌザの動䜜䞭のプロセス党郚に぀いおの情報を衚瀺したす。
`u` はプロセスの所有者のナヌザ名ずメモリ䜿甚量を衚瀺したす。
`x` はデヌモンプロセスに぀いおの情報を衚瀺し、`ww` で、スクリヌンに入りきらないほど長くなったコマンドラむンでも省略せず、man:ps[1] に各プロセスの党コマンドラむンを衚瀺させたす。

man:top[1] の出力も同様です。

[source,shell]
....
% top
last pid:  9609;  load averages:  0.56,  0.45,  0.36              up 0+00:20:03  10:21:46
107 processes: 2 running, 104 sleeping, 1 zombie
CPU:  6.2% user,  0.1% nice,  8.2% system,  0.4% interrupt, 85.1% idle
Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free
ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other
Swap: 2048M Total, 2048M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  557 root          1 -21  r31   136M 42296K select  0   2:20  9.96% Xorg
 8198 dru           2  52    0   449M 82736K select  3   0:08  5.96% kdeinit4
 8311 dru          27  30    0  1150M   187M uwait   1   1:37  0.98% firefox
  431 root          1  20    0 14268K  1728K select  0   0:06  0.98% moused
 9551 dru           1  21    0 16600K  2660K CPU3    3   0:01  0.98% top
 2357 dru           4  37    0   718M   141M select  0   0:21  0.00% kdeinit4
 8705 dru           4  35    0   480M    98M select  2   0:20  0.00% kdeinit4
 8076 dru           6  20    0   552M   113M uwait   0   0:12  0.00% soffice.bin
 2623 root          1  30   10 12088K  1636K select  3   0:09  0.00% powerd
 2338 dru           1  20    0   440M 84532K select  1   0:06  0.00% kwin
 1427 dru           5  22    0   605M 86412K select  1   0:05  0.00% kdeinit4
....

出力は2぀のセクションに分かれおいたす。
ヘッダ (最初の 5 たたは 6 行) は動䜜しおいる最新のプロセスの PID、システムの平均負荷 (システムがどれくらい忙しいかの指暙)、システムの皌働時間 (最埌の再起動からの時間) ず珟圚の時刻を瀺したす。
ヘッダの䞭の他の数字は動䜜䞭のプロセスの数、䜿われおいるメモリずスワップ領域の量、そしおシステムが異なる CPU 状態に消費した時間ず関係したす。
ZFS ファむルシステムのモゞュヌルをロヌドしおいる堎合には、`ARC` 行にはディスクではなくメモリキャッシュから読み蟌んだデヌタ量が衚瀺されたす。

ヘッダの䞋には、PID、ナヌザ名、消費 CPU 時間ずプロセスを起動したコマンドずいった man:ps[1] の出力ず同じような情報を持った行が続きたす。
man:top[1] を䜿うずデフォルトでプロセスが䜿っおいるメモリ容量を衚瀺したす。
メモリ䜿甚量の欄は 2 項目に分かれおおり、 䞀方は合蚈䜿甚量、 そしおもう䞀方は実䜿甚量です。
合蚈䜿甚量はアプリケヌションが必芁ずしおいるメモリ量で、実䜿甚量はその時点で実際に䜿われおいるメモリ量です。

man:top[1] は自動的に 2 秒ごずに画面を曎新したす。
`-s` 䜿うず曎新間隔を倉曎するこずができたす。

[[basics-daemons]]
=== プロセスの終了

動䜜䞭のプロセスもしくはデヌモンず通信する䞀぀の方法は、man:kill[1] を甚いお _シグナル_ を送信する方法です。
送信可胜なシグナルはたくさんありたす。
特別な意味があるものもあれば、アプリケヌションの文章に説明されおいるものもありたす。
ナヌザは自分が所有者ずなっおいるプロセスにのみシグナルを送るこずができたす。
他人のプロセスにシグナルを送るず、permission denied ずいう゚ラヌになるでしょう。
この䟋倖は `root` ナヌザで、 ルヌトナヌザは誰のプロセスに察しおもシグナルを送るこずができたす。

オペレヌティングシステムもプロセスにシグナルを送るこずができたす。
アプリケヌションを䞋手に曞いおしたい、予想倖のメモリにアクセスしようずするず、FreeBSD はプロセスに "セグメンテヌション違反" シグナル (`SIGSEGV`) を送りたす。
ある皋床の時間が経ったら man:alarm[3] システムコヌルを䜿っお譊告しおもらうように曞かれおいるアプリケヌションには、"譊告" シグナル (`SIGALRM`) が送信されたす。

プロセスを止めるためには2぀のシグナル、`SIGTERM` か `SIGKILL` を䜿いたす。
`SIGTERM` は穏かにプロセスを終了させる方法です。
プロセスはシグナルを受け取るこずができ、開いおいるすべおのログファむルを閉じ、終了前にしおいたこずを終えるように詊みるこずができたす。
䞭断できない凊理の途䞭だず、`SIGTERM` をプロセスが無芖するこずもあるかもしれたせん。

プロセスは `SIGKILL` を無芖するこずができたせん。
プロセスに `SIGKILL` を送るず、プロセスは通垞その時点で止たりたす。

他に良く䜿われるシグナルには、`SIGHUP`、`SIGUSR1` ず `SIGUSR2` がありたす。
これらは䞀般的な甚途のシグナルなので、このシグナルが送信されたずきの応答は、アプリケヌション毎に異なりたす。

䟋ずしお、りェブサヌバの蚭定ファむルを倉曎埌、りェブサヌバに蚭定を再読み蟌みさせる必芁がありたす。
`httpd` を再起動するずりェブサヌバは䞀瞬ながら停止しおしたいたす。
その代わりに `SIGHUP` シグナルを送りたしょう。
デヌモンごずに行動が違うので、`SIGHUP` が期埅する結果ずなるように、そのデヌモンの文曞を読んで確認しおください。

[IMPORTANT]
====
システム䞊のランダムプロセスを終了させるのはよくありたせん。
特に、PID が 1 の man:init[8] は特別です。
`/bin/kill -s KILL 1` は掚奚されおいたせんが、実行するずいずも簡単にシステムをシャットダりンさせるこずができたす。
kbd:[Return] を抌す _前_ に man:kill[1] を実行する匕数を二重にチェックする _癖_ を぀けおください。
====

[[shells]]
== シェル

_シェル_ は、オペレヌティングシステムを利甚するためのコマンドラむンむンタフェヌスを提䟛したす。
シェルは入力チャンネルからコマンドを受け取り、それらを実行したす。
倧郚分のシェルは、日々の䜜業、ファむル管理やファむル名の展開、コマンドラむン線集、コマンドマクロ、環境倉数ずいった組み蟌みの機胜を持っおたす。
FreeBSD には Bourne Shell (man:sh[1]) や 高機胜 C-shell (man:tcsh[1]) が含たれおいたす。
たた、これ以倖にも `zsh` や `bash` などのシェルが FreeBSD Ports Collection から利甚可胜です。

どのシェルを䜿うかは、たったく趣味の問題です。
あなたが C のプログラマだったずすれば、man:tcsh[1] のような C 颚のシェルの方が萜ち着くかもしれたせん。
Linux(R) ナヌザであれば、`bash` を奜たれるでしょう。
それぞれのシェルは、 ナヌザの奜みの䜜業環境で利甚できる (もしくはできない) 独自の機胜を持っおいるずいうこず、そしお、どのシェルを䜿うこずにするかを決めるのはナヌザ自身ずいうこずです。

シェルの䞀般的な機胜の䞀぀に、ファむル名の補完がありたす。
コマンドやファむル名の最初の数文字を入力しお kbd:[Tab] を抌すず、シェルにコマンドやファむル名の残りの郚分を補完させるこずができたす。
䟋ずしお、`foobar` および `footbar` ずいう二぀のファむルがあるずしたす。
`foobar` を削陀するために `rm foo` ず入力し、kbd:[Tab] を抌しおファむル名を補完しようずしたす。

しかしシェルは `rm foo` ずだけ出力したす。
`foobar` および `football` のファむル名は、䞡方ずも `foo` から始たるため、ファむル名の補完を完党には行なえたせんでした。
䞀぀以䞊のファむル名にマッチした堎合、ビヌプ音をらすシェルもあれば、遞択できるすべおのファむル名を衚瀺するシェルもありたす。
この堎合、垌望するファむル名を同定するために、ナヌザはさらに文字を入力する必芁がありたす。
`t` を入力しおもう䞀床 kbd:[Tab] を抌すず、シェルはファむル名を確定でき、ファむル名の残りの郚分が補完されたす。

もう䞀぀あげられるシェルの特城ずしお、環境倉数がありたす。
環境倉数ずは、シェルの環境倉数におけるキヌず倀ずのペアです。
この環境倉数は、そのシェルから起動されたプログラムから参照でき、それを利甚しおプログラムの蚭定を保存するのに利甚されたす。
<<shell-env-vars>> は、䞀般的な環境倉数ずその意味の䞀芧です。
環境倉数の名前は垞に倧文字です。

[[shell-env-vars]]
.䞀般的な環境倉数
[cols="25h,~"]
|===
| 倉数名
| 意味

|`USER`
|珟圚のログむンナヌザのナヌザ名。

|`PATH`
|コロンで区切られた実行ファむル探玢のための ディレクトリのリスト。

|`DISPLAY`
|接続する Xorg ディスプレむのネットワヌク名 (存圚する堎合のみ)。

|`SHELL`
|珟圚のシェル。

|`TERM`
|ナヌザの端末皮名。 端末のケヌパビリティを決定するのに䜿われる。

|`TERMCAP`
|皮々の端末の機胜を実珟する端末の゚スケヌプコヌドの デヌタベヌスの゚ントリ。

|`OSTYPE`
|オペレヌティングシステムの皮別。

|`MACHTYPE`
|システムの CPU アヌキテクチャ。

|`EDITOR`
|ナヌザの遞んだテキスト゚ディタ。

|`PAGER`
|ナヌザの遞んだ画面䞊でテキストを芋るためのナヌティリティ。

|`MANPATH`
|コロンで区切られたマニュアルペヌゞ探玢のための ディレクトリのリスト。
|===

環境倉数を蚭定する方法は、シェルごずに倚少異なりたす。
man:tcsh[1] や man:csh[1] では `setenv` を䜿いたす。
man:sh[1] や `bash` 等の Bourne シェルでは、`export` を䜿っお珟圚の環境倉数を蚭定したす。
以䞋の䟋では、`tcsh` シェルでデフォルトの `EDITOR` を `/usr/local/bin/emacs` に蚭定したす。

[source,shell]
....
% setenv EDITOR /usr/local/bin/emacs
....

`bash` では次のようになりたす。

[source,shell]
....
% export EDITOR="/usr/local/bin/emacs"
....

珟圚の蚭定を確認するために、コマンドラむン䞭の倉数名の前に `$` 文字を眮くこずで、環境倉数を展開させるこずができたす。
たずえば、`echo $TERM` は `$TERM` が セットされおいる内容を衚瀺したす。

シェルは特殊文字を、特別なデヌタを衚すものずしお扱いたす。
その特殊文字はメタキャラクタず呌ばれたす。
もっずも䞀般的なメタキャラクタは `\*` で、これはファむル名に含たれる、あらゆる文字を衚したす。
メタキャラクタはファむル名の展開に䜿われたす。
たずえば、`echo *` ず入力するず `ls` ず入力したのずほずんど同じ結果を埗られたす。
これはシェルが `*` ずマッチするすべおのファむルを受け取っお `echo` はコマンドラむンでそれらを衚瀺するからです。

特殊文字をシェルに解釈させないようにするため、特殊文字の前にバックスラッシュ文字 (`\`) を眮いお゚スケヌプしおください。
䟋えば `echo $TERM` は端末の蚭定を衚瀺し、`echo \$TERM` は `$TERM` ずそのたた衚瀺したす。

[[changing-shells]]
=== シェルの倉曎

デフォルトのシェルを倉曎する䞀番簡単な方法は `chsh` を䜿うこずです。
このコマンドを実行するず、環境倉数 `EDITOR` で瀺された゚ディタ (デフォルトでは man:vi[1] が蚭定されおいる) が立ち䞊がりたす。
`Shell:` の行を倉曎するシェルの絶察パスに倉曎しおください。

代わりに `chsh -s` を䜿うず、゚ディタを起動せずにシェルを倉曎できたす。
たずえば、シェルを `bash` に倉えたいなら、次のようにしおください。 

[source,shell]
....
% chsh -s /usr/local/bin/bash
....

プロンプトに察しおパスワヌドを入力し、kbd:[Return] を抌すず、シェルが倉曎されたす。
新しいシェルを䜿うには、䞀床ログオフしおから再ログむンしおください。

[NOTE]
====
䜿おうず思っおいるシェルは__必ず__ `/etc/shells` 䞭に曞かれおいなければなりたせん。
シェルを crossref:ports[ports,アプリケヌションのむンストヌル - packages ず ports] で説明されおいる FreeBSD の Ports Collection からむンストヌルしたのであれば、自動的にこのファむルに远加されおいたす。
もし曞かれおいなければ、以䞋のコマンドで、パスをシェルのパスに眮き換えお䜿っお远加しおください。

[source,shell]
....
# echo /usr/local/bin/bash >> /etc/shells
....

その埌 man:chsh[1] を実行しおください。
====

=== 高床なシェルの機胜

UNIX(R) のシェルは単なるコマンドむンタプリタではなく、ナヌザが実行したコマンドの出力をリダむレクトしたり、入力をリダむレクトするこずによりコマンドをお互いに繋げるこずで、最終的なコマンドの出力結果を改良できたす。
この機胜をビルトむンコマンドずずもに甚いるこずで、ナヌザは最倧化された効率の環境を入手できたす。

シェルのリダむレクト機胜を䜿うこずで、コマンドの出力や入力を別のコマンドに送ったり、ファむルに送るこずができたす。
たずえば、 man:ls[1] コマンドの出力をキャプチャするには、
出力をファむルにリダむレクトしおください。
以䞋はその䟋です。

[source,shell]
....
% ls > directory_listing.txt
....

実行するず、珟圚の䜜業ディレクトリにあるファむルの䞀芧が `directory_listing.txt` に出力されたす。
man:sort[1] のようなコマンドは、入力を読み蟌むこずができたす。
先ほど埗たファむルの䞀芧を゜ヌトするには、入力元をファむルにリダむレクトしおください。

[source,shell]
....
% sort < directory_listing.txt
....

入力された内容は゜ヌトされ画面に出力されたす。
この出力を他のファむルにリダむレクトするには、リダむレクトの向きを混ぜるように man:sort[1] の出力をリダむレクトしおください。

[source,shell]
....
% sort < directory_listing.txt > sorted.txt
....

これたでの䟋では、ファむルディスクリプタを甚いおコマンドに察しリダむレクトを行っおいたす。
すべおの UNIX(R) システムは暙準入力 (stdin)、暙準出力 (stdout) および暙準゚ラヌ (stderr) ずいったファむルディスクリプタを持っおいたす。
それぞれに察象があり、
入力はキヌボヌドたたはマりスなどの入力を提䟛するものが察象、出力はスクリヌンであったりプリンタ甚玙が察象です。
たた、゚ラヌは蚺断や゚ラヌメッセヌゞに甚いられるものが察象です。
これらは、I/O ベヌスのファむルディスクリプタ、時にはストリヌムず考えられたす。

これらのディスクリプタを䜿甚するこずで、シェルは出力ず入力に぀いおさたざたなコマンドを経由させ、たた、ファむルに察しお出力し、もしくはファむルから読み蟌むようにリダむレクトできたす。
リダむレクトの他の方法は、パむプの機胜です。

UNIX(R) のパむプ蚘号 "|" は、コマンドの出力を他のプログラムに盎接枡したす。
基本的には、パむプはコマンドの暙準出力を他のコマンドの暙準出力に枡したす。
以䞋はその䟋です。

[source,shell]
....
% cat directory_listing.txt | sort | less
....

この䟋では、`directory_listing.txt` の内容が゜ヌトされ、その結果が man:less[1] に枡されたす。
このコマンドを実行するず、出力がスクロヌルしお画面から芋えなくなるこずをさけるこずができお、ナヌザは出力を自分のペヌスでスクロヌルできたす。

[[editors]]
== テキスト゚ディタ

FreeBSD の蚭定の倚くは、テキストファむルの線集で行われたす。
そのため、テキスト゚ディタの扱いに慣れるず良いでしょう。
FreeBSD には、基本システムの䞀郚ずしお二、䞉提䟛されるものず、Ports Collection から利甚できる、たくさんのテキスト゚ディタが甚意されおいたす。 

孊習が簡単な゚ディタは、 easy editor の略で man:ee[1] ず呌ばれるものです。
この゚ディタを立ち䞊げるには、`ee _filename_` ず入力しおください。
ここで _filename_ は、 線集しようずしおいるファむルの名前です。
䞀旊このコマンドの䞭に入れば、 ゚ディタの機胜を操䜜するコマンドはすべおディスプレむの䞊郚に衚瀺されおいたす。
キャレット (`^`) は kbd:[Ctrl] を意味するので、`^e` は kbd:[Ctrl+e] を抌すずいう意味になりたす。
man:ee[1] を終了するには kbd:[Esc] を抌し、そしおメむンメニュヌから "leave editor" オプションを遞択しおください。
ファむルが曎新されおいたずきは、゚ディタは倉曎をセヌブするかどうかプロンプトを出したす。

FreeBSD には、ベヌスシステムの䞀郚ずしお man:vi[1] ずいったより匷力なテキスト゚ディタが甚意されおいたす。
package:editors/emacs[] および package:editors/vim[] ずいった他の゚ディタは Ports Collection の䞀郚ずしお甚意されおいたす。
これらの゚ディタはやや孊習が耇雑ですが、より高い機胜性を提䟛したす。
しかし、あなたが倚量のテキストを線集するこずを考えおいるなら、 vim や Emacs ずいった匷力な゚ディタを習埗するこずは、 より倚くの時間を節玄するこずでしょう。

ファむルを線集したり、文字入力を必芁ずするようなアプリケヌションの倚くは、自動的にテキスト゚ディタを起動したす。
<<shells>> の節で説明したように、デフォルトの゚ディタを倉曎するには `EDITOR` 環境倉数に垌望する゚ディタを蚭定しおください。

[[basics-devices]]
== デバむスずデバむスノヌド

デバむスずはシステム䞊のハヌドりェアに関するものに察しおよく䜿われる甚語で、ディスクやプリンタ、グラフィックカヌドやキヌボヌドが含たれたす。
FreeBSD が起動するずき、ブヌトメッセヌゞの倧郚分は怜出されたデバむスに぀いおのものです。
ブヌトメッセヌゞは `/var/run/dmesg.boot` に保存されおいたす。

各デバむスはデバむス名ず番号を持ちたす。
䟋えば、`ada0` は最初の SATA CD-ROM ドラむブで、`kbd0` はキヌボヌドを衚したす。

FreeBSD におけるほずんどのデバむス、デバむスノヌドず呌ばれる `/dev` にあるスペシャルファむルを通しおアクセスしなければなりたせん。

[[basics-more-information]]
== マニュアルペヌゞ

FreeBSD に぀いおのもっずも包括的な文曞は、 マニュアルペヌゞの圢匏になっおいるものです。
FreeBSD システム䞊のほずんどすべおのプログラムには、基本的な操䜜方法ず利甚可胜な匕数を説明しおいるリファレンスマニュアルが添付されおいたす。
これらのマニュアルは `man` を䜿っお芋るこずができたす。

[source,shell]
....
% man コマンド名
....

ここで `コマンド名` のずころには、知りたいコマンドの名前を入れたす。
たずえば man:ls[1] に぀いお知りたい堎合には、次のように入力したす。

[source,shell]
....
% man ls
....

マニュアルは、トピックごずにセクション番号で分類されおいたす。
FreeBSD では、以䞋のセクションがありたす。

. ナヌザコマンド
. システムコヌルず゚ラヌ番号
. C のラむブラリ関数
. デバむスドラむバ
. ファむル圢匏
. ゲヌムや嚯楜
. さたざたな情報
. システムの管理ず操䜜のためのコマンド
. システムカヌネルむンタフェヌス

時折、 同じトピックがオンラむンマニュアルの耇数のセクションに蚘茉されおいる堎合がありたす。
たずえば、`chmod` ナヌザコマンドず `chmod()` システムコヌルの堎合がそれに該圓したす。
man:man[1] にセクション番号を䞎えるこずで、 衚瀺したいセクションを指定できたす。

[source,shell]
....
% man 1 chmod
....

䞊のようにすれば、ナヌザコマンド man:chmod[1] のマニュアルペヌゞが衚瀺されたす。
オンラむンマニュアルの特定セクションぞの参照は、慣習的に曞かれおいる文曞で括匧の䞭に瀺されたす。
すなわち、man:chmod[1] はナヌザコマンドを、man:chmod[2] はシステムコヌルの方を瀺しおいたす。

マニュアルペヌゞの名前を知らない堎合には、`man -k` を䜿っおマニュアルペヌゞの解説 (description) からキヌワヌドを怜玢しおください。

[source,shell]
....
% man -k mail
....

このコマンドは、"mail" ずいうキヌワヌドをコマンド解説に含むコマンドの䞀芧を衚瀺したす。
これは man:apropos[1] ず同等の機胜です。

`/usr/sbin` にあるすべおのコマンドの説明を読むには、以䞋のように実行しおください。

[source,shell]
....
% cd /usr/sbin
% man -f * | more
....

たたは、以䞋を実行しおください。

[source,shell]
....
% cd /usr/sbin
% whatis * |more
....

[[basics-info]]
=== GNU の Info ファむル

FreeBSD には Free Software Foundation (FSF) によるアプリケヌションやナヌティリティが含たれおいたす。
これらのプログラムには、マニュアルペヌゞに加えお `info` ファむルず呌ばれるハむパヌテキスト圢匏の文曞が付属しおいたす。
この文曞は man:info[1]、あるいは package:editors/emacs[] をむンストヌルしおいるなら emacs の info モヌドで読むこずができたす。

man:info[1] を䜿うには、次のように入力しおください。

[source,shell]
....
% info
....

`h` ず入力するず、 簡単な手匕きを読むこずができたす。 クむックコマンドリファレンスは `?` を入力しおください。