九、Ubuntu Linux操作系统
一、Ubuntu简介
- Ubuntu Linux是由南非人马克·沙特尔沃思(Mark Shutteworth)创办的基于Debian Linux的操作系统,于2004年10月公布
- Ubuntu是一个以桌面应用为主的Linux发行版操作系统
- Ubuntu拥有庞大的社区力量,用户可以方便地从社区获得帮助
- 其官方网站:https://ubuntu.com/
- 官方下载地址:https://ubuntucom/download/desktop/thank-you?version=22.04.4&architecture=amd64
二、Ubuntu的安装详解
1.安装介质的选择
在安装操作系统时,我们需要引导介质,可以是网络PXE,光盘,U盘等等
在启动硬件时需要读取引导资源并引入安装环境
2.虚拟机中安装过程展示







最简磁盘分区:

三、Ubuntu的用户使用
1.ubuntu系统中的常规用户登录方式
- 在系统root用户是无法直接登录的,因为root用户的权限过大所以其安全性比较差
- 在登录系统时一般使用在安装系统时建立的普通用户登录
- 如果需要超级用户权限:
sen@sen:~# sudo
如果需要切换超级用户身份首先要更改root用户密码
sen@sen:~# sudo passwd root
$sudo passwd
[sudo] password for root : #输入当前用户密码
New password: #输入新密码
Retype new password: #确认新密码passwd:password updated successfu1ly
$su - root
Password:
root@sen:~#
2.ubuntu用户密码破解
a.在系统安装完成后默认grub启动等待时间为0,建议改为5秒,否则在启动过快无法手动写入启动参数
root@sen:~# vim /etc/default/grubGRUB_TIMEOUT-5
root@sen:~# grub-mkconfig>/boot/grub/grub.cfg
b.当密码忘记时
重启系统并在grub引导阶段编辑启动内核参数

编辑内核启动选项进入单用户模式

通过设置进入单用户模式后不需要密码即可得到root用户身份,在此身份下使用passwd命令修改相应密码即可
Note
ro换成rw 表示在系统内核引导阶段读写挂载目录
init=/bin/bash表示在内核启动后直接初始化启动/bin/bash程序,不进行系统默认的初始化过程
四、Ubuntu下的软件管理
- 在Ubuntu中使用的软件包类型为DEB
- dpkg为DEB软件包的管理工具
- DEB软件同样可以像rpm软件包一样构建软件按仓库
- 利用软件仓库管理软件时使用apt命令来完成
1.dpkg命令详解
a.什么是dkpg
- dpkg(debian packages)是Debian软件包管理器的基础常用于安装、卸载和提供与.deb软件包相关的信息
- 需要注意的是dpkg本身是一个底层的工具,并不具备从远程包仓库下载包以及处理包的依赖关系
b.dkpg命令操作实例
1.列出系统中安装的所有软件包信息
root@sen:~# dpkg -l #列出系统中已经安装的软件包
root@sen:~# dpkg -l vim* #列出所有vim开头的软件包
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pe>
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name 软件名称 Version 软件版本 软件架构Architecture Description软件描述
+++-==============-=====================-============-======================>
ii vim 2:9.1.0016-1ubuntu7.4 amd64 Vi IMproved - enhanced>
ii vim-common 2:9.1.0016-1ubuntu7.4 all Vi IMproved - Common f>
un vim-doc <none> <none> (no description availa>
un vim-gtk3 <none> <none> (no description availa>
un vim-motif <none> <none> (no description availa>
un vim-nox <none> <none> (no description availa>
ii vim-runtime 2:9.1.0016-1ubuntu7.4 all Vi IMproved - Runtime >
Note
第一字符为期望值,它包括:
| 代码 | 含义 |
| u | 状态未知,这意味着软件包未安装,并且用户也未发出安装请求 |
| i | 用户请求安装软件包 |
| r | 用户请求卸载软件包 |
| p | 用户请求清除软件包 |
| h | 用户请求保持软件包版本锁定 |
第二列,是软件包当前的状态,此列包括软件包的六种状态:
| 代码 | 含义 |
| n | 软件包未安装 |
| i | 软件包安装并完成配置 |
| c | 软件包以前安装过,现在删除了,但是它的配置文件还留在系统中 |
| u | 软件包被解包,但还未配置 |
| f | 试图配置软件包,但是失败了 |
| h | 软件包安装,但是没有成功 |
第三列标识错误状态,可以总结为四种状态,第一种状态标识没有问题,为空,其他三种符号则标识相应问题
| 代码 | 含义 |
| h | 软件包被强制保持,因为其他软件包依赖需要,无法升级 |
| r | 软件包被破坏,可能需要重新安装才能正常使用(包括删除) |
| x | 软件包被破坏,并且被强制保持 |
2.安装deb包
root@sen:~# wget https://dldir1.99.com/qqfi1e/9q/QQNT/Linux/QQ_3.2.6_240322_amd64_01.deb #现在实验软件包
root@sen:~# dpkg-i /mnt/QQ_3.2.6_240322_amd64_01.deb #安装软件包
3.查看deb软件信息
root@sen:~# dpkg -L linuxqq #列出linuxqq在安装过程中在系统生成的所有文件
root@sen:~# dpkg -s linuxqq #显示1inuxqq的详细信息
root@sen:~# dpkg-query -s qq #显示搜索在linuxqq这个安装包中所有绝对路径包含qq字符的文件
root@sen:~# dpkg-query -c linuxqq #显示软件的控制文件
4.deb软件的卸载
root@sen:~# dpkg -r linuxqq #删除软件主体,保留软件配置文件和数据文件
root@sen:~# dpkg -P linuxqq #彻底删除软件包
2.管理ubuntu软件仓库
安装好系统后默认已经配置好了网络软件仓库,但是在生产环境中一般不允许在网络中直接安装软件搭建本地软件仓库的方法如下:
a.挂在镜像并设定开机自动挂载
root@sen:~# vim /etc/rc.loca1 #编写开机启动脚本
#!/bin/bash
mount /dev/cdrom/ubuntu
root@sen:~# chmod +x /etc/rc.1oca1 #开启可执行权限实现开启可自动执行
root@sen:~# sh /etc/rc.local #在当前环境执行
root@sen:~## df /ubuntu
Filesystem 1к-blocks Used Available Use% Mounted on
/dev/sr0 4899762 4899762 0 100% /ubuntu
Note
/dev/cdrom 是系统光驱,我们在虚拟机中的虚拟光驱中插入镜像,在挂载镜像时需要把这块代码换成镜像名称
b.在系统中指定本地软件源
root@sen:~# mount /dev/cdrom /media
mount: /media: WARNING: source write-protected, mounted read-only.
root@sen:~# df /media
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sr0 6057964 6057964 0 100% /media
root@sen:~# cd /media/pool
root@sen:/media/pool# ls
main restricted
root@sen:/media/pool# cd main
root@sen:/media/pool/main# ls
a d g j liba libd libg libn libu libz o s x
b e h k libb libe libi libp libv m p t z
c f i l libc libf libm libs libx n r u
root@sen:/media/pool/main# cd /etc/apt
root@sen:/etc/apt# ls
apt.conf.d keyrings preferences.d.save sources.list.d.bak
auth.conf.d preferences.d sources.list trusted.gpg.d
root@sen:/etc/apt# mv sources.list.d.bak sources.list.d
root@sen:/etc/apt# ls
apt.conf.d keyrings preferences.d.save sources.list.d
auth.conf.d preferences.d sources.list trusted.gpg.d
root@sen:/etc/apt# lsb_release -sc
No LSB modules are available.
noble
root@sen:/etc/apt# vim sources.list
root@sen:/etc/apt# cat sources.list
deb file:///media noble main restricted
测试:
root@sen:/etc/apt# apt install gcc -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:binutils binutils-common binutils-x86-64-linux-gnu gcc-13 gcc-13-x86-64-linux-gnugcc-x86-64-linux-gnu libasan8 libbinutils libcc1-0 libctf-nobfd0 libctf0libgcc-13-dev libgprofng0 libhwasan0 libitm1 liblsan0 libquadmath0 libsframe1libtsan2 libubsan1
Suggested packages:
Note
/etc/apt/sources.list文件时软件源指向文件,类似/etc/yum.repos.d/xxx.repo
在安装源中的安装包取决与镜像中包含的软件,不是所有的软件都在镜像中存在
3.apt安装软件包命令
(1)apt install package:安装软件包;重新安装可以使用指令apt install --reinstall package
(2)apt -f install package:修复安装
(3)apt upgrade:更新已经安装的软件
(4)aptupdate:更新软件包列表
(5)apt-cache search package:搜索软件,可以使用正则表达式,比如sof*表示搜索一sof开头的软件包
(6)apt-cache show package:查看软件包信息
(7)apt-cache dump:查看每个软件包的简要信息
(8)apt-cache depends package:查看软件包以来关系
(9)apt remove package:卸载一个软件包但是保留相关配置信息
(10)apt remove package --purge:删除软件包同时删除相关配置信息
(11)apt clean 或 apt autoclean:删除所有软件缓存,软件包的缓存在系统的/var/cache/apt/archives中。
Note
下载的软件存在/var/cache/apt/archives
相关文章:
九、Ubuntu Linux操作系统
一、Ubuntu简介 Ubuntu Linux是由南非人马克沙特尔沃思(Mark Shutteworth)创办的基于Debian Linux的操作系统,于2004年10月公布Ubuntu是一个以桌面应用为主的Linux发行版操作系统Ubuntu拥有庞大的社区力量,用户可以方便地从社区获得帮助其官方网站:http…...
SpringBoot 新冠密接者跟踪系统:校园疫情防控的智能守护者
摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…...
【Ubuntu】E: Unable to locate package xxx
报错描述 在 Ubuntu 上 执行 apt install xxx 出现下面的报错: 即无法定位到该 Package,一般形式如下: # apt install xxx Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable …...
vue多页面应用集成时权限处理问题
在多页面应用(MPA)中,权限管理通常会涉及到每个页面的访问控制、身份验证、以及权限校验。以下是几种常见的权限处理方式: 1. 前端路由权限控制 原理:虽然是多页面应用,通常每个页面会独立加载和渲染&…...
Socket编程(TCP/UDP详解)
前言:之前因为做项目和找实习没得空,计算机网络模块并没有写成博客,最近得闲了,把计算机网络模块博客补上。 目录 一,UDP编程 1)创建套接字 2)绑定端口号 3)发送与接收数据 4&…...
qt QConicalGradient详解
1、概述 QConicalGradient是Qt框架中QGradient的一个子类,它用于创建锥形渐变效果。锥形渐变是从一个中心点出发,沿着360度的圆周扩散的颜色渐变。这种渐变通常用于模拟光线旋转、创建彩虹效果或实现其他复杂的颜色过渡。QConicalGradient允许你定义渐变…...
存储过程与自然语言处理逻辑的不同与结合
在现代软件开发中,存储过程与自然语言处理(NLP)逻辑都发挥着重要作用。存储过程是一种在数据库内部运行的预编译程序,通常用于处理与数据相关的任务,例如插入、更新、删除数据以及复杂的查询操作。而自然语言处理&…...
了解Linux —— 理解其中的权限
前言 在了解Linux权限之前,先来探讨我们使用的shell 命令它到底是什么? Linux 是一个操作系统,我们称其为内核(kernel) ,正常情况下,我们一般用户操作并不是去直接使用内核,而是通过kernel 的外壳程序&…...
知识图谱嵌入与因果推理的结合
知识图谱通过节点(实体)和边(关系)来表示现实世界中的信息,但如何将这些信息转化为可进行推理和决策的形式,仍然是一个挑战。 另一方面,因果推理(Causal Inference)作为…...
STM32 PWM波形详细图解
目录 前言 一 PWM介绍 1.1 PWM简介 1.2 STM32F103 PWM介绍 1.3 时钟周期与占空比 二.引脚映像关系 2.1引脚映像与寄存器 2.2 复用功能映像 三. PWM 配置步骤 3.1相关原理图 3.2配置流程 3.2.1 步骤一二: 3.2.2 步骤三: 3.2.3 步骤四五六七: …...
Python Web 开发 FastAPI 入门:从基础架构到框架比较
Python Web 开发 FastAPI 入门:从基础架构到框架比较 目录 🖥️ Web 服务器概述(如 Nginx、Apache)🔗 前后端分离架构详解🔄 HTTP 路由和请求处理机制🧰 Web 框架概述:Django、Fla…...
基于STM32的智能仓库管理系统设计
目录 引言环境准备 硬件准备软件准备智能仓库管理系统基础 控制系统架构功能描述代码实现:实现智能仓库管理系统 4.1 RFID标签读取模块4.2 库存管理模块4.3 数据显示与监控模块4.4 无线通信模块应用场景:智能仓库管理系统优化问题解决方案与优化收尾与总…...
排序算法--堆排序【图文详解】
“留在码头的船才最安全” “但亲爱的,那不是造船的目的。 堆--插入heapInsert 原来有一个大根堆,如图: 现在要新插入一个数字50,进行插入 流程:和父亲相比,如果比父亲大,和父亲交换ÿ…...
FCBP 认证考试要点摘要
理论知识 数据处理与分析:包括数据的收集、清洗、转换、存储等基础操作,以及数据分析方法,如描述性统计分析、相关性分析、数据挖掘算法等的理解和应用 。数据可视化:涉及图表类型的选择与应用,如柱状图、折线图、饼图…...
鸿蒙生态崛起的机遇有什么
鸿蒙生态系统的崛起为各个领域带来了多个机遇,主要体现在以下几个方面: 智能设备的互联互通:鸿蒙系统旨在实现不同设备之间的无缝连接,为物联网(IoT)设备的发展提供了良好的基础。这将推动智能家居、智慧城…...
基础(函数、枚举)错题汇总
枚举默认从0开始,指定后会按顺序赋值 而这个枚举变量X,如果在全局(函数外部)定义,那默认为0,如果在函数内部(局部变量),那就是随机值,必须初始化。 枚举变量…...
【Spark源码分析】规则框架- `analysis`分析阶段使用的规则
analysis分析阶段使用的规则 规则批策略规则说明SubstitutionfixedPointOptimizeUpdateFields该规则优化了 UpdateFields 表达式链,因此看起来更像优化规则。但是,在处理深嵌套模式时,UpdateFields 表达式树可能会非常复杂,导致分…...
mysql--二进制安装编译安装yum安装
二进制安装 创建用户和组 [rootlocalhost ~]# groupadd -r -g 306 mysql [rootlocalhost ~]# useradd -r -g 306 -u 306 -d /data/mysql mysql 创建文件夹并添加所属文件用户和组 [rootlocalhost ~]# mkdir -p /data/mysql [rootlocalhost ~]# chown mysql:mysql /data/mysql …...
《Django 5 By Example》阅读笔记:p339-p358
《Django 5 By Example》学习第12天,p339-p358总结,总计20页。 一、技术总结 1.项目(购物网站) django-admin startproject myshop 虽然这里只是示例,但我觉得这种命名为 myxxx 的习惯非常不好,因为在实际应用中,是…...
鸿蒙修饰符
文章目录 一、引言1.1 什么是修饰符1.2 修饰符在鸿蒙开发中的重要性1.3 修饰符的作用机制 二、UI装饰类修饰符2.1 Styles修饰符2.1.1 基本概念和使用场景2.1.2 使用示例2.1.3 最佳实践 2.2 Extend修饰符2.2.1 基本概念2.2.2 使用示例2.2.3 Extend vs Styles 对比2.2.4 使用建议…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
