最近cygwinのコンソールがminttyに変わったらしいのですが、
これだと昔動いていたDOSのバッチが動きません。また文字化けもひどいです。
これだけなら昔のコンソールを立ち上げDOSバッチを起動すれば済むのですが、
ホストにcygwin/sshdをインストールし、リモートからsshで接続すると、
勝手にホスト側でminttyで繋げてしまい、リモートからバッチを起動しても動作しません。
なんとかcygwin/sshdのコンソールを昔のminttyではない旧来のコンソールにできないものでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
mintty はちょっと忘れてください。
直接関係はありません。
.batということなので、中は、素のWindows用のコマンドを使って書かれているのではないでしょうか?
日本語版Windowsのコマンドは、通常、所謂Shift_JISで入出力します。
対し、CygwinはUTF-8に対応しています。
mintty等は、これに対応するため、UTF-8と解釈して表示するように標準では設定されています。
※ minttyが標準になったのは、CygwinがUTF-8に正式に対応するようになってからです。
おそらく、従来のWIndowsのターミナルでは不十分だったからでしょう。
文字化けは、この文字コードの違いが原因と思われます。
「一致していないこと」が原因であって、ホスト、リモートどちらが「悪い」ということではありません。
・hoge.bat がUTF-8で出力するようにする
(ただし、使っているコマンドによっては無理)
または
・端末側でShift_JIS表示にする
(ただしCygwin 由来のUTF-8で出力するコマンドが文字化けするようになる)
がとりあえずの解決策になります。
先に紹介したckは、部分的に文字コードを判定して、自動で対応する機能があり、複数の文字コードが使われている場合でも、比較的良好に表示されます。
ちなみに、そのバッチファイルと同じ機能を、Cygwinのコマンドだけのシェルスクリプトでは書けないのですか?
Cygwin上のbashから実行するのに、batファイルである必要性が感じられません。
Windowsからも使うのなら、bash -e hoge.sh のような風に書かれた hoge.batを用意すれば、hoge.shの変更だけで済みますし。
ちなみに、Cygwinにはsleepというコマンドがあります。マニュアルで調べてみてください。
この回答への補足
#1のお答えに対し、具体的な事例を出して説明しましたので
質問の趣旨が間違って伝わってしまったようです。
また文字化けを問題にしているのでもありません。
この辺の説明も不足で間違って伝わったようです。
対話的処理はありませんのでバッチ的に処理が完了すればいいのです。
ただエラーメッセージが化けるのは痛いですが。
timeoutを例に出したのは、
旧来ターミナルからの起動と、minttyからの起動で、
互換性が無く、前者では動作するが、後者では動作しない、
ということを説明する為に過ぎません。
ですからtimeoutを、
DOSバッチでも旧来ターミナル/bashでもmintty/bashでも動くようにしたいとか、
その代りになるような記述はないかとか、
そういうことをお聞きしているのではないのです。
この辺も伝わらなかったかもしれません。
それ「だけ」、なら色々方法はあり、直せば終わりですし、
これについては既に他の方法(pingでごまかす方法)で、
どれでも動くように改修しました。
しかし昔から使用しているコードが沢山あったらどうでしょう?
書き直すとか、他の代替手段とか、
そのようなアドバイスはありがたいとは思いますが、
それをすればいいのであれば今回の質問はしていません。
最終的に問題が出る度にコードを眺めて直すという、
おおよそ趣味の世界風の対応でいいのなら色々方法は思いつきます。
一般には、
ターミナルが変わっただけで処理内容が変わり互換性が損なわれるということは無い、
と思われています。
しかし、不思議なことにminttyと昔のターミナルでは、
処理内容が違うように見えるのです(説明の通り)。
これに対しローカルであればターミナルを選ぶことにより対処することが可能です。
しかしsshで接続した場合は、勝手にmintty風の応答になり、
選択できないように見えるのです。
sshd_config等も見てみましたが、それらしき指定は見つかりませんでした。
ならばアンインストール的な方法は無いのか?
これが質問の趣旨です。
宜しくお願いします。
No.1
- 回答日時:
> 勝手にホスト側でminttyで繋げてしまい
ここがちょっとよくわからないのですが。
minttyの画面が出るのはホストマシンの方ですかリモート側ですか?
おそらく、ホストは関係無く、Cygwin.batでbash を起動したらminttyが立ち上がるように、
sshを実行する環境として、minttyが起動しているのではないかと思います。
sshで継ぐだけなら、TeraTerm等のSSHクライアントで接続する、という方法があります。
minttyの代替品としてはck があります。
文字コードが混在しても比較的良好に表示してくれます。
http://www.geocities.jp/meir000/ck/
この回答への補足
理解が十分ではないのでおかしな質問をしたかもしれません。
もしかしたらターミナルの問題ではないかもしれません。
現象としては、ローカル上で、
C:\Windows\System32\timeout.exe /T 10
という内容のバッチファイル(hoge.bat)を作り、
昔のターミナルを立ち上げて、
./hoge.bat
とすれば動きます。
しかし、minttyを立ち上げて同じことをすると、文字化けを表示し失敗します。
失敗はしますがここまではとりあえずいいとします。
問題はここからです。
ホスト上に同じhoge.batを置いて、
cygwin/sshクライアントがインストールされた別のコンピュータからsshでホストに接続します。
ターミナルから
ssh -l Administrator -p ポート アドレス
を入力してホストに接続し、
./hoge.bat
を実行してもホストのcygwinが新しいせいか、
ローカルでminttyから実行した時のように同じ文字化けを表示し失敗します。
これは別のコンピュータからホストにsshで接続する際、
昔のターミナルを使ってもminttyを使っても、現象として変わらないのです。
ほぼホスト側の原因と言っていいと思います。これを回避したいということなんですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 WindowsUpdateで再起動を阻止したいです 3 2023/03/15 22:41
- ネットワーク 瞬快 コンソール操作 ローカル端末のファイルをリモート端末にコピーする方法がない? 1 2023/03/17 18:56
- Windows Vista・XP windows xp proが起動しなくなりました 10 2022/05/20 00:49
- その他(プログラミング・Web制作) JavaScriptのコンソールのショートカットが動きません https://laptopreneu 1 2023/04/25 11:32
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- サーバー ログオンユーザーがいない場合に自動再起動 1 2022/09/28 09:53
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Windows 7 Windows7でMicrosoft VirtualPC2007 SP1を使用する 9 2022/11/17 13:12
- BTOパソコン できるだけ安く、デジタルホーダーに合うオーダーメイドパソコンを買いたいです。 6 2022/11/20 07:46
- Chrome(クローム) Chromeリモートデスクトップについて 1 2022/09/02 18:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IPアドレスだとPingが通るのに...
-
windows10でユーザーフォルダ名...
-
-bash: ftp: コマンドが見つか...
-
bashのコピー&ペーストの方法を...
-
メールのログのパーミッション...
-
cshにてファイル名補完の設定の...
-
WindowsとLinuxでCD-ROMの共有
-
時刻合わせ(ntp)について
-
コマンドプロンプトからリモー...
-
no valid signature found
-
traceroute の H! について
-
CentOSのrebootがきかない
-
インターネットを切断する
-
空きIPアドレスを探す方法
-
SONYの音楽ソフト「x-アプリ」...
-
iqoo neo 9と言うスマホがある...
-
windows10のごみ箱をrd /s /q C...
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
マウントしたUSBメモリに書き込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
空きIPアドレスを探す方法
-
IPアドレスだとPingが通るのに...
-
コマンドプロンプトから別マシ...
-
-bash: ftp: コマンドが見つか...
-
TERATERMを使ってのSSH接続がで...
-
expectを使用しない自動PW入力方法
-
「Ctrl + C」が使用できない
-
端末(ターミナル)から端末を...
-
cshにてファイル名補完の設定の...
-
net time コマンドについて
-
コマンドプロンプトからリモー...
-
Linuxのswap領域の表示について
-
他のログイン中のttyをリモート...
-
デュアルモニターでスクリーン...
-
no valid signature found
-
CentOSのrebootがきかない
-
viエディタが起動しない
-
ネームサーバからの応答なし。...
-
CentOS7 が起動できない
-
bashのコピー&ペーストの方法を...
おすすめ情報