hiro99ma blog

wsl: コンソールログを取りたい

2025/06/12

WSL2 で記録を残したい作業をしていたのだが、ログの出力が多すぎて Windows Terminal のバッファからあふれてしまった。 やり直しだ。。。

まあそれはあきらめるとして、TeraTerm のようにターミナルの機能として動的にログを保存してほしい。

Windows Terminal にログ保存はなさそう

Windows Terminal 自体に動的なログ保存はなさそうだ。
バッファにあるテキストを保存する機能はあったが、今回はそのバッファからあふれてしまったので意味が無い。
バッファのサイズは増やせるのだが、じゃあどこまで増やせば大丈夫かというのが未定なことも多い。

image

WSL2 に SSH ログインするという手段はある

WSL2 上に SSHサーバを立てて TeraTerm からログインするという手段はある。
そのためには SSHサーバを立てないといかん。 cygterm のようにはいかないようだ。

Windows Terminal はそういうの無しでできるのだから、何かルートはあるのだろう。 vscode だってできてるしね。

サードパーティターミナルというものもある

Claude AI に聞いてみると、サードパーティのターミナルアプリがあるそうだ。

ConEmu のログ保存が楽だったのだが、TeraTerm みたいに「今から開始」が指定できなさそう。
それはまだよいのだが、エスケープ文字などがそのまま記録されているので見づらい。

他にないのか

こちらが参考になった。

WSL2 に tmux がインストールされていたので、それが一番楽そうなのだが、コマンドを覚えられる自信がない。
そして、このログもやはりエスケープ文字などがそのままなのだ。 cat すれば色の違いなども出力されて便利は便利かもしれないが、私はテキストエディタで眺めたいのである。 ツールを使って除去すれば良いのだろうが、最初から取り除かれているならその方がよい。

WSL2 に OpenSSH server をインストールしたが失敗

あきらめて TeraTerm を使おうと openssh-server を apt install した。
そこまではよかったのだが、systemctl start sshd で失敗する。
ポート 22番が重なっているそうだが、ss -nat | grep 22 しても出てこない。

1年ほど前、Windows 側で vscode から git を使いたいがために OpenSSH をインストールしていた。

%PROGRAMDATA%\ssh\sshd_configPort を変更してサービスを再起動させると変わった。
Windows 側の OpenSSH は GitHub のためだけに使っているので、どうでもよいのだ。

Windows 側のポート番号をずらしたので WSL2 側の openssh-server はそのまま立ち上がった。
WSL2 の .ssh/authorized_keys に公開鍵を追加して TeraTerm からログインできた。
自動ログインするマクロに追加したので、普段はダイアログから選ぶだけになった。

ツールの使い方に敗北した気分ではあるが、まあよかろう。

ブリッジ

こちらで、ブリッジを使って cygterm とつなぐやり方が説明してあった。
記事の中のリンクが Qiita の画像リンク?になっているため GitHub で変な感じになってしまったが、存在するリポジトリなので普通にアクセスすれば良い。

記事の時から時間が経ってバージョンなども変わったためか、やり方がちょっと違った。
なお、Windows11 Home + WSL2 + TeraTerm5 という構成である。

wslbridge2 のダウンロード

cygwin1.dll の入手

cygwin といえば cygwin1.dll
記事を見ると、当時は同梱されていたのかな? 今は入っていないので、持っていなければ入手する。

公式で DLL だけダウンロードするところは見つけられなかった。
昔からそうだったと思う。
ローカルを検索すると Android Studio のエミュレータにあったのだが、なんかちょっと違うみたい。 もしかしたら 32bit だったのかも。

ダウンロードするサイトはありそうだが、なんだかなぁと思って、一旦 cygwin をインストールした。
64bit 版のインストーラだったので、そのまま特に設定せずインストールし、bin/cygwin1.dll をコピーして、cygwin 自体は削除した(アンインストーラー的はものはない)。

誰が参照するか分からないので PATH が通ったところに置いた。

TeraTerm の設定

TERATERM.INIcygterm.cfg は %APPDATA% の方にあるようだが、 無難に TeraTerm の設定から変更して保存した。

image

インストール先のパスは、よくわからんが wslbridge2.exe のディレクトリにした。
SHELL はダブルクォーテーションで囲んでデリミタを / などに変更した wslbridge2.exe のフルパス + -W ~ にしている。
option-W-w で意味が違うので間違えぬよう。

実行!

Windows のスタートメニューから “cyglaunch” を選ぶと起動する。

いささかうっとうしいことに wslbridge2.exe をコマンドプロンプトから起動したようなウィンドウが立ち上がる。
サーバーアプリではなくブリッジなので、cyglaunch するごとに起動する。 セッションの複製をしても起動する。
start /b とかしてみたけど cygterm になるだけで開いたままになるのはどうしようもなかった。

それと、WSL が起動済みの時に Windows Terminal を開いたときよりも多少時間がかかる。
SSH だと先に WSL を起動してサーバを立ち上げないと使えないから、どっちもどっちか?
ログを取るときだけと割り切れば、準備がいらない分ましかなぁ。 いや、それなら先に WSL が起動しているだろうし、やはりどっちもどっちか。

writer: hiro99ma
tags: Windows   

 < Top page

コメント(Google Formへ飛びます)

GitHub

X/Twitter

Homepage

About me