連続コマンド実行
実行コマンドがパイプ等使わない単純なものはwatchを使うことが多い。
# -n: 実行間隔# -d: 差分を強調表示
watch [-n秒数] [-d]実行コマンド
実行コマンドがパイプや複数ある場合はwhileを使うことが多い。
※sleepコマンドを入れないと大量に実行されることになるので注意。
while true;do;実行コマンド1;実行コマンド2;done
負荷をかける
openssl speed
MySQL
mysqldumpする時gzipで圧縮してからファイルに書き出す。
こうするとディスクIOが節約できて早く終わる時がある(性能次第)。
mysqldump -uユーザ名 -p DB名 | gzip> hoge.gz
コミット済みのユーザ名を変更
git filter-branch --commit-filter'
GIT_AUTHOR_NAME="名前"
GIT_AUTHOR_EMAIL="メールアドレス"
GIT_COMMITTER_NAME="名前"
GIT_COMMITTER_EMAIL="メールアドレス"
git commit-tree "$@"
' HEAD
awkする時最初の一行を飛ばす
awk'FNR > 1 { (処理) }'
定期的に何か実行する
while true;do;(処理1);(処理2);sleep 5;done
設定ファイルをワンライナーで変更
sed-e's/(置き換え前文字列)/(置き換え後文字列)/'(設定ファイルパス)
実際にやるときはこんな感じでバックアップを残しつつdiffを取ったほうがいい。
SUFFIX=`date +%Y%m%d%H%M%S`sed-i.$SUFFIX-e's/(置き換え前文字列)/(置き換え後文字列)/'(設定ファイルパス)
diff (設定ファイルパス)(設定ファイルパス).$SUFFIX
メールサーバーのTLS証明書期限チェック
openssl s_client -connect(メールサーバーのドメイン):465 < /dev/null 2> /dev/null | openssl x509 -text | grep Not
ログアウト後も実行させ続けたいコマンドを実行
nohup 実行したいコマンド &
定時過ぎたからPC落としたいけどSSH先のコマンドの実行が終わらないから落とせない/ログアウトできないとき (nohup忘れ)
プロセスをバックグラウンドに移行
Ctrl-z
bg
ジョブ番号を調べる
jobs
シェルのジョブテーブルから削除 (ジョブ番号が1番だったとき)
disown %1
サーバーの負荷をいろいろ調べる
w
top
iotop
手順書用のファイルバックアップコピーコマンド (実行時の時刻をファイル名に埋め込む)
cp-aiv hoge hoge.$(date +%Y%m%d%H%M%S)
こんな感じでファイルがコピーされる
hoge.20190905-182437
~ここからVim~
カーソル行の数字の加減算
一を足す
<C-a>
一を引く
<C-x>
連番生成
↑gを付けると連番を作ってくれる。ビジュアルモードで範囲選択後下記コマンド実行
g<C-a>