Linux操作便利集¶
プロセス操作¶
ポート番号を使用しているプロセスを調べたい¶
- TCPの80ポートを使っているプロセスを調べる
$ lsof -i tcp:80
ssh接続が切れてもプロセスの実行を継続したい¶
ssh接続等でコンソールを開き、実行終了までに時間のかかるコマンドをバックグラウンドで実行した場合、コンソールが切断されるとコマンドによって実行中のプロセスにシグナルが飛んでプロセスが終了させられます。
解決方法の1つとして、nohupからコマンドをバックグラウンド実行すると、コンソールが切断されてもプロセスは実行を継続します。
単独のコマンドをnohupで実行する例
~$ nohup cp -pr /data1/xyz /data2 &
連続するコマンドをnohupで実行する例
~$ nohup sh -c "date; cp -pr /data1/xyz /data2; date" &
- nonhupは、引数のコマンドをSIGHUPで中断しないように実行するので、複数コマンドを実行したい場合は、上述のように サブシェルで実行するか、シェルスクリプトに記載してシェルスクリプトを実行するかの方法があります。
ファイル操作¶
ファイルの文字コードを変換したい¶
~$ iconv -f eucjp -t utf8 oldies.txt
- -f : fromの略でファイルの文字コード
- -t : toの略で変換後の文字コード
- 結果は標準出力に吐かれます
Base64エンコーディングされたテキストをデコードしたい¶
~$ perl -MMIME::Base64 -ne 'print decode_base64($_)' < from.file > to.file
ダミーファイルを作成¶
dd¶
ddコマンドで、/dev/zero を入力ファイルとし、ダミーファイルを出力ファイルとし、ブロックサイズとブロック数の組み合わせでファイルのサイズを指定します。
$ dd if=/dev/zero of=dummy.file bs=1M count=128
ファイルのサイズが大きいと、時間がかかります。
fallocate¶
大きなファイルサイズでも一瞬で作成できます。
$ fallocate -l 32G dummy.file
決まった時間に操作¶
指定日時にコマンドを実行¶
- 2015年3月30日午前3時にマシンを特権で再起動する
~$ sudo at 03:00 03/30/15 at> shutdown -r now at> <EOT> <--- Ctrl + d を入力 job 10 at 2015-03-30 03:00 ~$
- atコマンドのJOBキューを確認する
~$ sudo atq : 10 2015-03-30 03:00 a root ~$