九、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 使用建议…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
