2010年9月21日火曜日

Linux略語

[cat] (コマンド) <きゃっと>
複数ファイルをつなげて出力するという意味で "conCATenate" の略で連結の意。

[cd] (コマンド) <しー・でぃー>
"Change Directory" の略。

[chgrp] (コマンド) <ちぇんじ・ぐるーぷ>
"CHange GRouP" の略。

[chmod] (コマンド) <ちぇんじ・もーど>
"CHange MODe" の略。これの読み方は難しい。

[chown] (コマンド) <ちぇんじ・おーな><ちぇんじ・おうん>
"CHange OWNer" の略。これの読み方も難しい。

[df] (コマンド) <でぃー・えふ>
"Disk Free" の略。

[du] (コマンド) <でぃー・ゆー>
"Disk Usage" の略。

[grep] (コマンド) <ぐれっぷ>
ed コマンドの "g/RE/p"(Global Regular Expression Print) の略。

[lib] (ディレクトリ名) <りぶ> <らいぶ> "LIBrary" より。

[ln] (コマンド) <える・えぬ>
"LiNk" の略。

[ls] (コマンド) <える・えす>
"LiSt" の略。

[man] (コマンド) <まん>
"MANual" の略。

[mv] (コマンド) <えむ・う゛い> <むーぶ>
"MoVe" の略。

[rc] (ファイル) <あーる・しー>
"Run Command" の略。UNIX コマンドの初期設定ファイルで ".○○rc" という のが多いのは、これに由来している。

[rm] (コマンド) <あーる・えむ> <りむーぶ>
"ReMove" の略。

[sed] (コマンド) <せど> <えす・いー・でぃー> <すえど> <えす・えど>\ <せっど>"Stream EDitor" の略。

[tmp] (ディレクトリ名) <てんぷ>
"TeMPorary" の略。

[tty] (デバイス名) <てぃー・てぃー・わい> <てぃてぃい>
TeleTYpeの略。

[usr] (ディレクトリ名) <ゆーざ> <ゆー・えす・あーる> <ゆーずる>
"USeR" の略。と、誰もが思っていたが、米国のユーザグループ UniForum が発行している機関誌 CommUNIXations(May/ June 1989)からの転載というこ とで、JUS の /etc/wall No.8/1990/May に載っていた「UNIX Trivia -- UNIX に関するクイズ100問」によると、"User Services and Routines"

[var] (ディレクトリ名) <う゛ぁー> <ばー>
"VARiable" の略。

[vi] (コマンド) <う゛い・あい> <う゛ぃー・あい>
"VIsual" の略。

[X11] (ウィンドウシステム) <えっくす・いれぶん>
"X window system version 11" の略。さらにリリースナンバーをつけて X11R5 のようにも書く。Version 11 は X の最終バージョンである。

2010年9月20日月曜日

忘却曲線


20分後には、42%を忘却し、58%を覚えていた。
1時間後には、56%を忘却し、44%を覚えていた。
1日後には、74%を忘却し、26%を覚えていた。
1週間後には、77%を忘却し、23%を覚えていた。
1ヶ月後には、79%を忘却し、21%を覚えていた。

パーティション

  • ハードディスクデバイスファイル

    ◆IDEデバイス
    /dev/hda ・・・ プライマリ・マスター
    /dev/hdb ・・・ プライマリ・スレーブ
    /dev/hdc ・・・ セカンダリ・マスター
    /dev/hdd ・・・ セカンダリ・スレーブ
    ◆SCSIデバイス(SATAを含む)
    /dev/sda ・・・ 1番目のデバイス
    /dev/sdb ・・・ 2番目のデバイス
    /dev/sdc ・・・ 3番目のデバイス
    /dev/sdd ・・・ 4番目のデバイス

  • ディスクパーティション
    ◆基本パーティション
    IDE ・・・ /dev/hda1~/dev/hda4 SCSI ・・・ /dev/sda1~/dev/sda4
    基本パーティションと拡張パーティションの合計は4つまで
    ◆論理バーティション
    IDE ・・・ /dev/hda5~
     SCSI ・・・ /dev/sda5~
    論理パーティションは拡張パーティションの中に作られる
  • パーティションの管理(fdisk)
    fdisk -l ・・・ 一覧表示
    fdisk 引数(パーティション) で2次プロンプトへ
    p ・・・ 一覧表示
    n ・・・ 新規作成
    d ・・・ 削除
    w ・・・ 上書き終了
    q ・・・ 終了
  • ファイルシステムの作成
    mkfs [オプション] [デバイスファイル]
    -t ・・・ ext3やmsdosのファイルシステムタイプを指定
    -c ・・・ 指定したデバイスチェック

    mk2fs [オプション] [デバイスファイル]
    なし ・・・ ext2で作成
    -j ・・・ ext3で作成

    ◆参考 以下のコマンドは同じ意味になる
    mkfs -t ext3 /dev/sdb5
    mkfs.ext3 /dev/sdb5
    mk2fs -j /dev/sdb5



  • ジャーナリングファイルシステム
    ディスクへの書き込みの整合性を担保する機能
    ext3、JFS、XFS、ReiserFSがサポートしている

    ext2 → tune2fs → ext3



2010年9月18日土曜日

X Window System




  • 種類
    XFree86 ・・・もう使うことはないがテストのためだけに必要
    X.Org ・・・現在のデファクトスタンダード
  • 保存場所
    /usr/X11R6/  ・・・ コマンド、ライブラリ、マニュアル
    /etc/X11/   ・・・ confなど設定ファイル
  • confのセクション
    Files     カラーネームデータベース、フォントの設定
    InputDevice マウスの設定
    Device    グラフィックボードの設定
  • xfs(Xフォントサーバ)
    /etc/X11/fs/config ・・・ 設定ファイル
    /etc/init.d/xfs start ・・・ 起動コマンド
  • xvidtune
    モニタ調整コマンド
  • XDM
    ディスプレイマネージャ
  • ウィンドウマネージャ
    /usr/bin/startx ・・・ xinitを起動
    Xクライアントの起動スクリプト
    /etc/X11/xinit/xinitrc ・・・ 共通スクリプト
    ~/.xinitrc  ・・・ ユーザ用スクリプト
  • リモートXクライアント
    ◆クライアント側
    export DISPLAY=[ホスト]:ディスプレイ[.スクリーン]
    ◆サーバ側
    xhost [+|-] [ホスト]

2010年9月15日水曜日

ペプシネックスやめようかな

ここ最近、ネックス中毒の私ですが、アステルパームなる人口甘味料が問題視されている模様。副作用もあるようなないような、グレーの匂いがプンプン。ハッキリ言って旨いけど危ないものは嫌だし、止めようかな。

Linuxコマンドリファレンス

◆ファイルコマンド
ls ⇒ ディレクトリの内容を一覧表示する
ls -al ⇒ `.’ で始まるファイルも含めた一覧を詳細表示する
cd dir ⇒ dir (ディレクトリ)へ移動する
cd ⇒ ホームディレクトリへ移動する
pwd ⇒ 現在のディレクトリの名前を表示する
mkdir dir ⇒ dirを作成する
rm file ⇒ file(ファイル)を削除する
rm -r dir ⇒ dirとdir配下全てのファイル・ディレクトリを削除する
語源:再帰的の recursive
rm -f file ⇒ file を強制的に削除する
語源:強制的の force
rm -rf dir ⇒ dir とdir配下全てを強制的に削除する *
cp file1 file2 ⇒ file1をfile2にコピーする
cp -r dir1 dir2 ⇒ dir1をdir2にコピーする
mv file1 file2 ⇒ file1をfile2に移動(名前変更)する;もしfile2がディレクトリの場合はfile1をfile2配下に移動する
ln -s file link ⇒ fileのシンボリックリンク linkを作成する
語源:象徴的な symbolic
touch file ⇒fileを更新・作成する
cat > file ⇒ 標準入力をfileに書き出す
more file ⇒ fileの内容を出力する
head file ⇒ fileの先頭の10行を出力する
tail file ⇒ fileの末尾の10行を出力する
tail -f file ⇒ fileが更新される度に出力し続ける

◆プロセス管理
ps ⇒ ユーザの現在アクティブなプロセスを表示する
語源:process status
top ⇒ 全ての実行中プロセスを表示する
語源:
kill pid ⇒ プロセスIDがpidのプロセスを終了させる
killall proc ⇒ 名前がprocのプロセスを全てkillする *
bg ⇒ Ctrl+Zで停止中またはバッググラウンドのジョブを表示する; バッググラウンドの停止中ジョブを再開する
fg ⇒ 最新のジョブをフォアグラウンドに切り替える
fg n ⇒ n番目のジョブをフォアグラウンドに切り替える

◆ファイルのアクセス権

  1. パーミッション

    chmod octal file ⇒ fileのアクセス権をoctal(数字1つがそれぞれ所有者, グループ, その他を意味する)に設定する;
    ● 4 ⇒ 読み込み (r)
    ● 2 ⇒ 書き込み (w)
    ● 1 ⇒ 実行 (x)
    例:
    chmod 777 ⇒ 全てのユーザにrwxを許可する
    chmod 755 ⇒ 所有者にrwxを, グループとその他にrxを許可する
    その他のオプションはman chmodを参照すること
    語源:change mode
    パーミッションを表示するには ls -l をつかう
  2. 属性

    chattr 属性の設定
    lsattr  属性の確認
    語源:change attribute, list attribute

    属性とはファイルやディレクトリを保護するext2とext3のしくみ
    a append-only 追加は可能だが、変更や上書きはできない
    i immutable  root以外は内容の削除・変更、名前の変更ができない
    u undeletable  削除しても復活できる(削除できないわけじゃない)

  3. 所有権

    所有ユーザ・グループの変更
    chown
    chgrp


◆SSH
ssh user@host ⇒ hostへuserとして接続する
ssh -p port user@hostport指定でssh接続する
ssh-copy-id user@host ⇒ 公開鍵をuser@hostに登録する

■検索
grep pattern files ⇒ files内のpatternを検索する
grep -r pattern dir ⇒ dir配下の全てのファイル内のpatternを検索する
command | grep pattern ⇒ commandの出力結果からpatternを検索する
locate file ⇒ fileというパターンを含む全てのファイルをデータベースから検索する
このデータベースを手動で更新するにはupdatedb

◆システム情報
date ⇒ 現在の日付と時間を表示する
cal ⇒ 今月のカレンダを表示する
uptime ⇒ 現在のuptimeを表示する
w ⇒ オンライン状態のユーザの情報を表示する
whoami ⇒ 現在のユーザ名を表示する
finger user ⇒ userの情報を表示する
uname -a ⇒ カーネル情報を表示する
cat /proc/cpuinfo ⇒ CPU情報を表示する
cat /proc/meminfo ⇒ メモリ情報を表示する
man command ⇒ commandのマニュアルを表示する
df ⇒ ディスク使用状況を表示する 語源:Disk Free
du ⇒ ディレクトリのディスク使用状況を表示する 語源:Disk Use
free ⇒ メモリとスワップの使用状況を表示する
whereis app ⇒ app(アプリケーション)のバイナリ・manページの場所を表示する
which app ⇒ デフォルトで使用されるappを表示する

◆アーカイブの作成・展開

アーカイブ  複数のファイル、ディレクトリをひとつのアーカイブ(書庫)ファイルとしてまとめること
展開する  アーカイブされた複数のファイル、ディレクトリを元に戻すこと
圧縮する  ファイルのサイズをあるアルゴリズムによって小さくすること
伸張する  圧縮したファイルを元に戻すこと

tar cf file.tar files ⇒ filesを含むfile.tarという名のtarファイルを作成する
tar xf file.tar ⇒ ファイルを展開する
tar czf file.tar.gz files ⇒ tarファイルをGzipで圧縮したファイルを作成する
tar xzf file.tar.gz ⇒ Gzipで圧縮されたファイルを展開する
tar cjf file.tar.bz2 ⇒ tarファイルをBzip2で圧縮したファイルを作成する
tar xjf file.tar.bz2 ⇒ Bzip2で圧縮されたファイルを展開する

  • c : Create アーカイブの作成
  • x : eXtract アーカイブの抽出(イクストュラクト)
これに次のオプションをつける。

  • z : gZip 圧縮・解凍に gzip を使う(もちろん gzip 形式の場合のみ)
  • v : Verbose 作成・抽出時にファイルのリストを画面出力する (冗長の意)
  • f : File 作成・抽出するファイルを指定する(tar は本来テープメディアのためのコマンド (Tape ARchive) のため、これを指定しないとデフォルトで /dev/rmt0 になってしまう)

gzip file ⇒ fileを圧縮しfile.gzに名前変更する
gzip -d file.gz ⇒ file.gzを展開し fileに戻す

◆ネットワーク
ping host ⇒ hostへpingし結果を出力する
whois domain ⇒ domainのwhois情報を取得する←超便利
dig domain ⇒ domainのDNS情報を取得する
dig -x host ⇒ hostの逆引きをする
wget file ⇒ fileをダウンロードする
wget -c file ⇒ 一時中断したfileの続きから再開する

◆インストール
ソースからインストールする: 
./configure
make
make install

dpkg -i pkg.deb ⇒ パッケージのインストール(Debian)
rpm -Uvh pkg.rpm ⇒ パッケージのインストール(RPM)

◆ショートカット
Ctrl+C ⇒ 現在のコマンドを終了する
Ctrl+Z ⇒ 現在のコマンドを中断する, fgでフォアグランドジョブ、bgでバックグラウンドジョブに切り替える
Ctrl+D ⇒ exitと同様に現在のセッションをログアウトする
Ctrl+W ⇒ 現在行で1単語を消す
Ctrl+U ⇒ 現在行全体を消す
Ctrl+R ⇒ 最近実行したコマンドを表示する
!! ⇒ 最後に実行したコマンドを繰り返す
exit ⇒ 現在のセッションをログアウトする

2010年9月13日月曜日

Linuxディストリビューションの系統図とトレンド

◆系統図

◆トレンド
今回は実際に使う3つだけを比較。
問題が起きた場合の解決し易い目安としてブログの多さを例にした。
ubuntu > debian > centos

lddでライブラリへの依存性チェック

※コマンドの引数はフルパスで指定
lsコマンドの依存ライブラリを表示した例
[root@localhost ~]# ldd /bin/ls
        linux-gate.so.1 =>  (0x00873000)
        librt.so.1 => /lib/librt.so.1 (0x003f0000)
        libacl.so.1 => /lib/libacl.so.1 (0x003db000)
        libselinux.so.1 => /lib/libselinux.so.1 (0x00cca000)
        libc.so.6 => /lib/libc.so.6 (0x00234000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x003c0000)
        /lib/ld-linux.so.2 (0x00215000)
        libattr.so.1 => /lib/libattr.so.1 (0x00cff000)
        libdl.so.2 => /lib/libdl.so.2 (0x003b9000)
        libsepol.so.1 => /lib/libsepol.so.1 (0x00c82000)

ソースのコンパイルからインストールまで

  1. confugureスクリプトを実行

    $ ./configure でソースファイルの依存性チェックを行い、
    Makefileを生成
    

  2. makeでコンパイル
      
  3. make installでインストール開始

tarボールコマンドの覚え方

◆tarボール形式ファイルの展開
tar xzf xqampli.tar.gz


  • c : Create アーカイブの作成
  • x : eXtract アーカイブの抽出(イクストュラクト)
これに次のオプションをつける。
  • z : gZip 圧縮・解凍に gzip を使う(もちろん gzip 形式の場合のみ)
  • v : Verbose 作成・抽出時にファイルのリストを画面出力する (冗長の意)
  • f : File 作成・抽出するファイルを指定する(tar は本来テープメディアのためのコマンド (Tape ARchive) のため、これを指定しないとデフォルトで /dev/rmt0 になってしまう)



 参考 Manpage of TAR

GRUB

[root@localhost ~]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0  ←この場合、
↓のCentOS (2.6.18-194.11.3.el5)が起動する
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.11.3.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-194.11.3.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet 
←カーネル指定
        initrd /initrd-2.6.18-194.11.3.el5.img ←起動時の初期RAMディスクの指定
title CentOS (2.6.18-164.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-164.el5.img

IT資格の難易度

2010年9月11日土曜日

シェルスクリプト

◆シェル
/etc/profile
~/.bash_profile
~/.bashrc
/etc/bashrc

上記はlogin時の起動の順番でもある。
login後だと~/.bashrcから始まる

~/  は各ユーザーのhomeディレクトリ

ちなみに~/.bash_logoutはシェルが終了するときに実行される

◆コマンドヒストリ
~/.bash_history
◆コマンドエイリアス
 alias [エイリアス名='コマンド']   ※イコール部分にスペースは要らない
alias だけで設定されているエイリアスを表示
unalias エイリアス名  エイリアスの削除
  \エイリアス名 一時的無効
◆環境変数の表示
env
[root@localhost ~]# env
HOSTNAME=localhost.localdomain
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.12.2 62489 22
SSH_TTY=/dev/pts/2
USER=root
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
MAIL=/var/spool/mail/root
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
INPUTRC=/etc/inputrc
PWD=/root
LANG=ja_JP.UTF-8
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SHLVL=1
HOME=/root
LOGNAME=root
CVS_RSH=ssh
SSH_CONNECTION=192.168.12.2 62489 192.168.12.100 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/env

[root@localhost ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# echo $HOME
/root


◆ユーザーのシェル変数
環境変数は大文字、ユーザーのシェル変数は小文字が慣例
ユーザー変数の削除
unset 変数名

USBデバイス

◆規格 USBの対応はカーネル2.4から USB1.1
USB2.0はカーネル2.6


USBの主なデバイスクラス
  • HID(HumanInterfaceClass)クラス
        「キーボード」、「マウス」、「ジョイパッド」等の入力機器に使用されています。
  • マスストレージクラス
        「USBメモリ」、「カードリーダ」、「ポータブル音楽プレーヤ」(一部)等の機器に使用されています。リムーバブルメディアドライブとしてPCへ認識し、メモリ内容をファイルとしてみることが可能です。
  • オーディオデバイスクラス
        「スピーカ」、「マイク」等のオーディオ入出力機器に使用されています。
  • HUBクラス
        「USB-HUB」に使用されています。
    デバイスマネージャでは「汎用ハブ」として表示されます。
 USBコントローラのバージョンとカーネルモジュールの関係


コントローラ USB.ver モジュール 2.4 モジュール 2.6
UHCI 1.1 usb-uhci uhci-hcd
OHCI 1.1 usb-ohci ohci-hcd
EHCI 2.0 ehci-hcd ehci-hcd

    ちなみにUHCIとOHCIはベンダー間の標準争いの末、2.0でEHCIに統一された。

    ◆ホットプラグ
    USBデバイスの確認方法
    [root@localhost ~]# lsusb
    Bus 002 Device 001: ID 0000:0000
    Bus 004 Device 001: ID 0000:0000
    Bus 003 Device 001: ID 0000:0000
    Bus 001 Device 004: ID 3538:0059 Power Quotient International Co., Ltd
    Bus 001 Device 001: ID 0000:0000
    Bus 005 Device 001: ID 0000:0000
    Bus 005 Device 002: ID 0c45:5908 Microdia


    USBデバイスで使用できるカーネルモジュールの表示方法
    usbmodules

    usbmgr
    必要なカーネルモジュールのロード/アンロード
    USBデバイスをセットアップするためにファイルを実行

    usbmgrが見るconfiguration情報はusbmgr.confとpreload.confの 2つです。

    usbmgr.conf
    これはカーネルモジュールをロード/アンロードするための多くの データが入っています。
    preload.conf
          usbmgr起動時にロードするモジュール名を入れます。

    PCI拡張デバイスの表示

      
    PCIデバイスの表示
    [root@localhost ~]# lspci
    00:00.0 Host bridge: Intel Corporation N10 Family DMI Bridge (rev 02)
    00:02.0 VGA compatible controller: Intel Corporation N10 Family Integrated Graphics Controller (rev 02)
    00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
    00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
    00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 01)
    00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 01)
    00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 01)
    00:1d.0 USB Controller: Intel Corporation N10/ICH7 Family USB UHCI Controller #1 (rev 01)
    00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
    00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01)
    00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
    00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
    00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
    00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 01)
    00:1f.2 IDE interface: Intel Corporation N10/ICH7 Family SATA IDE Controller (rev 01)
    00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
    01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
    05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)


    -v オプションでIRQとI/O portsが重複してないか確認できる。
    [root@localhost ~]# lspci -v
     00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01) (prog-if 00 [UHCI])
            Subsystem: Intel Corporation Unknown device 4f4d
            Flags: bus master, medium devsel, latency 0, IRQ 177
            I/O ports at 3020 [size=32]


    表示内容は長いから割愛。
    主なデバイスはEthernet、サウンド、USBコントローラ、PCIブリッジ、VGAなど
    PCを最初にセットアップする際に入れるドライバ類と覚えよう。

    まとめ 下記ファイルの役割を言える様になろう

    /proc/pci
    /proc/ipports
    /proc/dma
    /proc/interrupts

    SATAデバイスの認識状況を確認するときには・・・・・

    ATA規格  IDE パラレル ジャンパピン 接続台数は2台

    SATA シリアル ジャンパピン不要
    SCSI  接続可能台数 = bit数 - 1
    8bit   7台
    16bit  15台
    設定情報は /proc/scsi/ にある

    SATAデバイスの認識状況を確認するときには・・・・・

    [root@localhost ~]# cat /proc/scsi/scsi
    Attached devices:
    Host: scsi0 Channel: 00 Id: 00 Lun: 00
      Vendor: Slimtype Model: DVD A  DS8A4S    Rev: JC21 ←スリムタイプDVDなのがわかる
      Type:   CD-ROM                           ANSI SCSI revision: 05
    Host: scsi1 Channel: 00 Id: 00 Lun: 00
      Vendor: ATA      Model: Hitachi HTS54502 Rev: PB2O  ←HITACHIのHDDなのがわかる
      Type:   Direct-Access                    ANSI SCSI revision: 05
    Host: scsi3 Channel: 00 Id: 00 Lun: 00

      Vendor: Generic  Model: USB Flash Disk   Rev: 0.00  ←USBメモリを接続すると増える
      Type:   Direct-Access                    ANSI SCSI revision: 02

    尚、SATAやUSBメモリなどシリアルデバイスがSCSIとして扱われている理由は・・・
    Linuxを開発した当時、これらのデバイスはなく、シリアルはSCSIが主流だったわけで、それに対応して開発された、後から世に出てきたシリアルデバイスは皆、エミュレートされているから。

    DMAの割り当て状況の確認方法

    DMA(Direct Memory Access)とはデバイスとメモリがCPUを介さず直接データ送受を行う機能。

    [root@localhost ~]# cat /proc/dma
     4: cascade

    拡張スロットにデバイスを増設するときにIRQやDMAが重複していないか確認するときに使う。
    j重複すると重複したデバイスの両方が使えなくなる。

    I/Oポートアドレスの確認方法

    I/OポートアドレスとはCPUとデバイスがデータの送受を行う際に使うアドレスのこと。

    CPU → マザーボード(I/Oポートアドレス) → デバイス
    16進数で表されている


    [root@localhost ~]# cat /proc/ioports
    0000-001f : dma1
    0020-0021 : pic1
    0040-0043 : timer0
    0050-0053 : timer1
    0060-0060 : keyboard
    0064-0064 : keyboard
    0070-0077 : rtc
    0080-008f : dma page reg
    00a0-00a1 : pic2
    00c0-00df : dma2
    00f0-00ff : fpu
    02f8-02ff : serial
    0378-037a : parport0
    03c0-03df : vga+
    03f8-03ff : serial
    0400-0403 : ACPI PM1a_EVT_BLK
    0404-0405 : ACPI PM1a_CNT_BLK
    0408-040b : ACPI PM_TMR
    0410-0415 : ACPI CPU throttle
    0420-0420 : ACPI PM2_CNT_BLK
    0428-042f : ACPI GPE0_BLK
    0500-053f : pnp 00:06
    0680-06ff : pnp 00:06
    1000-1fff : PCI Bus #05
      1000-10ff : 0000:05:00.0
        1000-10ff : 8139too
    2000-2fff : PCI Bus #01
      2000-20ff : 0000:01:00.0
        2000-20ff : r8169
    3000-301f : 0000:00:1f.3
      3000-301f : i801_smbus
    3020-303f : 0000:00:1d.3
      3020-303f : uhci_hcd
    3040-305f : 0000:00:1d.2
      3040-305f : uhci_hcd
    3060-307f : 0000:00:1d.1
      3060-307f : uhci_hcd
    3080-309f : 0000:00:1d.0
      3080-309f : uhci_hcd
    30a0-30af : 0000:00:1f.2
      30a0-30af : ata_piix
    30b0-30b7 : 0000:00:1f.2
      30b0-30b7 : ata_piix
    30b8-30bf : 0000:00:1f.2
      30b8-30bf : ata_piix
    30c0-30c7 : 0000:00:02.0
    30c8-30cb : 0000:00:1f.2
      30c8-30cb : ata_piix
    30cc-30cf : 0000:00:1f.2
      30cc-30cf : ata_piix

    割り込み要求(IRQ)の割り当て情報の確認方法

    IRQ・・・Interrupt ReQuest
    [root@localhost ~]# cat /proc/interrupts
               CPU0       CPU1       CPU2       CPU3
      0:   79408498      17167      17193      17150    IO-APIC-edge  timer  システムタイマー
      1:          8         29        143          2    IO-APIC-edge  i8042   キーボード
      7:          0          0          0          0    IO-APIC-edge  parport0  パラレルポート
      8:          1          1          0          1    IO-APIC-edge  rtc   リアルタイムクロック
      9:          0          0          0          0   IO-APIC-level  acpi   ソフトウェア割り込み
     12:          1          1          0          3    IO-APIC-edge  i8042  PS/2マウス

     50:          1          0          0          1   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb2 
     66:          8         12          8     400251   IO-APIC-level  eth0
     74:         40         42         38         37   IO-APIC-level  HDA Intel
    177:          6          6      19378        113   IO-APIC-level  uhci_hcd:usb5
    185:          0          0          0          0   IO-APIC-level  uhci_hcd:usb4
    193:       1985       2124     705229     381083   IO-APIC-level  uhci_hcd:usb3, ata_piix
    NMI:          0          0          0          0
    LOC:   79464793   79464792   79464791   79464790
    ERR:          0
    MIS:          0

    2010年9月10日金曜日

    Linuxのユーザー追加

    [root@localhost ~]# useradd hogehoge
    [root@localhost ~]# passwd hogehoge
    Changing password for user hogehoge.
    New UNIX password:        ←入力
    Retype new UNIX password:  ←もう一度入力
    passwd: all authentication tokens updated successfully.

    CentOSの固定IP

    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    HWADDR=00:A0:B0:A5:0D:6E
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    IPV6INIT=no
    PEERDNS=yes

    DNSの値も固定にする
    vi /etc/resolv.conf
    search localdomain
    nameserver 192.168.12.1

    Oracle11gをCentOS5にインストール

    たかだかインストールにかなりハマった。俺のスキルが低いのもあるかもしれんが、Oracle高いし、親切じゃないし、やっぱ敷居が高いな。
    1. 必要パッケージの事前インストール

      [root@localhost ~]# yum -y install binutils compat-libstdc++-33 elfutils-libelf
      elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio
      libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC
      unixODBC-devel

      足りなかったので追加インストール
      # yum install -y pdksh
      インストールを確認する
      # rpm -q -a | grep pdksh
      pdksh-5.2.14-36.el5

    2. カーネルパラメータを編集。末尾に追加
      [root@localhost ~]# vi /etc/sysctl.conf
      ###Oracl11g
      kernel.sem = 250 32000 100 128
      fs.file-max = 6815744
      fs.aio-max-nr = 1048576
      net.ipv4.ip_local_port_range = 9000 65500
      net.core.rmem_default = 4194304
      net.core.rmem_max = 4194304
      net.core.wmem_default = 262144
      net.core.wmem_max = 1048576

      カーネルを動的に反映
      [root@localhost ~]# sysctl -p
      net.ipv4.ip_forward = 0
      net.ipv4.conf.default.rp_filter = 1
      net.ipv4.conf.default.accept_source_route = 0
      kernel.sysrq = 0
      kernel.core_uses_pid = 1
      net.ipv4.tcp_syncookies = 1
      kernel.msgmnb = 65536
      kernel.msgmax = 65536
      kernel.shmmax = 4294967295
      kernel.shmall = 268435456
      kernel.sem = 250 32000 100 128
      fs.file-max = 6815744
      fs.aio-max-nr = 1048576
      net.ipv4.ip_local_port_range = 9000 65500
      net.core.rmem_default = 4194304
      net.core.rmem_max = 4194304
      net.core.wmem_default = 262144
      net.core.wmem_max = 1048576

    3. GUIでのインストール設定
      セキュリティ・アップデートの構成  無視
      インストールオプションの選択  データベースの作成および構成
      システム・クラス  サーバー・クラス
      ノードの選択  単一インスタンス・データベースのインストール
      インストール・タイプの選択  拡張インストール
      言語の選択  日本語・英語
      データエースエディションの選択  Standard Edtion One
      構成オプションの指定→キャラクタセットの選択  AL32UTF8
      データベースアカウント SYS, SYSTEM, SYSMAN, DBSNMP
      そのPW
      アカウントグループ OSDBA → dba、dba → dba

    2010年9月6日月曜日

    Googleノートブック

    1,Googleノートブックの勧め

    インターネットを見ていて、これちょっと残しておきたいなと思う情報があったとき、皆さんはどうしてますか?

    職場、自宅を問わず、いつも同じ情報にアクセスできることを前提とすれば、ネット上に保存できるのが一番です。

    代表的なアプリとして、GoogleノートブックEvernoteがあります。

    どちらも非常に便利なソフトですが、比較をすると

              Googleノートブック   Evernote

    動作の軽快さ        ○         △

    扱えるファイルの種類  △         ○

    無料か?          ○         △

    継続性           △         ○

    という違いがあると思います。

    私自身は、①動作がきわめて軽いこと、②無料ながら容量制限が無いこと、を考えて普段はGoogleノートブックを使っています。

    2010年9月4日土曜日

    雨音ループ再生でリラックス「RAINY MOOD」

    自然音の1/fゆらぎの効果でリラックス

    VirtualPCでCentOSの解像度がおかしい

    VirtualPCにCentOS(その他Linux)をインストールするとき、
    ホストOSのディスプレイ設定に依存するせいかワイドになってしまう。
    これが解像度がおかしくなる問題を引き起こし、GUIインストールできず
    結果的にマウスが使えなくなる。
    テキストインストールでインストールを終わらすことはできるが、
    それでもマウスが使えないことに変わりはなく、意味がない。


    以下、その回避方法。
    インストール時にboot:で
    linux vesa i8042.noloop psmouse.proto=imps clock=pit
     
     
    Alt + F1でGUIのメニューをコントロールできるので
    CUI(GNOMW端末)を起動。
    /etc/grub.conf
    の"kernel"の行に以下のパラメタを追加

    i8042.noloop

    再起動して完了。

    ↓↓↓その他作業に関連する操作法↓↓↓

    CUI状態からXwindowを起動するには
    # startx

    initレベルを変更するには
    # vi /etc/inittab
    id:3:initdefault:

    VirtualPCからマウスを開放するには
    Windowsキー

    2010年9月3日金曜日

    PHPのIDE

    PDT(Eclipse PHP Development Tools)が便利とのことなのでとりあえず
    Eclipseを選択するが、日本語化などで手っ取り早いのが Pleiades とかいう
    All in One 日本語ディストリビューション があった。
    ただし、editionにいろいろあるみたい。
    今回は最新の3.6をチョイス
    • IDE
        * 3.6系 (Helios)
        * 3.5系 (Galileo)
        * 3.4系 (Ganymede)
        * 3.3系 (Europa)
        * 3.2系 (Callisto)

    • 利用するプラグイン
    ファイル転送→Remote System Explorer End-User Runtime
    DB接続・操作→DBViewer

    これにより、WinSCPやphpmyAdminはいらなくなるかも・・・。
    でもTeraTermやPoderosaはシステム操作に必須だから外せない。

    PHPの作法

    変数・・・先頭に$をつける
    定数・・・define(定数名,値)
    配列・・・$a = array("ねずみ","うし","とら")
    コメント・・・
    #コメントです
    //コメントです
    /* コメントです  */

    echoとprintの違い
    echo()・・・ 1つ以上の文字列を出力する 返り値なし
    print()・・・ 文字列を出力する 返り値は常に1