ファイルの行数を知りたい
wc -l ファイル名
一定時間ごとに特定の処理を動かしたい
while true ; do date; sleep 3 ; done
※(設定値にもよるかもしれないが)Broken Pipeにも勝てるので、接続切れ対策として使える。
直近のコマンド実行履歴を見たい
history 数字(件数)
(例)history 10
直近の10件の履歴が出る。
実行したコマンド履歴を指定のワードで検索したい
history | grep ワード
ファイルの最後から100行見たい
tail -n 100 ファイル名
ファイルの最初から100行見たい
head -n 100 ファイル名
指定のワードが含まれる総行数を知りたい
grep ワード ファイル名 | wc -l
コンソール画面をきれいにしたい(クリア)
clear
または
ctrl + L
ファイル内の文字数を取得したい
wc -m ファイル名
指定した行数以降を確認したい
less +行数 ファイル名
cdする前のディレクトリに戻りたい
cd -
ファイル内の検索結果に行番号を表示したい
grep -n 検索ワード ファイル名
ファイル内を大文字と小文字を区別せず検索したい
grep -i 検索ワード ファイル名
コマンドの実行時間を知りたい
time コマンド名
コピー元と同じタイムスタンプでコピーしたい
cp -p コピー元ファイル コピー先ファイル
※Windowsと違い、オプションをつけないと、cpした時間のタイムスタンプになります。
※pはパーミッションと所有者とタイムスタンプを保持するもので、preserveの意味です。
ディレクトリ配下を再帰的にコピーしたい
cp -r コピー元ディレクトリ コピー先ディレクトリ
※コピー先ディレクトリは予め作成しておかなくても大丈夫。
ディレクトリ配下を再帰的に削除したい
rm -r ディレクトリ
※rmdirは、ディレクトリ内が空でないとエラーになるため、ディレクトリ削除は基本的にrmコマンドを使う。
直前に実行したコマンドの結果を知りたい
echo $?
※作業ミスを防ぎたいときに使ったりする。0なら正常。
コマンドの出力結果が大量にあるので、非表示にしたい
コマンド > /dev/null
/dev/nullとは、入力元としても出力先としても何も表示されない特殊なファイルのこと。
メモリの使用状況をメガバイト単位で確認したい
free -m
プロセスIDの最大値を確認したい(設定したい)
cat /proc/sys/kernel/pid_max
※初期値は32768
メモリを消費しているプロセスを使用順にソートして表示したい
ps -aux --sort -%mem
※過去の経験でGNOME(/usr/bin/gnome-shell)が一番消費しているということがあった。結構メモリを食うんですね。
swapしているプロセスの上位10個を表示
grep VmSwap /proc/*/status | sort -nr -k 2 | head -n 10
特定のポートを使っているプロセスを知りたい
lsof -i:8080
※オプションにコロンをつけないとエラーになる。
特定の処理を動かしているプロセスIDをkillしたい
PIDは、プロセスの起動のたびに流動的に変化するものなので、killするためには都度psコマンドで特定する必要がある。
具体的には、
ps -aux でPIDを特定
↓
kill 「PID」
となるが、これを一発で行うには以下。
ps -aux | grep "[-]jar sample.jar" | awk -F " " '{print "kill", $2}' | sh
※grepの対象に[]を入れているのは、grepを実行するとgrep自体も結果に含まれてしまうのを除外するため。詳しくはpsをgrepした結果からgrep自身を除外する方法を参照。
※ps -auxを実行すると、2番目の列がPIDになるため、$2とする。なお、-Fは区切り文字であり、今回の場合は半角スペースを指定している。
historyに実行時間も表示されるようにしたい
下記を~/.bashrcに追記する(※単にコンソールで実行するだけでは、設定が永続化されない)。
export HISTTIMEFORMAT='%F %T '
ローカルホストのIPアドレスを取得したい
echo `ifconfig | grep -m 1 inet | awk -F " " '{print $2}'`