【Linux入門】初心者のための基礎知識・講座

HOME > 【Linux入門】初心者のための基礎知識・講座

【Linux入門】初心者のための基礎知識・講座:記事リスト

【Linux入門】初心者のための基礎知識・講座のカテゴリーには以下の記事がリストされています。

システムログの設定

2016年3月24日
システムに異常が発生した際、トラブルシューティングを行うのに役立つのがログです。
ログはサーバーの動作状況を記録したしたものでシステム管理者はログを適切に保管し、
参照できるように管理する必要があります。

Linuxでは、syslogdデーモンによって/var/logディレクトリ配下のファイルに出力したり、
ディスプレイに出力します。これらの処理は、/etc/syslog.confファイルで設定します。

また、ログが増加すると、内容の検索や閲覧に支障をきたすので、
そのような事態を避けるためにログファイルを自動的に更新する
ログローテーション機能が用意されています。

メッセージの出力仕様として、カーネルメッセージについては、
klogdが受け取り、syslogフォーマットに変換してからsyslogdに渡し、
他のログやメッセージと同様に処理される仕組みになっています。

■ファシリティ・プライオリティ・出力先
syslogの動作設定を行うには、/etc/syslog.confファイルを
編集します。このファイルを設定することでどのようなログを
どこに出力するかを指定できます。

書式としては下記のとおりです。
----------------------------------------
ファシリティ.プライオリティ.出力先
----------------------------------------

ファシリティとは、メッセージの出力元になり、
出力元とは、カーネルかプロセスを意味します。

また、プライオリティとは、ログの監視レベルになります。
プライオリティを低く設定するほど、出力されるログ情報は多くなります。

出力先とは、メッセージの出力先になります。
ファイルに保存する場合は、フルパスでファイル名を指定し、
「@」を利用するとネットワーク上のリモートホストへログを送信することが出来ます。

・主なファシリティ
auth 認証メッセージ
authpriv 認証メッセージ
cron cronメッセージ
daemon デーモンメッセージ
kern カーネルメッセージ
lpr プリンタメッセージ
mail メールメッセージ
news ニュースメッセージ
syslog syslogメッセージ
user ユーザープログラムメッセージ
複数のファシリティを指定する場合は、セミコロン「;」で区切って記述します。
またワイルドカード「*」を指定するとすべてのファシリティを指定します。
逆に「!」を使用すれば、特定のファシリティ以外を指定することも可能です。

・主なプライオリティ
none メッセージを送らない
debug デバッグに有益な情報
info 情報メッセージ
notice 注意メッセージ
warning 警告メッセージ
err 一般的なエラーメッセージ
crit 致命的な問題
alert すぐに修正すべき問題
emerg システム不能の非常事態
プライオリティは、指定したプライオリティよりも高い監視レベルをすべてを記録します。
特定のプライオリティのみを記録したい場合は、プライオリティの前に「=」を設定します。

・主な出力先
ファイル名 ファイルに出力
@ホスト名 リモートホストにログを送信
ユーザー名 ユーザーの端末に出力
/dev/console コンソールに出力
* すべてのユーザー端末に出力

■syslog.confの設定例
syslogの動作設定を行うには、/etc/syslog.confファイルを編集することは前回説明しました。
今回は、/etc/syslog.confファイルの設定例を紹介します。

※システムによっては、/etc/syslog.confファイルではなく、
 /etc/rsyslog.confファイルで設定されている場合があります。

---------------------------------------------------------------------
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages

# The authpriv file has restricted access.
authpriv.* /var/log/secure

# Log all the mail messages in one place.
mail.* -/var/log/maillog

# Log cron stuff
cron.* /var/log/cron
---------------------------------------------------------------------

---------------------------------------------------------------------
*.info;mail.none;authpriv.none;cron.none /var/log/messages
---------------------------------------------------------------------
上記の設定は、mail、authpriv、cron以外のファシリティのログで
プライオリティがinfo以上のログは、/var/log/messagesファイルに出力します。

---------------------------------------------------------------------
authpriv.* /var/log/secure
---------------------------------------------------------------------
認証サービスに関するログはすべて/var/log/secureに出力します。

---------------------------------------------------------------------
mail.* -/var/log/maillog
---------------------------------------------------------------------
メールに関するログはすべて/var/log/maillogに出力します。

---------------------------------------------------------------------
cron.* /var/log/cron
---------------------------------------------------------------------
cronに関するログはすべて/var/log/cronに出力します。

また、設定したsyslog.confの内容を確認したり、 マニュアルでメッセージをsyslogdに送りたい場合は、loggerコマンドを使用します。

・書式
logger [-p ファシリティ.プライオリティ] [-t タグ] [メッセージ]

・オプション
-p メッセージを指定したファシリティ、及びプライオリティで送信する
-t タグを付ける

・実行例
-------------------------------------------------
# logger -p syslog.info -t Test "logger test"
-------------------------------------------------

上記を実行すると、/var/log/messagesファイルに下記メッセージが表示されます。

・出力結果
-------------------------------------------------
Mar 17 16:18:47 Tiger Test: logger test
-------------------------------------------------

/etc/fstabファイル(ファイルシステムテーブル)

2013年6月12日
システムで利用するファイルシステムの情報は、/etc/fstabファイルに記述されています。
マウントするときは、/etc/fstabファイルが参照されるため、
マウント頻度の高いファイルシステムを記述します。

また、マウントオプションの「noauto」が指定されていない/etc/fstab内のエントリは、「mount -a」コマンドによってシステム起動時も含めてすべてマウントされます。

■/etc/fstabファイルの例
/dev/hda4               /                  ext3    defaults        1 1
/dev/hda1               /boot              ext3    defaults        1 2
/dev/cdrom              /mnt/cdrom         iso9660 noauto,owner,ro 0 0
/dev/hda2               /var               ext3    defaults        1 3
/dev/hda3               swap               swap    defaults        0 0

/etc/fstabファイルの書式は下記の通りです。
上記実行例の左側からの項目説明です。
デバイスファイル名(/dev/hda1)
デバイスファイル名、もしくはリモートファイルシステムを指定します。

マウントポイント(/boot)
ファイルシステムのマウント先になるディレクトリを指定します。

ファイルシステムの種類(ext3)
ファイルシステムの種類を指定します。
■ファイルシステムの種類
ext2 Linuxの標準ファイルシステム
ext3 ext2にジャーナリング機能を追加したファイルシステム
reiserfs 高速なジャーナリングファイルシステム
xfs SGIが開発したジャーナリングファイルシステム
jfs IBMが開発したジャーナリングファイルシステム
iso9660 CD-ROM、DVD-ROMのファイルシステム
msdos MS-DOSのファイルシステム
vfat Windows 9xのファイルシステム
nfs NFS(Network File System)

マウントオプション(defaults)
マウントする際に必要になるオプションを指定します。
複数のオプションを指定する場合は「,」(カンマ)で区切ります。
■マウントオプション
async ファイルシステムの非同期入出力を設定する
auto -aオプションでmountコマンドを実行したときにマウントする
noauto -aオプションでmountコマンドを実行してもマウントされない
defaults デフォルトのオプションを設定する(async auto dev exec nouser rw suid)
exec バイナリの実行を許可する
noexec バイナリの実行を許可しない
ro 読み出し専用でマウントする
rw 読み書きを許可してマウントする
unhide 隠しファイルも表示する
suid SUIDとSGIDを有効にする
user 一般ユーザーでもマウント可能にする
users マウントしたユーザー以外でもアンマウントできるようにする
nouser 一般ユーザーのマウントを許可しない

dumpフラグ(1)
1であればdumpコマンドによるバックアップ対象になり、
通常ext2、ext3ファイルシステムは1を、
その他のファイルシステムは0を指定します。

ブート時にfsckがチェックする順序(1)
Linuxが起動する時に、fsckがチェックする順序を0、1、2・・・と
指定します。0を指定するとチェックされません。
ルートファイルシステム(/)は1である必要があります。

Linuxのファイルシステムの作成

2012年11月30日

パーティションを作成した後に、ファイルシステムを作成します。
作成するには、「mkfs」や「mke2fs」コマンドを使用します。
パーティション管理コマンド

そもそもファイルシステムとは、
ファイルとしてディスク上のデータを扱う仕組みのことを言います。

ファイルシステムがなければ、ディスク上のデータを
読み出す場合もセクタを指定する必要になります。

例えば、
「193765セクタと193766セクタのデータを読み出す」
というような非常に面倒な操作になります。

しかし、ファイルシステムがあれば、
「/varディレクトリ内にあるlog.txtファイルを開く」と
いうように、分かりやすくデータを扱うことが出来ます。

セクタとはディスク上の区画を表しますが、
記録媒体よって1セクタのバイト数は様々です。
例えば、ハードディディスクでは1セクタが512バイト、
CD-ROMでは2,048バイトとなります。

しかし、ファイルシステムでは
ブロックという単位でデータを保存して管理します。
この管理法のお陰で、アプリケーションは、
物理的な媒体の種類に関係なく、ブロック単位で
データを扱うことが可能になります。

なお、ファイルシステムを作成した際、
最初のブロックに「スーパーブロック」が作成されます。

このブロックは、ファイルシステムの情報
(サイズ、ブロックサイズ、未使用のブロック数、
未使用のiノートリスト等)を管理するために使用されます。

スーパーブロックが破損するとファイルシステムが
使用不能になるため、一定のブロック数毎に同じ情報を
保有するスーパーブロックが作成されます。
これは、最初のスーパーブロックが破損しても
修復出来るよう用意されています。

また、Linuxのファイルシステムでは、
「データ(ファイルの中身)」と「ファイルの属性や管理情報」は
別々に保存します。

「ファイルの属性や管理情報」を格納しているのが、
「iノード(Indexノード)」と呼ばれる管理領域になり、
ファイルシステムを作成した時に予め用意されています。

iノードは、ファイルやディレクトリを作成する度に
1つずつ使用され、すべてのファイルやディレクトリには、
それを管理するiノードがあります。

ルートファイルシステム

2012年11月16日
ファイルシステムの最上位に位置するのが、
/(ルート)ディレクトリを格納するルートファイルシステムです。

耐障害性、保守性を高めるため
通常は、ルートファイルシステムに
すべてのディレクトリを格納する事はせず、
複数のパーティションを用意して、
各パーティションに/home、/varなどのディレクトリを割り当てます。

これら各パーティションは、ルートファイルシステムに
マウントされた状態で1つのファイルシステムとして運用します。
また、障害が発生した時の復旧を考慮して、
ルートファイルシステムは可能な限り小さくします。

ルートファイルシステムには、システムの起動時に
必要になる下記のディレクトリを格納します。
/bin,/sbin システムに必要なコマンドやプログラム
/etc 各種設定ファイル
/lib ライブラリ
/dev デバイスファイル
例えば、ファイルシステムをマウントするmountコマンドは、
/sbinディレクトリに格納されています。
これがなければ、起動時に各パーティションをマウントして
1つのファイルシステムとして運用することができません。

YUM(Yellow dog Updater Modified)

2011年3月26日

CentOSや、Fedoraには、RPMパッケージの依存関係を自動的に解消してインストールする
YUM(Yellow dog Updater Modified)があります。

※YUMは、Debian GNU/LinuxおよびVine Linuxで採用されている
 パッケージ管理システム(APTツール)に相当します。

もともとはYellow Dog Linuxのパッケージ管理システムとして
開発されたものでYUMの設定ファイルは、下記から構成されています。
/etc/yum.conf
/etc/yum.repos.d

■/etc/yum.confのファイル例
----------------------------------------------------------
$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum ←パッケージのキャッシュディレクトリ
keepcache=0
debuglevel=2
logfile=/var/log/yum.log  ←ログファイル
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1

# Note: yum-RHN-plugin doesn\'t honor this.
metadata_expire=1h

# Default.
# installonly_limit = 3

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
----------------------------------------------------------

/etc/yum.repos.dディレクトリ以下には、
リポジトリ情報の設定ファイルが保存されています。
パッケージの入手先を増やしたい場合は、リポジトリ情報の設定ファイルを追加します。

$ ls -l /etc/yum.repos.d
合計 16
-rw-r--r-- 1 root root 2245 4月 26 2010 CentOS-Base.repo
-rw-r--r-- 1 root root 626 4月 26 2010 CentOS-Media.repo

YUMを使用して管理を行うにはyumコマンドを使用します。

■yumコマンドの主なサブコマンド
------------------------------------------------------------------------
check-update    アップデート対象のパッケージリストを表示する
update パッケージ名    指定したパッケージをアップデートする
install パッケージ名    指定したパッケージをインストールする
list installed パッケージ名  指定したパッケージがインストール済みか確認する
remove パッケージ名    指定したパッケージをアンインストールする
info パッケージ名    指定したパッケージの情報を表示する
list    全パッケージ情報をリスト表示する
search キーワード    パッケージ情報をキーワード検索する
grouplist    パッケージグループをリスト表示する
groupinstall グループ    指定したグループのパッケージをインストールする
------------------------------------------------------------------------

続きを読む "YUM(Yellow dog Updater Modified)"

インストール(make install)する

2010年6月13日

ソースコードで配布されるプログラムは、「configure」、「make」を
行い、最後の行程としてmakeにinnstallオプションを付けて
実際のインストールを行います。

このインストール作業はroot権限でなくても実行できますが、
インストール過程でroot権限が必要な処理が発生するとエラーに
なりますので注意が必要です。


■ インストール(make install)する
----------------------------------------------------------------------
[pakira@Tiger ~]$ su -  ←root権限にスイッチします。
パスワード:   ←rootパスワードを入力します(パスワードは表示されません)
[root@Tiger ~]# cd /usr/local/src/httpd-2.0.63 ←ディレクトリを移動します。
[root@Tiger httpd-2.0.63]# make install  ←インストールを実行します。
Making install in srclib
make[1]: ディレクトリ `/usr/local/src/httpd-2.0.63/srclib' に入ります
Making install in apr
make[2]: ディレクトリ `/usr/local/src/httpd-2.0.63/srclib/apr' に入ります
Making all in strings

(省略)

[PRESERVING EXISTING CGI SUBDIR: /usr/local/apache2/cgi-bin]
Installing header files
Installing man pages and online manual
Installing build system files
make[1]: ディレクトリ `/usr/local/src/httpd-2.0.63' から出ます
[root@Tiger httpd-2.0.63]#
----------------------------------------------------------------------
configureの時にも話しましたが、installオプションは、
Makefileに記述されたinstallというラベルから処理を開始しています。

これはUNIXシステムの慣習によるものですが、
中にはinstallではなく、setupなどの他のラベルに
なっているものあります。

その場合、「make setup」のように実行しなければならないので、
インストールを行う前には、事前にソースコードの含まれている
「README」を確認してインストールする必要があります。

また、インストールを実行する前に、事前にエラーが発生しないか、
テスト(インストールテスト)することも出来ます。
インストールテストは、makeコマンドにオプション「-n」と「install」を
付けて実行します。

■ インストールテスト(make -n install)する
----------------------------------------------------------------------
[root@Tiger httpd-2.0.63]# make -n install ←インストールテストを実行します。
otarget=`echo install-recursive|sed s/-recursive//`; \
list=' srclib os server modules support'; \
for i in $list; do \
if test -d "$i"; then \
target="$otarget"; \
echo "Making $target in $i"; \
if test "$i" = "."; then \
made_local=yes; \
target="local-$target"; \

(省略)

done; \
fi
make[1]: ディレクトリ `/usr/local/src/httpd-2.0.63' から出ます
[root@Tiger httpd-2.0.63]#
----------------------------------------------------------------------


さらに、過去にインストール実績があるプログラムや
メイク、インストールでテストが既に終了しているプログラムは
メイクとインストールを連続に実行することが出来ます。

■ メイクとインストールを連続に実行する
----------------------------------------------------------------------
[root@Tiger httpd-2.0.63]# make && make install ←連続実行します。
Making all in srclib
make[1]: ディレクトリ `/usr/local/src/httpd-2.0.63/srclib' に入ります
Making all in apr
make[2]: ディレクトリ `/usr/local/src/httpd-2.0.63/srclib/apr' に入ります
Making all in strings

(省略)

Installing header files
Installing man pages and online manual
Installing build system files
make[1]: ディレクトリ `/usr/local/src/httpd-2.0.63' から出ます
[root@Tiger httpd-2.0.63]#
----------------------------------------------------------------------
「&&」を使用して連続実行した場合、makeコマンドの実行でエラーが
発生した時は、処理が停止し、make installが実行されないため
安全に連続実行することができます。

また、この連続実行は対話式で実行することができないので、
インストールのためにroot権限が必要な行程がある場合は、
事前にroot権限になってから実行する必要があるので注意が必要です。


■ 関連記事
プログラムソース(ソースコード)を最適化する
メイク(make)する

メイク(make)する

2010年6月 1日

ソースコードで配布されるプログラムは、
そのままではインストールする事ができません。

実行形式(オブジェクトコード、ネイティブコードとも呼ばれます。)と
呼ばれる形式に変換する必要があり、その変換を行う作業がメイクになります。

LinuxではGNUが提供しているGCCが使用されるのが一般的で、
makeコマンドを実行することでメイクを行います。

実行方法としては、「Makefile」や「makefile」が保存された
ディレクトリに移動してオプション、引数無しでmakeを実行します。

■ メイクする
----------------------------------------------------------------------
[root@Tiger ~]# cd /usr/local/src/apache_1.3.42
[root@Tiger apache_1.3.42]# make  ←「make」を実行します。
===> src
make[1]: ディレクトリ `/usr/local/src/apache_1.3.42' に入ります
make[2]: ディレクトリ `/usr/local/src/apache_1.3.42/src' に入ります

(省略)

make[2]: ディレクトリ `/usr/local/src/apache_1.3.42/src/support' から出ます
<=== src/support
make[1]: ディレクトリ `/usr/local/src/apache_1.3.42' から出ます
<=== src
[root@Tiger apache_1.3.42]#
----------------------------------------------------------------------

また、メイクを実行擦る前に、事前にエラーが発生しないか、
テスト(メイクテスト)することも出来ます。
メイクテストは、公開されているプログラムの他、
自作プログラムのテストを行うのにも使用できます。

メイクテストを実行するには、↓のようにmakeコマンドに
オプション「-n」を付けて実行します。

■ メイクテストする
----------------------------------------------------------------------
[root@Tiger ~]# cd /usr/local/src/apache_1.3.42
[root@Tiger apache_1.3.42]# make -n  ←「make -n」を実行します。
echo "===> src"
make -f ./Makefile -n root= build-std
make[1]: ディレクトリ `/usr/local/src/apache_1.3.42' に入ります

(省略)

make[1]: ディレクトリ `/usr/local/src/apache_1.3.42' から出ます
touch ./src/.apaci.build.ok
echo "<=== src"
----------------------------------------------------------------------

■ 関連記事
プログラムソース(ソースコード)を最適化する
インストール(make install)する

プログラムソース(ソースコード)を最適化する

2010年5月30日

プログラムソース(ソースコード)を最適化する

Linuxにソフトウェアをインストールする場合、大きく分けて、
RPMと呼ばれるバイナリファイルからインストールする方法と、
ソースコードと呼ばれるプログラムが書かれたアスキーファイルから
インストールする2つの方法があります。

プログラムソースからインストールするメリットは、RPMのように
インストールするディストリビューションやバージョン、ハードウェアの
アーキテクチャに制限されず汎用的にインストールできる点です。

しかし、

どのハードウェアアーキテクチャにインストールされるか
分らない為、複数のアーキテクチャに関する情報がプログラムソースには
含まれています。

こうした情報の中からインストールするハードウェアに
必要な情報だけを抜き出し、最適化する方法として使われるのが
「configure」になります。

これは通常、スクリプトファイルになっていて、ソースコードパッケージに同梱されています。
(Linuxをインストールした際、一緒にインストールされるコマンドではありません。)

この「configure」を実行するには、パッケージを展開した
ディレクトリに移動してスクリプトを実行するか、フルパスで
スクリプトファイルを指定して実行する必要があります。


ただし、

configureスクリプトは、必ずしもプログラムソースに
含まれているわけではないので注意が必要です。

多くの場合、慣例にともない含まれていますが、
まれに「setup.sh」や「install.sh」のような
インストールスクリプトになっている場合もあります。

ソースコードには「README」と言ったファイルが同梱されていますので、
初めてインストールすソフトウェアについては、これらのファイルを確認して、
事前に手順を確認する必要があります。


■ Apacheのプログラムソースを最適化する
----------------------------------------------------------------------
[root@Tiger src]# tar zxvf apache_1.3.42.tar.gz ←ファイルを展開します。
apache_1.3.42/
(省略)
apache_1.3.42/src/support/suexec.h
[root@Tiger src]# cd apache_1.3.42 ←apacheの展開後ディレクトリへ移動します。
[root@Tiger apache_1.3.42]# ./configure --enable-module=so ←configureを実行。
Configuring for Apache, Version 1.3.41
+ using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
Creating Makefile in src
(省略)
Creating Makefile in src/ap
Creating Makefile in src/main
Creating Makefile in src/lib/expat-lite
Creating Makefile in src/modules/standard
[root@Tiger src]#
----------------------------------------------------------------------

「configure」の後ろに付けた「--enable-module=so」は、
簡単に説明すると、DSOモードというものを有効にするオプションで、
後でapacheに機能追加したい場合、それを容易に出来るようにする
オプションになります。

configureを実行する際に指定するオプションによって、そのサーバー機能が
決定しますので、本来サーバーを構築する際は、使用目的や
組み込みモジュールに関しての条件を事前に明確にしておく必要があります。

■ 関連記事
メイク(make)する
インストール(make install)する

Linuxのシステム起動の流れと起動時のイベント確認

2010年3月25日

今回は、Linuxのシステム起動の流れと起動時のイベントについて紹介します。

Linuxを起動すると最初にBIOSが起動します。BIOSの役割はハードウェアの
初期化を行い、ディスクのブートセクタを読み出し、ブートローダへ制御を渡します。

ブートローダは、ハードディスク上からカーネルをメモリ上へ読み込みます。

カーネルはメモリの初期化やシステムクロックの設定を行い、
最後にinitプログラムを実行します。

initはシステムの初期化スクリプトを実行し、ランレベルに応じて
指定されたデーモンを起動します。最後にログインプロンプトが表示され
起動処理が終了します。

この流れを図にすると下記の様になります。

linux_boot.jpg
「PCの起動」→「BIOS」→「ブートローダ」→「カーネル」→「init」→「ログイン」


また、Linuxを起動すると処理された内容が画面に表示されますが、
速く、多くのメッセージが表示されるので一つ一つ内容を確認するのは困難です。

そのような起動時のイベントの確認をするには「dmesg」コマンドを使用します。

[root@Dolphin root]# dmesg

PCI: No IRQ known for interrupt pin A of device 00:1f.1
PCI: No IRQ known for interrupt pin B of device 00:1f.3
PCI: Using ACPI for IRQ routing
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
apm: BIOS not found.
powernow: AMD processor not detected.
cpufreq: P4/Xeon(TM) CPU On-Demand Clock Modulation available
gx-suspmod: error: no MediaGX/Geode processor found!

システムログを記録する「/var/log/messages」にも起動時のメッセージが
記録されます。また、dmesgコマンドはカーネルが出力したメッセージを
一時的に蓄えておくバッファの内容を表示するコマンドになりますので、
バッファに収まり切らなくなった古いメッセージは消えていきます。

ですので長期間稼働しているのシステムでは、dmesgコマンドを
実行してもシステム起動時のメッセージが残っていない事がありますので
注意が必要になります。

Linuxのディレクトリ構造(一覧)を理解する

2010年2月27日

今回は、Linuxのディレクトリ一覧を紹介します。
Linuxは多数のファイルとディレクトリから構成されているシステムになり、
そのディレクトリ構造を押さえることは、Linuxシステムをイメージとして捉える上で
非常に重要になります。

まずは下記の一覧を確認して、どのようなディレクトリがあるのか確認してください。
---------------------------------------------------------

/ ルートディレクトリ

├ /bin 一般ユーザー向けの基本コマンド

├ /boot 起動に必要なファイル

├ /dev デバイスファイル

├ /etc 設定ファイル
| ├ /etc/opt/ optの設定ファイル
| ├ /etc/X11/ X Window System、 version11用の設定ファイル
| ├ /etc/sgml/ SGMLの設定ファイル
| └ /etc/xml/ XML の設定ファイル

├ /home ユーザーのホームディレクトリ

├ /lib 共有ライブラリ

├ /mnt ファイルシステムの一時的なマウントポイント用ディレクトリ

├ /media CD-ROMなどのリムーバブル媒体(media)のマウントポイント

├ /opt 実行時に書き換えられないアプリケーションソフトウェアパッケージ

├ /proc カーネルやプロセスに関する情報をテキストで表示する仮想ファイルシステム

├ /root root用ホームディレクトリ

├ /sbin システム管理用コマンド

├ /tmp ファイルなどを一時的に保管するディレクトリ

├ /srv システムに提供されたサイト固有のデータ

├ /usr プログラムやカーネルソース
| ├ /usr/bin/ /binと同じだが、基本的ではない
| ├ /usr/include/ 標準 includeファイル
| ├ /usr/lib/ /libと同類
| ├ /usr/sbin/ /sbinと同じだが、基本的ではない
| ├ /usr/share/ アーキテクチャに依存しない共有データ
| ├ /usr/src/ ソースコード(カーネルのソースコードとそのヘッダファイル)
| ├ /usr/X11R6/ X Window System, Version 11 Release 6
| └ /usr/local/ ホスト固有のローカルデータを格納する第三階層

└ /var システムログなどの動的に変化するファイル
  ├ /var/lock/ 使用中リソースを保持するファイル
  ├ /var/log/ 各種ログファイル
  ├ /var/mail/ ユーザーのメールボックス
  ├ /var/run/ ブート以降の走行中システムに関する情報
  ├ /var/spool/ 処理待ち状態のタスクのスプール
  ├ /var/spool/mail/ 互換のために残された、かつてのユーザーのメールボックス
  └ /var/tmp/ 一時ファイル置場 (マルチユーザーモードではこちらの使用が推奨される)

---------------------------------------------------------

このLinuxのディレクトリ一覧にも規格名があります。

それは、『FHS(Filesystem Hierarchy Standard)』 という
ディレクトリ構成規格になります。

以前はディストリビューションや、バージョンによって、
細かい点で差異があったのですが、現在はこのディレクトリ規格によって
統一化が図られています。
(しかし、現在でも多くの点で差異はあるので、FHSはひとつの
指標くらいに捉えておいてください。)

現在、ほとんどの主要ディストリビューションが、このFHSを元にディレクトリを
構成していますので、これを覚えると他の主要Linuxのディレクトリ構成についても
大抵通用します。
(但し、GoboLinuxなどのいくつかのシステムでは独自のディレクトリ
規格を採用していますので注意が必要です。)

ただ、上記のような一覧だけでは、非常に多くのディレクトリが表示されているので、
覚える気もなくなります。
それだと意味がないので、下記におさえて置くべき主要ディレクトリの説明をします。
それから覚えるようにしてください。

また、読み方も一緒に掲載していますが、これはあくまで私が現場にいた時に
そのように呼んでいた読み方になります。現場によっては、違う読み方があるかも
知れないのでその点は御了承ください。

■ /bin  読み方(ビン)
システム管理者(root)と一般ユーザーの両方が使う基本的な
コマンドが格納されています。
試しに、binディレクトリに格納されているコマンドを確認してみてください。

$cd /bin
$ls -l
-rwxr-xr-x 1 root root 73460 10月 12 2003 ls
-rwxr-xr-x 1 root mail 74844 8月 2 2003 mail
-rwxr-xr-x 1 root root 21812 10月 12 2003 mkdir

見慣れたコマンドが表示されませんでしたか?
このような基本的なコマンドが格納されているのが
「bin」ディレクトリです。

■ /boot 読み方(ブート)
システム起動時に必要なファイルを格納しています。
普段Linuxを使用していて、このディレクトリにあるファイルを 変更することは滅多にありません。
起動時にBIOSの制限を受けないようにするため、ルートファイルシステムとは別に、
ディスクの先頭付近に配置されることがあります。
起動に必要なファイルがあるという事だけ覚えておいてください。

■ /dev 読み方(デブ)
デバイスファイルが保存されいるディレクトリです。
Linuxでは 『デバイスもファイルとして扱う』 という設計思想がとられています。

これはUNIXから受け継いだ設計思想になり、プログラムを組んでデバイスを
使用する場合は、普通のファイルを扱うのと同じ様に、デバイスファイルを
『Open』して、『Read』『Write』と順番に処理をして、最後に『Close』する
という手順でアクセスするようになっています。

しかし、devディレクトリのファイルを操作することは滅多にありません。
意味も解らずに操作するとデバイスが使用できなくなってしまうので、
扱いには注意が必要です。

■ /etc 読み方(エトセ)
etcディレクトリには「設定ファイル」が格納されています。
システムに関する設定ファイルや、アプリケーションに関する設定ファイル、
種類、数ともに様々ですべてを把握している人はあまりいないと思います。

代表的なものには、 IPアドレスとホスト名をDNSサーバー参照なしでも
名前の解決ができる「hosts」ファイルや、シェルの初期設定ファイル「profile」
などがあります。

■ /home 読み方(ホーム)
各ユーザーのホームディレクトリがあるディレクトリです。
ログインしたときに最初にアクセスするディレクトリは
「/home/ユーザー名」 になり、ユーザー名がpakiraの場合、
「/home/pakira」となります。
また、独立したファイルシステムにすることで、クォータを設定できたり、
保守性を向上させたりできます。
このディレクトリで、各一般ユーザーは作業を行います。
※FHSではオプション扱いとなっています。

■ /lib 読み方(リブ)
システムの起動時に必要なものと、「/bin」や「/sbin」ディレクトリにあるコマンドを
実行するのに必要なライブラリが保存されています。
ユーザーや管理者がこの「/lib」ディレクトリに直接アクセスすることは滅多にありません。

■ /mnt 読み方(マウント)
フロッピーディスクドライブやCD-ROMドライブなど、リムーバブルメディアを
使用するとき(マウント)に利用するマウントポイント用ディレクトリです。
一般ユーザーが利用することはなく、root専用のディレクトリと覚えたほうがいいでしょう。

■ /opt 読み方(オプト)
RPMやdpkgといったパッケージ管理システムでプログラムをインストールする時に
使用するディレクトリです。ディストリビューションによっては配置されません。

■ /proc 読み方(プロック)
カーネル内部の情報にアクセスする為の仮想的なファイルシステムです。
Linuxサーバーのハードウェア情報などを知るための情報ファイルが存在しています。
例えば、CPU情報やメモリの使用状況、ネットワーク情報などが参照できます。

CPU情報を参照する場合
-----------------------------------------
# view /proc/cpuinfo
-----------------------------------------
メモリ情報を参照する場合
-----------------------------------------
# view /proc/meminfo
-----------------------------------------
但し、仮想的なファイルシステムになるため、
ファイルのように見えますが、実際にはディスク上に存在しません。

■ /root 読み方(ルート)
システム管理者(root)のホームディレクトリです。
以前は「/」(ルートディレクトリ)がホームディレクトリとして
使われていましたが、「/root」が使われるように変更されました。
「/home」の一般ユーザーのホームディレクトリと別になっているのは
「/home」が壊れても、「/root」で作業が出来るようにという配慮からです。
※FHSではオプション扱いとなっています。

■ /sbin 読み方(エスビン)
システム管理者(root)が使用するコマンドが格納されています。
主に、起動、停止やリカバリーのような、システム管理に必要 なコマンドです。

$cd /sbin
$ls -l
-rwxr-xr-x 1 root root 1819 10月 29 2003 service
-rwxr-xr-x 1 root root 55768 8月 26 2003 ifconfig
-rwxr-xr-x 1 root root 18336 9月 23 2003 shutdown

システム停止や、サービスなどのシステムに直接関係のある
大切なコマンドばかり格納されているディレクトリです。
セキュリティーの配慮として、一般ユーザーは実行できないよう
権限が与えられています。
※rootのみが実行可能になっています。

■ /tmp 読み方(テンプ)
一時的にファイルを保存したり、作業したりするためのディレクトリです。
再起動などをすると、このディレクトリ内のファイルは削除されてしまいますので
使用には注意が必要です。
大切なファイルは間違ってもtmpディレクトリに保存してはいけません。
※テンポラリ(temporary:一時的な)からこの名前がつけられいます。
※すべてのユーザーが読み書き可能です。

■ /usr 読み方(ユーザー)
ユーザー向けのディレクトリで、たくさんのサブディレクトリを持っています。
代表的なものの1つに「/usr/local」ディレクトリがありますが、
これはRedhat系Linuxのパッケージ管理システムの
管理対象外で、ソースからコンパイルしたプログラムなどをここに保存するのが一般的です。

■ /usr/bin/
ユーザーが一般的に使用するコマンドで、
緊急時のシステム保守に必須ではないコマンドが配置されます。

■ /usr/lib/
プログラムに必要な共有ライブラリが配置されます。

■ /usr/sbin/
システム管理コマンドで、
緊急時のシステム保守に必須ではないコマンドが配置されます。

■ /usr/share/
x86やAlphaといったシステムアーキテクチャに依存しないファイルが
配置されます。例えば、/usr/share/manには、manコマンドで使用される
マニュアルが配置されます。

■ /usr/src/
Linuxカーネルソースなどのソースコードが配置されます。

■ /usr/X11R6/
XFree86(X Window System)用ファイルが配置されます。

■ /usr/local/
ローカルシステムで必要とされるコマンドやライブラリ、ドキュメントなどが
配置されます。このディレクトリ内は、さらにbin、sbin、libなどに細分化されます。

■ /var 読み方(バア)
このディレクトリも「tmp」と同じように一時ファイルを
保存しておくディレクトリです。しかし、ここに保存されているファイルは、
サーバーを 再起動しても削除されません。
保存されているファイルの種類は 「変化していくファイル」です。
代表的なものにはシステムログファイルやメール、
プリンタのスプールファイルがあります。
エラーの際にチェックするシステムログファイルの
「/var/log/messages」 は、この/varディレクトリに保存されています。

■ /var/cache/
manコマンドで表示する為に整形したデータなど、
一時的なキャッシュファイルが配置されます。

■ /var/lock/
アプリケーションが排他制御に使用するロックファイルが配置されます。

■ /var/log/
ログファイルが出力されます。システムのログファイル(messages)、
メールのログファイル(maillog)などが配置されます。

■ /var/run/
システムの状態を示すファイルが配置されます。
PIDを格納したファイルを参照することで、PIDの確認が行えます。

■ /var/spool/
処理を待つバッファであるスプールが配置されます。
送信待ちメールや、印刷待ちデータなどになります。

非常に多くのディレクトリが登場しましたが、馴染みのある
ディレクトリから覚えようとすると、さほど苦にはならなかないと思います。

実際にそのディレクトリにアクセスしてみて、内容を確認すると
なお理解しやすいと思いますので、無理して覚えようとはせず、
わかるところから理解するようにしてください。

Linuxのディレクトリ構造

2010年2月16日

ディレクトリとは、ファイルを階層的に分類、整理する為の仕組みです。
Windowsで言うフォルダに相当し、オペレーティングシステムの
基本機能として組み込まれています。

Linuxのディレクトリ構造は「/」(ルート)を頂点とした
1つのツリー(木)構造を採用していることに特徴があります。
フロッピーディスクやCD-ROMドライブなどの異なるファイルシステムは
ディレクトリツリーにマウントすることで使用可能になります。


Linuxのディレクトリを操作する上に置いて、覚えておかなくてはならない
重要なパスの指定方法が2種類あります。

それは「絶対パス指定」と「相対パス指定」です。

続きを読む "Linuxのディレクトリ構造"

Linuxの種類(ディストリビューション)

2010年2月15日

Linuxの種類(ディストリビューション)

Linuxにも様々な種類があります。
初心者向けのものから上級者向けのもの、またはクライアント向き、
サーバー向きなど用途によっても様々です。

Windowsではマイクロソフトからしか発売されていませんが、Linuxの場合様々な
メーカーから発売されており、これらメーカーを「ディストリビューター」(配布者)と呼び、
Linuxの種類を「ディストリビューション」(配布)と呼びます。

例えば、有名なところで言えば、RED HAT Linux、やFedora Core、Vine Linuxなどに
なります。

もっと具体的にいうならRED HAT Linuxは「レッドハット株式会社」がディストリビューターで
配布している製品、「Red Hat Enterprise Linux 5」がディストリビューションということになります。

下記にて代表的なLinuxを紹介します。


Red Hat Linux(レッドハット・リナックス)
ソフトウェアを簡単にインストールしたり、削除する事が出来るRPM(RPM Package Manager)
システムを開発したディストリビューションで、以前は無償で使用できサポートも受けられる
ディストリビューションとして知られていましたが、現在では有料サポートを主力とした
企業向けRed Hat Enterprise Linuxは発売しています。

以前の無償部分はFedora ProjectとしてRed Hatとは独立した組織になっていますが、
Red Hatはスポンサーとして参加し、開発エンジニアなどの派遣も行い積極的に支援しています。

また、一部のインターネットユーザの間では「赤帽」と呼ばれることがあります。


Fedora(Fedora Core)
フェドラと読み、2003年末に開発を終了したRedhat Linuxの後継を開発するために設立された
「Fedora Project」によって開発されるディストリビューションです。
レッドハットと同じくRPMパッケージを採用しており、バージョン6までは「Fedora Core」と
呼ばれていました。

Fedoraの特徴としては、「フリー/オープンソースソフトウェアの世界を迅速に発展させること」を
謳っていることから、UbuntuやopenSUSEと同様、いち早く最新新技術を取り込む
ディストリビューションとして有名です。

また、リリースサイクルが非常に短く約半年ごとに新バージョンがリリースされ、
メンテナンス期間が短いというデメリットもあります。
これはコミュニティ主導で高度な開発を行い、その成果をRed Hat Enterprise Linuxに
取り込むことを目的としている為だと考えられます。


CentOS
セントオーエスと読み、Red Hat Enterprise Linuxとの完全互換を目指したフリーの
Linuxディストリビューションです。

Red hat社が無料公開しているソースコードから、同社の商標、商用パッケージを
取り除いた形で配布されているため、無償で使用することができます。
また、この経緯からRHELクローン」とも呼ばれます。

CentOS という呼び名は「コミュニティベースで開発された、
エンタープライズクラスのオペレーティングシステム」
(Community ENTerprise Operating System)に由来しています。

また、Red Hat社はCentOSの配布、過初荷は関与していないため、
同社のサポートを受けることはできません。

用途としては、大手レンタルサーバーでの採用からわかるように
企業のサーバー構築を主目的としたOSになります。


Vine Linux
ヴァイン・リナックスとよみ、日本国産のディストリビューションになります。
以前はRed hat Linuxの派生Linuxでしたが、現在はProject Vineの元、独自に開発が
行われています。

Vine Linuxは日本語をそのまま扱うことができるようになった日本語対応の
Linuxディストリビューションの先駆けの一つになります。

Vine Linuxは、目新しさよりも安定性を重視する傾向にあり、リリース間隔を長くとり、
採用しているソフトウェアのバージョンも最新版でない事が多く、新機能の取り込みに
時間を掛けるのが特徴です。


Ubuntu
ウブントゥと読み、使いやすく、最新かつ安定したOSを開発目標としており、その使いやすさから
DELLが自社製品のOSに採用している実績があります。

Ubuntu は、Canonical Ltd.から支援を受けて開発されていて、
ディストリビューション名の Ubuntu は、南アフリカのズールー語の言葉で
「他者への思いやり」などの意味をもっています。

Ubuntu は、Debian GNU/Linuxをベースに開発されており、
なるべく自由なソフトウェアを使うことを方針としていて、
思想的にはDebianに近い位置に立っています。

また、近年日本でも人気のあるディストリビューションの一つとなってきています。


Debian
デビアンと読み、Debian Projectによって開発が行われています。
歴史が長く、Debian上で利用できるデスクトップ環境やサーバー運用向けの
ソフトウェアなどを多く提供しています。

また、このDebianは多くのLinuxに影響を与えており、Ubuntu、MEPIS、Xandros、
sidux、KNOPPIXなどの派生Linuxを生んでいます。


Turbo Linux
日本に本社があるターボリナックス社によって開発が行われているLinuxです。
比較的早い段階でのLinuxカーネル 2.6の採用や、Windows Mediaを再生できる
ソフトウェアを同梱したパッケージの販売、AMD64へのいち早い対応で有名です。

また、Microsoft Windowsとの互換性強化にも積極的に取り組んでいるのも特徴の一つです。

Linuxが使えるをパソコン見極める方法

2010年2月15日

Linuxが使えるをパソコン見極める方法

もし、あなたがこれからLinuxを始めようとした場合、Linuxが使えるパソコンを
手に入れようとすると思います。

今回、あなたがLinuxが動作するパソコンを手に入れようとした時、
実際にどのように探せばいいのかということをお話させてもらいます。

まず最初に知っておいて欲しいことは、市販されているPCの多くはWindows向けに
製造されていて、決してLinux向けに作られていないという事です。
残念な事にメーカーがLinuxの動作保証していないPCについては、
実際にインストールしてみないとわからないというが現状になります。

ですから、もしあなたがこれからLinuxを始めたい、インストールをしてみたいと
考えているなら、とにかく目の前に余ってるPCがあるならLinuxのインストールを
してみることが重要です。

続きを読む "Linuxが使えるをパソコン見極める方法"

Linuxのログとは

2010年2月15日

Linuxのログとは

ログとは、Linuxの動作状況をログファイルとして保存する仕組みのことを指します。

例えば、システム上の不具合やエラー、セキュリティに関する情報など、
障害やハッキングの被害に遭ったときに対処するための必要な情報が
記録されますので、Linuxにとって、とても重要な仕組みになります。

ログはソフトウェアが記録する場合と、syslogデーモンが記録する
場合の2種類があります。

ここでいうソフトウェアとは、WebサーバーなどのApacheを指し、
記録形式などをユーザー自身で設定することも可能ですが、
その場合、そのログを記録するプログラムをそのソフトウェア自身が
実装していないといけません。

一方Linuxシステムに組み込まれているsyslogデーモンは、
デーモンとして動作し続け、様々なソフトウェアからのリクエストを
受け付けて、ログを記録するプログラムになります。

続きを読む "Linuxのログとは"

Linuxとは?Linuxって何?

2009年12月28日

Linuxとは?Linuxって何?

Linuxとは1991年にリーナス・トーパルズ氏によって生み出されたオペレーティングシステム(以下OS)です。

「OS」とはコンピュータ本体やキーボード、マウス、ディスプレイと言った様々な機器(ハードウェア)の
機能すべてを司る役割と、ワープロソフトや表計算ソフトなどのアプリケーションソフトが正しく
動作するよう手助けする役割があります。

一番身近なものとして、WindowsやMAC OSなどがあり、Linuxもそれらと同じOSになります。

また、Linuxは古くから存在するUNIXというOSの流れをくんでおり、その設計思想を真似て開発されている為、
「UNIXクローン」とも呼ばれたりします。

Linuxの一番の特徴は「無料」で使用できる点です。

無料と聞くと「安かろう悪かろう」という印象があるかもしれませんが、
Linuxは無料で使用できる上、非常に優れた安定性と信頼性があり、
昨今では企業の基幹システムで採用される事が多くなっています。

なぜ、そのような事が可能かというと、Linuxは開発当初からオープンソースという、
インターネットにソースコードを公開する配布形式を採用しているからです。

ソースコードとは、プログラミング言語で書かれたテキストファイルの事を指します。
ソフトウェアはプログラム言語で書かれ、そのままではコンピュータが理解出来ないため、
コンパイラで機械語に翻訳して始めてソフトウェアとして使うことができます。

コンパイラを通す前のテキストファイル → ソースコード
コンパイラを通した後の実行ファイル  → バイナリファイル

バイナリファイルはコンピュータが理解出来るよう記述されているため、
人間が見ても理解できません。しかし、ソースコードを見れば、ソフトウェアが
どのような機能を持ち、どのような動きをするのかすぐに知ることができます。

また、ソースコードがあれば、それを元に新しいソフトウェアを開発することができます。

ですので、市販されているソフトウェアは、一般的にソースコードが公開されていません。
ソースコードを公開すれば、そのソフトが持つ機能や脆弱性を公開する事になり、
なによりそのソフトウェアメーカーが持つ技術を外部に公開する事になってしまうからです。
ですから、ソースコードはソフトウェアメーカーにとって「トップシークレット」なのです。

しかし、Linuxは「オープンソース」というソースコードを公開する形で
今まで開発が続けられてきました。

オープンソースで開発するメリットは、世界中の多くのプログラマが
Linuxの中身を自由に知ることができるので、問題点の早期発見や、新機能の追加などが
短期間で実現できる点です。

多くの人の目にさらされることで、Linuxはすべてガラス張り状態にあると言っても
過言ではないと思います。

問題点があれば、インターネット上の誰かがそれを指摘し、直ちに修正されます。
これが市販のソフトウェアなら、メーカーが対応しなければその問題点は
いつまで経っても改善しません。

このオープンソースという無料であるが故の開発スピードと透明性が
現在のLinuxの地位を築いたと言えるでしょう。

図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る