【Linux】糟糕,是心动的感觉——与Linux的初次相遇-程序员宅基地

技术标签: 学习  # Linux  c语言  运维  linux  保姆级教学  服务器  

封面

导言

大家好,很高兴又和大家见面啦!!!
今天的文章不是一篇技术文,只是一篇简单的学习感受分享。今天的内容会简单的介绍一下Linux的背景、发展史。在今天的内容中,我将会分享一下第一次接触Linux的学习感受与体会,以及自己尝试的一些基本指令。下面让我们一起走进Linux的世界吧!

一、计算机的发展

1.1 历史背景

首先我们要清楚一个概念,那就是科技的发展是以国家之间的对抗为背景的,一个国家要想强大,只能通过不断的提升自己的技术。在现在的核武器时代,如果我们还像原始人一样去拿着石头、木棍去和其他国家进行对抗的话,只会有一个结果,惨败。

时间回到二战时期,当时的战斗十分激烈,但是各国的武器装备却没有特别的先进,在战斗中栈主导地位的战略武器就是飞机和大炮,因此研制和开发新型的大炮和导弹就是当时的重中之重。为此美国陆军军械部在马里兰州的阿拉伯丁设立了“弹道研究实验室”。1

1.2 计算机的发明

于1937年~1941年间,美国爱荷华州立大学的约翰·文森特·阿塔纳索夫(John Vincent Atanasoff)教授和他的研究生克利福特·贝瑞(Clifford Berry)先生研发了“阿塔纳索夫-贝瑞计算机”(Atanasoff-Berry Computer,简称ABC)。
阿塔纳索夫和贝瑞

ABC计算机是第一台电子化的计算机,非图灵完备和不可编程是其最大限制。
ABC计算机
1941年,莫克利(JohnW.Mauchly)在阿坦纳索夫家中借助了5天,在此期间“盗取”了阿塔纳索夫教授的研究成果及想法,之后于1942年提出了试制第一台能够计算导弹弹道轨迹的电子计算机的初始设想——“高速电子管计算装置的使用”,期望用电子管代替继电器以提高机器的计算速度。

美国军方得知这一设想后,马上拨款大力支持,成立了以莫克利、埃克特(John Eckert)为首的研制小猪开始研制工作,预算经费为15万美元。于是世界上第二台电子计算机,世界上第一台通用计算机 ENIAC (Electronic Numerical Integrator And Computer)开始进入研发状态。

于1944年,也就是 ENIAC 的研发中期,当时弹道研究所的顾问——正在参与美国第一颗原子弹研制工作的数学家冯·诺依曼(von Neumann,1903-1957,美籍匈牙利人)带着原子弹研制过程中遇到的大量计算问题,在研制过程中期加入了研制小组。

当时的 ENIAC 设计中存在两个问题:

  1. 没有存储器
  2. 它是使用布线接板进行控制的

为了进行搭接,可能需要耗费数天的时间,这就导致计算机的速度被这一工作抵消了。

1945年,为了解决 ENIAC 存在的这两个问题,冯·诺依曼和他的研制小组在共同讨论的基础上,发表了一个全新的“存储程序通用电子计算机方案”—— EDVAC (Electronic Discrete Variable Automatic Computer)。方案中提出的计算机体系结构一直延续至今,也就是现代计算机的冯·诺依曼结构。
冯·诺依曼

EDVAC 的初步预算为10万美元,但最终的成本大约超过估计的4倍,约50万美元。2

1946年,第一台通用计算机 ENIAC 问世,并开始投入运行。

1949年8月,第一台离散变量自动电子计算机 EDVAC 问世,于1951年正式开始投入运行。

二、操作系统

2.1 什么是操作系统?

操作系统本质上就是一款软件,只不过这款软件是用来进行软硬件管理的
现代计算机是由软件和硬件组成的,在计算机中其软硬件的体系结构我们可以简单的分为4层结构:
计算机软硬件体系结构

所谓的硬件就是按照冯·诺依曼的体系结构而组成计算机的五大部件:

  • 运算器、存储器、控制器、输入设备和输出设备;

计算机中控制这些硬件使用的是硬件对应的驱动,而对驱动下达指令的是管理软硬件资源的软件,这个软件就是我们所说的操作系统,使用计算机的用户了。

对于这个分层结构的工作流程,我们可以简单的理解为:

  • 用户通过对计算机进行一些操作,这些操作会传递给操作系统;
  • 操作系统在对这一系列的操作进行相应的处理后,再将对应的指令传达给驱动;
  • 驱动在接收到指令后会要求硬件执行对应的操作;

如果我们将一台计算机想象成一个软硬件公司的话,那么我们就是公司的董事长,公司大大小小的事物都需要经过我们的同意,而操作系统就是公司的总经理,总经理会将董事长的指令进行解析并传递给下属,而这些驱动就是接收总经理指令的组长,组长在接到指令后就会将工作任务分配给对应的员工,也就是计算机硬件。

这么一看,咱在使用计算机时好歹也是个董事长,我的天我真牛,哈哈哈哈。
我真牛
下面我们继续言归正传,下面来看一下操作系统的诞生与发展;

2.2 操作系统的诞生

自从 ENIAC 问世以来,当时对计算机的工作还是采用的手工操作的方式。3

程序猿将对应用程序和数据的已穿空的纸袋(或者卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸袋(或卡片)后,才让下一个用户上机。

手工操作方式有两个特点:

  1. 用户独占全机。不会出现因资源被其他用户占用而等待的现象,但资源利用率低。
  2. CPU等待手工操作。CPU利用不够充分。

根据这种操作特性,如果程序猿在使用计算机时,纸袋上面有一只小飞虫啥的,这就会造成程序的运行出现问题,于是便有了BUG一词。

EDVAC 问世之后,随着时代的更替,计算机也开始逐步发展,随着计算量的不断增加,于20世纪50年代后期开始出现了人机矛盾:

  • 手工操作的慢速度与计算机的高度之间产生了尖锐的矛盾,手工操作方式已经严重损害了系统资源的利用率,通过手工操作方式对系统资源的利用只能做到百分之几甚至更低。

为了解决这个矛盾,摆脱人的手工操作,实现作业的自动过渡,于是第一个操作系统——联机批处理系统诞生了。

2.3 操作系统的发展

2.3.1 批处理系统的发展

批处理系统是加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这些作业包括程序、数据和命令)

首先出现的是联机批处理系统,即作业的输入和输出有CPU来处理。

虽然联机批处理系统客服了人机矛盾,提高了计算机的利用率,但是在作业输入和结果输出是,主机的告诉CPU仍处于空闲状态,等待慢速的输入和输出设备完成工作:主机处于“忙等”状态。

为了克服与缓解高速主机与慢速外设之间的矛盾,提高CPU的利用率,于是引入了脱机批处理系统,即输入与输出脱离主机的控制。

虽然脱机批处理系统极大缓解了人机矛盾以及主机与外设的矛盾,但是每次主机内存中仅存放一道作业,每当它运行期间发出输入和输出的请求后,高速的CPU便处于等待低速的输入和输出完成的状态,致使CPU空闲。

为了改善CPU的利用率,又引入了多道程序设计技术,即允许多个程序同时进入内存并运行。

多道程序系统的出现,标志着操作系统渐趋成熟,先后出现了作业调度管理、处理机管理、存储器管理、外设管理以及文件系统管理等功能。

20世纪60年代中期,在前述的批处理系统中,引入多道程序设计技术后形成多道批处理系统,简称批处理系统。
它有两个特点:

  1. 多道:系统内可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动转接的、连续的作业流。
  2. 成批:在系统运行过程中,不允许用户与其作业发生交互作用,即:作业一旦进入系统,用户就不能直接干预其作业的运行。

批处理系统的追求目标——提高系统资源利用率和系统吞吐量,以及作业流程的自动化。

批处理系统的一个重要缺点——不提供人机交互能力,给用户使用计算机带来不便

虽然用户独占全机资源,并且直接控制程序的运行,可以随时了解程序运行情况。但这种工作方式因独占全机造成资源效率极低。

一种新的追求目标:既能保证计算机效率,又能方便用户使用计算机。 20世纪60年代中期,计算机技术和软件技术的发展使这种追求成为可能。

2.3.2 分时系统

由于CPU速度不断提高和采用分时技术,一台计算机可同时连接多个用户终端,而每个用户可在自己的终端上联机使用计算机,好象自己独占机器一样。

所谓的分时技术指的是把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用

若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮时再继续其运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的印象是,好象他独占了一台计算机。而每个用户可以通过自己的终端向系统发出各种操作控制命令,在充分的人机交互情况下,完成作业的运行。

具有上述特征的计算机系统称为分时系统,它允许多个用户同时联机使用计算机。

特点:

  1. 多路性。若干个用户同时使用一台计算机。微观上看是各用户轮流使用计算机;宏观上看是各用户并行工作。
  2. 交互性。用户可根据系统对请求的响应结果,进一步向系统提出新的请求。这种能使用户与系统进行人机对话的工作方式,明显地有别于批处理系统,因而,分时系统又被称为交互式系统。
  3. 独立性。用户之间可以相互独立操作,互不干扰。系统保证各用户程序运行的完整性,不会发生相互混淆或破坏现象。
  4. 及时性。系统可对用户的输入及时作出响应。分时系统性能的主要指标之一是响应时间,它是指:从终端发出命令到系统予以应答所需的时间。

分时系统的主要目标:对用户响应的及时性,即不至于用户等待每一个命令的处理时间过长。

分时系统可以同时接纳数十个甚至上百个用户,由于内存空间有限,往往采用对换(又称交换)方式的存储方法。即将未“轮到”的作业放入磁盘,一旦“轮到”,再将其调入内存;而时间片用完后,又将作业存回磁盘(俗称“滚进”、“滚出“法),使同一存储区域轮流为多个用户服务。

多用户分时系统是当今计算机操作系统中最普遍使用的一类操作系统。

2.3.3 实时系统

虽然多道批处理系统和分时系统能获得较令人满意的资源利用率和系统响应时间,但却不能满足实时控制与实时信息处理两个应用领域的需求。

于是就产生了实时系统,即系统能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件的处理

实时系统在一个特定的应用中常作为一种控制设备来使用。
实时系统可分成两类:

  1. 实时控制系统。当用于飞机飞行、导弹发射等的自动控制时,要求计算机能尽快处理测量系统测得的数据,及时地对飞机或导弹进行控制,或将有关信息通过显示终端提供给决策人员。当用于轧钢、石化等工业生产过程控制时,也要求计算机能及时处理由各类传感器送来的数据,然后控制相应的执行机构。
  2. 实时信息处理系统。当用于预定飞机票、查询有关航班、航线、票价等事宜时,或当用于银行系统、情报检索系统时,都要求计算机能对终端设备发来的服务请求及时予以正确的回答。此类对响应及时性的要求稍弱于第一类。

实时操作系统的主要特点:

  1. 及时响应。每一个信息接收、分析处理和发送的过程必须在严格的时间限制内完成。
  2. 高可靠性。需采取冗余措施,双机系统前后台工作,也包括必要的保密措施等。

2.3.4 通用操作系统

操作系统的三种基本类型——多道批处理系统分时系统实时系统

通用操作系统:具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能

例如:实时处理+批处理=实时批处理系统。首先保证优先处理实时任务,插空进行批处理作业。常把实时任务称为前台作业,批作业称为后台作业。
再如:分时处理+批处理=分时批处理系统。即:时间要求不强的作业放入“后台”(批处理)处理,需频繁交互的作业在“前台”(分时)处理,处理机优先运行“前台”作业。

从上世纪60年代中期,国际上开始研制一些大型的通用操作系统。这些系统试图达到功能齐全、可适应各种应用范围和操作方式变化多端的环境的目标。但是,这些系统过于复杂和庞大,不仅付出了巨大的代价,且在解决其可靠性、可维护性和可理解性方面都遇到很大的困难。

相比之下,UNIX操作系统却是一个例外。这是一个通用的多用户分时交互型的操作系统。它首先建立的是一个精干的核心,而其功能却足以与许多大型的操作系统相媲美,在核心层以外,可以支持庞大的软件系统。它很快得到应用和推广,并不断完善,对现代操作系统有着重大的影响。

至此,操作系统的基本概念、功能、基本结构和组成都已形成并渐趋完善。

2.4 UNIX操作系统

Unix是20世纪70年代初出现的一个操作系统,除了作为网络操作系统之外,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,主要用于工程应用和科学计算等领域。4

2.4.1 UNIX的诞生

UNIX系统是一个分时系统

最早的UNIX系统于1970年问世。此前,只有面向批处理作业的操作系统,这样的系统对于需要立即得到响应的用户来说是太慢了。在60年代末,肯尼斯·蓝·汤普森(Kenneth Lane Thompson)和 丹尼斯·麦卡利斯泰尔·里奇(Dennis MacAlistair Ritchie) 都曾参加过交互方式分时系统Multics的设计,而开发该系统所使用的工具是CTSS。这两个系统在操作系统的发展过程中都产生过重大影响。在此基础上,在对当时现有的技术进行精选提炼和发展的过程中,K.Thompson于1969年在小型计算机上开发UNIX系统,后于1970年投入运行。

肯尼斯·蓝·汤普森也就是我们的B语言之父与UNIX之父,本人帅照如下:
B语言之父
丹尼斯·麦卡利斯泰尔·里奇也就是我们的C语言之父,本人帅照如下:
C语言之父
膜拜两位大佬
见过大佬

2.4.2 UNIX的发展

  • 1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念。

  • 1969-1970年,AT&T的贝尔实验室研究人员Ken Tompson和Dennis Ritchie,在采用很多Multics特点的基础上开发了UINX系统。它运行在小型机上,满足了系统对科研环境的要求。从产生开始,UNIX就是一个有价值的、高效的、多用户和多任务的操作系统。

UNIX从满足个人的设计需求开始,逐步成长为由许多不同开发商所支持的标准软件产品。
第一个UNIX版本是免费给许多知名大学的计算机系使用的。

  • 1972年,丹尼斯·麦卡利斯泰尔·里奇(Dennis MacAlistair Ritchie) 开发出C语言,用来改写原来用汇编语言编写的UNIX,由此产生了UNIX VersionV。贝尔实验室开始发放商业版本,并且给不同的用户授权使用这个系统,使用者之一是加州大学伯克莱分校的计算机系。伯克莱给系统增加了许多新的特点,后来成为了标准。

  • 1974年,Kenneth Thompson和Dennis Ritchie合写的“The UNIX Time-Sharing System”在Communication of ACM上发表,正式向外界披露了UNIX系统。
    当时,PDP-11系列小型计算机在世界各地已经得到广泛应用,UNIX系统一开发后便广泛配备于美国各大学的PDP-11系列计算机上,由此为UNIX的广泛应用创造了物质条件。

  • 1975年伯克莱由下属部门BSD发行了自己的UNIX版本。UNIX的BSD版本成为AT&T贝尔实验室版本的主要竞争者,而其它的独立开发出的UNIX版本也开始萌生。

  • 1978年,UNIX Version VI发表,随后又于1979年用于VAX-11超级小型机。以后,不断地出现各种新的版本。

  • 1980年微软公司开发了叫做Xenix的UNIX PC版本。AT&T发行了第一个商业版本。名叫System Ⅲ,后来被成为对商用软件产品良好支持的System Ⅴ所替代。

  • 美国电话电报公司分别于1981年和1983年发表AT&T UNIX SystemII和UNIX SystemV。美国加州大学伯克莱分校也先后发表了UNIX的版本BSD4.1,BSD4.2和BSD4.3。

随着UNIX的BSD版本不断发展,在70年代末期,BSD UNIX成为了国防部的高科技研究机构科研项目的基础。其结果,伯克莱发行了一个叫做BSD Release 4.2的有效版本。
它包括了高级的文件管理器和基于TCP/IP网络协议的网络特点。现在TCP/IP被Internet所使用。BSD Release4.2被许多厂商所采用,例如SUN Microsystem。

UNIX不同版本的出现导致了UNIX标准的需要,软件开发商不知道他们的程序运行在哪些版本上比较合适。

到80年代中期,两个竞争的标准出现了,一个是基于AT&T的UNIX版本,另一个是BSD版本。在今天的书店里你能发现分别适用于这两个版本的不同的UNIX的书,一些是System V,另一些集中在BSD UNIX。

AT&T建立了一个叫UNIX系统实验室的新组织,它的作用就是综合UNIX的不同版本,集中开发一个标准系统。

  • 1991年,UNIX综合实验室综合了System V Release3,SUN OS和Xenix的所有特点,发行了System V Release4。

为了与System V Release 4 竞争,一些其它公司,如IBM和惠普Open Software Foundation(OSF)去产生自己的UNIX标准版本,继而出现了两个标准商业版本OSF版本和System Release 4。

  • 1993年,AT&T把它的UNIX转卖给Novell公司。UNIX系统实验室成为了Novell的UNIX系统小组的一部分。Novell发行了基于System V Release 4的自己的UNIX版本UNIXWare,它可以和Novell公司的Netware系统相联。SUN公司已经把System V Release 4 融进了它的SUN OS,发行了Solaris。两个相互竞争的UNIX使用的图形用户界面(一个叫Motif,另一个叫Openlook),已经合并为一个新的工作平台标准,叫做通用平台环境(CDE)。

UNIX系统的用户日益增多,应用范围也日益扩大。无论在各种类型的微型机、小型机,还是在中、大型计算机,以及在计算机工作站甚至个人计算机上,很多都已配有UNIX系统。不仅新推出的机型配有UNIX系统,而且一些历史较久的生产厂商,也竞相将原有机型配上UNIX系统以便打开销路、争取市场。

  • 2020年,苹果发布操作系统升级版本,将UNIX操作系统的强大功能和苹果电脑的易用性相结合,提高了电脑的运行速度和电池寿命。

2.5 Linux的发展

1991年10月5日,赫尔辛基大学的一名研究生林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。
下面就是我们这位大佬的帅照:
Linux之父
新的操作系统是受到另一个UNIX的小操作系统——Minix的启发,该系统是由一名叫安德鲁·斯图尔特·塔能鲍姆(Andrew Stuart “Andy” Tanenbaum)的教师开发的。
大佬帅照如下:
Minix之父
读者也许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux 0.01版本并没有被发布,原因是0.01版本不实用。

Linus仅仅在第一个Linux的FTP站点(ftp://nic.funet.fi)上提供过这个版本的的源代码。

托瓦兹于10月5日发布的这个Linux版本被称为0.02版,它能够运行GNU Bourne Again Shell(bash)和GNU的C编译程序(gcc)以及为数不多的其它语言。托瓦兹绝对没有想到他设想的一种能够针对高级业余爱好者和黑客们的操作系统已经产生,这就是人们所称的Linux。

Linux发布时的版本是0.02,后来又有0.03版,然后又跳到0.10版。因为世界各地越来越多的程序员都开始开发Linux,它已经达到0.95版。这就意味着正是公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的

Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。

2.5.1 开源

开源就是将代码进行公开

GNU通用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是一个广泛被使用的自由软件许可协议条款,最初由理查德斯托曼为GNU计划而撰写,GPL给予了计算机程序自由软件的定义, 任何基于GPL软件开发衍生的产品在发布时必须采用GPL许可证方式,且必须公开源代码。
Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。
随着Linux操作系统飞速发展,各种集成在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词。

Linux作为一款开源的操作系统,它被全球顶尖的行业大佬紧紧的盯着,因此,代码中存在的问题可以尽快的被这些大佬们发现并且进行优化,因此,Linux是一款更稳定、更高效、更安全且有免费发行版本的操作系统

Linux在很多地方都有相应的使用:

  1. 作为企业的服务后台
  2. 嵌入式设备中
  3. 新兴的入网家用设备(智能电视)
  4. 车载系统(特斯拉)
  5. 手机操作系统(安卓)

因为托瓦兹大佬的壮举,导致乔布斯能够通过操作系统赚到的money大幅度缩水,所以托瓦兹大佬也是乔布斯最痛恨的人之一。

2.5.2 Linux的发行版本

Linux的发型版本分为技术角度和商业角度两个方面:

技术角度:Linux内核(kernel)版本

从技术角度出发,Linux发行的版本又称之为Linux内核版本,我们可以通过Linux网址:https://www.kernel.org/来找到我们所需要的对应版本并进行下载
Linux发行版本1这里的版本都是可以使用的,就比如v2.6版本,我们在进入这个版本的界面之后会看到基于这个版本下的不同版本:
Linux发行版本2
就比如对于linux-2.6.11这个版本,这里的2.6.11这个版本号的命名是遵循主版本.从版本.修正次数的命名规则;

  • 从版本:
    • 偶数:稳定的可以直接使用的版本
    • 奇数:测试版
  • 修正次数:
    • 被修正了多少次

像这个2.6.11就表示的是在主版本v2下的第6版从版本,总共被修改了11次,并且v2.6这个从版本是可以进行稳定使用的版本。

商业化角度

商业化版本是基于内核版本进行二次开发的能够被我们使用并满足我们正常开发需求的商业化的产品。比如:centos 7,8、Ubuntu 12.04、kail、红旗、redhat(收费)……

我自己目前使用的是在VMware虚拟机上装载的centos7。下面我们就来看一下Linux的操作环境是怎么样的吧;

三、Linux初体验

3.1 进入Linux系统

首先我们先打开VMware:
Linux初体验1
之后打开centos7:
Linux初体验2
之后选择登录的用户:
Linux初体验3
最后输入账户密码完成登录:
Linux初体验4
完成账户登录后我们就能看到对应的图形化界面:
Linux初体验5
之后选择应用程序(Applications)->终端(Terminal):
Linux初体验6
之后就可以在界面内进行操作了:
Linux初体验7
在进行操作前我们先认识几个指令:

3.2 操作指令

//Linux基本操作指令
// ls——list——显示当前目录下的所有的文件名
// ll——展示当前目录下的所有文件名更详细的信息
// pwd——展示当前目录
// cd——进入指定文件
// mkdir——创建新的目录
// touch——创建新文件
// vim——编译新文件
// i——插入模式
// esc——切换正常模式
// :wq——保存并退出
// gcc——通过gcc打开指定文件
// ./a.out——运行指定文件
// cat——展示文件中的内容

下面我们尝试着通过这些指令来完成以下任务:

  1. 创建一个文件夹;
  2. 创建一个test.c文件;
  3. 在文件中进行C语言编码,编码内容为打印Hello Linux!
  4. 通过gcc来运行文件

下面我们先来看一下再文本文件中的操作步骤:
Linux初体验8
当我们创建好test.c文件后,我们就可以按照这个图中所示步骤来进行文本编辑。当我们保存好并退出文本后就可以开始运行文件了:
Linux初体验9
图中备注的指令功能不一定正确,但是目前我是这么理解并进行使用的,在后面的内容中我会再给大家好好的分享一下在Linux中的各种指令及其对应的基本操作。

刚才的操作代码我就放在下面了,大家可以看一下不同的指令及其使用:

[lq@localhost ~]$ pwd
/home/lq
[lq@localhost ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[lq@localhost ~]$ ll
total 0
drwxr-xr-x. 2 lq lq 6 Jan 18 10:49 Desktop
drwxr-xr-x. 2 lq lq 6 Jan 18 10:49 Documents
drwxr-xr-x. 2 lq lq 6 Jan 18 10:49 Downloads
drwxr-xr-x. 2 lq lq 6 Jan 18 10:49 Music
drwxr-xr-x. 2 lq lq 6 Jan 18 10:49 Pictures
drwxr-xr-x. 2 lq lq 6 Jan 18 10:49 Public
drwxr-xr-x. 2 lq lq 6 Jan 18 10:49 Templates
drwxr-xr-x. 2 lq lq 6 Jan 18 10:49 Videos
[lq@localhost ~]$ mkdir Linux
[lq@localhost ~]$ ls
Desktop  Documents  Downloads  Linux  Music  Pictures  Public  Templates  Videos
[lq@localhost ~]$ cd Linux
[lq@localhost Linux]$ ls
[lq@localhost Linux]$ touch test.c
[lq@localhost Linux]$ ls
test.c
[lq@localhost Linux]$ vim test.c
[lq@localhost Linux]$ cat test.c
#include <stdio.h>
int main()
{
    
    printf("Hello Linux!\n");
    return 0;
}
[lq@localhost Linux]$ gcc test.c
[lq@localhost Linux]$ ls
a.out  test.c
[lq@localhost Linux]$ ./a.out test.c
Hello Linux!
[lq@localhost Linux]$ ll
total 16
-rwxrwxr-x. 1 lq lq 8512 Jan 24 03:23 a.out
-rw-rw-r--. 1 lq lq   78 Jan 24 03:22 test.c

结语

在今天的内容中,我们花费了大量的篇幅来介绍操作系统的发展历史,这里我觉得大家在学习Linux之前学习一下对应的历史是很有必要的,虽然文字内容偏多,篇幅过长,大家可以闲来无事时看一看,让自己对这个知识有一点印象。在文章最后,我也带领大家进行了Linux操作系统下的初次体验,虽然内容看着复杂,但是实质上我们就是通过各种指令来完成我们在Windows上进行的各种图形化操作。

今天的内容到这里就全部结束了,对于指令与图形化的内容以及Linux中的常见指令在下一个篇章中咱们将会介绍到,大家记得关注哦!希望本篇内容能帮助大家走进Linux的世界,最后感谢大家的翻阅,咱们下一篇再见!!!


  1. ENIAC

  2. EDVAC

  3. 操作系统发展史

  4. UNIX操作系统

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2301_79458548/article/details/135791357

智能推荐

从零开始搭建Hadoop_创建一个hadoop项目-程序员宅基地

文章浏览阅读331次。第一部分:准备工作1 安装虚拟机2 安装centos73 安装JDK以上三步是准备工作,至此已经完成一台已安装JDK的主机第二部分:准备3台虚拟机以下所有工作最好都在root权限下操作1 克隆上面已经有一台虚拟机了,现在对master进行克隆,克隆出另外2台子机;1.1 进行克隆21.2 下一步1.3 下一步1.4 下一步1.5 根据子机需要,命名和安装路径1.6 ..._创建一个hadoop项目

心脏滴血漏洞HeartBleed CVE-2014-0160深入代码层面的分析_heartbleed代码分析-程序员宅基地

文章浏览阅读1.7k次。心脏滴血漏洞HeartBleed CVE-2014-0160 是由heartbeat功能引入的,本文从深入码层面的分析该漏洞产生的原因_heartbleed代码分析

java读取ofd文档内容_ofd电子文档内容分析工具(分析文档、签章和证书)-程序员宅基地

文章浏览阅读1.4k次。前言ofd是国家文档标准,其对标的文档格式是pdf。ofd文档是容器格式文件,ofd其实就是压缩包。将ofd文件后缀改为.zip,解压后可看到文件包含的内容。ofd文件分析工具下载:点我下载。ofd文件解压后,可以看到如下内容: 对于xml文件,可以用文本工具查看。但是对于印章文件(Seal.esl)、签名文件(SignedValue.dat)就无法查看其内容了。本人开发一款ofd内容查看器,..._signedvalue.dat

基于FPGA的数据采集系统(一)_基于fpga的信息采集-程序员宅基地

文章浏览阅读1.8w次,点赞29次,收藏313次。整体系统设计本设计主要是对ADC和DAC的使用,主要实现功能流程为:首先通过串口向FPGA发送控制信号,控制DAC芯片tlv5618进行DA装换,转换的数据存在ROM中,转换开始时读取ROM中数据进行读取转换。其次用按键控制adc128s052进行模数转换100次,模数转换数据存储到FIFO中,再从FIFO中读取数据通过串口输出显示在pc上。其整体系统框图如下:图1:FPGA数据采集系统框图从图中可以看出,该系统主要包括9个模块:串口接收模块、按键消抖模块、按键控制模块、ROM模块、D.._基于fpga的信息采集

微服务 spring cloud zuul com.netflix.zuul.exception.ZuulException GENERAL-程序员宅基地

文章浏览阅读2.5w次。1.背景错误信息:-- [http-nio-9904-exec-5] o.s.c.n.z.filters.post.SendErrorFilter : Error during filteringcom.netflix.zuul.exception.ZuulException: Forwarding error at org.springframework.cloud..._com.netflix.zuul.exception.zuulexception

邻接矩阵-建立图-程序员宅基地

文章浏览阅读358次。1.介绍图的相关概念  图是由顶点的有穷非空集和一个描述顶点之间关系-边(或者弧)的集合组成。通常,图中的数据元素被称为顶点,顶点间的关系用边表示,图通常用字母G表示,图的顶点通常用字母V表示,所以图可以定义为:  G=(V,E)其中,V(G)是图中顶点的有穷非空集合,E(G)是V(G)中顶点的边的有穷集合1.1 无向图:图中任意两个顶点构成的边是没有方向的1.2 有向图:图中..._给定一个邻接矩阵未必能够造出一个图

随便推点

MDT2012部署系列之11 WDS安装与配置-程序员宅基地

文章浏览阅读321次。(十二)、WDS服务器安装通过前面的测试我们会发现,每次安装的时候需要加域光盘映像,这是一个比较麻烦的事情,试想一个上万个的公司,你天天带着一个光盘与光驱去给别人装系统,这将是一个多么痛苦的事情啊,有什么方法可以解决这个问题了?答案是肯定的,下面我们就来简单说一下。WDS服务器,它是Windows自带的一个免费的基于系统本身角色的一个功能,它主要提供一种简单、安全的通过网络快速、远程将Window..._doc server2012上通过wds+mdt无人值守部署win11系统.doc

python--xlrd/xlwt/xlutils_xlutils模块可以读xlsx吗-程序员宅基地

文章浏览阅读219次。python–xlrd/xlwt/xlutilsxlrd只能读取,不能改,支持 xlsx和xls 格式xlwt只能改,不能读xlwt只能保存为.xls格式xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改xlrd打开文件import xlrdexcel=xlrd.open_workbook('E:/test.xlsx') 返回值为xlrd.book.Book对象,不能修改获取sheett_xlutils模块可以读xlsx吗

关于新版本selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id‘等问题_unresolved attribute reference 'find_element_by_id-程序员宅基地

文章浏览阅读8.2w次,点赞267次,收藏656次。运行Selenium出现'WebDriver' object has no attribute 'find_element_by_id'或AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'等定位元素代码错误,是因为selenium更新到了新的版本,以前的一些语法经过改动。..............._unresolved attribute reference 'find_element_by_id' for class 'webdriver

DOM对象转换成jQuery对象转换与子页面获取父页面DOM对象-程序员宅基地

文章浏览阅读198次。一:模态窗口//父页面JSwindow.showModalDialog(ifrmehref, window, 'dialogWidth:550px;dialogHeight:150px;help:no;resizable:no;status:no');//子页面获取父页面DOM对象//window.showModalDialog的DOM对象var v=parentWin..._jquery获取父window下的dom对象

什么是算法?-程序员宅基地

文章浏览阅读1.7w次,点赞15次,收藏129次。算法(algorithm)是解决一系列问题的清晰指令,也就是,能对一定规范的输入,在有限的时间内获得所要求的输出。 简单来说,算法就是解决一个问题的具体方法和步骤。算法是程序的灵 魂。二、算法的特征1.可行性 算法中执行的任何计算步骤都可以分解为基本可执行的操作步,即每个计算步都可以在有限时间里完成(也称之为有效性) 算法的每一步都要有确切的意义,不能有二义性。例如“增加x的值”,并没有说增加多少,计算机就无法执行明确的运算。 _算法

【网络安全】网络安全的标准和规范_网络安全标准规范-程序员宅基地

文章浏览阅读1.5k次,点赞18次,收藏26次。网络安全的标准和规范是网络安全领域的重要组成部分。它们为网络安全提供了技术依据,规定了网络安全的技术要求和操作方式,帮助我们构建安全的网络环境。下面,我们将详细介绍一些主要的网络安全标准和规范,以及它们在实际操作中的应用。_网络安全标准规范

推荐文章

热门文章

相关标签