混淆术语SSH,Shell,Terminal,命令提示符和Telnet

我通常不会使用SSH,但是如果我必须这样做,当然我也会这样做,而且我似乎已经这么做了很多年,同时仍然对这些不同的术语保持略微的混淆。基础研究,这是我的理解,有人可以validation/纠正这个?

  • Telnet …在SSH之前,不安全
  • SSH …(安全shell)系统/协议的通用名称
  • Shell … SSH的简称
  • 命令行/命令提示 … Windows版本
  • terminal … Unix版本,也被苹果使用。

还有两个问题:

  1. 什么是Linux版本通常称为,它只是称为SSH?
  2. 什么是bash?

编辑 …不是100%相信我上面的问题的结构…注意读者上面的定义在一定程度上结果是有点closures,请参阅下面的答案更好的定义

  • Telnet提供了与服务进行通信的能力,没有什么比这更简单了。 如果这个服务恰好是一个服务器上的shell,那么很好,但并不总是如此。 我经常使用telnet手动发送格式错误的HTTP请求,或者手动运行针对SMTP服务器的命令。

  • SSH 远不止是login到服务器的一种方式 。 它可以用作从本地计算机访问远程服务的代理,它可以用作运行其他协议的协议(如scp

  • Shell是命令行解释器的名称,它在计算机上运行,​​找出你想要做的事情,并试图做到这一点。 这可能是shbashcshtcsch甚至是command.com

  • 命令行是DOSshell,通常与Microsoft操作系统相关联。

  • terminal是不明确的。 它可能是shell的快捷方式的OS X名称。 它也可能是一个物理的东西,用来连接多用户Unix服务器的shell(一个stream行的是VT-100 )

什么是Linux版本通常称为,它只是称为SSH?

SSH只是一个可以访问服务器的shell的协议。 这是非常普遍的,但也有更老的和不安全的rsh或者你甚至可以通过telnetlogin到你的Linux服务器。

什么是bash?

这是一个壳

你有一个很小的学习曲线:

  • 命令行/命令提示符只是程序向用户呈现的一种方式; 通过CLI (命令行界面)。 另一种方式是通过一个GUI (graphics用户界面)。 许多程序有两种types:您可以select使用哪种程序,graphics或命令行。 这是一个品味的问题。 提供两个选项的例子是“zip”。 在Windows上,有Winzip GUI以及zip CLI。

  • shell是一种特殊的命令行程序:它是命令行的“桌面”。 它运行命令行,并使所有这一切发生。 它响应你,用户做什么(即键入)。 在Unix上, bash是最stream行的shell。 在Windows上它是… cmd.exe ? 我不确定。 不是我的专业领域。

  • terminal是GUI和CLI世界之间的桥梁:它是一个GUI程序,启动一个shell,并允许您在其graphics窗口中使用CLI应用程序。 现在,在OS X上,由苹果提供的terminal程序恰好被称为terminal ,但这是一个侥幸。 在Windows上它是… 控制台 ,我想? 还有很多其他的terminal应用程序。 所以,当你拿起你的鼠标,然后点击terminal图标,计算机会为你启动两个程序:terminal(Mac上的terminal)和shell(通常是bash)。

(最后,你问一下sshtelnet ,你应该总是使用ssh,真的,总是,如果有人告诉你不要说,别担心等等,你应该降级你的意见。

sshtelnet都是两个命令行程序,可以与另一台计算机build立networking连接,并在计算机上为您提供命令行。 所以他们可以看起来相同。

然而,Telnet实际上只是一个networkingdebugging工具。 任何人都可以窃听你的telnet连接,看到你正在做的一切。 另一方面,Ssh就像你期望的那样工作。 您连接到其他计算机,并通过networking保持私密。