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 コマンド
bzip2
はgzip
よりも圧縮効率がよい。
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環境も必要となったため。 以下はそのスクリーションと記録です。
Installを選択
日本語を選択
日本を選択
rootのパスワードを入力
ユーザ名を入力
ユーザのパスワードを入力
Virtual Boxの仮想HDDを使うので「ディスク全体を使う」を選択
エンター
「すべてのファイルを一つのパーティションに」を選択
「パーティショニングの終了・・」を選択
インストールが始まる。
いいえを選択
はいを選択
日本を選択
適当にサーバーを選ぶ。私はもちろんjaist
プロキシがなければそのまま続行
aptが頑張ってくれる
これは好みではいかいいえを選ぶ
ソフトウェアの選択。私は3つを選択。
はい。大丈夫。
続ける。
自動的に再起動が行われ、ログイン画面が表示される。めでたしめでたし。
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コマンド
頻繁に利用するので割愛