使っていて若干危ないケースがあるなーと感じたので投稿。
コマンド履歴に実行NGな更新削除系コマンド表示時に誤って実行しかけた。。。
コマンド履歴検索「Ctrl+r」とは
キーワード元に以前のコマンド履歴を検索できる機能。
$ # ターミナルで「Ctrl+r」押すと検索モードになり入力を受け付け開始
(reverse-i-search)`':
$ # 例えばcdとか打つと直近で実行されたcdコマンドが表示
(reverse-i-search)`cd': cd /var/www/
$ # 上記状態で「Ctrl+r」押すとさらに一つ前の履歴が表示
(reverse-i-search)`cd': cd html
どんな時危ないと思った?
ターミナルからDBログイン時(psql)にCtrl+rで接続コマンド探すときによく使用するのだが、そのコマンド検索結果後半に今実行したらNGな更新系SQL実行する記述が含まれていた。。。
$ # psqlコマンド後半に「-f」(SQLファイル指定し実行)がいた
(reverse-i-search)`psql': psql -h ${ホスト名} -U ${ユーザ名} -d ${データベース名} -f {今実行NGなSQLファイル}
誤ってEnter押してしまったが、パスワード入力促される時点で気づいたのでセーフでした。
気づかないで実行してしまったらと思うとゾッとしました。。。
さいごに
常日頃使っているコマンド等にどんなリスクあるのか意識してみると事故可能性低くなるかも。
上記の場合history | psql
でコマンド履歴表示してコピペの方がまだ事故る可能性低くなるのかなと思いました。効率落ちますが。。