傻傻分不清,这些都是什么概念,感觉很模糊,都是一样的东西。我们经常说,打开控制台,打开终端,在命令行里输入……,在cmd里面输入……,打开bash……
一、终端
要明白这两者的关系,还得从以前的多人使用的计算机开始。 大家都知道,最初的计算机由于价格昂贵,因此,一台计算机一般是由多个人同时使用的。在这种情况下一台计算机需要连接上许多套键盘和显示器来供多个人 使用。在以前专门有这种可以连上一台电脑的设备,只有显示器和键盘,还有简单的处理电路,本身不具有处理计算机信息的能力,它是负责连接到一台正常的计算机上(通常是通过串口) ,然后登陆计算机,并对该计算机进行操作。当然,那时候的计算机操作系统都是多任务多用户的操作系统。这样一台只有显示器和键盘能够通过串口连接到计算机的设备就叫做终端。
二、控制台
控制台又是什么回事呢? 学机电的人应该知道,一台机床,或者数控设备的控制箱,通常会被称为控制台,顾名思义,控制台就是一个直接控制设备的台面(一个面板,上面有很多控制按钮)。 在计算机里,把那套直接连接在电脑上的键盘和显示器就叫做控制台。请注意它和终端的区别,终端是通过串口连接上的,不是计算机本身就有的设备,而控制台是 计算机本身就有的设备,一个计算机只有一个控制台。计算机启动的时候,所有的信息都会显示到控制台上,而不会显示到终端上。也就是说,控制台是计算机的基本设备,而终端是附加设备。 当然,由于控制台也有终端一样的功能,控制台有时候也被模糊的统称为终端。 计算机操作系统中,与终端不相关的信息,比如内核消息,后台服务消息,都可以显示到控制台上,但不会显示到终端上。
三、命令行
命令行一般指命令提示符,即在操作系统中,提示进行命令输入的一种工作提示符。
命令行是对系统进行管理的命令或指令,比如输入Linux命令对Linux系统进行管理和操作。
四、DOS命令和Linux命令
DOS命令是在Microsoft DOS操作系统下运行的,而Linux命令是在Linux操作系统下运行的。
可以查阅到DOS命令和Linux命令有一些区别,但很多命令也是一样的。
五、Shell壳 vs kernel内核
shell 是一个命令行解释器,也可以理解为是一种应用软件,它接受并运行命令。
硬件 -> kernel -> shell -> 用户命令
- kernel 负责应用程序和硬件之间的交互工作,即 硬件 -> kernel -> 应用程序
- kernel 位于计算机系统的底层,不能被用户随意操作,而shell的作用定位即在于此。shell本质上也是一种应用程序,为用户提供访问内核的功能
- shell可以分为两种:命令行shell,图形化shell
六、cmd、PowerShell
cmd 是 command line 的缩写,意为 ”命令行“,是命令执行窗口。启动方式 win+R 输入 cmd 回车启动。
PowerShell(包括Windows PowerShell和PowerShell Core)是微软公司开发的任务自动化和配置管理框架。可以理解为 cmd 的升级版,或者说是其超集,类似 Linux 系统的 bash 一样,都是基于壳程序 shell。PowerShell 兼容原来的 cmd 使用的命令格式,且支持命令统一使用cmdlet命令格式(动词-名词),例如 get–help 查看帮助,get–command 查看命令等。
七、Bash、Sh、Zsh
sh全称为Bourne Shell,来自于1977年底的Unix v7版。二进制文件位置为/bin/sh
。
bash全称为Bourne-Again Shell,是在1989年对sh的重写版,替代了sh。二进制文件位置为/bin/bash
。
现在的Linux系统以及macOS系统的shell都默认使用bash。
Zsh即Z shell,是一款可用作交互式登录的shell及脚本编写的命令解释器。Zsh对Bourne shell做出了大量改进,同时加入了Bash、ksh及tcsh的某些功能。2019年起,macOS的默认Shell从Bash改为Zsh。
八、Bash的配置文件
- /etc/profile:为系统的每个用户设置环境信息,当用户第一次登录时会执行该文件里的命令。默认会直接调用/etc/bashrc。该文件的改动需要重启才能生效。
- /etc/bashrc:为每一个运行bash shell的用户执行此文件。当bash shell被打开时,会读取并执行该文件中的命令。所以修改该文件后,重新打开Shell即可生效。
- ~/.bash_profile:和/etc/profile类似,但是只对当前用户生效。
- ~/.bashrc:和/etc/bashrc类似,但是只对当前用户生效。
- ~/.bash_logout:当每次退出bash shell时,执行该文件。
- ~/.bash_history:保存了历史命令。在Shell为Bash时,每次敲击命令时,都会保存在这个文件里
原文地址:https://blog.csdn.net/qq_43320218/article/details/131621711
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_35778.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!