2021年12月

优麒麟软件商店上架“原生”微信应用

目前 Linux 发行版下的微信替代方案,都与原生版本有一定的差距,极大的影响了用户的日常工作效率,以及日常影音娱乐需求。而麒麟软件今天 发布消息 称,“与腾讯公司联手推动了基于 Linux 平台的原生微信适配工作,微信官方版 2.1.1 正式上线,并在麒麟软件商店上架。”想要体验的用户,只需在麒麟商店搜索“微信”,一键完成安装,扫码登录即可随时畅聊。

老王点评:据我所知,腾讯从未有过“原生”微信,其官网也找不到可以下载的 Linux 版本。这应该是一个腾讯官方“封装”的可用于 Linux 的微信,不过既然是官方推出的,应该可靠。

将密码存储在浏览器中是个糟糕的主意

恶意软件 RedLine 瞄准了 Chrome、Edge 和 Opera 等流行浏览器,它针对的是基于 Chromium 浏览器的 Login Data 文件以及用于保存用户名和密码的 SQLite 数据库。RedLine 是一种商品化的信息窃取程序,可在网络犯罪论坛上以大约 200 美元买到,不需要太多知识即可轻松部署。安全专家 警告称,贪图方便使用浏览器的自动登录功能正成为影响组织和个人的重大安全隐患。使用浏览器存储登录凭据的做法既诱人又方便,但是即使没有感染恶意软件,此举也有风险。因为这将允许在本地或者远程访问计算机的人在几分钟内窃取所有的密码。

老王点评:对于密码这么重要的信息,相信还是专用软件比浏览器更可靠一些。

因备份错误,日本京都大学丢失 77TB 的研究数据

日本京都大学由于其惠普超级计算机的备份系统出现错误,丢失 了约 77TB 的研究数据,导致 14 个研究小组的 3400 万个文件从系统和备份文件中被抹去,其中四个受影响小组的工作已无法恢复。该校已经报废了备份系统,并计划应用改进措施,在 2022 年 1 月重新启用。

老王点评:数据的重要性如何强调都不过分,而有弹性的备份可能是最后一道保护。

你现在需要读的 2021 安全总结文章。

 title=

2021 年我们最常见的讨论之一是你自己数据的安全和隐私。显然,你的数据是你的,密码是安全的关键。今年的安全类的作者们提供了有用的知识和开源工具来保持你的数据和硬件安全。

以下是我对今年安全之旅选出的前五篇文章。

《6 个开源工具和初学者保护 Linux 服务器的技巧》

Sahana Sreeram 提供了从更新到恶意软件扫描的 六个基本的服务器安全小知识。这篇文章为你在家里或工作中的 Linux 服务器提供了一个起点。要特别注意密码强度部分和为你的服务器创建降低风险的密码策略要求的工具,因为这是你所使用的任何操作系统上最关键的做法。这篇文章是一篇实用指南,指导你在 Linux 服务器的日常工作中进行安全工作。正如 Sahana 所指出的,安全领域无疑正在扩大,这篇文章给了每个人着手预防的机会。

《用开源软件保护你的文件的 5 种方法》

接下来的 这篇文章 对于像我这样写了大量的文档(从文章到个人研究笔记都有)的人来说是非常有用的。作者 Ksenia Fedoruk 首先列出了保存文档的开源云存储服务。接下来,她介绍了加密的重要性以及在我们的文档中使用加密的方法。她还清楚地介绍了文件的数字签名和水印以及使用哪些开源工具。最后,文章涵盖了对我们制作和使用的文档进行密码保护的情况。结尾处的提醒遵循了今年安全领域的一个共同主题:你的数据是你的。

《4 个清除你的数据的 Linux 工具》

这篇文章 中,Don Watkins 涵盖了硬件的用途和维护。它以一系列擦除硬盘的工具作为引子,这样你的数据就不能被下一个使用设备的人拿走。在几个小的演练中,Don 涵盖了使用 GNU shred、ShredOS、dd 命令,以及最后的 nvme-cli。每一个都可以从你的硬件中删除所有的数据,并对你正在使用的、不再需要的硬盘进行删除。Don 的结论提供了一个温和的提醒:如果你要卖掉你的硬件,这并不意味着下一个人应该拥有你的数据。你的数据是你的。

《在 Linux 命令行上生成密码》

正如我在本期中早先时候指出的那样,密码对于今年的安全总结至关重要。在 这篇文章 中,我们的作者 Sumantro Mukherjee 首先介绍了许多网站在涉及到密码时可以有(也应该有)一个严格的规定。这篇文章循序渐进地介绍了如何使用 pwgen,首先是安装它,然后是生成密码。这是一个有用的工具,Sumantro 详细介绍了如何使用一些标志来生成符合任何网站或应用的要求和策略的密码。在这篇读物的最后,最后的总结包含了链接到一个方便的开源密码管理器列表,这个列表是我们的另一位作者 Jason Baker 在今年早些时候写的。这是一个重要的读物,可以让你为你在网站上的日常使用制定更好的密码,以防止黑客攻击或丢失你的账户中的数据。

《用这个开源软件加密你的文件》

今年的安全总结的最后,是一篇关于加密和加密文件的 文章Seth Kenlon 介绍了一个名为 VeraCrypt 的开源跨平台加密工具。Seth 的演练深入解释了如何安装和使用 VeraCrypt,并展示了这个很酷的软件的易用性。但在此之前,他还简要介绍了 VeraCrypt 的前身 TrueCrypt 的历史,以及 VeraCrypt 是如何向后兼容以前用 TrueCrypt 的加密卷的。通过这个易于使用的开源加密软件,Seth 已经证明,你可以在本地拥有你的数据,并以你想要的方式进行加密。

荣誉提名

虽然这五篇是我今年的最爱,但这里还有两篇同样值得一读的提名文章。

每篇文章都对安全策略和采用情况进行了结构化解读。

关于安全的总结

我强烈建议在今年阅读这些文章和 其他几篇。这些将使你为 2022 年安全世界的发展做好准备。你可以成为新一年的安全冠军。

你有一些想要推荐的工具吗?请留下评论或 提出你的文章构思


via: https://opensource.com/article/21/12/open-source-security

作者:Jessica Cherry 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。

什么是《代码英雄》

代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽(Red Hat)精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。

本文是《代码英雄》系列播客《代码英雄》第五季(1):成为一个码农音频脚本。

导语:代码英雄们是软件工程师、开发人员、程序员、系统管理员,他们俗称码农。他们的职业的多样性几乎和他们找到工作的途径一样多。

Saron Yitbarek 和 Clive Thompson 在本季开篇探讨了编程人员开始其技术职业的一些方式 —— 有些是常见的,有些是意想不到的。许多人选择从拿到计算机科学学位开始。但是,不要低估成熟的培训班路线、中后期的职业转换者,以及来自与技术绝缘的地方的编程人员。你可能会惊讶于是谁响应了编码的号召,他们来自哪里,已经取得了多少成就。

00:00:01 - Saron Yitbarek

想象一下,你被困在一个荒岛上。你发现了一架损坏的螺旋桨飞机,有一些工具,还有一本便携手册。你之前从来没有修理过飞机,但你非常想离开这座岛,所以着手修理这架飞机。你离开荒岛的决心可能使那架飞机再次飞行起来。当然,这是一个非常极端的例子,但是,当你试图弄清楚如何将某些东西放在一起时,比如飞机这种结构性的东西摆在你的面前,你都会在心里去想怎么处理,而且有手册可以帮助你。但是如果是软件呢,如果我们不在那个计算机的世界里,很难弄清楚怎么去处理这些 0 和 1。甚至即使你身处其中,也很难想象你正在组合起来的东西。这就是人们发现自己所处的境地。

00:00:49 - Clive Thompson

在写了 25 年有关软件及其对日常生活的影响的文章之后,我意识到大多数人都不知道软件是如何制造的、是谁制造的、为什么要制造它。他们不理解,所有这些软件工程师代表他们做出的决定是什么。这就是一个巨大的谜团。因此,我决定写一本书,揭开这个谜团,向人们展示代码是如何编写的,以及谁编写的。

00:01:21 - Saron Yitbarek

那本书叫做《 码农:新部落的建立和世界的重塑 Coders: The Making of a New Tribe and the Remaking of the World 》。作者是科技记者 Clive Thompson。在过去的四季节目中,我们精选了许多史诗般的故事,讲述了代码英雄们如何塑造我们周围的环境。但是,我们没有谈及的是编程这件工作本身,它是如何完成的,它是如何随着时间推移而变化的,它会如何发展,以及我们如何才能获得一份编程人员的工作,尤其是第一份。我们整理了一个 3 集的小型剧集,专门致力于讲述一个编程人员的工作。

00:02:01

欢迎来到《代码英雄》的全新一季,这是红帽的原创播客。我是主持人 Saron Yitbarek,《码农》一书的作者,也是本播客的朋友 Clive Thompson 将与我们一起参加这一季所有 3 集的节目。欢迎你,Clive。

00:02:19 - Clive Thompson

很高兴来到这儿,Saron。

00:02:20 - Saron Yitbarek

Clive,最近几年你完全投身于编程人员的世界当中。为了你的书,已经采访了 200 多位开发者、系统管理员、架构师、工程师和程序员吧。

00:02:31 - Clive Thompson

是的。我与整个软件生态系统中的很多软件开发者都交流过。

00:02:37 - Saron Yitbarek

太好了。你是完美的领路人。很高兴你能加入我的节目。

00:02:40 - Clive Thompson

我也很高兴能加入。

00:02:41 - Saron Yitbarek

让我们从成为一个编程人员最传统的途径开始:上大学取得计算机科学学位。

00:02:48 - Vinamrata Singal

我认为,作为一个产品经理拥有这种技术基础很重要。我很高兴自己通过计算机科学课程做到了这一点,因为我觉得自己不仅了解了如何编写程序来执行此操作,而且还了解了幕后的情况。

00:03:06 - Saron Yitbarek

这位是 Vinamrata Singal。她于 2016 年毕业于斯坦福大学,并获得了计算机科学(CS)学位。她说,她的教育经历让她获得了 Facebook、Google 以及其他公司的产品经理职位。Clive,大多数的编程人员都有计算机科学学位吗?

00:03:24 - Clive Thompson

如果你看一下 Stack Overflow(一个大型的开发者网站)的调查,他们每年会对成千上万的用户进行调查。他们的数据表明,在 Stack Overflow,60% 的编程人员都是专业人员,其中一些人接受过某种形式的正规计算机科学的教育,或者类似于电气工程之类的教育。可能比这个比例更高一点,就比如说是 2/3 吧。要成为一名编程人员,获得计算机科学或者与其相关的学位仍然是最普遍的途径。

00:04:01 - Saron Yitbarek

这是因为计算机科学学位更值钱么?

00:04:04 - Clive Thompson

是的,这就是经济学家所说的高成本信号。它们表明,我愿意花大量的时间来学习这些知识,所以我是一个好的雇佣对象。如果你是一个开发者,你必须不断学习。新的框架、新的语言、新的环境等等。一些雇主告诉我,他们喜欢使用获得计算机学位人选的原因是,这些人花了 4 年时间专注学习,而且他们会继续学习下去。

00:04:37 - Vinamrata Singal

当你拿到本科学位的时候,除了学习这些计算机知识,你也学习了理论数学,也学习了算法、学习了网络和计算机系统。我认为所有的这些,给了你一个非常坚实的基础,所以不管你要转换还是不转换行业,那都很容易。

00:04:56 - Vinamrata Singal

斯坦福大学的学位会让他们被认真对待。老实说,这就是信心。这也有很大的作用,让你不会感觉到自己滥竽充数。然后,就像你在申请工作后,雇主们都愿意和你谈谈,只是因为你身处这个庞大的网络就简单得多。

00:05:12 - Saron Yitbarek

计算机科学学位是否使他们比非计算机专业的员工表现的更好?

00:05:21 - Clive Thompson

这是一个非常好的问题。这个问题很难回答,因为我从不同的雇主那儿获得了完全不同的答案。一些人告诉我,“是的,学计算机的人相比自学成才或者来自培训机构的人更自信、更有底气而且遇到情况时能采取迅速有力的行动”。然而,我也听到过完全相反的观点,例如,David Kalt,他运营着 Reverb,该公司是一家主要销售音乐设备、出人意料的成长并且盈利的电子商务网站。他说,我曾经说过我只想要学计算机的毕业生,但是他们不具备想要成为高效率团队成员的所有技能。因此他开始越来越多的雇用培训班出身的人员、自我成才的人员,或者之前业余学过这方面的音乐人。

00:06:11

你也会听到对非计算机科学出身的人的赞扬。我想是来自于某一类投资人或者是老派编程人员。他们有五六十岁,自学成才,在上世纪 80 年代就使用过 Commodore 64。当他们看到有人走过来说,“是的,我只是不喜欢在酒店的工作,所以在 YouTube 和 Code Academy 上学了很多东西。” 他们会说,“是的,我想要那个人”。我们应该说这是完全不同的两类选择。有一类雇主非常严格,只雇佣有计算机科学学位的人员。还有一类雇主有时觉得自学成才或为了改变职业而去参加培训班的人才真正值得自豪。

00:06:55 - Ali Spittel

我的故事很独特。我在一个偏僻的地方长大,我的高中学校的经费肯定不高,所以直到我进了大学我才知道什么是编程。

00:07:10 - Saron Yitbarek

Ali Spittel 是一名软件工程师,也是开发培训班 General Assembly 的一名杰出教职员。她从大学开始学计算机科学,然后发现自己走上了一条完全不同的道路,走向了编码生涯。

00:07:24 - Ali Spittel

我学习了 Python,完全爱上了它。我觉得非常神奇的是,你将某些内容输入计算机,然后它就可以输出一些东西。然后我很快就决定主攻计算机科学双学位。但是当下学期我学习了 C++ 的自由开源软件的数据结构和算法,我确实通过了那门课程,但是我是点灯熬油,付出十分努力才通过的。然后我就觉得编程真的不适合我,就退学了,继续我原来的专业,也就是政治学。大约一个学期后,我在做一份实习,主要是政治工作的数据分析。我意识到我可以用编程来使很多工作自动化。他们发现了这一点,并推荐我担任软件工程师的职位。

00:08:17 - Saron Yitbarek

我采访过数百人,我几乎总是会问这样一个问题: “计算机科学学位真的有价值吗?你真的需要它吗?你可以自学成才吗?” 我只是想了解一下这方面的情况。我猜,计算机科学学位会非常有价值,因为你要花 4 年的时间来学习这些精心挑选的信息。但是,在这些采访中,我会得到各种类型的答案。有人对我说,“实际上,它真的不太实用。” 也有人对我说:“那些理论知识太有价值了。”

00:08:47 - Clive Thompson

是的,我也听到了各种反馈。我从一些人那里听到了一些说法,他们强调说,我们需要有计算机科学学位的人,我们不太想要那些没有这些学位的人。但还有另一群人,我想你听到过他们完全相反的意见。他们说,不不不,我们想要的是那些有实际经验的、能够团队合作的人,我们喜欢能跳出思维定式的人。如果一个人是自学的,他们会比上大学的人有更好的成长心态,因为也许上大学的人习惯了别人给他们东西。课程就在那里,他们按部就班地学习就行。而那些只是自学了一些 HTML、CSS、JavaScript 和 Node 的人,把自己变成了一个全栈工程师。毋庸置疑,在团队中就是想要这样一个放那儿就能干活的人。

00:09:38 - Ali Spittel

不同的学习方法各有适合的人。计算机科学是不可思议的,因为你学到的所有这些理论基础可以为你的日常工作奠定基础。自学是另一个很好的途径。这是我的主要起步方式,它将使你在工作中拥有学习这些东西的基础,这是你无论如何都要需要的。最后是培训班。如果可以回头再来的话,我会去参加一个培训班,因为可以让一位指导老师来监督以及鼓励你的学习,有一个可以遵循的课程,而且在老师指导的课堂上,你仍然可以自学。但话虽如此,我认为每条路都有你选择它的合理性,它们都应该存在,不同的道理适合不同的人。

00:10:44 - Kush Patel

8 年来,我们毕业了大约 3000 名学生,并且能将其中 95% 的学生安置到软件工程职位上,他们在旧金山校区的工资中位数约为 10 万美元,在纽约校区的工资中位数约为 9 万美元,并且这些学生是在顶尖的高科技公司里。

00:11:00 - Saron Yitbarek

Kush Patel 是 App Academy 培训班的 CEO。他的培训班有一个学费模式,可让毕业生找到工作之后再付款。这使得更多的学生有机会学习编程。这些毕业生被 Google 之类的公司雇用,可以赚到可观的薪水。

00:11:18 - Kush Patel

这些年来,我们有大约 100 名学生进入了 Google。基本上,这比那些顶尖的计算机科学教育都有优势,这是一种非常便捷的方式,可以让学生获得技术领域最热门的工作之一。

00:11:32 - Saron Yitbarek

所以,Clive,App Academy 是编程培训班的典范么?

00:11:36 - Clive Thompson

我想说的是,他们是优秀的编程培训班的典型代表,但是培训班本来就是良莠不齐的。有出色的、管理良好的、可以教人们很多东西的地方;也有一些非常不可靠,从来没让人找到过工作的机构。

00:11:57 - Saron Yitbarek

我是在大约 6 年前从一个编程培训班毕业的,那时培训班感觉像雨后春笋般冒出来。它在成长,是一个萌芽中的产业。从那以后,我觉得培训班已经有了很大的发展。你觉得呢?

00:12:12 - Clive Thompson

是的,是这样的。可能需要对最好的编程培训班稍微降低一些期望。我认为他们从一开始就承诺每个人都将得到这些好工作,但这并不总是可能的。他们设定的期望过高。他们也意识到他们必须在找工作这方面真的下很大功夫。因为他们可以给人这些技能,但让他们从事初级开发工作是非常重要的,在那里他们可以学到更多。

00:12:43 - Saron Yitbarek

我认为,这些年来,为培训班支付费用的方式已经发生了改变。这真的很吸引人。甚至在接受培训后再付款的做法也更正式了,有了 ISA,有了收入分成协议,我想,这也是一种更有约束力的做法。这种做法有利有弊。有一种这样的风险,就是当你实际上没有得到任何收入的时候,你却不得不还钱。

00:13:06 - Clive Thompson

我同意。因为培训班增长太快了,而且它们显然是在填补一个空缺。计算机科学学位的增长速度不足以满足公司的需求。它们需要其他的途径。培训班填补了这一空白。但这意味着它们以一种奇怪的方式向着社区学院的方式发展,从理论上讲,你希望它们这样发展。社区学院是受到监管的。实际上我认为,各级政府可能会给培训班制定一些标准,这肯定很好,因为如果他们能够制定出非常、非常好的标准,并且可能获得真正的认可,那么它会鼓励最好的培训班达到这些标准。其他不满足这些法规要求的培训班,要么被淘汰,要么被关闭。

00:14:02 - Saron Yitbarek

让我们和一家大型科技公司的人谈谈关于非传统招聘的事情。作为 LinkedIn 的高级工程经理,Will White 多年来雇佣了很多程序员。他们中的大多数都是计算机科学专业的毕业生,但他意识到他们的数量不足以填补空缺的职位。三年前,该公司启动了一个名为 “Reach” 的学徒计划。

00:14:25 - Will White

Reach 项目是一个多年的计划,我们引进学徒,通过将他们与不同的导师和经理配对,帮助他们培训工程技能。我们相信,顶尖的人才可以来自任何地方,而 Reach 是我们寻找人才的途径之一,尤其是在计算机专业之外的学生。一般来说,我们寻找的是对工程有激情的人,这种激情可以表现在很多方面,无论是花时间去培训班的人,还是花了很多时间在自学上的人,比如业余参与一个项目,或者编写代码,并试图提交一个拉取请求让开源项目接受它。

00:15:16 - Saron Yitbarek

Clive,刚才 Will 和 Ali 都在谈论自学成才,在你的研究中,你也遇到了一些自学成才的编程人员吧。

00:15:25 - Clive Thompson

有很多自学成才的编程人员。与我们之前提到的对应的是,Stack Overflow 调查中约有三分之一的人完全或至少基本上是自学成才的。Sarah Drasner 是一位出色的全栈工程师。最初因在 SVG 图形方面的开创性工作而闻名。而且,她真的是自学成才的,她原来是博物馆的插画师,但后来这份工作搁浅了,因为他们有了一台相机,拍照比她画的更好。她的雇主说:“要不你来为我们做网站吧?” 那时候网站还处于早期。然后她说,“当然可以。” 她回到家就开始看书,试着学习怎么去做个网站。她走了那条路,并在接下来的几年内成为了一名杰出的开发者,在她的领域大名鼎鼎。而这这种故事并不罕见。

00:16:26

Mike Krieger 是 Instagram 的两位幕后开发者之一,他承担了很多繁重的工作。他最初还是个孩子的时候就开始自学做网站。最初是一些超小的开源项目,帮助创建过 Thunderbird 插件等等,这就是他起步的地方。这确实使他取得了很大的进步。对我来说,实际上我认为自学成才的机制真的很有趣,而且它变得比以往任何时候都容易,因为有很多资源都唾手可得,比如 FreeCodeCamp。实际上,我就是这样学习 HTML、CSS 和 JavaScript 的。然后还有无数的 YouTube 视频、开源项目和黑客马拉松。自学是一个令人惊讶的上升通道。

00:17:24 - Rusty Justice

我是你所见过的最不可能从事技术工作的人之一。我是一名采矿工程师,学的是土木工程。我自学的动机是出于需要。我们的煤炭产业是这个地区占主导地位的行业,但这个行业崩溃了,因此出现了很多失业人员。

00:17:43 - Saron Yitbarek

在这个片段里有我一直以来最喜欢的名字之一,Rustry Justice。他来自 阿巴拉契亚 Appalachia 中部 肯塔基州 Kentucky 皮克维尔 Pikeville ,那里的主要产业一直是煤炭开采。Rusty 在采矿业经营业务已有多年,直到 5 年前该行业崩溃为止,然后他和他的商业伙伴决定采取行动。他们创立了数字服务公司 Bit Source。Clive,你在书中写过关于 Rsuty 的文章。他是越来越多的在职业生涯中期进入编程行业的一个例子。你使用了一个称为“ 码农 blue collar coder ”的术语。那是什么意思?

00:18:22 - Clive Thompson

好吧,这主要是指以一种可能与我们在过去 15 到 20 年里谈论编程人员的方式有点不同的方式来进行这项工作的编程人员。长期以来,对编程人员的印象是穿着连帽衫的小伙子,他们搬家到硅谷,他们可以创办一家初创公司,并获得数百万美元的投资,也许成为了亿万富翁。码农的意思是,他更像是从事 20 世纪的蓝领工作的人,就像那些在克莱斯勒生产线上从事熟练技术工作、制造汽车的人一样。他们具有丰富的技术技能,但被认为是从事一种稳定的中产阶级工作,码农更像是这种。码农这种工作正在接近蓝领工作,因为我们做这项工作,不是为了成为赚取数百万美元的连帽衫小子,而是为了拥有一份稳定的 21 世纪的中产阶级工作。

00:19:19

事实上,只有 8% 的编程工作在硅谷,在那种众所周知的消费软件领域。在美国的其他地方,都有从事编程工作的人。他们无处不在,他们在田纳西州、在俄亥俄州、在纽约州北部。他们不在 Facebook 和 Google,他们在银行、在保险公司、餐馆或工业公司工作。这些行业都需要软件开发人员。当人们把目光放在传统领域之外时,就会用一种不同的思考方式来思考职业轨迹。这就是我们看到的码农的来源。

00:19:59 - Saron Yitbarek

你在书中提到了另外一个码农,另一个有着神奇名字的人,Garland Couch。他曾在一家大型矿业公司做了 15 年的维修计划员,后来被解雇了。后来他加入了 Rusty 的公司,进入了科技行业。下面是他刚开始在 Bit Source 工作时的情况。

00:20:21 - Garland Couch

我过去开玩笑说,这是一个半严肃的笑话,工作了 22 周之后我们都不知道彼此的姓氏,因为每个人都是进来、坐下来、戴上耳机,然后开始工作。没有人说话、没有笑声、没有玩笑、也没有争吵。你要明白,这是 10 个失业的人试图找到一份工作。那是非常艰难的 22 周,我们 10 个人都非常专注于学习需要学习的东西。

00:20:57 - Saron Yitbarek

Clive,你采访过很多转型做技术的蓝领工人,比如 Garland 和 Rusty,这些转型大部分情况下成功了吗?

00:21:06 - Clive Thompson

是的。所有我采访过的人在很大程度上都取得了相当不错的成功。我认为有些事情对他们是有所帮助的,因为他们年纪稍大,在事业上小有建树。他们有严肃的目的,这可能是你年轻时没有的。他们知道如何学习,知道如何自学。他们知道自己付出的是什么,因为他们想要一个新的事业。也许他们以前的事业正在消失,就 Garland 来说。他们绝不缺乏热情和坚持不懈的精神,而这些正是我认为做好编程所需要的,而且他们对当地市场的需求也经常有所了解。

00:21:46

在 Garland 的案例中,他有一个当地市场,那就是在肯塔基州成立了一家新的高科技公司。另一个优势是,一些我采访过的真正成功的人,他们对软件用在什么地方有更开阔的看法。如果你和一个普通的 19 岁学生交谈,他们会认为软件就是 Instagram,仅此而已。但是如果你和一个 31 岁在酒店业工作过的人交谈,他们知道酒店使用了大量的软件,他们会说,我要去那里工作,那些领域急需人才。

00:22:22 - Rusty Justice

就我个人而言,最大的教训是,在被告知有这些编程工作时得到了太多的错误信息,我真的是太天真了。我们被告知缺少某某数量的开发者,所以从事它们就有赚钱的可能。而这种收入水平和我们在这些采矿工作中失去工作的收入水平是相当的。所以我们想,如果我们学会了编程,那么世界就会为我们打开大门,我们就会有工作。但是没有人会雇佣我们,因为你们为什么要雇佣我们呢?我们是一群从来没有做过这种工作的人。我们必须向市场证明我们提供了价值。

00:23:03 - Garland Couch

我认为,现实世界的经验,在其他行业、其他环境和大公司工作过,干过我们之前干过的工作,对我们现在所做的事情肯定有帮助。我给你举个例子:有一个公司希望我们为公路卡车司机开发一个应用程序。我们这里的工作人员有 CDL 执照。大家马上就会想,等等,你们有真正开过卡车的开发人员吗?是的,我们有。

00:23:41 - Saron Yitbarek

像阿巴拉契亚这样的地区有很多负面的刻板印象,但是 Rusty 和 Garland 以及他们社区的其他人正在做的是创造积极改变的模式,他们为此感到非常自豪。Garland 总结说,

00:23:56 - Garland Couch

对我来说,蓝领意味着一个努力工作的人愿意投入工作,愿意苦干和解决问题。对我来说,码农这个词是一种赞美。

00:24:17 - Gillian

在我参加培训班的一个月后,我想,“我到底在做什么?” 但随着时间推移。课程真的很紧张。尽管很困难,但我发现我自己并不是很累,只是很兴奋地想看到我第二天能做些什么,我如何能变得更强。在那个时候,我知道自己真的很喜欢所做的事情。

00:24:42 - Saron Yitbarek

这位是 Gillian。她曾是一名 20 多年的物理学家,由于她的工作被裁员了,她决定试一试编写代码。她在 50 多岁时参加了一个 Java™ 培训班。从培训班毕业两周后,她在金融服务业找到了一份工作。现在,她的事业蒸蒸日上,但她知道她的剩下的职业生涯可能会一直处于初级阶段,因为她从业比较晚,但这对她来说没什么问题。她很开心,她为自己的团队做出了贡献。

00:25:11 - Gillian

我可能没有他们做 Java 开发那么熟练,也没有他们那么丰富的经验,但是我可以思考,我可以分析,我可以发现问题,提出明智的疑问。我可能不知道答案,但至少我知道该问什么问题,因为我有很多解决问题的经验。

00:25:33 - Saron Yitbarek

所以,Clive,让我们来谈谈这个行业的老年工作者。Gillian 提到她是一名初级程序员,可能在职业生涯的余下时间里她继续是一名初级程序员,她非常乐意这样做。我想知道,如果你在中年时才开始从事编程,什么样才算成功?

00:25:49 - Clive Thompson

我采访过的很多人年纪都比较大,他们进入这个行业是因为他们对现有的行业不再感兴趣了,他们渴望创造东西,渴望成为一名工程师,或者可能他们现有的行业正在分崩离析。他们想,我需要一个真正成长的地方,所以他们并不一定一心要成为编程金字塔的顶尖人物。他们想要有回报的、稳定的工作。毫无疑问,他们会找到一份这样的编程工作,如果他们能找到第一份工作,踏踏实实地进入工作岗位,证明了自己的价值,那就够了。他们更倾向于码农。

00:26:33 - Elisabeth Greenbaum Kasson

一般来说是这样的,但也有一种观念认为,如果你年纪大了,你就不再具有接受教育的能力,你不再灵活了,你觉得自己什么都知道了。这真的很可惜,因为招聘经理错过的是那些拥有丰富经验的人,他们知道如何在某个特定时间发生的事情上作出调整。

00:26:57 - Saron Yitbarek

这位是技术及商业记者 Elisabeth Greenbaum Kasson。她说,“在技术行业,年龄歧视是非常现实的。许多程序员一生都在编程。随着年龄的增长,获得一个新的编程工作开始变得越来越难。很多年长的程序员在求职时都被忽视了。”

00:27:18

那么 Clive,你采访过很多程序员。他们中有多少人经历过年龄歧视?他们有哪些故事?

00:27:24 - Clive Thompson

如果他们没有成功跃入高层管理岗位,很多人就会遭遇年龄歧视。老年开发人员有两种类型:有些人成功地升到了管理层。他们管理着一个完整的团队,然后可能会成为副总裁、CTO,或者创办自己的公司成为 CEO。他们是快乐的,他们在发号施令。他们利用自己的经验来指挥和管理由年轻、求知若渴的开发人员组成的大型团队。但是还有另外一群程序员不想成为管理人员。他们喜欢创造东西。他们喜欢成为解决问题的工程师。他们面临的问题是,科技行业的环境不能让这些人一直这样做到四十岁、五十岁,乃至六十岁。

00:28:19

这个行业想要年轻人,可以 996 而没有抱怨,没有孩子、没有任何责任、不要更多的钱。你会想,哇,软件开发人员的工资很高,确实如此。但如果你有几个孩子和一所房子,你可能想要更多的钱,你想要稳定,你不想工作那么长时间。也许你并不需要这些,因为你现在觉得这样挺好。但是雇主们错误的认为,如果你没有疯狂地每周工作 100 个小时,你就没有产出。所有这些打击都会针对那些只想成为高效率的开发者,他们开始被排挤出去。

00:28:59 - Elisabeth Greenbaum Kasson

他们可以做的事情就是让自己变得更容易被雇用,出现在他们认为自己不可能出现的地方。例如,我认为很多 50 多岁的人应该多用用 GitHub,去参加可能都是年轻的人的聚会,去参加一些针对特定编程小组的聚会,在那儿他们可以结交一下人脉了解当前正在发生的事情。

00:29:26 - Saron Yitbarek

Clive,你对程序员在职业生涯后期还有什么忠告吗?

00:29:32 - Clive Thompson

当然,我实际上问过那些还在编程并且很乐意编程的老开发者,他们的秘密是什么。一般来说,他们告诉我的是,不断地学习、学习、学习,用新框架和新语言来构建些东西,这是至关重要的,这样他们就能有一个代码库来证明他们能做到这些事情。这是我展示的,使用新的工具集、使用新的语言、新的框架。这真的很重要。我认为 Elisabeth 说得很对。这些老开发者们还谈到了保持外向和现实联络的价值,以及从黑客马拉松到聚会的所有这些事情。

00:30:15

我在旧金山遇到的这位典型的灰胡子,字面意义上的灰胡子。这位程序员说,他突破了,因为他参加了一个物联网黑客马拉松,都是嵌入式设备和非常小的处理器,比如 Arduinos,有非常严格的内存限制。他说就像是,“这把我带回了上世纪 70 年代,当时我刚进入这个领域,那时台式电脑的内存非常有限。” 这些都是他找到的让自己走出去并融入社区的方法。最后他意识到,哇,实际上有很多我可以做的物联网工作。让自己保持与时俱进,似乎真的能帮助许多较老的开发人员摆脱困境。

00:31:01 - Saron Yitbarek

Clive,最后一个问题。无论一个程序员在职业生涯中处于什么位置,无论他们通过什么途径成为一名程序员,你采访过的程序员都有哪些共同之处?成功的关键指标是什么?

00:31:15 - Clive Thompson

真正重要的是对学习和成长的持续渴望。我遇到的每一个成功的程序员都是如此。他们都有永不满足的好奇心。一旦他们发现某些东西存在可能性,比如一种发展起来的语言,出现了一个新框架,出现了一个新技术栈,他们就想了解它,想要探索它,摆弄它。他们会在业余时间创造一些东西,只是想看看到底有什么可能。

00:31:42

如果有人听完这段话会想,嘿,也许我也想成为一名程序员。成功实现转型的人都有那种熊熊燃烧的好奇心,他们喜欢这份工作,会发现它的乐趣,会在业余时间为快乐而去做它。事实上,他们喜欢它,是因为它给了他们一种成就感和解决问题的感觉,这是他们在以前的工作中没有的。所以,如果让我说,每一个成功的人,包括那些成功转型的人,都有一种令人惊叹的好奇心和对琢磨这些新事物的渴望,这让他们不断进步。

00:32:21 - Saron Yitbarek

Clive,非常感谢你和我一起来谈论程序员的职业道路。

00:32:26 - Clive Thompson

我也很高兴。

00:32:27 - Saron Yitbarek

现在我们了解了我们来自哪里,在我们的职业生涯中走过了什么道路,让我们看看如何以及在哪里做最好的工作。下一集,Clive,你会回来加入我,对吗?

00:32:41 - Clive Thompson

肯定的。

00:32:44 - Saron Yitbarek

《代码英雄》是红帽的原创播客。我们另外还有一些关于程序员职业道路的采访和研究。登录 redhat.com/commandlineheroes 了解更多信息。我是 Saron Yitbarek。

00:32:58 - Clive Thompson

我是 Clive Thompson。

00:32:58 - Saron Yitbarek

坚持编程。

00:32:59 - Clive Thompson

坚持编程。

00:33:01 - Saron Yitbarek

再来一遍。1,2,3 我们会坚持编程。1,2,3,坚持编程。

00:33:10 - Clive Thompson

坚持编程。

00:33:17 - Saron Yitbarek

坚持编程。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-5/becoming-a-coder

作者:Red Hat 选题:bestony 译者:mrpingan 校对:acyanbird, wxy

本文由 LCRH 原创编译,Linux 中国 荣誉推出

黑莓设备即将彻底落幕

黑莓公司称,它将在 2022 年 1 月 4 日结束对黑莓操作系统和黑莓平板操作系统的遗留服务支持。这意味着,如果你有一部运行黑莓 10 、黑莓 7.1 或更早的手机,那么从该日起,电话、短信、WiFi 和移动数据这些功能将变得不再可靠,各种黑莓应用也将功能受限。黑莓平板电脑也将处于报废状态,虽然它在推出一年后就停产了。

老王点评:黑莓算是正式落幕了,可能确实也没多少用户了吧。

glibc 仍然没有默认解决 2038 年问题

所谓的 2038 年问题是指类 Unix 系统使用 32 位整数记录时间,从 1970 年 1 月 1 日开始计算秒数,到 2038 年 1 月 19 日 3 时 14 分 07 秒将溢出,会导致使用这种时间的程序崩溃。而在 64 位系统上使用的是 64 位整数记录时间,Linux 内核在几年前就切换到了 64 位时间记录方式解决了这个问题。然而,广泛使用的 glibc 库虽然从 2.34 就支持 64 位时间记录,但并 没有默认使用,而需要明确指明才使用。这意味着今天使用 glibc 的应用在 16 年后可能会出现问题。

老王点评:虽然可能 glibc 觉得现在的应用不会在 16 年后还会原样使用,但是还是应该尽早修改默认行为比较好。

英特尔提交 PFRUT 项目,升级系统固件无需重启

英特尔向 Linux 内核 5.17 提交了一个新的开源项目 PFRUT,允许在操作系统中升级固件,而不需要重新启动系统。这项功能 是一个服务器专属的功能,服务器可以自由地更新系统 UEFI 或 BIOS,同时确保关键的工作负载在整个过程中保持运行。更新过程是通过操作系统完成的,而不是直接通过 UEFI 或 BIOS 完成。但目前不确定是需要特定的硬件支持还是只需要驱动就可以了。

老王点评:确实是一个对服务器硬件非常需要的功能。

如标题所示,本文将涵盖面向初学者的 Bash Shell 脚本知识。虽然本文没有回顾 Bash 的历史,但是有很多资源能够便于读者了解相关内容,读者也可以直接访问 https://www.gnu.org/software/bash/ 上的 GNU 项目。我们会从了解一些非常基本的概念开始,然后再将相关知识综合起来。

创建脚本文件

首先来创建一个脚本文件。我们要确保当前目录为家目录。

cd ~

在主目录中创建示例文件。文件名可以是任意名称,本文使用 learnToScript.sh 作为文件名。

touch learnToScript.sh

此时家目录中就生成了一个名为 learnToScript.sh 的文件。输入以下命令以检验该文件是否存在,还可以注意到其权限是 -rw-rw-r–

[zexcon@trinity ~]$ ls -l
total 7
drwxr-xr-x. 1 zexcon zexcon   90 Aug 30 13:08 Desktop
drwxr-xr-x. 1 zexcon zexcon   80 Sep 16 08:53 Documents
drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads
-rw-rw-r--. 1 zexcon zexcon   70 Sep 17 10:10 learnToScript.sh
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Music
drwxr-xr-x. 1 zexcon zexcon  318 Sep 15 13:53 Pictures
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Public
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Videos
[zexcon@trinity ~]$

正式开始之前还有一件事要做。可以试一下在没有写入任何内容的情况下执行脚本,命令行输入以下内容:

./learnToScript.sh
[zexcon ~]$ ./learnToScript.sh
bash: ./learnToScript.sh: Permission denied

提示权限被拒绝,因为该文件没有执行权限。所以你需要更改文件的权限才能执行脚本。如果你不熟悉权限相关知识,建议阅读 Paul W. Frields 写的 Fedora 杂志文章。

假定我们已经了解了权限相关知识,回到终端更改 learnToScript.sh 文件,增加执行权限。输入以下内容:

chmod 755 learnToScript.sh
[zexcon@trinity ~]$ ls -l
total 7
drwxr-xr-x. 1 zexcon zexcon   90 Aug 30 13:08 Desktop
drwxr-xr-x. 1 zexcon zexcon   80 Sep 16 08:53 Documents
drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads
-rwxr-xr-x. 1 zexcon zexcon   70 Sep 17 10:10 learnToScript.sh
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Music
drwxr-xr-x. 1 zexcon zexcon  318 Sep 15 13:53 Pictures
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Public
drwxr-xr-x. 1 zexcon zexcon    0 Jul  7 16:04 Videos
[zexcon@trinity ~]$

好的,现在一切准备就绪,你已经获得了 learnToScript.sh 命令的读取、写入和执行权限 (-rwxr-xr-x)。

编辑脚本文件

下面的内容需要你熟悉 vim 或其他类似的文本编辑器,本文选用 vim。在命令提示符下输入以下内容:

vim learnToScript.sh

这会打开一个空的文本文件,里面有一堆波浪号。键盘输入 i 将进入插入模式。通过查看终端窗口的左下角,你可以确认它处于该模式。(友情推荐,nano 编辑器也很不错。)

接下来我们要确保文件被正确的解释器识别。因此,输入 #! 和 bash 的目录 /bin/bash

#!/bin/bash

本文教程步骤的最后一件事是保存文档。按 Esc 退出输入模式,然后按 Shift+:。在冒号处输入 wq,按下回车键,就会写入(w)文件并退出(qvim 编辑器。

使用 vim 时要记住,要想写入文档,就需要输入 i,此时你会在底部看到 –INSERT–。要保存文档,就需要按 Esc 退出输入模式,然后按 Shift+:,输入 w 写入文件;或者按 Esc,然后 Shift+: 输入 q,实现退出而不保存;或者将 wq 连在一起,可以实现写入并关闭文件。Esc 本身就只是退出插入模式。你可以在其 官方网站教程网站 上找到更多关于 vim 的信息。

开始正式写脚本

echo 命令

echo 命令用于向终端返回一些信息,可以使用单引号、双引号或不使用引号。那么让我们用一个传统的 Hello World 来试试它!

#!/bin/bash

echo Hello World!
echo 'Hello World!'
echo "Hello World!"
[zexcon ~]$ ./learnToScript.sh
Hello World!
Hello World!
Hello World!
[zexcon ~]$

注意,上述三行得到了相同的结果。使用单引号、双引号或不使用引号的结果不是一定相同的,但在这个基本脚本中确实得到了同样的结果。在某些情况下,引号的类型不同会导致结果差异。至此恭喜你编写了第一个 Bash 脚本。当你继续创建更多脚本并放飞你的想法时,可能会需要了解以下更多的知识。

命令替换 $( ) 和

命令替换可以实现以下效果:获取在命令行执行命令的结果,并将该结果写入变量。例如,如果在命令提示符下输入 ls,可以获得当前工作目录的列表。我们用这个命令来实践一下。命令替换选项有两个,请注意:第一个选项使用键盘左侧 Tab 键上方的反引号。它与波浪号 ~ 在一个键位上。第二个选项使用 shell 变量。

#!/bin/bash

command1=`ls`
echo $command1

command2=$(ls)
echo $command2
[zexcon ~]$ ./learnToScript.sh
Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
[zexcon ~]$

注意变量、等号和命令开头之间不要有空格。使用这两个选项得到的结果是完全相同的。请注意,变量需要以美元符号开头。如果你忘记了,并且回显了不带美元符号的命令变量,会只输出命令的名称,如下所示:

#!/bin/bash

command1=`ls`
echo command1

command2=$(ls)
echo command2
[zexcon ~]$ ./learnToScript.sh
command1
command2
[zexcon ~]$

双括号 (())

那么双括号有什么用呢? 很简单,双括号用于数学方程式。

#!/bin/bash

echo $((5+3))
echo $((5-3))
echo $((5*3))
echo $((5/3))
[zexcon ~]$ ./learnToScript.sh
8
2
15
1
[zexcon ~]$

结语

至此,我们已经创建了第一个脚本。我们知道了如何执行多个命令:将它们放在一个脚本中并运行,就可以获得结果。下一篇文章会继续讨论,了解输入和输出的重定向、管道命令、使用双括号或者添加注释等知识。


via: https://fedoramagazine.org/bash-shell-scripting-for-beginners-part-1/

作者:zexcon 选题:lujun9972 译者:unigeorge 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

用一个带有虚拟化软件的系统(CentOS ISO),花费一个小时左右来设置一套自给自足的基本 Linux 服务器。

 title=

当学习新的 Linux 技能时(或像我一样学习 Linux 认证),在笔记本电脑上有一些可用的虚拟机(VM)是很有帮助的,这样你就可以在上面学习。

但是,如果在没有良好互联网连接的地方,你却想在一个 Web 服务器上工作,该怎么办? 想要使用没有安装过的其他软件,该怎么办? 如果需要从发行版的存储库中下载它,那么你可能会碰壁。只要做一点准备,你就可以设置一个 家庭实验室,你就在任何地方安装所需的任何东西,无论是否有网络连接。

要求如下:

  • 一个你打算使用的已下载的 Linux 发行版(例如,CentOS、Red Hat 等)ISO 文件
  • 一台具有虚拟化功能的主机。这里使用带有 KVMvirt-managerFedora,但其它 Linux 也可以类似工作。你甚至可以使用 Windows 或 Mac 进行虚拟化,但在实现方面存在一些差异
  • 大约一个小时

1、为存储主机创建一个虚拟机

使用 virt-manager 创建一个中等规格的虚拟机:1GB RAM、一个 CPU 和 16GB 磁盘空间就足够。

在虚拟机上安装 CentOS 7

 title=

选择你的语言并继续。

单击 “ 安装位置 Installation Destination ”,选择本地磁盘,勾选 “ 自动配置分区 Automatically Configure Partitioning ” 复选框,然后单击左上角的 “ 完成 Done ”。

在 “ 软件选择 Software Selection ” 下,选中 “ 基础设施服务器 Infrastructure Server ” ,选中 “ FTP 服务器 FTP Server ” 复选框,然后单击 “ 完成 Done ”。

 title=

选择 “ 网络和主机名 Network and Host Name ”,启用右上方的 “ 以太网 Ethernet ” ,然后单击左上角的 “ 完成 Done ”。

单击 “ 开始安装 Begin Installation ” 开始安装操作系统。

在安装时务必设置一个 root 密码,就可以创建一个带有密码的用户。

2、启动 FTP 服务

下一步是启动并设置 FTP 服务以运行并允许它通过防火墙。

用 root 密码登录,然后启动 FTP 服务器:

systemctl start vsftpd

允许它在每次启动时都能工作:

systemctl enable vsftpd

设置防火墙允许通过的端口:

firewall-cmd --add-service=ftp --perm

立即启用此更改:

firewall-cmd --reload

获取你的 IP 地址:

ip a

(可能是 eth0),在之后会用到。

3、复制本地存储库中的文件

通过虚拟化软件将安装 CD 挂载到虚拟机。

创建待挂载光盘的临时目录:

mkdir /root/temp

挂载安装 CD:

mount /dev/cdrom /root/temp

将所有文件复制到 FTP 服务器目录下:

rsync -avhP /root/temp/ /var/ftp/pub/

4、将服务器指向本地存储库

基于 Red hat 的系统使用以 repo 结尾的文件来确定从哪里获得软件更新和新的软件。这些文件在以下路径

cd /etc/yum.repos.d

你需要摆脱那些使你的服务器在互联网上寻找 CentOS 存储库的存储库文件。可以把它们复制到根目录下保存起来:

mv * ~

然后创建一个新的存储库文件来指向你的服务器。使用常用的文本编辑器创建一个名为 network.repo 文件,输入以下内容(将 <your IP> 替换为在步骤 2 中获得的 IP 地址),然后保存:

[network]
name=network
baseurl=ftp://192.168.122.<your ip>/pub
gpgcheck=0

完成后,可以用下面的命令来测试:

yum clean all; yum install ftp

如果 FTP 客户端按照预期从 “network” 存储库安装,那么本地仓库就已经设置好了!

 title=

5、使用你设置的存储库安装一个新的虚拟机

回到虚拟机管理器,并创建另一个虚拟机。但这一次,选择 “ 网络安装 Network Install ”, URL 为:

ftp://192.168.122.<your IP>/pub

如果你使用的是不同的宿主机操作系统或虚拟管理器,像前面一样安装虚拟机,并进行下一步。

6、将新的虚拟机设置为使用现有的“network”存储库

你可以从现有服务器复制存储库文件到这里使用。

和第一个服务器示例一样,输入:

cd /etc/yum.repos.d
mv * ~

然后:

scp [email protected].<your IP>:/etc/yum.repos.d/network.repo /etc/yum.repos.d

现在可以使用新的虚拟机并从本地存储库获取所有软件了。

再测试一遍:

yum clean all; yum install screen

这将从本地存储服务器安装软件。

这种设置,让你能够脱离网络安装软件,创建一个更可靠的环境,扩展你的技能。


via: https://opensource.com/article/19/6/create-centos-homelab-hour

作者:Bob Murphy 选题:lujun9972 译者:JaphiaChen 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出