「キーボードショートカット」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→Troubleshooting: リンクを修正) |
Kusanaginoturugi (トーク | 投稿記録) (→カーネル: 記事を追加) |
||
8行目: | 8行目: | ||
== 標準のショートカット == |
== 標準のショートカット == |
||
− | === カーネル === |
+ | === カーネル (SysRq) === |
− | カーネルに |
+ | sysrq キーを介してカーネルに実装されるローレベルなショートカットがいくつかあります。これらのショートカットは、システムが反応しなくなったときに復旧させたりデバッグするのに用いることができます。いつでも使うことができますが、特に、電源ボタンを長押しして無理やりシステムの電源を切るよりかはショートカットを使うほうが推奨されます。 |
+ | |||
+ | 詳細については、[[Wikipedia:Magic SysRq key]] を参照してください。 |
||
+ | |||
+ | ==== 有効化 ==== |
||
+ | |||
+ | [[systemd]] has the sysrq permissions bitmask [https://github.com/systemd/systemd/blob/main/sysctl.d/50-default.conf#L14-L19 set to 0x10 by default], which [https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html does not allow process signalling or rebooting], among other things. To allow full use of the sysrq key on your system, add {{ic|1=kernel.sysrq = 1}} to your [[sysctl#Configuration|sysctl configuration]]. Values greater than 1 can be used to selectively enable sysrq functions; see the [https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html Linux kernel documentation] for details. If you want to make sure it will be enabled even before the partitions are mounted and in the initrd, then add {{ic|1=sysrq_always_enabled=1}} to your [[kernel parameters]]. |
||
+ | |||
+ | Note that changing the setting through these methods will cause the changes to persist across reboots. If you want to try changing the sysrq settings for just your current session, you can run either {{ic|1=sysctl kernel.sysrq=1}} or {{ic|echo "1" > /proc/sys/kernel/sysrq}}. |
||
+ | |||
+ | There are some obvious security risks involved in fully enabling the sysrq key. In addition to forcing reboots and the like, it can be used to dump the contents of the CPU registers, which could theoretically reveal sensitive information. Since using it requires physical access to the system (unless you [https://github.com/jd/sysrqd go out of your way]), most desktop users will probably consider the level of risk acceptable. That said, make sure you fully understand the implications of enabling it and the dynamics of the larger context in which your system is operating before you turn sysrq all the way on. |
||
カーネルショートカットを使うには、最初に {{ic|1=sysctl kernel.sysrq=1}} または {{ic|echo "1" > /proc/sys/kernel/sysrq}} でショートカットを有効にしておく必要があります。起動時に有効化されるようにするには、{{ic|/etc/sysctl.d/99-sysctl.conf}} を編集して {{ic|1=kernel.sysrq = 1}} と設定してください。パーティションがマウントされて initrd に入る前に有効にしたい場合、[[カーネルパラメータ]]に {{ic|1=sysrq_always_enabled=1}} を追加してください。 |
カーネルショートカットを使うには、最初に {{ic|1=sysctl kernel.sysrq=1}} または {{ic|echo "1" > /proc/sys/kernel/sysrq}} でショートカットを有効にしておく必要があります。起動時に有効化されるようにするには、{{ic|/etc/sysctl.d/99-sysctl.conf}} を編集して {{ic|1=kernel.sysrq = 1}} と設定してください。パーティションがマウントされて initrd に入る前に有効にしたい場合、[[カーネルパラメータ]]に {{ic|1=sysrq_always_enabled=1}} を追加してください。 |
2021年12月19日 (日) 17:31時点における版
この記事では (あまり有名でない) デフォルトのキーボードショートカットのリストとユーザーカスタマイズの情報を提供します。
目次
標準のショートカット
カーネル (SysRq)
sysrq キーを介してカーネルに実装されるローレベルなショートカットがいくつかあります。これらのショートカットは、システムが反応しなくなったときに復旧させたりデバッグするのに用いることができます。いつでも使うことができますが、特に、電源ボタンを長押しして無理やりシステムの電源を切るよりかはショートカットを使うほうが推奨されます。
詳細については、Wikipedia:Magic SysRq key を参照してください。
有効化
systemd has the sysrq permissions bitmask set to 0x10 by default, which does not allow process signalling or rebooting, among other things. To allow full use of the sysrq key on your system, add kernel.sysrq = 1
to your sysctl configuration. Values greater than 1 can be used to selectively enable sysrq functions; see the Linux kernel documentation for details. If you want to make sure it will be enabled even before the partitions are mounted and in the initrd, then add sysrq_always_enabled=1
to your kernel parameters.
Note that changing the setting through these methods will cause the changes to persist across reboots. If you want to try changing the sysrq settings for just your current session, you can run either sysctl kernel.sysrq=1
or echo "1" > /proc/sys/kernel/sysrq
.
There are some obvious security risks involved in fully enabling the sysrq key. In addition to forcing reboots and the like, it can be used to dump the contents of the CPU registers, which could theoretically reveal sensitive information. Since using it requires physical access to the system (unless you go out of your way), most desktop users will probably consider the level of risk acceptable. That said, make sure you fully understand the implications of enabling it and the dynamics of the larger context in which your system is operating before you turn sysrq all the way on.
カーネルショートカットを使うには、最初に sysctl kernel.sysrq=1
または echo "1" > /proc/sys/kernel/sysrq
でショートカットを有効にしておく必要があります。起動時に有効化されるようにするには、/etc/sysctl.d/99-sysctl.conf
を編集して kernel.sysrq = 1
と設定してください。パーティションがマウントされて initrd に入る前に有効にしたい場合、カーネルパラメータに sysrq_always_enabled=1
を追加してください。
再起動
覚え方は "Reboot Even If System Utterly Broken" です ("REISUB" とも呼ばれます)。もしくは "BUSIER" の反対として覚えましょう。
キーボードショートカット | 説明 | Code to Enable | Other Functions Enabled |
---|---|---|---|
Alt+SysRq+r Unraw
|
キーボードの制御を X から取り戻す。 | 4 | Alt+SysRq+k SAK
|
Alt+SysRq+e Terminate
|
全てのプロセスに SIGTERM を送り、丁寧にプロセスを終了させる。 | 64 | Alt+SysRq+f OOM kill Alt+SysRq+j Thaw
|
Alt+SysRq+i Kill
|
全てのプロセスに SIGKILL を送り、即座にプロセスを強制終了させる。 | ||
Alt+SysRq+s Sync
|
データをディスクに書き込む。 | 16 | - |
Alt+SysRq+u Unmount
|
全てのファイルシステムをアンマウントして読み取り専用で再マウント。 | 32 | - |
Alt+SysRq+b Reboot
|
再起動 | 128 | - |
詳しくは Wikipedia のマジック SysRq キーを見て下さい。
Killing a memory-hogging process
Alt+SysRq+f
can be used to invoke the OOM (out-of-memory) killer without causing a kernel panic if nothing can be killed. The OOM killer uses a set of heuristics to pick whichever relatively non-vital process is using the most memory and kill it. This is very useful to kill a process that is softlocking your system by causing excessive thrashing, such as a runaway browser script, and can alleviate the need for a reboot in many cases. Note that the OOM killer can target a wide variety of processes despite its well-meaning heuristics and can be somewhat unpredictable, so be careful about calling it casually.
Troubleshooting
- If you are using a ディスプレイマネージャ and after
Alt+SysRq+e
you are presented with the login screen (or full desktop if autologin is enabled), it is most likely caused byRestart=always
directive in the relevant サービスファイル. If necessary, ユニットファイルの編集, however this should not prevent the "REISUB" sequence from working. - If all the above combinations work except
Alt+SysRq+b
, try using the contralateralAlt
key. - On laptops that use
Fn
key to differentiateSysRq
fromPrtScrn
, it may not actually be necessary to use theFn
key (i.e.,Alt+PrtSc+letter
could work). - On Lenovo laptops
SysRq
is often configured asFn+S
. To use it press and holdAlt
then pressFn+s
, releaseFn
ands
still holdingAlt
followed by the keys above. - You may need to press
Ctrl
along withAlt
. So for example, full key shortcut would beCtrl+Alt+SysRq+b
.
ターミナル
仮想端末
キーボードショートカット | 説明 |
---|---|
Ctrl+Alt+Del
|
コンピュータを再起動 (/usr/lib/systemd/system/ctrl-alt-del.target シンボリックリンクで定義)
|
Alt+F1 , F2 , F3 , ...
|
n 番目の仮想端末にスイッチ |
Alt+ ←
|
前の仮想端末にスイッチ |
Alt+ →
|
次の仮想端末にスイッチ |
Scroll Lock
|
Scroll Lock が有効になっているとき、入出力がロックされます |
Shift+PgUp /PgDown
|
コンソールバッファを上下にスクロール |
Ctrl+c
|
現在のタスクを終了 |
Ctrl+d
|
EOF を挿入 |
Ctrl+z
|
現在のタスクを停止 |
Readline
GNU readline は行編集によく使われているライブラリです。Bash や FTP など様々なプログラムによって使われています (詳しくは readline パッケージの "Required By" を見て下さい)。readline はカスタマイズすることができます (詳しくは man ページを参照)。
キーボードショートカット | 説明 |
---|---|
Ctrl+l
|
画面をクリア |
カーソルの移動 | |
Ctrl+b
|
一文字分カーソルを左に移動 |
Ctrl+f
|
一文字分カーソルを右に移動 |
Alt+b
|
一単語分カーソルを左に移動 |
Alt+f
|
一単語分カーソルを右に移動 |
Ctrl+a
|
カーソルを行頭に移動 |
Ctrl+e
|
カーソルを行末に移動 |
コピー & ペースト | |
Ctrl+u
|
行頭からカーソル位置まで切り取り |
Ctrl+k
|
カーソル位置から行末まで切り取り |
Alt+d
|
カーソルの後の単語を切り取り |
Ctrl+w
|
カーソルの前の単語を切り取り |
Ctrl+y
|
切り取ったテキストを貼り付け |
Alt+y
|
前に切り取ったテキストを貼り付け |
Alt+Ctrl+y
|
前のコマンドの第1引数を貼り付け |
Alt+. /_
|
前のコマンドの最後の引数を貼り付け |
履歴 | |
Ctrl+p
|
前の行に移動 |
Ctrl+n
|
次の行に移動 |
Ctrl+s
|
検索 |
Ctrl+r
|
逆検索 |
Ctrl+j
|
検索を終了 |
Ctrl+g
|
検索を中止 (元の行に戻る) |
Alt+r
|
変更を全て戻す |
補完 | |
Tab
|
名前の自動補完 |
Alt+?
|
利用可能な補完候補を表示 |
Alt+*
|
利用可能な補完候補を全て挿入 |
Linux console
X11 & Wayland
キーボードショートカット | 説明 | ノート |
---|---|---|
Ctrl+Alt+F1 , F2 , F3 , ...
|
n 番目の仮想端末にスイッチ | 機能しない場合 Ctrl+Fn+Alt+F… を試してみてください。
|
Shift+Insert Mouse Button 2
|
PRIMARY バッファからテキストを貼り付ける | デフォルトでは Qt は Shift+Insert で PRIMARY バッファではなく CLIPBOARD を使います [1]。そして PRIMARY バッファは Ctrl+Shift+Insert を使用します。
|
カスタマイズ
Readline
以下の例では行の先頭から文字列の履歴を後方検索するキーを追加します (vi モード)。インクリメンタル検索ではありません。
.inputrc
set editing-mode vi set keymap vi-insert "\C-r": history-search-backward "\C-e": history-search-forward
Zsh
Zsh は ZLE を使用して、ショートカットをウィジット、スクリプトおよびコマンドにリンクします。
X11
一般的なショートカットや、デフォルトで無効になっているショートカットは Xorg でのキーボード設定#よく使われる XKB オプションを見て下さい。
X-selection-paste のキーバインディング
マウスよりもキーボードを好んで使用する場合、マウスの中ボタンでペーストを行うキーバインドが役に立つかもしれません。特にキーボードを集中的に使う環境では有用です。ワークフローは以下のようになります:
- Firefox で、検索したい文字列を (マウスで) 選択してください。
Ctrl+k
を押して "Google search" フィールドにカーソルを移動。- マウスポインタを移動して中ボタンを押す代わりに
F12
でバッファを貼り付け。
ここでは公式リポジトリにある3つのパッケージを使います:
- xsel で x-selection-buffer の中身にアクセス。
- Xbindkeys でキーストロークに操作をバインド。
- xvkbdAUR でキーボードの入力をエミュレートしてバッファ文字列をアプリケーションに渡す。
以下の例では x-selection-paste の操作を F12
キーにバインドします:
.xbindkeysrc
"xvkbd -no-jump-pointer -xsendevent -text "\D1`xsel`" 2>/dev/null" F12
"\D1"
コードはセレクションバッファの挿入の前に 100 ms のポーズを追加します (xvkbd のホームページ を参照)。
F12
以外のキーのキーコードは xbindkeys -k
で確認できます。
参照:
XMonad ウィンドウマネージャ
xmonad ウィンドウマネージャには x-selection-buffer の中身を貼り付ける機能が内蔵されています。特定のキーストローク (例: Insert
キー) にバインドするには以下の設定を使用:
xmonad.hs
import XMonad.Util.Paste ... -- X-selection-paste buffer , ((0, xK_Insert), pasteSelection) ]
xdotool を使用 - コマンドライン X11 自動化ツール
xdotool を使用することで中ボタンボタンによって X のセレクションバッファの中身を貼り付ける操作のショートカットを作成できます。ショートカットのコマンドは以下のようになります:
xdotool getwindowfocus key --window %1 click 2
上記のコマンドは X サーバーからフォーカスのあたっているウィンドウを取得してボタン2 (中マウスボタン) のクリックイベントを発動します。
ヒントとテクニック
- 主にキーボードを使って作業をする場合、タイル型ウィンドウマネージャが気に入るかもしれません。