LPIC level1 6日目

#初めに

LPIC試験の勉強をしていて、勉強したものをまとめています。
ご指摘等ございましたらご教授下さい。

#ファイルの操作

##ファイルの検索

どこに保存したかファイルで名前を検索したいときは、
locateコマンドを利用しましょう。

locate ファイル名パターン

locateはリアルタイムでファイル名の検索をしている訳ではないので、
ファイル名データベース更新後に作成されたファイルは検索できません。
なので、ファイル名データベースを更新する必要があります。
それは、updatedbです。これはrootユーザーが実施できます。

###findコマンド

ファイル名だけでなく、様々な条件を指定して、
リアルタイムでファイルを検索できるのがfindコマンドです。

find　[検索対象パス] [検索式]

検索式一覧

● -name ファイル名を指定
● -size ファイルサイズを指定
● -atime ファイルの最終アクセス日を指定
● -amin ファイルの最終アクセス時刻を分で指定
● -mtime ファイルの最終修正日を指定
● -mmin ファイルの最終更新時刻を分で指定
● -perm ファイルのアクセス権を指定
● -type ファイルタイプの指定

findコマンドに-execを付けることで、見つかったファイルに何らかの操作を加えることが
できます。

find[検索対象パス] [検索式] -exec　実行コマンド {} /;

##テキストファイルの内容検索

###正規表現

正規表現は文字列のパターンを表記する手法で、メタキャラクタを使用します。

● .は何でも良い1文字の表現です。
もし、本当に.を調べるときは/.を使いましょう。

● /は直後のメタキャラクタを解除する。

● ^これは〜から始まる文字を検索します。
反対に$は~で終わる文字を検索します。
例: ありがとう^  ありがとう$
どちらも使うと、ありがとうがあるものだけを表現します。

###grepコマンド

これはテキストファイルの内容を指定し、指定した正規表現にマッチする行があれば表示するコマンドです。

grep [オプション] [文字列パターン] [検索対象ファイル]

##テキストファイルを扱う便利なコマンド

###ファイルの一部を表示するコマンド

● headコマンド
これはファイルの先頭部分だけを表示するコマンドです。
デフォルトは10です。

head [-行数] [ファイル名]

パイプを使って、他のコマンドの出力の先頭部分だけを表示することもできます。
例: ps aux | head -5

● tailコマンド

これはheadコマンドとは別で、末尾部分だけを表示するコマンドです。
tail [-行数] [ファイル名]

###ファイルの内容を加工して出力するコマンド

● sortコマンド

このコマンドはファイルの内容をソート(並び替え)して表示します。
sort [オプション] [ファイル名]

これでは1文字目の番号が優先的に並び替えられるので、
番号を順番に並び替えたい時は、-nを使用します。
オプションで、-rを使うと逆順で表示されます。

● nlコマンド

nlコマンドは行番号を付けてファイル内容を表示します。
nl [ファイル名]

● cutコマンド

cutコマンドはファイルのそれぞれの行から指定したフィールドのみを取り出します。例えば、[:]で区切られた行の第２フィールド、第4フィールドだけを取り出すといったこともできます。

cut [オプション] [ファイル名]

オプションでは-dでフィールドの区切り文字を、-fオプションで取り出すフィールドを指定します。

###ファイルの情報を表示するコマンド

● wcコマンド

ファイルの行数、単語数、バイト数などを表示するコマンドです。

wc [オプション] [ファイル名]

-lを使うと、行数を数えることができます。
また、|を使うとファイルの数を数えることもできます。


#ソフトウェアとパッケージ

##パッケージとは?

ほとんどのLinuxディストリビューションでは、ソフトウェアをパッケージという単位で管理しています。パッケージには
、実行プログラムや設定ファイル、取扱説明のドキュメントファイルなどが1つのファイルにまとめられています。パッケージの形式にはRed Hat系ディストリビューションで使われるRPMパッケージと、Debian系で使われるdebパッケージがあり、互換性はありません。

ソフトウェアが動作するために必要なファイルは、パッケージ内だけにまとめられているわけではありません。色々なプログラムが共通して利用するライブラリや他のパッケージが必要なこともあります。例えば、パッケージAがパッケージBに含まれるファイルを利用しているとすれば、パッケージAのインストールに先立ってパッケージBのインストールが必要です。これを依存関係と言います。

ライブラリとは他のプログラムから利用されるプログラム部品のことです。

依存関係を手動で管理するのはとても大変なので、パッケージ管理システムがあります。
これはCentOSやFedoraで管理されているYUM、
Debian　GNU/LinuxやUbuntuで採用されているAPTがあります。

##パッケージの管理

###RPMパッケージ

RPMパッケージはレッドハット社によって開発されたパッケージです。
RPMに関する操作はrpmコマンドで行います。

rpm オプション

-qaオプションを使って一覧表示します。
例:rpm -qa

どんなソフトウェアかパッケージ名では分からない時は
-qiオプションで説明を表示させます。
例:rpm -qi vim-common

指定したパッケージがインストールされているかどうかは-qオプションだけで
確認できます。
例: rpm -q postfix

パッケージをインストールするには、ダウンロードなどで入手したRPMパッケージファイルを指定して、-ivhオプションを付けて実行します。-iはインストールを、-hは進歩状況を、-vは詳細情報の表示をするオプションです。これはrootユーザーでのみ使用できます。

より新しいバージョンは-Uvhオプションを使ってアップグレードすることができます。
また、パッケージをアンインストールするには-eオプションを使います。

###YUM

rpmコマンドを利用するには依存関係を手動で解決しなければなりません。
しかし、CentOSでは、より高度なパッケージ管理を行うYUMという管理システムを使えます。
なので、rpmコマンドを使うときのようにインストールやアップグレードするパッケージをあらかじめダウンロードする必要がないのです。YUMでは、yumコマンドを利用します。

yum サブコマンド

インストールはサブコマンドにinstallを入れます。
情報を表示するときはinfoを入れます。
searchサブコマンドを使うと、キーワードを使ってパッケージを検索します。
また、常に最新の状態にするためにはyum updateコマンドを使用します。

#ファイルシステム

##ハードウェアとLinux

###コンピュータの構成

LinuxなどのOSをインストールするとき、OSがコンピュータのハードウェアを適切に認識できるようにすることになっています。手動で調整が必要になることもあります。

###デバイスとデバイスドライバ

コンピュータを構成するパーツや周辺機器をデバイスと言います。
OSがデバイスを認識し、適切に作動させるには、デバイスドライバというプログラムが必要です。
Linuxの場合、デバイスドライバはカーネルのパーツとして提供されます。
カーネルはこのパーツを必要に応じて組み込んだり取り外したりできます。
これをカーネルモジュールと言います。


##ファイルシステムとは？

データのかたまりをファイルとして扱うためにはファイルシステムという仕組みがあるからです。ファイルシステムとは、ハードディスクなど外部記憶装置のデータをファイルとして管理する仕組みです。

###デバイスファイル

Linuxでは、あらゆるデバイスをファイルとして扱えるようになっています。
そうすることで、ファイルアクセスと同じ仕組みでデバイスにアクセスできるのです。
デバイスを表すファイルをデバイスファイルと言います。
デバイスファイルは/devディレクトリ以下に配置されます。
デバイスファイルは、Linuxカーネルがハードウェアを検知すると、
udevという仕組みによって自動的に作成されます。

###パーティションの作成

1台のハードディスクは複数の領域(パーティション)に分割して利用することができます。
パーティションは基本的に4つに分けることができます。これを基本パーティションと言います。
基本パーティションの内、1つだけは拡張パーティションに変更できます。
拡張パーティションとは、その中にさらに複数の論理的なパーティションを作成して
利用できるパーティションです。

パーティションはLinuxのインストール時に作成することができます。
インストール後もfdiskコマンドを使って操作できます。

fdisk デバイスファイル名
これはrootユーザーだけが実施できます。

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

パーティションを作成しただけではファイルを保存することができません。
この中にファイルシステムを作成する必要があります。

ルートファイルシステムとしては、ext3やext4をデフォルトで採用している
ディストリビューションが多いです。

ファイルシステムを作成するには、mkfsコマンドを使います。
mkfsコマンドはrootユーザーだけが実行できます。

##マウントとアンマウント

Linuxにはドライブという概念がありません。
全てディレクトリツリーに接ぎ木して管理します。これをマウントと言います。

mount デバイスファイル　マウントポイント

マウントポイントとは、デバイスを接続するディレクトリのことです。