pkillコマンドで複数のプロセスを終了させる方法

May 8,2018 12:03 AM
Category:[Linux]
Tag:[Linux]
Permalink

pkillコマンドで複数のプロセスを終了させる方法を紹介します。

1.問題点

Linuxで実行中のプロセスを終了させるには、killコマンドを利用することが多いと思います。

% ./a.out&
% ps -ef | grep a.out | grep -v grep
foo      6476  6351  0 17:44 pts/8    00:00:00 ./a.out
% kill -9 6476

ただこの方法は面倒です。

pkillはプロセス名を指定して、該当プロセスを終了させるコマンドです。

% ./a.out&
% pkill a.out

このように、a.outのプロセス番号を調べずにa.outを強制終了させることができます。

が、複数の同名プロセスが実行されている場合、まとめて終了させる方法がわかりません。

ということで、pkillコマンドで複数のプロセスを終了させる方法を紹介します。

2.pkillコマンドで複数のプロセスを終了させる

pkillコマンドで複数のプロセスを終了させるには"-f"オプションを付与します。

% ps -ef |grep a.out | grep -v grep
foo      6410  6394  0 17:36 pts/21   00:00:00 ./a.out
foo      6411  6351  0 17:36 pts/8    00:00:00 ./a.out
% pkill -f a.out

"-f"はプロセス名とマッチするプロセスをすべて対象にするオプションです。

ただ、試しに"-f"を付与せずに実行したところ、複数のプロセスを強制終了させることができたので、"-f"の用途は異なるのかもしれません。

Comments [0] | Trackbacks [0]

Linuxコマンドラインの省略記法

May 1,2018 12:03 AM
Category:[Linux]
Tag:[Linux]
Permalink

Linuxコマンドラインでの省略記法を紹介します。

1.直前に実行したコマンドを再実行

直前に実行したコマンドを再実行するには、"!!"を入力します。

例:

% vim foo.txt
% !!

で"vim foo.txt"を実行します。

2.n個前に実行したコマンドを再実行

n個前に実行したコマンドを再実行するには、"!-n"を入力します。

例:

% ls -l
% vim foo.txt
% !-2

で2つ前の"ls -l"を実行します。

3.historyコマンドで表示されたn番目のコマンドを再実行

historyコマンドで表示されたn番目のコマンドを再実行するには、"!n"を入力します。

例:

% history
 :
   98  pwd
   99  ls -l
  100  cd ..
  101  ls
  102  pwd
 :
% !100

で100番目の"cd ../"を実行します。

4.直前に実行したコマンドの最後の引数を利用

直前に実行したコマンドの最後の引数を利用するには、"!$"を入力します。

例:

% vim foo.txt
% rm $!

で"rm foo.txt"を実行します。

5.入力した文字列に合致する、最後に実行したコマンド

入力した文字列に合致する、最後に実行したコマンドを実行するには、"!文字列"を入力します。

例:

% vim foo.txt
% pwd
% ls -l
% !v

で、"v"に合致する"vim foo.txt"を実行します。

6.直前に実行したコマンドのAをBに置き換えて実行

直前に実行したコマンドのAをBに置き換えて実行するには"^A^B"を入力します。

例:

% vim foo.txt
% ^foo^bar

でfooをvarに置き換えて、"vim bar.txt"を実行します。

7.実行コマンドを確認

実行コマンドを確認するには":p"を入力します。

例:

% vim foo.txt
% rm $!:p
rm foo.txt
%!!

8.入力履歴を検索

入力履歴を検索するには、"Ctrl+r"を入力します。

例:

Ctrl+rを入力
(reverse-i-search)`':

Ctrl+rを入力したあとに任意の文字(先頭文字でなくてもよい)を入力すると、直近のコマンドから候補を表示するので、リターンすればそのまま実行、左右矢印キーで移動すれば検索モードを抜け、コマンドを表示してくれます。

さらにCtrl+rを入力すれば次の候補を表示します。

Comments [0] | Trackbacks [0]

lessコマンドで特定の文字列をフィルタリングする方法

April 18,2018 12:03 AM
Category:[Linux]
Tag:[less, Linux]
Permalink

lessコマンドで特定の文字列をフィルタリングする方法を紹介します。

1.問題点

あるシステムで出力されるログを、"less +F"で動的に出力しているのですが、閲覧不要なログが大量に出力され、本当に見たい内容のログが見れません。

下記のようにすると、ログが動的に出力されなくなります。

% grep -v 除外文字列 | less +F

ということで、lessコマンドで特定の文字列をフィルタリングする方法を紹介します。

2.lessコマンドで特定の文字列をフィルタリングする

lessコマンドで特定の文字列をフィルタリングするには、まずlessコマンドでログを表示します。

このとき、"+F"オプションは付与せずに表示させてください。

次に"&"を押下。これで下記のように"&/"が表示されます。

&/表示

さらに"!"を押下すると"Non-match &/"という表示になります。

Non-match &/

除外したい文字を設定。ここでは"foo"と入力しています。

除外したい文字

リターンすれば"& :"という表示になり、フィルタリングした状態になります。

& :

さらに"Shift+f"を押下すれば、設定した文字にマッチしない行だけを動的に表示します。

設定した文字にマッチしない行を動的に表示

"!"を入力せずに文字列を設定すれば、設定した文字が存在する行だけをフィルタリングしてくれます。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages