ほぼ毎日bash使ってます。てとこん(@tetokon)です。
しかし毎日使っていてもまだまだ知らない機能やコマンドってありますよね。
最近知った、bashのコマンド履歴を検索するコマンドが便利すぎて、はらたいらさんもびっくりの作業効率の上がり方なのでご紹介したいと思います。
これはもう過去に戻って昔の自分に教えたいレベルです。
というか何で今まで誰も俺に教えてくれなかったの??
俺嫌われてるの?えっ?
そっこーで使ったコマンドを遡れる
▲例えばですけど、こういう順番でコマンドを使ったとしますよね。
ここでまた”cp test.txt test.txt_2”というコマンドを使いたいとします(40のやつ)。
過去の私ならひたすらキーボードの”↑”を押してコマンドを遡るか、もしくはまた同じコマンドを入力するか。
と こ ろ が !!!
▲ここで”ctrl+r”を押せば!なんとこんな事が!
ctrl+r を押して’cp’と押せば過去に使ったコマンドを遡って検索して表示してくれるのです!!!
そこでエンターを押せば表示されているコマンドが使えます。
今まではコマンドを遡るために”↑”キーを何回も押していました。
昔の私はいったい何がしたかったんでしょう。指でも鍛えようとしてたんですかね?
この方法だとctrl+rを押した後は2,3回キーを叩けば大体目的のコマンドに辿りつけます。
簡単すぎて指筋が衰えますね。
もっと前のコマンドに辿り着きたい時は
例えばコマンド履歴にcpコマンドが複数あって、何個か前のcpコマンドに辿り着きたい時はどうするか。
▲この時”cp test.txt test.txt_4”を出したいとすると…
▲一回ctrl+rを押してこの画面にした後に…
▲辿り着きたいコマンドまでctrl+rを押し続けるだけ!
これが便利すぎる!
もしctrl+rを押しすぎて目的のコマンドを通りすぎてしまったら
ctrl+rで調子に乗ってコマンドを遡りすぎると時々目的のコマンドよりも戻りすぎてしまうことがあります。
でもそんな時でも大丈夫!
逆に辿るコマンドもあるのです。
それが”ctrl+s”。
▲”cp test.txt test.txt_4”を出したいのに戻りすぎて”cp test.txt test.txt_3”まで戻ってしまった場合は…
▲そこで”ctrl+s”を押せば逆方向に検索してくれるので”cp test.txt test.txt_4”に辿りつけます。
これも便利!
ctrl+sがうまく動かない時は…
ctrl+sがうまく動かない方はctrl+sコマンドが画面の停止に割り当てられている可能性があります。
“stty -a”というコマンドを打ってみて下さい。
画面に”stop = ^S”と出てきたら画面の停止に割り当てられています。
▲実際に表示してみた画面がこちら↑
ここで”stty stop undef”というコマンドを打てば画面の停止が無効になるので試してみて下さい。
▲これでctrl+sで検索ができるようになります。
マジチョー便利。
ちなみに私が普段bashユーザーなのでbashについて書きましたけど、今ちょろっと試してみたらzshでもできました。
bashユーザーじゃなくても知らなかった人は普段自分が使ってるシェルで試してみて下さい。
今回のでーじなところ
これを覚えてから俺の作業効率でーじ上がった!
ほんとに今まで知らなかった自分をぶっ飛ばしたい。
まだまだ知らないことってありますねぇ。だから楽しいんですけど。