読者です 読者をやめる 読者になる 読者になる

LPIC デバイス周り

デバイス周りについて

IDE

プライマリ・セカンダリ x マスタ・スレイブ ATAPI

SCSI

IDEよりも高価だけど転送速度がはやいので高速性や拡張性が求められるサーバやワークステーションで多く利用されている

SATA

IDEの後継規格。IDEよりも高速で多くのPCで採用されている。

SAS

SATAよりも高速。だけど高価。主にサーバ用途。

USB

言うまでもなし。

デバイスファイル

  • /dev/hd[abc..] IDEハードディスク。順番にプライマリマスター、プライマリスレーブ、セカンダリマスター。。。
  • /dev/sd[abc..] SCSI/SATA/USBハードディスク。
  • /dev/sr0 一番目のCD/DVDドライブ
  • /dev/st0 一番目のテープドライブ

最近では/dev/hdaが/dev/sdaとなっていることがある。

パーティション

基本パティションはディスクに最大四個作れる。/dev/sda1,/dev/sda2,/dev/sda3,/dev/sda4となる。
基本パーティションの1つを拡張パーティションにすることができる。拡張パーティションの中には論理パーティションが格納される。 論理パーティションは拡張パーティションの中に作成されたパーティション。番号付けは/dev/sda5以降となる。

パーティションに分割するメリットは 障害時の影響波及の抑制や原因の早期とくていなど。

fdiskコマンド

パーティションの作成、削除、変更、情報表示などを行う。

#  fdisk -l /dev/sda

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00005d0b

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        1045     7875584   8e  Linux LVM

mkfsコマンド

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

mkfsコマンドはパーティション上にファイルシステムを作成する。

mkfs [-t ファイルシステムタイプ] [-c] デバイス名

-cオプションは実行前に不良ブロックを検査する。

ファイルシステムタイプは以下のとおり。指定しないとext2がデフォルトで選択される。

mke2fsコマンド

mke2fs [オプション] デバイスファイル名

オプションは基本的にmkfsと同じ

mkswapコマンド

スワップ領域を作成する。

mkswap デバイス名

dfコマンド

ディスクやフォルダの使用状況を確認

主なオプション

  • h: 正確なメガバイト数で表示
  • H : 1メガ1,000,000バイトで表示
  • k : キロバイトで表示
  • i : iノードの使用状況を表示

      # df -h /dev/sda1
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/sda1             485M   53M  407M  12% /boot
      # df -H /dev/sda1
      Filesystem             Size   Used  Avail Use% Mounted on
      /dev/sda1              508M    56M   427M  12% /boot
      # df -Hi /dev/sda1
      Filesystem            Inodes   IUsed   IFree IUse% Mounted on
      /dev/sda1               129k      44    128k    1% /boot
      # df -k /dev/sda1
      Filesystem           1K-blocks      Used Available Use% Mounted on
      /dev/sda1               495844     53805    416439  12% /boot
    

duコマンド

ファイルやディレクトリが占めている容量を表示。

XML::LibXMLのインストールについての備忘録

何度もおんなじ様なことをしている気がするのでメモしておきます。

cpanmを使ってXML::LibXMLをインストール

cpanm XML::LibXML

すると怒られる

-> FAIL Configure failed for XML-LibXML-2.0018. See /home/kisho/.cpanm/build.log for details.

ということで予め必要な以下のパッケージをインストール。 

# yum install xmllib2 xmllib2-devel

再度cpanmでインストールを実行するとうまくいく。

LPIC ファイル操作周りについて

gzip コマンド

gzip [オプション] ファイル名
オプション 説明
-d 圧縮ファイルを展開する。
-c 標準出力へ出力
-r ディレクトリ内のファイルすべてを圧縮
# ls
test  test.txt
# gzip test.txt
# ls
test  test.txt.gz
# gzip -d test.txt.gz
# ls
test  test.txt
# gzip -c test.txt > test.txt.gz
# ls
test  test.txt  test.txt.gz
# ls test/
1.txt  2.txt  3.txt
# gzip -r test
# ls test
1.txt.gz  2.txt.gz  3.txt.gz

gunzipコマンドはgzip -dと同じ

bzip2 コマンド

bzip2gzipよりも圧縮効率がよい。

gzip [オプション] ファイル名  
オプション 説明
-d 圧縮ファイルを展開する。
-c 標準出力へ出力
# ls
test  test.txt
# bzip2 test.txt
# ls
test  test.txt.bz2

tarコマンド

よく使うので手短に

オプションは-cで作成-xで展開-tで内容の確認。 -z,-j,-Jはそれぞれgz,bz2,7z

cpioコマンド

ファイルをアーカイブにコピーしたり、アーカイブからファイルをコピーする。

cpio フラグ [オプション]
フラグ 説明
-i オプション パターン アーカイブからファイルを抽出する
-o オプション アーカイブを作成する
-p オプション ディレクトリ ファイルを別のディレクトリにコピーする
オプション 説明
-A 既存のアーカイブにファイルを追加する
-d 必要ならディレクトリを作成する
-r ファイル名を対話的に変更する
-t コピーはせず、入力された内容を一覧表示する
-v ファイル名の一覧を表示する
$  ls | cpio -o > archive

dd コマンド

入力側に指定したファイルからの入力をファイルもしくは標準出力に送る。 cpコマンドと違うのはHDDやCD-ROMなどのディバイスを扱えること。

# dd if=/dev/sdb of=/dev/sdc

SUID, SGID

とあるプログラムで誰が実行してもrootユーザで実行されるようにしたいときはSet User ID(SUID)が利用できる。

$ chmod u+s プログラム名など

もしくは644などの3桁のアクセス権に4000を加える事でSUIDを実現できる。
設定グループで実行されるようにしたい場合はSet Group ID(SGID)が利用できる。

$ chmod g+s プログラム名など

3桁のアクセス権に2000を加える事でSGIDを実現できる。

ステッキービット

書き込み権限があっても自分以外のユーザが所有するファイルを削除できないというような設定はスティッキービットを指定することでできる。/tmpなどで利用されている仕組み。

# chmod o+t dir

もしくは3桁のアクセス権+1000。

umask

umaskは

777- 3桁のアクセス権

で求まる数値。

# umask
0022
# umask 077
# ls -l hello.txt
-rw-------. 1 root root 0 Jun  8 17:53 hello.txt

ACL

アジアNo.1クラブを決めるサッカーの・・ではなく、chmodの3桁だけでは細かいアクセス制御を行うときに使える。Access Control List(ACL)

$ setfacl -m u:hoge:rw testfile (hogeユーザに読み書きを許可)
$ getfacl ファイル名 (ACL情報の取得)

chown, chgrp

よく使うので割愛

lnコマンド

ハードリンク、シンボリックリンクを作成する。

$ ln オリジナルファイル名 リンクファイル名 (ハードリンク)
$ ln -s オリジナルファイル名 リンクファイル名 (シンボリックリンク)

cpコマンドでリンクをコピーするとリンク先の自体65コピーされる。cp -dとやればシンボリックリンク自体をコピーできる。

Virtual BoxにDebianインストール スクショ記録

Virtual BoxにDebianをインストールしました。今まではVirtual BoxにCentOSを入れて利用していたのですが、LPICの勉強のためにDebian環境も必要となったため。 以下はそのスクリーションと記録です。

f:id:fakeyakuza:20130605082434p:plain

Installを選択

f:id:fakeyakuza:20130605082514p:plain

日本語を選択

f:id:fakeyakuza:20130605082550p:plain

日本を選択

f:id:fakeyakuza:20130605082754p:plain

rootのパスワードを入力

f:id:fakeyakuza:20130605083008p:plain

ユーザ名を入力

f:id:fakeyakuza:20130605083041p:plain

ユーザのパスワードを入力

f:id:fakeyakuza:20130605093902p:plain

Virtual Boxの仮想HDDを使うので「ディスク全体を使う」を選択

f:id:fakeyakuza:20130605093903p:plain

エンター

f:id:fakeyakuza:20130605093904p:plain

「すべてのファイルを一つのパーティションに」を選択

f:id:fakeyakuza:20130605093905p:plain

「パーティショニングの終了・・」を選択

f:id:fakeyakuza:20130605093906p:plain

インストールが始まる。

f:id:fakeyakuza:20130605093907p:plain

いいえを選択

f:id:fakeyakuza:20130605093908p:plain

はいを選択

f:id:fakeyakuza:20130605093909p:plain

日本を選択

f:id:fakeyakuza:20130605093910p:plain

適当にサーバーを選ぶ。私はもちろんjaist

f:id:fakeyakuza:20130605093911p:plain

プロキシがなければそのまま続行

f:id:fakeyakuza:20130605093912p:plain

aptが頑張ってくれる

f:id:fakeyakuza:20130605093913p:plain

これは好みではいかいいえを選ぶ

f:id:fakeyakuza:20130605093914p:plain

ソフトウェアの選択。私は3つを選択。

f:id:fakeyakuza:20130605093916p:plain

はい。大丈夫。

f:id:fakeyakuza:20130605093918p:plain

続ける。

f:id:fakeyakuza:20130605093920p:plain

自動的に再起動が行われ、ログイン画面が表示される。めでたしめでたし。

LPIC コマンドまわりについて その2

nlコマンド

cat -nのようにファイルの一部に行番号をつける

odコマンド

バイナリファイルの内容を8進数や16進数で表示

# od -t x /etc/localtime
0000000 66695a54 00000032 00000000 00000000
0000020 00000000 03000000 03000000 00000000
0000040 09000000 03000000 0c000000 7085cec3
0000060 901e3ed7 8016ecd7 9016f9d8 80f8cbd9
0000100 101d07db 80daabdb 10ffe6dc 80bc8bdd
0000120 01020102 01020102 7e000002 00000090
0000140 01a08c00 7e000004 43080090 4a00544a
0000160 4a005444 00005453 00000000 695a5400
0000200 00003266 00000000 00000000 00000000
0000220 00000000 00000005 00000005 00000000
0000240 0000000b 00000005 ffffff10 a4c265ff
0000260 ffffff70 e3ce74ff ffffff70 85cec3ff
0000300 ffffff70 1e3ed7ff ffffff90 16ecd7ff
0000320 ffffff80 16f9d8ff ffffff90 f8cbd9ff
0000340 ffffff80 1d07dbff ffffff10 daabdbff
0000360 ffffff80 ffe6dcff ffffff10 bc8bddff
0000400 04020180 04030403 04030403 03830000
0000420 00000000 0400907e 907e0000 00000800
0000440 0c01a08c 907e0000 4d4c0400 534a0054
0000460 4a430054 444a0054 01000054 00000000
0000500 00000001 54534a0a 000a392d
0000513

# od -t o 8進数 (デフォルト)
#od -t c ascii文字

cutコマンド

ファイルの各行から指定したフィールドを取り出す。

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

# cut -c 7 /etc/hosts (各行の7文字目)
0

# cut -c 1-7 /etc/hosts (各行の1-7文字目)
127.0.0
::1

# cut -d. -f 3 /etc/hosts (.をセパレータとして3つ目のフィールドを取り出す。)
0
localdomain6

joinコマンド

2ファイルの共通するフィールドを持つ行を連結する。

# cat sample1.txt
1:Tokyo
2:Shizuoka
3:Nagoya
4:Osaka
5:Miyagi
# cat sample2.txt
1:Aomori
2:Sendai
3:Utunomiya
4:Omiya
5:Urawa
# join  sample1.txt sample2.txt
1 Tokyo Aomori
2 Shizuoka Sendai
3 Nagoya Utunomiya
4 Osaka Omiya
5 Miyagi Urawa

pasteコマンド

2ファイルの共通する行を水平方向に連結する

# paste -d":" sample1.txt sample2.txt
1 Tokyo:1 Aomori
2 Shizuoka:2 Sendai
3 Nagoya:3 Utunomiya
4 Osaka:4 Omiya
5 Miyagi:5 Urawa

trコマンド

標準入力からの文字列を変換削除する。

# cat sample1.txt |tr [a-z] [A-Z]
1 TOKYO
2 SHIZUOKA
3 NAGOYA
4 OSAKA
5 MIYAGI

# cat sample1.txt |tr -d [a-z]
1 T
2 S
3 N
4 O
5 M

splitコマンド

ファイルを分割(行数指定)

# split -2 sample1.txt sample1_split.
# ls sample1_split.a*
sample1_split.aa  sample1_split.ab  sample1_split.ac
# cat sample1_split.aa
1 Tokyo
2 Shizuoka
# cat sample1_split.a*
1 Tokyo
2 Shizuoka
3 Nagoya
4 Osaka
5 Miyagi

uniqコマンド

重複している行を1行に表示。sortコマンドなどでソート済み前提。

# cat sample3.txt
1 Aomori
1 Aomori
2 Sendai
2 Sendai
3 Utunomiya
4 Omiya
4 Omiya
5 Urawa
# uniq sample3.txt
1 Aomori
2 Sendai
3 Utunomiya
4 Omiya
5 Urawa

prコマンド

ファイルの諸新規を整える。印刷剃る前の整形によく利用される、

pr [オプション] [ファイル名]
オプション 説明
+開始ページ[:終了ページ] 開始ページや終了ページを指定する
-h ヘッダ文字列 ヘッダに表示されるファイル名を指定した文字に変更する
-l ページ長 ヘッダとフッタを含めたページの長さを暁雨数で指定する
# pr -l 15 +1:3 /etc/nginx/nginx.conf


2013-02-22 15:51              /etc/nginx/nginx.conf               Page 1


# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user              nginx;







2013-02-22 15:51              /etc/nginx/nginx.conf               Page 2


worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;







2013-02-22 15:51              /etc/nginx/nginx.conf               Page 3



pid        /var/run/nginx.pid;


events {

fmtコマンド

テキストを決められた文字数の幅に整形する。

# fmt -w 40 /etc/nginx/nginx.conf
# For more information on
configuration, see: #   *
Official English Documentation:
http://nginx.org/en/docs/ #   *
Official Russian Documentation:
http://nginx.org/ru/docs/

user              nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log
(略)

expand, unexpandコマンド

前者はタブをスペースに変換する。後者はその逆。

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

以下オプション

  • -t:行頭のタブのみ変換
  • -t タブ幅 タブ幅を指定する

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

  • -a行頭以外の空白も変換する。

wc, grep, sedコマンド

頻繁に利用するので割愛