指令与图形化界面
导读
大家好,很高兴又和大家见面啦!!!
经过上一篇章的内容,我们简单了解了一下操作系统的发展史,同时还认识了几位顶级大佬。最后我们一起感受了一下Linux的操作环境,知道了在Linux环境下需要通过在命令行中输入指令的方式来进行。那这种通过命令行输入指令的方式与我们在Windows系统下通过鼠标进行的单击和双击又有什么区别呢?在今天的内容中,我们将来探讨一下命令行与图形化界面。
刚刚开始接触Linux的朋友可能会和我一样,在第一次听到命令行和图形化界面时会感觉有点蒙圈?我们之前在VS中学习C语言学习通过C语言来实现数据结构的时候只听过敲代码呀?怎么现在又多了个命令行和图形化界面呢?这些又是什么东西呢?下面我们一起来认识一下这两个新朋友;
一、命令行与图形化界面
命令行顾名思义就是输入命令的地方,这里的命令指的就是我们在Linux需要学习并使用的对应的指令,如下所示:
当我们打开Centos 7后我们会在终端界面中看到一个黑色闪烁的光标,这里的光标所在的空白区域就是我们输入指令的地方,这一块空白区域就是命令行;
而图形化界面就是命令行的升级版,如下所示:
所谓的图形化界面其实就是我们在Windows系统中使用最多的各种各样的小图标,我们可以通过鼠标的单击、双击来对这些小图标进行对应的操作。在centos 7中也是有自己的图形化界面,如下所示:
简单的来说图形化界面就是一个个可以更加直观看到的图像。在命令行中我们是通过键盘输入各种指令来完成相关的操作,但是在图形化界面中我们是通过鼠标来完成相关的操作。那现在问题来了,命令行和图形化界面谁先出现的呢?
二、命令行与图形化界面的发展历程
命令行与图形化界面诞生的先后顺序其实对应的就是键盘和鼠标诞生的先后顺序。在介绍相关内容前,我先来考考各位,大家觉得键盘和鼠标是谁先被发明出来的呢?
想必有朋友心中已经有答案了。没错,键盘是优先于鼠标被发明出来的,下面我们就来简单了解一下它们的发展历史;
键盘的原型是肖尔斯和格利登型打字机(Sholes and Glidden Type-Writer)。
1.2.1 打字机的起源
对于打字机的起源,早在1575年就有了自动打字机的相关记载了,此后的1714年、1802年、1808年、1823年、1829年都有发明打字机的记载。我们现在使用的键盘原型肖尔斯和格利登型打字机却是在1868年诞生。^1
^1: 世界上第一台打字机
1.2.2 肖尔斯和格利登型打字机
1868年,美国机械师克里斯托弗·莱瑟姆·肖尔斯与他的助手卡洛斯·格利登发明了一种看起来很像缝纫机的打字机。但肖尔斯却很嫌弃自己的这项发明,觉得它不但外形丑陋而且实用性差,于是以12000美元的价格将这台打字机的专利卖给了当时的缝纫机制造商雷明顿公司。
虽然这台打字机不受“亲生父亲”待见,但“养父”雷明顿公司却对其极为重视,很快就将其投入了商业生产。1873年3月1日,第一台打字机被生产出来了,它被称为“Sholes and Glidden Type-Writer”,即肖尔斯和格利登型打字机,这也是打字机(Type-Writer)一词第一次出现在历史上。
这台打字机是第一个采用QWERTY布局的键盘的打字机,这种布局的键盘就是我们今天所使用的的电脑键盘的布局方式。
1.2.3 鼠标的发明
鼠标是1964年由Douglas Engelbart发明的,当时DouglasEngelbart在斯坦福研究所(SRI)工作,该研究所是斯坦福大学赞助的一个机构,Douglas Engelbart很早就在考虑如何使电脑的操作更加简便,用什么手段来取代由键盘输入的繁琐指令。
60年代初,他在参加一个会议时随手掏出了随身携带的笔记本(可不是笔记本电脑哦),画出了一种在底部使用两个互相垂直的轮子来跟踪动作的装置草图,这就是鼠标的雏型。到了1964年,Douglas Engelbart再次对这种装置的构思进行完善,动手制作出了第一个成品。因此Douglas Engelbart也被称为“鼠标之父”。
当时还没有“鼠标”的名称,这个新型装置是一个小木头盒子,里面有两个滚轮,但只有一个按钮。它的工作原理是由滚轮带动轴旋转,并使变阻器改变阻值,阻值的变化就产生了位移讯号,经电脑处理后屏幕上指示位置的光标就可以移动了。
由于该装置像老鼠一样拖着一条长长的连线(像老鼠的尾巴),因此,Douglas Engelbart和他的同事在实验室里把它戏称为“Mouse”,他当时也曾想到将来鼠标有可能会被广泛应用,所以在申请专利时起名叫“显示系统X-Y位置指示器”,只是人们觉得“Mouse”这个名字更加让人感到亲切,于是就有了“鼠标”的称呼。^2
^2: 鼠标的发明
鼠标被发明之后,首先于1973年被Xerox公司应用到经过改进的Alto电脑系统中,但是遗憾的是,当时这些系统都是实验用的,完全被用于研究工作,并没有向大众推广,所以鼠标一直都默默无闻。
1979年,苹果公司创始人史蒂夫·乔布斯被邀请观看Alto以及执行在该系统上的软件。乔布斯被自己所看到的电脑技术所震撼,他意识到这些技术代表了电脑未来的发展潮流。这些技术就包括使用鼠标作为指定输入设备和操作系统使用的GUI(Graphics User Interface,图形用户界面)。Apple公司立即将这些功能加入自己的系统中,准备开发新型的家用电脑,并且高薪挖到了十几位Xerox公司的技术人员。1981年,Xerox公司推出了使用鼠标,并应用GUI操作系统的Star 8010电脑,这是大众首次了解鼠标,可惜由于这种电脑价格过于昂贵,销量很小。尽管如此,鼠标已经引起了不少人的注意,并开始为人们所掌握。
1.2.4 图形化界面(GUI)的发展
70年代,美国施乐公司的研究人员开发出了第一个图形用户界面,这样的设计使得计算机实现了字符界面向图形界面的转变,开启了新的纪元。从此以后,Windows、MAC OS等操作系统陆续出现,界面设计不断完善,操作系统的不断更新变化也将图形用户界面设计带进新的时代。图形用户界面是采用图形方式显示的一种信息交换的媒介。用户通过窗口、按键、菜单等图形对象向计算机等电子设备发出指令,其接收指令后,通过图形反馈操作的结果。科学技术的发展,使得各类通讯、电子产品应运而生,图形用户界面也广泛应用于智能手机、家用电器等具有信息交换、储存、处理功能的电子信息产品。
传统的字符界面操作复杂,非专业的用户难以理解和操作。在图形用户界面中,用户不需要学习复杂的代码,而是可以通过其中的图形对象进行操作,电子产品收到操作指令后,对用户进行结果的反馈,反馈的结果即用户接收到的信息也是图形对象,因此用户无须具备专业知识和操作技能就能够实现操作。作为一种界面显示格式,对于非专业用户来说,GUI设计极大地方便了其操作。^3
^3: 图形化界面
1、萌芽阶段
最早的视窗系统概念是随着第一个计算机实时图形显示系统的出现而提出的,即SAGE Project(美国空军防空系统)和Ivan Sutherland编写的Sketchpad(Sketchpad被公认为是计算机辅助绘图(CAD)程序的创始者,并对现代计算机图形用户界面的发展产生重大影响)。Sketchpad当时在麻州理工学院的林肯TX-2计算机上运行。它使用了一个x-y点图像显示器和当时刚发明的光笔。
1960年Doug Engelbart在SRI(Stenford Research Institute)发展了OLS在线系统,在软件界面中增加了光标和多窗口。
1970年,SRI的部分研究员进入施乐PARC(Palo Alto Research Center帕洛阿尔托研究中心),并完成了第一个WIMP(窗户,图标,菜单和指针/下拉式菜单)的演示。
1973年,第一台使用Alto操作系统的计算机在施乐公司PARC研究中心开发完成。Alto是第一个具备了所有现代图形用户界面的基本元素特征的操作系统。特点:使用三键的鼠标;位图的显示器;图形窗口的运用。
2、发展阶段
1980年,ThreeRivers电脑公司发布Perq图形工作站。
1981年,施乐公司发布施乐8010(Star)作为Alto的替代产品。特点:可双击的图标,可重叠的窗口,对话栏,分辨率达到1024*768的单色显示器。
1983年,苹果公司发布Lisa。特点:下拉菜单和主菜单条。Visi公司发布Vision,这是第一款使用完整的图形界面并针对IBM个人电脑环境的电子图表软件。图形用户界面最初的实际运用是Vision公司用来设计电子表格。首先将“视窗”和鼠标的概念引入个人电脑,这比微软的第一版Windows还早。
1984年,苹果公司发布Macintosh系列计算机。Macintosh是第一个成功运用图形用户界面的商业产品。虚拟的桌面概念开始使用,文件看起来就象一张纸,目录看起来像文件夹一样;还有一组桌面小工具,如计算机、笔记本和时钟等。所有这些东西用户都可按自己的需要在屏幕上随意放置,也可以通过把文件和文件夹拖入屏幕上的废纸篓来删除文件。
1985年,Geos在苹果公司的AppleII之后发布Commodore64系统。微软发布视察操作系统Windows的第一个版本。
1987年,苹果发布MacintoshII型电脑,这是Macintosh的第一款彩色显示机型。特点:显示达到640*480的分辨率,256色。微软发布Windows的第二个版本,特点:窗口具有了可叠加、可改变大小的新功能。Acorn公司发布为Acorn计算机开发的“Arthur”图形界面操作系统。
1988年,苹果发布为Apple IIGS开发的16位操作系统GS/OS,其图形界面与苹果的Macintosh系列十分类似。IBM发布增加了图形用户界面的OS/21.10标准版(OS/21.0还完全是命令行模式)。这个版本的图形用户界面是由微软编写的,所以整个界面看起来和Windows2很像。
1990年,Commodore发布A3000机型使用的Amiga Workbench 2,特点:增加了三维的凹凸效果,增加了系统菜单。微软发布Windows3.0。GeoWorks发布PC-GEOS。
1992年,IBM发布32-bit真彩的操作系统OS/2Version2.0。微软发布Windows3.1。AGAAmigas计算机的Amiga Workbench 3系统发布。
1993年,微软发布WindowsNT的第一个版本,这是微软全新的32位操作系统,它采用了和Windows3.1一样的版本号和图形用户界面。
1994年,QNX Software Systems发布第一个嵌入式微窗口系统Phtotn microGUI,资源管理器窗口就是嵌入式多窗口技术的典型运用。
1995年,微软发布Windows95。Agenda96发布。
1996年,New Deal Office2.5发布,它的前身是PC-GEOS。IBM发布OS/2Warp4。微软发布与Windows95界面完全一样的WindowsNT4.0。
1997年,苹果MacOS8发布,并在短短两周内卖出了一百二十五万份,成为当时最畅销的软件。
1998年,微软发布Windows98。特点:Internet Explorer网络器取代了传统的窗口形式,整个帮助系统也由Internet Explorer所取代,广告放置在桌面右上角。
1999年,苹果发布Mac OS X Server,这是一款基于Unix的操作系统,沿用了苹果Macintosh的图形用户界面。RISCOS公司发布适合RiscPC、A7000、A7000 计算机的RISCOS4操作系统。
2000年,苹果公司公布发布Mac OS X,采用全新水晶图形界面。微软Windows2000(AKAWindows NT 5)正式发售。
2001年,微软发布Windows XP。微软下一代操作系统对用户界面设计进行了巨大投入,“期望通过它改变人们使用计算机的方式”。在计算机出现半个世纪的时间里,图形界面经过不断完善,逐步成熟,并完全取代了命令语言界面,成为现代软件界面的主导形式。图形用户界面是人类历史上最伟大的发明创造之一,它对计算机的普及与进一步发展具有深远的意义。施乐、苹果、微软等公司在这个过程中发挥了重要作用。
2006年,微软发布Windows Vista,对此前其视窗操作系统的外观作了较大的修改,实现了Aero功能。
2009年,Windows 7发布。 它剔除掉了Vista许多臃肿功能。通过“显示桌面”按钮,用户可以隐藏窗口查看桌面。 微软完全重新设计了Windows 7的任务栏,用图标替换掉了标签。用户可以将程序锁定在任务栏上预览已打开的窗口。
2012年10月,作为Windows重大更新的Windows 8面世。 该系统启动时不再默认显示桌面,而是全新的“磁贴”开始屏幕,给用户带来了不小的困惑。
2013年10月,微软发布了更新版本Windows 8.1。
2015年7月,微软正式发布计算机和平板电脑操作系统Windows 10。
2021年10月,微软推出Windows 11正式版操作系统。
三、命令行与图形化之间的联系
3.1 图形化界面的人机交互
在Windows中我们通常是以图形化界面来与计算机进行交互,当我们想要打开一个app,打开一个文件我们都可以通过鼠标左键的双击或者鼠标右键的单击打开选择界面,再通过左键单击打开来执行打开文件的操作。
当我们想要创建文件/文件夹时,我们则可以在空白界面处单击鼠标右键选择新建:
我现在就可以通过在新建选项中选择文本文档来创建一个文本文件:
在文本文件中我们就可以通过键盘输入来相应的文本内容,这里就不再多做演示。以上就是我们所熟悉的Windows中的图形化界面交互的过程。
3.2 命令行界面的人机交互
以上的整个过程,我们基本上都只需要借助鼠标就能实现,那我们可不可以通过键盘的方式来实现整个过程呢?答案是可以的。
在命令行操作界面,我们实际上是以命令的形式来进行相应的操作,就比如我想查看当前目录下的文件内容,我们就可以通过ls指令来进行查看:
可以看到,当我们通过ls指令看到的内容,与我们在home文件夹看到的内容是一致的,那如果我想进入某个文件夹我们可以如何操作呢?
在图形化界面中,我是是采用的双击鼠标左键或单击鼠标右键的方式来打开文件夹,但是在命令行界面中,我们则是通过cd指令来进入指定的文件夹,比如我们进入Linux文件夹,我们就可以使用cd Linux
,如下所示:
那我们如何知道我们是否成功进入了该文件夹呢?这里我们就可以通过pwd指令来查看当前所在文件夹,如下所示:
从系统给出的路径可以看到此时我们确实位于Linux文件夹中,接下来我们同样可以通过ls指令来查看文件夹中的内容:
可以看到,此时在Linux文件夹中存在两个文件,如果我们想要在文件夹中创建一个新的文本文件我们应该如何操作呢?
在图形化界面中我们可以通过右键的新建选项中执行新文件的创建操作,在命令行界面中我们则可以通过touch指令来创建一个文件,或者通过mkdir指令来创建一个文件夹,如下所示:
可以看到此时我们成功创建了一个文件夹与一个文本文件。
有细心的朋友可能就会注意到了,此时我们通过ls指令看到的内容中,三个文件夹显示的是蓝色的,文本文件则显示的是黑色的,这个是我们需要注意的一个点。
在Linux系统中,我们位于蓝色的文件夹中时,我们可以通过touch指令和mkdir指令来创建新的文件和文件夹,也可以通过cd指令来进入指定的文件夹。但是对于黑色的文件,我们则无法执行相关的操作,如下所示:
可以看到,当我们尝试则通过cd来进入文本文件时,系统会报错,没有这个文件夹。如果将文件夹与文件比作一个跑道的话,那么蓝色的文件夹就是跑道的起点与中转站,或则说是分叉口,而黑色的文件就是跑道的终点。
如何进入黑色的文件并进行内容编辑,在后面的内容中我们会详细介绍。下面我们来思考一个问题,从前面的演示中,大家有没有发现命令行与图形化界面直接的联系?
命令行的操作对我们而言还是非常陌生的一种人机交互方式,图形化界面的操作方式则更容易被我们接受,因为我们的每一步操作都能有一个具象化的反馈。而命令行的操作方式实际上就是图形化界面的文本式操作方式。我们也可以认为图形化界面是对命令行操作的一种具象化的展示。
3.3 小结
在计算机中,所有的内容实际上都是由各种文件与文件夹组成的,而图形化界面只不过是将这些文件与文件夹给整合成了一个更加形象且能够帮助我们更好理解与操作的可视化界面。当我们在图形化界面中操作app、文档、文件夹、听音乐、看视频……时,实际上都是在对一个个文件和文件夹进行操作。
在Linux系统中,我们则是通过命令行这种借助与各种指令的文本式的人机交互方式来对系统中的文件与文件夹进行操作。因此为了更好的理解与学习Linux的操作,我们则可以借助类似于图形化界面的这种具象化思维来理解不同的指令与其相关的操作。
四、Linux中的基本指令
接下来我们就来简单例举一下Linux中的一些基本指令:
代码语言:c复制ls指令——操作目录的指令,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其它信息
pwd指令——显示用户当前所在的目录
cd指令——改变工作目录。将当前工作目录改变到指定的目录下
touch指令——更改文档或目录的日期时间,包括存储时间与更改时间,或者创建一个不存在的文件
mkdir指令——在当前目录下创建一个新的目录
rmdir与rm指令——删除空目录
man指令——访问Linux联机手册
cp指令——复制文件或目录
mv指令——1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
cat指令——查看目标文件的内容
more指令——功能类似于cat
less指令——less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
head指令——head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
tail指令——用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
cal指令——用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
find指令——用于在文件树中查找文件,并做出相应的处理(可能访问磁盘)
grep指令——在文件中搜索字符串,将找到的行打印出来
zip指令——将目录或文件压缩成zip格式
unzip指令——将zip格式的文件进行解压
tar指令——打包/解包,不打开它,直接看内容
bc指令——进行浮点运算
unnamed指令——uname用来获取电脑和操作系统的相关信息。
结语
在今天的内容中我们详细介绍了命令行与图形化界面的发展历程与联系,在我看来,想要快速的学习与理解Linux的相关知识点,像图形化界面这种具象化的思维是肯定少不了的。在后续的学习中,我们需要通过借助与具象化的思维来理解Linux操作中的各种指令及其功能。
今天的内容到这里就全部结束了,在下一篇内容中我们将正式进入Linux的指令的学习,大家记得关注哦!如果大家喜欢博主的内容,可以点赞、收藏加评论支持一下博主,当然也可以将博主的内容转发给你身边需要的朋友。最后感谢各位朋友的支持,咱们下一篇再见!!!