赞
踩
Linux 是什么?Linux 是一款叫做操作系统的软件。
操作系统这款软件有什么样的意义呢?简单来说,比如有顾客买了一台笔记本电脑,这台笔记本电脑由电脑硬件组成,在这堆硬件上一定搭载了一款操作系统。正因为操作系统存在,才有一个行为——开机,如果就笔记本电脑仅仅只有硬件,就不存在所谓的开机行为。所以操作系统可以说是计算机世界的一个基础。当下,操作系统不仅在笔记本电脑中存在(例如windows),也在手机中存在的(例如安卓或者是 ios)。
要认识一件事物,尤其是一件陌生的事物,离不开对事物始末的了解,这样才能更清楚的认识它。本篇博客整理了Linux的相关历史,结合少量的Linux指令,旨在让读者进一步认识Linux,对计算机世界有更宽泛的了解。
目录
在1946年2月14日的情人节,美国发布了世界第一台通用计算机(也是世界第二台电子计算机)——埃尼阿克(ENIAC)。这款计算机,主要用于军事,用于计算导弹轨迹等。但早期的硬件电路和集成电路的集成度较低,埃尼阿克的体积非常巨大,操作成本很高。
埃尼阿克发布的时间点——1946年2月14日在历史上十分特别。彼时,国际上的主要矛盾变成了美苏冷战。国家和国家之间的竞争,会促使技术的不断突破,例如航天领域的阿波罗登月计划、军械领域的核武器等等。作为军事设备,埃尼阿克也急迫地渴望迭代更新,于是,计算机小型化,也在紧锣密鼓地进行着。
摩尔定律为计算机小型化提供了理论依据。摩尔定律是指,一个集成电路的集成度每15个月或者18个月会增加一倍,性能也会增加一倍。而集成度每隔多长时间增加一倍,这件事本身不重要,重要的是集成度一旦增加一倍,变得越来越高,就可以在以往相同体积的情况下获得比以往更高的算力。
早期,政府单位在技术领域上并不擅长,但为了推动技术进步,政府选择了与研究机构和高校合作。战争往往不计成本,军事上的技术研究往往能获得政府的大量资源支持。政府投入源源不断的资源,不仅仅要推动一项技术的发展,还要推动全方位的各种各样的技术发展,所以政府方面往往要求这项技术是可持续发展的。比方说,当下需要更好的无线电技术支援情报工作,就得给负责无线电技术的团队提供资金;当下需要升级坦克的武装力量,就得给负责坦克的团队提供资金,当下要研究计算机,就计算机团队提供资金......现在资金都花掉了,技术团队都得到了充分的资助,可政府的钱越来越少了,接下来要怎么给新增的项目提供资金呢?
上个世纪,美国商人陆续发现了政府的这个需求。当研究机构和高校研究出了各种技术,有新的发明专利,有新的技术,就有商人就开始出售这些新专利和新技术,最著名的例如乔布斯、比尔盖茨等。而政府通过税收的方式,来进行资金的回流,继续支持技术的发展。
商人、技术人员和政府之间联合起来,孵化出一批一批新的产品。随着技术的不断发展和需求的不断扩大,这些产品不再像从前只提供给政府,也渐渐面向了平民。例如苹果公司,做出了它们的第一代桌面级计算机,彼时标价一万美金。上个世纪六七十年代的一万美金,相当于现在的上千万美金,尽管这个标价十分高昂,非普通人所能担负,但它标志着技术发展的又一个突破,也预示着普通人能够消费的计算机会在未来某一天问世。
像商人、技术人员和政府之间这样一种不断推动科学技术发展的循环模式,被称为硅谷模式。而小型计算机和操作系统,就在这个模式之下陆续问世了。
随着芯片的集成度越来越高,计算机也越来越小型化。但彼时的计算机,即便再怎么小型化也难以使用。
为了将计算机硬件技术进行商业化,有一家IBM的公司,孵化出了给企业使用的计算机产品,上面搭载了一款名为unix的操作系统。研究机构和高校,也可以简单理解成企业,在从事相关业务和完成相关工作。计算机本来就可以计算数据,研究机构和高校的各种实验室需要做各种实验,正好为计算机提供了用武之地。早期的IBM看中了这个市场,打造了各种各样的硬件产品(其实九十年代的时候,IBM也有自己的个人电脑业务——thinkpad,但这个品牌后来被联想收购了)。
彼时还有一家公司既有硬件业务,也有软件业务。这家公司叫做苹果,它自研了一款名为macOS的操作系统。苹果与IBM的理念不同,IBM认为计算机将来只能是那些有足够财力的企业来使用,而苹果认为个人计算机是一个未来趋势。苹果的电脑刚开始出来的时候虽然价格很贵,但产品做得很好,也卖得很好,有不少人会买来尝鲜。
还有一家公司主要做软件,叫微软。说是主要做软件,其实微软主要做的是windows操作系统。但微软比较担心,既有硬件也有软件的苹果发展得太好,万一苹果的电脑在将来卖得特别特别好,而苹果的电脑上又不搭载它的操作系统(因为苹果自己也做软件,也做操作系统),那它的市场份额很可能会越来越少。
于是为了跟苹果对抗,微软就找了一个合伙人,而这个合伙人就是IBM。但IBM和微软还没过完蜜月期啊,两家公司就因为啊理念不符而分道扬镳了。IBM认为电脑的造价很高,将来只能是那些有足够财力的企业来使用,普通人根本别想用得起;但微软不那么认为,而且在微软公司内部一直流传着一个口号“一定会将来在每一个人的桌面上放着,上面搭载的是 windows 操作系统”。
后来,微软又找了一个合伙人,这个合伙人叫英特尔,是一家做芯片的公司。微软和英特尔,虽然把握着计算机最核心的两种技术,但它们的业务本身不涉及组成计算机的其他部件,于是它们又拉来了一大批电脑的制造商和组装商,例如联想、戴尔等。至此,提供操作系统的微软,提供芯片的英特尔,再加之电脑的制造商和组装商,终于使不带有苹果logo的电脑问世了。
尽管这样生产出来的一台电脑生产成本更低、标价比苹果电脑更亲民,性价比很高,但它的品控却很难做。这是因为这样一台“大杂烩”电脑得由不同的公司负责,尽管每一家公司都能专注做自己擅长的事情(这样很容易控制成本),但最后要把各自负责的业务模块合起来,品控就难办了。不过,也因为苹果电脑的质量高的同时价格昂贵,这种性价比电脑有了不错的市场空间。
这也促成了当今笔记本电脑和台式电脑的市场格局。现在的电脑只要装的是windows操作系统,那它搭载的一定是英特尔的cpu。IBM呢,逐渐没落,现在虽然算不上很差但也算不上很好。而苹果呢,因为产品做得很好,成为了全球市值最高的公司。
彼时,苹果电脑搭载了苹果自研的操作系统macOS,微软有自研的操作系统windows同时也找到了合作伙伴。而IBM的一体机搭载了一款收费的操作系统unix,并将自己的一体机提供给企业作服务器,或捐赠给研究机构和高校辅助其研究科学技术。
上个世纪九十年代,一名赫尔辛基大学的学生林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds),在使用过搭载unix操作系统的电脑后突发奇想——开发一款免费操作系统可以免费让大家来用。他花了一段时间,独自一人写了一款代码量1.1万行左右的操作系统,取名为Linux(linux is not unix),并在1991年10月5日免费公开了Linux的源代码(这种行为叫做开源。但开源并不一定是免费的)。
Linux操作系统重要的特征就是开源。在Linux被林纳斯开源之后,越来越多的人参与到了Linux的完善工作中,很多顶级的黑客和出色的工程师,以及操作系统的编写者逐渐参与到这个项目中来,使Linux操作系统变得越来越大啊。截至目前,Linux的源代码的代码量有大概6000到8000万行左右了(Linux官网:The Linux Kernel Archives)。
Linux的基本特征:稳定、安全、快速、成本低。
操作系统是一款具有软硬件管理功能的软件,对下,它可以管理好软硬件资源,对上,它可以为用户提供良好的使用环境。一个操作系统是良好的,这一点的衡量指标应该是:稳定、快速、安全。
用户在计算机上的所有软件行为都会通过操作系统转化为硬件行为。所有软件,都自顶向下贯穿计算机的软硬件结构。换句话说,几乎所有的软件行为,都和操作系统有直接或间接的关系。
常见的操作系统有:
GNU通用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是一个广泛被使用的自由软 件许可协议条款,最初由理查德斯托曼为GNU计划而撰写,GPL给予了计算机程序自由软件的定义, 任何基于GPL软件开发衍生的产品在发布时必须采用GPL许可证方式,且必须公开源代码。
Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统飞速发展,各种集成 在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词。
但注意,开源并不一定免费,开源的代码经过再次商业化即为付费版本。
搭建Linux环境的常见方式有:虚拟机、云服务器、双系统。
这里推荐云服务器 + xshell(远程登录云服务器的软件)的方式。这种方式搭建Linux环境较为简单方便,同时,部署在云服务器上的项目可以直接被外网访问,这和公司实际的业务场景较为接近。
市面上的服务器厂商有很多,如阿里云、腾讯云、华为云等。这里以腾讯云为例:
1. 进入官方网站学生云服务器_学生云主机_学生云数据库_云+校园特惠套餐 - 腾讯云
(有的优惠套餐学生党可以免费白嫖,可以试用几个月,也可以拼单凑伙使用,大家按自己的需要来~)
2.登录后点击购买,镜像一栏选择 CentOS 7.6(64位)
3.购买完成后, 可以在控制台中找到自己买的服务器,点进去能够看到服务器的 IP 地址
(蓝色方框为公网 ip 地址, 登陆服务器会用到它 )
4.设置 root 密码: 勾选服务器, 点击重置密码(这个环节可能需要手机短信验证). root 密码建议设置的稍微复杂一 些, 否则容易被黑客入侵.
1.启动xhell
2.新建会话窗口
3.登录
(首次连接会弹窗,提示用户接收密钥,点击接受即可。当第一次登陆时没有其他用户,只有超级用户root,它是有最高权限的管理员。可以直接用xshell的窗口选项来登录,也可以输入Linux指令来登录)
(输入Linux指令登录,详见下文)
Linux操作系统又被称之为“核心(kernel)” 。但一般的用户,不能直接使用kernel,而要通过kernel的“外壳”程序——命令行解释器shell,来与 kernel 沟通。这是因为 kernel 对于一般的用户来说太过复杂,且不让用户直接使用 kernel 而提供 shell 给用户,也进一步保障了操作系统的安全性。从技术的角度,shell 能将用户的指令翻译给 kernel 处理。 同时,将kernel 的处理结果翻译给使用者。
对比windows GUI,我们操作windows 也不是直接操作windows内核,而是通过点击图形接口,从而达到操作的目的(例如要进入D盘,一般通过直接双击D盘盘符,或者通过一个应用程序)。shell 对于Linux,也是类似的作用,主要是对我们的指令进行解析,解析指令给 kernel。反馈结果在通过内核运 行出结果,通过shell解析给用户。
Linux操作系统都采用纯命令行的方式进行操作,虽然也有图形化界面,但是一般不用。这是因为无论图形还是指令,本质其实都是一样的,而指令操作更贴近操作系统。
所以说,Linux指令是 Linux操作系统中的基本操作,而它们是在命令行上运行的程序或实用程序。命令行是一个界面,它接受文本行并将其处理为计算机的指令。通俗来讲,我们所输入的指令就是一个可执行程序,当用户要运行一条指令时,系统会在相应文件下找相应的指令,然后再执行它。这个过程就相当于执行了一个可执行程序,同时也意味着,所有的指令操作都与文件相关,换句话说,Linux下,一切皆文件。
Linux中的文件基本分为两种:目录文件和普通文件,其中,目录文件相当于Windows中的文件夹,普通文件就相当于Windows中的普通文件。一个文件包含了文件内容和文件属性,其中,文件属性跟文件内容一样,也是数据,也需要存储。这就决定了,指令本质就是对文件内容的操作或对文件属性的操作。
语法:ssh + 用户名 + @ + 域名
上图的演示登录的是超级用户root(拥有最高的管理员权限),不同用户可以通过超级用户root来创建,域名用的是小编的云服务器。 ssh指令后别忘了要加空格。
语法:whoami
adduser可以创建一个普通用户的账号,这个账号会以目录文件的形式存放在家目录“home”中。
语法:addsuer + 用户名
语法:passwd + 用户名
语法:userdel + (选项) + 用户名
但“userdel + 用户名”只删除了用户。
【补】选项:
mkdir(make director)可以在当前目录下创建一个新的目录。
语法:mkdir + (选项) + 新目录名
【补】选项 :
touch 可更改文件或目录的日期时间,包括存取时间和更改时间,也可以新建一个原本不存在的文件。
语法:touch + (选项) + 新文件名(具体到格式)
【补】选项 :
pwd(print working director)可以显示用户当前所在的目录。
语法:pwd
tree可以显示目录结构,也可以显示目录(文件夹)和文件的数量。
(注:tree这条指令需要先用“yum install -y tree”下载)
语法:tree + (选项)
【补】选项:
(ps:上图的演示是接上文的指令操作后的。上文的演示已经创建了两个空目录dir1、dir2和两个文件test.txt、test.c)
Linux系统中,磁盘上的目录文件和普通文件被组成一棵目录树,树中的每个节点都是目录文件或普通文件。
由于一个目录里可以再放别的目录和文件,因此整个目录结构一定是一棵多叉树。这棵多叉树的每个叶子节点一定是空目录或普通文件,每条路径上的节点一定是一个非空目录;特别的,树的根节点是根目录“/”,根目录下的家目录“home”里存放了普通用户账号(也是目录文件)。而用户对目录文件和普通文件的增删查改,本质都是对这颗多叉树的增删查改。
对于目录,ls(list)会列出当前目录下的所有子目录与文件;而对于文件,将列出文件名以及其他信息。
语法:ls +(选项)
【补】选项:
cd(change directory)可以改变工作目录,将当前工作目录改变到指定的目录下(即访问某个目录)。
语法:cd + (选项)
【补】选项:
Linux的任何一个目录下都有两个隐藏文件:. 和 .. ;. 表示当前路径,.. 表示当前路径的上一级路径,它们存在的意义是,帮助用户定位当前目录下的一个文件。
要定位一个文件,通常以路径的方式。这是因为路径定位具有唯一性,任何一个节点可能有多个子节点,但是一个节点至多只有一个父节点,尽管从根节点到某一叶子节点的路径可能有多种,但是从这个叶子节点往根节点回推,路径是唯一的。
路径分为绝对路径和相对路径。
在固定场景中(例如配置文件)推荐使用绝对路径;一般命令行的输入,推荐使用相对路径
rmdir(remove director)只能删除空目录。
语法:rmdir + 空目录名
rm(remove)可以删除非空的目录,也可以删除普通文件。
语法:rm + (选项)
【补】选项:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。