这篇Linux基础知识指南,能确保您在家里、职场或认证考试中遇到的任何问题都做好了准备。
01
选择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环境。
02
至少安装三个发行版
-
创建单独的boot、var、home、swap和filesystem root分区(共五个分区)。留出至少100MB的未使用、未分区的闲置硬盘空间,供将来的任务使用。
-
选择可供所选择的发行版,使用的任何桌面图形用户界面(GUI)。
-
安装过程中创建一个用户,并使该用户成为管理员。授予用户sudo权限。
-
一旦安装完成,探索内置的帮助功能:
1、使用参考手册页,研究fstab文件。
2、参考手册页各部分之间有什么区别?管理员主要阅读第1节、第5节和第8节------为什么?
3、如何在参考手册页中进行关键字搜索?
4、在/usr/share/doc中可以找到什么?
5、探索任何可用的GUI帮助文件。
-
完成Vim教程(命令是vimtutor),以熟悉Vim。如果您愿意,可以使用Nano。继续进行这些活动之前,确保您可以创建、打开、编辑、保存和关闭配置文件。
-
尝试使用tzselect命令,为特定时区配置安装。
-
选择一个作为您的主实验室计算机。将其指定为"服务器 ",选择第二个作为"客户机",将在剩余的活动中使用这两个系统。
03
调整用户权限
-
用您在安装过程中创建的用户帐户 来登录。需要执行牵涉整个系统的管理任务时,使用sudo命令获得root权限。这是Linux管理中一个重要的最佳实践。
-
使用sudo命令,调整分配给您用户帐户的权限。需要使用visudo命令,编辑/etc/sudoers文件。
04
使用文本编辑器
-
使用Vim,创建认证学习计划。列出您打算作为Linux技能发展的一部分要完成的任务。
-
使用Nano文本编辑器,列出三项(或更多)资源。
-
使用GUI文本编辑器,列出您有信心的三项Linux技能和没有信心的三项Linux技能。这应该是您在这整个活动中唯一一次使用GUI编辑器。
05
管理用户和用户组
-
在添加任何用户帐户之前,使用/etc/skel目录定义配置文件设置。
-
在添加任何用户帐户之前,使用/etc/login.defs文件来设置密码和帐户到期时间。使用以下密码要求:
1、密码应在90天后过期,并有5天的警告期。
-
使用命令行创建在以后的活动中使用的五个用户帐户。您可以使用这些帐户,试用权限和所有权。为每个用户赋予独特的名字,但为他们设置同一个密码。
-
使用命令行基于假想的部门:销售、营销、人力资源、IT和工程,创建五个用户组。将来自上面的一个用户放入到每组中。
-
使用sudo,将重新启动系统的功能委派给仅仅一个用户。
06
管理文件
-
在文件系统的根目录,为每个部门(销售、营销、人力资源、IT和工程)创建目录。
-
配置标准的Linux权限和所有权,以便每个组只能访问各自的部门目录。比如说,销售组可以访问/sales目录,但不能访问其他部门的目录。
1、完成并测试上一步后,配置ACL权限,允许营销部门对/sales目录拥有读取权限。
2、使用ACL权限,允许一个用户帐户对/IT目录拥有读取权限。
3、在/marketing目录上配置SGID和粘滞位(sticky bit)。
- 确保您现有的两个用户帐户现在是营销组的成员。
1、使用每个帐户在/marketing目录中创建一个文件。
2、测试其中一个帐户是否可以删除另一个帐户创建的文件(由于粘滞位,它们应该无法删除)。
-
创建一个名为unchangeable.txt的文件,对其设置不可变属性,然后删除该文件。
-
配置文件链接。
1、在/opt目录中创建一个名为LinksTest.txt的文件,然后在/tmp目录中创建该文件的硬链接。使用Vim,通过/opt/LinksTest.txt路径在文件中添加一行文本,然后通过使用/tmp/LinksTest.txt文件路径,显示该文件的内容。
2、在root用户的主目录中创建指向/tmp/LinksTest.txt的符号链接,并查看文件的内容。
3、删除/tmp/LinksTest.txt文件,然后尝试通过/root/LinksTest.txt符号链接,查看文件的内容。
- 在/tmp目录下创建10个文件,然后使用tar和gzip来捆绑和压缩文件。
1、删除10个原始文件,然后从您的打包文件(tarball)中恢复它们。
-
使用find命令在部门目录中搜索测试文件。先以root用户的身份执行该任务,然后以拥有该目录的组成员的身份执行该任务,最后以不是拥有该目录的组成员的用户身份执行该任务。
-
仅在命令行中,试着安装和卸载ISO镜像。
-
将文件从ISO复制到Linux安装系统上的目录。
-
配置LVM:
1、指定剩余的闲置硬驱空间的两个部分(各为50MB)作为LVM使用的物理卷(PV)。
2、将它们与PV合并到一个卷组中,然后配置一个100MB大小的逻辑卷。
3、创建一个目录,作为该逻辑卷的挂载点,并为/etc/fstab添加一个条目,以便在系统启动过程中挂载。
07
管理软件
- 使用rpm命令来管理软件:
1、使用rpm命令清点所有已安装的软件,并将该清点列表重定向到文本文件中。
2、使用rpm命令安装RPM包,比如安装zsh包。如有必要,下载软件包。
3、使用rpm命令获取有关zsh包的信息,然后使用rpm卸载包。
- 使用dnf命令来管理软件:
1、使用dnf命令安装RPM包。比如,安装ksh包。
2、使用dnf命令获取有关ksh包的信息,然后使用dnf卸载包。
-
查找并下载您必须编译的软件。完成编译软件的过程。(GitLab、GitHub和Sourceforge是流行的开发存储库。)
-
下载一个含有MD5校验和的软件,以验证其完整性。下载后,将您的MD5结果与网站上的结果进行比较。
08
引导至CLI和GUI
-
使用systemd,将您的一台实验室机器配置为引导至命令行接口(CLI),然后重新启动以确认您成功。
-
无需重新启动或更改默认设置,通过使用systemd来启动GUI。
-
将虚拟机重新配置为默认引导至GUI,然后重新引导以确认您成功。
-
再将虚拟机配置为引导至CLI,然后重新引导以确认您成功。
09
管理硬件
-
使用以下命令来记录实验室计算机的硬件信息:df、du、cat /proc/cpuinfo、cat /proc/meminfo、devices、partitions、ifconfig、ip addr、cat /etc/fstab和uname --a。
-
将这些命令的输出定向到文本文件中(制作尽可能多的文本文件,以合理组织该文档)。使用>和>>来组织数据。
-
将dmesg输出重定向到文本文件,然后使用grep实用程序来显示文件中提到"内存"或"CPU"的任何内容。该文件还告诉您什么?
10
创建脚本
- 在网上搜索至少三个对您有用的简单脚本。
1、执行脚本时,在脚本前使用"点斜线"(./)的目的是什么?
2、脚本开头的"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)。
-
创建并使用备份脚本,备份您之前创建的部门目录的内容。
1、使用cron,安排您的备份脚本每小时运行一次。一旦您知道它切实可行,请立即取消配置!
- 在GitHub上创建免费帐户,然后将您的脚本存储在那里,以便版本控制。
11
配置系统和网络服务
-
记录OSI模型的七层。
-
将您的至少一个Linux系统的IP地址和MAC地址记录在root用户主目录中名为networking.txt的文件中。这个IP地址是哪一类?
-
编辑可用虚拟机上的/etc/hosts文件,允许按名称进行ping的功能。
-
如果您有两个或多个联网的虚拟机,建立SSH连接。
1、仅为基于密钥的身份验证配置SSH。
2、为每个SSH服务器设置横幅消息,列出该服务器的主机名。(换句话说,将一个虚拟机设为管理工作站,将其余虚拟机设为服务器,然后使用SSH连接从一个工作站执行所有管理工作。)您可能需要为SSH连接配置防火墙。
-
执行指向IP地址8.8.8.8的traceroute(跟踪路由),并将输出记录在一个名为traceroutegoogle.txt的文件中,该文件存储在根用户的主目录中。使用tracepath命令,重复该过程。
-
将一个虚拟机配置为拥有静态IP地址的DHCP服务器,将另一个虚拟机配置为DHCP客户机。
1、使用ping来验证两个虚拟机之间的连接。
- 为本节中测试的任何网络服务(包括HTTP和FTP)打开防火墙中的端口。
1、使用firewall-cmd命令来管理firewalld服务。您的发行版可能使用不同的防火墙服务,因此应使用适当的命令。
- 安装并启用Apache Web服务器(对Apache而言该进程名为httpd)。
1、在multi-user.target和graphics.target配置中,将Apache配置为自动启动。
2、创建一个托管在您其中一个虚拟机上的测试网站。您需要创建index.html网页。验证该网站可从您的其他虚拟机来访问。
3、结合使用ps和grep,显示有关Apache(httpd)进程的进程信息。
- 安装和配置vsFTPd服务器解决方案,设置vsFTPd服务以便自动启动。
1、使测试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.kubernetes.org.cn/9806.html