小白成长之路-Linux程序管理(二)

文章目录

  • 一、源码包(编译)安装
    • 1.安装前先查看磁盘大小
    • 2.压缩包的位置
    • 3.执行编译
  • 二、二进制安装
  • 三、Linux操作系统启动流程
    • 3.1概述
    • 3.2启动流程核心阶段
      • 1.电源与固件阶段
      • 2.引导加载程序
      • 3.内核初始化
      • 4.systemd初始化进程
      • 5. 用户登录阶段
  • 四、systemd管理机制
  • 练习题
  • 总结


一、源码包(编译)安装

需要依赖gcc和make环境
配置: cd 源码包的解压路径:
./configure --prefix=安装路径(一般可以选择在/usr/local/nginx)
编译:make
安装: make install

案例:nginx编译安装:

1.安装前先查看磁盘大小

在这里插入图片描述
发现/home内存空间大可以放在/home下

2.压缩包的位置

浏览器下载的压缩包直接拖入桌面
在这里插入图片描述
使用mv移动到home下,使用tar -xf解压会生成一个新的目录
在这里插入图片描述
进入该目录,configure就是我们所需要的
在这里插入图片描述

3.执行编译

./configure --prefix=//usr/local/nginx
该目录会自动创建
如果出现下面这种情况代表没有安装gcc make依赖
在这里插入图片描述
重新编译后出现下面这种情况需要
yum install -y pcre-devel或者untils
yum install -y zlib-devel
在这里插入图片描述
然后再重新编译,会在源码包下生成Makefile文件
在这里插入图片描述
在执行make ,最后执行make install
也可以合并命令:./configure --prefix=/usr/local/nginx18 && make && make install 直接执行

验证:cd /usr/local/nginx
在这里插入图片描述
然后直接使用nginx命令不生效,是因为他并没有在sbin文件下,生成软连接到/usr/sbin下

命令优化:
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

二、二进制安装

只需要运行bin文件

jdk-6u14-linux-x64.bin
./jdk-6u14-linux-x64.bin
根据提示进行操作即可

三、Linux操作系统启动流程

3.1概述

Linux启动流程是从按下电源键到用户登录的完整过程,分为传统BIOS+MBR和现代UEFI+GPT两种模式。主流系统(如CentOS 7+/Ubuntu 18.04+)通常使用 UEFI + GRUB2 + systemd 组合。

3.2启动流程核心阶段

1.电源与固件阶段

UEFI/BIOS初始化

  • 硬件自检(POST, Power-On Self-Test)
  • UEFI特点:图形化界面、支持GPT分区、独立于OS的Shell环境
  • 定位启动设备:读取NVRAM中的启动项(efibootmgr命令可管理)

2.引导加载程序

  • GRUB2 核心作用

    • 配置文件路径:/boot/grub2/grub.cfg(由grub2-mkconfig生成)

    • 关键配置参数:

      set root=(hd0,gpt1)  # 指定/boot所在分区
      linux /vmlinuz-5.4.0 root=/dev/sda2 ro  # 内核路径及挂载参数
      initrd /initramfs-5.4.0.img             # 初始化内存文件系统
      
  • 用户交互

    • e 临时编辑启动参数(如单用户模式 systemd.unit=rescue.target
    • c 进入GRUB命令行

3.内核初始化

内核解压与初始化

  • 加载vmlinuz:压缩的内核镜像
  • initramfs 作用:
    • 包含根文件系统挂载前的驱动(如LVM、RAID)
    • 提供dracut工具集(可通过dmesg | grep initramfs查看日志)
  • 挂载根文件系统(/)为只读模式

4.systemd初始化进程

首个用户态进程

  • PID=1,替代传统init

  • 核心任务:

    1. 解析/etc/systemd/system/default.target(默认运行级别)
    2. 并行启动服务单元(Unit)
    3. 激活sysinit.target(系统初始化)、basic.target(基础服务)
  • 关键操作命令

    systemctl get-default         # 查看默认target
    systemctl set-default multi-user.target  # 设置默认为命令行模式
    journalctl -b                # 查看本次启动日志
    

5. 用户登录阶段

  • 终端登录
    • getty 服务生成终端(/etc/systemd/system/getty.target.wants/
    • 调用login验证用户身份
  • 图形化登录
    • Display Manager(如GDM、LightDM)启动X/Wayland会话
      提示:这里对文章进行总结:

四、systemd管理机制

语法结构:

systemctl 服务控制类型 服务名称[.service]

服务控制类型:

start:启动

Active: active (running)

stop:停止

Active: inactive (dead)

restart:重启

会停止服务

reload:重载

不停止服务,加载配置文件

优雅的重启

status:查看状态

enable:开机自启动

is-enabled:查看是否开机自启动

disabled

关闭开机自启动

enabled

开启开机自启动

disable:开机不进行自启动

–now 配合enable与disable使用;在进行开机自启或不自启的同时进行打开或关闭指定服务

选项:

-t
指定unit类型
Unit Commands
list-units
列出所有unit,一般与-t结合

案例:

systemctl list-units -t service

systemctl daemon-reload #当改变unit的脚本文件后,需要进行重新识别

练习题

总结

例如:以上就是今天要讲的内容,这一部分还涉及到故障排错,后续会有专门的课题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/84905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ansible模块——Ansible的安装!

Ansible 安装 Ansible 有三种安装方式,源码安装、发行版安装和 Python 安装。 使用发行版安装或 Python 安装两种方式时,Ansible 的安装包有两个,区别如下: • ansible-core:一种极简语言和运行时包,包含…

《全面解析鸿蒙相关概念:鸿蒙、开源鸿蒙、鸿蒙 Next 有何区别》

大家好,这里是程序员晚枫,最近接了一个和鸿蒙电脑有关的商单,所以专门花时间研究了一下和鸿蒙有关的概念。 鸿蒙系统相关概念主要有以下三个,它们之间存在多方面的区别,以下是具体介绍: OpenHarmony 定义…

C# 数组与字符串:全面解析与应用实践

在C#编程语言中,数组和字符串是两种最基础也是最重要的数据类型。无论是简单的控制台应用程序,还是复杂的企业级系统,数组和字符串都扮演着不可或缺的角色。本文将全面深入地探讨C#中数组和字符串的特性、使用方法、性能考量以及实际应用场景…

VR 技术在农业领域或许是一抹新曙光​

在科技日新月异的今天,VR(虚拟现实)技术已不再局限于游戏、影视等娱乐范畴,正逐步渗透到各个传统行业,为其带来全新的发展契机,农业领域便是其中之一。VR 技术利用计算机生成三维虚拟世界,给予用户视觉、听觉、触觉等多…

SPEAR开源程序是用于逼真演示 AI 研究的模拟器

​一、软件介绍 文末提供程序和源码下载 SPEAR开源程序是用于逼真具身 AI 研究的模拟器 二、AI 研究的模拟器 交互式模拟器正在成为训练具体代理的强大工具,但现有的模拟器存在内容多样性、物理交互性和视觉保真度有限的问题。我们通过引入 SPEAR:照片…

第1章 Redis 概述

一、Redis 简介 Redis,Remote Dictionary Server,远程字典服务,由意大利人Salvatore Sanfilippo(又名Antirez)开发,是一个使用ANSI C 语言编写、支持网络、 可基于内存亦可持久化的日志型、NoSQL 开源内存数据库,其提供多种语言的API&#xff61…

图论学习笔记 5 - 最小树形图

我们不废话,直接进入正题:最小树形图,一个名字看起来很高级的东西。 声明:为了便于理解,可能图片数量会有亿点点多。图片尺寸可能有的较大。 概念 最小树形图的英文是 Directed Minimum Spanning Tree。 相信懂英文…

力扣面试150题--完全二叉树的节点个数

Day 51 题目描述 思路 根据完全二叉树的规律,完全二叉树的高度可以直接通过不断地访问左子树就可以获取,判断左右子树的高度: 1. 如果相等说明左子树是满二叉树, 然后进一步判断右子树的节点数(最后一层最后出现的节点必然在右子树中) 2. 如…

社区造数服务接入MCP|得物技术

一、背景 ​ 今年 MCP 的概念非常火,市面上也涌现出了一大批 MCP 相关工具。作为技术一线者,都会按捺不住地去实操一下,很早的时候就有个设想,如果把我们的测试工具都改造为符合 MCP 服务协议标准,然后全部接入 AI A…

Mysql 查询时间段内的sql优化

Mysql 查询时间段内的sql优化 一说写到查询某个时间段的sql查询,我们就会使用DATE_FORMAT函数格式化日期字段: 比如查询某年某月的数据,我们可能常用的方式如下 DATE_FORMAT(pay_time,%Y-%m)=DATE_FORMAT(now(),%Y-%m) 但是这样做会使索引失效,尤其在数据量越来越多的情况…

用 Deepseek 写的 html+js 密码生成器

下面是一个功能完整的密码生成器HTMLJS实现&#xff0c;包含数字、小写字母、大写字母、符号、避免重复字符和密码长度设置功能。 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&…

WPF绑定

如何使用绑定去改变事件驱动的关系。 先介绍一下标签扩展 目录 控件与控件之间的绑定 代码分析 绑定语法详解 1. Binding - 绑定标记 2. ElementName=slider - 绑定源 3. Path=Value - 绑定路径 不同控件属性的默认模式: 控件和属性绑定 1. 数据模型类的作用 2. 窗…

同源“平滑思想”的问题解法:正则化与拉普拉斯平滑

同源“平滑思想”的问题解法&#xff1a;正则化与拉普拉斯平滑 在机器学习和概率模型的实践中&#xff0c;正则化与拉普拉斯平滑是两个看似无关的技术&#xff1a;前者用于防止模型过拟合&#xff0c;后者用于解决零概率问题。但如果深入理解它们的核心逻辑&#xff0c;会发现…

用 AI 让学习更懂你:如何打造自动化个性化学习系统?

用 AI 让学习更懂你:如何打造自动化个性化学习系统? 在这个信息爆炸的时代,传统的学习方式已经难以满足个体化需求。过去,我们依赖固定的教学课程,所有学生按照统一进度进行学习,但每个人的学习节奏、兴趣点和理解方式都不尽相同。而人工智能(AI)正在彻底改变这一局面…

PyQt学习系列08-插件系统与模块化开发

PyQt学习系列笔记&#xff08;Python Qt框架&#xff09; 第八课&#xff1a;插件系统与模块化开发 &#xff08;原课程规划中的第12课&#xff0c;按用户要求调整为第9课&#xff09; 课程目标 掌握Qt插件系统的原理与开发方法实现可扩展的模块化应用程序理解QPluginLoader动…

rlemasklib 安装笔记

目录 windows 安装&#xff0c;没成功 报错笔记&#xff1a; windows 安装&#xff0c;没成功 anslation_unit.obj -Wno-cpp -Wno-unused-function -stdc99 -O3 cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp” error: command C:\\Program Files\\Microso…

Ubuntu 系统grub日志级别设置

在 Ubuntu 系统中&#xff0c;GRUB 的日志级别主要与内核日志级别&#xff08;loglevel&#xff09;相关&#xff0c;而不是 GRUB 自身的日志级别。内核日志级别通常从 0 到 7&#xff0c;其中 0 是最高级别&#xff08;最严重&#xff09;&#xff0c;7 是最低级别&#xff08…

【前端】使用HTTPS

在前端本地开发环境中使用 HTTPS 主要取决于你用的是哪个构建工具&#xff08;如 Vite、Webpack、Vue CLI 等&#xff09;。 目录 ViteWebpack本地生产环境 npx serve浏览器提示“不安全”解决方法上传github注意不要把key传上去 Vite npm install --save-dev types/node #安…

Python 包管理工具 uv的一些常用指令

1.如何安装uv&#xff1a; 在Windows下&#xff0c;执行下面的指令&#xff1a; powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" 安装很快&#xff0c;安装完成后&#xff0c;会出现&#xff1a; 接着&#xff0c;我们运行指…

行为型:策略模式

目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 5、优化技巧 1、核心思想 目的&#xff1a;将算法&#xff08;行为&#xff09;抽象出来作为一系列策略类&#xff0c;使他们可以相互替换&#xff0c;使系统拥有“可插拔”扩展的能…