linux ジョブとプロセス覚え書き
用語集
- プロセス メモリ上で実行状態にあるプログラムで、カーネルから見た処理の単位
- デーモン バックグラウンドで実行される、ターミナルに接続されていないプロセス
- ジョブ シェルから見た処理の単位
プロセスの確認
$ ps
コマンドでプロセスの一覧を確認
オプション
x 現在ユーザが実行しているすべてのプロセスを表示
a すべてのユーザのプロセスを表示
f プロセスの親子関係を表示
u 詳細情報を表示
ハイフンをつけると意味が変わるらしい
例
$ ps xf PID TTY STAT TIME COMMAND 1393 tty1 S+ 0:00 -bash 1684 ? Ss 0:00 /sbin/upstart --user 1752 ? S 0:00 \_ upstart-udev-bridge --daemon --user 1762 ? Ss 0:01 \_ dbus-daemon --fork --session --address=unix:abstr 1774 ? Ss 0:00 \_ /usr/lib/x86_64-linux-gnu/hud/window-stack-bridge 1796 ? S 0:05 \_ /usr/bin/fcitx ・ ・ ・
ジョブの操作
$ jobs
コマンドで現在のジョブ一覧やジョブ番号を確認
ctrl + z
で現在操作中のジョブを中断
$ fg %<ジョブ番号>
ジョブをフォアグラウンド(操作可能な状態)に戻す
$ bg %<ジョブ番号>
ジョブをバックグラウンド(操作はできないが処理は続行中)にする
$ <コマンド> &
コマンドの末尾に&をつけると最初からバックグラウンドで実行する
ジョブ・プロセスの終了
$ kill %<ジョブ番号>
ジョブを終了させる
$ kill <プロセスID>
プロセスを終了させる
tmuxキーバインド
ctrl+b -> c : 新しいウィンドウを作成
ctrl+b -> n : 次のウィンドウへ移動
ctrl+b -> p : 前のウィンドウへ移動
ctrl+b -> 数 : 指定した番号のウィンドウへ移動
ctrl+b -> & : ウィンドウを閉じる
ctrl+b -> % : ウィンドウを左右分割
ctrl+b -> “ : ウィンドウを上下分割
ctrl+b -> o : 分割されたウィンドウ中を移動 矢印キーでも可
ctrl+b -> [ : 矢印キーでスクロール (qで戻る)
linuxのファイルパーミッション覚え書き
linuxが提供するファイルパーミッション機能によって、ファイルの読み書きや実行、ディレクトリへの書き込みや削除をコントロール出来る。
1.ファイルのオーナーとグループ、パーミッションを確認
コマンド$ ls -l
で、ファイルのオーナー(所有者)と、ファイルが所属しているグループ、パーミッションを確認することが出来る
例
$ ls -l /etc/wgetrc -rw-r--r-- 1 root root ...
意味: ファイルのオーナー=root ファイルのグループ=root で、
オーナーはファイルの読み込み・書き込みができる
ファイルのグループと同じグループに所属するユーザはファイルの読み込みだけが出来る
その他のユーザもファイルの読み込みだけができる
自分が所属しているグループは$ groups
コマンドで確認する
rwx rwx rwx オーナー グループ その他のユーザ
2.ディレクトリのパーミッション
コマンド $ls -ld
で、ディレクトリのパーミッションを確認することが出来る
例
$ ls -ld ~ drwxr-xr-x 30 user-name user-name ...
ディレクトリの場合は、r,w,xの意味が少し異なる。
r: そのディレクトリに含まれるファイル一覧を取得
w: そのディレクトリの下にファイル・ディレクトリを新規作成 または削除
x: そのディレクトリをカレントディレクトリにする
3.chmodコマンドでパーミッションの変更
r(読み込み):4
w(書き込み):2
x(実行):1
とし、その合計値を用いてファイルパーミッションを変更できる。
例:あるファイルについて、オーナー・グループ・その他のすべてのユーザに読み込みと書き込みを許可したい場合は
sudo chmod 666 file-name
と実行すれば良い
例2:オーナーのみ読み込み・書き込み・実行の許可を出したい場合
sudo chomod 700 file-name
findコマンドでファイルを探す
linuxのfindコマンドの使い方
基本
$ find <検索の起点ディレクトリ> <オプション> <条件指定>
具体例
$ find . -name '*.txt'
意味: カレントディレクトリ以下に存在している、拡張子が.txtのファイルをすべて表示させる
オプション
-iname で大文字小文字を区別しないで検索する
-type f,d,l でそれぞれファイル・ディレクトリ・シンボリックリンクを検索する
例
$ find . -type d
意味: カレントディレクトリ以下にあるディレクトリを列挙
-a(and) -o(or) オプションで複数の条件指定
例
$find . -type d -a -name 'local'
意味: カレントディレクトリ以下にある、名前にlocalが含まれるディレクトリを検索
Pythonのlambda関数
Pythonのlambda関数(無名関数)は、一文で表現される、名前のない関数のこと。
具体例
例えば引数の和を取って返す関数を普通に書くと、
def add(a,b): return a+b
これが、lambda関数を用いると
lambda a,b:a+b
となる。
コロンの左側が引数、右側が戻り値。
わざわざ名前をつけて管理するまでもないちょっとした処理をさせるのに便利。