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.系统总线 (板级总线或板间总线&#…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
从实验室到产业:IndexTTS 在六大核心场景的落地实践
一、内容创作:重构数字内容生产范式 在短视频创作领域,IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色,生成的 “各位吴彦祖们大家好” 语音相似度达 97%,单条视频播放量突破百万…...

云原生时代的系统设计:架构转型的战略支点
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、云原生的崛起:技术趋势与现实需求的交汇 随着企业业务的互联网化、全球化、智能化持续加深,传统的 I…...

vue3 手动封装城市三级联动
要做的功能 示意图是这样的,因为后端给的数据结构 不足以使用ant-design组件 的联动查询组件 所以只能自己分装 组件 当然 这个数据后端给的不一样的情况下 可能组件内对应的 逻辑方式就不一样 毕竟是 三个 数组 省份 城市 区域 我直接粘贴组件代码了 <temp…...