LoginSignup
7
11

More than 5 years have passed since last update.

bashショートカットキー備忘録

Last updated at Posted at 2018-01-23

内容

以下ページが大変勉強になりました。

当記事では主に、自分がよく使うキーバインドを上記ページから抜粋しています。

stty(端末)

キーバインド確認

(bash)$
# 端末のキーバインド確認
stty -a

キーバインド変更(設定)

~/.bashrc
# C-sによる画面の停止を無効にする
stty stop undef

Bash キーバインド(GNUReadline emacsキーバインド)

キーバインド確認

(bash)$
# bashのman(デフォルトのキーバインド・機能の説明がある)
man bash

# 現在のキーバインド確認
bind -p

中でも自分がよく使うキー

区分 readlineの関数名 name 説明 (#メモ)
コマンド実行 C-j accept-line Enter
カーソル移動 C-a beginning-of-line 行頭に移動 # Home
C-e end-of-line 行末に移動 # End
C-b backward-char 1文字戻る # ←
C-f forward-char 1文字進む # →
M-f forward-word 次の単語に移動
M-b backward-word 前の単語に移動
C-] character-search 文字を 1 つ読み込み、その文字が次に現われる場所に移動
M-C-] character-search-backward 文字を 1 つ読み込み、その文字が前に現われた場所に移動
文字削除、
貼り付け
C-h backward-delete-char 直前の1文字を削除 # BackSpace
C-d delete-char 直後の1文字を削除 # Delete
C-w unix-word-rubout 直前の1単語を削除(単語境界は空白類)
MC-h backward-kill-word 直前の1単語を削除
M-d kill-word 直後の1単語を削除
C-u unix-line-discard カーソル以前の文字を削除 # パスワード間違ったときなどに
C-k kill-line カーソル以降の文字を削除
C-y yank 削除,killした単語を貼り付け
他編集 C-t transpose-chars 直前の文字と、その前の文字を入れ替える
M-t transpose-words スペース区切りでカーソル位置の単語と前の単語を入れ替える
C-xC-u undo 変更を元に戻す(ExcelなどのCtrl + zと同じ)
履歴利用 C-n next-history 次の履歴を表示 # ↓
C-p previous-history 前の履歴 # ↑
C-r reverse-search-history 履歴を後方に(遡って)インクリメンタルサーチ
C-s forward-search-history 履歴を前方にインクリメンタルサーチ *2
M-< beginning-of-history 履歴の先頭を表示
M-> end-of-history 履歴の最後を表示
補完 C-i complete コマンド、引数など。適した単語を補完 # Tab
M-. insert-last-argument 直前のコマンドの最後の引数を挿入
C-l clear-screen ターミナルをクリア # clearコマンド

M-の押し方

M-は通常Altが割り当てられていますが、ターミナルで別の機能に使われていたり、
メニューバーへのフォーカスに取られたりすることがあります。

teratermを使用している場合、設定-キーボード-メタキーを「on」にすれば、
Alt単発押しでメニュー、Alt+他のキーでキーバインドと使い分け可能です。

備考

あわせてbashで個人的によく使うオプションを備忘録としてメモ。

Ctrl-Wの単語削除をスラッシュ区切りにする設定。

※最近は設定しなくても、MC-hを使えば事足りるような気がしている。

~/.bashrc
if [[ -t 1 ]]; then
    stty werase undef
    bind '\C-w:unix-filename-rubout'
fi

リダイレクトの上書き抑止

以下のとおり、リダイレクトでの上書きは、set -C で抑止可能です。

history反映・再読み込み

(bash)$
# historyをhisotryファイルに書き出し(ログアウトせずに)。
history -a

# historyfileのload
history -r

# 同時にやる場合
history -a && history -r

tty

リモート(ssh)で警告が出ることがあるので、 test -t 1でチェックして設定したほうが良さそうです。(下記サイトを参考)

他、参考ページ

7
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11