こんにちは![]()
前回は、【ANSI エスケープシーケンスによるカラー表示】について紹介しましたが、
今回は、【シェルのショートカット設定に手を加える】についてです!
1. Ctrl + s で検索したかった
先の記事 [historyコマンドの設定]
(https://ameblo.jp/stylagy/entry-12401395867.html) におきまして、
> 未来方向には `Ctrl + s` で検索できます。
ただしこのショートカットは別の機能に割り当てられていることが多く、
一般には使用できません(割り当てを解除する方法もあるのですが…)。
という記述をしました。
その「割り当て」に関するお話です。
2. Ctrl + s のデフォルトの割り当て
`Ctrl + s` を押下すると、画面の表示が止まります。何のキーを押しても、効果が無いように見えます。
これは実は画面の再描画が発生しなくなっているだけで、キー入力そのものは受け付けられています。
`Ctrl + q`で再び描画が始まり、その間に何かキー操作をしていればその結果が画面に出力されます。
上記以外にも、
・ 実行中コマンドの中止 `Ctrl + c`
・ 入力の終わりを意味する `Ctrl + d`
・ 単語単位のバックスペース `Ctrl + w`
これらの機能が次の要領で制御できます。
3. 端末を制御するコマンド「stty」
```
$ stty --all
speed 38400 baud; rows 53; columns 192; line = 0;
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;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
```
この出力結果の2行目を見てください。ここにショートカットの設定があります。
```
$ stty stop undef
```
とすることで、 `Ctrl + s` のショートカット割り当てが解除されます。
```
$ stty --all
speed 38400 baud; rows 53; columns 192; line = 0;
| intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = <undef>; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; |
| min = 1; time = 0; | ||||||||||
| -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts | ||||||||||
| -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8 | ||||||||||
| opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 | ||||||||||
| isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke | ||||||||||
```
|
|||||||||
| ``` | |
| (i-search)`': | |
| ``` | |
| ※実はこの状態で検索位置が一番下(もっとも現在に近い過去)なので、この後何を入力してもヒットするコマンドはありません。 | ||||||||||||
| `Ctrl + r` でプロンプトを | ||||||||||||
| ``` | ||
| (reverse-i-search)`': | ||
| ``` | ||
|
|||||||||||||||||||||||||||||||||||||||||||||
|
次回は、 クロスサイトスクリプティングです!! |
ではまた![]()