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.系统总线 (板级总线或板间总线&#…...
C语言数组【详解】
数组1. 一维数组的创建和初始化1.1 数组的创建1.2 数组的初始化1.3 一维数组的使用1.4 一维数组在内存中的存储2. 二维数组的创建和初始化2.1 二维数组的创建2.2 二维数组的初始化2.3 二维数组的使用2.4 二维数组在内存中的存储3. 数组越界4. 数组作为函数参数4.1 冒泡排序函数…...
并行与体系结构会议
A类会议 USENIX ATC 2022: USENIX Annual Technical Conference(录用率21%) CCF a, CORE a, QUALIS a1 会议截稿日期:2022-01-06 会议通知日期:2022-04-29 会议日期:2022-07-11 会议地点:Carlsbad, Califo…...
【巨人的肩膀】JAVA面试总结(三)
1、💪 目录1、💪1、说说List, Set, Queue, Map 四者的区别1.1、List1.2、Set1.3、Map2、如何选用集合4、线程安全的集合有哪些?线程不安全的呢?3、为什么需要使用集合4、comparable和Comparator的区别5、无序性和不可重复性的含义…...
嵌入式 STM32 SHT31温湿度传感器
目录 简介 1、原理图 2、时序说明 数据传输 起始信号 结束信号 3、SHT31读写数据 SHT31指令集 读数据 温湿度转换 4、温湿度转换应用 sht3x初始化 读取温湿度 简介 什么是SHT31? 一主机多从机--通过寻址的方式--每个从机都有唯一的地址&…...
哪款蓝牙耳机打电话好用?打电话音质好的蓝牙耳机
现在几乎是人人离不开耳机的时代。在快节奏的生活和充满嘈杂声音的世界中,戴着耳机听歌,是每个人生活中最不可或缺的一段自由、放松的时光,下面小编就来分享几款通话音质好的蓝牙耳机。 一、南卡小音舱蓝牙耳机 动圈单元:13.3mm…...
【C++】-- 内存泄漏
目录 内存泄漏 内存泄漏分类 如何检测内存泄漏 如何避免内存泄漏 内存泄漏 #问:什么是内存泄漏?内存泄漏:指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某…...
C++ STL学习之【string类的模拟实现】
✨个人主页: Yohifo 🎉所属专栏: C修行之路 🎊每篇一句: 图片来源 The key is to keep company only with people who uplift you, whose presence calls forth your best. 关键是只与那些提升你的人在一起,…...
Selenium基于POM的自动化测试实践
什么是Page Object模式 Page Object 见名知意,就是页面对象,并将页面元素定位方法和元素操作进行分离。在实际自动化测试实战过程中,我们一般对脚本的实现分为三层: (1)对象层: 用于存放页面元素定位和控件操作 (2)逻…...
记录每日LeetCode 2373.矩阵中的局部最大值 Java实现
题目描述: 给你一个大小为 n x n 的整数矩阵 grid 。 生成一个大小为 (n - 2) x (n - 2) 的整数矩阵 maxLocal ,并满足: maxLocal[i][j] 等于 grid 中以 i 1 行和 j 1 列为中心的 3 x 3 矩阵中的 最大值 。 换句话说,我们希…...
QT中级(6)基于QT的文件传输工具(2)
QT中级(6)基于QT的文件传输工具(2)本文实现第一步1 新增功能2 运行效果3 实现思路4 源代码实现这个文件传输工具大概需要那几步?实现多线程对文件的读写实现TCP客户端和服务端实现网络传输 书接上回:QT中级…...
怎样制作网站二维码/平面设计
《Windows Azure Platform 系列文章目录》 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板。 注意:因为在制作VHD的最后执行了Sysprep命令,所以该VHD中的OS会重新部署。 如果您想迁移本地的Hype…...
wordpress 任意下载/管理系统
DMA 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从来源 把每一片段的资料复制到 暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的…...
wordpress 挂马/商品促销活动策划方案
最近在完成数据库作业,重新拾起了以前学过的Java,讲下自己的 Java web 配置过程。 1.安装 Tomcat 在官网下载 Tomcat7.0版本:https://tomcat.apache.org/download-70.cgi 选择下载 Zip 文件,然后解压到本地,文件目录如…...
网站建设收费标准市场/网站统计数据
原创!ngxtop-监控nginx的利器!!! 无论名称还是界面,ngxtop的灵感均源自大名鼎鼎的top命令.ngxtop的功能就是,分析Nginx访问日志文件(以及其他日志文件,比如Apache2日志),并通过类似top的界面,实时显示分析后所得的结果.你可能吹嘘自己的综合监控工具拥有…...
wordpress主题中文主题下载/百度手机助手下载正版
一、什么是Set 1)Set是一种叫做集合的数据结构。这句话的重点在于集合,那么什么是集合的?它又有什么特点呢?集合是由一组无序且唯一的项组成的,即是一个没有重复元素也没有顺序概念的数组 2)Set本身是一个…...
wordpress语言翻译/怎样在百度上发帖子
最近接手一个服务器,不过是Windows系统的,运行程序时候总是出一些问题。有点怀疑是系统的问题?于是决定从windows迁移到Linux系统里面去。不过遇到了一个大坑!!!!安装过程非常简单,就…...