「キーボードショートカット」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「http://unix.stackexchange.com/」を「https://unix.stackexchange.com/」に置換) |
細 (→再起動: リンクを修正) |
||
(2人の利用者による、間の35版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category:キーボード]] |
+ | [[Category:キーボード設定]] |
[[Category:X サーバー]] |
[[Category:X サーバー]] |
||
[[Category:アクセシビリティ]] |
[[Category:アクセシビリティ]] |
||
8行目: | 8行目: | ||
== 標準のショートカット == |
== 標準のショートカット == |
||
− | === カーネル === |
+ | === カーネル (SysRq) === |
− | カーネルに |
+ | sysrq キーを介してカーネルに実装されるローレベルなショートカットがいくつかあります。これらのショートカットは、システムが反応しなくなったときに復旧させたりデバッグするのに用いることができます。いつでも使うことができますが、特に、電源ボタンを長押しして無理やりシステムの電源を切るよりかはショートカットを使うほうが推奨されます。 |
+ | 詳細については、[[Wikipedia:Magic SysRq key]] を参照してください。 |
||
− | カーネルショートカットを使うには、最初に {{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}} を追加してください。 |
||
+ | |||
+ | ==== 有効化 ==== |
||
+ | |||
+ | [[systemd]] は sysrq パーミッションのビットマスクがを[https://github.com/systemd/systemd/blob/main/sysctl.d/50-default.conf#L14-L19 デフォルトで 0X10に設定]しており、特に[https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html プロセスのシグナリングや再起動などを許可していません]。システムで sysrq キーを完全に使用できるようにするには [[sysctl#設定|sysctl の設定]]に、{{ic|1=kernel.sysrq = 1}} を追加してください。1 より大きい値は、sysrq 機能を選択的に有効にするために使用できます。詳細は、[https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html Linuxカーネルのドキュメント]を参照してください。パーティションがマウントされる前やinitrd内でも有効にしたい場合は、{{ic|1=sysrq_always_enabled=1}} を[[カーネルパラメータ]]に追加してください。 |
||
+ | |||
+ | これらの方法で設定を変更すると、再起動しても変更が持続されることに注意してください。現在のセッションの sysrq 設定を変更してみたい場合は、 {{ic|1=sysctl kernel.sysrq=1}} または {{ic|echo "1" > /proc/sys/kernel/sysrq}} を実行できます。 |
||
+ | |||
+ | sysrq キーを完全に有効にすることには、いくつかの明らかなセキュリティ上の リスクがあります。強制的なリブートなどに加え、CPU レジスタの内容をダンプするために使用することができ、理論的には機密情報を明らかにすることができます。これを使うにはシステムに物理的にアクセスする必要があるので (あなたが [https://github.com/jd/sysrqd 気にしない限り])、ほとんどのデスクトップユーザはおそらくそのリスクレベルを許容範囲と考えるでしょう。とはいえ、sysrq を有効にする前に、それを有効にすることの意味と、あなたのシステムが動作しているより大きな状況の力学を完全に理解していることを確認してください。 |
||
+ | |||
+ | ==== 再起動 ==== |
||
覚え方は "'''R'''eboot '''E'''ven '''I'''f '''S'''ystem '''U'''tterly '''B'''roken" です ("REISUB" とも呼ばれます)。もしくは "BUSIER" の反対として覚えましょう。 |
覚え方は "'''R'''eboot '''E'''ven '''I'''f '''S'''ystem '''U'''tterly '''B'''roken" です ("REISUB" とも呼ばれます)。もしくは "BUSIER" の反対として覚えましょう。 |
||
+ | |||
+ | {{Note|"REISUB" 自体は単なるニーモニックであり、応答しないシステムの制御を取り戻すためのキー押下シーケンスに関する一般的な推奨事項ではないことに注意してください。以下に示すように、実際の機能を知らずに、これらのシーケンスを毎回盲目的に押すべきではありません。}} |
||
{| class="wikitable" |
{| class="wikitable" |
||
! キーボードショートカット |
! キーボードショートカット |
||
! 説明 |
! 説明 |
||
+ | ! 有効にするコード |
||
+ | ! その他の機能を有効にする |
||
|- |
|- |
||
− | | {{ic|Alt+SysRq+r}} Unraw |
+ | | {{ic|Alt+SysRq+r}} Unraw |
| キーボードの制御を X から取り戻す。 |
| キーボードの制御を X から取り戻す。 |
||
+ | | style="text-align:center;" | 4 |
||
+ | | {{ic|Alt+SysRq+k}} SAK |
||
|- |
|- |
||
− | | {{ic|Alt+SysRq+e}} Terminate |
+ | | {{ic|Alt+SysRq+e}} Terminate |
| 全てのプロセスに SIGTERM を送り、丁寧にプロセスを終了させる。 |
| 全てのプロセスに SIGTERM を送り、丁寧にプロセスを終了させる。 |
||
+ | | rowspan=2 style="text-align:center;" | 64 |
||
+ | | rowspan=2 | {{ic|Alt+SysRq+f}} OOM kill <br /> {{ic|Alt+SysRq+j}} Thaw |
||
|- |
|- |
||
− | | {{ic|Alt+SysRq+i}} Kill |
+ | | {{ic|Alt+SysRq+i}} Kill |
| 全てのプロセスに SIGKILL を送り、即座にプロセスを強制終了させる。 |
| 全てのプロセスに SIGKILL を送り、即座にプロセスを強制終了させる。 |
||
|- |
|- |
||
− | | {{ic|Alt+SysRq+s}} Sync |
+ | | {{ic|Alt+SysRq+s}} Sync |
| データをディスクに書き込む。 |
| データをディスクに書き込む。 |
||
+ | | style="text-align:center;" | 16 |
||
+ | | style="text-align:center;" | - |
||
|- |
|- |
||
− | | {{ic|Alt+SysRq+u}} Unmount |
+ | | {{ic|Alt+SysRq+u}} Unmount |
| 全てのファイルシステムをアンマウントして読み取り専用で再マウント。 |
| 全てのファイルシステムをアンマウントして読み取り専用で再マウント。 |
||
+ | | style="text-align:center;" | 32 |
||
+ | | style="text-align:center;" | - |
||
|- |
|- |
||
| {{ic|Alt+SysRq+b}} Reboot |
| {{ic|Alt+SysRq+b}} Reboot |
||
| 再起動 |
| 再起動 |
||
+ | | style="text-align:center;" | 128 |
||
+ | | style="text-align:center;" | - |
||
|- |
|- |
||
|} |
|} |
||
+ | たとえば、再起動機能のみを選択的に有効にするには、{{ic|1=kernel.sysrq}} を128に設定します。REISUB 機能のセット全体を有効にするには、244に設定します。ただし、これにより、表の最後の列にリストされている追加機能も有効になります。詳細なドキュメントについては、[https://docs.kernel.org/admin-guide/sysrq.html sysrq キーのドキュメント] およびカーネルソースファイル {{ic|/drivers/tty/sysrq.c}} を参照してください。 |
||
− | {{Tip| |
||
− | * [[ディスプレイマネージャ]]を使っていて {{ic|Alt+SysRq+e}} でログイン画面が表示される場合 (もしくは自動ログインが有効になっていてデスクトップが表示される場合)、[[systemd|サービスファイル]]の {{ic|1=Restart=always}} ディレクティブが原因です。必要ならば、[[systemd#ユニットファイルの編集|ユニットを編集]]してください。ただし "REISUB" シーケンスを止めることはできません。 |
||
− | * 上記の組み合わせで {{ic|Alt+SysRq+b}} だけ動作しない場合、反対側の {{ic|Alt}} キーを使ってみて下さい。 |
||
− | * {{ic|Fn}} キーを使って {{ic|SysRq}} と {{ic|PrtScrn}} を区別するノートパソコンでは、{{ic|Fn}} キーを使う必要はありません ({{ic|Alt+PrtSc+''letter''}} で動作します)。 |
||
− | * Lenovo のノートパソコンでは大抵の場合 {{ic|SysRq}} は {{ic|Fn+S}} に設定されています。{{ic|Alt}} を押しながら {{ic|Fn+s}} を押してから、{{ic|Alt}} は押し続けながら {{ic|Fn}} と {{ic|s}} から指を離して上記のキーを押してください。 |
||
− | * {{ic|Ctrl}} と {{ic|Alt}} を押す必要があることもあります。その場合、完全なキーショートカットは {{ic|Ctrl+Alt+SysRq+b}} となります。 |
||
− | }} |
||
+ | ==== メモリを大量に消費するプロセスの終了 ==== |
||
− | 詳しくは Wikipedia の[[wikipedia:ja:マジックSysRqキー|マジック SysRq キー]]を見て下さい。 |
||
+ | {{ic|Alt+SysRq+f}} で kill することができない場合時は、カーネルパニックを起こさずに [https://www.kernel.org/doc/html/latest/admin-guide/mm/concepts.html?highlight=oom#oom-killer OOM (out-of-memory) killer] を呼び出せます。OOM キラーは、ヒューリスティックのセットを使って、最もメモリを消費している比較的重要でないプロセスを選び、それを kill します。これは、暴走したブラウザスクリプトのような、過剰なスラッシュを引き起こしてシステムをソフトロックしているプロセスを kill するのに非常に便利で、多くの場合、再起動の必要性を軽減できます。OOM キラーは、その善意のヒューリスティックにもかかわらず、多種多様なプロセスを対象とすることができますが、やや予測不可能なことがあるので、気軽に呼び出すには注意が必要です。 |
||
− | === ターミナル === |
||
− | ==== |
+ | ==== トラブルシューティング ==== |
+ | * [[ディスプレイマネージャ]] を使っていて、{{ic|Alt+SysRq+e}} の後にログイン画面が表示される場合(自動ログインが有効な場合はフルデスクトップ)。と表示される場合、関連する [[systemd|サービスファイル]] の {{ic|1=Restart=always}} ディレクティブが原因であることが多いようです。必要であれば、[[ユニットファイルの編集]] をしてください。ただし、これによって "REISUB "シーケンスが動作しなくなることはないはずです。 |
||
− | {| class="wikitable" |
||
+ | * もし、{{ic|Alt+SysRq+b}} 以外の組み合わせで動作する場合は、{{ic|Alt}} キーを使ってみてください。 |
||
− | ! キーボードショートカット |
||
+ | * もし、{{ic|SysRq}} と {{ic|PrtScrn}} を区別するために {{ic|Fn}} キーを使用するノートパソコンでは、実際には {{ic|Fn}} キーを使う必要はないかもしれません(すなわち、{{ic}Alt + PrtSc +''letter' }} でも機能するかもしれません。) |
||
− | ! 説明 |
||
+ | * Lenovo のノートパソコンでは、{{ic|SysRq}} はしばしば {{ic|Fn+S}} として設定されます。これを使うには {{ic|Alt}} を押しながら {{ic|Fn+s}} を押して、{{ic|Fn}} と {{ic|s}} を離し {{ic|Alt}} を押したまま上記のキーを押してください。 |
||
− | |- |
||
+ | * また、{{ic|Alt}} と同時に {{ic|Ctrl}} を押す必要があるかもしれません。例えば、フルキーショートカットは {{ic|Ctrl+Alt+SysRq+b}} となります。 |
||
− | | {{ic|Ctrl+Alt+Del}} |
||
− | | コンピュータを再起動 ({{ic|/usr/lib/systemd/system/ctrl-alt-del.target}} シンボリックリンクで定義) |
||
− | |- |
||
− | | {{ic|Alt+F1}}, {{ic|F2}}, {{ic|F3}}, ... |
||
− | | ''n'' 番目の仮想端末にスイッチ |
||
− | |- |
||
− | | {{ic|Alt+ ←}} |
||
− | | 前の仮想端末にスイッチ |
||
− | |- |
||
− | | {{ic|Alt+ →}} |
||
− | | 次の仮想端末にスイッチ |
||
− | |- |
||
− | | {{ic|Scroll Lock}} |
||
− | | Scroll Lock が有効になっているとき、入出力がロックされます |
||
− | |- |
||
− | | {{ic|Shift+PgUp}}/{{ic|PgDown}} |
||
− | | コンソールバッファを上下にスクロール |
||
− | |- |
||
− | | {{ic|Ctrl+c}} |
||
− | | 現在のタスクを終了 |
||
− | |- |
||
− | | {{ic|Ctrl+d}} |
||
− | | EOF を挿入 |
||
− | |- |
||
− | | {{ic|Ctrl+z}} |
||
− | | 現在のタスクを停止 |
||
− | |} |
||
− | + | === Linux コンソール === |
|
+ | 参照 [[Linux コンソール#キーボードショートカット]] |
||
− | GNU readline は行編集によく使われているライブラリです。Bash や FTP など様々なプログラムによって使われています (詳しくは {{Pkg|readline}} パッケージの "Required By" を見て下さい)。readline はカスタマイズすることができます (詳しくは man ページを参照)。 |
||
− | |||
− | {| class="wikitable" |
||
− | ! キーボードショートカット |
||
− | ! 説明 |
||
− | |- |
||
− | | {{ic|Ctrl+l}} |
||
− | | 画面をクリア |
||
− | |- |
||
− | | colspan=2 align="center" | '''カーソルの移動''' |
||
− | |- |
||
− | | {{ic|Ctrl+b}} |
||
− | | 一文字分カーソルを左に移動 |
||
− | |- |
||
− | | {{ic|Ctrl+f}} |
||
− | | 一文字分カーソルを右に移動 |
||
− | |- |
||
− | | {{ic|Alt+b}} |
||
− | | 一単語分カーソルを左に移動 |
||
− | |- |
||
− | | {{ic|Alt+f}} |
||
− | | 一単語分カーソルを右に移動 |
||
− | |- |
||
− | | {{ic|Ctrl+a}} |
||
− | | カーソルを行頭に移動 |
||
− | |- |
||
− | | {{ic|Ctrl+e}} |
||
− | | カーソルを行末に移動 |
||
− | |- |
||
− | | colspan=2 align="center" | '''コピー & ペースト''' |
||
− | |- |
||
− | | {{ic|Ctrl+u}} |
||
− | | 行頭からカーソル位置まで切り取り |
||
− | |- |
||
− | | {{ic|Ctrl+k}} |
||
− | | カーソル位置から行末まで切り取り |
||
− | |- |
||
− | | {{ic|Alt+d}} |
||
− | | カーソルの後の単語を切り取り |
||
− | |- |
||
− | | {{ic|Ctrl+w}} |
||
− | | カーソルの前の単語を切り取り |
||
− | |- |
||
− | | {{ic|Ctrl+y}} |
||
− | | 切り取ったテキストを貼り付け |
||
− | |- |
||
− | | {{ic|Alt+y}} |
||
− | | 前に切り取ったテキストを貼り付け |
||
− | |- |
||
− | | {{ic|Alt+Ctrl+y}} |
||
− | | 前のコマンドの第1引数を貼り付け |
||
− | |- |
||
− | | {{ic|Alt+.}}/{{ic|_}} |
||
− | | 前のコマンドの最後の引数を貼り付け |
||
− | |- |
||
− | | colspan=2 align="center" | '''履歴''' |
||
− | |- |
||
− | | {{ic|Ctrl+p}} |
||
− | | 前の行に移動 |
||
− | |- |
||
− | | {{ic|Ctrl+n}} |
||
− | | 次の行に移動 |
||
− | |- |
||
− | | {{ic|Ctrl+s}} |
||
− | | 検索 |
||
− | |- |
||
− | | {{ic|Ctrl+r}} |
||
− | | 逆検索 |
||
− | |- |
||
− | | {{ic|Ctrl+j}} |
||
− | | 検索を終了 |
||
− | |- |
||
− | | {{ic|Ctrl+g}} |
||
− | | 検索を中止 (元の行に戻る) |
||
− | |- |
||
− | | {{ic|Alt+r}} |
||
− | | 変更を全て戻す |
||
− | |- |
||
− | | colspan=2 align="center" | '''補完''' |
||
− | |- |
||
− | | {{ic|Tab}} |
||
− | | 名前の自動補完 |
||
− | |- |
||
− | | {{ic|Alt+?}} |
||
− | | 利用可能な補完候補を表示 |
||
− | |- |
||
− | | {{ic|Alt+*}} |
||
− | | 利用可能な補完候補を全て挿入 |
||
− | |- |
||
− | |} |
||
=== X11 & Wayland === |
=== X11 & Wayland === |
||
196行目: | 99行目: | ||
|} |
|} |
||
− | == |
+ | == カスタマイズ == |
=== Readline === |
=== Readline === |
||
+ | [[Bash]]、FTP などで利用されています (詳細は {{Pkg|readline}} パッケージの "Required By" 項目を参照してください) [[Emacs]] 的な編集モードと [[vi]] 的な編集モードがあり、エスケープシーケンスでカスタマイズすることができます。デフォルトのキーバインディングは {{man|3|readline}} と [https://tiswww.cwru.edu/php/chet/readline/rluserman.html Info documentation] に記載されています。 |
||
− | 以下の例では行の先頭から文字列の履歴を後方検索するキーを追加します (''vi モード'')。インクリメンタル検索ではありません。 |
||
− | {{hc|.inputrc| |
||
− | set editing-mode vi |
||
− | set keymap vi-insert |
||
− | "\C-r": history-search-backward |
||
− | "\C-e": history-search-forward |
||
− | }} |
||
− | === |
+ | === Zsh === |
+ | [[Zsh]] は [[Zsh#Key_bindings|ZLE]] を使用して、ショートカットをウィジット、スクリプトおよびコマンドにリンクします。 |
||
− | 一般的なショートカットや、デフォルトで無効になっているショートカットは [[Xorg でのキーボード設定#よく使われる XKB オプション]]を見て下さい。 |
||
− | === |
+ | === Xorg === |
+ | デフォルトでは無効になっている一般的なショートカットについては [[Xorg でのキーボード設定#よく使われる XKB オプション]] を参照してください。 |
||
− | [https://addons.mozilla.org/firefox/addon/keybinder/ Keybinder] アドオンを使ってください。 |
||
+ | |||
+ | グラフィカルな環境にいるとき、あるキーの組み合わせが押されたときにコマンドを実行したいことがあります(つまり、コマンドを ''keysym'' にバインドする)。これを行うには、複数の方法があります。 |
||
+ | |||
+ | * [[acpid]] のような低レベルのツールを使う最も移植性の高い方法です。すべてのキーに対応しているわけではありませんが、キーボードのキー、電源アダプタの接続、ヘッドフォンジャックの(抜き)挿しイベントまで、統一された方法で設定することが可能です。また、X セッション内のプログラムを正しく実行することも困難です。 |
||
+ | * [[Xorg]] ユーティリティ(例:[[xbindkeys]]) やデスクトップ環境、ウィンドウマネージャツールを使用するのが一般的な方法です。 |
||
+ | * Gnome Control Center のような GUI ですべてを行うサードパーティプログラムを使用するのが手っ取り早い方法です。 |
||
+ | |||
+ | ==== sxhkd ==== |
||
+ | |||
+ | 強力でコンパクトな構成構文を備えたシンプルなXホットキーデーモン。詳細については、[[sxhkd]] を参照してください。 |
||
+ | |||
+ | ==== actkbd ==== |
||
+ | |||
+ | [http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/ actkbd home page] より |
||
+ | :{{AUR|actkbd}} はキーボードイベントにアクションを結びつけるシンプルなデーモンです。([[AUR]] で利用可能) はキーボードイベントにアクションをバインドするシンプルなデーモンです。キーの組み合わせを認識し、プレス、リピート、リリースイベントを扱うことができます。現在のところ linux-2.6 evdev インターフェースのみをサポートしています。すべてのバインディングを含むプレーンテキストの設定ファイルを使用します。 |
||
+ | |||
+ | [http://users.softlab.ece.ntua.gr/~thkala/projects/actkbd/latest/README こちら] に設定ファイルのサンプルとガイドがあります |
||
+ | |||
+ | ==== xbindkeys ==== |
||
+ | |||
+ | [[xbindkeys]] はデスクトップ環境とは関係なくキーとアクションの高度なマッピングを可能にします。 |
||
+ | {{Tip|もし {{ic|xbindkeys}} が使いづらいと感じたら、[[AUR]] にあるグラフィカルマネージャー {{AUR|xbindkeys_config-gtk2}} を試してみてください。}} |
||
+ | |||
+ | === デスクトップ環境 === |
||
+ | |||
+ | * [[LXDE#Bindings]] |
||
+ | * [[Xfce#Keyboard Shortcuts]] |
||
+ | |||
+ | === ウィンドウマネージャ === |
||
+ | |||
+ | * [[Fluxbox#Hotkeys]] |
||
+ | * [[Openbox#Keybinds]] |
||
=== X-selection-paste のキーバインディング === |
=== X-selection-paste のキーバインディング === |
||
247行目: | 176行目: | ||
* [http://t-sato.in.coocan.jp/xvkbd/ xvkbd ホームページ] |
* [http://t-sato.in.coocan.jp/xvkbd/ xvkbd ホームページ] |
||
− | + | ==== XMonad ウィンドウマネージャ ==== |
|
[[xmonad]] ウィンドウマネージャには x-selection-buffer の中身を貼り付ける機能が内蔵されています。特定のキーストローク (例: {{ic|Insert}} キー) にバインドするには以下の設定を使用: |
[[xmonad]] ウィンドウマネージャには x-selection-buffer の中身を貼り付ける機能が内蔵されています。特定のキーストローク (例: {{ic|Insert}} キー) にバインドするには以下の設定を使用: |
||
257行目: | 186行目: | ||
}} |
}} |
||
+ | == 参照 == |
||
− | '''xdotool を使用''' - コマンドライン X11 自動化ツール |
||
− | {{Pkg|xdotool}} を使用することで中ボタンボタンによって X のセレクションバッファの中身を貼り付ける操作のショートカットを作成できます。ショートカットのコマンドは以下のようになります: |
||
− | |||
− | xdotool getwindowfocus key --window %1 click 2 |
||
− | |||
− | 上記のコマンドは X サーバーからフォーカスのあたっているウィンドウを取得してボタン2 (中マウスボタン) のクリックイベントを発動します。 |
||
− | |||
− | == ヒントとテクニック == |
||
− | |||
− | * 主にキーボードを使って作業をする場合、[[ウィンドウマネージャ#タイル型ウィンドウマネージャ|タイル型ウィンドウマネージャ]]が気に入るかもしれません。 |
||
− | |||
− | == 参照 == |
||
− | * [http://archive.linux.or.jp/JF/JFdocs/kernel-docs-2.2/sysrq.txt The Linux Magic System Request Key - カーネルドキュメント] |
||
* [http://lnag.sourceforge.net/lnag_html/node5.html Linux Newbie Administrator Guide - Shortcuts and Commands] |
* [http://lnag.sourceforge.net/lnag_html/node5.html Linux Newbie Administrator Guide - Shortcuts and Commands] |
||
− | * [ |
+ | * [https://tldp.org/HOWTO/Keyboard-and-Console-HOWTO.html The Linux keyboard and console HOWTO] |
2023年7月29日 (土) 20:18時点における最新版
この記事では (あまり有名でない) デフォルトのキーボードショートカットのリストとユーザーカスタマイズの情報を提供します。
目次
標準のショートカット
カーネル (SysRq)
sysrq キーを介してカーネルに実装されるローレベルなショートカットがいくつかあります。これらのショートカットは、システムが反応しなくなったときに復旧させたりデバッグするのに用いることができます。いつでも使うことができますが、特に、電源ボタンを長押しして無理やりシステムの電源を切るよりかはショートカットを使うほうが推奨されます。
詳細については、Wikipedia:Magic SysRq key を参照してください。
有効化
systemd は sysrq パーミッションのビットマスクがをデフォルトで 0X10に設定しており、特にプロセスのシグナリングや再起動などを許可していません。システムで sysrq キーを完全に使用できるようにするには sysctl の設定に、kernel.sysrq = 1
を追加してください。1 より大きい値は、sysrq 機能を選択的に有効にするために使用できます。詳細は、Linuxカーネルのドキュメントを参照してください。パーティションがマウントされる前やinitrd内でも有効にしたい場合は、sysrq_always_enabled=1
をカーネルパラメータに追加してください。
これらの方法で設定を変更すると、再起動しても変更が持続されることに注意してください。現在のセッションの sysrq 設定を変更してみたい場合は、 sysctl kernel.sysrq=1
または echo "1" > /proc/sys/kernel/sysrq
を実行できます。
sysrq キーを完全に有効にすることには、いくつかの明らかなセキュリティ上の リスクがあります。強制的なリブートなどに加え、CPU レジスタの内容をダンプするために使用することができ、理論的には機密情報を明らかにすることができます。これを使うにはシステムに物理的にアクセスする必要があるので (あなたが 気にしない限り)、ほとんどのデスクトップユーザはおそらくそのリスクレベルを許容範囲と考えるでしょう。とはいえ、sysrq を有効にする前に、それを有効にすることの意味と、あなたのシステムが動作しているより大きな状況の力学を完全に理解していることを確認してください。
再起動
覚え方は "Reboot Even If System Utterly Broken" です ("REISUB" とも呼ばれます)。もしくは "BUSIER" の反対として覚えましょう。
キーボードショートカット | 説明 | 有効にするコード | その他の機能を有効にする |
---|---|---|---|
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 | - |
たとえば、再起動機能のみを選択的に有効にするには、kernel.sysrq
を128に設定します。REISUB 機能のセット全体を有効にするには、244に設定します。ただし、これにより、表の最後の列にリストされている追加機能も有効になります。詳細なドキュメントについては、sysrq キーのドキュメント およびカーネルソースファイル /drivers/tty/sysrq.c
を参照してください。
メモリを大量に消費するプロセスの終了
Alt+SysRq+f
で kill することができない場合時は、カーネルパニックを起こさずに OOM (out-of-memory) killer を呼び出せます。OOM キラーは、ヒューリスティックのセットを使って、最もメモリを消費している比較的重要でないプロセスを選び、それを kill します。これは、暴走したブラウザスクリプトのような、過剰なスラッシュを引き起こしてシステムをソフトロックしているプロセスを kill するのに非常に便利で、多くの場合、再起動の必要性を軽減できます。OOM キラーは、その善意のヒューリスティックにもかかわらず、多種多様なプロセスを対象とすることができますが、やや予測不可能なことがあるので、気軽に呼び出すには注意が必要です。
トラブルシューティング
- ディスプレイマネージャ を使っていて、
Alt+SysRq+e
の後にログイン画面が表示される場合(自動ログインが有効な場合はフルデスクトップ)。と表示される場合、関連する サービスファイル のRestart=always
ディレクティブが原因であることが多いようです。必要であれば、ユニットファイルの編集 をしてください。ただし、これによって "REISUB "シーケンスが動作しなくなることはないはずです。 - もし、
Alt+SysRq+b
以外の組み合わせで動作する場合は、Alt
キーを使ってみてください。 - もし、
SysRq
とPrtScrn
を区別するためにFn
キーを使用するノートパソコンでは、実際にはFn
キーを使う必要はないかもしれません(すなわち、{{ic}Alt + PrtSc +letter' }} でも機能するかもしれません。) - Lenovo のノートパソコンでは、
SysRq
はしばしばFn+S
として設定されます。これを使うにはAlt
を押しながらFn+s
を押して、Fn
とs
を離しAlt
を押したまま上記のキーを押してください。 - また、
Alt
と同時にCtrl
を押す必要があるかもしれません。例えば、フルキーショートカットはCtrl+Alt+SysRq+b
となります。
Linux コンソール
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
Bash、FTP などで利用されています (詳細は readline パッケージの "Required By" 項目を参照してください) Emacs 的な編集モードと vi 的な編集モードがあり、エスケープシーケンスでカスタマイズすることができます。デフォルトのキーバインディングは readline(3) と Info documentation に記載されています。
Zsh
Zsh は ZLE を使用して、ショートカットをウィジット、スクリプトおよびコマンドにリンクします。
Xorg
デフォルトでは無効になっている一般的なショートカットについては Xorg でのキーボード設定#よく使われる XKB オプション を参照してください。
グラフィカルな環境にいるとき、あるキーの組み合わせが押されたときにコマンドを実行したいことがあります(つまり、コマンドを keysym にバインドする)。これを行うには、複数の方法があります。
- acpid のような低レベルのツールを使う最も移植性の高い方法です。すべてのキーに対応しているわけではありませんが、キーボードのキー、電源アダプタの接続、ヘッドフォンジャックの(抜き)挿しイベントまで、統一された方法で設定することが可能です。また、X セッション内のプログラムを正しく実行することも困難です。
- Xorg ユーティリティ(例:xbindkeys) やデスクトップ環境、ウィンドウマネージャツールを使用するのが一般的な方法です。
- Gnome Control Center のような GUI ですべてを行うサードパーティプログラムを使用するのが手っ取り早い方法です。
sxhkd
強力でコンパクトな構成構文を備えたシンプルなXホットキーデーモン。詳細については、sxhkd を参照してください。
actkbd
- actkbdAUR はキーボードイベントにアクションを結びつけるシンプルなデーモンです。(AUR で利用可能) はキーボードイベントにアクションをバインドするシンプルなデーモンです。キーの組み合わせを認識し、プレス、リピート、リリースイベントを扱うことができます。現在のところ linux-2.6 evdev インターフェースのみをサポートしています。すべてのバインディングを含むプレーンテキストの設定ファイルを使用します。
こちら に設定ファイルのサンプルとガイドがあります
xbindkeys
xbindkeys はデスクトップ環境とは関係なくキーとアクションの高度なマッピングを可能にします。
デスクトップ環境
ウィンドウマネージャ
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) ]