コマンドラインのキーボードショートカットは何ですか?

コマンドラインのキーボードショートカットは何ですか?

私はコマンドライン/ターミナルで使用されるキーボードショートカットについて話しています。

例:Ctrl+cプロセスの終了、Ctrl+dログアウト、Ctrl+zプロセスをバックグラウンドに送信するなど。

いくつかをテストしたところ、端末(例gnome-terminal)やシェル(例:)に固有のものではなく、sでも動作することがわかりました。xtermkonsolebashzshtty

だから私は知りたいです:

  • これらのショートカットは誰が提供しますか?
  • どのようにリストして修正/定義しますか?

答え1

~からhttp://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/

コマンド編集ショートカット

  • Ctrl+ a– コマンドラインの先頭に移動
  • Ctrl+ e– コマンドラインの最後に移動
  • Ctrl+ k– カーソルからコマンドラインの最後まで削除
  • Ctrl+ u– カーソルからコマンドラインの先頭までの内容を削除します。
  • Ctrl+ w– カーソルから単語の先頭まで削除(つまり、1単語後ろに削除)
  • Ctrl+ y– カーソルの後に削除ショートカット(上など)を使用して、切り取った単語やテキストを貼り付けます。
  • Ctrl+ xx– コマンドラインの先頭と現在のカーソル位置の間を移動します(再び戻る)。
  • Alt+ b– 1つの単語の後ろに移動(または現在カーソルがある単語の先頭に移動)
  • Alt+ f– 1つの単語の前に移動(または現在カーソルがある単語の末尾に移動)
  • Alt+ d– カーソル位置から単語の最後まで削除(またはカーソルが単語の先頭にある場合は単語全体を削除)
  • Alt+ c- カーソルで始まる単語の終わりまで大文字で表示します(カーソルが単語の先頭にある場合は単語全体)。
  • Alt+ u– カーソルから単語の終わりまで大文字で表示
  • Alt+ l– カーソル位置から単語の終わりまで小文字に変更
  • Alt+ t– 現在の単語を前の単語に置き換えます。
  • Ctrl+ f– 1文字進む
  • Ctrl+ b– 1文字後ろに移動
  • Ctrl+ d– カーソルの下の文字を削除します。
  • Ctrl+ h– カーソルの前の文字を削除します。
  • Ctrl+ t– カーソルの下の文字を前の文字に置き換えます。

コマンド呼び出しショートカット

  • Ctrl+ r– 検索履歴を逆に
  • Ctrl+ g– 履歴検索モードを終了
  • Ctrl+ p- 履歴の前のコマンド(例:コマンド履歴の逆追跡)
  • Ctrl+ n– 履歴の次のコマンド(例:コマンド履歴の前方参照)
  • Alt+ .- 前のコマンドの最後の単語を使用します。

コマンド制御ショートカット

  • Ctrl+ l– 画面を消去する
  • Ctrl+ s– 画面出力の停止(長時間実行される詳細コマンドの場合)
  • Ctrl+ q– 画面出力を許可する(上記のコマンドを使用して以前に停止した場合)
  • Ctrl+ c– 終了コマンド
  • Ctrl+ z– 一時停止/停止コマンド

バッシュバン(!)コマンド

吹く使いやすい機能もありますよ! (クック)ファンキーなことができるようにする強く打つ注文する。

  • !!– 最後のコマンドの実行
  • !無意味な言葉- "blah"で始まる最新のコマンドを実行します(例:!ls)。
  • !ちょっと待って:p- 次のコマンドを出力してください。!無意味な言葉実行されます(コマンド履歴に最新のコマンドとして追加することもできます)
  • !$– 前のコマンドの最後の単語(と同じ)Alt + 。)
  • !$:p- 単語を出力してください。!$取り替える
  • !*- 最後の単語を除く前のコマンド(例:some_file.txt/検索'、その後!*あげる」some_file.txtを探す')
  • !*:血– 何を印刷するのか!*取り替える

答え2

カーネルのターミナルドライバ(termios)は、プロセスに信号を送る、ファイルの終わりを送る、文字を消去するために入力できる特別なキーを解釈します。これは、ほとんどの Unix および Linux 実装で非常に似た基本的な Unix カーネル機能です。

このコマンドは、ターミナルラインドライバの特殊文字やその他のパラメータをstty表示または設定します。termios

stty -a特殊文字やその他の「ターミナルライン設定」の現在の値を表示するために呼び出されます。次の例では、intris Ctrl+ Ceofis Ctrl+ Dsuspis Ctrl+を見ることができますZ。 (特殊文字設定のみを表示するために他の出力を削除しました。)

stty -aGNU/Linuxの特殊文字:

intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;

stty -aFreeBSDの特殊文字:

cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ^@; eol2 = ^@;
        erase = ^?; erase2 = ^H; intr = ^C; kill = ^U; lnext = ^V;
        min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
        stop = ^S; susp = ^Z; time = 0; werase = ^W;

たとえば、特殊文字の値を変更するには、次のようにCtrlブレーク文字を+から+に変更します(実際にはC2文字、曲折記号()の後に1文字が続きます)。CtrlEstty^E^E

stty intr '^E'

stty詳しくは、のマニュアルページを参照してくださいtermios。 GNU / Linuxでは、tty_ioctlマニュアルページも表示できます。

メモ:

キーintr(デフォルトはCtrl+ C)は実際にプロセスを終了しませんが、カーネルにSIGINTプロセスグループ内のすべてのプロセスに割り込み信号()を送信させます。プロセスは信号をキャプチャまたは無視するようにスケジュールできますが、ほとんどのプロセスは終了し、これはデフォルトの動作です。

Ctrl+あなたをログアウトすることは、dターミナルラインドライバがシェルの標準入力にEOF(ファイルの終わり)を送るということです。標準入力からファイルの終わりを受け取ると、シェルは終了します。

関連情報