【Linux】糟糕,是心动的感觉——与Linux的初次相遇

初识Linux

  • 导言
  • 一、计算机的发展
    • 1.1 历史背景
    • 1.2 计算机的发明
  • 二、操作系统
    • 2.1 什么是操作系统?
    • 2.2 操作系统的诞生
    • 2.3 操作系统的发展
      • 2.3.1 批处理系统的发展
      • 2.3.2 分时系统
      • 2.3.3 实时系统
      • 2.3.4 通用操作系统
    • 2.4 UNIX操作系统
      • 2.4.1 UNIX的诞生
      • 2.4.2 UNIX的发展
    • 2.5 Linux的发展
      • 2.5.1 开源
      • 2.5.2 Linux的发行版本
  • 三、Linux初体验
    • 3.1 进入Linux系统
    • 3.2 操作指令
  • 结语

封面

导言

大家好,很高兴又和大家见面啦!!!
今天的文章不是一篇技术文,只是一篇简单的学习感受分享。今天的内容会简单的介绍一下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操作系统 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/346715.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESXI 本地和虚拟机之间可以自由复制和粘贴

文章目录 ESXI 本地和虚拟机之间可以自由复制和粘贴 ESXI 本地和虚拟机之间可以自由复制和粘贴 web访问esxi&#xff0c;然后&#xff1a; 1、右击新建的虚拟机&#xff0c;确保是在关机状态下&#xff0c;点击编辑设置 2. 找到 虚拟机选项→高级→常规→配置参数 3、点击添加…

Scrapy爬虫在新闻数据提取中的应用

Scrapy是一个强大的爬虫框架&#xff0c;广泛用于从网站上提取结构化数据。下面这段代码是Scrapy爬虫的一个例子&#xff0c;用于从新闻网站上提取和分组新闻数据。 使用场景 在新闻分析和内容聚合的场景中&#xff0c;收集和组织新闻数据是常见需求。例如&#xff0c;如果我…

❤css实用

❤ css实用 渐变色边框&#xff08;Gradient borders方法的汇总 5种-代码可直接下载&#xff09; 资源链接 https://download.csdn.net/download/weixin_43615570/88779950?spm1001.2014.3001.5503 给 border 设置渐变色是很常见的效果&#xff0c;实现这个效果有很多思路 1…

Python requests网络库源码分析(第三篇:通过学习异常模块,了解http协议)

前言 作者在requests包下&#xff0c;定义了exceptions模块&#xff0c;该模块中定义执行http请求过程中常见的错误&#xff0c;熟悉这些错误有助于我们写出健壮的业务程序&#xff0c;同时还能温习http的知识点&#xff0c;本文基于的requests版本为2.27.1 exceptions模块&…

Sectigo多域名通配符证书区别买一年送一个月

Sectigo是国际知名CA认证机构之一&#xff0c;旗下有多种SSL数字证书&#xff0c;如单域名SSL证书、多域名SSL证书、通配符SSL证书、IP证书、多域名通配符SSL证书等。Sectigo旗下的多域名通配符证书有两种&#xff0c;它们在保护的域名类型和数量上存在一定差异&#xff0c;今天…

学校门禁监控,怎么管理更高级?

随着社会的不断发展和科技的飞速进步&#xff0c;安全管理成为各个领域不可或缺的重要环节。在这一安全管理体系中&#xff0c;门禁监控系统扮演着至关重要的角色&#xff0c;为组织、企业和机构提供了先进的、智能化的安全解决方案。 因此&#xff0c;门禁监控系统不仅仅是简单…

Linux简介

Unix的特点&#xff1a; Unix很简洁&#xff0c;Unix只提供几百个系统调用&#xff0c;并且每个调用都有明确的目的。一切皆文件&#xff0c;对数据和对文件都是通过相同的系统调用接口&#xff1a;open&#xff08;&#xff09;&#xff0c;read&#xff08;&#xff09;&…

应用监控 eBPF 版:实现高效协议解析的技术探索

作者&#xff1a;彦鸿 引言 随着 Kuberentes 等云原生技术的飞速发展&#xff0c;带来了研发与运维模式的变革。企业软件架构由单体服务向分布式、微服务演进。随着业务发展&#xff0c;多语言、多框架、多协议的微服务在企业中越来越多&#xff0c;软件架构复杂度越来越高&a…

谈谈 RocketMQ 5.0 分级存储背后一些有挑战的技术优化

作者&#xff1a;斜阳 RocketMQ 5.0 提出了分级存储的新方案&#xff0c;经过数个版本的深度打磨&#xff0c;RocketMQ 的分级存储日渐成熟&#xff0c;并成为降低存储成本的重要特性之一。事实上&#xff0c;几乎所有涉及到存储的产品都会尝试转冷降本&#xff0c;如何针对消…

火灾监测识别摄像机

火灾监测识别摄像机是一种基于视觉识别技术的智能设备&#xff0c;旨在实时监测并识别火灾&#xff0c;及时报警并提供相关数据支持&#xff0c;以提高火灾应急响应和减少火灾灾害损失。 火灾监测识别摄像机利用高清摄像头和先进的图像处理技术&#xff0c;能够对室内和室外环境…

解决Android Studio gradle下载超时和缓慢问题(win10)

解决超时问题 一般配置阿里云代理就可以解决。 具体配置方法&#xff0c;参考&#xff1a;https://blog.csdn.net/zhangjin1120/article/details/121739782 解决下载缓慢问题 直接去腾讯云镜像下载&#xff1a; https://mirrors.cloud.tencent.com/gradle/ 下载好了之后&…

Oracle2-Rollup和Cube用法

在Oracle的聚合函数中&#xff0c;会有按照维度统计的情况,比如上图按照job 和 deptno统计 sal的sum 但是也会遇到同时要求统计只按照job维度统计的情况&#xff0c;并且做到一张表里 1 union 来实现维度不一致 首先反应过来的是分两步查询&#xff0c;再讲结果union起来 s…

快速上手的AI工具-文心一言绘本创作

前言 大家好晚上好&#xff0c;现在AI技术的发展&#xff0c;它已经渗透到我们生活的各个层面。对于普通人来说&#xff0c;理解并有效利用AI技术不仅能增强个人竞争力&#xff0c;还能在日常生活中带来便利。无论是提高工作效率&#xff0c;还是优化日常任务&#xff0c;AI工具…

使用Python和PyTorch库构建一个简单的文本分类大模型:

在当今的大数据时代&#xff0c;文本分类任务在许多领域都有着广泛的应用&#xff0c;如情感分析、垃圾邮件过滤、主题分类等。为了有效地处理这些任务&#xff0c;我们通常需要构建一个强大的文本分类模型。在本篇博客中&#xff0c;我们将使用Python和PyTorch库来构建一个简单…

composer安装hyperf后,nginx配置hyperf

背景 引入hyperf项目用作微服务&#xff0c;使用composer 安装hyperf后&#xff0c;对hyperf进行nginx配置。 配置步骤 因为hyperf监听的是端口&#xff0c;不像其他laravel、lumen直接指向文件即可。所有要监听端口号。 1 配置nginx server {listen 80;//http&#xff1a…

[GDMEC-无人机遥感研究小组]无人机遥感小组-000-数据集制备

基于labelme的无人机语义分割数据集制备 文章目录 基于labelme的无人机语义分割数据集制备1. 数据获取2. 安装labelme3.利用labelme进行标注 1. 数据获取 数据集制备需要利用无人机飞行并采集标注。使用录制模式&#xff0c;镜头垂直向下进行拍摄&#xff0c;得到DJI_XXXX.MP4…

linux基础指令【中篇】

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 补充上篇的细节1.sta…

2023龙信杯wp

打了好像70多分&#xff0c;没拿奖&#xff0c;因为一些众所周知的原因&#xff0c;复盘间隔时间太长了没什么印象了已经 案情简介 2023年9月&#xff0c;某公安机关指挥中心接受害人报案:通过即时通讯工具添加认识一位叫“周微”的女人&#xff0c;两人谈论甚欢&#xff0c;确…

配网行波型故障预警定位装置:电力系统的安全守护神

随着科技的不断发展&#xff0c;电力系统的运行和管理已经越来越依赖于先进的技术手段。在这个领域中&#xff0c;配网行波型故障预警定位装置(也被称为智能电网监测设备)已经成为了一种重要的技术装备。它能够实时监测电力系统的运行状态&#xff0c;及时发现并预警故障&#…

VI / VIM的使用

vi/vim 的区别简单点来说&#xff0c;它们都是多模式编辑器&#xff0c;不同的是 vim 是 vi 的升级版本&#xff0c;它不仅兼容 vi 的所有指令&#xff0c;而且 还有一些新的特性在里面。例如语法加亮&#xff0c;可视化操作不仅可以在终端运行&#xff0c;也可以运行于 x win…