九、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 使用建议…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...