2
0

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 1 year has passed since last update.

bash?cmd?こいつら何が違うの???

Last updated at Posted at 2023-04-22

背景

最近新卒研修のメンターをしているのだが、そこでTera Termという単語を久々に聞いた。そういえば自分も研修の時にEC2にSSH接続するためにインストールしたことを思い出した。
見た目はコマンドプロンプトやPower Shellなどと変わらないが、わざわざインストールする必要があったのか?そもそもコマンドプロンプトとPower Shellって1つじゃダメなの?git bashもインストールしたけど何?1つに統一してくれ!!と疑問が湧いてきたにで、ちょっとまとめようと思う。

シェルとターミナル

そもそも、このあたりの用語をきちんと理解しないまま生きてきたので、一度整理しておきたい。
教えて!GPT先生

image.png

簡単に言えば、ターミナルはユーザーとコンピュータ間のコミュニケーションを可能にするインターフェースであり、シェルはそのコミュニケーションを通じてオペレーティングシステムを操作するためのプログラムです。ユーザーはターミナルを通してシェルにコマンドを入力し、シェルはそのコマンドを解釈してオペレーティングシステムに伝え、実行します。

とあるように、ターミナルはインターフェース、シェルはプログラム(を実行しているところ)と覚えておけばよさそう。
でも、git bashとか、コマンドプロンプトとかって、開いたときに違う画面がでますよね?
あれ自体はターミナルで、シェルではないってことですかね?
あのターミナルに対してコマンドを打ち込み、その実行されるプログラミング自体をシェルって言ってるんですかね?
気になるので追加質問

image.png
とのこと。
シェルがターミナルの部分も持っている、といういうことですかね。
何ともわかりづらいですね。

OS

ところでOSって何なんですかね。オペレーティングシステムの略ってぐらいはわかるけど...
PCの本体的なイメージがありますが、一言でいうと何なのでしょうか。
image.png
一言でいうと「コンピュータの基本的な機能とリソースを管理するソフトウェア」とのこと。
PCの中身全体を管理しているアプリ、と思えばいいのかな?

あと、シェルとOSは一対一で対応しているものだと思っていましたが、どうやら違うみたいです。
image.png

Bash, コマンドプロンプト, PowerShellはShellである。では、Tera Termは?

Tera Termはこれらの中で少しが違う。
これは「端末エミュレータ」に属します。違いは以下です。
image.png
端末をまねしたやつって感じですね。
というかここで気づいたのが「端末=ターミナル」だということ。
インターフェースってなんやねん、と思っていましたが「ユーザからの入力を受け付ける(あと出力も表示する)ところ」って考えるとめちゃくちゃしっくりきますね。
いや、言葉の意味考えたらそらそうやろ、って感じなんですけどね。
とにかく腑に落ちました。

コマンドラインアプリケーション

gitとか、npmとか、どのシェルのターミナルを使っても実行できるCLIは、コマンドラインアプリケーションと呼ぶみたいです。
なぜどのシェルでも使えるかというと、命令を渡す相手がシェルによらずに、最初にしているgit, npmなどで指定されているからだと思われます。
シェル固有のコマンドをつかってコマンドを打っているときは、「os」という接頭辞を省いていると考えればすんなりいきました。osによってシェルが命令を渡す相手が変わるので、命令が伝わらないのではないか、という気がしました。

具体的には、(git pushみたいな感じで)windows dirは存在するけどwindows lsは存在しない、という条件でwindows lsって打っても当然命令は通らない。逆にmac lsは存在するけど、mac dirは存在しない状態で、mac lsでは通るけど、mac dirは通らない、みたいな。

まとめ
・ターミナルは、ユーザーとPCのインターフェース
・シェルはコマンドとOSの橋渡し役。ただ、シェルが独自のターミナルを持つことが多い
・Tera Termはターミナルエミュレータ
・CLI以外のコマンドは先頭にmacかgoogleみたいな(うまくよくわかっていないが)をつけずに売っているんだろうな、と感じでした。

3週目にして早くもネタが切れそうでしたが、頑張って記事にしました。
やはり、前提知識が少ない、把握しづらいプロジェクトの大変さを思い知りました。
間違い、指摘箇所だらけだと思います。どなた様でも、この記事の内容などについてアドバイスあればぜひぜひ教えてください。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?