【初学者向け】ターミナル でreturnを押すと^Mになっちゃう!

Linux

こんにちはtekute-kuです。

今回はアプリ開発中にターミナル で遭遇したトラブルについて共有したいと思います!

記事を書いた目的

ターミナル で returnキーを押すと^M となってしまったのでその直し方を備忘録として記録します。同様のトラブルで困っている方に役に立てば幸いです。

開発環境

OS:MacOS

生じたトラブル

Webアプリケーション開発中にターミナルのコマンドラインでreturnキーを押すと何故か「^M」が入力されてしまってコマンドを入力しても実行できなくなってしまいどうにもならなくなってしまいました。

解決方法⇨ 「stty sane」

コマンドラインで「stty sane」と入力してreturnキーを押して実行するとあら不思議!何事もなかったかのように直りました!

stty sane

 

何が起こったのかを一つずつ紐解いていきましょう!

 

「^M」とは

では表示されていた「^M」とは何だったのでしょうか。

「^M」はASCII制御コードと呼ばれるコードで「CR(復帰)」を表すようです。

改行コードの「^M」を削除する方法

ASCII American Standard Code for Information Interchange】 アスキー

小難しい説明は上のリンクにお任せします。

簡単に言うとターミナルで普通ならLinuxコマンドが入力されるところが何らかの理由で切り替わってしまい、ASCII制御コード的なやつが入力されるようになってしまって、returnキーを押すと改行コードである「^M」と出力されてしまった!といったところでしょうか。

素人の見解ですので間違っていたらごめんなさい。

「stty sane」とは

stty

まず「stty」とは

Linuxコマンドでターミナル の設定を行うコマンドのようです。

sane

「sane」の英語の意味は「正気の、気の確かな、健全な、穏健な、分別のある」です。

そして「sane」は「stty」コマンドのオプションで結合コマンドに分類されるようです。

「sane」オプションで出来ることは「パラメーターを妥当な値にリセットする」です。

つまり「stty」+「sane」で「ターミナルでの値を妥当なものにリセットする」

ことができるようです。

 

したがって「^M」と出力された値を元の値にリセットしてくれたと言うわけですね。

まとめ

たまにCUIで操作していると出力される値がいつもと異なる時がありますので、試してみるといいかもしれません。

Linuxコマンドは、まだまだ知らないことが多いので勉強になります。

 

コメント