提升Linux技能的13个必杀技!

作者:Damon Garn(Red Hat) 编译:沈建苗

这篇Linux基础知识指南确保您为家里、职场或认证考试中遇到的任何问题都做好了准备。

1.  选择Linux

家庭实验室有多种用途,您需要了解自己的实验室可以派什么用场。

•如果您只想在Linux上探究一番,安装CentOS Stream或Fedora提供了一种灵活的环境。可以在备用计算机或Raspberry Pi上安装其中一个发行版,或作为虚拟机或容器来安装。
•如果您的要求很简单,可以在受支持的平台上安装Red Hat Enterprise Linux(RHEL)。这让您可以开始使用企业级质量的Linux,这意味着一旦您完善了设置,可以随时迁移到生产环境中。

所有这些发行版源自Fedora,因此无论您选择哪个,安装过程基本相同。如果您不确定如何入手,不妨阅读这篇入门指南(https://www.redhat.com/sysadmin/introduction-red-hat-enterprise-linux-8)。使用该信息来选择下一个任务中要安装的发行版,并更深入地了解Linux环境。

2.  至少安装三个发行版

•创建单独的boot、var、home、swap和filesystem root分区(共五个分区)。留出至少100MB的未使用、未分区的闲置硬盘空间,供将来的任务使用。

•选择可供所选择的发行版使用的任何桌面图形用户界面(GUI)。

•安装过程中创建一个用户,并使该用户成为管理员。这授予用户sudo权限。

•一旦安装完成,探索内置的帮助功能:

△使用参考手册页,研究fstab文件。

△参考手册页各部分之间有什么区别?管理员主要阅读第1节、第5节和第8节——为什么?

△如何在参考手册页中进行关键字搜索?

△在/usr/share/doc中可以找到什么?

△探索任何可用的GUI帮助文件。

•完成Vim教程(命令是vimtutor),以熟悉Vim。如果您愿意,可以使用Nano。继续进行这些活动之前,确保您可以创建、打开、编辑、保存和关闭配置文件。

•尝试使用tzselect命令,为特定时区配置安装。

•选择一个安装作为您的主实验室计算机。将其指定为“服务器”,选择第二个安装作为“客户机”,将在剩余的活动中使用这两个系统。

3.  调整用户权限

•用您在安装过程中创建的用户帐户来登录。需要执行牵涉整个系统的管理任务时,使用sudo命令获得root权限。这是Linux管理中一个重要的最佳实践。

•使用sudo命令,调整分配给您用户帐户的权限。需要使用visudo命令,编辑/etc/sudoers文件。

4. 使用文本编辑器

•使用Vim,创建认证学习计划。列出您打算作为Linux技能发展的一部分要完成的任务。

•使用Nano文本编辑器,列出三项(或更多)资源。

•使用GUI文本编辑器,列出您有信心的三项Linux技能和没有信心的三项Linux技能。这应该是您在这整个活动中唯一一次使用GUI编辑器。

5.  管理用户和用户组

•在添加任何用户帐户之前,使用/etc/skel目录定义配置文件设置。

•在添加任何用户帐户之前,使用/etc/login.defs文件来设置密码和帐户到期时间。使用以下密码要求:

△密码应在90天后过期,并有5天的警告期。

•使用命令行创建在以后的活动中使用的五个用户帐户。您可以使用这些帐户,试用权限和所有权。为每个用户赋予独特的名字,但为他们设置同一个密码。

•使用命令行基于假想的部门:销售、营销、人力资源、IT和工程,创建五个用户组。将来自上面的一个用户放入到每组中。

•使用sudo,将重新启动系统的功能委派给仅仅一个用户。

6.  管理文件

•在文件系统的根目录,为每个部门(销售、营销、人力资源、IT和工程)创建目录。

•配置标准的Linux权限和所有权,以便每个组只能访问各自的部门目录。比如说,销售组可以访问/sales目录,但不能访问其他部门的目录。

△完成并测试上一步后,配置ACL权限,允许营销部门对/sales目录拥有读取权限。

△使用ACL权限,允许一个用户帐户对/IT目录拥有读取权限。

△在/marketing目录上配置SGID和粘滞位(sticky bit)。

•确保您现有的两个用户帐户现在是营销组的成员。

△使用每个帐户在/marketing目录中创建一个文件。

△测试其中一个帐户是否可以删除另一个帐户创建的文件(由于粘滞位,它们应该无法删除)。

•创建一个名为unchangeable.txt的文件,对其设置不可变属性,然后删除该文件。

•配置文件链接。

△在/opt目录中创建一个名为LinksTest.txt的文件,然后在/tmp目录中创建该文件的硬链接。使用Vim,通过/opt/LinksTest.txt路径在文件中添加一行文本,然后通过使用/tmp/LinksTest.txt文件路径,显示该文件的内容。

△在root用户的主目录中创建指向/tmp/LinksTest.txt的符号链接,并查看文件的内容。

△删除/tmp/LinksTest.txt文件,然后尝试通过/root/LinksTest.txt符号链接,查看文件的内容。

•在/tmp目录下创建10个文件,然后使用targzip来捆绑和压缩文件。

△删除10个原始文件,然后从您的打包文件(tarball)中恢复它们。

•使用find命令在部门目录中搜索测试文件。先以root用户的身份执行该任务,然后以拥有该目录的组成员的身份执行该任务,最后以不是拥有该目录的组成员的用户身份执行该任务。

•仅在命令行中,试着安装和卸载ISO镜像。

•将文件从ISO复制到Linux安装系统上的目录。

•配置LVM:

△指定剩余的闲置硬驱空间的两个部分(各为50MB)作为LVM使用的物理卷(PV)。

△将它们与PV合并到一个卷组中,然后配置一个100MB大小的逻辑卷。

△创建一个目录,作为该逻辑卷的挂载点,并为/etc/fstab添加一个条目,以便在系统启动过程中挂载。

7.  管理软件

•使用rpm命令来管理软件:

△使用rpm命令清点所有已安装的软件,并将该清点列表重定向到文本文件中。

△使用rpm命令安装RPM包,比如安装zsh包。如有必要,下载软件包。

△使用rpm命令获取有关zsh包的信息,然后使用rpm卸载包。

•使用dnf命令来管理软件:

△使用dnf命令安装RPM包。比如,安装ksh包。

△使用dnf命令获取有关ksh包的信息,然后使用dnf卸载包。

•查找并下载您必须编译的软件。完成编译软件的过程。(GitLab、GitHub和Sourceforge是流行的开发存储库。)

•下载一个含有MD5校验和的软件,以验证其完整性。下载后,将您的MD5结果与网站上的结果进行比较。

8.  引导至CLI和GUI

•使用systemd,将您的一台实验室机器配置为引导至命令行接口(CLI),然后重新启动以确认您成功。

•无需重新启动或更改默认设置,通过使用systemd来启动GUI。

•将虚拟机重新配置为默认引导至GUI,然后重新引导以确认您成功。

•再将虚拟机配置为引导至CLI,然后重新引导以确认您成功。

9.  管理硬件

•使用以下命令来记录实验室计算机的硬件信息:dfducat /proc/cpuinfocat /proc/meminfodevicespartitionsifconfigip addrcat  /etc/fstabuname –a

•将这些命令的输出定向到文本文件中(制作尽可能多的文本文件,以合理组织该文档)。使用>>>来组织数据。

•将dmesg输出重定向到文本文件,然后使用grep实用程序来显示文件中提到“内存”或“CPU”的任何内容。该文件还告诉您什么?

10.  创建脚本

•在网上搜索至少三个对您有用的简单脚本。

△执行脚本时,在脚本前使用“点斜线”(./)的目的是什么?

△脚本开头的“sh-bang”(比如#!/bin/bash)的目的是什么?

•使用Vim来编辑这些脚本。不要使用GUI编辑器。

•阅读Jim Hall所写的《学用Bash》文章(https://opensource.com/article/20/12/learn-bash),然后下载David Both撰写的《面向系统管理员的Bash脚本》电子书(https://opensource.com/downloads/bash-scripting-ebook)。

•创建并使用备份脚本,备份您之前创建的部门目录的内容。

△使用cron,安排您的备份脚本每小时运行一次。一旦您知道它切实可行,请立即取消配置!

•在GitHub上创建免费帐户,然后将您的脚本存储在那里,以便版本控制。

11. 配置系统和网络服务

•记录OSI模型的七层。

•将您的至少一个Linux系统的IP地址和MAC地址记录在root用户主目录中名为networking.txt的文件中。这个IP地址是哪一类?

•编辑可用虚拟机上的/etc/hosts文件,允许按名称进行ping的功能。

•如果您有两个或多个联网的虚拟机,建立SSH连接。

△仅为基于密钥的身份验证配置SSH。

△为每个SSH服务器设置横幅消息,列出该服务器的主机名。(换句话说,将一个虚拟机设为管理工作站,将其余虚拟机设为服务器,然后使用SSH连接从一个工作站执行所有管理工作。)您可能需要为SSH连接配置防火墙。

•执行指向IP地址8.8.8.8的traceroute(跟踪路由),并将输出记录在一个名为traceroutegoogle.txt的文件中,该文件存储在根用户的主目录中。使用tracepath命令,重复该过程。

•将一个虚拟机配置为拥有静态IP地址的DHCP服务器,将另一个虚拟机配置为DHCP客户机。

△使用ping来验证两个虚拟机之间的连接。

•为本节中测试的任何网络服务(包括HTTP和FTP)打开防火墙中的端口。

△使用firewall-cmd命令来管理firewalld服务。您的发行版可能使用不同的防火墙服务,因此应使用适当的命令。

•安装并启用Apache Web服务器(对Apache而言该进程名为httpd)。

△在multi-user.targetgraphics.target配置中,将Apache配置为自动启动。

△创建一个托管在您其中一个虚拟机上的测试网站。您需要创建index.html网页。验证该网站可从您的其他虚拟机来访问。

△结合使用psgrep,显示有关Apache(httpd)进程的进程信息。

•安装和配置vsFTPd服务器解决方案,设置vsFTPd服务以便自动启动。

△使测试FTP网站可用,并验证可以从它下载文件。

•查看上述HTTP和FTP服务的rsyslog日志文件。

•定制GRUB2菜单文件,以便您的发行版在启动菜单中读取“MyLinuxDistro”,而不是默认菜单项(通常显示由供应商指定的发行版的正式名称)。

•使用top命令来重新设定进程优先级。

•将systemd-analyze命令的输出重定向到一个文本文件,然后注意哪三个服务启动时间最长。

•查看/proc/cpuinfo文件的内容,并记录CPU的型号名称。

•查看/proc/meminfo文件的内容,并记录系统中的内存总量。

12. 恢复忘记的root密码

•通过中断GRUB2启动过程来重置root用户的密码。算一下时间,需要多长时间可以使用该配置?如果您安装了带全盘加密的Linux,这不管用,所以如果您能够执行该任务,是时候该启用加密了!

13. 探究GUI

•探究不同发行版可用的各种GUI。这些GUI因您使用的发行版和您选择的安装选项而异。在各种GUI中寻找那些熟悉或有用的功能。

•考虑您如何使用个人计算机。是否有在Linux上运行的实用的开源应用程序?比如说,音乐家常使用录音软件——Linux中有哪些能派这个用场的软件?游戏、数码摄影和图像编辑等方面有没有相应的软件?

•在网上阅读有关各种Fedora Spins的描述。

文章来源:https://www.redhat.com/sysadmin/linux-skills-home-lab

K8S中文社区微信公众号

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址