九、Ubuntu Linux操作系统

news/2024/11/29 0:54:17/

一、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


http://www.ppmy.cn/news/1550768.html

相关文章

在React中实践一些软件设计思想 ✅

策略设计模式 先写几句废话&#xff1a;其实在日常开发中&#xff0c;「设计模式」通常在不知不觉间已经被用了不少了&#xff0c;只是我们或许没察觉。比如通过插槽来增强组件的功能&#xff0c;这涉及到「装饰设计模式」&#xff1b;lodash或者jQuery的使用我觉得甚至算得上…

windows docker 入门

这个教程将指导你如何安装Docker、运行第一个容器以及理解一些基本概念。 第一步&#xff1a;安装Docker Desktop for Windows 系统要求&#xff1a; Windows 10 64位版本&#xff08;专业版、企业版或教育版&#xff09;。启用Hyper-V和Windows Subsystem for Linux (WSL 2)。…

React的基础知识:Context

1. Context 在 React 中&#xff0c;Context 提供了一种通过组件树传递数据的方式&#xff0c;无需手动在每个层级传递 props。这在处理一些全局应用状态时非常有用&#xff0c;比如用户认证、主题、语言偏好等。 如何使用 Context 创建 Context&#xff1a;首先&#xff0c;…

服务器记录所有用户docker操作,监控删除容器/镜像的人

文章目录 使用场景安装auditd添加docker审计规则设置监控日志大小与定期清除查询 Docker 操作日志查看所有用户&#xff0c;所有操作日志查看特定用户的 Docker 操作查看所有用户删除容器/镜像日志过滤特定时间范围内日志 使用场景 多人使用的服务器&#xff0c;使用的docker …

神经网络的数学——一个完整的例子

神经网络是一种人工智能方法&#xff0c;它教导计算机以类似于人脑的方式处理数据。神经网络通过输入多个数据实例、预测输出、找出实际答案与机器答案之间的误差&#xff0c;然后微调权重以减少此误差来进行学习。 虽然神经网络看起来非常复杂&#xff0c;但它实际上是线性代数…

我们来学mysql -- EXPLAIN之ref(原理篇)

EXPLAIN之ref 题记**ref** 题记 书接上文《 EXPLAIN之type》2024美国大选已定&#xff0c;川普剑登上铁王座&#xff0c;在此过程中出谋划策的幕僚很重要&#xff0c;是他们决定了最终的执行计划在《查询成本之索引选择》中提到&#xff0c;explain的输出&#xff0c;就是优化…

Linux系统编程学习 NO.12——进程控制、shell的模拟实现

进程创建 在已学习的知识体系下&#xff0c;在Linux系统中创建一个进程可以通过./程序名称 创建并运行我们自己写的可执行程序。以及使用fork()函数在代码中创建一个子进程。 而fork()函数的使用上篇文章已有介绍&#xff0c;这里不赘述。简单复习一下fork()函数具体做了什么…

设置jenkins时区记录

System.setProperty(org.apache.commons.jelly.tags.fmt.timeZone, Asia/Shanghai)