TL;DR
- 必要最低限のものだけ覚えときたい人向け
- それでも忘れた時のリファレンス的な
- ショートカットキーと、
*
とかエイリアス的なもの - 明らかにコマンドっぽいのは除外
はじめに
ぼくは記憶力が人よりだいぶ弱いのが悩みの種なんですが、そんな貴重な記憶リソースを消費してでも覚えて使ってあぁ幸せだなぁという気分になれるショートカットがあります。とはいえ明日にはもう忘れてるかもしれないので、未来の自分のためのリファレンスとして記事にまとめておこうと思います。
「あれ、あのショートカットなんだったっけ」ってなったときに、ここの目次をみて「ああそれそれ」って思い出せるようにするのがこの記事の目標です。
ほぼ全部bashでも使えます。
間違ってるよ、これも覚えといた方がいいかもよ、などのコメント大歓迎です!
偉大な先人たち
この記事にあるのはあくまでも記憶する領域に困ってて必要最低限これだけ覚えとくといいかもしれないやつたちです。記憶力が人並み以上にある方や自分で選別したい方はこの記事よりはるかによくまとまってる記事がたくさんあるのでそちらをオススメします。
ショートカットキー
見た目わかりやすいようにキーは大文字にしてあります。
実際はShiftとかおしません。
Ctrl + R (コマンド履歴検索)
コマンドの履歴をインクリメンタルサーチしてくれます。
Ctrl + P (一つ前のコマンド)
一つ前のコマンドを出します。
2回やれば二つ前のコマンドが出ます。
.zshrc
に次の設定をいれるのがかなりオススメです。
bindkey "^P" history-beginning-search-backward
bindkey "^N" history-beginning-search-forward
この設定いれとくと例えばhisotryが次のようなとき、
1 tail -f log/development.log
2 git status
3 git add -A
4 git commit -m "hogeee"
5 tail hoge
6 vi hoge
7 git commit -am
8 git rebase -i
9 git push
tail
を入力した状態でCtrl+P
を2回やればtail -f log/development.log
が出せます。
Ctrl+N
で逆方向に進めることもできます。
Ctrl + A (行頭に)
カーソルを行頭に移動させます。
Ctrl + E (行末に)
カーソルを行末に移動させます。
Esc + B (左に一単語)
カーソルを一単語左に移動させます。
Ctrl+B
で一文字左に移動できます。
Esc + F (右に一単語)
カーソルを一単語右に移動させます。
Ctrl+F
で一文字右に移動できます。
Ctrl + W (左の一単語削除)
カーソルの左側の一単語を削除します。
Ctrl+H
で左の一文字を削除できます。
Ctrl + L (画面すっきり)
ターミナル画面をすっきりさせます。
その他
*
ワイルドカードです。
例えば次のようにするとテキストファイルを全部表示したり、削除したりできます。
ls *.txt
rm -f *.txt
{foo,bar}
ブレース展開というらしいです。
$ echo {foo,bar}
foo bar
mv
コマンドとかでリネームするときとかよく使います。
mv {foobar,bazqux}.txt
mv foobar.txt bazqux.txt # 同じ意味
なんかめっちゃ.gitkeep
作りたい時とか。
touch {bin,config,lib,log,vendor/bundle,bin}/.gitkeep
..
を使うと連番を出せます。
$ echo {1..10}
1 2 3 4 5 6 7 8 9 10
$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
!!
直前のコマンドです。
$ pwd
/home/nownabe
$ !!
/home/nownabe
sudo
し忘れの時とかによく使います。
$ yum remove ruby
読み込んだプラグイン:fastestmirror, remove-with-leaves, show-leaves
このコマンドを実行するには root である必要があります。
$ sudo !!
[sudo] password for nownabe:
!$
を使うと直前のコマンドの最後の1単語だけを使えます。
$ cat hogehoge.txt
$ vi !$
おわりに
予想以上に少なくてショックを受けてます。
思い出したり新しく覚えたら追記していきたいと思います。