上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/Windows/Windowsで使えるターミナルとシェル
のソース
資料室
PC
/
Windows
/
Windowsで使えるターミナルとシェル
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
PC/Windows/Windowsで使えるターミナルとシェル
へ行く。
* 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
Counter: 228, today: 1, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ