私はFreeBSDを使用しています。
コンソールの幅を設定したい(sshやtelnet以外のコンソールのみ)。
私は次のコマンドを使用しました。
stty cols 132
これはコンソールにのみ適用されますか、またはすべての接続(コンソール、SSH、およびTelnet)に適用されますか?
ベストアンサー1
stty
端末は実際にはサイズ変更されません。行ルールに書き込まれたいくつかの値のみを変更します。端末表示の実際の高さおよび幅の変更は、コンソール装置が実際の端末であるか、カーネル仮想端末であるか、またはユーザ空間仮想端末であるかに依存する機構を介して行われる。
実端末
コンソールは、シリアルデバイスに接続された実際の端末にすることができます。この場合、端末にディスプレイのサイズを変更するように指示する制御シーケンスいくつかの形態はワイヤを介して端子に接続されています。この制御シーケンスの内容は端末の種類によって異なる。さらに、それを簡単に提供するtermcap機能もありません。
通常ただし、シリアル回線のもう一方の端にどの端末が実際に所有されているかに依存しているわけではなく、端末はDEC VT340以降が従うDECパーソナルコントロールシーケンスに従いDECSLPP
ます。DECSNLS
DECSCPP
スナックツールセットconsole-resize
(別名)resizecons
コマンドは以下を実行します。
$80x25 サイズ変更
ほとんどの実際の端末は、実際に実装できる列と行の組み合わせを、事前定義された端末サイズのやや制限されたセットに制限します。たとえば、DEC VTは伝統的に80列または132列をサポートしていました。
これは実際の端末の場合です。ターミナルの表示サイズを変更したら、実行してラインルールのターミナルサイズの概念を明示的に更新する必要がありますstty
。ライン規律は制御シーケンスについて何も知らず、エンドデバイス自体はライン規律に影響を与えることができず、実際にオペレーティングシステムと通信していることを知りません。持つライン規律のような概念。
ユーザー空間仮想端末
noshツールセットのユーザースペース仮想端末は同じDECパーソナルコントロールシーケンスに従い、コマンドを使用して同様に調整できますconsole-resize
。実際の端末と同様に、制御順序が変更されるまで常に同じモードで起動されます。実際の端末とは異なり、代わりに設計されたカーネル仮想端末と同様に、多くの物理端末の80×24モードではなく80×25モードで起動します。
stty
また、実際の端末とは異なり、カーネル仮想端末と同様に、サイズ変更操作は線規則自体を更新するため、端末にサイズを変更するように指示した後に線規則を更新するために呼び出す必要はありません。
実際の端末やカーネル仮想端末とは異なり、2×2から65535×65535までの制御シーケンスに許容されるより広い範囲のサイズをサポートします。
これにより、カーネル仮想端末が表示されます。
カーネル仮想端末
これはカーネル自体に組み込まれた端末エミュレータによって提供されます。それはあなたが素朴に考えているかもしれません。考えるマニュアルを読み、コンソール(カーネルの診断と追跡出力と出力が送信される場所として定義されています)がカーネル仮想端末であるシリアルデバイス/dev/console
()の実際の端末になる可能性があることに気付くまで、「コンソール」になります。comconsole
( vidconsole
)、あるいは何もないこと( nullconsole
)。
制御シーケンスによって操作されず、代わりに端末装置を開き、装置固有のioctl()
要求を実行します。幸いなことに、より一般的なioctl()
要求の一部をラップして、独自のプログラムを書かずにアクセスできるようにするツールがあります。
ログインセッションで変更したいカーネル仮想端末でそれ自体またはこれらの端末デバイスからリダイレクトされた標準入力を使用して:
- 使用可能なモードのリストを取得します。
$vidcontrol -i モード
- 適切な行と列でスキーマを決定します。マイコンピュータの1つ(このコンピュータ)では、フォントは8×16、列160、行64です。
283(0x11b) 0x0000001f G 1280x1024x32 D 8x16 0xa0000 64k 64k 0xf1000000 5120k
- このモードに変更:
$ビデオコントロールMODE_283
- ブートストラップで上記のコマンドを実行して、このサイズ変更を継続してください。
#sysrc allscreens_flags=MODE_283
サイズの選択は、古いsysconsまたは新しいvtカーネル端末エミュレータを使用するかどうか、およびアナログディスプレイをサポートするディスプレイアダプタの知識によって異なります。
追加読書
- 「仮想コンソールと端末」。FreeBSDマニュアル。 FreeBSD文書化プロジェクト。 2018年9月5日。
- ジョナサンデボインポラード(2018)。 」端末」。 スナックガイド。ソフトウェア。
- VT510ビデオターミナルプログラマー情報。 EK-VT510-RM。 1993年11月。
- VT520/VT525 ビデオ端末プログラマ情報。 EK-VT520-RM。 1994年7月。
- ジョーダン・ハバード(2017-12-17)。
rc.conf
。 FreeBSDファイル形式のマニュアル。 - ソレン・シュミットとサシャ・ワイルドナー(2016-01-19)。
vidcontrol
。 FreeBSD 汎用コマンドマニュアル。 - デビンテスケ(2016-02-02)。
sysrc
。 FreeBSDシステム管理者マニュアル。 - ダニエル・ソブラル(2016-01-20)。
loader.conf
。 FreeBSDファイル形式のマニュアル。 - ジョナサンデボインポラード(2016)。
console-resize
、resizecons
。 スナックガイド。ソフトウェア。 - https://unix.stackexchange.com/a/284438/5132