第1章 介绍

1

介绍

目标

阅读本章后,您将能够

          定义Linux的价值主张

          描述至少四个使Linux成为理想操作系统的属性

          定义免费一词在开源软件中的含义

          陈述Linux真相及其含义

          描述软件源如何开放,使的工作系统管理员更容易

          列出典型SysAdmin中发现的一些特征

          描述整个课程中使用的实验结构

          列出两种可用于访问Linux命令行的终端环境

关于Linux

任何软件的价值在于其实用性,而不在于其价格。

-利纳斯·托瓦尔兹[1]

1章简介        

Linux的创建者Linus Torvalds的前面引文[2]完美地描述了免费开源软件(FOSS)的价值主张,尤其是Linux。性能不佳或无法满足用户需求的昂贵软件绝对不值钱。另一方面,满足用户需求的免费软件对那些用户而言具有巨大的价值。

大多数开源软件[3]属于后一类。数以百万计的人认为这是一种非常有用的软件,这就是它所具有的巨大价值。在使用Linux20多年中,我亲自下载并仅使用了一个专有软件应用程序。

Linux本身是一个完整,开源的操作系统,具有开放性,灵活性,稳定性,可扩展性和安全性。像所有操作系统一样,它在计算机硬件和在其上运行的应用程序软件之间提供了桥梁。它还提供了系统管理员SysAdmin可以用来监视和管理以下内容的工具:

1.      操作系统本身的功能和特性

2.      生产力软件,如文字处理器;电子表格;财务,科学,工业和学术软件;以及更多

3.      基础硬件,例如温度和运行状态

4.      软件更新以修复错误

5.      升级以从操作系统的一个发行版升级到更高的发行版

系统管理员需要执行的任务与操作系统的理念是分不开的,无论是执行任务的工具,还是SysAdmin在执行这些任务时所享有的自由。让我们非常简要地了解一下LinuxWindows的起源,并探讨一下其创建者的思想如何影响SysAdmin的工作。

                                                                                                                                               1章简介        

 Windows的诞生

专有的DEC VAX / VMS [4]操作系统是由订阅了封闭式哲学的开发人员设计的。也就是说,应该保护用户不受系统内部变种的影响[5],因为用户害怕计算机。

编写DEC VAX / VMS操作系统的Dave Cutler [6]还是Windows NT(所有当前形式的Windows的母版)的首席架构师。卡特勒是由Microsoft聘请DEC离开的,其具体意图是让他编写Windows NT。作为与微软达成交易的一部分,他被允许将DEC的许多顶级工程师带到他身边。因此,不足为奇的是,当今的Windows版本却与Windows NT相去甚远,而仍然隐藏在这种保密的面纱之后。

 黑匣子综合症

让我们看看专有软件对试图修复它的人意味着什么。我将使用一个简单的黑匣子示例来代表一些假设的已编译专有软件。该软件由一家假设的公司编写,该公司希望将源代码保密,以防止其所谓的商业秘密被盗。

作为该假设专有软件的假设用户,我不知道在我可以访问的已编译机器语言代码中发生了什么。该限制的一部分是合同规定的(请注意,我并不是说合法)在许可协议中,该协议禁止我对机器代码进行逆向工程以产生源代码。该假设代码的唯一功能是,如果输入的数字为17或更少,则打印,如果输入的数字大于17,则打印。此结果可用于确定我的客户是否收到订单折扣。 17个单位或更多。

在数周//年的时间内使用该软件,一切似乎都很正常,直到我的一位客户抱怨他们应该获得折扣但没有收到折扣。

1章简介        

简单测试输入数字从016会产生正确的输出。测试数字从18到更高会产生正确的输出。测试数字17会导致输出错误的。为什么?我们无法知道原因!该程序在恰好为17的极端情况下失败。我可以推测代码中的逻辑比较不正确,但是我无法知道,而且无法访问源代码,我既无法验证也无法自行修复。

因此,我将此问题报告给了购买该软件的供应商。他们告诉我他们将在下一个版本中对其进行修复。那会是什么时候?我问。他们回答说:大约六个月左右。

现在,我必须派我的一名工人来检查每笔销售的结果,以验证客户是否应获得折扣。如果他们愿意,我们会指派其他人削减退款支票,并将其连同解释情况的信函一起发送。

几个月后,供应商没有对修补程序进行任何工作,我打电话来尝试确定修补程序的状态。他们告诉我他们决定不解决问题,因为我是唯一有问题的人。意思是对不起,您没有花足够的钱来保证我们解决问题。他们还告诉我,新的所有者,即收购了我购买软件的公司的风险投资公司,无论如何将不再销售或支持该软件。

我剩下的将是永远无法修复且无法修复自己的无用(少于无用)软件。如果购买此软件的其他任何人都遇到此问题,也无法修复它。

因为它是完全封闭的,并且存在它的密封盒是无法穿透的,所以专有软件是不可知的。Windows就是这样。甚至大多数Windows支持人员都不知道其内部如何工作。这就是为什么解决Windows问题最常见的建议是重新启动计算机-因为不可能推断出任何封闭,未知的系统。

Windows这样的操作系统可以使用户免受其拥有的功能的影响,是基于以下基本假设而开发的:用户没有足够的智能或知识,因此无法真正获得计算机可以提供的全部功能。这些操作系统是限制性的,并具有命令行和图形用户界面,这些界面通过设计来强制执行这些限制。这些限制性用户界面迫使普通用户和SysAdmins 都进入没有窗户的封闭房间,然后关上门并三重锁定。这个封闭的空间使他们无法执行Linux可以完成的许多聪明的事情。

                                                                                                                                               1章简介        

这种限制操作系统的命令行界面提供了相对较少的命令,从而对任何人可能参与的可能活动提供了实际限制。一些用户觉得这很舒适。我不会,显然也不会从您正在阅读这本书的事实来判断。

 Linux的诞生

这个故事的简短版本是由Ken Thompson [7]Dennis Ritchie [8]领导的Unix开发人员将Unix设计为对他们有意义的开放性和可访问性。他们创建了规则,准则和程序方法,然后将它们设计到操作系统的结构中。这对于系统开发人员来说非常有效,并且至少在某种程度上也对SysAdmins (系统管理员)有效。来自Unix操作系统创建者的那套指导集在Mike Gancarz的出色著作 Unix哲学》中得以整理,后来由Mr.

Gancarz作为LinuxUnix 哲学[9]

另一个优秀的书,艺术的Unix 编程[10]通过埃里克雷蒙,提供了作者在Unix环境编程的哲学观。由于作者的经历和回忆,它还是Unix发展的历史。

这本书也可以在互联网上免费获得。[11]

1991年,在芬兰首都赫尔辛基,Linus Torvalds的使用采取计算机科学课程的Minix[12]的一个微小变异的Unix被写入由Andrew S.Tanenbaum[13] TorvaldsMinix不满意,因为它有很多缺陷,至少对他而言。因此,他编写了自己的操作系统,并在Internet上共享了该事实和代码。这个小小的操作系统起初是一种业余爱好,后来被人们称为Linux,以向其创建者致敬,并根据GNU GPL 2开源许可证进行了分发。[14]

 

Wikipedia Digital Ocean一样,都拥有Linux的良好历史[15][16]有关更个人的历史,请阅读Linus Torvalds自己的书《只是为了好玩[17]》

 开箱

让我们想象一下与上一个示例相同的软件,但是这次是由一家开源的公司编写的,并提供了我想要的源代码。发生相同的情况。在这种情况下,我报告了问题,他们回答说,没有其他人遇到过这个问题,他们会调查一下,但不希望很快解决。

所以我下载了源代码。我立即看到了问题,并为此写了一个快速补丁。我在我自己的客户交易的一些示例上测试了补丁程序(当然是在测试环境中),并找到了表明问题已解决的结果。我将补丁以及基本测试结果提交给他们。他们告诉我这很酷,将补丁插入自己的代码库中,通过测试运行它,然后确定修复程序有效。那时,他们将修改后的代码添加到其代码库的主干中,一切都很好。

当然,如果他们被买断或以其他方式变得无法或不愿维护软件,结果将是相同的。我仍将拥有开源代码,对其进行修复,并将其提供给接管开源产品开发的任何人。这种情况已经发生了不止一次。在一个实例中,我从拉脱维亚的一位开发人员那里接手了一些Shell脚本代码的开发,该开发人员不再有时间对其进行维护,并且我将其维护了几年。

在另一个实例中,一家大公司购买了一家名为StarOffice的软件公司,该公司以OpenOffice.org的名义开源了其办公套件。后来,一家大型计算机公司购买了OpenOffice.org。新组织决定从现有代码开始创建自己的软件版本。事实证明这是一个失败。大部分开放源代码版本的开发人员都迁移到了一个新的开放组织,该组织维护重新发行的软件,现在称为LibreOffice

LibreOffice蓬勃发展的同时,OpenOffice现在陷入困境,开发人员很少。

开源软件的优点之一是源代码始终可用。

任何开发人员都可以接管并维护它。即使是个人或组织

                                                                                                                                               1章简介        

试图接管它并使其专有,但他们不能这样做,原始代码在那里,可以被任何开发人员或组织分叉到新的但相同的产品中。就LibreOffice而言,全球有成千上万的人在需要时提供新的代码和修复程序。

使源代码可用是开源的主要优势之一,因为任何有技能的人都可以查看并修复它,然后将该修复程序提供给该软件周围的其他社区。

§§§

在开放源代码软件的上下文中,术语开放是指源代码不受限制地可供所有人免费查看和检查。具有适当技能的任何人均具有法律许可,可以更改代码以增强其功能或修复错误。

在撰写本文时,对于201863日最新版本的Linux内核4.17版本,来自全球不同组织的1,700多名开发人员为内核代码贡献了13,500项更改。甚至不考虑对Linux操作系统的其他核心组件(例如核心实用程序)或什至是主要软件应用程序(例如LibreOffice)的更改,LibreOffice是我用来写书和文章以及电子表格,工程图的强大办公套件。 ,演示文稿等。LibreOffice之类的项目拥有数百名自己的开发人员。

这种开放性使SysAdmins以及其他所有人员可以轻松地探究操作系统的各个方面,并充分了解其任何或全部工作方式。这意味着有可能在一个系统的推理过程中运用Linux的全部知识来使用其强大而开放的工具,从而可以利用它来解决问题。

 Linux真相

Unix并非旨在阻止其用户执行愚蠢的事情,因为这也将阻止他们执行聪明的事情。

-道格·格温

这句话总结了UnixLinux 的压倒一切的真相和理念-操作系统必须信任用户。只有通过扩展这种完全的信任度,用户才能访问操作系统提供的全部功能。这个事实适用于Linux,因为它作为Unix的直接后代而继承。

Linux Truth产生了一个对用户(尤其是root [18]用户)可以执行的操作没有任何限制的操作系统。超级用户可以在Linux计算机上执行任何操作。root用户没有任何类型的限制。尽管root用户的路径上很少有管理上的障碍,但是root总是可以消除这些细微的障碍,并可以做各种愚蠢而聪明的事情。

root用户对其有一些限制,但他们仍然可以做很多聪明的事情。对非root用户的主要限制旨在(主要是)防止他们从事妨碍他人自由使用Linux主机的行为。这些限制绝不会阻止普通用户对其自己的用户帐户造成重大伤害。

即使是最有经验的用户,也可以使用Linux进行愚蠢的事情。我的经验是,通过公开访问操作系统的全部功能,可以使从我自己如此罕见的愚蠢中恢复变得容易得多。我发现大多数情况下,即使没有重新启动,一些命令也可以解决问题。在某些情况下,我不得不切换到较低的运行级别解决问题。我只需要很少地启动到恢复模式就可以编辑配置文件,但我设法损坏了它,以至于造成了严重的问题,包括启动失败。它需要了解Linux的基本原理,结构和技术,才能充分释放其功能,尤其是在出现问题时。Linux的只是需要一点点的理解和对部分知识的系统管理员,充分释放其潜力。

知识

任何人都可以记住或学习命令和程序,但死记硬背并不是真正的知识。如果没有这种哲学的知识以及如何在Linux的优雅结构和实现中体现出这种知识,就不可能将正确的命令用作解决复杂问题的工具。我看到对Linux有广泛了解的聪明人无法解决一个相对简单的问题,因为他们没有意识到表面下结构的优雅。

作为SysAdmin,我在许多工作中的一部分职责是协助雇用新员工。我参加了许多通过Microsoft认证并拥有良好履历的人员的技术面试。我也参加了

 

我们在许多面试中寻找Linux技能,但是很少有申请人获得认证。当时Microsoft认证是一件大事,但是在Linux早期的数据中心中,很少有申请人获得认证。

我们通常在开始这些面试时会提出旨在确定申请人知识极限的问题。然后,我们将进入更有趣的问题,这些问题将测试他们通过问题进行推理以找到解决方案的能力。我注意到了一些非常有趣的结果。很少有Windows证书所有者可以对我们介绍的方案进行推理,而具有Linux背景的很大一部分申请人都可以这样做。

我认为该结果部分归因于以下事实:获得Windows证书依赖于记忆,而不是实际的动手经验,再加上Windows是一个封闭的系统,这使SysAdmins无法真正理解其工作原理。我认为Linux申请人的表现要好得多,因为Linux在多个级别上都是开放的,因此可以使用逻辑和原因来识别和解决任何问题。任何使用Linux已有一段时间的SysAdmin都必须学习Linux的体系结构,并且在应用知识,逻辑和解决问题的原因方面拥有丰富的经验。

灵活性

在我看来,灵活性意味着能够在任何平台上运行,而不仅仅是IntelAMD处理器。可伸缩性与功率有关,而灵活性与在许多处理器体系结构上运行有关。

Wikipedia列出了Linux支持的CPU体系结构,[19]列表很长。根据我的自动计算,目前已知有超过100CPU体系结构可以运行Linux。请注意,此列表会更改,并且会从列表中添加和删除CPU。但是,人们很清楚Linux将在许多架构上运行。如果Linux当前不支持您的体系结构,则可以通过一些工作将其重新编译以在任何64位系统和某些32位系统上运行。

这种广泛的硬件支持意味着Linux可以在我的Raspberry Pi 20,我的电视,汽车娱乐系统,手机,DVR,国际空间站[20]ISS)上的计算机上运行。地球上所有500台最快的超级计算机[21]等等。单个操作系统几乎可以运行任何厂商的最小到最大的任何计算设备。

稳定性

当该术语由不同的人应用于Linux时,稳定性可能具有多种含义。我对适用于Linux的术语的定义是,它可以运行数周或数月而不会崩溃或引起问题,这使我担心我正在从事的任何重要项目可能会丢失数据。

当今的Linux可以轻松满足这一要求。在任何给定时间,我总是有几台运行Linux的计算机,从这个意义上讲,它们都是坚如磐石。他们没有中断地运行。我有工作站,服务器,防火墙以及一些用于测试的工具,它们都可以运行。

这并不是说Linux从来没有任何问题。没有什么是完美的。这些问题中的许多是由于我自己对一个或多个功能的错误配置引起的,而一些是由于我使用的某些软件的问题引起的。有时一个软件应用程序将崩溃,但这很少见,通常与我在KDE桌面上遇到的问题有关。

如果您阅读我的个人技术网站,您就会知道多年来我在KDE GUI桌面上遇到了一些问题,并且它有两个重要的不稳定时期。在许多年前的大约Fedora 10时代,KDE正在从KDE 3过渡到提供许多有趣功能的KDE Plasma 4桌面。在这种情况下,我使用的大多数特定于KDE的应用程序尚未针对新的桌面环境进行完全重写,因此缺少必需的功能,否则可能会崩溃。在第二个(最新的且仍在进行中)实例期间,桌面只会锁定,崩溃或无法正常工作。

在这两种情况下,我都可以使用其他桌面在完全稳定的环境中完成工作。在第一种情况下,我使用Cinnamon桌面,而在最近的情况下,我在使用LXDE桌面。但是,底层软件,内核和运行在表面之下的程序它们都可以继续正常运行。因此,这是第二层稳定性。如果一件事崩溃了,即使是台式机崩溃了,底层的东西也会继续运行。

公平地说,KDE正在改进,并且这一轮中的许多问题已得到解决。我从未丢失任何数据,但确实浪费了一些时间。尽管我仍然喜欢KDE,但是LXDE桌面是我当前的最爱,我也喜欢Xfce桌面。

可扩展性

可伸缩性对于任何软件,尤其是操作系统而言,都极为重要。从手表,电话(Android)到笔记本电脑,功能强大的工作站,服务器,甚至是地球上功能最强大的超级计算机,运行相同的操作系统,对于网络管理员或IT经理而言,都可以使工作变得更加简单。Linux是当今地球上唯一可以提供这种级别的可伸缩性的操作系统。

201711月以来,Linux为世界上所有最快的超级计算机提供了动力。[22]通过撰写本文,截至20197月,全球前500名超级计算机中的100%,100%(全部)运行一种或另一种形式的Linux,并且预计这种情况还将继续。通常有专门为超级计算机设计的Linux发行版。Linux还为小得多的设备提供动力,例如Android手机和Raspberry Pi单板计算机。超级计算机非常快,可以同时执行许多不同的计算。但是,单个用户访问超级计算机的全部资源是非常不寻常的。许多用户共享这些资源,每个用户执行自己的一组复杂计算。

Linux可以在最小到最大的任何计算机上运行,​​介于两者之间。

安全

在学习这些课程时,我们将谈论很多有关安全性的问题。在当今不断受到Internet攻击的今天,安全性是至关重要的考虑因素。如果您也认为他们不追随您,那么让我告诉您他们是否也在追随您。您的计算机每天每一小时都受到不断的攻击。

大多数Linux发行版从安装开始就非常安全。提供了许多工具,既可以确保需要的地方的严格安全性,也可以允许

 

1章简介        

访问计算机。例如,您可能希望允许从数量有限的远程主机进行SSH访问,从世界上任何地方访问Web服务器以及将电子邮件从任何地方发送到Linux主机。但是,您可能还希望(至少暂时地)阻止试图强行闯入的黑帽黑客的访问尝试。其他安全措施为您的个人文件提供了保护,使其免受同一主机上的其他用户的侵害,同时仍允许您共享共享文件的机制。您与他人一起选择。

我们将在这些课程中讨论的许多安全机制都是从Linux诞生之初就开始设计和构建的。Linux的体系结构是从头开始设计的,就像它的祖先Unix一样,提供了安全机制,可以保护文件和正在运行的进程免受内部和外部来源的恶意干预。Linux安全性不是附加功能,它是Linux不可或缺的一部分。因此,我们与安全有关的大多数讨论都将作为整本书不可或缺的一部分。有一章关于安全性,但是它旨在涵盖其他地方未涵盖的一些内容。

 自由

当应用于自由开源软件时,自由具有完全不同的含义。

FOSS)比大多数其他情况下的效果好。在FOSS中,自由是自由使用软件做我想做的事情。这意味着我可以轻松访问源代码,并且可以对代码进行更改,并在需要或愿意时重新编译。

自由意味着我可以下载Fedora LinuxFirefoxLibreOffice的副本,然后将其安装在任意数量的计算机上。这意味着我可以通过向朋友提供副本或将其安装在属于我的客户(可执行文件和源代码)的计算机上来共享下载的代码。

自由还意味着我们无需担心执照警察出现在我们家门口,并要求巨额资金以使其合规。在某些公司过度安装了他们可用于操作系统或办公套件的许可证数量时,便发生了这种情况。这意味着我不必输入很长的密钥即可解锁购买或下载的软件。

 我们的软件权利

下载开源软件时,我们所拥有的开源软件自由权应属于我们获得的许可的一部分。开源软件的定义[23]可在开源倡议网站上找到。该定义描述了使用开源软件所包含的自由和责任。

问题是有许多许可证声称是开源的。有些是,有些不是。为了成为真正的开源软件,许可证必须满足此定义中指定的要求。该定义不是许可-它指定了将许可附带的软件在法律上视为开放源代码时任何许可必须遵循的条款。如果许可证中不存在任何定义的术语,则其所指的软件不是真正的开源软件。

本书中使用的所有软件都是开源软件。

尽管它很重要,但我并未在其中包括该定义,因为它并不是本书的重点,而实际上并不是本书的重点。您可以访问先前引用的网站,也可以在我的《SysAdminsLinux哲学》一书中阅读有关该网站的更多信息。[24]我强烈建议您至少访问该网站并阅读定义,以便更全面地了解真正的开源和拥有的权利。

我也喜欢Opensource.com上对Linux的描述,[25]以及一长串其他开源资源。[26]

长寿

长寿一个有趣的词。我在这里使用它来帮助澄清我听到很多人发表的一些言论。这些声明通常遵循“ Linux可以延长现有硬件的寿命将旧硬件保留在垃圾填埋场或不受监控的回收设施中的思路。

这样做的想法是,您可以更长久地使用旧计算机,这样做可以延长计算机的使用寿命,并减少您一生中需要购买的计算机数量。这既减少了对新计算机的需求,又减少了废弃的旧计算机的数量。

Linux可以防止因支持升级所需的更多和更快的硬件的持续需求而持续实施计划中的淘汰。这意味着我不需要添加更多RAM或硬盘驱动器空间即可升级到最新版本的操作系统。

1章简介        

长寿的另一个方面是开放源代码软件,它以开放且有据可查的格式存储数据。我十年前编写的文档仍然可以被当时使用的同一软件的当前版本读取,例如LibreOffice及其前身OpenOfficeStar Office之前的版本。我永远不必担心软件升级会将我的旧文件释放到位存储桶中。

 保持硬件相关

举例来说,直到最近去世,我才有一台旧的Lenovo ThinkPad W500(我于20065月购买)。与今天的许多笔记本电脑相比,它既旧又笨重,但我非常喜欢,这是我唯一的笔记本电脑。在大多数旅行中,我都随身携带它,并将其用于培训。它在Intel Core 2 Duo 2.8GHz处理器,8GB RAM300GB硬盘中具有足够的功能,以支持Fedora运行几个虚拟机,并成为教室网络和Internet之间的路由器和防火墙,以连接到投影仪展示我的幻灯片,并用来演示Linux命令的用法。  我在它上使用了Fedora 28,这是最新的。考虑到这台笔记本电脑,我亲切地称为vgr,已经有12年以上历史了,这真是太了不起了。

ThinkPad201810月因多个硬件问题而死亡,我将其替换为具有32GB RAM System76 [27] Oryx Pro,具有6核(12CPU线程)和2TB SSD存储的Intel i7。我希望这款新笔记本电脑至少能提供十年的服务。

然后是我的原始EeePC 900上网本,配备1.8 GHzIntel Atom CPU2GRAM8GBSDD。它在Fedora 28上运行Fedora已有十年,直到它也开始出现硬件问题。

Linux绝对可以使旧硬件保持有用。我有几个旧的台式机工作站,它们对Linux仍然有用。尽管没有一个像vgr一样古老,但  我至少有一个工作站配备了2008年的Intel主板,一个工作站是2010年,至少三个是2012年。

抵制恶意软件

我可以使旧硬件保持更长的运行时间的另一个原因是Linux对恶意软件感染具有很强的抵抗力。它不能完全免受恶意软件的侵害,但是我的系统从未感染过。即使是连接到我无法控制的各种有线和无线网络的笔记本电脑也从未受到感染。

没有大量的恶意软件感染导致大多数人的计算机减速到难以忍受的爬行速度,我的Linux系统(所有系统)始终保持最高速度运行。即使在大型商店或大型购物中心的计算机商店进行了多次清洁之后,这种持续的减速仍然使大多数人认为他们的计算机是旧的并且没有用。因此,他们将它们扔掉并购买了另一个。

因此,如果Linux可以使我使用12年的笔记本电脑和其他旧系统保持平稳运行,那么它肯定也可以使其他许多系统也正常运行。

我应该成为 SysAdmin吗?

由于这本书旨在帮助您成为SysAdmin,因此,如果您知道自己可能已经是一个人,是否知道这一事实,或者是否表现出对系统管理的倾向,这将对您很有用。让我们看一下SysAdmin 可能要执行的一些任务以及在SysAdmin中可能发现的一些特质。

Wikipedia [28]将系统管理员定义为负责维护,配置和可靠运行计算机系统(尤其是多用户计算机,例如服务器)的人员。以我的经验,这可以包括计算机和网络硬件,软件。 ,机架和机柜,计算机房或空间等。

典型的SysAdmin 工作可以包含很多任务。在小型企业中,SysAdmin可能负责处理与计算机相关的所有事情。在较大的环境中,多个SysAdmins 可以对保持事物运行所需的所有任务承担责任。在某些情况下,您甚至可能都不知道自己是SysAdmin。您的经理可能只是告诉您开始维护办公室中的一台或多台计算机,这使您无论是否喜欢SysAdmin

还有一个术语“ DevOps”,用于描述以前独立的开发和运营组织的交集。过去,这主要是关于开发与运营之间更紧密的合作,其中包括教导SysAdmins编写代码。现在的重点转移到教程序员如何执行操作任务。[29]至少在一部分时间内,参加SysAdmin任务也会使这些人成为SysAdmins。在思科工作时,我有一个DevOps

1章简介        

工作类型。部分时间我写代码来测试Linux组件,和其余的时间我是一个系统管理员在这些设备进行了测试实验室。那是我职业生涯中非常有趣和有意义的时刻。

我创建了此简短列表,以帮助您确定您是否具有SysAdmin的某些特质。您知道您是SysAdmin,如果...

1.          您认为这本书可能很有趣。

2.          您宁愿花时间学习计算机,也不愿看电视。

3.          您喜欢分解事物以了解其工作原理。

4.          有时当其他人要求您重新组装它们时,这些东西仍然起作用。

5.          人们经常要求您帮助他们使用计算机。

6.          您知道开源的含义。

7.          您记录所有操作。

8.          您发现计算机比大多数人更容易与之交互。

9.          您认为命令行可能很有趣。

10.      您想完全控制自己。

11.      您了解将啤酒中的免费语音中的免费应用于软件时的区别。

12.      您已经安装了计算机。

13.      您曾经修复或升级了自己的计算机。

14.      您已经安装或尝试安装Linux

15.      您有一个Raspberry Pi

16.      由于经常更换组件,因此可以将主机盖从计算机上取下。

17.      ......

你明白了。我可以列出更多的信息,这些信息可能会让您成为SysAdmin的理想人选,但是我敢肯定,您可以想到更多适合您的信息。最重要的是,您很好奇,喜欢探索设备的内部工作原理,想了解事物的工作方式,尤其是计算机,喜欢帮助他人,并且希望控制至少某些技术而不是让它完全控制您,我们在日常生活中遇到的问题。

 关于本课程

如果您问我一个关于如何在Linux中执行某些任务的问题,那么我是Linux专家,他会在回答该问题之前解释Linux的工作方式-至少这 是我给大多数人的印象。我的趋势是解释事物的工作方式,我认为对于SysAdmins来说 ,了解事物为何能按其运作方式以及Linux的体系结构以使其最有效非常重要。

因此,在本课程中,我将详细解释很多事情。在大多数情况下,在没有任何理由的情况下,都不会告诉您键入命令。第章中的准备工作也会有一些解释,但可能不如本书其余部分那么多。如果没有这些解释,则仅会死记硬背使用命令,而这并不是我们大多数人SysAdmin管理员 学得最好的方法。

UNIX非常简单,只需要一个天才就能理解它的简单性。

丹尼斯·里奇[30]

我提供的解释有时会包括历史参考,因为Unix Linux 的历史说明了Linux为什么如此开放以及如何如此易于理解。前面的Ritchie引用也适用于Linux,因为Linux被设计为Unix的一个版本。是的,Linux非常简单。您只需要一点指导和指导,即可向您展示如何自己探索它。这是您将在本课程中学到的部分内容。

Linux的部分简化之处在于它是完全开放且可理解的,并且您可以以非常强大且具有启发性的方式访问其中的任何一个。本课程包含许多实验,旨在探索Linux的体系结构以及向您介绍新命令。

为什么您认为Windows支持(无论从何处获得)总是从重新启动系统开始?因为是封闭系统和封闭系统

1章简介        

不能永远是可知的。因此,解决问题的最简单方法是重新启动系统,而不是深入研究问题,找到根本原因并加以解决。

关于实验

作为动手的SysAdmin,我喜欢尝试命令行以学习新命令,执行任务的新方法以及Linux的工作方式。我为本书设计的大部分实验都是我在自己的探索中进行的,也许做了一些小的改动以适应在使用虚拟机的课程中的使用。

我使用实验一词,是因为它们的目的不仅仅是简单的实验室项目,这些项目旨在盲目地遵循,没有机会让您(学生)跟随自己的好奇心而走到更远的地方。这些实验旨在作为您自己探索的起点。这是为其使用VM的原因之一,这样生产机器就不会受到伤害,您可以安全地尝试激发好奇心的事情。使用VirtualBox等虚拟化软件可以使我们运行标准化硬件的软件实现。它使我们能够在您的硬件计算机上运行一台或多台软件计算机(VM),可以在其中安装任何操作系统。看起来很复杂,但是我们将在本章中创建一个虚拟网络和一个虚拟机(VM)。为实验做准备。

尽管我们有不同的学习方式,但所有SysAdmin都是好奇的,动手的人。我认为对SysAdmins进行实践经验很有帮助。这就是实验的目的提供一个超越理论的机会,并以实际的方式应用您学到的东西。尽管有些实验是为了说明特定点而作的,但仍然有效。

这些启发性的实验不会在每章或本书的结尾处出现,它们很容易被忽略-它们被嵌入文本中,并且是本书流程的组成部分。我建议您在继续阅读本书时进行实验。

每个实验的命令和结果有时会显示在实验部分中,如下所示。有些实验只需要一个命令,因此只有一个实验部分。其他实验可能更复杂,因此分为两个或更多实验。

样品实验

这是一个实验示例。每个实验都会有说明和代码,供您在计算机上输入最终运行结果。

像本段一样,许多实验都会以散文形式提供一系列说明。只需按照说明进行操作,实验就可以正常进行:

1.       一些实验将列出要执行的步骤。

2.       步骤2

3.         ...

您要为实验输入的代码如下所示。实验到此结束。

 

其中一些实验可以非root用户身份执行。这比以root用户身份执行所有操作要安全得多。但是,您将需要成为其中许多实验的基础。这些实验被认为可以安全地用于指定用于培训的VM,例如您将在第章中创建的VM 。无论它们看起来有多好,您都不应在物理或虚拟生产系统上执行任何这些实验。

有时候,我想展示有趣的代码,但是您不应该将其作为实验之一运行。在这种情况下,我将代码和所有支持文本放在“ 代码示例部分中,如下所示。

代码样本

旨在说明一个要点,但您甚至不应该考虑在任何计算机上运行的代码将包含在以下部分中:

echo “这是示例代码,您永远不要运行。

 

 

警告   不要在生产系统上执行本书中介绍的实验。您应该使用为此培训指定的虚拟机。

 

1章简介        

 如果实验不起作用怎么办

这些实验旨在成为独立的,并且不依赖于任何设置,除了USB拇指驱动器或先前执行的实验的结果。必须提供某些Linux实用程序和工具,但是所有这些实用程序和工具都应在标准Fedora Linux工作站安装或任何其他主流通用发行版中可用。因此,所有这些实验都应该起作用。我们都知道进展如何,对吧?因此,当某件事确实失败时,首先要做的就是显而易见的事情。

验证是否正确输入了命令。这是我自己遇到的最常见的问题。

您可能会看到一条错误消息,指出找不到该命令。Bash shell显示了错误的命令;在这种情况下,我编造了错误的命令。然后,它简要说明了该问题。对于丢失和拼写错误的命令,都会显示此错误消息。多次检查命令的拼写和语法以验证其正确性:

[student @ testvm1] $ badcommand bashbadcommand:找不到命令...

使用man命令查看手册页(手册页),以验证命令的正确语法和拼写。

确保实际上已安装了所需的命令。如果尚未安装它们,请安装它们。

对于要求您以root用户身份登录的实验,请确保已登录。这些应该只有少数几个,但是以非root用户身份执行它们将不起作用。

没有太多其他应该出错的地方但是,如果您遇到无法使用这些技巧进行工作的问题,请通过LinuxGeek46@both.org与我联系,我将尽力帮助解决该问题。

术语

在我们继续之前,弄清楚一些术语很重要。在本课程中,我将引用具有多个术语的计算机。计算机是用于计算的硬件或虚拟机。连接到网络时,计算机也称为节点。网络节点可以是任何类型的设备,包括路由器,交换机,计算机等。术语主机通常是指作为网络节点的计算机,但我也曾遇到过它用来指代未连接的计算机。

 如何访问命令行

所有现代主流Linux发行版都至少提供了三种访问命令行的方式。如果使用图形桌面,则大多数发行版都带有多个终端仿真器供您选择。我更喜欢Krusader Tilix,尤其是xfce4-终端,但是您可以使用任何喜欢的终端仿真器。

Linux还为多个虚拟控制台提供了允许通过单个键盘和监视器进行多次登录的功能(KVM [31])。虚拟控制台可以在没有GUI桌面的系统上使用,但是甚至可以在没有GUI桌面的系统上使用。每个虚拟控制台都分配有一个与控制台编号相对应的功能键。因此,将vc1分配给功能键F1,依此类推。在这些会话之间来回切换很容易。在物理计算机上,您可以按住CtrlAlt键,然后按F2切换到vc2。然后按住CtrlAlt键,然后按F1键切换到vc1和图形界面。

Linux计算机上访问命令行的最后一种方法是通过远程登录。Telnet在安全成为一个问题之前很普遍,因此现在将Secure ShellSSH)用于远程访问。

对于某些实验,您将需要多次登录或在GUI桌面中启动多个终端会话。在本书中,我们将详细介绍终端仿真器,控制台会话和外壳程序。

1章简介        

 章节总结

Linux从一开始就被设计为开放和免费的操作系统。它的价值在于它带给操作系统市场的功能,可靠性,安全性和开放性,而不仅仅是以货币形式免费提供它。因为Linux在可以自由使用,共享和探索的意义上是开放和免费的,所以它的使用已经遍及我们生活的方方面面。

可能要求SysAdmin执行的任务很多。您可能已经在做这些事情了,或者至少对Linux的工作方式或如何使其更好地工作有所好奇。本书中遇到的大多数实验都必须在命令行中执行。可以使用多种方式来访问命令行,并且可以使用几种可用且可接受的终端仿真器中的任何一个或多个。

 练习题

请注意,以下几个问题旨在使您考虑成为SysAdmin的愿望。这些问题没有正确的答案,只有您自己的问题,也不需要写下来或分享。它们只是为了提示您对自己和成为SysAdmin有所内省:

1.      开源软件从哪里获得价值?

2.      Linux的四个定义特征是什么?

3.      截至您阅读本文时,全球排名前500位的超级计算机中有多少使用Linux作为其操作系统?

4.      “ Linux真相Linux用户和管理员意味着什么?

5.      对于开源软件,自由是什么意思?

6.      为什么要成为SysAdmin

7.      是什么让您认为自己会成为一名优秀的SysAdmin

8.      如果Linux主机上未安装GUI桌面,您将如何访问Linux命令行?

 


[1]维基百科,Linus Torvaldshttps://en.wikipedia.org/wiki/Linus_Torvalds

©大卫·博特2020

D. 使用和管理Linux:第1https  //doi.org/10.1007/978-1-4842-5049-5_1

[2]维基百科,Linux历史https://en.wikipedia.org/wiki/History_of_Linux

[3]维基百科,开放源代码软件https://en.wikipedia.org/wiki/Open-source_software

[4]大约在1991年底更名为OpenVMS

[5] GancarzMikeLinuxUnix哲学,数字出版社,2003146-148

[6]当今的ITProWindows NTVMS:故事的其余部分www.itprotoday.com / management-mobility / windows-nt-and-vms-rest-story

[7] https://en.wikipedia.org/wiki/Ken_Thompson

[8] https://en.wikipedia.org/wiki/Dennis_Ritchie

[9] MikeGancarz“ LinuxUnix哲学,数字出版社-Elsevier科学出版社,2003年,ISBN 1-55558-273-7

[10] Eric S. Raymond“ Unix编程的艺术Addison-Wesley2003917日,ISBN 0-13-142901-9  

[11] Eric S. Raymond“ Unix编程的艺术www.catb.org/esr/writings/taoup / html / index.html /

[12] https://zh.wikipedia.org/wiki/MINIX

[13] https://en.wikipedia.org/wiki/Andrew_S._Tanenbaum

[14] https://zh.wikipedia.org/wiki/GNU_General_Public_License

[15] https://en.wikipedia.org/wiki/History_of_Linux

[16] JuellKathleen,《 Linux简史》,www.digitalocean.com / community / tutorials /brief-history-of-linux

[17] TorvaldsLinusDavid戴维,《只是为了好玩:偶然的革命者的故事》HarperBusiness2001

[18] root用户是Linux主机的管理员,可以执行所有操作。与其他操作系统相比,非root Linux用户也没有什么限制,但是我们将在本课程的后面部分看到一些限制。

[19] WikipediaLinux支持的计算机体系结构列表,https: //en.wikipedia.org/wiki/ List_of_Linux-supported_computer_architectures 20Raspberry Pi网站,www.raspberrypi.org /

[20] ZDNet国际空间站刚刚获得了自己的Linux超级计算机 www.zdnet.com / article /the-iss-just-got-its-own-linux-supercomputer /

[21] WikipediaTOP500https://en.wikipedia.org/wiki/TOP500

[22]500名,www.top500.org / statistics / list /

[23] Opensource.org《开源定义》https://opensource.org/docs/osd

[24]两种,大卫,Linux的哲学为系统管理员 Apress出版,2018年,311-316

[25] Opensource.com什么是Linuxhttps://opensource.com/resources/linux

[26] Opensource.com资源https://opensource.com/resources

[27] System76主页,https://system76.com/

[28]维基百科,系统管理员https://en.wikipedia.org/wiki/System_administrator

[29]慈善机构,行动:这是每个人的工作https://opensource.com/article/17/7/ state-systems-administration

[30]维基百科,丹尼斯·里奇Dennis Ritchiehttps://en.wikipedia.org/wiki/Dennis_Ritchie

[31]键盘,视频,鼠标

 

原文地址:https://blog.csdn.net/allway2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340