現: 2024-05-01 (水) 11:16:58 yuji ソース
Line 1: Line 1:
 +* Windowsで使えるターミナルとシェル [#j13aefde]
 +Windowsでも意外と選択肢は多い。ターミナルとシェルの組み合わせで,自分好みのコンソール環境を構築出来る。
 +** ターミナルとは [#m8888400]
 +ターミナルは,ターミナルエミュレータ,端末エミュレータ,コンソール,などとも呼ばれている。~
 +''Windowsのコマンドプロンプト''もこの部類に入るツール。
 +
 +昔,コンピュータを人が操作するために入出力機器に[[テレタイプ>https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%AC%E3%82%BF%E3%82%A4%E3%83%97%E7%AB%AF%E6%9C%AB]]を使っていたが,その機能をCRTとキーボードを使ってビデオターミナルとしてDEC社が発売したのが[[VT100>https://ja.wikipedia.org/wiki/VT100]]だった。~
 +ターミナルエミュレータは,このVT100のような市販されていたビデオターミナルを,ソフトウェアでエミュレートして使用できるようにしたもの。~
 +
 +テキストのみの画面とキーボードでの操作を行っている機能をターミナルと言っている。~
 +
 +ターミナルはコンピュータにおける入出力機器として動作する。実際にコンピュータにいろいろな処理を行わせるためには[[シェル>https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%AB]]が必要で,コンピュータがブートされるとシェルが起動され,ターミナルを通してシェルを使用することでコンピュータを操作している。~
 +
 +代表的なターミナル(ターミナルエミュレータ)には,以下のようなものがある。
 +- [[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)>https://en.wikipedia.org/wiki/ITerm2]]~
 +- [[Win32コンソールconhost.exe(Windows)>https://ja.wikipedia.org/wiki/Win32%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB]]~
 +- [[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(Windows)>https://ja.wikipedia.org/wiki/Windows_Terminal]]~
 +
 +** シェルとは [#x1a28f25]
 +シェル(Shell)は,OSとユーザーとのインターフェースを担うソフトウェアのこと。~
 +
 +特にコマンドラインタイプのようなキャラクタユーザーインターフェース(CUI)を持つものをシェルと言っている。~
 +デスクトップ環境のようなグラフィックユーザーインターフェース(GUI)を持つものも最近ではグラフィカル・シェルとか呼んでいるようだ。~
 +
 +コンピュータがブートされ,いろいろな環境の初期化等を行った後,シェルが起動される。~
 +このシェルを使って,他のアプリケーションを起動させたり,終了させたり,入出力をリダイレクトさせたり,バッチファイルを実行したりするコンピュータへの操作を行うことが出来る。~
 +
 +代表的なシェルには,以下のようなものがある。
 +- [[bash(Unix)>https://ja.wikipedia.org/wiki/Bash]]~
 +- [[csh(Unix)>https://ja.wikipedia.org/wiki/C_Shell]]~
 +- [[zsh(Unix)>https://ja.wikipedia.org/wiki/Z_Shell]]~
 +- [[cmd.exe(Windows)>https://ja.wikipedia.org/wiki/Cmd.exe]]~
 +- [[PowerShell(Windows)>https://ja.wikipedia.org/wiki/PowerShell]]~
 +- [[Windows Explorer(Windows)>https://ja.wikipedia.org/wiki/Windows_Explorer]]~
 +- [[Finder(Mac OS)>https://ja.wikipedia.org/wiki/Finder]]~
 +
 +** Windowsで使えるターミナル環境 [#f644401f]
 +
 +*** mintty [#tb46486a]
 +[[mintty>https://mintty.github.io/]]は,MSYS/MSYS2,Cygwin,PuTTYなんかで使われているターミナルエミュレータ。~
 +以下のような特徴がある。~
 +- xtermと互換性がある。~
 +- 256色(8bit),TrueColor(16bit)をサポート。~
 +- UTF-8をサポート。~
 +- Windows IMEをサポートしている。多バイト文字を使える。~
 +- 画像が表示できる。~
 +- フルスクリーンになる。~
 +- コピペがわりと簡単。~
 +- テキストやファイル,フォルダのドラッグ&ドロップに対応。~
 +- Ctrl+clickでURLを開ける。~
 +- 背景を透過できる。~
 +- レジストリを使わない。~
 +
 +動作が軽いのが良い。まあ,とりあえずこれを使っておけばいいのかもしれない。
 +
 +タブ機能が必要な場合は,tmuxを導入すれば可能になる。~
 +
 +*** ConEmu [#df337bd4]
 +[[ConEmu(Console emulator)>./ConEmu]]は,Windows用のオープンソースで無料で使用できるターミナルエミュレータ。~
 +
 +複数のコンソールをタブで切り替えて操作したり,ウィンドウを分割して表示したり出来る。~
 +
 +*** cmder [#g6af12e7]
 +[[cmder>https://cmder.app/]]は,ConEmu(ターミナルエミュレータ)とclink(シェル)とGit for Windows(各種コマンド)をパッケージ化したターミナルエミュレータ環境。~
 +最低限の機能のmini版と,各種コマンドを含んだfull版がある。~
 +- タブが使える。~
 +- タブの入力をロックできる。~
 +- 履歴を検索できる。~
 +- aliasを設定できる。~
 +- Monokaiカラー対応。~
 +- PowerShellモードがある。~
 +
 +*** ConsoleZ [#u38c75b9]
 +[[ConsoleZ>https://github.com/cbucher/console]]は,Console2の後継のアプリケーション。~
 +ConEmuは設定がいっぱいあってよくわからないと思った場合,ConsoleZがいいかもしれない。見た目も操作も手軽。
 +
 +*** ckw-mod [#k1f73d76]
 +[[ckw-mod>http://ckw-mod.github.io/]]は,ckwの後継アプリケーションのコマンドプロンプト代替えツール。~
 +日本人が開発しているので日本語の扱いはバッチリなんだけど,Unicodeには未対応。~
 +背景画像設定,透過,シェル指定と,やりたいことは一通り出来る。
 +
 +*** Hyper [#r08dd6c4]
 +[[Hyper>https://hyper.is/]]は,Electronで開発されているターミナルエミュレータ。HTML5とJavaScriptで拡張できる。日本語には未対応。x86版も無い。
 +
 +*** Qonsole [#w6092aee]
 +[[Qconsole>https://github.com/epimorphics/qonsole]]は,Quake(ゲームじゃん)ライクなターミナルエミュレータ。~
 +ショートカットキーで,スライド表示される。シェルの指定も可能。
 +
 +*** MobaXterm [#g9207551]
 +[[MobaXterm>https://mobaxterm.mobatek.net/]]は,Windowsでリモートネットワークに関するツール(SSH,X11,RDP,VNC,FTP,MOSHなど)や各種Unixコマンド(bash,ls,cat,sed,grep,awk,rsyncなど)を含んでいる高機能なターミナル環境。
 +
 +無料で使用できるPersonal Edition(使用できる機能に制限がある)とProfessional Edition(制限の無いバージョン。49Euro)がある。~
 +Personal Editionでも用途的には十分でもある。
 +
 +MobaXtermには,以下のような多くの機能がある。
 +- PuTTY,KiTTY,Poderosa,TeraTermのようなSSHクライアント兼コンソールエミュレータ~
 +-- コンソールエミュレータはタブ型で,縦・横・縦横分割ができる~
 +-- Xサーバーが入っているのでリモートでXアプリを起動してもWindowsアプリのように動く~
 +-- PuTTYの設定を読み取ってくれるので,移行時に接続先の設定が要らない~
 +-- SSH以外にもrsh/mosh/FTP/SFTP/シリアルポートなどのプロトコルをサポート~
 +-- 二段SSHや二段sftpにも対応している~
 +-- 全ウィンドウ同時コマンド入力とか,驚きな便利機能がある~
 +-- cmd.exeをラップしたコンソールエミュレータとして動作できる~
 +-- msys/msys2とかがインストールされてなくてもbashを起動しviとかの色々なツールが使える~
 +-- マクロ機能が付いていて簡単な自動化もできる~
 +-- コンソールのスクリーンショットを取る機能が付いている~
 +-- SSHポートフォワーディングの時にGUIで分かりやすくホストの関係を表示してくれて-Lとか-Rとか悩まない~
 +-- ウィンドウ(タブ)のサイズを維持したままCTRL+マウスホイールでフォントを拡大縮小できる~
 +デモする時とかにとても便利。~
 +-- 日本語のインライン入力ができない~
 +- WinSCPのようなGUIのSFTPクライアントが付いてる~
 +- X11サーバー(Xdmcpでのログインもできる)が入っている~
 +- RDPやVNCによるリモートデスクトップクライアントも使える~
 +- なんかいろいろなサーバーが付属している~
 +- 高機能な電卓機能が付いてる~
 +分数の計算とかもできちゃう。方程式も解ける。
 +- ASCII表が見れて,ポンド記号ってHTMLの参照でなんだっけ?とか,Latin-1でウムラウト付きの文字のコードとか思い出せなくても調べられる。
 +- diffツールが付いてる~
 +- 画像ビューワーも付いてる~
 +- パケットキャプチャとかポートスキャナとかが付いてる~
 +- MobAptとかいうGUIのパッケージ管理ツールが付属していて,各種ツールは簡単に追加できる~
 +- ゲームがいっぱい入っている
 +
 +こんなアホみたいに(褒めている)機能が付いているんで大量のダウンロードが必要でインストールも大変って思うのだが,これがびっくりインストーラーのファイルサイズが小さい。~
 +インストール作業が不要なポータブル版もあるんで,試しで使ってみるのも便利。
 +
 +*** CygTerm [#h855b50d]
 +[[Cygwin>https://www.cygwin.com/]]環境に入っているWindows用のターミナルエミュレータ。~
 +TeraTerm,PuTTY,Poderosaなどのログインシェルを指定できないSSHなターミナルを,Cygwinの環境へ接続するツール。~
 +TeraTermなどに同梱されていることが多い。TeraTermでは,メニューからFile => Cygwin connection [ALT + G]で使用できる。
 +
 +*** Windows Terminal [#e84a4ad8]
 +[[Windows Terminal>./Windows Terminal]]はMicrosoftが開発している無料で使用できるWindows10/11用のターミナルエミュレータ。~
 +
 +Windows10がリリースされてかなり経っているが,ConPTY APIや[[Windows Terminal>./Windows Terminal]]と,Windowsのターミナルエミュレータ環境も良くなってきている。~
 +
 +** SSH/シリアル通信クライアント [#hb4f814b]
 +Windowsで動作する,SSHでリモートコンピュータに接続する時に使用するアプリケーション。~
 +- [[RLogin>https://kmiya-culti.github.io/RLogin/]]~
 +- [[Poderosa>https://poderosa.sourceforge.net/]]~
 +- [[TeraTerm>https://teratermproject.github.io/]]~
 +- [[PuTTY>https://www.putty.org/]]([[KiTTY>https://github.com/cyd01/KiTTY]])~
 +
 +** Windowsで使えるシェル環境 [#y269de07]
 +*** MSYS2 [#oe884ee6]
 +[[MSYS2>/開発/toolchain/MinGW]]は,WindowsにPosix環境を使えるようにするためのツール群。~
 +MSYS2でのターミナルエミュレータはminttyが標準で使われていて,シェルは''bash''になっている。~
 +MSYS2を導入すれば,多くのPosixコマンドがWindowsで使用できるようになる。
 +
 +パッケージマネージャとしてpacmanを採用しているので,足りないコマンドがあればpacman -S [name]ですぐにインストールできる。
 +
 +*** Git for Windows [#t793899e]
 +[[Git for Windows>https://gitforwindows.org/]]は,Windowsで使用できるGitクライアントなのだが,MSYS2をベースに使っているのである程度のPosixコマンドが使用できる。シェルの''bash''も含まれている。~
 +
 +Windowsでgitを使う場合は,通常これをインストールしているはず。
 +
 +*** Cygwin [#o63b3205]
 +[[Cygwin>https://www.cygwin.com/]]は,WindowsでPosix環境を使用できるようにする環境。Windowsに無いPosix APIをcygwin1.dllでエミュレートして実行できる環境を構築できる。~
 +
 +シェルは,bashが使われている。
 +
 +*** PowerShell [#see6eadf]
 +[[PowerShell>https://learn.microsoft.com/ja-jp/powershell/]]はMicrosoftが開発したWindows7からデフォルトで入っているシェルで,コマンドプロンプト(cmd.exe)の後継というようなツール。~
 +
 +.NETライブラリも使えたり出来て,かなりいろいろなことが出来る。しかし,コマンド表記が独特でなかなか馴染めない。
 +
 +Windowsでしか使えないことが問題だったが,現在ではオープンソース化されLinuxやMac OSXでも動作するようだ。
 +
 +*** Bash on Ubuntu on Windows [#x32ebf8e]
 +Windows 10のUpdateで使えるようになったWSL(Windows Subsystem for Linux)上で動くシェルの''bash''。
 +bash自体はUbuntuバイナリだが,WindowsのカーネルのサブシステムでPosixをエミュレートしている。
 +
 +いろいろ制限はあるが,手軽にLinuxコマンドが使用できるようになった。
 +
 +*** BusyBox for Windows [#gdac84b1]
 +BusyBoxは,標準的なUnixコマンドを単一ファイルで提供しているすごいソフト。~
 +シェルにはash(正確にはbusyboxだが)が使用できる。ashは軽量低機能が特徴のシェルで,まあ普段使いにはあまり向かない。~
 +組み込みLinuxでは,必ずと言っていいほど使われている。~
 +
 +[[BusyBox for Windows>http://frippery.org/busybox/]]は,Windowsで動作するようにしたBusyBox。~
 +MSYS2やWSLよりはるかに手軽に導入できる。~
 +
 +*** gow [#w223415f]
 +[[Gnu on Windows>https://github.com/bmatzelle/gow]]のこと。多数のGNUコマンドが使える。シェルは''bash''。
 +
 +*** UnxUtils [#r52312ed]
 +[[UnxUtils>https://sourceforge.net/projects/unxutils/files/latest/download]]は多数のGNUコマンドが使える。インストールはzipアーカイブを解凍してパスを通すだけ。~
 +
 +環境変数LESSCHARSETをdosに設定すると,SJISで日本語も表示できる。~
 +
 +*** clink [#fa8a5019]
 +[[clink>https://mridgers.github.io/clink/]]は,Windowsのcmd.exeを拡張するツール。cmd.exeをbash風に出来る。~
 +cmderでも使用されている。Luaで拡張できるようにもなっている。~
 +
 +*** NYAGOS [#ode4c0c9]
 +[[NYAGOS(Nihongo Yet Another GOing Shell)>https://github.com/nyaosorg/nyagos]]は,日本人開発者がGo言語でスクラッチから作られたシェル。~
 +Windowsのcmd.exe互換で使用できるように開発されている。Luaで拡張できる。~
 +
 +** その他 [#ja5e12f1]
 +環境によっては役に立つソフト。~
 +
 +*** GnuWin32 [#qc7b3aeb]
 +grepやsedなどのGnuコマンドだけ必要な人は,[[GnuWin32>https://gnuwin32.sourceforge.net/]]でも良いかも。シェルは含まれていない。~
 +
 +*** winpty [#u4a5ca18]
 +Windowsでminttyを使うと対話型コマンドがうまく動作しなくなる。~
 +sqlite3,node.js,gitなどは,minttyではうまく動かなかったり,日本語が文字化けしたりする場合がある。~
 +
 +このような時に,[[winpty>https://github.com/rprichard/winpty]]をかませてminttyを使うと,これらが解決する。~
 +
 +*** cocot [#nb2dc9d5]
 +[[cocot>https://github.com/vmi/cocot]]は,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'
 +
 +[[Windows版iconvはこちら>https://sourceforge.net/projects/gnuwin32/files/libiconv/1.9.2-1/libiconv-1.9.2-1.exe/download?use_mirror=jaist&download=]]からダウンロードできる。~
 +
 +*** nkf [#yfe60b49]
 +[[nkf>https://ja.osdn.net/projects/nkf/]]は,iconv同様に文字コード変換を行うツール。~
 +Windows版は[[こちらのサイト>https://www.vector.co.jp/soft/win95/util/se295331.html]]からでもダウンロードできる。~
 +
 +** 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]
 +多くのPosixコマンドをWindowsで利用できるようにしたパッケージ。~
 +CygwinのようにPosixシステムコールのエミュレーションは行わず,Windowsネイティブで動作するようにしている。
 +
 +ターミナルエミュレータは''mintty'',シェルは''bash'',その他に多数のコマンドが含まれている。
 +
 +MSYS2はMSYSをフォークして改良している物。
 +
 +MSYS2ではpacmanという汎用パッケージマネージャが使用できる。pacmanを使って,MinGW/MinGW64を簡単にインストールできる。
 +
 +*** MinGW/MinGW64 [#z4fb8a82]
 +Windowsで利用できるGCC。WinAPIヘッダーやlibcなどのライブラリも含まれている。
 +
 +MinGWは32bitバイナリしか作成はできないが,MinGW64では32bit/64bitどちらのバイナリも作成できる。
 +
 +MinGW/MinGW64はGCCなので,MSYS/MSYS2やCygwin環境から使用できる。~
 +Cygwinで使用した場合,cygwin1.dll非依存のWindowsネイティブアプリケーションを作成することも出来る。
  

  • PC/Windows/Windowsで使えるターミナルとシェル のバックアップ差分(No. All)
    • 現: 2024-05-01 (水) 11:16:58 yuji

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 228, today: 1, yesterday: 0