StudyCS.log

ただの日記

シェル操作メモ2

概要

 Linux,Bashにおける基本的なコマンドをまとめている。前回の続き。よって注意事項も前回と同様で、コマンド、オプションもろもろ網羅的ではないので注意を。やはり細かい説明はマニュアルを参照すればいい話だから。

 

動機

 単なるメモ書き。画面の端に置いておいてちらちらとみるチートシートが欲しかったた。

内容

 ファイルの圧縮・解凍 

gzip オプション ファイル名

ファイルを圧縮するコマンド。オプションとして -d を指定すると解凍にも使える。 -c では標準出力へ内容を出力でき、 -rではディレクトリごと圧縮できる

bzip2 オプション ファイル名

ファイルを圧縮するコマンド。gzipよりも圧縮効率よい反面、圧縮には時間がかかる。ネットワークが貧弱な相手にはgzipよりもbzip2で送るほうがよいだろう。gzipと同じく -d を指定すると解答にも使える。 -c で標準出力に内容を出力する。

xz オプション ファイル名

ファイルを圧縮するコマンド。gzip,bzip2よりも圧縮効率が良い半面、圧縮には時間がかかる。ネットワークが貧弱な相手にデータを送り付けるのに最適。オプションで -d を指定すれば解答にも使える。また -l で圧縮ファイルの中身を確認したり、 -k で圧縮解凍後に元ファイルを残したりと、高度なこともできる。

gunzip ファイル名

gzipコマンドで圧縮されたファイル・ディレクトリを解凍するコマンド

bunzip2 ファイル名

bzip2で圧縮されたファイルを解凍するコマンド

unxz ファイル名

xzコマンドで圧縮されたファイルを解凍するコマンド

zcat ファイル名

gzipで圧縮されたファイルの中身を解答せずに覗き見れる。

bzcat ファイル名

bzip2で圧縮されたファイルの中身を解答せずに覗き見れる。

xzcat ファイル名

xzで圧縮されたファイルの中身を解答せずに覗き見れる。

アーカイブを使う

tar オプション アーカイブアーカイブするファイル・ディレクトリ名

アーカイブを管理するコマンド。オプションがたくさんあるが、アーカイブを作るときは -cvf , アーカイブを展開するときは -xvf を使う。 -r でアーカイブにファイルを追加し、 --delete で削除する。また、 -z でgzip、 -j でbzip2、 -J でxzで圧縮・解凍できる。

cpio フラグ オプション

アーカイブを作ったり、ファイルをコピーしたり、抽出したりできる。フラグは3種類。 -i ファイル抽出、-o アーカイブ作成、 -p ファイルを別のディレクトリにコピー。使うときには

ls | cpio -o > ディレクトリ名

のようにパイプを使うので、LPIC等の問題で見かけてもすぐ回答できるだろう。

権限の設定

chmod オプション アクセス権 ファイル名

権限を設定するコマンド。ユーザ、グループなどに対して、それぞれ権限を設定できる。ユーザは u 、グループは g、そのほかのユーザは o ,すべてのユーザを対象にするときは a を設定し、権限を与えるのか取り上げるのかを + , - で指定する。その後対象にする権限を r(読み取り)、w(書き込み・削除)、x(実行)で選択する。例として、グループに対して読み取りの権限を与えるときは g+r という具合にする。また、数値で指定することもできて、r =4 , w = 2 , x = 1 と割り振られているので、ユーザ・グループ・その他ユーザ の順に権限を足した和をつかって3桁で指定する。例として、ユーザには読みとり、書き込み、実行を許可し、グループとそのほかのユーザには読み取りと実行を許可する場合、

chmod 755 ファイル名

という具合にする。スティッキービットを指定したいときは3桁の頭に1を、SUIDを指定したいときには3桁の頭に4をつければよい。

chown オプション ユーザ名(:グループ名) ファイル名・ディレクトリ名

ファイルやディレクトリの所有者を再設定できる。root権限必須。

chgrep オプション グループ ファイル名・ディレクトリ名

ユーザの所属するグループを再設定できる。root権限必須。

リンク作る

ln オプション リンク元 リンクファイル

リンクファイルを作成する。オプションを指定しないとハードリンク、オプションで -s を指定するとシンボリックリンクを作成する。ハードリンクはファイルの実体を指すファイルで、シンボリックリンクリンク元のファイルやディレクトリを指すファイルになる。

プロセス・ジョブ・システムの管理

ps オプション

コマンドを打ったユーザが実行中のプロセスを一覧表示する。オプション ax や -e を指定するとシステム上のすべてのプロセスを確認できる。また、 f でプロセスをツリー上で表示したりということもできる。

pstree

ps f と同義でプロセスをツリー上で表示する。

top

実行中のプロセスを継続的に監視する。

     kill シグナル プロセスID 
     kill -s シグナル名 プロセスID
     kill -SIGシグナル名 プロセスID

プロセスにシグナルを送信する。シグナルは60種類くらいあるが、これは kill -l で確認できる。killコマンドで使う主なシグナルとしては、-TERM (通常終了) -KILL (強制終了) HUP (ハングアップ) などがある。詳しくはマニュアルを参照。

pgrep オプション プロセス名

プロセスIDを調べられる。オプションで -u を指定するとユーザ名 -g を指定するとグループ名を検索に使うこともできる。

     killall -シグナル名 プロセス名
     killall -s シグナル名 プロセス名
     killall -SIGシグナル名 プロセス名

名前が一致するプロセスすべてにシグナルを送信する。

pkill オプション シグナル プロセス名

名前が一致するプロセスにシグナルを送信する。 -u でユーザ、-g でグループのプロセスに対してのみにシグナルを送信できる。

jobs

実行中のジョブを確認できる。

nohub コマンド

指定されたコマンドの処理をログアウト後も続けるようにする。

free オプション

システムの利用状況を確認する。 -m でMB単位で表示、 -s で指定した間隔で再表示する。

uname

OS,アーキテクチャの種類を確認できる。 -a オプションで詳細に表示できる。

watch オプション コマンド名

指定されたコマンドを一定時間ごとに実行する。 -n で秒数を指定し、 -d で変化部分を強調して表示、-t でヘッダを省いて表示する。

uptime

CPUの実行待ちのプロセスの平均値を出力する。load average の3つの数字は前から順に、直近1,5,15分の実行待ちプロセスの平均値。

bg ジョブ番号

ジョブをバックグラウンドへ。

fg ジョブ番号

ジョブをフォアグラウンドへ。

nice -n ナイス値 コマンド名

実行しているプロセスのナイス値を高くする。一般ユーザは0~19までナイス値を増やせる。root権限を持っているときは -をつけてナイス値を指定する。

renice -n ナイス値 -p プロセスID -u ユーザ名

ユーザのプロセスIDを指定してナイス値を変更できる。root権限必須

まとめ

  bashには便利なコマンドがたくさん備わっている。

 ここに乗せているコマンド以外にもたくさんコマンドがある。詳しい説明はmanでマニュアルを検索して調べよう。(再び)

参考文献

「中島能和:著 濱野賢一郎:監修 『Linux教科書 LPIC レベル1』翔泳社 2019年」第4章