Task1、引言
这个房间将展示一些您可能日常的实用程序和应用程序,还将通过学习自动化、包管理和服务/应用程序日志记录来提高您的 Linux-fu 技能。
Task2、部署Linux机器
Task3、终端文本编辑器
①Nano
用法:nano filename
功能:
- 搜索文本
- 复制和粘贴
- 跳转到行号
- 找出您所在的行的编号
②VIM
用法:vim filename
优点:
- 可定制 - 您可以修改您选择的键盘快捷键
- 语法突出显示 - 如果您正在编写或维护代码,这非常有用,使其成为软件开发人员的流行选择
- VIM 适用于所有可能未安装 nano 的终端
- 有很多资源可供使用,例如备忘单、教程和各种资源。
Task4、一般/有用的实用程序
①Downloading Files:wget
语法:wget 下载的资源的地址
②Transferring Files From Your Host - SCP (SSH)
功能:
- 将文件和目录从当前系统复制到远程系统
- 将文件和目录从远程系统复制到当前系统
语法:scp 本地主机存储文件名 用户名@远程主机ip地址:远程主机传输文件存放的位置
语法:scp 远程主机用户名@远程主机ip地址:远程主机传输文件的地址 本地储存的文件名
③Serving Files From Your Host - WEB
命令:python3 -m http.server
Python3 的“HTTPServer”为运行命令的目录中的文件提供服务,这可在手册页中找到的选项来调整。
我们从一个名为“webserver”的目录提供服务,假设该目录有一个名为“file”的目录。现在,让我们使用 wget 使用计算机的 IP 地址和文件名来下载文件。该模块的一个缺陷是您无法建立索引,因此必须知道要使用的文件的确切名称和位置。
服务器成功捕获信息
Task5、进程
① Viewing Processes
命令:ps aux
我们可以使用 ps 命令来提供用户会话的运行进程列表,以及一些附加信息,如状态代码、运行进程的会话、使用 CPU 的时间以及正在执行的实际程序或命令的名称。
另一个非常有用的命令是 top 命令, 提供有关系统上运行的进程的实时统计信息,而不是一次性视图。
② Managing Processes
命令:kill PID 终止进程
以下是我们可以在进程被终止时发送给进程的一些信号:
- SIGTERM - 终止进程,但允许它预先执行一些清理任务。
- SIGKILL - 终止进程 - 事后不进行任何清理。
- SIGSTOP - 停止/挂起进程。
③ How do Processes Start?
命名空间是操作系统用于隔离和管理计算机资源的机制。通过划分可用资源,如CPU和RAM,给不同的进程,命名空间确保进程之间的隔离,提高系统安全性。PID(进程标识符)是关键元素,ID为0的进程通常是系统初始化进程,例如systemd。这个初始化进程负责管理用户进程,作为其他进程的父进程。系统启动后,所有程序都作为初始化进程的子进程启动,共享资源但独立运行,使得它们容易被识别和管理。
④ Getting Processes/Services to Start on Boot
例如,告诉apache启动,我们将使用 systemctl start apache2
我们可以使用 systemctl 执行四个选项:
- start
- stop
- enable
- diable
⑤ An Introduction to Backgrounding and Foregrounding in Linux
进程可以在两种状态下运行:后台和前台。例如echo命令,就是在前台运行,当加上&命令时,只给出了ehco进程ID,而不是实际输出,因为它在后台运行。
我们也可以通过脚本实现与&同样的效果【将进程移到后台】,该脚本将继续重复“这将继续循环,直到我停止!”,直到停止或暂停该过程。
使用 Ctrl + Z(如 T^Z 所示)暂停进程。现在我们的终端不再充满消息——直到我们将其置于前台,可通过fg恢复进程
⑥ Foregrounding a process
利用ps aux查看后台正在运行的脚本文件
我们可以使用fg命令将正在后台运行的进程重新在终端上使用,脚本的输出结果现在重新返回。
Task 6、自动化
用户可能希望安排在系统启动后执行特定的操作或任务。以运行命令、备份文件或启动您喜爱的程序(例如 Spotify 或 Google Chrome)为例。我们将讨论 cron 进程,但更具体地说,我们如何通过使用 crontabs 与其进行交互。 Crontab 是启动过程中启动的进程之一,负责促进和管理 cron 作业。
crontab 只是一个特殊的文件,其格式可以被 cron 进程识别以逐步执行每一行。 crontab 需要 6 个特定值:
让我们以备份文件为例。可能希望每 12 小时备份一次“cmnatic”的“文档”。我们将使用以下格式:
如果我们不希望为该特定字段提供值,即我们不关心它执行的月份、日期或年份——只关心它每 12 小时执行一次,我们只需放置一个星号即可。
在线“Crontab Generator”:Crontab Generator
Task7、包管理
可以使用 add-apt-repository 命令或列出其他提供商来添加其他存储库。虽然可以通过使用 dpkg 等软件包安装程序来安装软件,但 apt 的好处意味着每当我们更新系统时,包含我们添加的软件的存储库也会检查更新。
在本例中,我们将把文本编辑器 Sublime Text 添加到 Ubuntu 机器的软件源中,因为它不在 Ubuntu 的默认软件源中。在添加软件时,我们会使用所谓的 GPG(Gnu Privacy Guard)密钥来保证下载内容的完整性。这些密钥本质上是开发者的一种安全检查,他们会说:"这是我们的软件"。如果密钥与系统信任的密钥和开发人员使用的密钥不一致,那么软件将无法下载。因此,首先我们需要为 Sublime Text 3 的开发人员添加 GPG 密钥
step1:下载 GPG 密钥并使用 apt-key 来信任它
现在我们已将此密钥添加到我们的受信任列表中,现在我们可以将 Sublime Text 3 的存储库添加到我们的 apt 源列表中。一个好的做法是为我们添加的每个不同的社区/第三方存储库创建一个单独的文件。
让我们在 /etc/apt/sources.list.d 中创建一个名为 sublime-text.list 的文件,并输入存储库信息,如下所示:
现在使用 Nano 或您选择的文本编辑器将 Sublime Text 3 存储库添加并保存到这个新创建的文件中:
添加此条目后,我们需要更新 apt 以识别此新条目
成功更新后,我们现在可以继续安装我们信任的软件并使用 apt install sublime-text 添加到 apt 中
删除包:
Task8、维护系统日志
突出显示了 Ubuntu 计算机上运行的三个服务的一些日志:
- Apache2 Web 服务器
- fail2ban 服务的日志,用于监视尝试的暴力破解
- 用作防火墙的 UFW 服务
服务和日志是监控系统健康状况并保护系统的好方法。不仅如此,Web 服务器等服务的日志还包含有关每个请求的信息 - 允许开发人员或管理员诊断性能问题或调查入侵者的活动。如:
- access log
- error log
还有一些日志存储有关操作系统本身如何运行以及用户执行的操作(例如身份验证尝试)的信息。