はじめに
この実験(Lab)では、Linux でターミナルまたはシリアルポートの設定を構成および制御するために stty コマンドを使用する方法を学びます。この実験では、stty コマンドの目的と構文、およびボーレート、行数と列数、さまざまな制御文字などのターミナル設定を変更する実践的な例について説明します。この実験は、システム構成と設定のスキルセットの一部であり、stty コマンドは Linux でターミナル設定を管理するための広く使用されているツールです。
stty コマンドの目的と構文を理解する
このステップでは、Linux における stty コマンドの目的と構文について学びます。stty コマンドは、ターミナルまたはシリアルポートの設定を構成および制御するために使用されます。
まず、stty コマンドの基本的な構文を理解しましょう。
stty [OPTION] [SETTING]
OPTION は、次のいずれかになります。
-a: 現在の設定をすべて表示します-g: 他のsttyコマンドの引数として使用できる形式ですべての現在の設定を出力します
SETTING は、次のような多くのターミナル設定のいずれかになります。
speed: ターミナルのボーレートを設定しますrows: 行数を設定しますcols: 列数を設定しますintr: 中断文字を設定しますquit: 終了文字を設定しますerase: 消去文字を設定しますkill: 削除文字を設定しますeof: ファイル終了文字を設定します
stty コマンドをよりよく理解するために、いくつかの例を試してみましょう。
## 現在のすべてのターミナル設定を表示します
stty -a
出力例:
speed 38400 baud; rows 24; columns 80; 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; discard = ^O; min = 1; time = 0;
-parenb -parodd 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 -flusho -extproc
この出力は、ボーレート、行数と列数、およびさまざまな制御文字を含む、現在のターミナル設定を示しています。
次に、いくつかの設定を変更してみましょう。
## ターミナルのボーレートを 9600 に設定します
stty speed 9600
## 行数を 30 に設定します
stty rows 30
## 列数を 100 に設定します
stty cols 100
これらのコマンドを実行した後、stty -a を再度実行して変更を確認できます。
stty コマンドを使用してターミナル設定を変更する
このステップでは、stty コマンドを使用してさまざまなターミナル設定を変更する方法を学びます。
まず、現在のターミナル設定を確認しましょう。
stty -a
これにより、ボーレート、行数と列数、およびさまざまな制御文字を含む、現在のすべてのターミナル設定が表示されます。
次に、これらの設定の一部を変更してみましょう。
## ターミナルを 7 ビット文字モードで使用するように設定します
stty cs7
## ターミナルを 8 ビット文字モードで使用するように設定します
stty cs8
## ターミナルをパリティなしで使用するように設定します
stty -parenb
## ターミナルを偶数パリティで使用するように設定します
stty parenb -parodd
## ターミナルを奇数パリティで使用するように設定します
stty parenb parodd
## ターミナルをハードウェアフロー制御を使用するように設定します
stty crtscts
## ターミナルをソフトウェアフロー制御を使用するように設定します
stty -crtscts ixon ixoff
## ターミナルをブレーク条件を無視するように設定します
stty -ignbrk
## ブレーク条件が検出されたときにシグナルを生成するようにターミナルを設定します
stty ignbrk brkint
これらのコマンドを実行した後、stty -a を再度実行して変更を確認できます。
stty コマンドの使用例
この最終ステップでは、stty コマンドの使用に関するいくつかの実用的な例を探ります。
- Ctrl+C 中断の無効化
## Ctrl+C 中断を無効にする
stty -intr
これにより、通常は実行中のプロセスを終了するために使用される Ctrl+C 中断が無効になります。これは、sleep 60 など、通常は Ctrl+C によって中断されるコマンドを実行することで確認できます。
- 消去文字の変更
## 消去文字を Backspace に変更する
stty erase ^?
これにより、消去文字がデフォルト(通常は Delete)から Backspace に変更されます。これは、ターミナルにテキストを入力し、Backspace キーを押すことでテストできます。
- ターミナルサイズの変更
## ターミナルサイズを 80 列と 24 行に設定する
stty cols 80 rows 24
これにより、ターミナルサイズが 80 列と 24 行に変更されます。変更は、stty -a を実行するか、resize コマンドを使用することで確認できます。
- ターミナル設定の保存と復元
## 現在のターミナル設定を保存する
stty -g > terminal_settings.txt
## 保存されたターミナル設定を復元する
stty $(cat terminal_settings.txt)
この例は、現在のターミナル設定をファイルに保存し、後で復元する方法を示しています。これは、一時的にいくつかの設定を変更し、元の構成に戻す必要がある場合に役立ちます。
まとめ
この実験では、ターミナルまたはシリアルポートの設定を構成および制御するために使用される Linux の stty コマンドの目的と構文について学びました。-a オプションを使用して現在のターミナル設定を表示する方法、およびボーレート、行数と列数、制御文字などのさまざまな設定を変更する方法を調べました。この実験では、stty コマンドの使用法と、ターミナル構成を管理する上でのその多用途性を理解するのに役立つ実用的な例を提供しました。



