Roookie博客 | 记录 · 收纳 · 分享 - Linux
type: channel
link: https://www.wlplove.com/index.php/category/Linux/
description: 关于Linux系统的使用
items: Thinkbook16+在ubuntu下编译无线网卡驱动、替换Grub的默认主题等等
items: 常用的一些Nginx配置
items: 目前最流行的版本控制软件：Git的基本使用
items: Linux设置定时任务：cron的用法
items: ubuntu安装MongoDB数据库
items: ubuntu系统中的文件权限管理总结
items: ubuntu下zerotier的基本使用教程
items: 为ubuntu server20.04 连接wifi
items: 为ubuntu更新提速：将更新源改为国内源
items: mysql简述：从安装到卸载

Thinkbook16+在ubuntu下编译无线网卡驱动、替换Grub的默认主题等等
type: item
date: 2023-06-25T15:59:00+00:00
description: 目录： 一、编译无线网卡驱动 1.1、clone 项目 1.2、安装环境 1.3、编译并加载驱动 二、更换Grub主题 2.1、下载主题文件 2.2、安装主题 2.3、修改启动顺序 三、修复启动项 四、安装搜狗输入法 4.1、添加中文语言支持 4.2、安装搜狗输入法 环境：ubuntu 22.04 一、编译无线网卡驱动 由于 Thinkbook16+ 原装的无线网卡是瑞昱的 RTL8852，装上 ubuntu 22.04 之后会因为没有驱动而无法使用 wifi 功能，这个问题一度困扰了我好长时间，由于没有网线，在此期间只能用手机的 USB 热点共享功能把手机当成 ubuntu 的无线网卡来用。 后来在网上查到一篇关于自己编译 RTL8852 无线网卡驱动的博客：thinkbook14+16+ 安装ubuntu22.04 解决wifi6驱动问题 + 加装完善让笔记本化身完全体，一劳永逸思路_ubuntu wifi6驱动_久日与至的博客-CSDN博客，于是才得以解决此问题。 1.1、clone 项目 驱动项目链接：GitHub - HRex39/rtl8852be: Realtek Linux WLAN Driver for RTL8852BE 根据系统 kernel 的版本选择不同的分支： # kernel < 5.18 选择默认主分支 git clone https://github.com/HRex39/rtl8852be.git # kernel >= 5.18 选择 dev 分支 git clone https://github.com/HRex39/rtl8852be.git -b dev 查看当前 ubuntu 系统内核的方法： uname -srm # 或者 uname -a 1.2、安装环境 进行编译之前需要安装环境： sudo apt update sudo apt install make gcc linux-headers-$(uname -r) build-essential 1.3、编译并加载驱动 编译： cd rtl8852be make -j8 sudo make install 加载驱动： sudo modprobe rtw89pci # 加载驱动 sudo modprobe -r rtw89pci # 卸载驱动 二、更换Grub主题 2.1、下载主题文件 主题文件可以在这里下载： GRUB Themes - Gnome-look.org GRUB Themes - Gnome-look.org (opendesktop.org) 以我下载到的 ubuntu.tar 为例，将其解压到 /boot/grub/themes/ubuntu (或者选择其他目录也行)： # 创建目录 mkdir /boot/grub/themes mkdir /boot/grub/themes/ubuntu # 将文件到解压到创建好的目录中 sudo tar -xf ubuntu.tar -C /boot/grub/themes/ubuntu 2.2、安装主题 修改配置文件，编辑 /etc/default/grub 文件 sudo nano /etc/default/grub 找到以 "#GRUB_THEME" 开头的一行，该行用来配置主题文件路径，将其改为 "主题文件路径/theme.txt” ： # 没有这一行的话直接新增即可 GRUB_THEME="/boot/grub/themes/ubuntu/theme.txt" 然后更新一下 grub 配置： sudo update-grub 最后重启，开机的时候就能看到效果了。 2.3、修改启动顺序 在 Windows + Linux 双系统的启动项中，如果在 BIOS 中选择的是 ubuntu 的话，开机进入的 grub 启动项选择中 ubuntu 系统是排在第一位的。但在双系统中一般来说都是 windows 用的比较多，所以每次启动都来选择 Windows 启动项的话也是一件挺麻烦的事情，那么可以将 windows 的系统启动项放到第一位，只有需要用到 ubuntu 的时候再去手动选择启动。 需要用到的是 Grub Customizer 这个软件，安装命令： sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt update sudo apt install grub-customizer 安装完成后，在 ubuntu 的应用列表中找到这个软件并启动，软件中会显示出当前所有的启动项。 修改启动顺序的话也很简单，点击选中 windows 启动项，用菜单栏上的箭头给移动上去就可以了。 P…

常用的一些Nginx配置
type: item
date: 2021-12-11T10:16:00+00:00
description: 目录： 1、监听端口 2、日志功能 2.1、访问日志 2.2、错误日志 3、配置域名 4、静态资源 5、重定向 5.1、网站根目录重定向 5.2、特定目录重定向 6、反向代理 7、负载均衡 8、SSL配置 1、监听端口 server { # 用于HTTP协议 listen 80; # 用于HTTPS协议 listen 443 ssl; # 用于HTTP2 listen 443 ssl http2; # 使用IPv6监听80端口 listen [::]:80; # 仅使用IPv6 listen [::]:80 ipv6only=on; } 2、日志功能 Nginx的日志分为两种：access_log （访问日志）和 error_log（错误日志）。 对于日志的格式，Nginx提供了一种名为 combine 的格式，如果没有明确指定日志格式则默认使用该格式。 如果不使用 combine 格式的话，可以使用 log_format 指令来自定义，其具体用法参考Nginx日志配置详解或者官方文档：HttpLog模块-Nginx中文文档。 2.1、访问日志 访问日志主要记录客户端的请求，客户端向Nginx服务器发起的每一次请求都记录在这里。客户端IP，浏览器信息，referer，请求处理时间，请求URL等都可以在访问日志中得到。 server { # 访问日志文件的写入位置，相对或绝对路径 access_log /path/to/file.log; # 选择访问日志功能的开启(on)或关闭(off) access_log on; } 2.2、错误日志 错误日志记录服务器和请求处理过程中的错误信息。 server{ # 错误日志的写入位置 error_log logs/error.log error; # 错误日志的级别，分为 debug, info, notice, warn, error, crit, alert,emerg，其取值范围是按紧急程度从低到高排列 # 只有日志的错误级别等于或高于level指定的值才会写入错误日志中。默认值是error error_log file [level]; } 3、配置域名 server { # 监听domain.com server_name domain.com; # 监听多个域名 server_name domain.com www.domain.com; # 监听所有域名 server_name *.domain.com; # 监听所有顶级域名 server_name domain.*; # 监听未指定的主机名（比如侦听IP地址本身） server_name ""; } 4、静态资源 server { listen 80; server_name domain.com; location / { # 设置网站的根目录 root /path/to/website; } } 5、重定向 5.1、网站根目录重定向 server { listen 80; server_name www.domain.com; # 将 www.domain.com 进行301重定向，跳转至 http://domain.com$request_uri return 301 http://domain.com$request_uri; } 5.2、特定目录重定向 server { listen 80; server_name www.domain.com; # 将链接 http://www.domain.com/redirect-url 进行301重定向，跳转到http://otherdomain.com location /redirect-url { return 301 http://otherdomain.com; } } 如将 domain.com 永久重定向到 www.domain.com： server { listen 80; server_name domain.com; return 301 http://www.$host$request_uri; } 6、反向代理 反向代理 - 维基百科，自由的百科全书 (wikipedia.org) Reverse proxy - Wikipedia server { listen 80; server_name domain.com; # 对特定主机的3000端口进行反向代理 location / { proxy_pass http://0.0.0.0:3000; } } 7、负载均衡 负载均衡 - 维基百科，自由的百科全书 (wikipedia.org) Load balancing (computing) - Wikipedia upstream nod…

目前最流行的版本控制软件：Git的基本使用
type: item
date: 2021-09-14T15:20:00+00:00
description: 前排提示： 本篇博客篇幅较长，建议结合目录查看！ 目录： 写在前面 1、关于版本控制系统 定义 版本控制的必要性： 常见的版本控制系统 2、Git与Github 0x01.安装Git 0x02.Github中的一些基本概念 Repository Issue Star Fork Pull Request Watch Wiki Gist 0x03.添加SSH key 0x04.克隆仓库 0x05.初始化仓库 0x06.提交修改 0x07.分支操作 查看分支 建立新分支 切换分支 建立并切换到新分支 推送本地分支到远程仓库 合并分支 删除分支 重命名分支 0x08.标签操作 附注标签 轻量标签 切换标签 推送标签 删除标签 查看所有标签 给提交打标签 写在前面 1、关于版本控制系统 定义 版本控制（Version control）是维护项目的标准作法，能追踪项目从诞生一直到定案的过程。此外，版本控制也是一种软件工程技巧，借此能在软件开发的过程中，确保由不同人所编辑的同一程序文件都得到同步，记录项目内各个模块的改动历程，并为每次改动都编上序号。 一种简单的版本控制形式如下：工程的初代版本为“1.0”，当做了第一次改变后，版本等级改为“1.1”，以此类推。因此，版本控制能提供给开发者将项目恢复到之前任一状态的选择权，这种选择权在设计过程进入死胡同时特别重要。 版本控制的必要性： 常会利用版本控制来追踪维护源代码、文件以及配置文件等的改动，并且提供控制这些改动控制权的程序； 有时候，一个程序同时存有两个以上的版本，例如：在一个稳定版本中程序错误已经被修正、但没有加入新功能；在另一个开发版本则有新的功能正在开发、也有新的错误待解决，这使得同时间需要不同的版本； 此外，为了找出只存在于某一特定版本中（由于修正了某些问题、或新加功能所导致）的程序错误，或找出程序错误出现的版本，开发者也需要比对不同版本的代码以找出问题的位置。 常见的版本控制系统 集中式版本控制系统：由一台或多台主计算机组成中心服务器，所有业务单元和项目版本库都集中存储在这个中心服务器上，开发时，要先从中央服务器取得项目最新的版本，一次开发完毕之后，再将工作量推送给中央服务器。就像是一个图书馆，如果要改一本书的内容，则需要把书先从图书馆借出来，然后修改，改完之后再放回图书馆。 因此，集中式版本控制系统最的大缺点就是中央服务器出了问题，所有人都没法工作了。 常见的集中式版本控制系统有SVN、CVS等。 分布式版本控制系统：分布式版本系统没有绝对的中央服务器，每个人的电脑上都是一个完整的版本库，多个人进行协同工作时，只需将自己的修改与其他人的修改进行交换即可 和集中式版本控制系统相比，分布式版本控制系统的安全性要高很多，因为每个人电脑里都有完整的版本库，其中一个人的电脑坏了不要紧，从其他人那里复制一个就可以了。 Git就是常见的分布式版本控制系统之一，也是目前最流行的版本控制系统。 2、Git与Github 准确地说，Git与Github根本不是同一个概念。 Git是指由Linus（就是那位二十多年前徒手撸出Linux内核的大佬）编写的分布式版本控制系统，于2005年以GPL发布。最初目的是为了更好地管理Linux内核开发。 自2002年以来，Linus一直使用BitKeeper作为Linux内核主要的版本控制系统以维护代码。在Linux社区中，主张应该使用开放源代码的软件来作为Linux内核的版本控制系统。Linus曾考虑过采用现成软件作为版本控制系统（例如Monotone），但这些软件都存在一些问题，特别是性能不佳。 2005年，Linux社区中的安德鲁·垂鸠写了一个可以连接BitKeeper的存储库的简单程序，BitKeeper著作权拥有者拉里·麦沃伊便认为安德鲁·垂鸠对BitKeeper内部使用的协议进行了逆向工程，决定收回无偿使用BitKeeper的许可。Linux内核开发团队与BitMover公司进行磋商无果后，Linus决定自行开发版本控制系统以替代BitKeeper，在十天的时间编写出git第一个版本。于是，世界上最流行的版本控制系统就这么戏剧式地诞生了。 而GitHub是通过Git进行版本控制的软件源代码托管服务平台，由GitHub公司（曾称Logical Awesome）的开发者Chris Wanstrath、P. J. Hyett和Thomas Preston-Werner使用Ruby on Rails编写而成，于2007年10月1日开始开发。beta版本开始上线于2008年2月，4月份正式上线。这是他们的logo，名字叫Octocat： 截止到2020年1月，GitHub已经有超过4000万注册用户和1.9亿代码库（包括至少2800万开源代码库），事实上已经成…

Linux设置定时任务：cron的用法
type: item
date: 2021-09-01T11:14:00+00:00
description: 目录： 0x01.cron是什么 0x02.crontab命令语法 0x03.crontab任务规则 1、标准规则 2、非标准规则 0x04.其他 1、定时任务生效时间 2、定时任务不生效 3、环境变量相关问题 0x01.cron是什么 cron该词来源于希腊语chronos（χρόνος），原意是时间。是一款类Unix的操作系统下的基于时间的任务管理工具。用户可以通过cron在固定时间、间隔下，运行指定任务（可以是命令和脚本）。 cron的操作由crontab（cron 表）文件驱动，该文件是一个配置文件，用于指定按给定计划定期运行的shell命令。crontab文件存储在保存作业列表和cron守护程序的其他指令的位置。 用户可以拥有自己的个人crontab文件，并且通常有一个系统范围的crontab文件（通常在/etc或/etc的子目录中），只有系统管理员才能编辑。 要新添加一个定时任务，需要编辑crontab文件（即cron表），在其中添加相关任务即可，定时任务的编写规则见第三条。 0x02.crontab命令语法 crontab [ -u user ] { -l | -r | -e } 说明： -u user参数可以设定某一个用户的cron表，前提是必须要有相关权限（比如root权限），才能够设定其他人的crontab文件。如果不使用-u user的话，就是表示设定自己的crontab文件 -e：执行文字编辑器来设定时程表，内定的文字编辑器是vi -r：删除目前的cron表中的所有任务 -l：列出目前cron表中的所有任务 综上，简单总结基本的常用命令： 直接编辑crontab文件： crontab # 这个命令执行完之后，直接接受控制台中的输入流作为任务命令 用编辑器编辑crontab文件： crontab -e 删除当前所有的任务规则： crontab -r 列出目前所有的定时任务： crontab -l 其中，可以在crontab之后加上-u user的参数来操作指定用户对应的crontab文件，前提是必须要有相关权限（比如root权限）。否则就是操作自己的crontab文件。 0x03.crontab任务规则 1、标准规则 简单理解就是执行时间+ 命令的形式。 其中时间是由五个域组成，分别为分钟、小时、天、月份、星期，每个域可以放置单一或多个数值，同时每个域之间都有空格来进行区分，如下所示： ┌──────────── 分钟 (0 - 59) │ ┌──────────── 小时 (0 - 23) │ │ ┌──────────── 天 (1 - 31) │ │ │ ┌──────────── 月份 (1 - 12) │ │ │ │ ┌──────────── 星期中的某天 (0 - 6) (从周日开始算到周六) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ * * * * * [用户名] <要执行的命令> 在用户层次的crontab文件中，用户名是可以省略的参数，而系统层次的crontabs文件的任务经常会指定一个或以上的用户进行执行，因此需要增加用户名字段。 注： 在某些系统里，星期日也可以为7 不很直观的用法：如果日期和星期同时被设定，那么当其中的一个条件被满足时，指令便会被执行。而不是同时满足 为方便个人记忆，前5个域可称之为分时日月周 表示时间的每个域里除了可以是具体数值，还可以是表达式或者是多个数值： 逗号（,）列举出多个数值，例如：1,3,4,7 * * * * echo hello world表示在每小时的1、3、4、7分时，打印"hello world"。 连词符（-）表示一个数值范围，例如：1-6 * * * * echo hello world ，表示每小时的1到6分钟内，每分钟都会打印"hello world"。 星号（*）代表任何可能的值。例如：在“小时域”里的星号等同于“每一个小时”。 百分号(%) 表示“每"。例如：*%10 * * * * echo hello world表示，每10分钟打印一回"hello world"。 表格说明： 域 是否必填 允许的值 分钟 是 0–59 小时 是 0–23 天 是 1–31 月份 是 1–12、JAN–DEC 星期中的某天 是 0–6 、SUN–SAT 2、非标准规则 仅由某些cron程序的扩展版本支持，标准版本并不支持。以下这部分是在维基百科英文版本部分就着谷歌大概翻译出来的，如果有误，请以维基百科词条中的原文内容为准，词条链接在文末。 L：“L”代表“最后”。 当在星期字段中使用时，它允许指定诸如给定月份的“最后一个星期五”（“5L”）之类的构造。 在day-of-month字段中，它表示该月的最后一天。 W：'W' 字…

ubuntu安装MongoDB数据库
type: item
date: 2021-06-11T00:46:00+00:00
description: 目录： 前言 1、导入MongoDB公共 GPG 密钥 2、创建列表文件 3、用命令安装MongoDB 3.1 安装最新版本 3.2 安装指定版本 4.启动MongoDB 4.1 systemed（systemctl）： 4.2 System V Init（service）： 5.管理MongoDB数据库 6.卸载MongoDB 附：在更改MongoDB连接端口时遇到的坑 环境说明： 系统：ubuntu 20.04 MongoDB：V4.4.6 前言 MongoDB是一种面向文档的数据库管理系统，即非关系型数据库，用C++等语言撰写而成，以解决应用程序开发社区中的大量现实问题。MongoDB由MongoDB Inc.（当时是10gen团队）于2007年10月开发，2009年2月首度推出，现以服务器端公共许可（SSPL）分发。 MongoDB社区版是免费的，包含Windows、Linux和OS X的二进制版本。许多Linux包管理系统曾经包含MongoDB的包，由于许可证变更，MongoDB已经从Debian、Fedora和Red Hat Enterprise Linux发行版中被移除。 本篇博客中ubuntu安装MongoDB的过程参考自MongoDB官网：Install MongoDB Community Edition on Ubuntu — MongoDB Manual，其他派系Linux安装MongoDB请参考：Install MongoDB Community Edition on Linux — MongoDB Manual。 1、导入MongoDB公共 GPG 密钥 用以下命令从https://www.MongoDB.org/static/pgp/server-4.4.asc导入MongoDB公共GPG密钥: wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - 出现OK字样表示导入成功。若中途提示gnupg未安装，用以下命令安装： sudo apt-get install gnupg 安装之后尝试重新导入，直至出现OK字样。 2、创建列表文件 在ubuntu上创建列表文件/etc/apt/sources.list.d/mongodb-org-4.4.list，不同版本的ubuntu命令也不同（其实只是命令中的版本号不同）： # Ubuntu 20.04 (Focal)： echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list # Ubuntu 18.04 (Bionic) echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list # Ubuntu 16.04 (Xenial) echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list 若不确定系统版本号，用“lsb_release -a”命令查看，“Codename”一项即是版本号 3、用命令安装MongoDB 3.1 安装最新版本 输入以下命令安装MongoDB，默认安装最新版： # 更新软件源中的所有软件列表： sudo apt update sudo apt-get install -y mongodb-org 3.2 安装指定版本 如果要安装指定版本，必须分别指定每个组件包和版本号，比如： sudo apt-get install -y mongodb-org=4.4 mongodb-org-server=4.4 mongodb-org-shell=4.4 mongodb-org-mongos=4.4 mongodb-org-tools=4.4 如果只安装MongoDB-org = 4.4，并且不包含组件包，那么无论指定了哪个版本，都将安装每个 MongoDB 包的最新版本。 在安装完指…

ubuntu系统中的文件权限管理总结
type: item
date: 2021-03-12T02:54:00+00:00
description: 目录： 思维导图 1.ubuntu中的文件权限介绍 1.1 用户组 1.2 文件权限等级 2.查看文件权限 3.修改文件权限 3.1 用字母表示权限等级 3.2 用数字表示权限等级 思维导图 注：修改文件权限等操作需要一定系统权限，本文的命令默认是在root用户下进行的，如有必要，请在命令前加入sudo 来提升权限。 1.ubuntu中的文件权限介绍 1.1 用户组 对于一个文件或者文件夹来说，与其相关的用户组分为三类： user：该文件或文件夹的拥有者 group：与user在同一个用户组的用户 other：除了user和group的其他所有用户 1.2 文件权限等级 文件权限等级有三种，分别为读、写、执行。有两种表示方法： 用字母表示： 读：r（read） 写：w（write） 执行：x（execute） ——假如这个文件可执行的话 无权限：-（可以理解为占位符） 这个很好理解，表示形式就是对应英文单词的首字母。假设有文件test.txt，user有这个文件的读、写、执行权限，group有读、写权限，other有执行权限，那么它的文件权限就可以用这种方式表示为：rwxrw- - -x。这串字符分为三部分，分别表示了user、group、other这三类用户的权限情况： 用十进制数字表示： 读：4 写：2 执行：1 无权限：0 那么问题来了，表示每个权限的数字为什么是”4“、 ”2“、 ”1“，而不是其他数字呢？其实用二进制来解释就很好理解了。在二进制中只有“0”和“1”两种取值，相对应到文件权限上，有权限是“1”，无权限是“0”。假设用户同时具备读、写、执行三种权限，那么按照读、写、执行的顺序排列，可得到一个二进制数“111”，将这个二进制数转换成十进制数就变成了“421”，所以就可以得到每种文件权限对应的十进制数字了，即：读（4）、写（2）、执行（1）。 以上是数字表示单个权限的情况，当数字来表示组合权限时稍显麻烦，但也并不算复杂。举个栗子说明权限表示的规则：还是文件test.txt，三类用户的权限不同，user有这个文件的读（4）、写（2）、执行（1）权限，group有读（4）、执行（1）权限，other只有这个文件的执行（1）权限，用数字来表示就是：“751”。即每位数字是该用户所拥有权限的和，看下图： 综上所述，这两种方法用一个表格总结下来就是这样： 读（read） 写（write） 执行（execute） 字母 r w x 十进制数字 4 2 1 2.查看文件权限 # 查看文件权限， ls -l [文件名] # 查看文件夹权限 ls -ld [文件夹名] 比如查看当前目录下的test.txt这个文本文件的权限信息： ls -l test.txt 结果如下，图中红框部分就是文件权限信息： 查看当前目录下的test文件夹的权限信息： ls -ld test 执行结果： 最前面的“d”表示文档类型，即文件夹，其他的还有： -：普通文档 l：链接文件（link file）； b：装置文件里面的可供储存的接口设备（可随机存取装置）； c：装置文件里面的串行端口设备，例如键盘、鼠标（一次性读取装置）。 后面对应的每一位上，有权限就用权限对应字母表示，若没有权限则用”-“来占位。 查看文件权限时，若省略后面的文件名参数，命令结果就会显示当前目录下的所有文件及文件夹的权限等信息。 查看文件夹权限时，省略文件名参数，命令的执行结果会变成显示当前所在的文件夹的权限信息。 基本介绍完了，接下来就是如何修改文件权限。 3.修改文件权限 修改文件的权限用chmod命令，对于一个文件来说，文件权限的表示方法有字母和数字两种，所以修改权限时就可以有两种方法。 3.1 用字母表示权限等级 举几个例子来说明，假设有一个文件“test”： # 增加group用户的可执行权限 chmod g+x test “+”表示在原来的基础上增加权限 # 删除other用户的可写权限 chmod o-w test “-”表示在原来的基础上删除权限 # 给user用户给test文件的可写、可读、可执行权限 chmod u=rwx test “=”可以给用户直接赋予多个权限 # 假设有文件test，给全部用户增加这个文件的可写权限 chmod a+w test a在这里表示全部用户（user+group+other） 综上来说，这种方式下命令可以简单概括为： chmod [用户]+/-/=[权限] [文件/文件名] [用户]有u（user）、g（group）、o（other）和a（user+group+other） [权限]有r（read）、w（write）、x（execute） 3.2 用数字表示权限等级 继续举例子说明： # 修改文件“test1”的权限为use…

ubuntu下zerotier的基本使用教程
type: item
date: 2021-03-07T02:31:00+00:00
description: 目录： 前言 1.安装 2.创建一个网络 3.加入一个网络 4.其他操作 （1）手动启动zerotier服务： （2）开机启动： （4）查看本机连接的网络： （5）断开当前加入的网络： 环境说明： 设备：树莓派4B 操作系统：ubuntu 20.10 zerotier版本：1.6.3 前言 zerotier官网：https://www.zerotier.com/ 官方文档：https://zerotier.atlassian.net/wiki/spaces/SD/overview 1.安装 输入以下命令在ubuntu中安装zerotier： curl -s https://install.zerotier.com | sudo bash 2.创建一个网络 首先进入zerotier官网，用邮箱注册一个账号。然后进入网络列表，点击Create A Network按钮创建一个网络，下方列表中会出现一个网络ID，点击网络ID进入即可这个网络的设置界面。 该网络的“setting”选项有如下几个项目需要设置： 其他大部分设置可以保持默认选项不做修改 3.加入一个网络 首先在要连接的Linux设备上输入如下命令加入网络，如果连接成功就会出现200的状态码提示： sudo zerotier-cli join 网络ID # 查看当前连接的网络，如果列表中出现网络号说明连接成功 sudo zerotier-cli listnetworks private属性的网络检测到新设备连接时要手动授权，需要在这个网络的控制台授权新设备连接。未授权之前设备列表是这样： 在前面的列表项上打上勾，即完成授权，设备状态变成这样： 那么这个linux设备就加入到了这个网络中，如果再往这个网络中加入一个设备，这两个设备只要保持运行zerotier且都连接到这同一个网络，即使这两个设备不在同一个局域网内，也能互相访问了。 4.其他操作 （1）手动启动zerotier服务： sudo systemctl start zerotier-one.service （2）开机启动： sudo systemctl enable zerotier-one.service （4）查看本机连接的网络： sudo zerotier-cli listnetworks （5）断开当前加入的网络： sudo zerotier-cli leave 网络ID 以上是zerotier的基本操作，本篇只涉及到Linux平台的操作，由于其他平台的zerotier都有图形化的客户端，操作起来还是比较简单的，所以不再赘述（绝对不是因为我懒）。 这里推荐B站的一个up主的视频，关于zerotier他讲的很详细，可以说是包教包会：https://www.bilibili.com/video/BV1VJ411H7Yv {bilibili bvid="BV1VJ411H7Yv" page=""/}

为ubuntu server20.04 连接wifi
type: item
date: 2021-02-04T04:13:00+00:00
description: 环境说明： Linux：ubuntu server 20.04 简单的上手体验了一下树莓派的32位原生系统RaspberryPi OS之后，直接给树莓派安装了64位的ubuntu server系统，但是在为它连接wifi时，貌似用原来RaspberryPi OS系统连接wifi的方法不管用，所以在查了一些资料之后，便把ubuntu系统连接wifi的方法记录下来，以防忘记。 首先，wifi信息需要进入系统之后，在/etc/netplan的配置文件中更改： cd /etc/netplan # 进入配置文件的目录 ls # 查看配置文件名称，不同机器的配置文件名称不同 sudo nano *****.yaml # 编辑配置文件 按照以下格式补充修改配置文件： network: version: 2 ethernets: eth0: dhcp4: true match: macaddress: b8:27:eb:c6:94:8f set-name: eth0 wifis: wlan0: dhcp4: true access-points: "wifi的ssid": password: "wifi密码" 补充的部分能复制就复制，复制过去直接改成自己的wifi名称和密码就行，因为在实际输入的情况下会出现很多问题（不得不说yaml的语法是真的一言难尽），如果实在没办法去复制的话，在手动输入的情况下要注意以下几个坑： 在yaml语法规则中，要严格按照层次结构进行缩进（在命令行下缩进四个空字符就差不多是下一层）； 冒号后面如果不换行的话，那么一定要空一格再输入后面的内容，比如dhcp4: true这句； 关于wifi名称，如果wifi名称不包含空格的话双引号可以省略，否则就必须把wifi名称用双引号括起来 配置完成以后，ctrl+o保存，ctrl+x退出。 # 配置好文件之后 需要执行下面这个命令，查看配置是否有错，如果有错它会自动回滚上次正确配置 sudo netplan try # 没错会让你按enter确认使用这些配置，然后执行这个命令来使配置生效 sudo netplan apply 然后再重启，等到设备连接到wifi就行了。 附上一些更详细的配置：WiFi 配置 ——ubuntu20.04 server

为ubuntu更新提速：将更新源改为国内源
type: item
date: 2021-01-27T04:26:00+00:00
description: 目录： step 1：获取ubuntu版本号 step 2：备份原文件（可选） step 3：修改源文件 step 4：更新软件列表和升级 环境说明： 系统版本：ubuntu 18.04 以下方法适用于ubuntu 18.0.4（版本号为bionic），若为ubuntu其他版本，将源链接中的bionic改为其他版本号即可： step 1：获取ubuntu版本号 lsb_release -a 其中的 Codename 一项为版本号 step 2：备份原文件（可选） sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak step 3：修改源文件 ubuntu 的下载源更新源等存放在 /etc/apt/sources.list 中 用nano编辑 /etc/apt/sources.list： sudo nano /etc/apt/sources.list 下面包含了阿里云源和清华大学源，在打开文件后，注释或者清空里面的内容，任选一个国内源复制进去： # 阿里云源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse ##測試版源 deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse # 源碼 deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse ##測試版源 deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse # 清华大学源 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse ##測試版源 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse # 源碼 deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src h…

mysql简述：从安装到卸载
type: item
date: 2021-01-26T14:29:00+00:00
description: 目录： 一、安装Mysql 1. 输入以下命令安装： 2.修改Mysql密码 3. 重新登录mysql 二、基本操作 1. 登录数据库 2. 列出mysql中的所有数据库 3. 查看选定数据库中的所有表 4. 查看表中所有元素 5. 创建新的数据库test 三、彻底卸载mysql 环境说明： 数据库环境：mysql8.0 Linux环境：ubuntu18.0.4 一、安装Mysql 1. 输入以下命令安装： sudo apt-get install mysql-server 安装完成之后，登录mysql： sudo mysql -uroot -p 接下来提示输入密码，默认无密码，直接按回车进入 2.修改Mysql密码 # 对于的mysql 8以上，更改mysql8的加密方式，为root用户更改密码： alter user 'root' identified with mysql_native_password by '新密码'; # 或者 update user set password=password('新密码') where user='用户名'; # 我们也还可以使用mysqladmin命令来进行修改用户密码，这个命令要在mysql控制台之外的控制台上执行，需要输入旧密码再设置新密码 mysqladmin -u [用户名] -p password '新密码'; 修改完之后，刷新权限信息，输入： flush privileges; 3. 重新登录mysql 输入exit或者ctrl + c退出当前登录，再重新登录： sudo mysql -u root -p # “-u” 和“root”之间可以有空格，也可以连在一起 输入新设置的密码即可进入数据库 二、基本操作 1. 登录数据库 # 有密码时： sudo mysql -uroot -p * 若无密码，则直接按回车即可进入 2. 列出mysql中的所有数据库 show databases; 3. 查看选定数据库中的所有表 # 选中mysql数据库： use mysql; # 查看mysql的所有表： show tables; 4. 查看表中所有元素 # 查看db表： select * from db; 5. 创建新的数据库test # 创建数据库test create database test 三、彻底卸载mysql 首先删除mysql： sudo apt-get remove mysql-* 清理残留数据： dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 参考资料： 通过mysqlclient操作MySQL数据库 - kingwangzhen - 博客园 (cnblogs.com)