0x02 Linux Fundamentals Part 3

发布时间 2023-12-12 12:50:35作者: Kruskal

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

还有一些日志存储有关操作系统本身如何运行以及用户执行的操作(例如身份验证尝试)的信息。