私はコマンドライン/ターミナルで使用されるキーボードショートカットについて話しています。
例:Ctrl+cプロセスの終了、Ctrl+dログアウト、Ctrl+zプロセスをバックグラウンドに送信するなど。
いくつかをテストしたところ、端末(例gnome-terminal
)やシェル(例:)に固有のものではなく、sでも動作することがわかりました。xterm
konsole
bash
zsh
tty
だから私は知りたいです:
- これらのショートカットは誰が提供しますか?
- どのようにリストして修正/定義しますか?
答え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
特殊文字やその他の「ターミナルライン設定」の現在の値を表示するために呼び出されます。次の例では、intr
is Ctrl+ C、eof
is Ctrl+ D、susp
is Ctrl+を見ることができますZ。 (特殊文字設定のみを表示するために他の出力を削除しました。)
stty -a
GNU/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 -a
FreeBSDの特殊文字:
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(ファイルの終わり)を送るということです。標準入力からファイルの終わりを受け取ると、シェルは終了します。