2011年12月31日土曜日

sedコマンド(ストリームエディタ)

sedコマンドは標準入力からのストリームを編集して標準出力へ渡すそうです。
ファイルの内容を置き換えるなど編集して出力できるとのこと。

sed 's/str1/str2/g' file1 でfile1の中の文字列str1をすべてstr2に置き換える。
' 'の中にコマンドを書く。
sは置き換え、gは最初にマッチした文字列だけでなくすべての文字列を置き換える。(substitute)
/パターン/のように/ /の中にパターンを書く。


sed '1,5d' file1 でfile1の1~5行目を削除する。
つまり、1,5が行数の開始と終わりを表して、dが削除を意味する。

教科書にはコマンドは4つほどしか掲載されていないが、ITproの記事には教科書にはないコマンドがたくさん載っていた。

ビデオでもsedコマンドは奥が深いと言っていたので、試験でどこまで問われるかが心配だ。

コマンドファイル、マニュアルの検索

コマンドファイルを検索するコマンドがたくさん出てきた。

コマンド名がわかっている場合に使うのだと思うが、

コマンドファイルの絶対パスを表示する。
which コマンド
which は「どちら、どれ、どの」
なんとなくwhereと間違いそうだ。

コマンドの型(シェル組込みコマンド、コマンドエイリアス)、コマンドファイルのエイリアスを表示する。
type コマンド

コマンドファイルとマニュアル(man)の絶対パスを表示する。
whereis コマンド

マニュアルを検索するには次の2つのコマンドがある。
whatis キーワード
apropos キーワード aproposは「~について」という意味のようだ。

RPMパッケージの検索

rpmコマンドのオプションがたくさんあって大変だ。
rpm にqueryの-qオプション+オプションを組み合わせるといろいろな情報が表示できる。

たとえばhttpdからインストールされたファイル名をすべて表示する。
rpm -ql httpd

下記はパッケージ名を引数にする
-qa インストール済全パッケージを表示(all?)
-qi インストール済パッケージの情報を表示(info?)
-ql インストール済パッケージに含まれるファイルリストを表示(list?)
-qc パッケージからインストールされた設定ファイルを表示(config?)
-qd パッケージからインストールされたドキュメントを表示(document?)
-q --changelog パッケージの変更履歴を表示

下記はパッケージファイル名を引数にする
-qpi 未インストールパッケージの情報を表示(pre? info?)
-qpl 未インストールパッケージ内のファイルリストを表示(pre? list?)

下記はファイル名を引数にする
-qf ファイルがどのパッケージからインストールされたかを表示(find?)


RPMパッケージの管理操作

RPMパッケージの操作にはrpmコマンドを使う。Debianと並ぶパッケージシステム

パッケージのインストール(この時のみパッケージファイルを引数にする)
rpm -i パッケージファイル
rpm --install パッケージファイル

パッケージの更新(インストールされているもののみ)
rpm -F パッケージ
rpm --freshen パッケージ

パッケージをアップグレード(インストールされていないものは新規インストール)
rpm -U パッケージファイル
rpm --upgrade パッケージ

パッケージを削除
rpm -e パッケージ

更にオプションとして
-v 詳細情報を出力
-h #の個数でインストールの進捗を表す。
--nodeps 依存関係を無視する。
--force 強制実行する。

Debianパッケージの管理操作

Debianパッケージの管理にはdpkgコマンドを使う。

パッケージのインストール(パッケージファイルを指定するのはこの時のみで以降はパッケージを引数にする)
dpkg -i パッケージファイル
dpkg --install パッケージファイル

設定ファイルを除いたファイルの削除
dpkg -r パッケージ
dpkg --remove パッケージ

設定ファイルを含むすべてのファイルを削除
dpkg -P パッケージ
dpkg --purge パッケージ purgeは清める、粛清の意味。

インストール済みパッケージを表示
dpkg -l パッケージ
dpkg --list パッケージ

パッケージからインストールされたファイルを表示
dpkg -L パッケージ
dpkg --listfiles パッケージ

パッケージ情報を表示
dpkg -s パッケージ
dpkg --status パッケージ

ファイルのインストール元パッケージを表示
dpkg -S パッケージ
dpkg --search パッケージ

パッケージに含まれるファイルを表示
dpkg -c パッケージ
dpkg -contents パッケージ




dpkgを拡張したのがapt
パッケージのインストール
apt-get install パッケージ名

インストールされているパッケージをアップグレード
apt-get upgrade

パッケージをアンインストール
apt-get remove

ディストリビューションを最新バージョンにアップグレード
apt-get dist-upgrade

パッケージ情報のデータベースを更新
apt-get update

ストリーム、パイプ、リダイレクト

教科書の模擬試験をやってみる。まだまだたくさん間違える。どうせメモするならここにメモをしてみる。

teeコマンドは標準入力元の内容を画面に表示しつつファイルにも保存することができる。
df | tee df.txt
dfの標準出力をteeに渡す。
まだ、パイプ(|)とリダイレクトの違いが整理できていない。
パイプはコマンドの標準出力を別のコマンドの標準入力に渡す。

リダイレクトは標準入力、出力、エラー出力をデフォルトから変更する。
標準入力のデフォルトはキーボード
標準出力のデフォルトはディスプレイ
標準エラー出力のデフォルトはディスプレイ

2011年12月29日木曜日

ハードリンク シンボリックリンクを作るlnコマンド

lnコマンドでハードリンク、シンボリックリンク(Windowsでいうショートカット)を作るのだけど、読んでいる書籍の表現を勘違いしてしまった。

ln [オプション] リンク元 リンク先

どういうわけだか、「リンク元」を本体の(大元の)ファイルと勘違いしてしまう。
正しくはショートカットファイルがリンク元で、ショートカット先がリンク先。
間違えないようにしよう。

1/22追記
間違えてた。
リンク元が元のファイル、作成されるリンクファイルがリンク先でした。

-s でシンボリックリンクを作成する。

Linux クラウドラボ

冬休みに入り、LPIC1 Super Expressのクラウドラボを中心的にやっています。
クラウドラボについては株式会社イーラーニングのサイトLPICフリークというサイトのレビューで詳しく解説されています。
クラウドラボは自分専用のワンタイムLinuxサーバです。
最近はVMWare Playerなどを使って仮想環境が簡単に構築できるので、「わざわざクラウドに設けなくても」と思っていたのですが、間違いでした。
いくらコマンドを間違ってもよく、バックアップを取る必要も無いのでとても気楽に学習できます。
たとえば、教材の中で、iノードを使い切るという場面があったのですが、クラウドラボなら遠慮なくコマンドを打つことが出来ました。

話はそれますが、Linuxではiノードを使い切るとそれ以上ファイルを作成できなくなるんですね。
Windowsではそんなこと聞いたことがありません。
実際の現場でiノードを使いきってしまったようなトラブルはあるのでしょうか?

2011年12月24日土曜日

LPIC用語集

更新が滞っていました。。。ごめんなさい。
現在学習している LPIC レベル1 Super Express には「みんなで作ろう LPIC用語集」というものがあります。自分のような受講生でも用語を追加することができます。
LPIC ペディア?
まだ、用語はあまりないので、個人的にはこういうのにはどんどん書き込みたいなぁと思ってしまいます。
学習中にメモをとりますが、せっかくなら他の皆さんと共有できればと思い、今はこれが自分のノート代わりです。

2011年12月16日金曜日

LPICバウチャーをちょっとだけ安く購入

LPIC1を受験するのに必要なバウチャーチケットを「IT試験ドットコム」で購入しました。
チケットの価格は15,750円で変わりないのですが、楽天ポイントが使えたり、溜まったりするのでちょっとだけお得でした。

2011年12月11日日曜日

共有ライブラリ

だんだんと難しくなってきました。
共有ライブラリを表示するコマンド

  • ldd [オプション] プログラム|ライブラリ
共有ライブラリをシステムに認識させるために実行するコマンド
  • ldconfig [オプション -p] ライブラリディレクトリ
    • -p 現在のキャッシュに保存されている内容を表示
    • ldconfig は /etc/ld.so.conf ファイルを参照して /etc/ld.so.cacheを 作成する。
    • ライブラリは下記の順で検索する。
      1. コマンドライン
      2. 環境変数 LD_LIBRARY_PATH
      3. /etc/ld.so.conf で指定されたディレクトリ
      4. 共有ライブラリが通常置かれる /usr/lib と /lib

2011年12月10日土曜日

LILO (Linux LOader) と GRUB (GRand Unified Bootloader)

LILOとはブートローダの一つで、第1ローダと第2ローダがある。

  • 第1ローダ
    • 第2ローダを呼び出すための情報を1セクタに格納してある。
    • MBRか/bootパーティションの先頭セクタにインストールされている。
  • 第2ローダ
    • /boot/boot.b 
    • ブートプロンプトを提供する。
LILOの設定は/etc/lilo.confに記述される。LILOを構成するにはliloコマンドを実行する。

GRUBは
LILOよりも信頼性の高いブートローダで、広く普及している。

LILOではカーネルの位置情報をディスク上のブロックとして認識していたが、GRUBではファイルシステムから認識する。

起動時に設定が間違っていても設定を変えることができる。

設定ファイルは/boot/grub/menu.lst あるいは /boot/grub/grub.conf

新規にGRUBをインストールするには(LILOからGRUBに変えたい時は)

grub-install [デバイスファイル]

のコマンドを実行する。

--
設定ファイルの項目がたくさんあったりと、このあたりから難しくなってきた感じです。

2011年12月9日金曜日

Linuxのドライブレター 、ハードディスクのレイアウト

Linuxにはドライブレターという概念が無い!

すべてのディレクトリ、ファイルはルート(/)からたどる。
ハードディスクのパーティションもルートディレクトリ配下の一つ。

驚きました。
/home /var /usr は別パーティションを用意しておいて、容量が足りなくなった場合には別ハードディスクに移すことが簡単にできるそうです。なるほどです。

USBメモリなどリムーバブルメディアは/mediaにマウントされるそうです。

FHS (Filesystem Hierarchy Standard)

ファイルシステム階層標準
Linuxのファイルやディレクトリの配置の規則のこと。

/home (ユーザのホームディレクトリ)
/var (ログやメールスプールなど、大きさやファイルの内容が逐次変わるファイル)
/usr (ユーザが共有するプログラムやユーティリティなどのふぁいる)
以上のディレクトリはルートパーティションとは別のパーティションに配置されることが多い。

2011年12月5日月曜日

カーネルモジュール

カーネルはOSの中核となるプログラム
lsmod

  • カーネルモジュールを一覧表示
  • /proc/modulesの内容と同じ。
modprobe

  • カーネルモジュールの管理、下記設定ファイルの内容を参照する。
  • /etc/modules.conf(カーネル2.4系)、/etc/modprobe.conf(カーネル2.6系)が設定ファイル。
depmod
  • カーネルモジュールの依存関係を解決する。


USB

とりあえず暗記事項

  • LinuxがUSB1.1へ対応したのはカーネル2.4以降
  • USB 2.0はカーネル2.6以降
USBコントローラ
  • USB1.1にはUSBコントローラ(USBを制御するためのチップ)が2種類ある。
    • UHCI(Universal Host Controller Interface)方式およびOHCI(Open Host Controller Interface)方式
    • モジュールはuhci_hcd、ohci_hcd
  • USB2.0はEHCI(Enhanced Host Controller Interface)に統一された。
    • モジュールはehci_hcd
(以下イーラーニングのビデオ学習には出て来なかったけどあまり重要ではない?)
クラスドライバ
  • デバイスクラスごとに利用される汎用ドライバとして、クラス・ドライバが用意されている。
    • USBデバイスは自分が属するデバイスクラスのクラスIDに応じて、クラス・ドライバを選択利用する。
  • クラス・ドライバで対応できないUSBデバイスはベンダー専用のベンダー・デバイス・ドライバが利用される。
lsusb
  • USB接続デバイスの確認

2011年12月1日木曜日

PCI

PCIスロットは今でも使われていますね。
AGPは昔の規格なのに最大転送速度は2.13GB/sで、PCI Express 1xが500MB/sの4倍あるとは知らなかったです。
PCIは133MB/sしかないんですね。

PCIバスに接続されたデバイスの確認には lspci コマンド
lspci -v でIRQやIOポートアドレスなど詳細表示がされる。
ビデオによると /proc/bus/pci より情報を取得しているそうです。

教科書では /proc/pci ファイルを確認しても、lspciと同様にPCIデバイスの一覧を表示できると書いてありました。
/busの有無が気になるので、今度バーチャルラボで試してみます。

SCSI

今日はSCSIが出てきた。
Serial Attached SCSIはともかく、初期のSCSIの話も出てくるんだね。
出題ポイントは
SCSIに関する情報は/proc/scsi/ディレクトリ以下にあること。
SCSI IDなどの情報を表示するにはscsi_infoコマンド
教科書には、そこから先は書いてないので、試験では更にその先の操作について覚える必要はないということなのかな。

2011年11月28日月曜日

IRQ I/Oポートアドレス DMA

LPIC-1 101試験の主題101:システムアーキテクチャから勉強を始めました。
キーワードは3つ
IRQ(Interrupt Request) CPUへの割込み要求
I/O(Input/Output)ポートアドレス CPUが書くデバイスとデータの送受信を行う際の識別アドレス
DMA(Direct Memory Access) CPUを介さずにメモリと各装置、あるいは装置間で直接データ転送を行う機能

これまでWindowsを10年以上使用してきて、どれも聞いたことがある。ただ、これらを自分で設定などどうこうしたということはない。Linuxではやるのかな。

それぞれの設定情報は
/proc/interrupts
/proc/ioports
/proc/dma
にあるとのこと。

教材にはこれ以上のことは書いていないので、とりあえずこの3つがあるということを覚えておけばいいのかな。

2011年11月23日水曜日

クラウドラボが第8回 日本e-Learning大賞奨励賞受賞

今学習させていただいているクラウドラボが日本e-Learning大賞奨励賞を受賞したそうです。
おめでとうございます!

2011年11月21日月曜日

LPICレベル1 101試験のタイミング

LPICレベル1 SuperExpressベータ版

ではメンターさんと学習スケジュールを立てることは以前ご紹介しました。

ここで驚いたのは101試験のタイミングです。

てっきり、教材をすべて受講してから、つまり5ヶ月ぐらいじっくり勉強してから101試験と102試験を受けるものだと思っていたのですが、違いました。

メンターさんから頂いたひな形には学習開始から2ヶ月後に101試験を受験となっていました。

教材も101試験の範囲がすっぽり前半に固まっているので順番通り学習すればよさそうです。

1月中の101試験合格を目指すことになりそうです。

2011年11月17日木曜日

メンターさんと学習開始

LPIC レベル1 SuperExpress (Beta1)の学習が始まりました。
このイーラーニングには「メンター」といういわゆる先生がいらっしゃっいます。
最初に決意表明、自己紹介、学習スケジュールを立てるようにとのことで、このあたりから「ただビデオを見るだけのイーラーニング」とは違うと思いました。
同時に学習を始めた他の受講生さんたちも決意表明をしていてクラスメートができた気分です。

2011年11月15日火曜日

Linuxのバージョンの確認

職場にあるLinuxのバージョンを調べようと思ったが、調べ方がわからない。
ググッてみた。
uname -a
でわかるらしいので打ってみる。
i686とかi386と出てきたので、またぐぐってみたが、今日は時間切れで業務終了。

Linuxのバージョンという言葉遣いはあまり適切でないのかな。
カーネル、ディストリビューション、アーキテクチャと言うべき?

参考にしたページ

2011年11月9日水曜日

LPIC レベル1 SuperExpressのモニター開始

株式会社イーラーニングが販売するLPIC レベル1 SuperExpressの新LMS版のモニターをさせて頂くことになりました。
実はイーラーニング様の教材はこれが初めてではなく、CCNAというネットワークエンジニア資格を目指す、CCNA Super Expressを勉強したことがあります。
LPICは半年ほど前から学習をしていたのですが、なかなか学習が進まずにいました。
今回のモニター当選を機に心機一転学習を再開します!
このブログで合格報告できるようがんばります!