2019年2月26日火曜日

【LinuC】linuxで使用されるファイルシステムの種類

linuxでhfdiskコマンドでパーティションを作成した後で各パーティションにファイルシステムを割り当てます。
ファイルシステムの種類と特徴を以下に記載します。

ext linux初期のファイルシステム
ext2 extから機能を拡張されたもの
ext3 ext2にジャーナル機能が追加されたもの
ext4 ext2/3からの拡張でナノ秒単位のタイムスタンプやデフラグ機能が追加されている
reiserfs ジャーナル機能を持ったファイルシステム。クラッシュからの高速な回復が可能
xfs  ジャーナル機能を持ったファイルシステム。SGIが開発
jfs  ジャーナル機能を持ったファイルシステム。IBMが開発
vfat WindowsとLinuxの両方で読み書き可能なファイルシステム。
btrfs 木構造のファイルシステムを持ち、ファイルシステムのスナップショット機能がある。


【LinuC】FHSのファイルシステム

FHS(Filesystem Hierarhy Standard)はディレクトリ構造の標準でLinuxのディストリビューションで多く使われています。
主なディレクトリの役割は以下のようになっています。

/   ファイルシステムの頂点になるディレクトリ
/bin  ユーザや管理者が使用するコマンドが配置される。
/dev  デバイスファイルが配置される。機器が接続されると自動的に作成される。
/etc  システム管理用の設定ファイルや、各種システムの設定ファイルが配置される。
/lib   /binや/sbinに配置されたコマンドが使用するライブラリが配置される。
/lib/modules カーネルモジュールが配置される。
/media CDやDVDのデータが配置される
/opt  Linuxインストール後に追加したパッケージが格納される
/proc カーネルやプロセスが保持する情報が配置される。ファイル自体は存在しない
/root rootユーザのホームディレクトリ
/sbin システム管理者が実行するコマンドが配置される。
/tmp アプリケーションやユーザが利用する一時ファイルが配置される。
/var  システム運用中にサイズが変わるファイルが配置される。
/var/log システムやアプリのログファイルが配置される。
/boot システム起動時に必要なブートローダ関連のファイルが配置される。
/usr  ユーザが共有するデータが配置される。
/usr/bin 一般ユーザ、管理者が使用するコマンドが配置される。
/usr/lib 各種コマンドが利用するライブラリが配置される。
/usr/local 追加でインストールされたパッケージが入る。この下にbin,sbin,libが配置される。
/usr/sbin システム管理者のみが実行できるファイルが配置される。
/home  ユーザのホームディレクトリが配置される。


2019年2月19日火曜日

【LinuC】killコマンド

Linuxのこまんどにもkillコマンドがあり、プロセスに対してシグナルを送信することができます。シグナル番号などは全部同じなので覚えておくと便利そうです。

■構文
$kill [オプション] [シグナル名 | シグナル番号] プロセスID
$kill [オプション] [シグナル名 | シグナル番号] %ジョブID
$killall [オプション] [シグナル名 | シグナル番号] プロセス名

■主なシグナル
シグナル番号1 SIGHUP  端末の切断によるプロセスの終了
                                        設定ファイルの再読み込みをさせたい時にも使う。
シグナル番号2 SIGINT  キーボード割り込みによるプロセスの終了(Ctrl+C)
シグナル番号9 SIGKILL  プロセスの強制終了
シグナル番号15 SIGTERM プロセスの終了(デフォルト)
シグナル番号18 SIGCONT 一時停止したプロセスの再開




2019年2月18日月曜日

【LinuC】cutコマンド

ファイルの中から特定の部分を取り出すcutコマンドを紹介します。
普段使うことがないけど、便利そうな気がしました。


■構文
$cut [オプション] ファイル名

-c 指定された位置の各文字だけを表示する
-b 指定された位置の各バイトだけを表示する 
-f 指定された各フィールドだけを表示する
-d -fと一緒に使い、区切り文字を指定する
-s -fと一緒に使い、区切り文字を含まない行を表示しない

■使用例
$cut -d ' ' -f 2 file.txt
⇒区切り文字を空白としてfile.txtから2番目のフィールドを取り出す。

$cut -d ' ' -f 1,3 file.txt
⇒区切り文字を空白としてfile.txtから1番目と3番目のフィールドを取り出す。

$cut -c 1-3 file.txt
⇒file.txtから1文字目から3文字目までを取り出す。

$ps ax | cut -c 1-5
⇒「px ax」の表示結果から先頭の5文字を取り出す。


2019年2月17日日曜日

【LinuC】grepコマンド 正規表現

grepコマンドは、検索範囲から文字列を検索するコマンドです。

通常の検索
$grep aaa bbb.txt
⇒bbb.txt の中から「aaa」という文字列が入っている行を検索する。

正規表現を使った検索
$grep '^a' bbb.txt
⇒bbb.txt の中から先頭の文字が「a」から始まる行を検索する。

他にも以下のようなメタキャラクタもあり使用することができます。

.             任意の文字に一致
^    行の先頭
$    行の末尾
*    直前の文字が0回以上の繰り返しに一致
?    直前の文字が0回もしくは1回の繰り返しに一致(拡張正規表現)
+    直前の文字が1回以上の繰り返しに一致(拡張正規表現)
[abAB]  a,b,A,Bいずれかの文字
[^abAB] a,b,A,B以外のいずれかの文字
[a-dA-D] a,b,c,d,A,B,C,Dいずれかの文字
\x            メタキャラクタを文字列として扱う(xがメタキャラクタの時)

※拡張正規表現を使う場合はgrepに-Eのオプションが必要。

■使用例
$grep '.' file.txt
⇒空白行以外をすべて表示する。

$grep '\.' file.txt
⇒ピリオドを含むすべての行を表示する。

$grep '[Ll]inux' file.txt
⇒Linix,linuxのいずれかを含む行をすべて表示する。

$grep '^[^0-9]' file.txt
⇒先頭の1文字が数値以外の行をすべて表示する。

$grep '^[^#]' file.txt
⇒先頭の一文字が#以外で始まるコメント行以外の行をすべて表示する。

$grep '.a[^b].' file.txt
⇒2文字目と5文字目がa。3文字目がb以外の行を表示する。

$grep ^# file.txt | wc -l
⇒戦闘が#で始まる行数を数える。

正規表現を使わずに検索を行う場合はfgrepやFオプションを使って検索します

$fgrep '^apple' sample.txt
⇒^appleの文字列をsample.txtから検索する。

$grep -F '^apple' sample.txt
⇒^appleの文字列をsample.txtから検索する。




  

2019年2月11日月曜日

【LinuC】ワイルドカードについて

コマンドラインを実行する際に使うことができるワイルドカードについてまとめます。

?   任意の一文字。
*   0文字以上の文字列。
[abc] abcのいずれかが一致。[a-c]と記載することもできる。
[!abc] abc以外の文字列。[!abc]と記載することもできる。
~   ホームディレクトリを表す。
$   変数の置換やコマンドの置換を行うことができる。
'    シングルクォート内の文字列が変数として展開されない。
”   ダブルクォート内の文字列が変数として展開される。
`   バッククォートはコマンドとして扱う。

【LinuC】シェル変数の説明


主なシェル変数の内容を紹介します。
Linux上で参照できる変数には、シェル変数と環境変数の2種類があります。


①シェル変数
 ・設定されたシェル上でのみ使用できる変数。
 ・設定内容の一覧を表示する場合は「set」コマンドを使用する。
 ・値を定義するときは「シェル変数名=値」とする。

■主なシェル変数
PWD:カレントディレクトリの絶対パス
PATH:参照しているコマンドのパス
HOME:ユーザのホームディレクトリ
PS1:プロンプトを定義
PS2:2次プロンプトを定義
HISTFILE:コマンド履歴を格納するファイルを定義
LANG:言語情報

 ・シェル変数を子プロセスでも参照させたい場合は、「export 変数名」や
 「decare -x 変数名」として、環境変数としてエクスポートするようにする。

②環境変数
 ・設定されたシェルで起動した子プロセスにも引き継がれて使用することができる変数
 ・設定内容の一覧を表示する場合は「env」コマンドを使用する。
 ・値を設定するときには「export 環境変数名=値」とする。