2019年2月26日火曜日

【LinuC】rpmコマンド



rpmパッケージに関する情報を表示するには-qオプションと以下のオプションを組み合わせてrpmコマンドを使います。

■主なオプション
-q  パッケージがインストールされていればバージョン表示
-a  インストール済みのパッケージ情報を一覧で表示
-i   パッケージの詳細情報を表示
-f  指定したファイルを含むrpmパッケージの情報を表示
-c  --configfiles 指定したパッケージの設定ファイルのみを表示
-d  指定したパッケージのドキュメントのみを表示
-l  指定したパッケージに含まれるすべてのファイルを表示
-K  パッケージの完全性を確認するためにダイジェスト値と署名をチェックする
-R  パッケージが依存しているパッケージ名を表示
-p  インストール有無に関わらず指定したパッケージファイルの情報を表示
なし --changelog パッケージの更新情報を表示

インストール・アップグレードに関しては以下のオプションでrpmコマンドを実行します。
■主なオプション
-i  パッケージをインストールする(アップデートは行わない)
-U  パッケージをアップデートする。インストールされてない場合はインストールをする。
-F  パッケージをアップデートする。インストールされてない場合は何もしない。
-v  詳細な情報を表示する
-h  進行状況を#記号で表示する
なし --force  インストールされてても上書きインストールする。
なし --oldpackage 古いパッケージに置き換えることを許可する
なし --test パッケージをインストールせず衝突のチェックを行い結果を表示する

アンインストールに関しては以下のオプションでrpmコマンドを実行します。
■主なオプション
-e  パッケージを削除する
なし --nodeps 依存関係を無視してパッケージを削除する
なし --allmatches パッケージ名に一致するすべてのパージョンのパッケージを削除する

※使用例
(1)パッケージをインストールする前にパッケージの完全性をチェックする
$rpm -K パッケージファイル名

(2)インストールされていない場合は新規インストールし、旧バージョンの場合は更新する
$rpm -U パッケージファイル名

(3)パッケージのインストール状況をデータベースと比較して結果をファイルに格納
$rpm -Va >report







【LinuC】findコマンド



findコマンドは検索条件に一致するファイルを検索するコマンドです。かなり便利です。

■構文
find [path] [式]

■主な式 
-name  指定したファイル名で検索する
-type  ファイルのタイプで検索する。d(ディレクトリ)、f(ファイル)、l(シンボリックリンク)
-size  指定したブロックサイズで検索する
-atime 指定した日時を元に、最終アクセスがあったファイルを検索する
-mtime 指定した日時を元に、最終更新されたファイルを検索する。単位は日。
-print  検索結果を標準出力する。
-exec command \; 検索後、commandを実行する。
-mmin  指定した日時を元に、最終更新されたファイルを検索する。単位は秒。

■オプション
-maxdepath 指定した数値分の階層を掘り下げてファイルを検索する。


【LinuC】/etc/fstabの記載内容(mountの設定)



/etc/fstabにはデバイスとマウントポイント、ファイルシステムについての情報が記載されています。このファイルに設定を記載して「mount -a」を実行することでファイルに書かれている設定に従ってマウントを実行します。

/etc/fstabには以下の情報が左から順に記載されています。
①デバイスポンと名
②マウントポイント
③ファイルシステムの種類
④マウントオプション
⑤バックアップの指定
⑥ファイルシステムのチェック

※例
/dev/sda2  /         ext4  defaults  1  1
/dev/sda1  /boot  ext4  defaults  1  2  

④のマウントオプションにはどのような設定でマウントするかが書かれています。
マウントオプションには以下の種類があります。

主なマウントオプション
auto    -aが指定されたときにマウントされる
noauto ファイルシステムの書き込みを同期で行う
ro  ファイルシステムを読み取り専用でマウントする
rw  ファイルシステムを読み書き可能なモードでマウントする
user 一般ユーザにマウントを許可する。アンマウントはマウントしたユーザのみ可能
users 一般ユーザにマウントを許可する。アンマウントはマウントしたユーザ以外も可能 
usrquota ユーザに対してディスクに制限をかける。クォータ設定。
grpquota グループに対してディスクに制限をかける
defaults デフォルトのオプション、rw,suid,dev,exec,nouser,asyncを有効にする。

⑤はdumpコマンドによるバックアップの周期を日単位で設定することができます。
⑥はfsckによる整合性チェックの順番を1から順に設定します。通常はルートファイルシステムに1を設定してそれ以外に2以降の数値を割り当てます。0が設定されるとチェックが行われません。

現在マウントされているファイルシステムを表示させるには、「cat /proc/self/mounts」で確認するか、「mount」コマンドで確認をします。


【LinuC】dfコマンドとduコマンド

ファイルシステムの情報を確認する為にdfコマンドとduコマンドがあります。

■dfコマンド ファイルシステムの使用状況を表示する

主なオプション
-k キロバイト単位で表示する。
-h 容量に合わせた適切な単位で表示する。
-i inodeの使用状況をリスト表示する。 

■duコマンド ディレクトリの使用容量の表示

主なオプション
-a ディレクトリだけでなくすべてのファイルの容量を表示する。
-h 容量に合わせてた適切な単位で表示する。
-s 指定されたディレクトリの総和を表示する。
-S サブディレクトリを含めずに個々のディレクトリの総和を表示する。 





【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 環境変数名=値」とする。