Linuxのお勉強(2)
- やりたいこと
- 教科書
- システムファイルを見つける、適切な位置にファイルを配置する
- ハードリンクとシンボリックリンクを作成・変更する
- ファイルのパーミッションと所有者を管理する
- ファイルのパーミッションと所有者を管理する
- ファイルシステムの整合性を保持する
- パーティションとファイルシステムの作成
- viを使って基本的なファイル編集を行う
- プロセスの実行優先度を変更する
- プロセスを生成、監視、終了する
- ストリーム、パイプ、リダイレクトを使う
- 所感
やりたいこと
linuxの構造やコマンドの知識を増やしたい
教科書
システムファイルを見つける、適切な位置にファイルを配置する
特定のディレクトリをupdatedbの情報更新対象外に設定する際はupdatedb.confに設定を記述する。そのまんま。
updatedbコマンドは、locateコマンドやslocateコマンドを使ってファイルの検索をするための情報データベースを最新の状態に保つためのコマンド。
/etc/updatedb.confの内容例
PRUNEFS="sysfs selinuxfs usbdevfs devpts NFS nfs nfs4 afs sfs proc smbfs cifs autofs auto iso9660 udf" PRUNEPATHS="/tmp /usr/tmp /var/tmp /afs /net /sfs /selinux /udev /mnt/floppy /media" export PRUNEFS export PRUNEPATHS
PRUNEFS: mountコマンドでマウントする際に指定するファイルシステムの種類
PRUNEPATHS: 具体的なパスの指定
pruneは余分なものを取り除くという意味がある
ハードリンクとシンボリックリンクを作成・変更する
参考: 6.ユーザー管理
ファイルのパーミッションと所有者を管理する
新たに作成されたファイルやディレクトリの所有ユーザーは、作成したユーザーと、そのユーザーのプライマリグループに設定される
プライマリグループとは、ユーザが何らかのコマンドを実行する際にグループ権限として参照される一番優先順位の高いグループのこと
"ファイルの所有ユーザーを変更できる"のは、rootユーザーのみ
"ファイルの所有グループを変更できる"のは、rootユーザー or そのファイルを所有しているユーザー
Q: 作成したファイルを他のユーザーにもアクセスさせたいときはどうするの?
A: 所有グループを変更し、適切なパーミッションを与える
例:fileファイルをotherグループに対して読み書き可能にする
$ touch file fileファイルを作成 $ chgrp other file fileの所有グループをotherに設定 $ chmod g+rw file fileのグループパーミッションをrwに設定
参考: 104.5 ファイルのパーミッションと所有者を管理する|サンプル問題/例題解説|受験対策|IT資格といえばLPI-Japan | LinuC/OSS-DB/HTML5/OPCEL/LPIC
ファイルのパーミッションと所有者を管理する
umaskの考え方は、すべてのパーミッションが読み書き可能な状態から、umaskの値を引いた値が設定される
設定値は所有者、グループ、その他の順にそれぞれ0から7の整数で表わされる
ファイル:666がデフォルト
ディレクトリ:777がデフォルト
例:
○ファイルの場合
666 (rw-rw-rw-) -002 (-------w-) ----------------- 664 (rw-rw-r--)
○ディレクトリの場合
777 (rwxrwxrwx) -002 (-------w-) ----------------- 775 (rwxrwxr-x)
参考: 104.5 ファイルのパーミッションと所有者を管理する|サンプル問題/例題解説|受験対策|IT資格といえばLPI-Japan | LinuC/OSS-DB/HTML5/OPCEL/LPIC
ファイルシステムの整合性を保持する
iノードの仕組みは、実際にファイルのデータを保管しているデータ領域とは別に、iノード情報を保管するiノード領域が確保されている
iノード領域の使用状況は、dfコマンドに-iオプションをつけることで確認できる
例)データ領域の使用状況
$ df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hda2 19656572 14523320 4134752 78% / none 262240 0 262240 0% /dev/shm
例)iノード領域の使用状況
$ df -i Filesystem Iノード I使用 I残り I使用% マウント位置 /dev/hda2 2496960 333530 2163430 14% / none 65560 1 65559 1% /dev/shm
例)2KB毎にiノードを割り当てる
mke2fs -i 2048 /dev/hda2
割り当てられるブロックサイズよりも小さいファイルが大量に作成されるような場合には、iノード割当量を変更を検討すべき
参考: 104.2 ファイルシステムの整合性を保持する|サンプル問題/例題解説|受験対策|IT資格といえばLPI-Japan | LinuC/OSS-DB/HTML5/OPCEL/LPIC
パーティションとファイルシステムの作成
ファイルシステムのジャーナリング機能とは: 突然の電源断など正常なシャットダウン処理が行えなかった際の、再起動時のファイルシステムチェックを効率よく行う仕組み
具体的には、実際の書き込みを行う前にジャーナルに記録を行い、もし異常終了が起きた場合は、ジャーナルの情報に基づいて壊れている可能性がある部分だけをチェックして修復する
ext3ファイルシステム: 、ext2にジャーナリング機能を追加したもの. 相互に互換性があるため、比較的使用しやすい.
ReiserFS: Hans Reiserによって作成された、古典的なB-ツリーアルゴリズムの変種を使ったファイルシステム.ジャーナリング機能が最大の特徴.
XFS: データベース技術を応用したジャーナリングファイルシステムを用いてファイルシステム内の変更履歴を保存し、ファイルシステムが破損した場合に高速に修復できるという特徴. また、64ビットファイルシステムを採用し、最大1800TB(テラバイト)のディスクスペース、最大900TBのファイルも扱うことができる.
参考:
viを使って基本的なファイル編集を行う
Q: テキストファイルの最終行にカーソル移動させるコマンドは?
A: G
Go ToのG
10Gと指定すれば10行目へ移動する
参考: viエディタの使い方
プロセスの実行優先度を変更する
Linuxは、複数のプロセスを同時に並行して動作させるマルチプロセスのOS
ある時点で動作しているプロセスは1つだけで時間を区切って順番にプロセスを切り替えて実行することで、見かけ上複数が同時並行で動作しているように見せている
nice値は、重要度はそれほど高くないプロセスには低い優先順位をつけて、他のプロセスの実行を邪魔をしないようにしたりすることで、円滑なプロセス実行を可能にする仕組み
nice値は、-20(最高優先)から19(最低優先)までの40段階に分かれており、基本的にデフォルトは中間の0に設定
reniceコマンドは、実行中のプロセスのnice値を変更できる
例: PID 2742のnice値を10に変更
renice 10 2742
参考: 103.6 プロセスの実行優先度を変更する|サンプル問題/例題解説|受験対策|IT資格といえばLPI-Japan | LinuC/OSS-DB/HTML5/OPCEL/LPIC
プロセスを生成、監視、終了する
プロセスには、以下の2種類に大きく分けられる↓
システム起動時に実行されたり、システム管理者が起動したプロセス
システムを利用しているユーザーが実行しているプロセス
ジョブ: 中断されているプロセスや、バックグラウンドで実行されているプロセスのこと.
jobsコマンドを実行することでどのようなジョブが実行されているかを確認することができる
ストリーム、パイプ、リダイレクトを使う
標準入出力には番号がついており、番号指定でストリームを制御することができる↓
0 標準入力
1 標準出力
2 標準エラー出力
例1: 標準エラー出力をファイルに保存したい場合
command 2> error.txt
例2: 標準出力と標準エラー出力を、別々のファイルに出力する場合
command > file.txt 2> error.txt
例3: 標準出力と標準エラー出力を同じファイルに出力する場合
command 1> file.txt 2>&1
&を使って標準出力に標準エラー出力を混ぜる
参考: 103.4 ストリーム、パイプ、リダイレクトを使う|サンプル問題/例題解説|受験対策|IT資格といえばLPI-Japan | LinuC/OSS-DB/HTML5/OPCEL/LPIC
所感
まだまだLinuxシステムについての理解が足りない。。。
一歩ずつ !