Ubuntu学习篇
前言
环境:Ubuntu 20.4lts
Ubuntu系统跟centos还是有很多区别的,笔者之前一直使用的是centos7.x版本。
镜像下载地址:https://ubuntu.com/download/server#downloads
其他版本下载地址:https://launchpad.net/ubuntu/+cdmirrors
,这是 Ubuntu推荐的其他镜像下载网站,可以从这里下载其他版本的Ubuntu版本
Ubuntu一般有两种版本,一种是ubuntu-20.04.5-live-server-amd64.iso服务器版本,比较小,只有996M,另外一个是ubuntu-20.04.5-desktop-amd6.iso桌面版本,比较大,有好几个G。
本篇以ubuntu-20.04.5-live-server-amd64.iso服务器版本进行介绍,企业中也是使用服务器版本。
配置固定IP地址
安装时可以直接配置固定的IPv4地址:
Edit enp0s3 IPv4 configuration
IPv4Method: [Manua] #选手动
Subnet: 192.168.158.0/24 #按着格式写,255.255.255.0这种写法会报错的
Address: 192.168.158.100 #IP地址
Gateway: 192.168.158.2 #网关
Name servers: 114.114.114.114 #DNS域名服务器地址,多个值以逗号分隔IPaddresses,commaseparated
Search domains: #可以空着不写Domains,commaseparated[Save ] #保存[Cancel ]
启用root用户登录
#桌面版本启用root登录
# 安装时需要创建一个普通账号,安装完成后可以先使用普通账号登录
sudo passwd root #启用root账号,给root账号设置密码后还需做下面几步
....输入登录的用户密码
.....输入root密码
.....再次输入root密码
su root
vi /etc/pam.d/gdm-autologin #打开这个文件,注释掉下面这行
#auth required pam_succeed_if.so user != root quiet_success
vi /etc/pam.d/gdm-password #打开这个文件,注释掉下面这行
#auth required pam_succeed_if.so user != root quiet_success
重启服务器:reboot才能使用root用户登录
允许root用户远程登录还需要修改sshd服务的配置文件#服务器版本启用root登录
# 安装时需要创建一个普通账号,安装完成后可以先使用普通账号登录
sudo passwd root #启用root账号,给root账号设置密码即可,因为服务器版本没有/etc/pam.d/gdm-autologin gdm-password文件
....输入登录的用户密码
.....输入root密码
.....再次输入root密码
允许root用户远程登录还需要修改sshd服务的配置文件
ping不通baidu.com,需要配置DNS
vim /etc/systemd/resolved.conf 文件,在其中添加dns
sudo vi /etc/systemd/resolved.conf;
加入一个新行
DNS=114.114.114.114
systemctl restart systemd-resolved.service
查看,重启网络服务
Ubuntu 18.04开始,Ubuntu和Debian移除了以前的ifup/ifdown命令和/etc/network/interfaces配置文件,转而使用ip link set或者网卡配置文件/etc/netplan/00-installer-config.yaml模板和sudo netplan apply命令实现网络管理,早期的网络管理由network服务向NetworkManager再到netplan转变。netplan作为网络管理的上层工具,可以同时管理NetworkManager和systemd-networkd,前者NetworkManager主要存在于桌面版的Ubuntu中,后者systemd-networkd是存在服务器版本的Ubuntu中。
vim /etc/netplan/00-installer-config.yaml #网卡配置文件,Ubuntu 18.04以前是 /etc/network/interfaces网卡配置文件
# This is the network config written by 'subiquity'
network: #固定词ethernets: #固定词ens33: #网卡名称叫做ens33,多张网卡就类似的多个ensxxdhcp4: false #可值true|false,false就是不使用dhcp,那就是静态IP,true就是使用dhcpaddresses: #IP地址- 192.168.158.190/24 #IP地址+子网掩码gateway4: 192.168.158.2 #网关nameservers: #定义DNS域名解析addresses: [114.114.114.114] #DNS服务器search: []version: 2netplan apply #应用刚才修改的网络配置文件立即生效
systemctl start|stop|status systemd-networkd #启动|停止网络
更改apt源
默认的apt源是Ubuntu的官方apt源,所以安装软件都是去官网的apt源里面查找导致下载速度慢,我们可以更换为国内的apt源,如阿里云的apt源,在这个网站可以看到有很多镜像源https://developer.aliyun.com/mirror/
,安装步骤如下:
cp /etc/apt/sources.list /etc/apt/sources.list.backup
echo ''>/etc/apt/sources.list
vim /etc/apt/sources.list #填写下面这些内容
#ubuntu 20.04(focal) 配置如下
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverseapt update #添加了新的apt源之后要更新一下,更新Linux 系统的包索引或包列表,它不会升级任何软件包
解释说明:
源文件可以有多个吗???????源文件以.list结尾
源文件通用格式:
deb http://xxxxx focal main restricted universe multiverse
第一个是归档类型或者叫做软件包格式,归档类型可以是deb或deb-src,前者是deb包,后者是deb源码包
第二个是软件源的URL地址
第三个是发行版本版本号,例如focal,focal-security等
第四个是软件源分类/组件,一般有一下四种分类:
main:即"基本"组件,其中只包含符合Ubuntu的协议要求并由Ubuntu团队维护支持的软件。
restricted:即"受限"组件,其中包含了非常重要的,但并不具有合适的***协议的软件,如显卡驱动,同样有 Ubuntu团队维护支持。
universe:即"社区维护"组件,其中包含的软件种类繁多,它们可能采用受限于协议,可能不是,但都不为Ubuntu 团队维护。
multiverse:即"非***"组件,其中包括了不符合***软体要求而且不被Ubuntu团队支援的软件,通常为商业公司编写的软件
ISO镜像配置本地apt源
说明:Ubuntu的镜像其实封装了很少deb包,解压后pool目录里面就能看得出来,从镜像大小才900M也可以看的出来,不想centos镜像那样封装了很多rpm包。
mkdir /mnt/iso #创建挂载目录
mount /opt/ubuntu-20.04.5-live-server-amd64.iso /mnt/iso/ #上传镜像并进行挂载
mv /etc/apt/sources.list /etc/apt/sources.list_bak #备份原来的apt源
vim /etc/apt/sources.list #文件名还是sources.list,文件名是不是固定的?待理解。加入以下内容,根据自己的Ubuntu版本加对应的内容
# 添加本地目录到软件源--16.04,xenial是ubuntu16.04的代号
#deb file:///mnt/iso xenial main restricted
# 添加本地目录到软件源--18.04,bionic是ubuntu18.04的代号
#deb file:///mnt/iso bionic main restricted# 添加本地目录到软件源--20.04,focal是ubuntu20.04的代号
deb file:///mnt/iso focal main restrictedroot@ubuntu:/etc/apt#apt update #更新apt源,输出下面内容说明apt源配置是成功的
Get:1 file:/mnt/iso focal InRelease
Ign:1 file:/mnt/iso focal InRelease
Get:2 file:/mnt/iso focal Release [1,486 B]
Get:2 file:/mnt/iso focal Release [1,486 B]
Get:3 file:/mnt/iso focal Release.gpg [833 B]
Get:3 file:/mnt/iso focal Release.gpg [833 B]
Get:4 file:/mnt/iso focal/main amd64 Packages [23.6 kB]
Ign:4 file:/mnt/iso focal/main amd64 Packages
Get:4 file:/mnt/iso focal/main amd64 Packages [23.6 kB]
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
apt命令
dkpg(底层工具)->apt-get(上层工具)->apt(apt-get的再封装),简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合,所以强烈建议使用apt命令进行安装卸载软件包等操作。
apt update #更新源,比如官网源仓库添加了一个新的包,但是你本地还没缓存发现这个包,所以使用该命令更新一下本地源索引
apt update <package_name> #更新指定包
apt install net-tools -y #安装软件包
apt install net-tools -d #-d表示仅下载不按照,默认下载的包在/var/cache/apt/archives/
apt install ./lsof_xx.deb #安装本地指定的包,注意要指定路径,不然会找不到包,即使你已经在包当前路径下执行命令也是要指定包路径
apt remove tree -y #卸载、删除、移除软件包
apt purge <package_name> #移除软件包及配置文件
apt autoremove #清理不再使用的依赖和库文件
apt search tree -y #搜索软件包
apt list | grep tree #列出已安装的软件包
apt upgrade #升级软件包
apt upgrade package_name #升级软件包
apt full-upgrade #升级软件包,升级前先删除需要更新软件包
apt list #列出所有包,包括已安装的包、可安装的包
apt list --upgradeable #列出可更新的软件包及版本信息
apt list --installed #列出所有已安装的包
apt show <package_name> #显示软件包具体信息,例如:版本号,安装大小,依赖关系等等
查看Ubuntu操作系统版本号、内核版本
cat /etc/os-release #看这个就可以了
lsb_release -a
cat /proc/version
cat /etc/issue
uname -a
uname -r #内核版本
相关文章:
Ubuntu学习篇
前言 环境:Ubuntu 20.4lts Ubuntu系统跟centos还是有很多区别的,笔者之前一直使用的是centos7.x版本。 镜像下载地址:https://ubuntu.com/download/server#downloads 其他版本下载地址:https://launchpad.net/ubuntu/cdmirrors&a…...
extern关键字
1、基本解释: extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用。 第一个,当它与"C"一起…...

T3 出行云原生容器化平台实践
作者:林勇,就职于南京领行科技股份有限公司,担任云原生负责人,也是公司容器化项目的负责人。主要负责 T3 出行云原生生态相关的所有工作,如服务容器化、多 Kubernetes 集群建设、应用混部、降本增效、云原生可观测性基…...
从0开始学python -44
Python3 正则表达式 -2 检索和替换 Python 的re模块提供了re.sub用于替换字符串中的匹配项。 语法: re.sub(pattern, repl,string, count0, flags0)参数: pattern : 正则中的模式字符串。repl : 替换的字符串,也可为一个函数。string : …...

22- estimater使用 (TensorFlow系列) (深度学习)
知识要点 estimater 有点没理解透 数据集是泰坦尼克号人员幸存数据. 读取数据:train_df pd.read_csv(./data/titanic/train.csv) 显示数据特征:train_df.info() 显示开头部分数据:train_df.head() 提取目标特征:y_train tr…...

eKuiper 1.8.0 发布:零代码实现图像/视频流的实时 AI 推理
LF Edge eKuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源软件,可以运行在各类资源受限的边缘设备上。eKuiper 的主要目标是在边缘端提供一个流媒体软件框架(类似于 Apache Flink )。eKuiper 的规则引擎允许用户提供基于 SQL 或基…...
[Ansible系列]ansible JinJia2过滤器
目录 一. JinJia2简介 二. JinJia2模板使用 2.1 在play中使用jinjia2 2.2 template模块使用 2.3 jinjia2条件语句 2.4 jinjia2循环语句 2.5 jinjia2过滤器 2.5.1 default过滤器 2.5.2 字符串操作相关过滤器 2.5.3 数字操作相关过滤器 2.5.4 列表操作…...
Cookie、Session、Token区分
一开始接触这三个东西,肯定会被绕的不知道都是干什么的。1、为什么要有它们?首先,由于HTTP协议是无状态的,所谓的无状态,其实就是 客户端每次想要与服务端通信,都必须重新与服务端连接,这就意味…...

回暖!“数”说城市烟火气背后
“人间烟火气,最抚凡人心”。在全国各地政策支持以及企业的积极生产运营下,经济、社会、生活各领域正加速回暖,“烟火气”在城市中升腾,信心和希望正在每个人心中燃起。 发展新阶段,高效统筹经济发展和公共安全&#…...

JS逆向-百度翻译sign
前言 本文是该专栏的第36篇,后面会持续分享python爬虫干货知识,记得关注。 有粉丝留言,近期需要做个翻译功能,考虑到百度翻译语言语种比较全面,但是它的参数被逆向加密了,对于这种情况需要怎么处理呢?所以本文以它为例。 废话不多说,跟着笔者直接往下看正文详细内容。…...

Fiddler抓包之Fiddler过滤器(Filters)调试
Filters:过滤器,帮助我们过滤请求。 如果需要过滤掉与测试项目无关的抓包请求,更加精准的展现抓到的请求,而不是杂乱的一堆,那功能强大的 Filters 过滤器能帮到你。 2、Filters界面说明 fiddler中的过滤 说明&#…...
【xib文件的加载过程 Objective-C语言】
一、xib文件的加载过程: 1.xib文件,是不是在这里啊: View这个文件夹里, 然后呢,我们加载xib是怎么加载的呢, 是不是在控制器里,通过我们这个类方法,加载xib: TestAppView *appView = [TestAppView appView]; + (instancetype)appView{NSBundle *rootBundle = [N…...

react setState学习记录
react setState学习记录1.总体看来2.setState的执行是异步的3.函数式setState1.总体看来 (1). setState(stateChange, [callback])------对象式的setState 1.stateChange为状态改变对象(该对象可以体现出状态的更改) 2.callback是可选的回调函数, 它在状态更新完毕、界面也更新…...
Docker容器cpu利用率问题
1.top原理 top 是读的/proc/stat文件 比如cat /proc/PID/stat 进程的总Cpu时间processCpuTime utime stime cutime cstime,该值包括其所有线程的cpu时间 某一进程Cpu使用率的计算 计算方法: 1 采样两个足够短的时间间隔的cpu快照与进程快照&…...

FreeRTOS入门(06):任务通知
文章目录目的基础说明使用演示作为二进制信号量作为计数信号量作为事件组作为队列或邮箱相关函数总结目的 任务通知(TaskNotify)是RTOS中相对常用的用于任务间交互的功能,这篇文章将对相关内容做个介绍。 本文代码测试环境见前面的文章&…...

谷歌seo做的外链怎样更快被semrush识别
本文主要分享做谷歌seo外链如何能让semrush工具快速的记录并能查询到。 本文由光算创作,有可能会被剽窃和修改,我们佛系对待这种行为吧。 谷歌seo做的外链怎样更快被semrush识别? 答案是:多使用semrush搜索目标网站可加速爬虫抓…...

Java | IO 模式之 JavaBIO 应用
文章目录IO模型Java BIOJava NIOJava AIO(NIO.2)BIO、NIO、AIO的使用场景BIO1 BIO 基本介绍2 BIO 的工作机制3 BIO 传统通信实现3.1 业务需求3.2 实现思路3.3 代码实现4 BIO 模式下的多发和多收消息4.1 业务需求4.2 实现思路4.3 代码实现5 BIO 模式下接收…...
C语言学习及复习笔记-【18】C内存管理
18 C内存管理 C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。 序号函数和描述1void *calloc(int num, int size); 在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。所以它的结果是分配了…...

linux--多线程(一)
文章目录Linux线程的概念线程的优点线程的缺点线程异常线程的控制创建线程线程ID以及进程地址空间终止线程线程等待线程分离线程互斥进程线程间的互斥相关概念互斥量mutex有线程安全问题的售票系统查看ticket--部分的汇编代码互斥量的接口互斥量实现原理探究可重入和线程安全常…...

计算机组成原理(2.1)--系统总线
目录 一、总线基本知识 1.总线 2.总线的信息传送 3.分散连接图 4.注 二、总线结构的计算机举例 1.面向 CPU 的双总线结构框图 2.单总线结构框图 3.以存储器为中心的双总线结构框图 三、总线的分类 1.片内总线 2.系统总线 (板级总线或板间总线&#…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...