|
現: 2024-05-01 (水) 10:16:58 yuji |
| + | * Windowsで使えるターミナルとシェル [#j13aefde] |
| + | Windowsで使えるターミナルとシェルについて説明する。 |
| | | |
| + | Windowsでも意外と選択肢は多い。ターミナルとシェルの組み合わせで,自分好みの環境を構築出来る。 |
| + | |
| + | ** ターミナルとは [#m8888400] |
| + | ターミナル,ターミナルエミュレータ,端末エミュレータ,コンソール,などと呼ばれているもの。~ |
| + | Windowsのコマンドプロンプトもこの部類に入るツール。 |
| + | |
| + | テキストのみの画面の見た目やキーボードでの操作を行っている部分がターミナル。~ |
| + | ターミナルだけでは何も出来なくて,シェルと一緒に動作するようになっている。 |
| + | |
| + | 代表的なターミナルには,以下のようなものがある。 |
| + | - [[xterm(X Window)>https://ja.wikipedia.org/wiki/Xterm]]~ |
| + | - [[rxvt(X Window)>https://ja.wikipedia.org/wiki/Rxvt]]~ |
| + | - [[GNOME-terminal(GNOME)>https://ja.wikipedia.org/wiki/GNOME_%E7%AB%AF%E6%9C%AB]]~ |
| + | - [[Konsole(KDE)>https://ja.wikipedia.org/wiki/Konsole]]~ |
| + | - [[Terminal(Mac)>https://ja.wikipedia.org/wiki/%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB_(macOS)]]~ |
| + | - iTerm2(Mac)~ |
| + | - Win32コンソール(Windows)~ |
| + | - [[mintty(Windows)>https://ja.wikipedia.org/wiki/Mintty]]~ |
| + | - [[PuTTY(Windows)>https://ja.wikipedia.org/wiki/PuTTY]]~ |
| + | - [[Tera Term(Windows)>https://ja.wikipedia.org/wiki/Tera_Term]]~ |
| + | - [[Windows Terminal>https://ja.wikipedia.org/wiki/Windows_Terminal]]~ |
| + | |
| + | ** シェルとは [#x1a28f25] |
| + | シェル(Shell)は,OSとユーザーとのインターフェースを担うソフトウェアのこと。~ |
| + | 特にコマンドラインタイプのようなインタプリタのインターフェースを持つものをシェルと言っている。 |
| + | |
| + | シェルを使って,他のアプリを起動させたり,終了させたり,入出力をリダイレクトさせたり,バッチファイルを実行したりする操作を行うことが出来る。 |
| + | |
| + | 代表的なシェルには,以下のようなものがある。 |
| + | - [[bash>https://ja.wikipedia.org/wiki/Bash]]~ |
| + | - [[zsh>https://ja.wikipedia.org/wiki/Z_Shell]]~ |
| + | - [[csh>https://ja.wikipedia.org/wiki/C_Shell]]~ |
| + | - [[cmd.exe(Windows)>https://ja.wikipedia.org/wiki/Cmd.exe]]~ |
| + | - [[PowerShell(Windows)>https://ja.wikipedia.org/wiki/PowerShell]]~ |
| + | |
| + | ** Windowsで使えるターミナル環境 [#f644401f] |
| + | |
| + | *** mintty [#tb46486a] |
| + | MSYS/MSYS2,Cygwin,PuTTYなんかで使われている。~ |
| + | 以下のような特徴がある。~ |
| + | - xtermと互換性がある。~ |
| + | - 256色(8bit),TrueColor(16bit)をサポート。~ |
| + | - UTF-8をサポート。~ |
| + | - Windows IMEをサポートしている。多バイト文字を使える。~ |
| + | - 画像が表示できる。~ |
| + | - フルスクリーンになる。~ |
| + | - コピペがわりと簡単。~ |
| + | - テキストやファイル,フォルダのドラッグ&ドロップに対応。~ |
| + | - Ctrl+clickでURLを開ける。~ |
| + | - 背景を透過できる。~ |
| + | - レジストリを使わない。~ |
| + | |
| + | 動作が軽いのが良い。まあ,とりあえずこれを使っておけばいいのかもしれない。 |
| + | |
| + | minttyでタブ機能が必要な場合は,tmuxを導入すれば可能になる。 |
| + | |
| + | *** ConEmu [#df337bd4] |
| + | いろいろな設定ができ,かなり自由度が高い。タブが使えて複数ターミナルを切り替えながら使用できる。 |
| + | |
| + | *** cmder [#g6af12e7] |
| + | ConEmu(ターミナル)とclink(シェル)とGit for Windows(各種コマンド)が入っているパッケージ。~ |
| + | 最低限の機能のmini版と,各種コマンドを含んだfull版がある。~ |
| + | - タブが使える。~ |
| + | - タブの入力をロックできる。~ |
| + | - 履歴を検索できる。~ |
| + | - aliasを設定できる。~ |
| + | - Monokaiカラー対応。~ |
| + | - PowerShellモードがある。~ |
| + | |
| + | *** ConsoleZ [#u38c75b9] |
| + | Console2の後継アプリケーション。~ |
| + | ConEmuは,設定がいっぱいあってよくわからんと思った人には,ConsoleZがオススメ。見た目も操作も手軽。 |
| + | |
| + | *** ckw-mod [#k1f73d76] |
| + | ckwの後継アプリケーション。日本人が開発しているので日本語の扱いはバッチリ。なんだけど,Unicodeには未対応。~ |
| + | 背景画像設定,透過,シェル指定と,やりたいことは一通り出来る。 |
| + | |
| + | *** Hyper [#r08dd6c4] |
| + | Electron製のターミナル。HTML5とJavaScriptで拡張できる。日本語には未対応。x86版も無い。 |
| + | |
| + | *** Qonsole [#w6092aee] |
| + | Quake(ゲームじゃん)ライクなターミナル。~ |
| + | ショートカットキーで,スライド表示される。シェルの指定も可能。 |
| + | |
| + | *** MobaXterm [#n2ad4700] |
| + | どちらかというとSSHクライアントみたいだが,bashが使える。~ |
| + | BusyBoxベースで,Cygwinとの連携とも可能になっていて,かなり高機能なターミナル。 |
| + | |
| + | *** MobaXterm [#q41e6d59] |
| + | Windowsでのcygwinのターミナルに代わるターミナル環境。 |
| + | |
| + | *** CygTerm [#h855b50d] |
| + | Cygwin環境が必要。~ |
| + | TeraTerm,PuTTY,Poderosaなどのログインシェルを指定できないSSHなターミナルを,Cygwinの環境へ接続するツール。~ |
| + | TeraTermなどに同梱されていることが多い。TeraTermでは,メニューからFile => Cygwin connection [ALT + G]で使用できる。 |
| + | |
| + | ** SSH/シリアル通信クライアント [#hb4f814b] |
| + | SSHでリモートコンピュータに接続する時に使用するアプリケーション。~ |
| + | - RLogin~ |
| + | - Poderosa~ |
| + | - TeraTerm~ |
| + | - PuTTY(KiTTY)~ |
| + | |
| + | ** Windowsで使えるシェル環境 [#y269de07] |
| + | *** MSYS2 [#oe884ee6] |
| + | MSYS2は,WindowsにPosix環境を使えるようにするためのツール群。~ |
| + | MSYS2のターミナルは,minttyが標準で使われていて,シェルはbashになっている。MSYS2を導入すれば,多くのPosixコマンドが使用できるようになる。 |
| + | |
| + | パッケージマネージャとしてpacmanを採用しているので,足りないコマンドがあればpacman -S [name]ですぐにインストールできる。 |
| + | |
| + | *** Git for Windows [#t793899e] |
| + | Windowsで使用できるGitクライアントなのだが,MSYS2をベースに使っているのでPosixコマンドが使用できる。シェルのbashも含まれている。~ |
| + | Windowsでgitを使う場合は,通常これをインストールしているはず。 |
| + | |
| + | *** Cygwin [#o63b3205] |
| + | CygwinはWindowsでPosix環境を使用できるようにする環境。Windowsに無いPosix APIをcygwin1.dllでエミュレートして実行できる環境を構築できる。~ |
| + | 目的が,WindowsでPosix(Unix)を使えるようにするための環境。 |
| + | |
| + | シェルはbashが使われている。 |
| + | |
| + | *** PowerShell [#see6eadf] |
| + | Windows7からデフォルトで入っているシェルで,コマンドプロンプト(cmd.exe)の後継というようなツール。~ |
| + | .NETライブラリも使えたり出来て,かなりいろいろなことが出来る。しかし,コマンド表記が独特でなかなか馴染めない。 |
| + | |
| + | 問題は,Windowsでしか使えないこと。(オープンソース化されて,Linuxでも使えるようになった?) |
| + | |
| + | *** Bash on Ubuntu on Windows [#x32ebf8e] |
| + | Windows 10のUpdateで使えるようになったWSL(Windows Subsystem for いぬx)上で動くシェルのbash。 |
| + | bash自体はUbuntuバイナリだが,WindowsのカーネルのサブシステムでPosixをエミュレートしている。 |
| + | |
| + | いろいろ制限はあるが,手軽にLinuxコマンドが使用できるようになった。 |
| + | |
| + | *** BusyBox [#gdac84b1] |
| + | 標準的なUnixコマンドを単一ファイルで提供するすごいソフト。~ |
| + | シェルにはash(正確にはbusyboxだが)が使用できる。ashは軽量低機能が特徴のシェルで,まあ普段使いにはあまり向かない。~ |
| + | 組み込みLinuxでは,必ずと言っていいほど使われている。 |
| + | |
| + | *** gow [#w223415f] |
| + | Gnu on Windowsのこと。多数のGNUコマンドが使える。~ |
| + | シェルはbash。 |
| + | |
| + | *** UnxUtils [#r52312ed] |
| + | 多数のGNUコマンドが使える。インストールはzipアーカイブを解凍してパスを通すだけ。~ |
| + | 残念ながら日本語やUTF-8には未対応。 |
| + | |
| + | *** clink [#fa8a5019] |
| + | bash風なcmd.exeの代替ソフトウェア。cmderでも使用されている。~ |
| + | Luaで拡張できる。 |
| + | |
| + | *** NYAGOS [#ode4c0c9] |
| + | [[Nihongo Yet Another GOing Shell>http://www.nyaos.org/index.cgi?p=NYAGOS]]のこと。珍しい日本人開発のシェル。~ |
| + | Luaで拡張できる。 |
| + | |
| + | ** その他 [#ja5e12f1] |
| + | 環境によっては役に立つソフトのリストです。 |
| + | |
| + | *** GnuWin32 [#qc7b3aeb] |
| + | grepやsedなどのGnuコマンドだけ必要な人は,これで良い。シェルは含まれていない。 |
| + | |
| + | *** winpty [#u4a5ca18] |
| + | minttyを使うと,Windowsでは対話型コマンドがうまく動作しなくなる。~ |
| + | sqlite3,node.js,gitなどは,minttyではうまく動かなかったり,日本語が文字化けしたりする場合がある。~ |
| + | このような時に,winptyをかませてminttyを使うと,これらが解決する。 |
| + | |
| + | *** cocot [#nb2dc9d5] |
| + | ttyの前に割り込んで,文字コード変換を行うツール。~ |
| + | cocot bash,cocot ssh,cocot ping,のようにして使う。 |
| + | |
| + | *** iconv [#j9651e04] |
| + | 文字コード変換を行うツール。~ |
| + | WindowsではSJISなのだが,PosixツールではUTF-8が標準となっているものが多い。~ |
| + | こんな時に文字化けが発生することがあるが,S-JISとUTF-8を変換する時に使用する。 |
| + | |
| + | 下記のようにして使うとよい。 |
| + | function wincmd() |
| + | { |
| + | CMD=$1 |
| + | shift |
| + | $CMD $* 2>&1 | iconv -f CP932 -t UTF-8 |
| + | } |
| + | alias ipconfig='wincmd ipconfig' |
| + | |
| + | *** nkf [#yfe60b49] |
| + | iconv同様,文字コード変換を行うツール。 |
| + | |
| + | ** CygwinとMSYSとMinGWについて [#c61ad9be] |
| + | CygwinとMSYS2 + MinGWの環境がよく比較されているので、それらを簡単にまとめてみた。 |
| + | |
| + | *** Cygwin [#s210aec7] |
| + | Windows上で完全なPosix環境を目指して作成されたソフトウェアおよびコマンド群,シェル環境。 |
| + | |
| + | cygwin1.dllが,Posixシステムコールをエミュレーションしている。~ |
| + | Posixシステムコールを利用するものは,cygwin1.dllに依存していまうという問題があるが,Linux・Unixと高い互換性がある。 |
| + | |
| + | ターミナルはmintty,シェルはbash,その他に多数のコマンドが含まれている。~ |
| + | もちろん,GCCやPerlなどもインストーラーで組み込むことができる。 |
| + | |
| + | *** MSYS/MSYS2 [#kdc1f092] |
| + | MinGW/MinGW64を使用する時に開発環境としての多くの保管プログラムをパッケージしたソフトウェア。~ |
| + | |
| + | ターミナルはmintty,シェルはbash,その他に多数のコマンドが含まれている。 |
| + | |
| + | MSYS2はMSYSをフォークして改良している物。 |
| + | |
| + | MSYS2ではpacmanという汎用パッケージマネージャが使用できる。MinGW/MinGW64を簡単にインストールできる。 |
| + | |
| + | *** MinGW/MinGW64 [#z4fb8a82] |
| + | Windowsで利用できるGCC。WinAPIヘッダーやlibcなどのライブラリも含まれている。 |
| + | |
| + | MinGWは32bitバイナリしか作成はできないが,MinGW64では32bit/64bitどちらのバイナリも作成できる。 |
| + | |
| + | MinGW/MinGW64はGCCなので,Posix環境であるMSYS/MSYS2,Cygwinから使用できる。~ |
| + | Cygwinで使用した場合,cygwin1.dll非依存のWindowsネイティブアプリケーションを作成することも出来る。 |