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.系统总线 (板级总线或板间总线&#…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...
