shell是什么?ssh 与 git bash linux或cmd与 shell区别

什么是shell ? Bash介绍及内容

1、认识Bash这个Shell

管理整个计算机硬件就是操作系统的内核,而内核是需要被保护的,不能让用户随便去修改不然系统崩溃了怎么办?所以一般用户只能通过Shell来跟内核沟通。
  shell的定义:
  什么是Shell?就是与内核沟通的界面、应用程序、KDE等等。比如你要播放音乐,你的计算机通过你在Shell输入的打开音乐的命令,Shell在告诉操作系统的内核用户希望打开音乐,内核在通过cpu调度、内存管理、磁盘输入输出等工作,将硬件调动,这时硬件声卡才会工作,硬件才是实际的工作者。
  shell的定义,既然是定义,那必然就有实现,所以sh、bash、csh、tcsh、ash、dash、zsh就是对于shell定义的各种实现,虽然可能使用细节上不同,但是本质是相同的,都属于命令解释器  bash是一种壳程序(shell),还有其他很多种壳子程序操作系统其实是一组软件,由于这组软件在控制整个硬件与管理系统的活动监测,如果这组软件能被用户随意操作,若用户使用不当,将会使整个系统崩溃。(操作系统管理的就是整个硬件功能)
  在这里插入图片描述

壳程序(Shell)的功能只是提供用户操作系统的界面,这个壳程序需要调用其他软件才能完整工作。例如很多命令man、chmod、chown、chown、vi、fdisk、mkfs等命令,这些命令都是独立的应用程序,但是我们可以通过壳程序(Shell)来操作这些应用程序,当然Shell也有自带的命令,让这些应用程序调用内核来执行所需任务。
现在明白了吧,Bash是Shell的一种。

zsh是众多shell实现的一种,全称是Z-shell,其包含了 bash,ksh,tcsh 等其他shell中许多优秀功能,也拥有诸多自身特色。从 macOS Catalina 版开始,其默认shell从bash改为zsh

Zsh初版由原作者保罗·弗斯塔德(Paul Falstad)于1990年在普林斯顿大学求学时编写 。其名称zsh源于普林斯顿大学助教的邵中(Zhong Shao,现任耶鲁大学教授)——保罗将邵中的用户名"zsh"作为此Shell的名称

shell 发展历史

(1)sh: Bourne shell —— Steven Bourne;

(2)csh:C shell —— Bill Joy,由于语法类似于C语言,因此被称为csh;

(3)bash:Bourne Again Shell —— sh的增强版本;

2、Linux中有哪些Shell

你可以自己检查一下/etc/shells这个文件,里面就是你的Linux所包含的Shell。
  在这里插入图片描述

在上图中其实最常用的就是bash、tcsh、csh、sh、nologin这些shell。

这些shell都是依据Linux发展者的不同所创造出的不同版本。就像是有红帽Linux、有ubunto、有DVL等等不同的Linux操作系统。
bash:基准于GNU的框架下发展出的Shell。
csh:语法有点类似于c语言的Shell。
tcsh:整合了csh,提供更多的功能。
sh:已经被bash所替换。
nologin:奇怪的shell,这个shell可以让用户无法登录主机。
注:系统默认的是Bash  为什么系统上合法的Shell要写入/etc/shells这个文件呢?这是因为系统某些服务运行过程中,会去检查用户能够使用的Shell,而这些shell的查询就是借由/etc/shells这个文件。
  用户什么时候可以取得shell来工作?用户默认会取得哪一个shell?当用户登录的时候,系统就会给我一个shell让我来用,而这个登录取得的Shell就记录在/etc/passwd这个文件内。
每一行为一个用户,末尾都是每一个用户默认的Shell,例如第一行root的默认shell就是Bash。
在这里插入图片描述

3、Shell的分类?

答:常用的Shell功能有两种形式外在形式:GUI和cmdline
(1)GUI(图形用户界面),特点是操作简单、易学易用,适合使用电脑来工作的人。
(2)cmdline(命令行界面),譬如linux的终端和windows的cmd,特点是不易用易学,优点是可以进行方便的shell编程,适合做开发的人。
用户界面和命令行就是这个另外开发的程序,就是“代理”作用。在Linux下,这个特定程序叫做 Shell。

3、Shell 是一种脚本语言

任何代码最终都要被“翻译”成二进制的形式才能在计算机中执行。

编译型语言:有的编程语言,如 C/C++、Pascal、Go语言、汇编等,必须在程序运行之前将所有代码都翻译成二进制形式,也就是生成可执行文件,用户拿到的是最终生成的可执行文件,看不到源码。这个过程叫做编译(Compile),这样的编程语言叫做编译型语言,完成编译过程的软件叫做编译器(Compiler)。

脚本语言:有的编程语言,如 Shell、JavaScript、Python、PHP等,需要一边执行一边翻译,不会生成任何可执行文件,用户必须拿到源码才能运行程序。程序运行后会即时翻译,翻译完一部分执行一部分,不用等到所有代码都翻译完。这个过程叫做解释,这样的编程语言叫做解释型语言或者脚本语言(Script),完成解释过程的软件叫做解释器。

编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。
脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合 Web 开发以及小工具的制作。

Shell就是一种脚本语言,我们编写完源码后不用编译,直接运行源码即可。

Shell是用C语言编写的程序,是用户使用Linux的桥梁。Shell既是一种命令语言,也是一种编程语言。外壳是指提供接口的应用程序,用户可以通过该接口访问操作系统内核的服务。Shell和Shell脚本不是一回事。通常我们说的是Shell脚本。Shell编程和java、php编程是一样的,只要有一个可以写代码的文本编辑器和一个可以解释执行的脚本解释器。
如果我们的命令或者应用程序不在命令行直接执行,而是通过一个程序文件来执行时,这个程序就被称之为shell脚本。
这些内置在一个shell脚本中的命令通常是一次性执行完成,不会不停的返回信息给用户,这种通过文件执行脚本的方式称之为非交互方式。

cmd和PowerShell的区别

现在大家经常使用的的操作系统是Windows。当我们平常在使用的时候我们经常会使用到cmd(命令行)和powershell,然后有很多的小伙伴不太了解其中的区别,今天我们就来看一下

cmd和powershell的官方定义

cmd: 命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。 在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统。输入一些命令,cmd.exe可以执行,比如输入shutdown -s就会在30秒后关机。总之,它非常有用。打开方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmd.exe 回车。它也可以执行BAT文件。

powershell: PowerShell 是一种跨平台的任务自动化和配置管理框架,由命令行管理程序和脚本语言组成。 与大多数接受并返回文本的 shell 不同,PowerShell 构建在 .NET 公共语言运行时 (CLR) 的基础之上,接受并返回 .NET 对象。 这一根本上的改变引入了全新的自动化工具和方法。
具体的关于powershell的问题,大家可以针对性的去产看微软的powershell的官方文档

简单的谈一下我理解的区别:

  • PowerShell是跨平台的,cmd是Windows专用的

  • cmd是进入dos系统的命令,输入cmd进入的是dos系统,可以进行命令提示符操作
    命令提示符窗口(cmd.exe)是Windows的“标配”组件,它可以实现用户与操作系统的直接交流,并负责用户输入的所有命令的解释和支持。

  • powershell是系统工具,是对cmd(命令提示符)的扩展,其中多了很多操作,比如管道操作。

  • PowerShell可以看作是cmd的升级版、补充版,但其背后的实现方式却有很大的不同,PowerShell基于面向对象的,更为易用。

  • PowerShell是运行在Windows操作系统上实现对系统以及应用程序进行管理自动化的命令行脚本环境

  • PowerShell需要.NET环境的支持。

  • PowerShell从Windows7开始已经内置于Windows操作系统中

  • PowerShell有面向对象的管道。

  • PowerShell能够调用.NET的很多功能。

SSH、shell、Xshell 、bash、Git、Git bash 、Git shell区别与联系

SSH是安全外壳协议 为 Secure Shell 的缩写,

SSH 为建立在应用层和传输层基础上的安全协议。

专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

Linux 一般作为服务器使用,我们通常使用 ssh 服务(指实现 SSH 协议的软件)远程登录到 Linux 服务器来管理维护系统。

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。

OpenSSH 的服务端:sshd(Linux 服务器启动该服务)

OpenSSH 的客户端:ssh(客户端启动,通过它来访问服务端)

SSH工具 有一个软件叫做SSH Secure Shell Client他也支持SSH协议

来自 https://zhidao.baidu.com/question/265224116156442165.html

Shell基本上是一个命令解释器,类似于DOS下的command.com和后来的cmd.exe。它接收用户命令(如ls等),

然后调用相应的应用程序。

来自 https://www.cnblogs.com/everest33Tong/p/6116072.html

Shell 又是一个用 C语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

shell是运行在Linux系统上的一个脚本语言,是一个用C语言编写的程序,而linux命令是对linux系统进行管理的命令;shell可以重复或批量地进行一些命令,也可以把重复执行的命令写到脚本里面执行,而linux命令需要一个一个的输入命令。

来自 http://www.runoob.com/linux/linux-shell.html

Xshell软件,Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell通过互联网到远程主机的安全连接

Xshell软件支持ssh协议,允许你远程访问

来自 https://zhidao.baidu.com/question/265224116156442165.html

bash(born again shell)是shell的一种,最常用的shell之一

来自 https://www.cnblogs.com/everest33Tong/p/6116072.html

windows上的bash环境比较麻烦 所以我们使用git bash它内置的bash功能来使用bash

git

一个快速的分布式版本控制系统(工具),支持该工具的网站有Github等。

来自 https://www.cnblogs.com/bigbigbigo/p/8344090.html

git bash是Windows下的命令行工具

Linux 和 Mac 系统,其默认是安装 SSH 的,而对于 Windows 系统,其默认是不安装 SSH 的,但是windows7 之后默认安装了 powershell。不过由于我们安装了 Git Bash,其也应该自带了 SSH. 可以通过在 Git Bash 中输入ssh命令,查看本机是否安装 SSH:

方便在windows下使用git命令的模拟终端(windows自带的cmd功能太弱),而linux、unix可以直接使用git。

git shell

它是安装了git的shell,bash是shell的一种。

来自 https://www.cnblogs.com/bigbigbigo/p/8344090.html

终端仿真

早期的计算机使用方式都是一台主机和许多字符方式的终端一起工作,现在的

PC机也可以模仿各种终端,并可以通过调制解调器连接到其它的计算机上。模仿终端的计算机软件叫做终端仿真。

来自 https://baike.baidu.com/item/终端仿真/3441931?fr=aladdin

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Git Bash 中配置 SSH 登录 Linux,需要按照以下步骤进行操作。 步骤1:生成 SSH 密钥对 1.1 打开 Git Bash 终端。 1.2 执行以下命令生成 SSH 密钥对: ```bash ssh-keygen -t rsa -b 4096 -C "[email protected]" ``` 1.3 按照提示输入密钥存储位置和密码,或直接按 Enter 使用默认值。 1.4 生成成功后,会在指定位置(默认为~/.ssh/)生成两个文件:id_rsa(私钥)和 id_rsa.pub(公钥)。 步骤2:将公钥添加到 Linux 服务器 2.1 在 Git Bash 中执行以下命令,将公钥复制到剪贴板: ```bash cat ~/.ssh/id_rsa.pub | clip ``` 2.2 登录到要连接的 Linux 服务器。 2.3 打开 ~/.ssh/authorized_keys 文件: ```bash nano ~/.ssh/authorized_keys ``` 2.4 在文件末尾粘贴已复制的公钥。 2.5 保存并退出文件。 步骤3:配置 Git Bash 使用 SSH 3.1 打开 Git Bash 终端。 3.2 执行以下命令创建或编辑 SSH 配置文件: ```bash nano ~/.ssh/config ``` 3.3 在文件中添加以下内容: ``` Host your_server_alias HostName your_server_ip_or_domain User your_username IdentityFile ~/.ssh/id_rsa ``` 替换上述值为你的服务器别名、服务器 IP 或域名、用户名和密钥文件路径。 3.4 保存并退出文件。 步骤4:使用 SSH 登录 Linux 服务器 4.1 在 Git Bash 终端中执行以下命令以使用 SSH 登录服务器: ```bash ssh your_server_alias ``` 根据需要输入密钥密码,如果没有设置密码则直接登录成功。 通过上述步骤,你就可以在 Git Bash 中配置 SSH 登录 Linux 服务器了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值