Edited at

俺がよく使うLinux, Vim, Shellコマンド (不定期更新)


連続コマンド実行

実行コマンドがパイプ等使わない単純なものはwatchを使うことが多い。

# -n: 実行間隔

# -d: 差分を強調表示
watch [-n 秒数] [-d] 実行コマンド

実行コマンドがパイプや複数ある場合はwhileを使うことが多い。

※sleepコマンドを入れないと大量に実行されることになるので注意。

while true; do; 実行コマンド1; 実行コマンド2; done 


負荷をかける

openssl speed


ファイルの頭○行表示

※30行表示

head -n 30


ファイルの後ろ○行表示

※30行表示

tail -n 30


書き込まれていくログファイルの中身を随時表示

tail -f ファイル名


書き込まれていくログファイルで、ある文字が入っている場合のみ随時表示

tail -f ファイル名 | grep ある文字


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

Git の Commit Author と Commiter を変更する - Qiita


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>

Vim 8.0 Advent Calendar 12 日目 連番の生成 - Qiita


行頭に文字を追加する

I


行頭にカーソルを合わせる

0


複数行の行頭に文字を追加する

※カーソル行から3行の行頭に文字を追加したいとき

<C-v>jj0I


行末に文字を追加する

A


行末にカーソルを合わせる

$


複数行の行末に文字を追加する

※カーソル行から3行の行末に文字を追加したいとき

<C-v>jj$A


複数行のある部分に文字を追加する

※カーソルがあるところ3行に文字を追加したいとき

<C-v>jjI


ファイル内のすべての文字を置き換えする

:%s/置き換え前/置き換え後/gc


特定行の文字を置き換えする

:%置き換え開始行番号,置き換え終了行番号/置き換え前/置き換え後/gc


同じ作業を繰り返す

qa

(繰り返したい作業を行う)
q

先程の作業を10回実施

10@a