24
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windowsでのターミナルとシェルの環境 (おまけのパッケージ管理)

Last updated at Posted at 2021-01-10

こんにちは。

私は仕事ではMacを使っているのですが、私用のPCにはWindowsを使っています。
Macはプログラミング的にはUnixライクな環境で、もろもろの設定などは慣れているのですが、Windowsで分析や開発をすることはまちまちで、しばらくすると設定や環境が古いことがよくあります。

備忘もかねて、Windowsの分析・開発環境を整理しておきます。

ざっくり結論

  • ターミナルとしてのcmdは止めよう
  • ターミナルは最低限cmder, できればWindows Terminal
  • シェルはPowerShellに慣れよう
  • Git for Windowsも必要

ターミナル (外側) とシェル (内側) の違い

話を分かりやすくするために、あらためてターミナルとシェルの違いを簡単に整理しておきます。

シェルはファイルを操作したり、実行したり、各種通信したりするためのコマンドの集まり、およびそのシステムです。
一方、ターミナルはコマンド操作するための、見た目上のインターフェースです。
見た目が同じだからと言って、動いているシェル (操作系) が同じとは限りません。
逆に言うと、自分が使いやすいように、ターミナルもシェルも設定しましょう。
cmd (コマンドプロンプト) やpowersehllのようにターミナルがシェルと一体になっているものもあります。

よくあるツールは以下のような感じです。

項目 Windows Mac Linux
ターミナル cmd, powershell, mintty, cmder, windows terminal terminal, iterm2 GNOME Terminal, xterm
シェル cmd, powershell, msys2, mingw, git bash, wsl bash, zsh bash, zsh

MacやLinuxでもいろいろツールはあるのですが、輪をかけてWindowsは多くの人がそれぞれ使いやすいツールを作った結果、いろいろなものがあります。

ちなみに、Windows Terminalのドキュメントに、ターミナルとコンソールとシェルの違いを説明した記事へのリンクがありました笑
https://www.hanselman.com/blog/whats-the-difference-between-a-console-a-terminal-and-a-shell

ターミナル

Windowsで分析している人を見ていると、ターミナルとしてコマンドプロンプト (cmd.exe) をそのまま使っている人も多いです。
フォントや色が見にくく、画面共有とかになると正直困ります。
基本的に他のものを使ってほしいです。

Windowsのターミナルについては色々と記事があるので、個別の詳細はそちらを参照してもらえればと思います。
こちらでは、独断と偏見でおすすめを書きます。

Windows Terminal

https://docs.microsoft.com/ja-jp/windows/terminal/
2020年5月に正式リリースされました。
私も使い始めたばかりですが、タブ機能もありますしシェルも選べるので、Windowsではcmdではなく、こちらをデフォルトと考えるほうがいいと思います。

Cmder

https://cmder.net/
最近は基本的にはずっとこれを使っていました。
タブ機能、シェルの選択、その他にもこまごま設定できて便利でした。
シェルにはcmdを使っていました。
powershellだと起動時のコマンドでエラーが出ていたので、うまく設定できていなかったのだと思います。
見た目は、cmdよりずっと綺麗で見やすいですが、最近のターミナル (HyperやTerminusなど) と比べると少し劣ります。
いい意味で枯れている気がします。

Hyper

https://hyper.is/
cmderと比べるて最近のターミナルで、ミニマルな見た目ですが、見やすくカッコいいです。
設定ファイルがJavaScriptファイルなので、*.jsファイルを既定で開くアプリをVS Codeにしておくと便利です。

Terminus

https://eugeny.github.io/terminus/
こちらもタブ機能やシェルの選択など基本的なことができます。
アルファ版ですが、見やすいですし、軽く触ってみた感じ使いやすいです。

シェル

ターミナルを起動したときに、実際にやりとりされるコマンドが組み込まれたシステムです。
どれもクセが強いですが、慣れましょう。

PowerShell

https://docs.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-7.1
Windowsの代表的なシェルです。
cmdと比べて、管理権限とか含め、様々なことができるのでこちらに慣れていると便利だと思います。
とは言いつつも、私はコマンドのややこしさから何度も挫折しました笑。
バージョン6以降はPowerShell Coreというオープンソースになり、MacやLinuxでも使えるため、万が一にも使うことがあるかもしれません。
現時点の最新は7.1です。

Windows Subsystem for Linux

https://docs.microsoft.com/ja-jp/windows/wsl/compare-versions
ざっくり説明すると仮想マシンとしてLinuxを起動して、それにターミナルからアクセスする方法です。
WSL1とWSL2で仕組みが違いますので、ドキュメントを見る際は注意してください。
私は使ったことありませんが、見てる感じやり方としてはシンプルなので、いろいろ考えるのが面倒な場合はいいのではないでしょうか。
ただし、あくまで仮想マシン的な立ち位置なので、ファイルのやりとりなどは注意する必要があります。

cmd

https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/cmd
古き良きコマンドプロンプトです。
必要最低限しかありませんが、cdとmkdirくらいしか使わないのであれば、意外と困ることはありません。
とはいえ、コマンドからインストールしたり諸々実行したりするには不都合なところがあります。

MSYS2 + MinGW

https://www.msys2.org/
2016年ごろに使っていました。
WindowsでLinux系の操作ができるので便利でした。
WSLがある今では、あまり候補ではないかと思います。

その他

コマンドまわりでいくつか書いておきます。

Git

https://gitforwindows.org/
Gitがないと、分析も開発もできないレベルなので、インストールしましょう。
こちらはこちらで、Git BashというBashコマンドをWindowsに提供してくれますね。

SSH

https://japan.zdnet.com/article/35119381/
https://mimimopu.com/powershell-ssh-client/
昔のWindowsはsshが存在せず、PuttyやGit for Windows経由とかで、コマンドの準備や鍵の作成をしていました。
しかし2018年のWindowsのアップデートで、OpenSSHがネイティブで使えるようになりました。
当時は他のツールからインストールしたsshと競合することがありましたね。
現状であれば、WindowsネイティブのSSHを使えばいいと思います。

ちなみに、SSH鍵設定やGitHubへの登録をしたのに、プルやフェッチでエラーが出たことがあります。
Configファイルのホスト名をgithub.comにすることで解決しました。
そんなことで違いが...
https://stackoverflow.com/questions/64374764/git-clone-with-ssh-shows-error-permission-denied-publickey

パッケージ管理

WindowsではGUIベースでアプリをインストールすることが多いです。
ブラウザを立ち上げて、欲しいアプリを検索して、インストーラをダウンロードして、インストール。
Linuxではそんなこと考えられないし (もちろんする場合もあります)、Windowsでもアプリ (パッケージ) の管理をコマンドベースでやれるようなツールがあります。

代表的なのは以下です。

chocolatey

https://chocolatey.org/
以前使っていましたが、いかんせんリポジトリ上のアプリのバージョンが古かったり、欲しいのがなかったりして、使うのをやめました。
リポジトリの管理は大変ですよね。
最近は改善しているかもしれません。

scoop

https://scoop.sh/
使ったことはありませんが、Windowsの環境構築系の記事では結構見かけます。
よさげですね。

homebrew for Windows

https://docs.brew.sh/Installation
Macユーザーのほぼ全員がお世話になっているであろう代表的なパッケージ管理ツールです。
逆にこれ以外は知りません。
WindowsだとWSL上で動作するようです。


ややこしくならないように、パッケージ管理ツールはどれか1つを使うようにしましょう。

ちなみに私はどれも使っていません。

終わり

以上です。
それぞれ好みや慣れとかいろいろあると思いますが、参考になれば幸いです。

24
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?