mirror of
https://github.com/Dichgrem/Blog.git
synced 2025-02-23 14:08:37 -05:00
Initial commit
This commit is contained in:
parent
f516c57069
commit
9385c064d4
@ -3,7 +3,7 @@ title = "乱七八糟:流量卡购买与套路"
|
|||||||
date = 2023-08-24
|
date = 2023-08-24
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Life","乱七八糟"]
|
tags = ["乱七八糟"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "乱七八糟:B站优质视频:计算机科学"
|
|||||||
date = 2024-05-31
|
date = 2024-05-31
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","乱七八糟"]
|
tags = ["乱七八糟"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 CSdiy珠玉在前,为CS教育做出了极大贡献.然而,受限与英文水平与课程难度,在这里分享一些B站上的中文CS相关视频.
|
前言 CSdiy珠玉在前,为CS教育做出了极大贡献.然而,受限与英文水平与课程难度,在这里分享一些B站上的中文CS相关视频.
|
||||||
|
@ -3,7 +3,7 @@ title = "乱七八糟:PTA编译命令解析"
|
|||||||
date = 2024-06-02
|
date = 2024-06-02
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","乱七八糟"]
|
tags = ["乱七八糟"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 编译器是软件开发中至关重要的工具之一,它负责将源代码转换为可执行程序,使得我们编写的代码能够在计算机上运行并实现预期的功能。在C++开发中,GNU C++编译器(g++)是最常用的编译器之一.本文将详细介绍PTA预设命令中各个参数和选项,以及它们的作用和用法。
|
前言 编译器是软件开发中至关重要的工具之一,它负责将源代码转换为可执行程序,使得我们编写的代码能够在计算机上运行并实现预期的功能。在C++开发中,GNU C++编译器(g++)是最常用的编译器之一.本文将详细介绍PTA预设命令中各个参数和选项,以及它们的作用和用法。
|
||||||
|
@ -3,7 +3,7 @@ title = "乱七八糟:时间的标准与格式"
|
|||||||
date = 2024-05-13
|
date = 2024-05-13
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","乱七八糟"]
|
tags = ["乱七八糟"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 时间,作为人类社会中不可或缺的重要元素,其标准化与格式化一直是人类社会发展过程中的重要课题之一。本文将探讨一系列时间标准与格式,从最古老的GMT(格林威治标准时间)到最新的RFC3339,以及各种时区表示方法和日期时间的格式化方式。
|
前言 时间,作为人类社会中不可或缺的重要元素,其标准化与格式化一直是人类社会发展过程中的重要课题之一。本文将探讨一系列时间标准与格式,从最古老的GMT(格林威治标准时间)到最新的RFC3339,以及各种时区表示方法和日期时间的格式化方式。
|
||||||
|
@ -3,7 +3,7 @@ title = "乱七八糟:应届生工作指南"
|
|||||||
date = 2023-12-27
|
date = 2023-12-27
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Life","乱七八糟"]
|
tags = ["乱七八糟"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "乱七八糟:常见发音错误术语集合"
|
|||||||
date = 2023-08-25
|
date = 2023-08-25
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Life","乱七八糟"]
|
tags = ["乱七八糟"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 中文和英语发音习惯不同,容易引起误解。本文旨在帮助您准确发音常见的科技术语,欢迎随时补充。
|
前言 中文和英语发音习惯不同,容易引起误解。本文旨在帮助您准确发音常见的科技术语,欢迎随时补充。
|
||||||
|
@ -3,7 +3,7 @@ title = "综合工程:PVE安装与MC服务器搭建"
|
|||||||
date = 2023-08-11
|
date = 2023-08-11
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","综合工程"]
|
tags = ["综合工程"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "综合工程:Android TV 折腾小记"
|
|||||||
date = 2023-08-14
|
date = 2023-08-14
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","综合工程"]
|
tags = ["综合工程"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "综合工程:安卓刷机与root教程"
|
|||||||
date = 2023-08-13
|
date = 2023-08-13
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","综合工程"]
|
tags = ["综合工程"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "综合工程:Arch从入门到入土"
|
|||||||
date = 2023-08-16
|
date = 2023-08-16
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","综合工程"]
|
tags = ["综合工程"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "综合工程:ChromeBook研究记"
|
|||||||
date = 2023-08-15
|
date = 2023-08-15
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","综合工程"]
|
tags = ["综合工程"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "综合工程:黑群辉NAS极速安装"
|
|||||||
date = 2023-08-17
|
date = 2023-08-17
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","综合工程"]
|
tags = ["综合工程"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "综合工程:OpenWrt 软路由部署"
|
|||||||
date = 2023-08-12
|
date = 2023-08-12
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","综合工程"]
|
tags = ["综合工程"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "搭建个人信息流:播客收听指北"
|
|||||||
date = 2024-03-06
|
date = 2024-03-06
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Life","乱七八糟"]
|
tags = ["乱七八糟"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 讲起播客,许多人第一反应是喜马拉雅,但其实播客的订阅和收听有许多种方式。本文带你了解订阅播客的各种方式,并告诉你市面上有哪些不错的播客客户端可供选择。
|
前言 讲起播客,许多人第一反应是喜马拉雅,但其实播客的订阅和收听有许多种方式。本文带你了解订阅播客的各种方式,并告诉你市面上有哪些不错的播客客户端可供选择。
|
||||||
|
@ -3,7 +3,7 @@ title = "综合工程:Win/linux双系统部署"
|
|||||||
date = 2023-08-18
|
date = 2023-08-18
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","综合工程"]
|
tags = ["综合工程"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "乱七八糟:如何高效地向 ChatGPT 提问"
|
|||||||
date = 2024-01-07
|
date = 2024-01-07
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","乱七八糟"]
|
tags = ["乱七八糟"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ title = "乱七八糟:Chrome常用快捷键"
|
|||||||
date = 2024-05-23
|
date = 2024-05-23
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","乱七八糟"]
|
tags = ["乱七八糟"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 在日常使用浏览器时,掌握一些快捷键和技巧可以节省大量时间,提高工作和学习效率。通过学习和实践,能够更加轻松地应对各种网页浏览场景,让浏览器成为工作和学习的得力助手。
|
前言 在日常使用浏览器时,掌握一些快捷键和技巧可以节省大量时间,提高工作和学习效率。通过学习和实践,能够更加轻松地应对各种网页浏览场景,让浏览器成为工作和学习的得力助手。
|
||||||
|
@ -3,7 +3,7 @@ title = "Docker学习笔记(一)"
|
|||||||
date = 2024-03-25
|
date = 2024-03-25
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","学习笔记"]
|
tags = ["学习笔记"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 Docker 是一个开源平台,通过将应用程序隔离到轻量级、可移植的容器中,自动执行应用程序的部署、扩展和管理。容器是独立的可执行单元,它封装了应用程序在各种环境中一致运行所需的所有必要依赖项、库和配置文件。
|
前言 Docker 是一个开源平台,通过将应用程序隔离到轻量级、可移植的容器中,自动执行应用程序的部署、扩展和管理。容器是独立的可执行单元,它封装了应用程序在各种环境中一致运行所需的所有必要依赖项、库和配置文件。
|
||||||
|
@ -3,7 +3,7 @@ title = "Docker学习笔记(二)"
|
|||||||
date = 2024-03-26
|
date = 2024-03-26
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","学习笔记"]
|
tags = ["学习笔记"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 了解支持 Docker 的核心技术将有助于更深入地了解 Docker 的工作原理,并更有效地使用该平台。
|
前言 了解支持 Docker 的核心技术将有助于更深入地了解 Docker 的工作原理,并更有效地使用该平台。
|
||||||
|
@ -3,7 +3,7 @@ title = "Docker学习笔记(三)"
|
|||||||
date = 2024-03-27
|
date = 2024-03-27
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","学习笔记"]
|
tags = ["学习笔记"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 Docker 是一个平台,可简化在轻量级、可移植容器中构建、打包和部署应用程序的过程。在本节中,我们将介绍 Docker 的基础知识、其组件以及入门所需的关键命令。
|
前言 Docker 是一个平台,可简化在轻量级、可移植容器中构建、打包和部署应用程序的过程。在本节中,我们将介绍 Docker 的基础知识、其组件以及入门所需的关键命令。
|
||||||
|
@ -3,7 +3,7 @@ title = "Docker学习笔记(四)"
|
|||||||
date = 2024-03-28
|
date = 2024-03-28
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","学习笔记"]
|
tags = ["学习笔记"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 Docker 使您能够运行与主机操作系统分离的隔离代码段(包括应用程序及其依赖项)的容器。默认情况下,容器是临时的,这意味着容器中存储的任何数据一旦终止就会丢失。为了克服这个问题并跨容器生命周期保留数据,Docker 提供了多种数据持久化方法。
|
前言 Docker 使您能够运行与主机操作系统分离的隔离代码段(包括应用程序及其依赖项)的容器。默认情况下,容器是临时的,这意味着容器中存储的任何数据一旦终止就会丢失。为了克服这个问题并跨容器生命周期保留数据,Docker 提供了多种数据持久化方法。
|
||||||
|
@ -3,7 +3,7 @@ title = "Docker学习笔记(五)"
|
|||||||
date = 2024-03-29
|
date = 2024-03-29
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","学习笔记"]
|
tags = ["学习笔记"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 第三方映像是预构建的 Docker 容器映像,可在 Docker Hub 或其他容器注册表上使用。这些映像由个人或组织创建和维护,可用作容器化应用程序的起点。
|
前言 第三方映像是预构建的 Docker 容器映像,可在 Docker Hub 或其他容器注册表上使用。这些映像由个人或组织创建和维护,可用作容器化应用程序的起点。
|
||||||
|
@ -3,7 +3,7 @@ title = "Docker学习笔记(六)"
|
|||||||
date = 2024-03-30
|
date = 2024-03-30
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","学习笔记"]
|
tags = ["学习笔记"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 容器映像是可执行包,其中包含运行应用程序所需的所有内容:代码、运行时、系统工具、库和设置。通过构建自定义映像,您可以在任何 Docker 支持的平台上无缝部署应用程序及其所有依赖项。
|
前言 容器映像是可执行包,其中包含运行应用程序所需的所有内容:代码、运行时、系统工具、库和设置。通过构建自定义映像,您可以在任何 Docker 支持的平台上无缝部署应用程序及其所有依赖项。
|
||||||
|
@ -3,7 +3,7 @@ title = "Docker学习笔记(七)"
|
|||||||
date = 2024-03-31
|
date = 2024-03-31
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","学习笔记"]
|
tags = ["学习笔记"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 容器镜像仓库是 Docker 容器镜像的集中存储和分发系统。它允许开发人员以这些映像的形式轻松共享和部署应用程序。容器镜像仓库在容器化应用程序的部署中起着至关重要的作用,因为它们提供了一种快速、可靠且安全的方式来跨各种生产环境分发容器映像。
|
前言 容器镜像仓库是 Docker 容器镜像的集中存储和分发系统。它允许开发人员以这些映像的形式轻松共享和部署应用程序。容器镜像仓库在容器化应用程序的部署中起着至关重要的作用,因为它们提供了一种快速、可靠且安全的方式来跨各种生产环境分发容器映像。
|
||||||
|
@ -3,7 +3,7 @@ title = "Docker学习笔记(八)"
|
|||||||
date = 2024-04-01
|
date = 2024-04-01
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Tech","学习笔记"]
|
tags = ["学习笔记"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
前言 容器安全是实现和管理容器技术(如 Docker)的关键方面。它包含一组实践、工具和技术,旨在保护容器化应用程序及其运行的基础结构。在本节中,我们将讨论一些关键的容器安全注意事项、最佳做法和建议。
|
前言 容器安全是实现和管理容器技术(如 Docker)的关键方面。它包含一组实践、工具和技术,旨在保护容器化应用程序及其运行的基础结构。在本节中,我们将讨论一些关键的容器安全注意事项、最佳做法和建议。
|
||||||
|
@ -6,6 +6,7 @@ date = 2023-07-24
|
|||||||
tags = ["Linux"]
|
tags = ["Linux"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
||||||
前言 在计算机领域,系统引导和磁盘分区是至关重要的。本文将介绍BIOS与UEFI,MBR与GPT,以及它们之间的异同点。此外,我们还会讨论与这些概念密切相关的引导加载程序——GRUB。
|
前言 在计算机领域,系统引导和磁盘分区是至关重要的。本文将介绍BIOS与UEFI,MBR与GPT,以及它们之间的异同点。此外,我们还会讨论与这些概念密切相关的引导加载程序——GRUB。
|
||||||
<!-- more -->
|
<!-- more -->
|
||||||
## BIOS
|
## BIOS
|
||||||
|
105
public/404.html
105
public/404.html
@ -1,105 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>
|
|
||||||
404 | Dich'blog
|
|
||||||
</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="description" content="Page not found">
|
|
||||||
|
|
||||||
<meta property="og:description" content="Page not found">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="website">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="Page not found">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
<h1 class="post-title">Lost?</h1>
|
|
||||||
<p>This page does not exist.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,309 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/about-bilibili/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/about-bilibili/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li class="active"><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/about-bilibili/">乱七八糟:B站优质视频:计算机科学</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-05-31
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 CSdiy珠玉在前,为CS教育做出了极大贡献.然而,受限与英文水平与课程难度,在这里分享一些B站上的中文CS相关视频.</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="ji-suan-ji-ti-xi-jie-gou">计算机体系结构</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1Ct42177Y6/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">普林斯顿大学-计算机科学:算法、理论和机器(GPT 翻译)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1bx421D7Xd/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">计算机体系结构( 2024 年春)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1VF4m1u7xi/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">台湾科技大学:计算机组成 2023-刘一宇</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1ZW4y1w7M6/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">国科大:计算机体系结构胡伟武、汪文祥</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1aC4y1X7VF/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">CMU15213/15513-2023Spring:深入理解计算机系统(英)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1964y1j7gk/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">UCBerkeley-CS61C:计算机体系结构(GPT 翻译)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1ua4y1a72K/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">Stanford-CS107:计算机组织与系统</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1Zp421y7Ex/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">耶路撒冷希伯来大学:从零开始构建现代计算机(GPT 翻译)</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/91181150/channel/seriesdetail?sid=3700435&ctype=0">威廉玛丽学院:计算机体系结构建模与仿真(英)</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="cao-zuo-xi-tong-ji-suan-ji-zu-cheng">操作系统 /计算机组成</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/491131440/channel/collectiondetail?sid=146887">操作系统实现</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/18777618/channel/collectiondetail?sid=801384">操作系统速成-2022 秋冬朋辈辅学录播</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/354767108/channel/collectiondetail?sid=373847">CSAPP-深入理解计算机系统-讲解</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/2107852263/channel/collectiondetail?sid=690279">“一生一芯”</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/28086502/channel/collectiondetail?sid=674585">MIT6.828/6.S081 操作系统课程教程</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/12995787/channel/collectiondetail?sid=196337">从零开始自制操作系统</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/202224425/channel/collectiondetail?sid=1116786">2023 南京大学 “操作系统:设计与实现” (蒋炎岩)</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/40333442/channel/collectiondetail?sid=444904&ctype=0">厦门大学-操作系统原理( 2022 春)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1B341117Ez?p=6">现代操作系统:原理与实现(上海交通大学)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1wv4y1S7xm/">操作系统原理:清华大学陈渝教授</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/4564101/channel/series">深入理解计算机系统---个人讲解</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1RK4y1R7Kf/">深入理解计算机系统-CSAPP 重点导读</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1hf4y1P7qW/">Dr.Dng 陪跑 CSAPP: bigONE 《深入理解计算机系统》</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/31359187/channel/seriesdetail?sid=2310084">CS162 操作系统-精译(更新中)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1nb411K7DT/">台湾清华大学 - 操作系统 Operating Systems - 黄能富教授</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1i2421K7P1?p=2&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">CS537:操作系统导论 Spring2018(英)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1iy421q74x/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">中山大学:操作系统原理-2024</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1a7411w7tC/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">2020 年春季:南京大学计算机系统基础 PA 在线课-汪亮</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1pK4y1C7es/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">教你写一个简单的 CPU</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1194y157ku/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">台湾大学:信号与系统-李琳山</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1mW421A7Wi/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">信号与系统漫谈</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1iA4m137ML/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">嵌入式系统-南开大学李庆诚教授-2024 春</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="bian-yi-xiang-guan-ruan-jian-fen-xi">编译相关 /软件分析</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/2919428/channel/collectiondetail?sid=342930&ctype=0">南京大学《软件分析》课程 2020</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/296494084/channel/collectiondetail?sid=571708">手写一个 RISC-V 编译器!初学者友好的实战课程</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/479141149/channel/collectiondetail?sid=837891">南京大学软件学院编译原理课程</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1FA4m1P7kn/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">湖南大学:2024 计科拔尖班《编译原理》</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1WC4y1k768/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">KAISTCS420:编译器设计 2020Spring(机翻)</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="shu-ju-jie-gou-suan-fa-xiang-guan">数据结构 /算法相关</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/33807373/channel/collectiondetail?sid=442054&ctype=0">东北大学:2021 ~ 2022 春季学期算法设计与分析</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/474662253/channel/collectiondetail?sid=1114093">南京大学《 2023 算法设计与分析》- 黄宇</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/390606417/channel/collectiondetail?sid=1120423">南京大学《 2023 算法设计与分析》- 徐经纬</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1nJ411V7bd/">数据结构与算法基础(青岛大学-王卓)</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/26340287/channel/collectiondetail?sid=5221">跟懒猫老师快乐学数据结构</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV12V4y1Z78b/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">香港科技大学:高级算法 & Advanced Algorithms</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="ji-suan-ji-wang-luo">计算机网络</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/327247876/channel/collectiondetail?sid=60187">计算机网络-通熟易懂讲解每个知识要点</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1JV411t7ow/">中科大郑烇、杨坚全套-计算机网络(自顶向下方法)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1c4411d7jb/">计算机网络微课堂</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="cheng-xu-yu-yan-bian-cheng-yu-yan">程序语言 /编程语言</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/283614758/channel/collectiondetail?sid=514109">计算机程序的构造与解释( SICP, Python 版)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1xE411N74T/">计算机语言 x86 汇编语言:从实模式到保护模式(操作系统引导课)</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/1453436642/video">程序语言理论与实现</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1Xx41117tr/">CS 公开课:计算机程序的构造和解释( SICP )</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1v64y1Q78o?p=34">精译</a><a href="https://www.bilibili.com/video/BV1v64y1Q78o?p=34">-UC Berkeley 公开课-CS61A [计算机程序的构造和解释] (Spring 2021)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1hb4y1A71J?p=4&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">计算机程序的构造和解释 (SICP) Python 版 教程(录制持续更新中)</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="ruan-jian-gong-cheng">软件工程</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/507030405/channel/seriesdetail?sid=1878983&ctype=0">南京大学-2023 软件工程与计算 I</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV15y421h7j7/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">2024 Rust 现代实用教程</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="shu-ju-ku">数据库</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/87476569/channel/collectiondetail?sid=695667">数据库系统( DBMS )</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/31359187/channel/seriesdetail?sid=2310086">CMU15-445-精译(更新中)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV15u4y1Q71R/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">清华大学计算机系:数据库管理系统-李国良</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/23722270/channel/collectiondetail?sid=89600&spm_id_from=333.788.0.0">中文讲解版-CMU15-445:数据库内核</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="bing-xing-cheng-xu-she-ji">并行程序设计</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1XM4y1S7wy?p=5">并行程序设计 谭光明</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/263032155/channel/collectiondetail?sid=53025">高性能并行编程与优化</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1Yt411W7td/">新竹清华大学:并行计算与并行编程课程</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="mi-ma-xue">密码学</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/445312136/channel/collectiondetail?sid=988395&spm_id_from=333.788.0.0">分布式密码学:Dora Dōjō x THUBA</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1WL411d7Zi/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">新火公开课-密码学基础系列课程</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1Ht411w7Re/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">Stanford:密码学(有翻译)</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="gong-ju">工具</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/171431343/channel/collectiondetail?sid=1213483">浙江大学:「实用技能拾遗」 2023 春夏朋辈辅学</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/443605967/channel/collectiondetail?sid=266172">Obsidian 公开课</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="qi-ta">其他</h2>
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
<p><a href="https://www.bilibili.com/video/BV1xa4y1g7sZ/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">自制双语字幕-计算机教育缺失的一课(2020)</a></p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p><a href="https://www.bilibili.com/video/BV1SF4m1u7SU?p=27&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">CMU15-440:分布式系统(英)</a></p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p><a href="https://www.bilibili.com/video/BV1Hz4y1c7EZ/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">数字电路(对应的 MIT 数电)-UP 主讲解</a></p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p><a href="https://www.bilibili.com/video/BV1Vt411X7JF/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">北京大学肖臻老师《区块链技术与应用》公开课</a></p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p><a href="https://space.bilibili.com/494117284/channel/series">《智能计算系统-从深度学习到大模型》</a></p>
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="shu-xue-xiang-guan">数学相关</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1jR4y1M78W/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">北大丘维声教授清华高等代数课程 1080P 高清修复版</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1Nr4y1U7qC/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">中国科学技术大学-数学分析(B1)-程艺老师</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1T5411P7wi/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">北京大学公开课:数学分析(上下全 112 讲无级数部分)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1bi4y1K7vn/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">复变函数(复分析) [中英双字] 已完结</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1sX4y1Y7jH/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">数学分析陈纪修无障碍重制版</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1fK411K7MA/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">2020 齐震宇老师微積分 02 班</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1mJ411r7ZB/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">高等代数学-复旦大学-谢启鸿-高清</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1d7411v7zu/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">离散数学-东北大学</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/610062295/channel/seriesdetail?sid=2558242&ctype=0">统计学-个人 UP 主</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="zhe-xue-xiang-guan">哲学相关</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1y64y1r7Mt/?spm_id_from=333.337.search-card.all.click&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">中国人民大学:西方哲学史-张志伟</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1hp4y1p7ye/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">赵林、邓晓芒-西方哲学史(旧版)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV19u4y1s7ug/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">台湾大学:逻辑学-傅皓政</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1tt411h7TT/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">康德专题研究-邓晓芒</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1P54y1G7EW/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">劳动关系学院:美学原理-2021 年春-杨宁</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1aZ4y167bp/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">符号学入门</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="ren-wen-yi-shu-jian-zhu-dian-ying-she-hui-xue">人文/艺术/建筑/电影/社会学</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1D7411D7h4/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91"> MIT全球建筑史( 4.605 A Global History of Architecture )(英文)</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1FL4y1e7nt/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">现代社会理论基础-中英字幕</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1Ti42117sw/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">中英双字-艺术史速成课</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/477533700/channel/collectiondetail?sid=1737877&spm_id_from=333.788.0.0">贡布里希《艺术的故事》视频解说版</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/386246830/channel/collectiondetail?sid=1837138&spm_id_from=333.788.0.0">摄影指导公开课-VFS/北电毕业生</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/386246830/channel/collectiondetail?sid=1871554">导演公开课-北电/VFS 毕业生</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1EG4y187wq/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">劳动关系学院:文学理论-2021 年秋-杨宁</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1sR4y1W77y/?spm_id_from=333.999.0.0&vd_source=cc4bfbaa0f8c6c363ff9afecce036d91">劳动关系学院:西方文论-2021 年秋-杨宁</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1as411M7DG/?spm_id_from=333.999.0.0">周传基讲电影</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="zong-he">综合</h2>
|
|
||||||
<ol>
|
|
||||||
<li><a href="https://space.bilibili.com/14871346/channel/collectiondetail?sid=550815">硬件茶谈:硬核科普</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/479038960/channel/collectiondetail?sid=997541">精读 c++primer</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/1268065381/channel/collectiondetail?sid=1163347">计算机图形学游戏方向-2023 年春季第 2 次迭代-谭剑</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/1356949475/channel/collectiondetail?sid=1211802">Linux 文件系统九讲-陈硕</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/30933812/channel/collectiondetail?sid=240551">DDIA 读书逐章分享</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1aE411o7qd/">机器学习-白板推导系列</a></li>
|
|
||||||
<li><a href="https://space.bilibili.com/395471891/channel/collectiondetail?sid=1213523">陈明-南京大学 23 春-面向对象编程基础</a></li>
|
|
||||||
<li><a href="https://www.bilibili.com/video/BV1Xy4y1b7SK/">每个程序员都应该知道的内存知识 (带你走读 Ulrich Drepper 的经典论文)</a></li>
|
|
||||||
</ol>
|
|
||||||
<h2 id="hou-ji">后记</h2>
|
|
||||||
<p>待续...</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/windows-optimization/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">乱七八糟:Windows优化流程</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/about-g/">
|
|
||||||
<span class="button__text">乱七八糟:PTA编译命令解析</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,156 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/about-g/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/about-g/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li class="active"><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/about-g/">乱七八糟:PTA编译命令解析</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-06-02
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 编译器是软件开发中至关重要的工具之一,它负责将源代码转换为可执行程序,使得我们编写的代码能够在计算机上运行并实现预期的功能。在C++开发中,GNU C++编译器(g++)是最常用的编译器之一.本文将详细介绍PTA预设命令中各个参数和选项,以及它们的作用和用法。</p>
|
|
||||||
<span id="continue-reading"></span>
|
|
||||||
<p>如下:
|
|
||||||
<code>g++ -DONLINE_JUDGE -fno-tree-ch -O2 -Wall -std=c++17 -pipe $src -lm -o $exe</code></p>
|
|
||||||
<ol>
|
|
||||||
<li><code>g++</code>: 这是 GNU C++ 编译器的命令。它负责将C++源代码编译成可执行程序。</li>
|
|
||||||
<li><code>-DONLINE_JUDGE</code>: 这是一个预处理器宏定义。在编译时,<code>-D</code>选项会将<code>ONLINE_JUDGE</code>定义为一个预处理器符号。通常情况下,这种宏定义用于在代码中启用或禁用特定的功能或特性。在这个命令中,<code>ONLINE_JUDGE</code>可能会被用来控制代码中的一些条件编译部分,使得在在线评测系统中编译和执行时特定的功能或特性被启用或禁用。</li>
|
|
||||||
<li><code>-fno-tree-ch</code>: 这是一个编译选项,用于控制编译器的优化行为。具体来说,<code>-fno-tree-ch</code>选项会禁用掉编译器中的一种叫做"树形优化"的技术的一部分。树形优化是GCC编译器中的一种高级优化技术,用于优化代码的执行效率。在某些情况下,禁用特定的优化技术可能会对调试或特定的代码结构有所帮助。</li>
|
|
||||||
<li><code>-O2</code>: 这是优化级别选项。<code>-O2</code>指示编译器进行较高级别的优化,以提高生成的代码的执行速度。优化级别通常从<code>-O0</code>(无优化)到<code>-O3</code>(最高级别优化)之间。在这种情况下,选择了较高的优化级别,以期望生成更高效的可执行代码。</li>
|
|
||||||
<li><code>-Wall</code>: 这个选项会开启编译器的警告提示。它会提示一些常见的代码问题和潜在的错误。开启警告提示有助于开发者在编译过程中发现潜在的问题,提高代码的质量和可靠性。</li>
|
|
||||||
<li><code>-std=c++17</code>: 这个选项指定了所使用的C++标准版本。在这种情况下,使用的是C++17标准。指定C++标准版本是为了确保编译器按照指定的标准进行语法和语义检查,以及生成相应版本的代码。</li>
|
|
||||||
<li><code>-pipe</code>: 这个选项告诉编译器使用管道来加速编译过程。通常情况下,编译器会将中间结果写入临时文件,然后再进行下一步的处理。使用管道可以避免频繁的文件读写操作,从而提高编译速度。</li>
|
|
||||||
<li><code>$src</code>: 这是一个变量,用于表示源代码文件的路径。在实际使用中,这个变量会被替换为实际的源代码文件路径,告诉编译器从哪里读取源代码进行编译。</li>
|
|
||||||
<li><code>-lm</code>: 这是用于链接数学库的选项。在某些情况下,C++程序可能会使用到数学库中的函数,比如<code>sqrt()</code>或<code>sin()</code>等。指定<code>-lm</code>选项可以告诉链接器在链接时将数学库链接到最终的可执行文件中,以便程序能够正常调用这些函数。</li>
|
|
||||||
<li><code>-o $exe</code>: 这个选项指定了输出文件的名称。<code>$exe</code>是一个变量,用于表示输出文件的路径和名称。在实际使用中,这个变量会被替换为实际的输出文件路径和名称,告诉编译器将编译生成的可执行文件保存到指定的位置。</li>
|
|
||||||
</ol>
|
|
||||||
<p>这个命令是一个用于编译C++程序的<code>g++</code>命令,它使用了一系列编译选项和参数来控制编译过程,包括预处理宏定义、优化级别、警告提示、C++标准版本、以及输出文件的名称。这些选项和参数的组合可以根据具体的需求进行调整,以满足不同场景下的编译需求。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/about-bilibili/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">乱七八糟:B站优质视频:计算机科学</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,206 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/about-time/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/about-time/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li class="active"><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/about-time/">乱七八糟:时间的标准与格式</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-05-13
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 时间,作为人类社会中不可或缺的重要元素,其标准化与格式化一直是人类社会发展过程中的重要课题之一。本文将探讨一系列时间标准与格式,从最古老的GMT(格林威治标准时间)到最新的RFC3339,以及各种时区表示方法和日期时间的格式化方式。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="ji-shi-ji-shu-yu-guo-ji-yuan-zi-shi">计时技术与国际原子时</h2>
|
|
||||||
<p>人类历史上出现的计时手段大体上能分为三类:</p>
|
|
||||||
<ul>
|
|
||||||
<li>通过某种匀速的运动来表示时间、比如沙漏、水钟、香钟(烧香)。这种方 式的缺陷很大,是一种很粗略的时间衡量方法</li>
|
|
||||||
<li>通过天文观测,通过日月或其他星辰的参考确定时间。现在我们已经知道,星系的运动也不是匀速的过程。</li>
|
|
||||||
<li>通过固定频率的震动,最早是伽利略通过教堂的吊灯发现了摆的等时性,也就是摆角较小时,吊灯摆动一次的时间是相同的。距今三四百年前的摆钟,基本上都是利用 这一原理实现的。</li>
|
|
||||||
</ul>
|
|
||||||
<p>现在,人类已知的最精确的计时技术是原子钟,它以原子共振频率标准来计算和保持 时间的准确。它的精度可以达到持续运行上亿年而误差不超过 1 秒。</p>
|
|
||||||
<p>基于这种技术,后来国际计量协会结合了全球 400 多个原子钟,规定 1 秒为铯-133 原子基态两个超精细能级间跃迁辐射震荡 9,192,631,770 周所持续的时间。这个定义就叫国际 原子时(International Atomic Time, TAI)。这样,我们钟表里指针应该转多快也有了一个 统一的标准。</p>
|
|
||||||
<p>国际原子时的秒长以格林威治时间 <code>1958 年 1 月 1 日 0 时</code>的秒长为基准。也就是规定, 在这一瞬间,国际原子时的秒长和世界时的秒长是一样的。</p>
|
|
||||||
<h2 id="gmt-ge-lin-wei-zhi-biao-zhun-shi-jian">GMT(格林威治标准时间)</h2>
|
|
||||||
<p>格林威治(又译格林尼治)它是一个位处英国伦敦的小镇。</p>
|
|
||||||
<p>17 世纪,英国航海事业发展迅速,当时海上航行亟需精确的精度指示,于是英国皇家在格林威治这个地方设立了一个天文台负责测量正确经度的工作。</p>
|
|
||||||
<p>后来 1884 年,在美国华盛顿召开的国际经度会以决定以经过格林尼治天文台(旧址) 的经线为本初子午线(0 度经线)。同时这次会以也将全球划分为了 24 个时区。0 度经线所 在的时区为 0 时区。</p>
|
|
||||||
<p>现在,有时候你要买一个机械表,如果它说支持 GMT,意思就是支持显示格林威治标准时间。</p>
|
|
||||||
<h2 id="utc-shi-jie-shi">UTC(世界时)</h2>
|
|
||||||
<p>UTC 主要用来衡量一天究竟有多长。一旦 一天的长度可以确定,那么将这个长度除以 24 就能确定一小时的长度。以此类推、分钟、 秒的长度我们就都能确定了。</p>
|
|
||||||
<p>随着科学技术的发展和对时间测量精确度的要求提高,人们逐渐意识到地球自转并不是一个完全恒定的过程,因此需要更准确的时间标准。1928 年,国际天文联合会提出了 UTC(Coordinated Universal Time,协调世界时)的概念.中文称为世界时,是一种基于地球自转的时间标准。它旨在提供一种统一的时间系统,使得全球各地的时间能够保持一致。</p>
|
|
||||||
<p>世界时是一种天文时间系统,它以地球的自转周期为基础,一天分为24小时,每小时60分钟,每分钟60秒。尽管UTC已经成为现代国际时间标准,但世界时仍然在一些科学和天文领域中使用,尤其是在历法、天文观测和计算机编程等领域。</p>
|
|
||||||
<h2 id="xiao-jie-utc-gmt">小结:UTC/GMT</h2>
|
|
||||||
<p>GMT 是最早的国际时间标准,后来是 UTC
|
|
||||||
因为 UTC 要逼近 UT,而 UT 又以 GMT 为标准。十分严格地说,UTC 和 GMT 不是 一个东西。但宽松地说,你可以把 UTC 等同于 GMT,而且有些网站和应用程序就是这么 干的。
|
|
||||||
因为 UTC 标准已经使用多年。所以现在如果再看到 GMT 这个词,它指的通常不是 国际时间,而是格林威治所在的时区,也就是 0 时区。同时,通常行政区有很多适应自己 所在地的时区缩写,遗憾的是,这种写法经常会撞车。
|
|
||||||
比如,CCT,它可以表示美国中部时间(Central Standard Time),澳大利亚中部时间 (Central Standard Time),中国标准时间(China Standard Time)和古巴标准时间(Cuba Standard Time)</p>
|
|
||||||
<p>所以、如果我写 CCT 2022-08-03 11:56 就很容易误解了。这个时候我们非常需要一种 没有歧义的日期时间写法。</p>
|
|
||||||
<h2 id="shi-qu-yu-utc-pian-yi-liang">时区与 UTC 偏移量</h2>
|
|
||||||
<p>现行的时区表示更多是使用 UTC+偏移量的方式来表示的。比如北京是在东 8 区,时 间比 UTC 要早 8 小时,那么在表示北京时区的方式就是 UTC+08:00。虽然地理界定上只有 东西十二区,但是什么地方采用什么方式表达时间实际取决于当地的行政命令。因此 UTC+12:00 并不是偏移量的上限。打开你电脑上的日期时间设置,你会发现有的的国家采用的是 UTC+14:00。还有的国家偏移量并不完全是小时的整数倍,比如 UTC+12:45。同时,也有很多应用会使用 GMT+0800 的方式表示,效果是一样的。</p>
|
|
||||||
<h2 id="ri-qi-shi-jian-de-biao-shi-ge-shi">日期时间的表示格式</h2>
|
|
||||||
<p>2022 年 9 月 3 日该怎么表示?是 2022/09/03 还是 2022-09-03 还是 Sep 03 2022 ?这又 是一个标准问题,当前的情况是,各个国家有符合本地习惯的日期时间格式标准,同时国 际上也有诸多日期时间格式标准,比如 ISO 8601 和 RFC3339 等。</p>
|
|
||||||
<p>各种格式都有软件采用,所以编程语言中的日期标准库,一般都会准备 dateformat 工 具,自己编码日期时间的格式。</p>
|
|
||||||
<h2 id="iso-8601">ISO 8601</h2>
|
|
||||||
<p>国际标准 ISO 8601,是国际标准化组织的日期和时间的表示方法和我们之前提过的 UTC 不同,UTC 是一种时间标准,而 ISO 8601 是一种标准的时间格式,大多数的编程语 言都支持。</p>
|
|
||||||
<p>使用 ISO 8601 格式可以明确表示下面的时间。</p>
|
|
||||||
<ul>
|
|
||||||
<li>公历日期</li>
|
|
||||||
<li>24 小时制的时间</li>
|
|
||||||
<li>UTC 时区偏移量</li>
|
|
||||||
<li>时间间隔</li>
|
|
||||||
</ul>
|
|
||||||
<p>以及上面几种元素的组合。</p>
|
|
||||||
<p>比如,下面就是一个符合 ISO 8601 的日期时间表示。</p>
|
|
||||||
<p><code>2022-09-03T14:13:00Z</code>,这个时间戳中间的 T 用来分隔 日期 和 时间,最后字母 Z 表示 0 时区,也就是 UTC 或 GMT 时间。</p>
|
|
||||||
<h2 id="unix-shi-jian-chuo-yu-run-miao">Unix 时间戳与闰秒</h2>
|
|
||||||
<p>Unix 时间戳是一种将时间跟踪为运行总秒数的方法,这个技术从 1970 年 1 月 1 日的 UTC 开始。因此,Unix 时间戳只表示从特定时间点到现在的秒数。而且,需要注意的是,无论你身处何地,这个总秒数的值在技术上都不会发生改变。所以这对计算机系统,客户端和服务端的通信和日期跟踪十分有用。</p>
|
|
||||||
<p>闰秒是为了调整世界时(UTC)与地球自转的不同步而引入的时间修正措施。地球自转速度并不是完全恒定的,它受到地球内部和外部因素的影响,例如地球的摆动和潮汐等。这些因素会导致地球自转周期的微小变化,使得世界时(UTC)和地球自转之间产生了微小的差距。</p>
|
|
||||||
<p>为了使UTC与地球自转保持同步,国际上约定在需要时通过添加或减少一秒来调整时间。这一秒被称为“闰秒”。通常情况下,闰秒会在 UTC 时间的最后一天(6月30日或12月31日)的23:59:59之后添加,成为23:59:60,这样当UTC时间跨越到下一秒时,就保持了与地球自转的同步。需要注意的是,由于闰秒的引入,这一分钟(含有闰秒的那一秒)会比平常的分钟长一秒。</p>
|
|
||||||
<p>闰秒由国际地球自转服务(IERS)负责决定何时引入,以及应该是添加一秒还是减少一秒。尽管闰秒对大多数人来说没有太大影响,但对于一些关键系统,如卫星导航、通信和金融交易等,可能会引起一些问题,因为它会导致系统的时间同步需要进行调整。</p>
|
|
||||||
<p>关于闰秒问题,什么时候出现闰秒是不确定的。那么在 Unix 时间戳里,是怎么处理闰秒的呢?答案是减慢时钟。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>[root@influxdb ~]# date -d '@867715199'
|
|
||||||
</span><span>1997年 07月 01日 星期二 07:59:59 CST
|
|
||||||
</span><span>[root@influxdb ~]# date -d '@867715200'
|
|
||||||
</span><span>1997年 07月 01日 星期二 08:00:00 CST
|
|
||||||
</span></code></pre>
|
|
||||||
<p>比如 1997 年 6 月 30 日 23:59:59 到 1997 年 7 月 1 日 00:00:00 应该发生一次闰秒。</p>
|
|
||||||
<p>那么 867715200 这个时间戳应该对应 1997 年 6 月 30 日的 23:59:60。但是 Linux 好像压 根不知道这件事。这是因为 Unix 时间戳标准里,把一天定死为 86400 秒了。所以类 Unix 的处理方案是,当闰秒发生时由 ntrp 服务把时钟慢下来,当时间戳为 867715199 的时候, 让它在这个值上多停留 1 秒然后再进入 867715200。</p>
|
|
||||||
<h2 id="zai-bian-cheng-yu-yan-zhong-huo-qu-utc-shi-jian-he-iso-ge-shi">在编程语言中获取 UTC 时间和 ISO 格式</h2>
|
|
||||||
<p>https://www.rfc-editor.org/rfc/rfc3339</p>
|
|
||||||
<h2 id="rfc3339-he-iso8601-zhi-jian-de-guan-xi">RFC3339 和 ISO8601 之间的关系</h2>
|
|
||||||
<p>https://ijmacd.github.io/rfc3339-iso8601/</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-9/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Docker学习笔记(九)</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/chrome-shortcut-key/">
|
|
||||||
<span class="button__text">乱七八糟:Chrome常用快捷键</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,501 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/about-working/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/about-working/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li class="active"><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/about-working/">乱七八糟:应届生工作指南</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-12-27
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/life/">#Life</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 什么是“五险一金”?工资到底由那些部分组成?劳动合同怎么签?不仅仅是应届生,很多工作了几年的职场人,也不十分清楚。因此,在这里笔者打算帮助大家彻底把这些事情搞明白。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="yi-guan-yu-xin-chou">一.关于薪酬</h2>
|
|
||||||
<p>薪酬是 货币+实物报酬 的总和,包括:</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>直接薪酬:指的是以现金形式,按照一定的周期,直接发放给你的货币,比如每个月的固定薪资,或者各种现金的补贴,奖金等等。</p>
|
|
||||||
</blockquote>
|
|
||||||
<p><strong>1.基本工资、绩效工资</strong></p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>基本工资:这个就比较好理解了,基本工资,也就是我们常说的底薪、固定薪酬,只要你向企业提供正常劳动,公司就会向你支付的工资。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>绩效工资:是与你个人绩效挂钩,根据你当月的绩效完成情况,给予你的浮动工资,比如我们常说的销售的提成,就是在浮动工资的部分。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>按照不同的薪酬结构,基本工资和绩效工资会有不同的比例,以约束员工要达到对应的工作指标,完成固定考核。但不论比例是什么样,每月工资都不得低于国家规定的该城市最低工资标准。</p>
|
|
||||||
<p><strong>2.奖金与津贴</strong></p>
|
|
||||||
<ul>
|
|
||||||
<li>奖金:目的是在于激励员工。是会根据企业的效益而定,是否发放,公司有很大的决定权。</li>
|
|
||||||
</ul>
|
|
||||||
<p>针对于常常有争议的年终奖:年终奖分为多种形式,比如有实物类的,也有现金类的。现金类分为固定的(即企业为了奖励你持续在岗到了年末,给予你的固定奖励,不会根据企业的业绩变化,比如年底双薪,三薪等等)。也有不固定的,即企业没有约定具体的数额,在年末,根据企业业绩的分红,不等额地发放,浮动范围可以非常大。</p>
|
|
||||||
<p>而在劳动法中,对于年终奖没有明确的规定,但如果企业表明了要发放,且在劳动合同中有体现,但最终没有发,是违法的。</p>
|
|
||||||
<ul>
|
|
||||||
<li>津贴:会有多种形式,包括交通补贴(日常、加班),餐饮补贴、租房补贴等等,也是非强制性的,每月以福利的形式,提供给员工。</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>3.加班费</strong></p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>休息日加班费:根据《劳动法》:休息日加班工资=月工资基数÷21.75天×200%×加班天数;法定节假日加班工资=月工资基数÷21.75天×300%×加班天数;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>延长工时加班费:每小时加班费≥小时工资基数的150%</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>注:计算加班工资时,日工资按平均每月计薪天数21.75天折算。</strong></p>
|
|
||||||
<p>加班费应以实际发放的工资作为计算基数,包括“基本工资”“岗位津贴”等所有工资项目、不能以“基本工资”“岗位工资”“职务工资”单独一项作为计算基数。</p>
|
|
||||||
<p>当然,在我们的工作中,免不了遇到企业通过加班调休,或提供晚餐、报销车费等方式诱导员工加班,甚至会碰到一些不遵守规则的企业,强迫员工加班且不提供相应的补助。</p>
|
|
||||||
<p>这种情况下,员工一定衡量自己的付出和收获是否成正比,合理利用法律来保护自己的权益。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>间接薪酬:不直接打到你的现金账户的,但是在一定的条件下可以使用的,权益、保险、服务、或者实物,但是同样能折算出现金价值的。比如住房公积金(要在买房租房的时候可以用)</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>下面,我们来具体解释,每一项是什么意思:</p>
|
|
||||||
<p><strong>1.股票期权</strong></p>
|
|
||||||
<p>一般来说,应届生遇到offer中含有股票期权的情况较少,但在部分成长型或者初创型公司,或者提倡全员持股的公司,可能会出现类似的薪酬结构。</p>
|
|
||||||
<p>那么我们着重说一下在创业公司可能会为初始员工提供的期权:期权不是股权,而是一份按照约定价格在约定时间购买股份的合同。但如果说给期权,一定要落在纸上,口头承诺没有任何意义。</p>
|
|
||||||
<p>期权的约定,一般会约定起算日期(什么时候发放期权,是入职就发,还是一段时间之后),兑现时间(比如期权是分三年兑现,一共给N股,每年兑现N/3),有无门槛(比如是否在公司工作要满一年,才能解锁兑现的权利),行权价格(到行权期后可按约定价格购得公司股权)。</p>
|
|
||||||
<p>如果你最终拿到了N股,但最重要的是,公司需要上市,你才能在禁售期之后套现。所以,期权是你对于公司未来看好,并能持续陪伴公司走到上市的奖励。</p>
|
|
||||||
<p>在某些创业公司,容易以期权作为降薪,压低薪酬的原因,这时候一定要谨慎的思考,是否对于公司的业务模式、团队看好,因为期权是一个长期的事情,长期获益也就意味着你要付出长期的承诺,要格外慎重地做选择。</p>
|
|
||||||
<p><strong>2.五险一金</strong></p>
|
|
||||||
<p>五险一金是国家规定,企业必须为员工缴纳的社会保障。</p>
|
|
||||||
<p>五险比例,根据地方不同,有细微差别,而一金,比例在5%-12%之间浮动,单位缴纳的比例,不得低于你个人承担的比例。一般来说,比例是相等的,比如你自己缴纳12%,单位也为你缴纳12%。如果你的税前薪酬是10000元,那么你当月公积金账户里会有2400元,其中个人单位各占一半。</p>
|
|
||||||
<ul>
|
|
||||||
<li>养老保险</li>
|
|
||||||
</ul>
|
|
||||||
<p>参加基本养老保险的个人,达到法定退休年龄时(男职工60岁;从事管理和科研工作的女职工55岁;从事生产和工勤辅助工作的女职工50岁,自由职业者、个体工商户女年满55周岁),累计缴费满15年的,按月领取基本养老金。</p>
|
|
||||||
<p>职工养老保险为单位和职工共同缴纳。</p>
|
|
||||||
<p>缴费比例:</p>
|
|
||||||
<p>单位:一般不超过20%(以单位工资总额为基数)</p>
|
|
||||||
<p>个人:8%(以本人缴费工资为基数)</p>
|
|
||||||
<ul>
|
|
||||||
<li>医疗保险</li>
|
|
||||||
</ul>
|
|
||||||
<p>参加职工基本医疗保险的个人,达到法定退休年龄时累计缴费达到国家规定年限的(男性缴满25年、女性缴满20年),退休后不再缴纳基本医疗保险费,按照国家规定享受基本医疗保险待遇。</p>
|
|
||||||
<p>职工医疗保险为单位和职工共同缴纳(单位缴纳的基本医疗保险费一部分用于建立统筹基金,一部分划入个人账户)。</p>
|
|
||||||
<p>缴费比例:单位6%,个人2%(各地略有不同)</p>
|
|
||||||
<ul>
|
|
||||||
<li>失业保险</li>
|
|
||||||
</ul>
|
|
||||||
<p>失业人员符合下列条件的,从失业保险基金中领取失业保险金:</p>
|
|
||||||
<p>失业前用人单位和本人已经缴纳失业保险费满一年的;</p>
|
|
||||||
<p>非因本人意愿中断就业的;</p>
|
|
||||||
<p>已经进行失业登记,并有求职要求的。</p>
|
|
||||||
<p>失业保险为单位和职工共同缴纳。缴费比例:个人费率不超过0.5%。</p>
|
|
||||||
<ul>
|
|
||||||
<li>工伤保险</li>
|
|
||||||
</ul>
|
|
||||||
<p>职工有下列情形之一的,应当认定为工伤:</p>
|
|
||||||
<p>在工作时间和工作场所内,因工作原因受到事故伤害的;</p>
|
|
||||||
<p>工作时间前后在工作场所内,从事与工作有关的预备性或者收尾性工作受到事故伤害的;</p>
|
|
||||||
<p>在工作时间和工作场所内,因履行工作职责受到暴力等意外伤害的;</p>
|
|
||||||
<p>患职业病的;</p>
|
|
||||||
<p>因工外出期间,由于工作原因受到伤害或者发生事故下落不明的;</p>
|
|
||||||
<p>在上下班途中,受到非本人主要责任的交通事故或者城市轨道交通、客运轮渡、火车事故伤害的;</p>
|
|
||||||
<p>法律、行政法规固定应当认为工伤的其他情形。</p>
|
|
||||||
<p>工伤保险为单位缴费。</p>
|
|
||||||
<p>缴费比例:0.3%-2.5%(根据各行业工伤风险类别和工伤事故及职业病的发生频率浮动)</p>
|
|
||||||
<ul>
|
|
||||||
<li>生育保险</li>
|
|
||||||
</ul>
|
|
||||||
<p>用人单位已经缴纳生育保险的,其职工享受生育保险待遇;职工未就业配偶按照国家规定享受生育医疗费用待遇。</p>
|
|
||||||
<p>生育保险为单位缴纳。缴费比例:0.8%</p>
|
|
||||||
<ul>
|
|
||||||
<li>住房公积金</li>
|
|
||||||
</ul>
|
|
||||||
<p>职工住房公积金的月缴存额=职工本人上一年度平均工资×职工住房公积金缴存比例。</p>
|
|
||||||
<p>单位为职工缴存的住房公积金的月缴存额=职工上一年度月平均工资×单位住房公积金缴存比例。</p>
|
|
||||||
<p>缴存比例:单位和职工缴存比例不应低于5%,原则上不高于12%。</p>
|
|
||||||
<p>住房公积金可以提取,但要符合下列条件之一:</p>
|
|
||||||
<p>购买、建造、翻修、大修自住住房的;</p>
|
|
||||||
<p>离休、退休的;</p>
|
|
||||||
<p>完全丧失劳动能力的,并与单位终止劳动关系的;</p>
|
|
||||||
<p>出境定居的;</p>
|
|
||||||
<p>偿还购房贷款本息的;</p>
|
|
||||||
<p>连续足额缴存住房公积金3个月,本人及配偶在缴存城市无自有住房且租房的,可提取双方住房公积金支付房租。</p>
|
|
||||||
<p>当然,某些福利较好的公司,除了国家规定的五险,还会为员工额外购买商业险。比如商业医疗险,来为员工覆盖社保医疗险种无法报销的部分费用。</p>
|
|
||||||
<p>五险一金从什么时候开始缴纳:不论是否约定了试用期,都需要在入职的一个月之内(即为入职的当月、或者次月开始为员工缴纳社会保险)。</p>
|
|
||||||
<p><strong>3.员工福利</strong></p>
|
|
||||||
<p>这一类,是属于企业为员工额外提供的,提升员工满意度的福利,不是法律强制性的,但是会为员工的生活带来便利,比如健身房、体检等等。此类一般不会在offer或者合约上注明,但是在发放offer的时候,HR会向你提到,你也可以纳入整体offer的考虑当中。毕竟,喜欢健身的同学,还是能节省一些支出。一些公司,甚至包含了三餐,那么也是作为福利,帮员工节省了很大的餐饮支出,这个现金价值,就是非常实在的。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>问题一:税前和税后是什么意思?为什么我税前是8k,到手之后,只有5k了呢?</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>首先,税前的工资,和最终到手的工资,是肯定会有差距的。核心原因是两方面:</p>
|
|
||||||
<p>一方面,要扣除对应的五险一金及其他补充险,一方面,是要扣除个税。</p>
|
|
||||||
<p>2019年后,个税起征点调整为5000,同时,也增加了6项个税免除的项目。可以根据个人所得税的规定,查询自己的税后收入。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>问题二:关于年终奖,公司签约的时候,承诺薪酬是13-16薪,但在年末的时候,到底是如何发放?</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>通常的情况,年末能够拿到几薪,会根据你的绩效考核情况,和公司整体的经营状况来看的。如果在offer中有注明,那么至少是能够在年末拿到一薪的奖励,但不是所有人都能拿到最好的16薪,一般公司会有完善的考评机制,对于员工进行分级,比如表现得特别优秀的员工,可以拿到最高额的奖励。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>PS:
|
|
||||||
</span><span>
|
|
||||||
</span><span>13薪是指工作期满一年后,可以领取第十三个月的工资。一般情况下,指年底双薪。
|
|
||||||
</span><span>
|
|
||||||
</span><span>16薪分别是12个月的基本工资+年底双薪(13薪),再加上次年4月份的绩效部分(参考下并不准确的361原则)的大概标准,除了10%被打成3.25的员工,60%的员工可以拿到3个月绩效工资,30%的员工可以拿到5个月以上的绩效工资(打分3.5以上)。
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="er-guan-yu-lao-dong-he-tong">二.关于劳动合同</h2>
|
|
||||||
<p><strong>一、劳动合同</strong></p>
|
|
||||||
<p>签署了劳动合同,才表明你真正与公司确立了劳动关系。用人单位应当自入职之日起1个月内与劳动者签订书面劳动合同。</p>
|
|
||||||
<ul>
|
|
||||||
<li>劳动合同的期限:固定期限和无固定期限。如果没有明确标注期限,则为无固定期限合同。</li>
|
|
||||||
</ul>
|
|
||||||
<p>试用期:也就是你初入公司,还没转正成为正式员工的时期,也是你和企业双方,可以相互考察,是否匹配适合的时期。</p>
|
|
||||||
<p>劳动法规定: 劳动合同期限满三个月不满一年的,试用期不得超过一个月。劳动合同期限满一年不满三年的,试用期不得超过二个月;三年以上固定期限和无固定期限的劳动合同,试用期不得超过六个月。</p>
|
|
||||||
<p>同一用人单位与同一劳动者只能约定一次试用期。以完成一定工作任务为期限的劳动合同或者劳动合同期限不满三个月的,不得约定试用期。</p>
|
|
||||||
<p>在试用期,用人单位也有义务为员工缴纳五险一金。</p>
|
|
||||||
<ul>
|
|
||||||
<li>劳动合同解除:</li>
|
|
||||||
</ul>
|
|
||||||
<p>如果你想主动解除劳动合同(想辞职):如果在试用期之内,只需提前3日通知用人单位,如果已经转正,需要至少30天提前通知用人单位。如果你被胁迫劳动,或者用人单位未按照劳动合同约定向你支付报酬或者提供劳动条件,你可以立即主张接触劳动合同。</p>
|
|
||||||
<p>那公司在什么情况下,可以辞退你呢?</p>
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
<p>在试用期内,不满足试用期的条件</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>严重违纪,或者给企业造成损害,承担刑事责任等。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>企业经营不善,破产、或者发生严重经营困难,确需裁员。</p>
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
<p>如果你不认同公司辞退你的理由,可以向当地的劳动局申请仲裁。这时,举证的责任在于公司。如果公司无法罗列对应的证据,证明其理由,那么公司需要对于辞退行为向你进行补偿。为了避免法律风险,一定要反复的看劳动合同上的条款,包括岗位,劳动合同期限,试用期,薪酬,假期,工作时间,是否与offer承诺的一致,以及约定的劳动解除条款,包括赔偿条款等等。</p>
|
|
||||||
<p><strong>二、三方协议</strong></p>
|
|
||||||
<p>首先,要弄明白三方是三方。这里的三方,代表的是学校,你,和用人单位。三方协议,只会存在于应届毕业生找工作时签订。在未来,你再做职业转换的时候,已经是社会人了,就不会再签订这类的协议了。协议是三方各执一份的。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>官方定义:三方协议是《普通高等学校毕业生、毕业研究生就业协议书》的简称,它是明确毕业生、用人单位和学校三方在毕业生就业工作中的权利和义务的书面表现形式,能解决应届毕业生户籍、档案、保险、公积金等一系列相关问题。</p>
|
|
||||||
</blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<p>注意:协议在毕业生到单位报到、用人单位正式接收后自行终止,三方不等于劳动合同,它只是三方的意向,对你的劳动关系没有约束力,所以,在入职的时候,一定要签订劳动合同,才能保证自己的权益!!</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>一般,三方合同会规定违约金,学生应当注意这个部分,它可能会为你带来风险,如果你在签订三方后,没有按时去公司报道,是需要支付这部分违约金的。一般违约金等同于月薪,但考虑到学生的情况,也不应超过5000元。</p>
|
|
||||||
<p>除此之外,与劳动合同需要查看的部分一致,你**需要仔细检查三方协议中约定的薪金、补贴、权益等事项进行确认。</p>
|
|
||||||
<p><strong>常见的坑:</strong></p>
|
|
||||||
<ol>
|
|
||||||
<li>以三方协议代替劳动合同</li>
|
|
||||||
</ol>
|
|
||||||
<p>三方协议不是劳动合同。它是学校管理就业的手段,主要涉及到应届生身份和落户、调档等问题,效力一般持续到正式签订劳动合同为止。</p>
|
|
||||||
<ol start="2">
|
|
||||||
<li>以Offer代替劳动合同</li>
|
|
||||||
</ol>
|
|
||||||
<p>Offer也不是劳动合同。用人单位单方面发出的offer可以视为要约,劳动者确认接受后,形成的通常是一份普通合同,内容比正式劳动合同简单很多,因此不能代替劳动合同。</p>
|
|
||||||
<ol start="3">
|
|
||||||
<li>不订立书面劳动合同</li>
|
|
||||||
</ol>
|
|
||||||
<p>书面劳动合同是认定劳动关系最有力的证据,如果不订立书面劳动合同,劳动者的权利很难得到保护。</p>
|
|
||||||
<p>《劳动合同法》第十条:“建立劳动关系,应当订立书面劳动合同。已建立劳动关系,未同时订立书面劳动合同的,应当自用工之日起一个月内订立书面劳动合同。用人单位与劳动者在用工前订立劳动合同的,劳动关系自用工之日起建立。”</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>《劳动合同法》第八十二条:“用人单位自用工之日起超过一个月不满一年未与劳动者订立书面劳动合同的,应当向劳动者每月支付二倍的工资。”</p>
|
|
||||||
</blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<p>如果用人单位坚持不订立书面劳动合同,可以保留好工卡/工牌、工服、考勤记录、工作沟通记录等证据,向劳动监察部门投诉。但如果三方协议和offer等书面文件具备基本劳动合同条款,也可能被法院「视为」书面劳动合同,你就没法薅双倍工资羊毛了。</p>
|
|
||||||
</blockquote>
|
|
||||||
<ol start="4">
|
|
||||||
<li>用人单位不具备合法资质</li>
|
|
||||||
</ol>
|
|
||||||
<p>用人单位在法律上根本不存在,比如未办理营业执照、营业执照被吊销或者营业期限届满仍继续经营#喂,你是幽灵吗?日后发生争议时,基本只能去寻找单位出资人。</p>
|
|
||||||
<ol start="5">
|
|
||||||
<li>用人单位与劳动合同上的名称、公章不一致</li>
|
|
||||||
</ol>
|
|
||||||
<p>日后发生争议时,难以确定</p>
|
|
||||||
<ol start="6">
|
|
||||||
<li>用人单位注册地在外地</li>
|
|
||||||
</ol>
|
|
||||||
<p>日后发生争议时,如果不能证明劳动合同履行地在本地,有可能需要到外地申请劳动仲裁,大大增加维权成本。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>可以事先在“国家企业信用信息公示系统”、“信用中国”、“天眼查”或“企查查”等网站上查询用人单位的全称、类型、经营范围、规模、存续状态、业绩、口碑等,检查劳动合同上的名称、公章是否都与查询结果一致。</p>
|
|
||||||
</blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<p>如果发现问题,劳动者有权要求与真实、准确、合法的用人单位订立劳动合同,否则建议不要提供劳动。</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>用人单位在外地的,应综合考虑日后发生争议的概率,评估自己是否愿意承担相应的风险。</p>
|
|
||||||
<ol start="7">
|
|
||||||
<li>订立一份劳动合同,但为多个单位提供劳动</li>
|
|
||||||
</ol>
|
|
||||||
<p>有些单位相互关联,明明跟A单位签了劳动合同,却被派去帮B单位干活。日后发生争议时,要考虑到A、B单位互相甩锅(A说你没帮它干活,B说你没跟它签劳动合同)、难以确定责任单位的可能性。</p>
|
|
||||||
<ol start="8">
|
|
||||||
<li>用人单位要求与第三方订立劳务派遣合同</li>
|
|
||||||
</ol>
|
|
||||||
<p>可能在实际用工中与本单位员工待遇不同;在遇到一些具体问题时,如工伤认定等,操作复杂程度有所上升。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>如果必须为订立劳动合同单位之外的其他单位提供劳动,又并非劳务派遣,则应该得到订立劳动合同单位的书面认可或指示,并保留好在不同用人单位劳动的证据。</p>
|
|
||||||
</blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<p>在不得不签订劳务派遣合同的情况下,尤其需要确认派遣单位是否具备合法资质,如果是小公司则需要定期关注他们是否按时缴纳五险一金、操作流程是否规范等。</p>
|
|
||||||
</blockquote>
|
|
||||||
<ol start="9">
|
|
||||||
<li>用人单位要求订立阴阳合同</li>
|
|
||||||
</ol>
|
|
||||||
<p>为避税等目的订立阴阳合同,比如一份对外的薪资较低,一份对内的(或者口头的)薪资较高。日后发生争议时,证据上可能面临不利。</p>
|
|
||||||
<ol start="10">
|
|
||||||
<li>用人单位要求劳动者在空白的合同上签字</li>
|
|
||||||
</ol>
|
|
||||||
<p>「超级大雷」用人单位可能会在合同空白处填上对劳动者不利而对单位本身有利的内容,如较少的工资、更长的工作时间、与协商不一致的福利待遇等。但日后发生争议时,#哎,有理说不清……</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>阴阳合同尽量避免,空白合同绝对避免!</p>
|
|
||||||
</blockquote>
|
|
||||||
<ol start="11">
|
|
||||||
<li>用人单位扣押劳动者身份证</li>
|
|
||||||
</ol>
|
|
||||||
<p>影响辞职自由,日后无法正常申请劳动仲裁和诉讼等。有些公司甚至会利用劳动者的身份信息进行其他非法活动。</p>
|
|
||||||
<ol start="12">
|
|
||||||
<li>用人单位要求劳动者提供担保或者以其他名义向劳动者收取财物</li>
|
|
||||||
</ol>
|
|
||||||
<p>这种情况下,大概率前方有巨坑,请直接掉头走人</p>
|
|
||||||
<ol start="13">
|
|
||||||
<li>用人单位不提供劳动者应持有的一份劳动合同</li>
|
|
||||||
</ol>
|
|
||||||
<p>劳动合同永远是最关键的证据。</p>
|
|
||||||
<ol start="14">
|
|
||||||
<li>劳动合同上不载明必备条款</li>
|
|
||||||
</ol>
|
|
||||||
<p>日后发生争议时,劳动者手里会缺少最关键的依据,增加举证成本和困难,给对方留下抗辩机会。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>《劳动合同法》第十七条:“劳动合同应当具备以下条款:(一)用人单位的名称、住所和法定代表人或者主要负责人;(二)劳动者的姓名、住址和居民身份证或者其他有效身份证件号码;(三)劳动合同期限;(四)工作内容和工作地点;(五)工作时间和休息休假;(六)劳动报酬;(七)社会保险;(八)劳动保护、劳动条件和职业危害防护;(九)法律、法规规定应当纳入劳动合同的其他事项。劳动合同除前款规定的必备条款外,用人单位与劳动者可以约定试用期、培训、保守秘密、补充保险和福利待遇等其他事项。”</p>
|
|
||||||
</blockquote>
|
|
||||||
<h2 id="san-guan-yu-shi-yong-qi">三.关于试用期</h2>
|
|
||||||
<p><strong>1.试用期时间</strong></p>
|
|
||||||
<p>根据《劳动法》:劳动合同期限三个月以上不满一年的,试用期不得超过1个月;劳动合同期限一年以上不满三年的,试用期不得超过2个月;三年以上固定期限和无固定期限的劳动合同,试用期不得超过6个月;以完成一定工作任务为期限的劳动合同或者劳动合同期限不满三个月的,不得约定试用期。</p>
|
|
||||||
<p>同一用人单位与同一劳动者只能约定一次试用期。</p>
|
|
||||||
<p><strong>2.试用期工资</strong></p>
|
|
||||||
<p>劳动者在试用期的工资不得低于本单位相同岗位最低档工资或者劳动合同约定工资的80%,并不得低于用人单位所在地的最低工资标准。</p>
|
|
||||||
<p>用人单位在试用期解除劳动合同的,应当向劳动者说明理由。</p>
|
|
||||||
<p>在此特别强调!</p>
|
|
||||||
<p><strong>试用期≠实习期,两者最大的区别在于你是否毕业!</strong></p>
|
|
||||||
<p>试用期的当事人双方存在着劳动关系,用人单位对劳动者承担无过错责任,与劳动者共同履行缴纳社会保险费用的义务,向劳动者支付的工资报酬不得低于当地最低工资标准。</p>
|
|
||||||
<p>而学生实习所在的单位对于实习学生,不承担无过错责任,不须执行最低工资标准。</p>
|
|
||||||
<h2 id="si-guan-yu-na-shui">四.关于纳税</h2>
|
|
||||||
<p><strong>1.应纳税所得额</strong></p>
|
|
||||||
<p>应纳税所得额=收入-起征点(5000元)
|
|
||||||
个人因任职或者受雇而取得的工资、薪金、奖金、年终加薪、劳动分红、津贴、补贴以及与任职或者受雇有关的其他所得都应该叫个人所得税。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>不包括</p>
|
|
||||||
</blockquote>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>五险一金
|
|
||||||
</span><span>省级人民政府等单位颁发的科学、教育、环境保护等方面的奖金
|
|
||||||
</span><span>国债和国家发行的金融债券利息
|
|
||||||
</span><span>按照国家统一规定发给的补贴、津贴
|
|
||||||
</span><span>福利费、抚恤金、救济金
|
|
||||||
</span><span>保险赔款
|
|
||||||
</span><span>其他
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>2.应纳税额</strong></p>
|
|
||||||
<p>应纳税额=应纳税所得额*税率-速算扣除数</p>
|
|
||||||
<h2 id="wu-guan-yu-xiu-jia">五.关于休假</h2>
|
|
||||||
<p>该部分数据仅供参考,不同地区略有不同,详情请参考各地方政府规定。</p>
|
|
||||||
<p><strong>1.年假</strong></p>
|
|
||||||
<p>根据《职工带薪年休假条例》:</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>职工累计工作已满1年不满10年的,年休假5天;已满10年不满20年的,年休假10天;已满20年的,年休假15天;</p>
|
|
||||||
</blockquote>
|
|
||||||
<p><strong>2.探亲假</strong></p>
|
|
||||||
<p>根据《国务院关于职工探亲待遇的规定》:</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>探亲配偶,每年给予一次探亲假一次,30天;未婚员工探望父母,每年给假一次,20天,也可以根据实际情况,2年给假一次,45天;已婚员工探望父母,每4年给假一次,20天。</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>各省又有细则:新疆规定,婚后探亲假三年一趟,比国家规定少一年。</p>
|
|
||||||
<p><strong>3.婚假</strong></p>
|
|
||||||
<p>根据《人口与计划生育法》:</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>按法定结婚年龄(女20周岁,男22周岁)结婚的,可享受婚假;</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>正常情况下,婚假1-3天,结婚时男女双方不在一地工作的,可视路程远近,另给予路程假。</p>
|
|
||||||
<p><strong>4.产假</strong></p>
|
|
||||||
<p>根据《女职工劳动保护特别规定》:</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>女职工生育享受98天产假,其中产前可以休假15天;难产的,增加产假15天;生育多胞胎的,每多生育1个婴儿,增加产假15天。 职工怀孕未满4个月流产的,享受15天产假;怀孕满4个月流产的,享受42天产假。</p>
|
|
||||||
</blockquote>
|
|
||||||
<p><strong>5.病假</strong></p>
|
|
||||||
<p>根据《劳动法》:</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>职工患病或非因工负伤治疗期间,在规定的医疗期间内由企业按有关规定支付其病假工资或疾病救济费,病假工资或疾病救济费可以低于当地最低工资标准支付,但不能低于最低工资标准的80%。</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>医疗期满后不能从事原工作的,由劳动鉴定委员会参照工伤与职业病致残程度鉴定标准进行劳动能力鉴定,根据鉴定等级进行相应的补贴待遇。</p>
|
|
||||||
<p><strong>6.工伤假</strong></p>
|
|
||||||
<p>根据《工伤保险条例》:</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>停工留薪期一般不超过12个月。伤情严重或者情况特殊,经确认可以适当延长,但延长不得超过12个月。</p>
|
|
||||||
</blockquote>
|
|
||||||
<p><strong>7.丧假</strong></p>
|
|
||||||
<p>根据《关于国营企业职工请婚丧假和路程假问题的通知》:</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>职工的直系亲属死亡时,由本单位行政领导批准,酌情给予一至三天的丧假;职工在外地的直系亲属死亡时,可根据路程远近,另给予路程假。</p>
|
|
||||||
</blockquote>
|
|
||||||
<h2 id="liu-guan-yu-chi-zhi">六.关于离职</h2>
|
|
||||||
<p>彻底搞懂离职补偿的N、N+1、2N</p>
|
|
||||||
<ul>
|
|
||||||
<li>经济补偿金(N)协商一致</li>
|
|
||||||
</ul>
|
|
||||||
<p>公司想要辞退辞退你,并要求你立即离职时,你可以与公司沟通,延迟1个月再离职。这样你就能正常领取工资,并有时间寻找其他工作机会。此外,公司需要支付你N的经济补偿金。</p>
|
|
||||||
<ul>
|
|
||||||
<li>赔偿金(2N)违法辞退</li>
|
|
||||||
</ul>
|
|
||||||
<p>你在工作上没有重大的过错,也没有违反公司的规章制度,也没有给公司造成重大损失的,却被公司突然辞退,并且你不同意,这属于非法辞退行为,你可以主张2N的赔偿金。</p>
|
|
||||||
<ul>
|
|
||||||
<li>代通知金(+1)未提前通知</li>
|
|
||||||
</ul>
|
|
||||||
<p>公司要辞退你,想让你立马离职,你也同意了,但是没有提前30天通知你,这属于未提前通知,公司需要支付代通知金。</p>
|
|
||||||
<ul>
|
|
||||||
<li>什么情况下是N</li>
|
|
||||||
</ul>
|
|
||||||
<p>①双方协商致解除,用人单位提出协商,而你同意解除;
|
|
||||||
② 员工医疗期结束,不能从事原工作,也不能从事公司另行安排的工作;
|
|
||||||
③公司因签订合同时的客观情况发生重大变化而解除劳动合同;
|
|
||||||
④公司在劳动合同到期时终止劳动合同。</p>
|
|
||||||
<ul>
|
|
||||||
<li>什么情况下是2N</li>
|
|
||||||
</ul>
|
|
||||||
<p>① 从事接触职业病危害作业的劳动者未进行离岗前职业健康检查,或者疑似职业病病人在诊断或者医学观察期间的;
|
|
||||||
②在本单位患职业病或者因公负伤并确认丧失或者部分的;
|
|
||||||
③患病或者非因公负伤,在规定的医疗期内的;
|
|
||||||
@女职工在孕期、产期、哺乳期的;
|
|
||||||
③在本单位连续工作满15年的,且距法定退休年龄不足5年的。</p>
|
|
||||||
<ul>
|
|
||||||
<li>什么情况下是 N+1</li>
|
|
||||||
</ul>
|
|
||||||
<p>+1就是俗称的待通知金,指公司有提前通知员工的义务,但是公司没做到提前通知,就需要向员工支付1个月的代替通知的金额。
|
|
||||||
公司需要提前30天通知终止劳动合同,如果不能提前30天通知,则需要支付代通知金。</p>
|
|
||||||
<ul>
|
|
||||||
<li>N是什么?如何计算?</li>
|
|
||||||
</ul>
|
|
||||||
<p>N指的是在解除劳动合同或者终止劳动合同的时候,公司向员工支付的一种补偿。N,代表核算经济补偿,所依据的劳动者工作年限。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>月平均工资包括:基本工资、加班工资、加薪、奖金、劳保、节假日中的各种福利、住房公积金、养老保险金、医保金、伙食补助、误支补助、外勤补助、出差补助、工种补助、营养补助、交通费、通讯费等。</p>
|
|
||||||
</blockquote>
|
|
||||||
<h2 id="hou-ji">后记</h2>
|
|
||||||
<p>祝大家都能收获自己满意的offer!</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/git/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">乱七八糟:Git使用简明手册</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/chatogpt/">
|
|
||||||
<span class="button__text">乱七八糟:如何高效地向 ChatGPT 提问</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,119 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/about/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/about/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li class="active"><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/about/">About Me</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date"></span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<h2 id="welcome-to-dich-blog">Welcome to dich' Blog!</h2>
|
|
||||||
<p>用电子罗盘,转赛博核桃,勘电磁风水,寻网络龙脉</p>
|
|
||||||
<p>有事请联系 admin@dich.ink</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,183 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/accurate-pronunciation/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/accurate-pronunciation/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/accurate-pronunciation/">乱七八糟:常见发音错误术语集合</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-25
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/life/">#Life</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 中文和英语发音习惯不同,容易引起误解。本文旨在帮助您准确发音常见的科技术语,欢迎随时补充。</p>
|
|
||||||
<span id="continue-reading"></span>
|
|
||||||
<p><strong>常见发音错误指南:公司/产品名</strong></p>
|
|
||||||
<p>Youtube: 正确念法是 "You-tube" [tju:b],而不是 "优吐毙",应该是 "优tiu啵"。</p>
|
|
||||||
<p>Skype: 应该念为 [ˈskaɪp],而不是 "死盖屁",应该是 "死盖破"。</p>
|
|
||||||
<p>Adobe: 正确的发音是 [əˈdəʊbi],不是 "阿斗伯",而是 "阿兜笔"。</p>
|
|
||||||
<p>C#: 应该念为 "C Sharp",即"C煞破"。</p>
|
|
||||||
<p>GNU: 正确的发音是 [(g)nuː], 即"哥怒"。</p>
|
|
||||||
<p>GUI: 应该念为 [ˈɡui],即"故意"。</p>
|
|
||||||
<p>JAVA: 正确的发音是 [ˈdʒɑːvə],而不是 "夹蛙",应该是 "扎蛙"。</p>
|
|
||||||
<p>AJAX: 应该念为 [ˈeɪdʒæks],而不是 "阿贾克斯",应该是 "诶(ei) 贾克斯"。</p>
|
|
||||||
<p>Ubuntu: 正确的发音是 [uˈbuntuː],而不是 "友邦兔",应该是 "巫不恩兔"。</p>
|
|
||||||
<p>Debian: 应该念为 [ˈdɛbiən],即"得(dei)变"。</p>
|
|
||||||
<p>Linux: 正确的发音有两种,[ˈlɪnəks] 或 [ˈlɪnʊks],"丽娜克斯" 或 "李扭克斯"都可以。</p>
|
|
||||||
<p>LaTeX: 正确的发音是 [ˈleɪtɛk] 或 [ˈleɪtɛx] 或 [ˈlɑːtɛx] 或 [ˈlɑːtɛk],即"雷泰克" 或 "拉泰克"。</p>
|
|
||||||
<p>GNOME: 念法可以是 [ɡˈnoʊm] 或 [noʊm],即"格弄姆" 或 "弄姆"。</p>
|
|
||||||
<p>App: 应该念为 [ˈæp],即 "阿破"。</p>
|
|
||||||
<p>null: 正确的发音是 [nʌl],即"闹"。</p>
|
|
||||||
<p>jpg: 应该念为 [ˈdʒeɪpɛɡ],而不是 "勾屁记",应该是 "zhei派个"。</p>
|
|
||||||
<p>WiFi: 正确的发音是 [ˈwaɪfaɪ],即"歪fai"。</p>
|
|
||||||
<p>mobile: 念法可以是 [moˈbil] 或 [ˈmoˌbil] 或 [ˈməubail],即"膜拜哦" 或 "牟bou"。</p>
|
|
||||||
<p>integer: 正确的发音是 [ˈɪntɪdʒə],而不是 "阴太阁儿",应该是 "音剃摺儿"。</p>
|
|
||||||
<p>cache: 应该念为 [kæʃ],而不是 "卡尺",即"喀什"。</p>
|
|
||||||
<p>@: 应该念为 "at"。</p>
|
|
||||||
<p>Tumblr: 应该念为 "Tumbler",而不是 "贪不勒"。</p>
|
|
||||||
<p>nginx: 正确的发音是 "Engine X",应该是 "恩静 爱克斯"。</p>
|
|
||||||
<p>Apache: 应该念为 [əˈpætʃiː],即"阿趴气"。</p>
|
|
||||||
<p>Lucene: 正确的发音是 [ˈluːsin],即"鲁信"。</p>
|
|
||||||
<p>MySQL: 应该念为 [maɪ ˌɛskjuːˈɛl] 或 [maɪ ˈsiːkwəl],可以是 "买S奎儿" 或 "买 吸扣"。</p>
|
|
||||||
<p>Exposé: 念法可以是 [ɛksˈpəʊzeɪ],重音在Z上。</p>
|
|
||||||
<p>RFID: 官方念法是四个字母分开读 "R F I D"。</p>
|
|
||||||
<p>JSON: 应该念为 "jason",即"zhei森"。</p>
|
|
||||||
<p>Processing: 重音在 "Pro" 上。</p>
|
|
||||||
<p>avatar: 正确的发音是 [ˌævə'tɑr],即"艾瓦塌儿"。</p>
|
|
||||||
<h2 id="hou-ji">后记</h2>
|
|
||||||
<p>虽然许多的词汇常常被错误发音,但在中国遵守拼音原则是入乡随俗的一种表现,且往往并没有所谓的官方读法,不必太过于纠结100%纯正的读法。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/calling-cards/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">乱七八糟:流量卡购买与套路</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/windows-some-setting/">
|
|
||||||
<span class="button__text">乱七八糟:Windows单级菜单/开机启动/关闭更新</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,633 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/archive/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/archive/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li class="active"><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
<h1 class="post-title">Archive</h1>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<ul><li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/about-g/">
|
|
||||||
<span class="post-date">2024-06-02</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:PTA编译命令解析</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/about-bilibili/">
|
|
||||||
<span class="post-date">2024-05-31</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:B站优质视频:计算机科学</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/windows-optimization/">
|
|
||||||
<span class="post-date">2024-05-26</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:Windows优化流程</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/chrome-shortcut-key/">
|
|
||||||
<span class="post-date">2024-05-23</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:Chrome常用快捷键</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/about-time/">
|
|
||||||
<span class="post-date">2024-05-13</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:时间的标准与格式</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-9/">
|
|
||||||
<span class="post-date">2024-04-02</span>
|
|
||||||
:: <span class="post-list-title">Docker学习笔记(九)</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-8/">
|
|
||||||
<span class="post-date">2024-04-01</span>
|
|
||||||
:: <span class="post-list-title">Docker学习笔记(八)</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-7/">
|
|
||||||
<span class="post-date">2024-03-31</span>
|
|
||||||
:: <span class="post-list-title">Docker学习笔记(七)</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-6/">
|
|
||||||
<span class="post-date">2024-03-30</span>
|
|
||||||
:: <span class="post-list-title">Docker学习笔记(六)</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-5/">
|
|
||||||
<span class="post-date">2024-03-29</span>
|
|
||||||
:: <span class="post-list-title">Docker学习笔记(五)</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-4/">
|
|
||||||
<span class="post-date">2024-03-28</span>
|
|
||||||
:: <span class="post-list-title">Docker学习笔记(四)</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-3/">
|
|
||||||
<span class="post-date">2024-03-27</span>
|
|
||||||
:: <span class="post-list-title">Docker学习笔记(三)</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-2/">
|
|
||||||
<span class="post-date">2024-03-26</span>
|
|
||||||
:: <span class="post-list-title">Docker学习笔记(二)</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-1/">
|
|
||||||
<span class="post-date">2024-03-25</span>
|
|
||||||
:: <span class="post-list-title">Docker学习笔记(一)</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/awesome-podcast-use/">
|
|
||||||
<span class="post-date">2024-03-06</span>
|
|
||||||
:: <span class="post-list-title">搭建个人信息流:播客收听指北</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/life/">#Life</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/rss-read/">
|
|
||||||
<span class="post-date">2024-03-05</span>
|
|
||||||
:: <span class="post-list-title">搭建个人信息流:RSS阅读指南</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/open-source-software/">
|
|
||||||
<span class="post-date">2024-03-04</span>
|
|
||||||
:: <span class="post-list-title">开源世界:常用跨平台开源软件</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/kai-yuan-shi-jie/">#开源世界</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/opensourcesoftware-licenses/">
|
|
||||||
<span class="post-date">2024-03-03</span>
|
|
||||||
:: <span class="post-list-title">开源世界:开源软件与协议</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/kai-yuan-shi-jie/">#开源世界</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/open-source-cross-platform-softs/">
|
|
||||||
<span class="post-date">2024-03-02</span>
|
|
||||||
:: <span class="post-list-title">开源世界:有关开源的误区</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/kai-yuan-shi-jie/">#开源世界</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/open-source-what/">
|
|
||||||
<span class="post-date">2024-03-01</span>
|
|
||||||
:: <span class="post-list-title">开源世界:什么是开源</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/kai-yuan-shi-jie/">#开源世界</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/how-email-works-2/">
|
|
||||||
<span class="post-date">2024-02-21</span>
|
|
||||||
:: <span class="post-list-title">电子邮件是如何工作的:POP3/IMAP/SMTP</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/how-email-works-1/">
|
|
||||||
<span class="post-date">2024-02-20</span>
|
|
||||||
:: <span class="post-list-title">电子邮件是如何工作的:SPF/DKIM/DMARC</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/routing/">
|
|
||||||
<span class="post-date">2024-02-19</span>
|
|
||||||
:: <span class="post-list-title">Network的艺术:路由器原理与组网</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/wang-luo-yi-shu/">#网络艺术</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/searching/">
|
|
||||||
<span class="post-date">2024-02-11</span>
|
|
||||||
:: <span class="post-list-title">Network的艺术:搜索引擎与爬虫</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/wang-luo-yi-shu/">#网络艺术</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/local-isps-to-cn-report/">
|
|
||||||
<span class="post-date">2024-02-10</span>
|
|
||||||
:: <span class="post-list-title">Network的艺术:国内至国际骨干ISP线路整理</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/wang-luo-yi-shu/">#网络艺术</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/network-download-1/">
|
|
||||||
<span class="post-date">2024-02-09</span>
|
|
||||||
:: <span class="post-list-title">Network的艺术:下载技术的历史</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/wang-luo-yi-shu/">#网络艺术</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/chatogpt/">
|
|
||||||
<span class="post-date">2024-01-07</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:如何高效地向 ChatGPT 提问</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/about-working/">
|
|
||||||
<span class="post-date">2023-12-27</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:应届生工作指南</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/life/">#Life</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/git/">
|
|
||||||
<span class="post-date">2023-12-15</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:Git使用简明手册</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/junk-cleanup/">
|
|
||||||
<span class="post-date">2023-11-19</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:垃圾清理的艺术</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/zola-blog/">
|
|
||||||
<span class="post-date">2023-10-12</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:个人博客搭建</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/mechrev-keyboard/">
|
|
||||||
<span class="post-date">2023-09-04</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:机械革命键盘失灵拯救记</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/windows-some-setting/">
|
|
||||||
<span class="post-date">2023-08-26</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:Windows单级菜单/开机启动/关闭更新</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/accurate-pronunciation/">
|
|
||||||
<span class="post-date">2023-08-25</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:常见发音错误术语集合</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/life/">#Life</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/calling-cards/">
|
|
||||||
<span class="post-date">2023-08-24</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:流量卡购买与套路</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/life/">#Life</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/kgnl/">
|
|
||||||
<span class="post-date">2023-08-23</span>
|
|
||||||
:: <span class="post-list-title">乱七八糟:快过年了笑话大全</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/awesome-win-linux/">
|
|
||||||
<span class="post-date">2023-08-18</span>
|
|
||||||
:: <span class="post-list-title">综合工程:Win/linux双系统部署</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/awesome-nas-dsm/">
|
|
||||||
<span class="post-date">2023-08-17</span>
|
|
||||||
:: <span class="post-list-title">综合工程:黑群辉NAS极速安装</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/awesome-arch-linux/">
|
|
||||||
<span class="post-date">2023-08-16</span>
|
|
||||||
:: <span class="post-list-title">综合工程:Arch从入门到入土</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/awesome-chromebook/">
|
|
||||||
<span class="post-date">2023-08-15</span>
|
|
||||||
:: <span class="post-list-title">综合工程:ChromeBook研究记</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/awesome-android-tv/">
|
|
||||||
<span class="post-date">2023-08-14</span>
|
|
||||||
:: <span class="post-list-title">综合工程:Android TV 折腾小记</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/awesome-android-root/">
|
|
||||||
<span class="post-date">2023-08-13</span>
|
|
||||||
:: <span class="post-list-title">综合工程:安卓刷机与root教程</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/awesome-openwrt/">
|
|
||||||
<span class="post-date">2023-08-12</span>
|
|
||||||
:: <span class="post-list-title">综合工程:OpenWrt 软路由部署</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/awesome-pve-mcsm/">
|
|
||||||
<span class="post-date">2023-08-11</span>
|
|
||||||
:: <span class="post-list-title">综合工程:PVE安装与MC服务器搭建</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>,
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/linux-for-pc-6/">
|
|
||||||
<span class="post-date">2023-07-25</span>
|
|
||||||
:: <span class="post-list-title">Linux-For-PC(六):常用命令与性能分析</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/linux/">#Linux</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/linux-for-pc-5/">
|
|
||||||
<span class="post-date">2023-07-24</span>
|
|
||||||
:: <span class="post-list-title">Linux-For-PC(五):BIOS-UEFI-MBR-GPT-GRUB</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/linux/">#Linux</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/linux-for-pc-4/">
|
|
||||||
<span class="post-date">2023-07-23</span>
|
|
||||||
:: <span class="post-list-title">Linux-For-PC(四):Terminal,Console and Shell</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/linux/">#Linux</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/linux-for-pc-3/">
|
|
||||||
<span class="post-date">2023-07-22</span>
|
|
||||||
:: <span class="post-list-title">Linux-For-PC(三):内核/shell/包管理/文件系统/桌面环境</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/linux/">#Linux</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/linux-for-pc-2/">
|
|
||||||
<span class="post-date">2023-07-21</span>
|
|
||||||
:: <span class="post-list-title">Linux-For-PC(二):FHS与目录结构</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/linux/">#Linux</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
<li class="post-list">
|
|
||||||
<a href="https://blog.dich.ink/linux-for-pc-1/">
|
|
||||||
<span class="post-date">2023-07-20</span>
|
|
||||||
:: <span class="post-list-title">Linux-For-PC(一):构成与发行版</span></a>
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
::
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/linux/">#Linux</a></span>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
1011
public/atom.xml
1011
public/atom.xml
File diff suppressed because it is too large
Load Diff
@ -1,256 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/awesome-android-root/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/awesome-android-root/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/awesome-android-root/">综合工程:安卓刷机与root教程</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-13
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 自安卓系统诞生以来,root 一直是玩机的必备过程。时至今日,在安卓定制系统日益完善的情况下,能 root 的机型越来越少,本文以小米手机为例,介绍 root 的具体方法。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="yi-shen-me-shi-root"><strong>一.什么是root</strong></h2>
|
|
||||||
<p>这涉及安卓的权限系统。Andoird 系统是基于 Linux 内核的,其中的权限大致可以分为四级,即一般软件权限,用户权限,ADB 权限和超级管理员权限(su)。而所谓 Root 也就是使手机获得超级管理员的权限,但是出于种种原因,厂商默认不提供超级管理员的权限,因此,root的本质就是一个提权的过程。</p>
|
|
||||||
<h2 id="er-wei-shen-me-yao-root"><strong>二.为什么要root</strong></h2>
|
|
||||||
<p>以权限系统为例,一般软件权限需要经过用户同意,即每次安装前出现的各种请求弹窗;而 ADB 权限常常用于开发者模式,可以调试一些比较深层的设置;至于 root 权限则为系统的最高权限,与 Windows 的 system 权限相当(比 administer 还高)。因此,当我们具备了 root 权限后,就可以实现许多功能,例如屏蔽广告,虚拟定位,安装 Google 框架和软件,满血运行CPU等等。</p>
|
|
||||||
<h2 id="san-ru-he-root"><strong>三.如何root</strong></h2>
|
|
||||||
<p>首先我们要了解安卓系统的分区和启动。安卓的分区包括:</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>recovery 分区,类似PC端的PE环境,手机上的恢复出厂设置即为从 recovery 恢复;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>cache 分区,保存系统最常访问的数据和应用程序。 擦除这个分区,不会影响个人数据,只是删除了这个分区中已经保存的缓存内容;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>boot 分区,类似PC端的MBR分区,用来引导系统启动,擦除后手机会卡在开机 logo 的界面;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>system 分区,包括操作系统与软件,vendor 定制文件与库文件等等,擦除后会卡在开机的动画界面;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>data 分区,存放用户数据和系统设置,擦除后不影响系统的运行。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>手机启动阶段存在名为 bootloader 的程序,与 PC 端的 BIOS 类似,被称为 fastboot 模式,厂商一般会将其锁定。</p>
|
|
||||||
<p>早些年间,存在大量一键 root,kingroot 之类的软件,可以直接刷写 root 包,获得 root 权限,但成功率不高;</p>
|
|
||||||
<p>因此,现在主流的刷机步骤为</p>
|
|
||||||
<ul>
|
|
||||||
<li>解开 bootloader,俗称解BL锁. </li>
|
|
||||||
</ul>
|
|
||||||
<blockquote>
|
|
||||||
<p><a href="https://telegra.ph/BL%E9%94%81%E7%9A%84%E5%8E%9F%E7%90%86%E6%98%AF%E4%BB%80%E4%B9%88-05-29">BL锁原理参考</a></p>
|
|
||||||
</blockquote>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>打开机器上的允许USB调试;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>备份手机数据,即备份Data分区(可使用Neobackup或系统自带),字库/基带/官方固件,桌面样式截图;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>下载该机器的官方原厂包以及要刷的第三方系统包;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>提取以上两个包中的 boot.img 和 recovery.img 文件备份;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>将机器与PC等设备连接,并进入 bootloader;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>刷入第三方 recovery,比如大名鼎鼎的 TWRP,或者对应新系统的recovery.img;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>进入 recovery 模式,清空原系统数据;然后刷入原系统作为底包,避免出现固件问题;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>刷入新系统Zip包,随后重启,再次进入 recovery .</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>刷入 Magisk (面具)工具,随后重启进入桌面,安装 Magisk(apk),通过修补 boot.img 文件获得 root 权限;</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>安装 Magisk 模块和 Lsposed 框架(可在其中下载许多模块,推荐一键救砖,系统优化和 root 隐藏)</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>安装 Momo 软件检测系统环境是否正常。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<blockquote>
|
|
||||||
<p>如果旧系统上没有root权限无法直接备份Data分区,可以先用系统自带的备份,并下载好原版系统镜像以防止刷机失败.</p>
|
|
||||||
</blockquote>
|
|
||||||
<h2 id="si-na-xie-ji-xing-ke-yi-root"><strong>四.哪些机型可以root</strong></h2>
|
|
||||||
<p>看到这里很多小伙伴肯定跃跃欲试,不过在 2023 年的今天,能 root 的机型还是比较少。首先是最容易的一加和小米,可以申请官方解 BL 锁,需要等待7天;其次是联想,索尼等海外品牌,也比较容易;而 oppo 和 vivo 及其子品牌 iqoo 和 realme 有些是不行的;苹果的越狱在10代前是可以的,而华为全部机型都是不可以的,除非上万能的淘宝收费解锁,直接烧录芯片;至于三星,BL 锁一旦解开就会触发芯片物理熔断机制,无法使用 pay 以及升级系统,体验极差。因此,刷机有风险,root 需谨慎!刷机前要了解相应的厂商,考虑保修和变砖的问题!</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>截至2024年5月小米手机解BL锁已经收紧,条件非常苛刻.</p>
|
|
||||||
</blockquote>
|
|
||||||
<h2 id="wu-ju-ti-cao-zuo-liu-cheng"><strong>五.具体操作流程</strong></h2>
|
|
||||||
<p>1.笔者以 Redmi k30pro 5G 这款手机为例,首先我们进入手机设置界面,进入“我的设备”,在“全部参数”中找到“ MIUI 版本”,连续点击后开启开发者模式,随后在“更多设置”中开启 USB 调试, USB安装 功能。</p>
|
|
||||||
<p>2.随后下载大名鼎鼎的搞机工具箱http://jamcz.com/ (由B站up主晨钟酱出品),里面具有许多功能,包括进入各个模式,无极调速等等:
|
|
||||||
然后我们进入小米官网https://www.miui.com/unlock/download.html ,下载官方解锁工具,需要登陆小米账号并等待7天,随后即可解锁。
|
|
||||||
3.解锁完成后在https://mifirm.net/downloadtwrp/148 中下载对应的 TWRP 版本,注意 redmi 的海外名为 Poco 。
|
|
||||||
4.随后用数据线连接手机,用其中的一键刷写刷入 TWRP;随后下载 rom 包,可以选择原版,官改版,海外版和类原生版。相关链接:</p>
|
|
||||||
<p><code>https://miuiver.com/</code></p>
|
|
||||||
<p><code>https://mi.fiime.cn/Android</code></p>
|
|
||||||
<p>这里选择 <code>https://c.mi.com/global/miuidownload/index</code></p>
|
|
||||||
<p>下载时注意一并下载 boot.img 文件,作为 Magisk 的修补用。然后下载 Magisk 包,与 rom 一起存入TF卡或者U盘中。</p>
|
|
||||||
<p>Magisk : <code>https://magisk.me/zip/</code></p>
|
|
||||||
<p><strong>注意,由于本机型为新型AB分区</strong>(<code>https://www.jianshu.com/p/b2726b304801</code>) 因此如果刷机失败,需要下载原厂包用以恢复AB分区,否则无法启动和安装rom。</p>
|
|
||||||
<p>5.通过搞机工具箱进入 recovery 模式,首先我们在wipe中清除Data、Cache两个分区,俗称“双清”,随后在高级清除选项中清除 Data、Cache、Dalvik Cache 和 System 分区,俗称“四清”。
|
|
||||||
6.清除完成后即可开始刷机。将 TF 卡或者U盘插入手机,在“安装”中选择 rom 包,右滑确认刷机;随后如法炮制,刷入 magisk.zip 包,不然会卡在开机 logo 界面,俗称“卡米”。
|
|
||||||
7.刷完之后重启,则会进入安装界面。注意:如果刷的是海外版的包,千万不能联网安装,否则会失败且变为国内版。</p>
|
|
||||||
<p>随后可以看到桌面环境</p>
|
|
||||||
<p>8.此刻我们将下载好的 boot.img 文件复制到手机上,打开 Magisk 软件,在其中选择修补一个文件,选中 boot.img,修复完成后可以看到超级用户一栏可以使用了,说明root完成。</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>截至2024年5月1日,该机已经刷入crdroid 10.4 类原生系统,非常丝滑,步骤同上,但需要刷入<a href="https://xiaomifirmwareupdater.com/firmware/lmi/stable/V14.0.1.0.SJKMIXM/">新固件</a>.</p>
|
|
||||||
</blockquote>
|
|
||||||
<h2 id="liu-roothou-de-mo-kuai-an-zhuang"><strong>六.Root后的模块安装</strong></h2>
|
|
||||||
<p>隐藏root的 shamiko 和 lsposed 框架,以及yc调度,李跳跳等等。</p>
|
|
||||||
<h2 id="hou-ji"><strong>后记</strong></h2>
|
|
||||||
<p>关于 root 的其他用途还有很多,这里就不一一列举,分享一些常用模块:</p>
|
|
||||||
<p><code>https://sspai.com/post/68531</code></p>
|
|
||||||
<h2 id="can-kao"><strong>参考</strong></h2>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://download.lineageos.org/devices/lmi/builds">lineageos镜像</a></li>
|
|
||||||
<li><a href="https://wiki.lineageos.org/devices/lmi/install/variant1/">lineageos教程</a></li>
|
|
||||||
<li><a href="https://wiki.lineageos.org/devices/lmi/variant2/">机型介绍</a></li>
|
|
||||||
<li><a href="https://xdaforums.com/t/no-sound-issue-can-u-help.4479225/">XDA-没有声音的问题解决</a></li>
|
|
||||||
<li><a href="https://xdaforums.com/t/kernel-overclocked-no-gravity-2023-08-28-protonclang.4531497/">XDA-更换内核</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/awesome-openwrt/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">综合工程:OpenWrt 软路由部署</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/awesome-android-tv/">
|
|
||||||
<span class="button__text">综合工程:Android TV 折腾小记</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,238 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/awesome-android-tv/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/awesome-android-tv/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/awesome-android-tv/">综合工程:Android TV 折腾小记</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-14
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 由于 AppleTV 的高昂的售价和普通电视盒子广告的泛滥,一台开源、多功能的原生安卓电视盒子逐渐成为智能家居的必备神器。出于对 IPTV、YouTube 和家庭影院等需求,以及对一面赏心悦目电视墙的期待,这里分享 Android TV (以下简称ATV)安装的一些要点。</p>
|
|
||||||
<span id="continue-reading"></span>
|
|
||||||
<p>准备工作:</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>1.一个 <a href="https://pan.baidu.com/s/17eDDrf4WzWVmrc9hLw-c_w?pwd=a728">ATV 镜像</a> ,这里使用 Tosathony 制作的 Android TV x86 9.0, 支持 Android tv Remote,且可以下载 Google Play Store 。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>2.我们的老朋友 Rufus 写盘工具:https://www.423down.com/10080.html</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>3.Android tv Remote 手机遥控器软件:https://android-tv-remote-control.en.softonic.com/android</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>4.Tiny ADB 软件: https://androidmtk.com/tiny-adb-and-fastboot-tool#installer</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>5.一些可安装的软件:</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>当贝市场:https://www.dangbei.com/apps/</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>哔哩哔哩TV版:https://www.fenxm.com/104.html</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>kodi: http://www.kodiplayer.cn/</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>ATV Launcher: https://www.fenxm.com/592.html</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>安装流程:</p>
|
|
||||||
<h2 id="yi-xie-pan-biosqi-dong">一、写盘,BIOS启动</h2>
|
|
||||||
<p>1.使用 Rufus 将下载好的 ATV 镜像写入U盘。
|
|
||||||
<img src="https://pic.dich.ink/1/2024/03/06/65e8665dd27b9.webp" alt="image-tlej.webp" /></p>
|
|
||||||
<p>2.将U盘插到目标主机上,并设置 BIOS-boot 优先启动,不同设备进入 BIOS 的按键不同,大部分是F2或者DEL;</p>
|
|
||||||
<h2 id="er-kai-shi-an-zhuang">二、开始安装</h2>
|
|
||||||
<p>1.boot 成功后可以看到如下界面:</p>
|
|
||||||
<p>2.我们选择自动安装:</p>
|
|
||||||
<p>3.经过跑码后进入若干个选项,一路 yes 过去,文件系统选 ext4;</p>
|
|
||||||
<p>随后运行 ATV ,并拔出U盘;</p>
|
|
||||||
<h2 id="san-jin-ru-googlejie-mian">三、进入Google界面</h2>
|
|
||||||
<p>由于国内网络环境问题,导致一些界面无法进入,可使用如下方法或全局科学。</p>
|
|
||||||
<p>1.如果卡在 Google的logo 界面或者动画比较缓慢,或者重启后无法进入 ATV 界面,需要在<code>BIOS-Advanced-OS selection</code>中将其设置为Windows 8.X或者Android。</p>
|
|
||||||
<p>2.然后可以看到 PayPal 界面,这里使用可以 <code>Ctrl+Alt+F1</code> 进入命令行界面,随后输入</p>
|
|
||||||
<p><code>pm disable com.tosanthony.tv.networkprovider #注意空格</code></p>
|
|
||||||
<p>回车执行,随后按<code>Ctrl+Alt+F7或F8</code>回到图形界面。</p>
|
|
||||||
<p>3.下一步,我们可以看到自动更新界面,这里我们需要禁用它:</p>
|
|
||||||
<p>同样<code>Ctrl+Alt+F1</code> 进入命令行界面,随后输入</p>
|
|
||||||
<p><code>pm disable com.google.android.tungsten.setupwraith #注意空格</code></p>
|
|
||||||
<p>回车执行,随后按<code>Ctrl+Alt+F7或F8</code>回到图形界面。</p>
|
|
||||||
<p>4.此时会进入一个 WiFi 界面,如果你是使用网线直连就没有问题,或者用键盘连接家里的WiFi,作者因为工控机没有WiFi模块在这里卡了半天。</p>
|
|
||||||
<p>5.现在我们可以看到进入了 ATV 的桌面。</p>
|
|
||||||
<h2 id="si-an-zhuang-ruan-jian-bing-she-zhi-zhuo-mian-qi-dong">四、安装软件并设置桌面启动</h2>
|
|
||||||
<p>1.首先我们在设置中找到“设置”>“设备首选项”>“关于”,然后在“构建”上点击几次以解锁“开发人员”选项,随后开启USB调试开关。</p>
|
|
||||||
<p>2.随后在设置 > 设备首选项 > 关于 > 状态中找到并记下IP 地址,然后用Tiny ADB连接上去,这里使用命令adb connect <IP 地址> 。 ,随后在ATV端授权连接;</p>
|
|
||||||
<p>3.接着使用命令adb install <path to android app.apk>将要安装的软件包上传,也可以将文件拖到命令提示符窗口上以复制其路径,回车确认。</p>
|
|
||||||
<p>附一些 ADB 常用命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>adb reboot #将重启 Android 设备。
|
|
||||||
</span><span>
|
|
||||||
</span><span>adb reboot recovery #将设备重新启动到恢复模式。
|
|
||||||
</span><span>
|
|
||||||
</span><span>adb push <local> <remote> #将文件从您的 PC 复制到您的 Android 设备。
|
|
||||||
</span><span>
|
|
||||||
</span><span>adb shell wm density <dpi> #改变显示器的像素密度。
|
|
||||||
</span><span>
|
|
||||||
</span><span>adb kill server #切断 PC 和 Android TV 之间的连接。
|
|
||||||
</span></code></pre>
|
|
||||||
<p>4.如果存在一些软件无法安装,可开启ARM兼容层,具体方法为在 <code>dl.android-x86.org/houdini/9_y/houdini.sfs</code> 中下载得到<code>houdini.sfs</code>,把文件名改成<code>houdini9_y.sfs</code>,随后拷贝进U盘,进入命令行界面,输入 <code>ls</code> 找到 storage 目录,输入 <code>cd storage</code> 进入你的U盘,输入 <code>ls</code> ,查看你拷贝的 <code>houdini9_y.sfs</code> 文件,并复制到该目录下。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>cp houdini9_y.sfs /system/etc
|
|
||||||
</span><span>
|
|
||||||
</span><span>enable_nativebridge
|
|
||||||
</span><span>
|
|
||||||
</span><span>reboot
|
|
||||||
</span></code></pre>
|
|
||||||
<p>5.安装一些软件包后我们发现需要代替掉ATV自带的桌面,从而形成海报墙的效果,这和 linux 的桌面环境切换有异曲同工之处。注意:替换前需要已经安装完成其他桌面!!!!(比如 ATV Launcher )我们使用 </p>
|
|
||||||
<p><code>pm disable-user --user 0 com.google.android.tvlauncher </code></p>
|
|
||||||
<p>恢复原有桌面:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>C:\Users\root>adb shell
|
|
||||||
</span><span>generic_x86:/ $ su
|
|
||||||
</span><span>generic_x86:/ # pm enable --user 0 com.google.android.tvlauncher
|
|
||||||
</span><span>Package com.google.android.tvlauncher new state: enabled
|
|
||||||
</span></code></pre>
|
|
||||||
<p>命令,禁用 google 默认的桌面。随后重启,即可看到如下海报墙:</p>
|
|
||||||
<h2 id="hou-ji">后记</h2>
|
|
||||||
<p><a href="https://github.com/googlesamples/leanback-showcase">Android TV google 官方 TV 库</a></p>
|
|
||||||
<p><a href="https://github.com/boxmate/tvframe">智能电视,电视盒子开发 SDK</a></p>
|
|
||||||
<p><a href="https://github.com/EZJasonBoy/FocusChangeAnimation">选中框切换动画,适用于电视</a></p>
|
|
||||||
<p><a href="https://github.com/FrozenFreeFall/Android-tv-widget">Android tv,盒子,投影仪 控件</a></p>
|
|
||||||
<p><a href="https://github.com/genius158/TVProjectUtils">TV 项目常用工具(焦点问题,适配问题等.)</a></p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/awesome-android-root/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">综合工程:安卓刷机与root教程</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/awesome-chromebook/">
|
|
||||||
<span class="button__text">综合工程:ChromeBook研究记</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,260 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/awesome-arch-linux/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/awesome-arch-linux/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/awesome-arch-linux/">综合工程:Arch从入门到入土</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-16
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 Arch linux是一个轻量、灵活、滚动更新的 Linux 发行版,衍生了诸多优秀的桌面端linux。其官方Wiki更是被称为技术界的“武林秘籍”;
|
|
||||||
但由于该Wiki的中文版比较陈旧,安装教程不太清楚,故先以虚拟机安装Arch为例实际操作一番。</p>
|
|
||||||
<span id="continue-reading"></span>
|
|
||||||
<hr />
|
|
||||||
<p>准备工作:需要</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>虚拟机环境,这里推荐使用VMware Workstation Pro.</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>ISO镜像</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>VM学习版:https://www.ahhhhfs.com/33472/</p>
|
|
||||||
<p>官方镜像: https://geo.mirror.pkgbuild.com/iso/2023.08.01/</p>
|
|
||||||
<hr />
|
|
||||||
<h2 id="yi-xin-jian-xu-ni-ji"><strong>一、新建虚拟机</strong></h2>
|
|
||||||
<p>1.打开VM,文件—新建虚拟机—典型—下一步,对于硬盘要求建议至少20G,作为后续分区使用;CPU及内存根据实际需求分配,一般取半数。
|
|
||||||
注意:完成后需先在编辑虚拟机设置—选项中设置引导为UEFI,否则会导致奇怪的Boot问题。</p>
|
|
||||||
<p>2.开启此虚拟机,随后进入界面,回车,跑码后进入tty1。</p>
|
|
||||||
<h2 id="er-lian-wang-bing-fen-qu"><strong>二、联网并分区</strong></h2>
|
|
||||||
<p>1.使用 <strong>dhcpcd</strong> 命令获取IP地址,由于虚拟机使用NAT故联网容易。</p>
|
|
||||||
<p>2.使用 <strong>ping www.baidu.com</strong> 命令检查是否联网,若出现ttl,time=xx ms等数据说明成功,随后再 <strong>Ctrl+C</strong> 停止命令运行,<del>避免百度被DDOS攻击死掉。</del></p>
|
|
||||||
<p>3.使用 <strong>timedatectl set-ntp true</strong> 命令更新系统时间,该命令无输出,正所谓无事发生就是最好的。</p>
|
|
||||||
<p>4.使用 <strong>fdisk -l</strong> 命令查看系统分区,由于虚拟机的存在只会显示一块硬盘。</p>
|
|
||||||
<p>5.接下来是Arch安装中较难的一部分,以20G硬盘空间为例,我们需要划分出512MB的引导分区,15G的根分区以及5G左右的交换分区。由于纯命令行分区比较繁琐,这里使用 <strong>cfdisk</strong> 命令打开分区工具。</p>
|
|
||||||
<p>回车选择gpt类型,可以看到如下界面:</p>
|
|
||||||
<p>使用左右方向键移动至<strong>New</strong>,新建一个分区,大小为<strong>512MB</strong>,回车确认,并移动至<strong>type</strong>将其类型改为<strong>EFI system</strong>,随后如法炮制,建立根分区(类型为linux filesystem)和交换分区(linux swap)。
|
|
||||||
注意:上诉操作完成后需在<strong>Write</strong>中选择<strong>yes</strong>,否则无法保存分区,随后<strong>quit</strong>回到命令行。</p>
|
|
||||||
<p>6.分区结束后分别对其进行格式化,命令为</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>mkfs.fat -F32 /dev/sda1
|
|
||||||
</span><span>mkfs.ext4 /dev/sda2
|
|
||||||
</span><span>mkswap -f /dev/sda3
|
|
||||||
</span></code></pre>
|
|
||||||
<p>注意不同分区类型与格式所用命令不同。
|
|
||||||
7.格式完成后进行挂载,使用如下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>swapon /dev/sda3
|
|
||||||
</span><span>mount /dev/sda2 /mnt
|
|
||||||
</span><span>mkdir /dev/sda2 /mnt/home
|
|
||||||
</span><span>ls /mnt
|
|
||||||
</span><span>mkdir /mnt/boot
|
|
||||||
</span><span>mkdir /mnt/boot/EFI
|
|
||||||
</span><span>mount /dev/sda1 /mnt/boot/EFI
|
|
||||||
</span><span>ls /mnt
|
|
||||||
</span></code></pre>
|
|
||||||
<p>完成后即可开始组件下载。</p>
|
|
||||||
<hr />
|
|
||||||
<h2 id="san-an-zhuang-ji-ben-zu-jian"><strong>三、安装基本组件</strong></h2>
|
|
||||||
<p>1.使用大名鼎鼎的<strong>vim</strong>编辑器,将下载镜像源改为国内,提高下载速度<strong>vim /etc/pacman.d/mirrorlist</strong></p>
|
|
||||||
<p>推荐使用清华源,在首行中改为如下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
|
|
||||||
</span></code></pre>
|
|
||||||
<p>随后<strong>ESC</strong>,<strong>: wq</strong> 保存退出。</p>
|
|
||||||
<p>2.安装基本包,使用命令</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>pacstrap /mnt base base-devel linux linux-firmware dhcpcd
|
|
||||||
</span></code></pre>
|
|
||||||
<p>一路回车下载。</p>
|
|
||||||
<p>3.生成<strong>fstab</strong>文件 ,使用命令</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>genfstab -U /mnt > /mnt/etc/fstab
|
|
||||||
</span></code></pre>
|
|
||||||
<p>自动挂载分区,并用<strong>cat /mnt/etc/fstab</strong>观察分区情况。
|
|
||||||
4.使用<strong>arch-chroot /mnt</strong>命令切换至系统环境下,此时可以设置时区,语言和主机名(hostname)。
|
|
||||||
设置上海为系统时区:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
|
||||||
</span></code></pre>
|
|
||||||
<p>设置主机名: <strong>vim /etc/hostname</strong>,写入任意你想要的名字。随后在<strong>vim /etc/hosts</strong>中输入如下内容,将<strong>name</strong>改为主机名。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>127.0.0.1 localhost
|
|
||||||
</span><span>::1 localhost
|
|
||||||
</span><span>127.0.1.1 name.localdomain name
|
|
||||||
</span></code></pre>
|
|
||||||
<p>设置语言:使用<strong>vim /etc/locale.gen</strong>命令去掉 <strong>en_US.UTF-8 UTF-8</strong> 以及 <strong>zh_CN.UTF-8 UTF-8</strong> 行前的注释符号,并用<strong>locale-gen</strong>生成新locale,用<strong>echo 'LANG=en_US.UTF-8' > /etc/locale.conf</strong>命令确认输出。</p>
|
|
||||||
<p>4.设置root密码:使用<strong>passwd</strong>命令,设置并重复密码。
|
|
||||||
5.安装微码:根据硬件选择命令:
|
|
||||||
<strong>pacman -S intel-ucode # Intel
|
|
||||||
pacman -S amd-ucode # AMD</strong>
|
|
||||||
6.安装引导程序:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>pacman -S grub efibootmgr os-prober
|
|
||||||
</span><span>grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
|
|
||||||
</span></code></pre>
|
|
||||||
<p>生成配置文件:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>grub-mkconfig -o /boot/grub/grub.cfg
|
|
||||||
</span></code></pre>
|
|
||||||
<p>7.退出并重启虚拟机:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>exit # 退回安装环境
|
|
||||||
</span><span>umount -R /mnt # 卸载新分区
|
|
||||||
</span><span>reboot # 重启
|
|
||||||
</span></code></pre>
|
|
||||||
<p>若成功进入登录界面即为成功,可使用<strong>neofetch</strong>命令打印系统信息。</p>
|
|
||||||
<hr />
|
|
||||||
<h2 id="si-an-zhuang-tu-xing-jie-mian"><strong>四、安装图形界面</strong></h2>
|
|
||||||
<p>为便于在虚拟机中操作,我们可以安装KDE-plasma,Xfce等桌面环境。
|
|
||||||
1.使用<strong>dhcpcd</strong>获得地址。</p>
|
|
||||||
<p>2.新建普通用户<strong>useradd -m -G wheel username</strong> (替换username为你的用户名)并设置密码<strong>passwd username</strong> 。</p>
|
|
||||||
<p>3.配置Sudo,使用<strong>pacman -S sudo</strong>安装并在<strong>ln -s /usr/bin/vim /usr/bin/vi/visudo</strong> 中删除 <strong>%wheel ALL=(ALL)ALL</strong> 前的注释符。</p>
|
|
||||||
<p>4.reboot后开始安装驱动。由于~~NVIDIA fuck you~~ 众所周知的原因,独显驱动比较难以安装,建议先只上核显。</p>
|
|
||||||
<p>以此为例,若为AMD核显,命令为</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo pacman -S xf86-video-amdgpu
|
|
||||||
</span></code></pre>
|
|
||||||
<p>OpenGL和mesa:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo pacman -S mesa xf86-video-amdgpu vulkan-radeon libva-mesa-driver mesa-vdpau
|
|
||||||
</span><span>sudo pacman -S opencl-mesa lib32-vulkan-radeon lib32-mesa
|
|
||||||
</span></code></pre>
|
|
||||||
<p>5.使用命令</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>pacman -S plasma-meta konsole dolphin
|
|
||||||
</span></code></pre>
|
|
||||||
<p>安装KDE组件。
|
|
||||||
6.开启sddm守护进程:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>systemctl enable sddm
|
|
||||||
</span><span>systemctl start sddm
|
|
||||||
</span></code></pre>
|
|
||||||
<p>7.reboot后进入桌面环境,安装完成。</p>
|
|
||||||
<h2 id="hou-ji"><strong>后记</strong></h2>
|
|
||||||
<p>设备的多样导致安装中可能会出现一些奇怪的问题,需要自行搜索学习,以不断提高技术水平。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/awesome-chromebook/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">综合工程:ChromeBook研究记</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/awesome-nas-dsm/">
|
|
||||||
<span class="button__text">综合工程:黑群辉NAS极速安装</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,194 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/awesome-chromebook/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/awesome-chromebook/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/awesome-chromebook/">综合工程:ChromeBook研究记</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-15
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 ChromeBook 作为国外一款定位为商务办公和学生入门的机器,其性能在2023年的当下似乎已经过时;在其退出中国市场后更是接近绝迹。不过,针对特殊需求下的部分机型在今天仍然极具性价比。</p>
|
|
||||||
<span id="continue-reading"></span>
|
|
||||||
<p>作为一个垃圾佬,作者常常去发掘二手平台的诸多“洋垃圾”;而就在某一天,一台名为 ASUS ChromeBook C302 的机器吸引了我的注意力,且看其配置:</p>
|
|
||||||
<p>此前作者一直认为 ChromeBook 只存在于 Google 的 Pixelbook 机型之上,就如同 Mircosoft的Surface Pro 一样;实际上,主流 OEM 厂商——美帝良心想、社会主义戴、惠普宏碁华硕三星等等—-都推出过 Chromebook。</p>
|
|
||||||
<p>但本次所说的这台 ASUS 的机器属实让我眼前一亮:质感上佳的银白色全金属外壳,360度可翻转的触摸屏,以及最大10小时的续航和仅仅1.15千克的重量,这简直是轻薄本和平板的完美结合!美中不足的是其接口较少,两个type-C、一个3.5mm耳机口和SD卡接口显得有些单薄;而在性能上,Intel m3-6y30和8+32G的组合只能说差强人意。</p>
|
|
||||||
<p>不过,作为触摸屏和翻转本的结合,用来当阅读器、上网本和视频播放器以及盖泡面上实用性极强,在亚马逊的 kindle 退出中国市场后阅读器市场群魔乱舞,高昂的售价和低配的机型遍地横行;而一般的平板生态和手机重复,价格不菲;如果没有游戏需求,ChromeBook 是不错的选择。</p>
|
|
||||||
<p>到祸啦家人们!我们看看其实际效果究竟如何?首先映入眼帘的是经典的 Chrome OS 界面,这里注意登录需要有Google的账号(Gmail邮箱),如果暂时没有可以用访客模式登录,在该模式下的一切操作不会保存在硬盘(似乎很好的保护了隐私);而在登录谷歌后,可以看到其完善的生态,包括原生的 play 商店、Chrome 浏览器,Gmail 邮箱等等。</p>
|
|
||||||
<p>那么,ChromeBook 有哪些玩法呢?</p>
|
|
||||||
<h2 id="yi-jin-ru-kai-fa-zhe-mo-shi">一.进入开发者模式</h2>
|
|
||||||
<p>我们假设你已经有了一个 Google 账号,并在往期的博客中部署了 openwrt,那么此时通过全局科学让 chromebook 联网,随后登录账号,此时我们完成了第一步;</p>
|
|
||||||
<p>随后拆开后盖,拧下主板上的 BIOS 写保护螺丝。注意在拆卸背板的时候,有两颗螺丝藏在上侧脚垫下,需要先用工具去除脚垫再拆卸这两颗螺丝;下侧的两个脚垫下没有螺丝。如图所示:</p>
|
|
||||||
<p>随后打开背板,卸下图示位置(在蒙皮下)的大螺丝:</p>
|
|
||||||
<p>随后装回后盖,按住键盘上的Esc和“刷新”键不动,然后按下电源键。这样Chromebook会进入“恢复”模式:</p>
|
|
||||||
<p>然后同时按下键盘上的Ctrl键和D键:</p>
|
|
||||||
<p>按下Enter,系统重启:
|
|
||||||
这时会有一声“滴!”的BIOS提示音。</p>
|
|
||||||
<p>随后等待Chrome OS重置即可。</p>
|
|
||||||
<p>重置完成后看到如下界面,以后每次开机都要按Ctrl+D进入系统:</p>
|
|
||||||
<p>随后在设置-高级中可以看到开发者模式已打开,此时传到ChromeOS中的其他APP即可安装。</p>
|
|
||||||
<p>附阅读器和视频效果:</p>
|
|
||||||
<h2 id="er-an-zhuang-qi-ta-xi-tong">二.安装其他系统</h2>
|
|
||||||
<p>如果你不喜欢 ChromeOS 或者需要 linux 环境,那么可以尝试安装其他系统,例如FydeOS,manjaro等。我们以crouton脚本为例(需要全局科学):</p>
|
|
||||||
<p>这里是 crouton 项目的github地址<code>https://github.com/dnschneid/crouton</code></p>
|
|
||||||
<p>由于我们已经进入开发者模式,这时打开chromeOS的浏览器,同时按住ctrl和alt和t,会打开一个命令行窗口。 输入命令 shell ,回车,之后会出现 linux 的真正命令行。随后安装 crouton,如果你是用 chromeOS 下载的 crouton,那么这个文件应该在~/Downloads目录下。 执行命令:</p>
|
|
||||||
<p><code>sudo sh ~/Downloads/crouton -r list</code></p>
|
|
||||||
<p>列出所有可以用的发行版版本。像ubuntu,debian,kali等等。 随后使用命令列出所有可以选择安装的组件:</p>
|
|
||||||
<p><code>sudo sh crouton -t list</code></p>
|
|
||||||
<p>这其中就包括各种桌面环境,gnome,kde,xface,lxde啥的。 我们选择最轻量的lxde:</p>
|
|
||||||
<p><code>sh crouton -r stretch -t lxde</code></p>
|
|
||||||
<p>随后设置用户名,密码等等。安装完成后,在chromeOS的linux shell里面输入命令:</p>
|
|
||||||
<p><code>sudo startlxde</code></p>
|
|
||||||
<p>就能启动 linux 了。</p>
|
|
||||||
<p>实际上,crouton 的原理,是基于 linux 下的一个软件, chroot</p>
|
|
||||||
<p>在linux系统中,它可以把linux系统的根目录(也就是 / ),切换到其它的目录。 crouton 利用这一点,将 chromeOS 的根目录切换到指定的安装了另一系统的文件。而且,会出现两个特性为:linux 可以享受到 chromeOS 的驱动支持,不用担心驱动问题,且使用的是 chromeOS 的系统内核。</p>
|
|
||||||
<p>由于该内核过于精简,会出现一些服务跑不了的情况,这时我们可以用第二种方法:刷 BIOS。我们进入 linux shell,插入一个空U盘,输入如下命令</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>cd
|
|
||||||
</span><span>
|
|
||||||
</span><span>curl -LO mrchromebox.tech/firmware-util.sh
|
|
||||||
</span><span>
|
|
||||||
</span><span>sudo install -Dt /usr/local/bin -m 755 firmware-util.sh
|
|
||||||
</span><span>
|
|
||||||
</span><span>sudo firmware-util.sh
|
|
||||||
</span></code></pre>
|
|
||||||
<p>选择标注了“Full ROM”的选项,按照提示备份BIOS和刷入BIOS,随后 reboot,然后可以按正常的装系统流程(Rufus写入ISO启动)</p>
|
|
||||||
<p>注意:需要先删除 ChromeBook 的硬盘分区;仅支持UEFI启动,且 Windows 驱动不太完整。</p>
|
|
||||||
<h2 id="hou-ji">后记</h2>
|
|
||||||
<p>合适的设备总是相对而言的,只要符合需求即可,不必过多的追求工具的完美。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/awesome-android-tv/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">综合工程:Android TV 折腾小记</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/awesome-arch-linux/">
|
|
||||||
<span class="button__text">综合工程:Arch从入门到入土</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,178 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/awesome-nas-dsm/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/awesome-nas-dsm/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/awesome-nas-dsm/">综合工程:黑群辉NAS极速安装</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-17
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 作为NAS家族中的重要一员,Synology的DSM以完善的服务和较高的售价闻名于世,因此,一般玩家倾向于工控机加黑群晖的方案组建自己的文件服务器。本文就黑群辉安装做了详细阐述。</p>
|
|
||||||
<span id="continue-reading"></span>
|
|
||||||
<p>准备工作:需要一个U盘,一台主机(包括屏幕与键盘)以及至少一块硬盘。
|
|
||||||
注意:</p>
|
|
||||||
<ul>
|
|
||||||
<li>该U盘作为启动器,在安装完成后不可取下;</li>
|
|
||||||
<li>截至本文撰写的日期,蜗牛星际被黄牛抬价,可使用路由器工控机加硬盘的方案;</li>
|
|
||||||
<li>硬盘需机械硬盘,SSD阵列会出奇怪的问题。</li>
|
|
||||||
</ul>
|
|
||||||
<blockquote>
|
|
||||||
<p>安装流程:ISO镜像烧入,BIOS启动,选择版本编译安装,进入群辉界面安装DSM。</p>
|
|
||||||
</blockquote>
|
|
||||||
<h2 id="yi-isojing-xiang-shao-ru"><strong>一、ISO镜像烧入</strong></h2>
|
|
||||||
<p>首先我们从 https://www.52pojie.cn/thread-1745197-1-1.html 下载arpl-1.0-beta2.img文件,随后通过写盘工具(这里推荐Rufus)将该文件写入U盘中。Rufus:https://www.423down.com/10080.html</p>
|
|
||||||
<p>注意U盘将被格式化,随后我们弹出U盘,并将其插到主机上面。</p>
|
|
||||||
<h2 id="er-biosqi-dong-bian-yi-an-zhuang"><strong>二、BIOS启动,编译安装</strong></h2>
|
|
||||||
<p>开机并按F2或DEL键进入BIOS,设置boot顺序为U盘优先,随后可进入如下界面:</p>
|
|
||||||
<p>记下Access后面的地址,随后在另一台主机的浏览器上访问,可以看到如下界面:</p>
|
|
||||||
<p>选择DSM版本,这里我们以DS3615为例(注意DS918对网卡要求高,需确认好再选择),回车确认;
|
|
||||||
PS:群晖设备型号与套件架构参表.https://www.shenzhuohl.com/syno_list.html</p>
|
|
||||||
<p>接着选择版本号,以42962为例(后面需下载对应的系统)</p>
|
|
||||||
<p>然后输入一个序列号,由于是黑群晖所以让其随机生成。</p>
|
|
||||||
<p>随后build the loader,进入跑码界面,编译安装需要一些时间;</p>
|
|
||||||
<p>完成后boot the loader,出现如下界面:</p>
|
|
||||||
<p>当出现内网地址时便成功了,记下版本号与对应的型号;</p>
|
|
||||||
<h2 id="san-jin-ru-qun-hui-jie-mian-an-zhuang-dsm"><strong>三、进入群辉界面安装DSM</strong></h2>
|
|
||||||
<p>进入刚刚看到的内网地址(或用群辉助手https://finds.synology.com/#自动查找),可以看到如下界面:</p>
|
|
||||||
<p>从群辉的官网下载对应的系统,进入安装程序,这里有个重启时间为10分钟,此时可以饮口茶先。</p>
|
|
||||||
<p>安装完成后即可进入界面,随后添加储存池。</p>
|
|
||||||
<h2 id="hou-ji"><strong>后记</strong></h2>
|
|
||||||
<p>黑群辉的一些功能缺失,因此套件中心是可玩性的集中体现,推荐 https://imnks.com/1780.html 添加该源开始你的NAS之旅吧!</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/awesome-arch-linux/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">综合工程:Arch从入门到入土</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/awesome-win-linux/">
|
|
||||||
<span class="button__text">综合工程:Win/linux双系统部署</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,199 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/awesome-openwrt/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/awesome-openwrt/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/awesome-openwrt/">综合工程:OpenWrt 软路由部署</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-12
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 openwrt 是一个自由的、兼容性好的嵌入式 linux 发行版。作为软路由玩家必备的一款神器,可以实现诸如去广告,多拨和科学上网等多种功能。本文以 openwrt 在X86平台的安装为例,介绍其部署流程。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="wei-shen-me-shi-x86">为什么是X86?</h2>
|
|
||||||
<p>无论是作为主路由或是旁路由,传统路由器由于主频低,内存小,并不适合作为软路由;而 NAS-软路由一体式 又有 all in boom 的风险,因此推荐X86平台作为物理机。当然,也可以采用 armbian 平台或是开发板,例如网心云老母鸡、树莓派等设备。截至本文撰写时间,二手平台上的价格不太利好:一台J1900平台的售价往往在200左右,而专门的多网口工控机价格在200到1000不等,树莓派更是成为了理财产品,需要慎重选择。</p>
|
|
||||||
<h2 id="zhun-bei-gong-zuo">准备工作</h2>
|
|
||||||
<ul>
|
|
||||||
<li>1.openwrt 的编译包,由 eSir 大佬编译的三个经典版本:</li>
|
|
||||||
</ul>
|
|
||||||
<p>https://drive.google.com/drive/folders/1uRXg_krKHPrQneI3F2GNcSVRoCgkqESr</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>2.PE 启动盘,这里推荐微PE:https://www.wepe.com.cn/download.html</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>3.img 写盘工具:https://www.roadkil.net/program.php?ProgramID=12#google_vignette</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>4.一个U盘与一台双网口物理机</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>安装流程:</p>
|
|
||||||
<h2 id="yi-jin-ru-pehuan-jing">一、进入PE环境:</h2>
|
|
||||||
<p>1.打开微PE,将其安装进U盘中,安装完成后将 img 工具和 openwrt 包一起放进去;</p>
|
|
||||||
<p>2.将U盘插入目标主机,进入 BIOS-boot 设置U盘优先启动,各主板进入 BIOS 的按键不同,不确定的话建议都试一遍。</p>
|
|
||||||
<h2 id="er-ge-shi-hua-ying-pan-bing-xie-pan">二、格式化硬盘并写盘</h2>
|
|
||||||
<p>1.进入PE环境中,可以看到存在名为“分区助手”的软件,打开它并将目标主机硬盘格式化;注意不要分区!不要分区!不要设置文件系统!否则后续可能无法编译!</p>
|
|
||||||
<p>点击左上角提交并执行</p>
|
|
||||||
<p>2.打开img写盘工具,将openwrt包写入硬盘,注意不要写进U盘里。</p>
|
|
||||||
<h2 id="san-jin-ru-pei-zhi-jie-mian">三、进入配置界面</h2>
|
|
||||||
<p>1.重启系统并快速拔出U盘,避免重新进入PE;这时系统开始运行了。注意Esir固件是不跑码的,无需担心。</p>
|
|
||||||
<p>2.当看到 <code>please press Enter to activate this console</code>这个提示的时候系统就安装完毕了。可使用 passwd 命令设置密码。软路由将自动获取IP地址,随后我们在浏览器中打开该地址,即可看到 Lucl 界面。</p>
|
|
||||||
<h2 id="hou-ji">后记</h2>
|
|
||||||
<p>常用命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span># 更新软件列表
|
|
||||||
</span><span>opkg update
|
|
||||||
</span><span>
|
|
||||||
</span><span># 更新所有 LUCI 插件
|
|
||||||
</span><span>opkg list-upgradable | grep luci- | cut -f 1 -d ' ' | xargs opkg upgrade
|
|
||||||
</span><span>
|
|
||||||
</span><span># 如果要更新所有软件,包括 OpenWRT 内核、固件等
|
|
||||||
</span><span>opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
|
|
||||||
</span><span>
|
|
||||||
</span></code></pre>
|
|
||||||
<p>开源世界还存在着 DD-WERT、Tomato 等系统。正如互联网的发展并非一帆风顺,OpenWRT 也出现过核心开发者出走,另立山头推出 LEDE 等波折,在18年 LEDE 与 openwrt 合并后,通过众多开发者的不懈努力, OpenWRT 有了现在丰富完善的生态。</p>
|
|
||||||
<h2 id="can-kao">参考</h2>
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://openwrt.org/zh/docs/start">Openwrt wiki</a></li>
|
|
||||||
<li><a href="https://openwrt.ai/?target=ipq807x%2Fgeneric&id=xiaomi_ax3600">OpenWrt在线定制编译</a></li>
|
|
||||||
<li><a href="https://www.cnblogs.com/tfel-ypoc/p/17226064.html">openwrt luci 页面无法访问 问题排查</a></li>
|
|
||||||
<li><a href="https://post.smzdm.com/p/axz6369w/">超详细,多图,简单,OpenWRT 设置,IPV6配置</a></li>
|
|
||||||
<li><a href="https://blog.csdn.net/weixin_44548582/article/details/121064734">保姆级-光猫改桥接-路由拨号-openwrt端口转发</a></li>
|
|
||||||
<li><a href="http://www.ttcoder.cn/index.php/2023/07/11/p0/">360T7刷机</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/awesome-pve-mcsm/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">综合工程:PVE安装与MC服务器搭建</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/awesome-android-root/">
|
|
||||||
<span class="button__text">综合工程:安卓刷机与root教程</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,187 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/awesome-podcast-use/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/awesome-podcast-use/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/awesome-podcast-use/">搭建个人信息流:播客收听指北</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-03-06
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/life/">#Life</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 讲起播客,许多人第一反应是喜马拉雅,但其实播客的订阅和收听有许多种方式。本文带你了解订阅播客的各种方式,并告诉你市面上有哪些不错的播客客户端可供选择。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="yi-shen-me-shi-bo-ke">一.什么是播客</h2>
|
|
||||||
<p>播客是一种通过互联网传播音频或视频文件的媒体形式。这个词汇是由“广播”(broadcasting)和“iPod”(一种流行的便携式媒体播放器)两个词组合而成的。播客通常是由个人、组织或公司制作,并通过互联网上的订阅服务分享给观众。</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>定期更新: 播客通常以系列形式发布,每一集都是一个独立的音频或视频文件。制作者会定期发布新的内容,让观众订阅后能够定期收听或观看。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>订阅:观众可以通过订阅播客来自动获取最新的内容。这意味着一旦订阅了某个播客,新的内容就会自动下载到用户的设备上,方便随时收听或观看。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>多样的内容: 播客内容非常多样化,涵盖了几乎所有可能的主题,包括新闻、科技、文化、教育、娱乐等。从个人讲述生活故事到专业领域的讨论,播客的形式和内容都非常灵活。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>低门槛制作:制作播客相对来说不需要太多的专业设备和技能,因此许多个人或小团队可以轻松开始制作自己的播客。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>播客的流行得益于它提供了一种轻松、灵活、个性化的信息传递方式,让人们可以方便地在各种主题上深入了解或娱乐。</p>
|
|
||||||
<h2 id="er-ru-he-ting-bo-ke">二.如何听播客</h2>
|
|
||||||
<p>要收听播客,首先得确定自己所用的平台和客户端,一般有以下几种:</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>使用播客应用: 最常见的方式是使用专门的播客应用程序,这些应用可以在智能手机、平板电脑或计算机上安装。一些常见的播客应用包括 Apple Podcasts(苹果播客)、Spotify、Google Podcasts(谷歌播客)、Pocket Casts等。这些应用通常允许你搜索、订阅和播放播客。像喜马拉雅以及各大云音乐等非泛用型播客客户端,这类软件的特点是收听方便,种类繁多,但一般不开源,也没有 RSS 链接。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>在网页上收听: 许多播客也提供在其官方网站上在线收听的选项。你可以在制作者的网站上找到相应的播客链接,然后直接在浏览器中收听,或者使用浏览器插件。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>通过流媒体服务: 一些流媒体服务,如 Spotify、Apple Music 等,也提供了播客的功能。你可以在这些服务中搜索并订阅你感兴趣的播客。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>通过RSS订阅: 几乎每个独立播客的主播都会反复强调「请使用节目 RSS 链接在 泛用型播客客户端 里订阅节目」,一定程度上有无 RSS 订阅链接是作为独立播客的判断标准。使用 RSS 链接订阅播客其实非常简单——得到节目的 RSS 订阅链接后,将之粘贴到你的播客客户端内(通常是节目的搜索栏或地址栏)即可。大多数播客应用都支持这种方式。注意,例如喜马拉雅、荔枝等平台是没有原生RSS链接的,因此,对第三方服务生成的 RSS 链接要注意鉴别。有些服务提供者会在不告知主播和听众的前提下,私自在节目中间插入广告,非常影响节目收听体验,在使用时请注意甄别。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="san-chang-jian-ke-hu-duan-you-que-dian">三.常见客户端优缺点</h2>
|
|
||||||
<p><code>我个人推荐使用开源的 AntennaPod 。</code></p>
|
|
||||||
<h2 id="si-bo-ke-zi-yuan">四.播客资源</h2>
|
|
||||||
<p><a href="https://tianxianzi.me/2023/12/11/selected_podcast/">天仙子的播客年度总结:播客选录</a></p>
|
|
||||||
<p><a href="https://xyzrank.com/#/">中文播客榜</a></p>
|
|
||||||
<p><a href="https://www.listennotes.com/">Podcast search</a></p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/rss-read/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">搭建个人信息流:RSS阅读指南</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-1/">
|
|
||||||
<span class="button__text">Docker学习笔记(一)</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,280 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/awesome-pve-mcsm/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/awesome-pve-mcsm/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/awesome-pve-mcsm/">综合工程:PVE安装与MC服务器搭建</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-11
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 假期将至,不少家里有闲置设备的小伙伴想尝试开设一个我的世界(Minecraft)服务器,却不知从何下手。本文以 PVE-Debian-MCSM 为主线介绍其部署流程。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="shen-me-shi-pve">什么是PVE?</h2>
|
|
||||||
<p>PVE (全称 Proxmox Virtual Environment) 是一款开源免费的虚拟化环境平台,同时支持KVM 虚拟机和 LXC 容器。它基于 Debian 和 KVM 技术开发,可在一台 PC 或服务器上同时运行Linux、OpenWRT、Windows 等,实现计算、网络、存储一体化解决方案,即所谓的“all in one”。类似的平台还有ESXi、Unraid等。</p>
|
|
||||||
<h2 id="shen-me-shi-mcsm">什么是MCSM?</h2>
|
|
||||||
<p>MCSManager 面板(简称:MCSM 面板)是一款全中文,轻量级,开箱即用,多实例和支持 Docker 的 Minecraft 服务端管理面板。</p>
|
|
||||||
<p>此软件在 Minecraft 和其他游戏社区内中已有一定的流行程度,它可以帮助你集中管理多个物理服务器,动态在任何主机上创建游戏服务端,并且提供安全可靠的多用户权限系统,可以很轻松的帮助你管理多个服务器。
|
|
||||||
具体步骤:安装PVE并优化,开设虚拟机并安装Debian,安装mscm界面并开设实例,配置网络服务。</p>
|
|
||||||
<h2 id="zhun-bei-gong-zuo">准备工作</h2>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>1.PVE镜像,推荐使用7.4版本 https://www.proxmox.com/en/downloads</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>2.Debian镜像:https://mirrors.tuna.tsinghua.edu.cn/debian/dists/ (不建议使用DVD版,会出现奇怪的问题。)</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>3.我们的老伙计Rufus:https://www.423down.com/10080.html</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>4.Purpur1.19 服务端:https://purpurmc.org/</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>5.MC启动器HMCL:https://hmcl.huangyuhui.net/</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>6.Zerotier客户端:https://www.zerotier.com/download/</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="yi-an-zhuang-pvebing-you-hua">一.安装PVE并优化</h2>
|
|
||||||
<p>1.将下载好的镜像用Rufus写入U盘。</p>
|
|
||||||
<p>2.将U盘插到目标主机上面,进入BIOS-boot设置启动顺序。这里我使用二手浪潮服务器X99主板,矿龙电源以及一块128G的SSD固态。注意:大部分服务器主板有机箱入侵检测机制,需要在说明书中找到特定针脚并用导电帽盖上,否则无法开机。</p>
|
|
||||||
<p>3.进入安装界面,选择install;
|
|
||||||
随后跑码,进入如下界面,同意协议:
|
|
||||||
设置硬盘与文件类型,可以选择ext4或者btrfs;
|
|
||||||
选择国家与地区,这里需要手打出China;
|
|
||||||
随后设置密码与邮件,邮件可以随便填:
|
|
||||||
然后设置网络连接,这里插网线就有地址;设置主机名,并记下内网IP地址;
|
|
||||||
检查无误后开始安装:
|
|
||||||
安装完成后 reboot。</p>
|
|
||||||
<p>4.浏览器打开 PVE 地址,进入系统后我们需要给PVE换源。</p>
|
|
||||||
<h2 id="huan-yuan">换源</h2>
|
|
||||||
<p>首先,移除(备份)一下 PVE 原始的官方源 (将 sources.list 改名为 sources.list.bak)</p>
|
|
||||||
<p><code>mv /etc/apt/sources.list /etc/apt/sources.list.bak</code></p>
|
|
||||||
<p>添加国内 Debian 软件源:</p>
|
|
||||||
<p><code>nano /etc/apt/sources.list</code></p>
|
|
||||||
<p>改为</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib
|
|
||||||
</span><span>
|
|
||||||
</span><span>deb-src https://mirrors.ustc.edu.cn/debian/ bookworm main contribe
|
|
||||||
</span><span>
|
|
||||||
</span><span>deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib
|
|
||||||
</span><span>
|
|
||||||
</span><span>deb-src https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib
|
|
||||||
</span></code></pre>
|
|
||||||
<p><code>#编辑文件 pve-no-subscription.list</code></p>
|
|
||||||
<p><code>nano /etc/apt/sources.list.d/pve-no-subscription.list</code></p>
|
|
||||||
<p>内容如下:</p>
|
|
||||||
<p><code>deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription</code></p>
|
|
||||||
<p>屏蔽 PVE 企业源:</p>
|
|
||||||
<p><code>nano /etc/apt/sources.list.d/pve-enterprise.list</code></p>
|
|
||||||
<p>将下面这一行注释掉 (前面加上井号):</p>
|
|
||||||
<p><code>#deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription</code></p>
|
|
||||||
<p>更新测试:</p>
|
|
||||||
<p><code>apt-get update</code></p>
|
|
||||||
<h2 id="er-xin-jian-xu-ni-ji-bing-an-zhuang-debian">二.新建虚拟机并安装Debian</h2>
|
|
||||||
<p>1.找到 local-btrfs(pve),在其中的 ISO 中上传下载好的 Debian 镜像;</p>
|
|
||||||
<p>2.随后创建虚拟机,选择 Debian 镜像并设置 CPU 核数与硬盘、内存大小;</p>
|
|
||||||
<p>3.一路确认后开机进入命令行界面,即可开始Debian安装。我们选择graphical install:</p>
|
|
||||||
<p>4.选择国家和语言,随后自动配置网络;</p>
|
|
||||||
<p>5.设置主机名,跳过域名设置;设置 root 账户名和密码、普通用户账户名与密码;</p>
|
|
||||||
<p>6.对磁盘进行分区,由于是虚拟机我们选择使用整个磁盘;</p>
|
|
||||||
<p>7.安装基本系统,随后将进入包管理器和大组件安装;</p>
|
|
||||||
<p>我们选择清华源,速度较快。注意:Debian 安装时默认开启安全源,这个源是国外的所以下载速度极慢,因此还需要修改配置文件。</p>
|
|
||||||
<p>在安装步骤进入到选择安装的桌面环境和软件时, 键入 Ctrl+Alt+F2 可以看到从图形界面转到了tty命令终端, 键入 Enter
|
|
||||||
这里修改软件源配置文件</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>nano /target/etc/apt/sources.list
|
|
||||||
</span></code></pre>
|
|
||||||
<p>修改debian-security源地址 <code>http://mirrors.ustc.edu.cn </code> 目测最快</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>deb http://mirrors.ustc.edu.cn/debian-security bullseye-security main
|
|
||||||
</span></code></pre>
|
|
||||||
<p>修改后 Ctrl+X 退出保存,然后退出终端重新进入界面继续安装,键入 Ctrl+Alt+F5。</p>
|
|
||||||
<p>下载需要一些时间,此时可以饮口茶先,随后看到如下界面:</p>
|
|
||||||
<p>由于是服务器所以不需要桌面环境:</p>
|
|
||||||
<p>安装 grub 引导:</p>
|
|
||||||
<p>随后安装完成,reboot后进入mscm的安装。</p>
|
|
||||||
<h2 id="san-an-zhuang-mcsmbing-kai-she-shi-li">三.安装MCSM并开设实例</h2>
|
|
||||||
<p><strong>1.开机进入tty1界面</strong></p>
|
|
||||||
<p><strong>2.安装JAVA环境</strong>,不同版本的游戏的 Java 版本也不同。这里我们使用1.19版,需要安装 Java18。</p>
|
|
||||||
<p>安装 wget 和 下载 Java18</p>
|
|
||||||
<p><code>apt install wget && wget http://img.zeruns.tech/down/Java/OpenJDK18U-jre_x64_linux_hotspot_18.0.1_10.tar.gz</code></p>
|
|
||||||
<p>创建安装目录</p>
|
|
||||||
<p><code>mkdir /usr/local/java/</code></p>
|
|
||||||
<p>解压当前目录下的 JDK 压缩文件</p>
|
|
||||||
<p><code>tar -zxvf OpenJDK18U-jre_x64_linux_hotspot_18.0.1_10.tar.gz -C /usr/local/java/</code></p>
|
|
||||||
<p>软链接程序到环境变量中</p>
|
|
||||||
<p><code>ln -sf /usr/local/java/jdk-18.0.1+10-jre/bin/java /usr/bin/java</code></p>
|
|
||||||
<p>测试是否安装正常,显示 <code>openjdk version "18.0.1" 2022-04-19</code> 则为正常</p>
|
|
||||||
<p><code>java -version</code></p>
|
|
||||||
<p><strong>3.端口开发</strong>,面板需要 23333和24444 端口,游戏服务器默认端口是 25565。</p>
|
|
||||||
<p>在 PVE-防火墙中打开它们。如果还是不行,执行如下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>systemctl stop firewalld
|
|
||||||
</span><span>
|
|
||||||
</span><span>systemctl disable firewalld
|
|
||||||
</span><span>
|
|
||||||
</span><span>service iptables stop
|
|
||||||
</span></code></pre>
|
|
||||||
<p>从而关闭防火墙。</p>
|
|
||||||
<p><strong>4.安装面板</strong>,这里使用一键安装命令(注意该脚本仅适用于 AMD64 架构)</p>
|
|
||||||
<p><code>wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup.sh | bash</code></p>
|
|
||||||
<p>执行完成后,使用 <code>systemctl start mcsm-{web,daemon} </code>即可启动面板服务。使用 <code>systemctl enable mcsm-{daemon,web}.service </code>实现开机自启。</p>
|
|
||||||
<p><strong>5.在浏览器中打开该地址</strong>加上23333端口后缀,即可看到面板,账户为root,密码为123456。</p>
|
|
||||||
<p><strong>6.新建实例</strong>,上传 Purpur1.19 服务端,设置名称随后开启实例</p>
|
|
||||||
<p><strong>7.随后我们可以在</strong> 配置文件中设置游戏的相关选项,如关闭正版验证等。</p>
|
|
||||||
<p><strong>8.大功告成</strong>,此时打开 HMCL 启动器,即可加入游戏。</p>
|
|
||||||
<h2 id="si-pei-zhi-lian-ji-wang-luo">四.配置联机网络</h2>
|
|
||||||
<p>1.此时不要忘记需要和小伙伴们一起玩耍。如果你家里有公网固定 IPv4 或者 IPv6,直接输入联机即可;如果没有公网IP,此时就需要进行内网穿透或者DDNS。</p>
|
|
||||||
<p>这里介绍一种名为 zerotier 的工具。</p>
|
|
||||||
<p>2.首先在 https://www.zerotier.com/ 注册并创建一个私有网络;</p>
|
|
||||||
<p>3.首先在虚拟机中安装 curl 命令支持</p>
|
|
||||||
<p><code>apt-get install curl</code></p>
|
|
||||||
<p>4.安装gnupg非对称信息加密系统,通讯所需必备软件</p>
|
|
||||||
<p><code>apt-get install gnupg</code></p>
|
|
||||||
<p>5.安装 ZeroTier</p>
|
|
||||||
<p><code>curl -s https://install.zerotier.com/ | bash</code></p>
|
|
||||||
<p>安装成功后提示如下:</p>
|
|
||||||
<p><code>Success! You are ZeroTier address [ xxxxxxxxx ].</code></p>
|
|
||||||
<p>方括号内地址为类似于MAC地址。</p>
|
|
||||||
<p>6.设定开机自启动(分别执行如下命令)</p>
|
|
||||||
<p><code>systemctl start zerotier-one.service</code></p>
|
|
||||||
<p><code>systemctl enable zerotier-one.service</code></p>
|
|
||||||
<p>7.加入自己的私有网络</p>
|
|
||||||
<p><code>zerotier-cli join xxxxxxxxx</code></p>
|
|
||||||
<p>8.大功告成!此时只要让小伙伴们下载 zerotier 客户端并加入相同的私有网络,即可一起快乐联机!</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/linux-for-pc-6/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Linux-For-PC(六):常用命令与性能分析</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/awesome-openwrt/">
|
|
||||||
<span class="button__text">综合工程:OpenWrt 软路由部署</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,199 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/awesome-win-linux/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/awesome-win-linux/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/awesome-win-linux/">综合工程:Win/linux双系统部署</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-18
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/zong-he-gong-cheng/">#综合工程</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 对于同时有着游戏和Linux环境需求的玩家来说,双系统似乎是其必经之路;而主流设备中两块的硬盘位也为双系统的安装提供了支持。本文以Revios+Garuda的安装为例介绍双系统的安装。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="shen-me-shi-revios"><strong>什么是Revios?</strong></h2>
|
|
||||||
<p>Revios是一款经过精简和优化的Windows发行版(如果可以这么说的话),其特点为在<strong>保证稳定性的情况下,禁用和删除一些系统服务,提高了速度;禁用系统大量隐私收集功能,保护了隐私;禁用部分功能组件,减少磁盘空间占用</strong>。对于需要的组件可以自由添加回来。同生态位下还存在着诸如<strong>AtlasOS、LTSC</strong>等,但Revios在精简和功能性中做的平衡较好。如果你有<strong>游戏需求,同时需要使用Adobe等专业软件</strong>,那么这将是一个好的选择。</p>
|
|
||||||
<h2 id="shen-me-shi-garuda"><strong>什么是Garuda?</strong></h2>
|
|
||||||
<p>Garuda是一款基于arch的Linux发行版,具有高性能的zen内核、绚丽的桌面环境和自动创建快照的功能,在一众发行版(Endeavouros,Manjaro)中受到更多的喜爱(确信)。由于作者使用过其他发行版,故以此新系统为例。</p>
|
|
||||||
<h2 id="zhun-bei-gong-zuo">准备工作:</h2>
|
|
||||||
<ul>
|
|
||||||
<li>我们的新伙计ventoy:<strong>https://www.ventoy.net/cn/download.html</strong></li>
|
|
||||||
<li>revios镜像:<strong>https://www.revi.cc/revios/download/</strong></li>
|
|
||||||
<li>Garuda镜像:<strong>https://garudalinux.org/downloads.html</strong></li>
|
|
||||||
<li>一台主机,这里以我的垃圾佬鞋盒主机为例:</li>
|
|
||||||
</ul>
|
|
||||||
<p><img src="ipfs://bafybeihv6uo7qnvbv2slhb3qygxlddnehczk2bse37wr4syy7h35ve75de" alt="image" /></p>
|
|
||||||
<blockquote>
|
|
||||||
<p>具体步骤:ventoy挂载镜像,安装Revios,安装Garuda,设置引导顺序。</p>
|
|
||||||
</blockquote>
|
|
||||||
<h2 id="yi-gua-zai-jing-xiang-bing-an-zhuang"><strong>一、挂载镜像并安装</strong></h2>
|
|
||||||
<p>1.我们可以发现这次我们有两个镜像需要安装,如果使用Rufus那么需要两次独立的写入;因此这里推荐使用ventoy工具,只要将镜像拖入盘内即可,可以同时部署多个镜像。</p>
|
|
||||||
<p><img src="ipfs://bafkreiaxytflocpss32qkwpkydwvq4fells5x2obworuxmw2lx5tvgluym" alt="image" /></p>
|
|
||||||
<p>2.进入BIOS,设置boot启动顺序,将USB设为首位,保存退出;</p>
|
|
||||||
<p><img src="ipfs://bafybeidov4dng6xq3itissintbi4f7zfjvuka33u3vysr3ogv76kh22tf4" alt="image" /></p>
|
|
||||||
<p><img src="ipfs://bafybeifh74xbrrayjbupeg7fu637blc2i6gked2pg4ewbcbstgfgg3h4c4" alt="image" /></p>
|
|
||||||
<p>3.重启后可以看到如下界面,我们选择revios,正常模式启动:</p>
|
|
||||||
<p><img src="ipfs://bafybeifcdawjoiozjfr6ri2btullxq2srj4gfmdqodfawfdblzsxmonrry" alt="image" /></p>
|
|
||||||
<p>可以看到一个经典的Windows安装界面,我们点击同意协议:</p>
|
|
||||||
<p><img src="ipfs://bafybeifvnevd7gj5vmiv5y6xrs2ftsvmt3ff7ove4g26cvtpuk5tdj5tay" alt="image" /></p>
|
|
||||||
<p>选择目标磁盘安装:</p>
|
|
||||||
<p><img src="ipfs://bafybeibah4akykdcurox32zw5nlwhu4iidarzzro7fpwnyhnqtkvfxsmp4" alt="image" /></p>
|
|
||||||
<p>随后进入设置环节:</p>
|
|
||||||
<p><img src="ipfs://bafybeigh76azpp6bx3zsrguyyjfbymnvzjasbplwgcuaozuqd56dbhbx44" alt="image" /></p>
|
|
||||||
<p>设置安全问题:</p>
|
|
||||||
<p><img src="ipfs://bafybeig7wgyynrupahmipqwywtnnawfmb5w4p2pzsdoznj6traxalfuzle" alt="image" /></p>
|
|
||||||
<p><img src="ipfs://bafybeidaq4bapgzr464bxoipjlyqi2x25tov2tcxcvfmwt24dpbj6nheny" alt="image" /></p>
|
|
||||||
<p>4.重启后进入系统,可以看到非常流畅,甚至在这台2G内存的主机上都毫无问题:</p>
|
|
||||||
<p><img src="ipfs://bafybeibk7fg5zz57mycm3zypmt2zqxnmuxawxv5uaee6r4loeotnjnqrrq" alt="image" /></p>
|
|
||||||
<p>系统自带Brave浏览器,以及一个控制中心,可以调节一些参数。</p>
|
|
||||||
<p><img src="ipfs://bafybeieei3dxysb73ir7ltsitdom3x7kc66tfer7ezegrydugjfdypcqgu" alt="image" /></p>
|
|
||||||
<h2 id="er-an-zhuang-garuda-bing-qi-dong"><strong>二、安装garuda 并启动</strong></h2>
|
|
||||||
<p>1.同样的ventoy我们选择garuda-正常启动,注意先以开源的驱动启动,不然可能会出问题:</p>
|
|
||||||
<p><img src="ipfs://bafybeihrhernqfaii3ny2y7nyrtw6o3k5etov7p2wryi2hdli52jkttauq" alt="image" /></p>
|
|
||||||
<p>跑码后进入欢迎界面,选择install garuda linux:</p>
|
|
||||||
<p><img src="ipfs://bafybeiest7aa6xhojjqotso72uv27nlrn76ijbuhawlfurezbqjc2nctyu" alt="image" /></p>
|
|
||||||
<p>设置语言,地区,键盘</p>
|
|
||||||
<p><img src="ipfs://bafybeif4pwywebc4p3czhuxpabsmtjubnqy7zaslsy2f7h4mky5tpzjsqm" alt="image" /></p>
|
|
||||||
<p>注意这里我们抹除整个磁盘,不要点错成另外一个Windows所在的盘(或者只有一个盘,选择并存安装,有风险),加密系统设置后每次开机得先输入此密码,随后设置以GRUB方式启动:</p>
|
|
||||||
<p><img src="ipfs://bafybeiexcsvci6cj5kde4ex6dw2e3owg4wpldubm5kxlgspdyt2ks6366q" alt="image" /></p>
|
|
||||||
<p>检查无误后开始安装:</p>
|
|
||||||
<p><img src="ipfs://bafybeihq5xht3jsjn2v6o76rmtzuadznsq2dc3fw3aaepda4ipyov2vz7a" alt="image" /></p>
|
|
||||||
<p>2.安装完成后重启,注意需要设置garuda 所在硬盘优先启动,随后可以看到如下界面,说明引导成功;这里是以Grub来进入Windows的boot manager。</p>
|
|
||||||
<p><img src="ipfs://bafybeic465dljbcmzwyj52fpukyvvhmt2obgjihvoood5kdqqqwu3ixmza" alt="image" /></p>
|
|
||||||
<h2 id="hou-ji"><strong>后记</strong></h2>
|
|
||||||
<p>不建议单盘双系统,还因为固态硬盘对两个不同文件系统的运行存在问题,不建议固态多分区也是如此。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/awesome-nas-dsm/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">综合工程:黑群辉NAS极速安装</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/kgnl/">
|
|
||||||
<span class="button__text">乱七八糟:快过年了笑话大全</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1 +0,0 @@
|
|||||||
.button-container{display:table;margin-left:auto;margin-right:auto}button,.button,a.button{position:relative;display:flex;align-items:center;justify-content:center;padding:8px 18px;margin-bottom:5px;text-align:center;border-radius:8px;border:1px solid rgba(0,0,0,0);appearance:none;cursor:pointer;outline:none;}button.outline,.button.outline,a.button.outline{background:rgba(0,0,0,0);box-shadow:none;padding:8px 18px}button.outline :hover,.button.outline :hover,a.button.outline :hover{transform:none;box-shadow:none}button.primary,.button.primary,a.button.primary{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}button.primary:hover,.button.primary:hover,a.button.primary:hover{box-shadow:0 2px 6px rgba(50,50,93,.21),0 1px 3px rgba(0,0,0,.08)}button.link,.button.link,a.button.link{background:none;font-size:1rem}button.small,.button.small,a.button.small{font-size:.8rem}button.wide,.button.wide,a.button.wide{min-width:200px;padding:14px 24px}a.read-more,a.read-more:hover,a.read-more:active{display:inline-flex;background:none;box-shadow:none;padding:0;margin:20px 0;max-width:100%}.code-toolbar{margin-bottom:20px}.code-toolbar .toolbar-item a{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;margin-bottom:5px;text-align:center;font-size:13px;font-weight:500;border-radius:8px;border:1px solid rgba(0,0,0,0);appearance:none;cursor:pointer;outline:none}
|
|
@ -1,190 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/calling-cards/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/calling-cards/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/calling-cards/">乱七八糟:流量卡购买与套路</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-08-24
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/life/">#Life</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 由于临近升学,校园网不尽人意,因此许多小伙伴有了买一张流量卡的计划。本文以三大运营商为例,说明常见流量卡的套路与选择。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="yi-shen-me-shi-liu-liang-qia">一.什么是流量卡</h2>
|
|
||||||
<p>流量卡本质上还是一张 SIM 卡,因为具有大流量、低月租而闻名。</p>
|
|
||||||
<h2 id="er-wei-shen-me-xu-yao-liu-liang-qia">二.为什么需要流量卡</h2>
|
|
||||||
<p>普通卡大多有着长合约和固定归属地,不能轻易更换套餐,且套餐月租费用较高,特别是在5G推行时期,4G的资费不减反升,且速度有所下降。而流量卡动则100G往上,月租在50以下,且可以随时退卡。</p>
|
|
||||||
<h2 id="san-liu-liang-qia-ji-ben-yuan-li">三.流量卡基本原理</h2>
|
|
||||||
<p>由于三大运营商处于半国企状态(自负盈亏),因此在长期亏损下不得不整一些牛马活采用一些策略,比如冗长的条款和隐藏极深的优惠套餐等等。而由于不同地区的经济发展状况不同,部分中西部地区的地区分公司业绩不佳,为了在短期内达到要求往往会和一些地区分销商进行合作,将本地区的电话卡改为优惠的套餐,从而吸引客户。注意:99%所谓的月租19、29等流量卡都是要先缴一笔较多的钱,进而每月返还一点点,实现长期上的低月租,运营商是要短期变现的!</p>
|
|
||||||
<p>那么,是不是我们就没有优惠了呢?其实相对于5元1G、40元10G的资费而言还是非常划算的。</p>
|
|
||||||
<h2 id="si-fen-qing-liu-liang-qia-he-wu-lian-qia">四.分清流量卡和物联卡</h2>
|
|
||||||
<p>部分小伙伴反映被物联卡坑了!这里我们一定要注意,诸如某宝某猫上面的9999G超级流量卡,usb接口的随身WiFi等等不出意外都是物联卡,即为工业设备所使用的卡,一般速度极慢,跑几百KB到1MB;这些卡不能被个人所使用,很可能一段时间后就被封号!且分销商不是正规的三大运营商,随时可能跑路。</p>
|
|
||||||
<h2 id="wu-gou-mai-liu-liang-qia-xu-yao-zhu-yi-de-shi-xiang">五.购买流量卡需要注意的事项</h2>
|
|
||||||
<ul>
|
|
||||||
<li>1.关于靓号</li>
|
|
||||||
</ul>
|
|
||||||
<p>大部分流量卡是不能选号的,因为这类具有优惠套餐的卡大多来自不同地区的前任买家,因此靓号数有限,总不能既有好的号码又有优惠套餐;而这就带来第二个问题:</p>
|
|
||||||
<ul>
|
|
||||||
<li>2.关于号码绑定</li>
|
|
||||||
</ul>
|
|
||||||
<p>作为信息时代的重要识别符,电话卡和身份证几乎同样重要,在前任主人信息意识不强的情况下,其大部分社交媒体、生活服务和各种网站的帐号都会遗留下来,这就需要我们去一一解绑;作者曾经买了一张宁夏的流量卡,结果通过验证和社工成功进入了前主人的微信和淘宝帐号,当然现在已经注销了;部分平台不支持注销的,只能继续使用前号;甚至有概率被前号主的债务人打电话催债;因此我们一定要小心谨慎;</p>
|
|
||||||
<ul>
|
|
||||||
<li>3.关于归属地</li>
|
|
||||||
</ul>
|
|
||||||
<p>由于1中的原因,流量卡的归属地大部分是随机的,比如青海,宁夏等等;这样一来当别人打电话时会看到地址为中国宁夏之类,可能会误以为是诈骗电话;当然这样也有不被看到地址的好处,所谓各有优点。</p>
|
|
||||||
<ul>
|
|
||||||
<li>4.关于信号</li>
|
|
||||||
</ul>
|
|
||||||
<p>真正影响体验的不只是手机基带,还有你所在地区中三大运营商的基站分布;因此,购买之前可以先查看一下你所在地区哪个运营商信号最好,从而对症下药。</p>
|
|
||||||
<ul>
|
|
||||||
<li>5.关于副卡</li>
|
|
||||||
</ul>
|
|
||||||
<p>有些小伙伴在买完流量卡后打算作为主力卡使用,那这样原先的卡套餐就没必要了,可以办理8元保号套餐,让号码可以继续使用。</p>
|
|
||||||
<ul>
|
|
||||||
<li>6.关于注销</li>
|
|
||||||
</ul>
|
|
||||||
<p>每个运营商最多办5张电话卡,因此注销需谨慎;流量卡大部分可以线上异地注销,但也要仔细看清楚条款。</p>
|
|
||||||
<h2 id="liu-shi-ji-cao-zuo">六.实际操作</h2>
|
|
||||||
<p>1.由于线下营业厅不够优惠,因此我们往往要在网络渠道上寻找各个分发渠道,比如知乎回答,淘宝店铺,微信小程序之类。这里以知乎活动为例:</p>
|
|
||||||
<p>可以看到确实非常划算,但是有几个细节:</p>
|
|
||||||
<p>一是激活卡需要预充值,数额较多:二是额外的流量以流量包形式给出,此流量包不同活动获得方式也不同;三是155G中包括定向流量,不能和其他APP混用;四是超额后资费特贵,要小心。</p>
|
|
||||||
<p>注意要实名购卡,且收获地址要足够详细,会有专门的快递小哥和你线下激活,预充值,注意接受电话!</p>
|
|
||||||
<p>2.隐藏的条款:办完卡后进入营业厅的APP,可能不会马上出现,这是因为系统的延迟以及运营商的计时方式,需要在月初才能有全部的流量,后几天按百分比计算,第二个月就正常了。</p>
|
|
||||||
<h2 id="hou-ji">后记</h2>
|
|
||||||
<p>仔细观察条款,不要冲动消费。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/kgnl/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">乱七八糟:快过年了笑话大全</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/accurate-pronunciation/">
|
|
||||||
<span class="button__text">乱七八糟:常见发音错误术语集合</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,610 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/chatogpt/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/chatogpt/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/chatogpt/">乱七八糟:如何高效地向 ChatGPT 提问</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-01-07
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 本文翻译自《The Art of Asking ChatGPT for High-Quality Answers A Complete Guide to Prompt Engineering Techniques》</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="di-yi-zhang-prompt-gong-cheng-ji-shu-jian-jie">第一章:Prompt 工程技术简介</h2>
|
|
||||||
<p>什么是 Prompt 工程?</p>
|
|
||||||
<p>Prompt 工程是创建提示或指导像 ChatGPT 这样的语言模型输出的过程。它允许用户控制模型的输出并生成符合其特定需求的文本。</p>
|
|
||||||
<p>ChatGPT 是一种先进的语言模型,能够生成类似于人类的文本。它建立在 Transformer 架构上,可以处理大量数据并生成高质量的文本。</p>
|
|
||||||
<p>然而,为了从 ChatGPT 中获得最佳结果,重要的是要了解如何正确地提示模型。 提示可以让用户控制模型的输出并生成相关、准确和高质量的文本。 在使用 ChatGPT 时,了解它的能力和限制非常重要。</p>
|
|
||||||
<p>该模型能够生成类似于人类的文本,但如果没有适当的指导,它可能无法始终产生期望的输出。</p>
|
|
||||||
<p>这就是 Prompt 工程的作用,通过提供清晰而具体的指令,您可以引导模型的输出并确保其相关。</p>
|
|
||||||
<p>Prompt 公式是提示的特定格式,通常由三个主要元素组成:</p>
|
|
||||||
<p>任务:对提示要求模型生成的内容进行清晰而简洁的陈述。</p>
|
|
||||||
<p>指令:在生成文本时模型应遵循的指令。</p>
|
|
||||||
<p>角色:模型在生成文本时应扮演的角色。</p>
|
|
||||||
<p>在本书中,我们将探讨可用于 ChatGPT 的各种 Prompt 工程技术。我们将讨论不同类型的提示,以及如何使用它们实现您想要的特定目标。</p>
|
|
||||||
<h2 id="di-er-zhang-zhi-ling-ti-shi-ji-shu">第二章:指令提示技术</h2>
|
|
||||||
<p>现在,让我们开始探索“指令提示技术”,以及如何使用它从ChatGPT中生成高质量的文本。</p>
|
|
||||||
<p>指令提示技术是通过为模型提供具体指令来引导ChatGPT的输出的一种方法。这种技术对于确保输出相关和高质量非常有用。</p>
|
|
||||||
<p>要使用指令提示技术,您需要为模型提供清晰简洁的任务,以及具体的指令以供模型遵循。</p>
|
|
||||||
<p>例如,如果您正在生成客户服务响应,您将提供任务,例如“生成响应客户查询”的指令,例如“响应应该专业且提供准确的信息”。</p>
|
|
||||||
<p>提示公式:“按照以下指示生成[任务]:[指令]”</p>
|
|
||||||
<p>示例:</p>
|
|
||||||
<p>生成客户服务响应:</p>
|
|
||||||
<p>任务:生成响应客户查询</p>
|
|
||||||
<p>指令:响应应该专业且提供准确的信息</p>
|
|
||||||
<p>提示公式:“按照以下指示生成专业且准确的客户查询响应:响应应该专业且提供准确的信息。”</p>
|
|
||||||
<p>生成法律文件:</p>
|
|
||||||
<p>任务:生成法律文件</p>
|
|
||||||
<p>指令:文件应符合相关法律法规</p>
|
|
||||||
<p>提示公式:“按照以下指示生成符合相关法律法规的法律文件:文件应符合相关法律法规。”</p>
|
|
||||||
<p>使用指令提示技术时,重要的是要记住指令应该清晰具体。这将有助于确保输出相关和高质量。可以将指令提示技术与下一章节中解释的“角色提示”和“种子词提示”相结合,以增强ChatGPT的输出。</p>
|
|
||||||
<h2 id="di-san-zhang-jiao-se-ti-shi">第三章:角色提示</h2>
|
|
||||||
<p>角色提示技术是通过为ChatGPT指定一个特定的角色来引导其输出的一种方式。这种技术对于生成针对特定上下文或受众的文本非常有用。</p>
|
|
||||||
<p>要使用角色提示技术,您需要为模型提供一个清晰具体的角色。</p>
|
|
||||||
<p>例如,如果您正在生成客户服务回复,您可以提供一个角色,如“客户服务代表”。</p>
|
|
||||||
<p>提示公式:“作为[角色]生成[任务]”</p>
|
|
||||||
<p>示例:</p>
|
|
||||||
<p>生成客户服务回复:</p>
|
|
||||||
<p>任务:生成对客户查询的回复</p>
|
|
||||||
<p>角色:客户服务代表</p>
|
|
||||||
<p>提示公式:“作为客户服务代表,生成对客户查询的回复。”</p>
|
|
||||||
<p>生成法律文件:</p>
|
|
||||||
<p>任务:生成法律文件</p>
|
|
||||||
<p>角色:律师</p>
|
|
||||||
<p>提示公式:“作为律师,生成法律文件。”</p>
|
|
||||||
<p>将角色提示技术与指令提示和种子词提示结合使用可以增强ChatGPT的输出。</p>
|
|
||||||
<p>下面是一个示例,展示了如何将指令提示、角色提示和种子词提示技术结合使用:</p>
|
|
||||||
<p>任务:为新智能手机生成产品描述</p>
|
|
||||||
<p>指令:描述应该是有信息量的,具有说服力,并突出智能手机的独特功能</p>
|
|
||||||
<p>角色:市场代表 种子词:“创新的”</p>
|
|
||||||
<p>提示公式:“作为市场代表,生成一个有信息量的、有说服力的产品描述,突出新智能手机的创新功能。该智能手机具有以下功能[插入您的功能]”</p>
|
|
||||||
<p>在这个示例中,指令提示用于确保产品描述具有信息量和说服力。角色提示用于确保描述是从市场代表的角度书写的。而种子词提示则用于确保描述侧重于智能手机的创新功能。</p>
|
|
||||||
<h2 id="di-si-zhang-biao-zhun-ti-shi">第四章:标准提示</h2>
|
|
||||||
<p>标准提示是一种简单的方法,通过为模型提供一个特定的任务来引导ChatGPT的输出。例如,如果您想生成一篇新闻文章的摘要,您可以提供一个任务,如“总结这篇新闻文章”。</p>
|
|
||||||
<p>提示公式:“生成一个[任务]”</p>
|
|
||||||
<p>例如:</p>
|
|
||||||
<p>生成新闻文章的摘要:</p>
|
|
||||||
<p>任务:总结这篇新闻文章</p>
|
|
||||||
<p>提示公式:“生成这篇新闻文章的摘要”</p>
|
|
||||||
<p>生成一篇产品评论:</p>
|
|
||||||
<p>任务:为一款新智能手机撰写评论</p>
|
|
||||||
<p>提示公式:“生成这款新智能手机的评论”</p>
|
|
||||||
<p>此外,标准提示可以与其他技术(如角色提示和种子词提示)结合使用,以增强ChatGPT的输出。</p>
|
|
||||||
<p>以下是如何将标准提示、角色提示和种子词提示技术结合使用的示例:</p>
|
|
||||||
<p>任务:为一台新笔记本电脑撰写产品评论</p>
|
|
||||||
<p>说明:评论应客观、信息丰富,强调笔记本电脑的独特特点</p>
|
|
||||||
<p>角色:技术专家</p>
|
|
||||||
<p>种子词:“强大的”</p>
|
|
||||||
<p>提示公式:“作为一名技术专家,生成一个客观而且信息丰富的产品评论,强调新笔记本电脑的强大特点。”</p>
|
|
||||||
<p>在这个示例中,标准提示技术用于确保模型生成产品评论。角色提示用于确保评论是从技术专家的角度写的。而种子词提示用于确保评论侧重于笔记本电脑的强大特点。</p>
|
|
||||||
<h2 id="di-wu-zhang-ling-yi-he-shao-yang-ben-ti-shi">第五章:零、一和少样本提示</h2>
|
|
||||||
<p>零样本、一样本和少样本提示是用于从ChatGPT生成文本的技术,最少或没有任何示例。当特定任务的数据有限或任务是新的且未定义时,这些技术非常有用。</p>
|
|
||||||
<p>当任务没有可用的示例时,使用零样本提示技术。模型提供一个通用任务,根据对任务的理解生成文本。</p>
|
|
||||||
<p>当任务只有一个示例可用时,使用一样本提示技术。模型提供示例,并根据对示例的理解生成文本。</p>
|
|
||||||
<p>当任务只有有限数量的示例可用时,使用少样本提示技术。模型提供示例,并根据对示例的理解生成文本。</p>
|
|
||||||
<p>提示公式:“基于[数量]个示例生成文本”</p>
|
|
||||||
<p>例如:</p>
|
|
||||||
<p>为没有可用示例的新产品编写产品描述:</p>
|
|
||||||
<p>任务:为新的智能手表编写产品描述</p>
|
|
||||||
<p>提示公式:“基于零个示例为这款新智能手表生成产品描述”</p>
|
|
||||||
<p>使用一个示例生成产品比较:</p>
|
|
||||||
<p>任务:将新款智能手机与最新的iPhone进行比较</p>
|
|
||||||
<p>提示公式:“使用一个示例(最新的iPhone)为这款新智能手机生成产品比较”</p>
|
|
||||||
<p>使用少量示例生成产品评论:</p>
|
|
||||||
<p>任务:为新的电子阅读器撰写评论</p>
|
|
||||||
<p>提示公式:“使用少量示例(3个其他电子阅读器)为这款新电子阅读器生成评论”</p>
|
|
||||||
<p>这些技术可用于根据模型对任务或提供的示例的理解生成文本。</p>
|
|
||||||
<h2 id="di-liu-zhang-rang-wo-men-si-kao-yi-xia-ti-shi">第六章:“让我们思考一下”提示</h2>
|
|
||||||
<p>“让我们思考一下”提示是一种技巧,可鼓励ChatGPT生成反思和思考性的文本。这种技术适用于撰写论文、诗歌或创意写作等任务。</p>
|
|
||||||
<p>“让我们思考一下”提示的公式非常简单,即“让我们思考一下”后跟一个主题或问题。</p>
|
|
||||||
<p>例如:</p>
|
|
||||||
<p>生成一篇反思性论文:</p>
|
|
||||||
<p>任务:就个人成长主题写一篇反思性论文</p>
|
|
||||||
<p>提示公式:“让我们思考一下:个人成长”</p>
|
|
||||||
<p>生成一首诗:</p>
|
|
||||||
<p>任务:写一首关于季节变化的诗</p>
|
|
||||||
<p>提示公式:“让我们思考一下:季节变化”</p>
|
|
||||||
<p>这个提示要求对特定主题或想法展开对话或讨论。发言者邀请ChatGPT参与讨论相关主题。</p>
|
|
||||||
<p>模型提供了一个提示,作为对话或文本生成的起点。</p>
|
|
||||||
<p>然后,模型使用其训练数据和算法生成与提示相关的响应。这种技术允许ChatGPT根据提供的提示生成上下文适当且连贯的文本。</p>
|
|
||||||
<p>要使用“让我们思考一下提示”技术与ChatGPT,您可以遵循以下步骤:</p>
|
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
<p>确定您要讨论的主题或想法。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>制定一个明确表达主题或想法的提示,并开始对话或文本生成。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>用“让我们思考”或“让我们讨论”开头的提示,表明您正在启动对话或讨论。</p>
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
<p>以下是使用此技术的一些提示示例:</p>
|
|
||||||
<p>提示:“让我们思考气候变化对农业的影响”</p>
|
|
||||||
<p>提示:“让我们讨论人工智能的当前状态”</p>
|
|
||||||
<p>提示:“让我们谈谈远程工作的好处和缺点” 您还可以添加开放式问题、陈述或一段您希望模型继续或扩展的文本。</p>
|
|
||||||
<p>提供提示后,模型将使用其训练数据和算法生成与提示相关的响应,并以连贯的方式继续对话。</p>
|
|
||||||
<p>这种独特的提示有助于ChatGPT以不同的视角和角度给出答案,从而产生更具动态性和信息性的段落。</p>
|
|
||||||
<p>使用提示的步骤简单易行,可以真正提高您的写作水平。尝试一下,看看效果如何吧。</p>
|
|
||||||
<h2 id="di-qi-zhang-zi-qia-ti-shi">第七章:自洽提示</h2>
|
|
||||||
<p>自洽提示是一种技术,用于确保ChatGPT的输出与提供的输入一致。这种技术对于事实核查、数据验证或文本生成中的一致性检查等任务非常有用。</p>
|
|
||||||
<p>自洽提示的提示公式是输入文本后跟着指令“请确保以下文本是自洽的”。</p>
|
|
||||||
<p>或者,可以提示模型生成与提供的输入一致的文本。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:文本生成</p>
|
|
||||||
<p>任务:生成产品评论</p>
|
|
||||||
<p>指令:评论应与输入中提供的产品信息一致</p>
|
|
||||||
<p>提示公式:“生成与以下产品信息一致的产品评论[插入产品信息]”</p>
|
|
||||||
<p>示例2:文本摘要</p>
|
|
||||||
<p>任务:概括一篇新闻文章</p>
|
|
||||||
<p>指令:摘要应与文章中提供的信息一致</p>
|
|
||||||
<p>提示公式:“用与提供的信息一致的方式概括以下新闻文章[插入新闻文章]”</p>
|
|
||||||
<p>示例3:文本完成</p>
|
|
||||||
<p>任务:完成一个句子</p>
|
|
||||||
<p>指令:完成应与输入中提供的上下文一致</p>
|
|
||||||
<p>提示公式:“以与提供的上下文一致的方式完成以下句子[插入句子]”</p>
|
|
||||||
<p>示例4:</p>
|
|
||||||
<ol>
|
|
||||||
<li>事实核查:</li>
|
|
||||||
</ol>
|
|
||||||
<p>任务:检查给定新闻文章的一致性</p>
|
|
||||||
<p>输入文本:“文章中陈述该城市的人口为500万,但后来又说该城市的人口为700万。”</p>
|
|
||||||
<p>提示公式:“请确保以下文本是自洽的:文章中陈述该城市的人口为500万,但后来又说该城市的人口为700万。”</p>
|
|
||||||
<ol start="2">
|
|
||||||
<li>数据验证:</li>
|
|
||||||
</ol>
|
|
||||||
<p>任务:检查给定数据集的一致性</p>
|
|
||||||
<p>输入文本:“数据显示7月份的平均温度为30度,但最低温度记录为20度。”</p>
|
|
||||||
<p>提示公式:“请确保以下文本是自洽的:数据显示7月份的平均温度为30度,但最低温度记录为20度。”</p>
|
|
||||||
<h2 id="di-ba-zhang-chong-zi-ci-ti-shi">第八章:种子词提示</h2>
|
|
||||||
<p>种子词提示是一种通过提供特定的种子词或短语来控制ChatGPT输出的技术。种子词提示的提示公式是种子词或短语,后跟指令“请根据以下种子词生成文本”。</p>
|
|
||||||
<p>示例:</p>
|
|
||||||
<p>文本生成:</p>
|
|
||||||
<p>任务:编写一篇有关龙的故事</p>
|
|
||||||
<p>种子词:“龙”</p>
|
|
||||||
<p>提示公式:“请根据以下种子词生成文本:龙”</p>
|
|
||||||
<p>语言翻译:</p>
|
|
||||||
<p>任务:将一句话从英语翻译成西班牙语</p>
|
|
||||||
<p>种子词:“你好”</p>
|
|
||||||
<p>提示公式:“请根据以下种子词生成文本:你好”</p>
|
|
||||||
<p>这种技术允许模型生成与种子词相关的文本并对其进行扩展。这是一种控制模型生成文本与某个特定主题或背景相关的方式。</p>
|
|
||||||
<p>种子词提示可以与角色提示和指令提示相结合,以创建更具体和有针对性的生成文本。通过提供种子词或短语,模型可以生成与该种子词或短语相关的文本,并通过提供有关期望输出和角色的信息,模型可以以特定于角色或指令的风格或语气生成文本。这样可以更好地控制生成的文本,并可用于各种应用程序。</p>
|
|
||||||
<p>以下是提示示例及其公式:</p>
|
|
||||||
<p>示例1:文本生成</p>
|
|
||||||
<p>任务:编写一首诗</p>
|
|
||||||
<p>指令:诗应与种子词“爱”相关,并以十四行诗的形式书写。</p>
|
|
||||||
<p>角色:诗人</p>
|
|
||||||
<p>提示公式:“作为诗人,根据以下种子词生成与“爱”相关的十四行诗:”</p>
|
|
||||||
<p>示例2:文本完成</p>
|
|
||||||
<p>任务:完成一句话</p>
|
|
||||||
<p>指令:完成应与种子词“科学”相关,并以研究论文的形式书写。</p>
|
|
||||||
<p>角色:研究员</p>
|
|
||||||
<ul>
|
|
||||||
<li>提示公式:“作为研究员,请在与种子词“科学”相关且以研究论文的形式书写的情况下完成以下句子:[插入句子]”</li>
|
|
||||||
</ul>
|
|
||||||
<p>示例3:文本摘要</p>
|
|
||||||
<p>任务:摘要一篇新闻文章</p>
|
|
||||||
<p>指令:摘要应与种子词“政治”相关,并以中立和公正的语气书写。</p>
|
|
||||||
<p>角色:记者</p>
|
|
||||||
<ul>
|
|
||||||
<li>提示公式:“作为记者,请以中立和公正的语气摘要以下新闻文章,与种子词“政治”相关:[插入新闻文章]”</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="di-jiu-zhang-zhi-shi-sheng-cheng-ti-shi">第九章:知识生成提示</h2>
|
|
||||||
<p>知识生成提示是一种从ChatGPT中引出新的、原创的信息的技术。</p>
|
|
||||||
<p>知识生成提示的公式是“请生成关于X的新的和原创的信息”,其中X是感兴趣的主题。</p>
|
|
||||||
<p>这是一种利用模型预先存在的知识来生成新的信息或回答问题的技术。</p>
|
|
||||||
<p>要将此提示与ChatGPT一起使用,需要将问题或主题作为输入提供给模型,以及指定所生成文本的任务或目标的提示。</p>
|
|
||||||
<p>提示应包括有关所需输出的信息,例如要生成的文本类型以及任何特定的要求或限制。</p>
|
|
||||||
<p>以下是提示示例及其公式:</p>
|
|
||||||
<p>示例1:知识生成</p>
|
|
||||||
<p>任务:生成有关特定主题的新信息</p>
|
|
||||||
<p>说明:生成的信息应准确且与主题相关</p>
|
|
||||||
<p>提示公式:“生成有关[特定主题]的新的准确信息”</p>
|
|
||||||
<p>示例2:问答</p>
|
|
||||||
<p>任务:回答问题</p>
|
|
||||||
<p>说明:答案应准确且与问题相关</p>
|
|
||||||
<p>提示公式:“回答以下问题:[插入问题]”</p>
|
|
||||||
<p>示例3:知识整合</p>
|
|
||||||
<p>任务:将新信息与现有知识整合</p>
|
|
||||||
<p>说明:整合应准确且与主题相关</p>
|
|
||||||
<p>提示公式:“将以下信息与有关[特定主题]的现有知识整合:[插入新信息]”</p>
|
|
||||||
<p>示例4:数据分析</p>
|
|
||||||
<p>任务:从给定的数据集中生成有关客户行为的见解</p>
|
|
||||||
<p>提示公式:“请从这个数据集中生成有关客户行为的新的和原创的信息”</p>
|
|
||||||
<h2 id="di-shi-zhang-zhi-shi-zheng-he-ti-shi">第十章:知识整合提示</h2>
|
|
||||||
<p>这种技术利用模型的现有知识来整合新信息或连接不同的信息片段。</p>
|
|
||||||
<p>这种技术对于将现有知识与新信息相结合,以生成更全面的特定主题的理解非常有用。</p>
|
|
||||||
<p>如何与ChatGPT一起使用:</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>模型应该提供新信息和现有知识作为输入,以及指定生成文本的任务或目标的提示。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>提示应包括有关所需输出的信息,例如要生成的文本类型以及任何特定的要求或限制。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:知识整合</p>
|
|
||||||
<p>任务:将新信息与现有知识整合</p>
|
|
||||||
<p>说明:整合应准确且与主题相关</p>
|
|
||||||
<p>提示公式:“将以下信息与关于[具体主题]的现有知识整合:[插入新信息]”</p>
|
|
||||||
<p>示例2:连接信息片段</p>
|
|
||||||
<p>任务:连接不同的信息片段</p>
|
|
||||||
<p>说明:连接应相关且逻辑清晰</p>
|
|
||||||
<p>提示公式:“以相关且逻辑清晰的方式连接以下信息片段:[插入信息1] [插入信息2]”</p>
|
|
||||||
<p>示例3:更新现有知识</p>
|
|
||||||
<p>任务:使用新信息更新现有知识</p>
|
|
||||||
<p>说明:更新的信息应准确且相关</p>
|
|
||||||
<p>提示公式:“使用以下信息更新[具体主题]的现有知识:[插入新信息]”</p>
|
|
||||||
<h2 id="di-shi-yi-zhang-duo-xiang-xuan-ze-ti-shi">第十一章:多项选择提示</h2>
|
|
||||||
<p>这种技术向模型提供一个问题或任务以及一组预定义的选项作为潜在答案。</p>
|
|
||||||
<p>该技术对于生成仅限于特定选项集的文本非常有用,可用于问答、文本完成和其他任务。模型可以生成仅限于预定义选项的文本。</p>
|
|
||||||
<p>要使用ChatGPT的多项选择提示,需要向模型提供一个问题或任务作为输入,以及一组预定义的选项作为潜在答案。提示还应包括有关所需输出的信息,例如要生成的文本类型以及任何特定要求或限制。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:问答</p>
|
|
||||||
<p>任务:回答一个多项选择题</p>
|
|
||||||
<p>说明:答案应该是预定义的选项之一</p>
|
|
||||||
<p>提示公式:“通过选择以下选项之一回答以下问题:[插入问题] [插入选项1] [插入选项2] [插入选项3]”</p>
|
|
||||||
<p>示例2:文本完成</p>
|
|
||||||
<p>任务:使用预定义选项之一完成句子</p>
|
|
||||||
<p>说明:完成应该是预定义的选项之一</p>
|
|
||||||
<p>提示公式:“通过选择以下选项之一完成以下句子:[插入句子] [插入选项1] [插入选项2] [插入选项3]”</p>
|
|
||||||
<p>示例3:情感分析</p>
|
|
||||||
<p>任务:将文本分类为积极、中立或消极</p>
|
|
||||||
<p>说明:分类应该是预定义的选项之一</p>
|
|
||||||
<p>提示公式:“通过选择以下选项之一,将以下文本分类为积极、中立或消极:[插入文本] [积极] [中立] [消极]”</p>
|
|
||||||
<h2 id="di-shi-er-zhang-ke-jie-shi-de-ruan-ti-shi">第十二章:可解释的软提示</h2>
|
|
||||||
<p>可解释的软提示是一种技术,可以在提供一定的灵活性的同时控制模型生成的文本。它通过提供一组受控输入和关于所需输出的附加信息来实现。这种技术可以生成更具解释性和可控性的生成文本。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:文本生成</p>
|
|
||||||
<p>任务:生成一个故事</p>
|
|
||||||
<p>指令:故事应基于一组给定的角色和特定的主题</p>
|
|
||||||
<p>提示公式:“基于以下角色生成故事:[插入角色]和主题:[插入主题]”</p>
|
|
||||||
<p>示例2:文本完成</p>
|
|
||||||
<p>任务:完成一句话</p>
|
|
||||||
<p>指令:完成应以特定作者的风格为基础</p>
|
|
||||||
<p>提示公式:“以[特定作者]的风格完成以下句子:[插入句子]”</p>
|
|
||||||
<p>示例3:语言建模</p>
|
|
||||||
<p>任务:以特定风格生成文本</p>
|
|
||||||
<p>指令:文本应以特定时期的风格为基础</p>
|
|
||||||
<p>提示公式:“以[特定时期]的风格生成文本:[插入上下文]”</p>
|
|
||||||
<h2 id="di-shi-san-zhang-kong-zhi-sheng-cheng-ti-shi">第十三章:控制生成提示</h2>
|
|
||||||
<p>控制生成提示是一种技术,可让模型在生成文本时对输出进行高度控制。</p>
|
|
||||||
<p>这可以通过提供一组特定的输入来实现,例如模板、特定词汇或一组约束条件,这些输入可用于指导生成过程。</p>
|
|
||||||
<p>以下是一些示例和它们的公式:</p>
|
|
||||||
<p>示例1:文本生成</p>
|
|
||||||
<p>任务:生成一个故事</p>
|
|
||||||
<p>说明:该故事应基于特定的模板</p>
|
|
||||||
<p>提示公式:“根据以下模板生成故事:[插入模板]”</p>
|
|
||||||
<p>示例2:文本补全</p>
|
|
||||||
<p>任务:完成一句话</p>
|
|
||||||
<p>说明:完成应使用特定的词汇</p>
|
|
||||||
<p>提示公式:“使用以下词汇完成以下句子:[插入词汇]:[插入句子]”</p>
|
|
||||||
<p>示例3:语言建模</p>
|
|
||||||
<p>任务:以特定风格生成文本</p>
|
|
||||||
<p>说明:文本应遵循一组特定的语法规则</p>
|
|
||||||
<p>提示公式:“生成遵循以下语法规则的文本:[插入规则]:[插入上下文]”</p>
|
|
||||||
<p>通过提供一组特定的输入来指导生成过程,控制生成提示使得生成的文本更具可控性和可预测性。</p>
|
|
||||||
<h2 id="di-shi-si-zhang-wen-da-ti-shi">第十四章:问答提示</h2>
|
|
||||||
<p>问答提示是一种技术,可以让模型生成回答特定问题或任务的文本。通过将问题或任务与可能与问题或任务相关的任何其他信息一起作为输入提供给模型来实现此目的。</p>
|
|
||||||
<p>一些提示示例及其公式如下:</p>
|
|
||||||
<p>示例1:事实问题回答</p>
|
|
||||||
<p>任务:回答一个事实性问题</p>
|
|
||||||
<p>说明:答案应准确且相关</p>
|
|
||||||
<p>提示公式:“回答以下事实问题:[插入问题]”</p>
|
|
||||||
<p>示例2:定义</p>
|
|
||||||
<p>任务:提供一个词的定义</p>
|
|
||||||
<p>说明:定义应准确</p>
|
|
||||||
<p>提示公式:“定义以下词汇:[插入单词]”</p>
|
|
||||||
<p>示例3:信息检索</p>
|
|
||||||
<p>任务:从特定来源检索信息</p>
|
|
||||||
<p>说明:检索到的信息应相关</p>
|
|
||||||
<p>提示公式:“从以下来源检索有关[特定主题]的信息:[插入来源]” 这对于问答和信息检索等任务非常有用。</p>
|
|
||||||
<h2 id="di-shi-wu-zhang-gai-shu-ti-shi">第十五章:概述提示</h2>
|
|
||||||
<p>概述提示是一种技术,允许模型在保留其主要思想和信息的同时生成给定文本的较短版本。</p>
|
|
||||||
<p>这可以通过将较长的文本作为输入提供给模型并要求其生成该文本的摘要来实现。</p>
|
|
||||||
<p>这种技术对于文本概述和信息压缩等任务非常有用。</p>
|
|
||||||
<p>如何在ChatGPT中使用:</p>
|
|
||||||
<p>应该向模型提供较长的文本作为输入,并要求其生成该文本的摘要。</p>
|
|
||||||
<p>提示还应包括有关所需输出的信息,例如摘要的所需长度和任何特定要求或限制。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:文章概述</p>
|
|
||||||
<p>任务:概述新闻文章</p>
|
|
||||||
<p>说明:摘要应是文章主要观点的简要概述</p>
|
|
||||||
<p>提示公式:“用一句简短的话概括以下新闻文章:[插入文章]”</p>
|
|
||||||
<p>示例2:会议记录</p>
|
|
||||||
<p>任务:概括会议记录</p>
|
|
||||||
<p>说明:摘要应突出会议的主要决策和行动</p>
|
|
||||||
<p>提示公式:“通过列出主要决策和行动来总结以下会议记录:[插入记录]”</p>
|
|
||||||
<p>示例3:书籍摘要</p>
|
|
||||||
<p>任务:总结一本书</p>
|
|
||||||
<p>说明:摘要应是书的主要观点的简要概述</p>
|
|
||||||
<p>提示公式:“用一段简短的段落总结以下书籍:[插入书名]”</p>
|
|
||||||
<h2 id="di-shi-liu-zhang-dui-hua-ti-shi">第十六章:对话提示</h2>
|
|
||||||
<p>对话提示是一种技术,允许模型生成模拟两个或更多实体之间对话的文本。通过为模型提供一个上下文和一组角色或实体,以及它们的角色和背景,并要求模型在它们之间生成对话。</p>
|
|
||||||
<p>因此,应为模型提供上下文和一组角色或实体,以及它们的角色和背景。还应向模型提供有关所需输出的信息,例如对话或交谈的类型以及任何特定的要求或限制。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:对话生成</p>
|
|
||||||
<p>任务:生成两个角色之间的对话</p>
|
|
||||||
<p>说明:对话应自然且与给定上下文相关</p>
|
|
||||||
<p>提示公式:“在以下情境中生成以下角色之间的对话[插入角色]”</p>
|
|
||||||
<p>示例2:故事写作</p>
|
|
||||||
<p>任务:在故事中生成对话</p>
|
|
||||||
<p>说明:对话应与故事的角色和事件一致</p>
|
|
||||||
<p>提示公式:“在以下故事中生成以下角色之间的对话[插入故事]”</p>
|
|
||||||
<p>示例3:聊天机器人开发</p>
|
|
||||||
<p>任务:为客服聊天机器人生成对话</p>
|
|
||||||
<p>说明:对话应专业且提供准确的信息</p>
|
|
||||||
<p>提示公式:“在客户询问[插入主题]时,为客服聊天机器人生成专业和准确的对话”</p>
|
|
||||||
<p>因此,这种技术对于对话生成、故事写作和聊天机器人开发等任务非常有用。</p>
|
|
||||||
<h2 id="di-shi-qi-zhang-dui-kang-xing-ti-shi">第十七章:对抗性提示</h2>
|
|
||||||
<p>对抗性提示是一种技术,它允许模型生成抵抗某些类型的攻击或偏见的文本。这种技术可用于训练更为稳健和抵抗某些类型攻击或偏见的模型。</p>
|
|
||||||
<p>要在ChatGPT中使用对抗性提示,需要为模型提供一个提示,该提示旨在使模型难以生成符合期望输出的文本。提示还应包括有关所需输出的信息,例如要生成的文本类型和任何特定要求或约束。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:用于文本分类的对抗性提示</p>
|
|
||||||
<p>任务:生成被分类为特定标签的文本</p>
|
|
||||||
<p>说明:生成的文本应难以分类为特定标签</p>
|
|
||||||
<p>提示公式:“生成难以分类为[插入标签]的文本”</p>
|
|
||||||
<p>示例2:用于情感分析的对抗性提示</p>
|
|
||||||
<p>任务:生成难以分类为特定情感的文本</p>
|
|
||||||
<p>说明:生成的文本应难以分类为特定情感</p>
|
|
||||||
<p>提示公式:“生成难以分类为具有[插入情感]情感的文本”</p>
|
|
||||||
<p>示例3:用于语言翻译的对抗性提示</p>
|
|
||||||
<p>任务:生成难以翻译的文本</p>
|
|
||||||
<p>说明:生成的文本应难以翻译为目标语言</p>
|
|
||||||
<p>提示公式:“生成难以翻译为[插入目标语言]的文本”</p>
|
|
||||||
<h2 id="di-shi-ba-zhang-ju-lei-ti-shi">第十八章:聚类提示</h2>
|
|
||||||
<p>聚类提示是一种技术,它可以让模型根据某些特征或特点将相似的数据点分组在一起。</p>
|
|
||||||
<p>通过提供一组数据点并要求模型根据某些特征或特点将它们分组成簇,可以实现这一目标。</p>
|
|
||||||
<p>这种技术在数据分析、机器学习和自然语言处理等任务中非常有用。</p>
|
|
||||||
<p>如何在ChatGPT中使用:</p>
|
|
||||||
<p>应该向模型提供一组数据点,并要求它根据某些特征或特点将它们分组成簇。提示还应包括有关所需输出的信息,例如要生成的簇数和任何特定的要求或约束。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:客户评论的聚类</p>
|
|
||||||
<p>任务:将相似的客户评论分组在一起</p>
|
|
||||||
<p>说明:应根据情感将评论分组</p>
|
|
||||||
<p>提示公式:“将以下客户评论根据情感分组成簇:[插入评论]”</p>
|
|
||||||
<p>示例2:新闻文章的聚类</p>
|
|
||||||
<p>任务:将相似的新闻文章分组在一起</p>
|
|
||||||
<p>说明:应根据主题将文章分组</p>
|
|
||||||
<p>提示公式:“将以下新闻文章根据主题分组成簇:[插入文章]”</p>
|
|
||||||
<p>示例3:科学论文的聚类</p>
|
|
||||||
<p>任务:将相似的科学论文分组在一起</p>
|
|
||||||
<p>说明:应根据研究领域将论文分组</p>
|
|
||||||
<p>提示公式:“将以下科学论文根据研究领域分组成簇:[插入论文]”</p>
|
|
||||||
<h2 id="di-shi-jiu-zhang-qiang-hua-xue-xi-ti-shi">第十九章:强化学习提示</h2>
|
|
||||||
<p>强化学习提示是一种技术,可以使模型从过去的行动中学习,并随着时间的推移提高其性能。要在ChatGPT中使用强化学习提示,需要为模型提供一组输入和奖励,并允许其根据接收到的奖励调整其行为。提示还应包括有关期望输出的信息,例如要完成的任务以及任何特定要求或限制。这种技术对于决策制定、游戏玩法和自然语言生成等任务非常有用。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:用于文本生成的强化学习</p>
|
|
||||||
<p>任务:生成与特定风格一致的文本</p>
|
|
||||||
<p>说明:模型应根据为生成与特定风格一致的文本而接收到的奖励来调整其行为</p>
|
|
||||||
<p>提示公式:“使用强化学习来生成与以下风格一致的文本[插入风格]”</p>
|
|
||||||
<p>示例2:用于语言翻译的强化学习</p>
|
|
||||||
<p>任务:将文本从一种语言翻译成另一种语言</p>
|
|
||||||
<p>说明:模型应根据为生成准确翻译而接收到的奖励来调整其行为</p>
|
|
||||||
<p>提示公式:“使用强化学习将以下文本[插入文本]从[插入语言]翻译成[插入语言]”</p>
|
|
||||||
<p>示例3:用于问答的强化学习</p>
|
|
||||||
<p>任务:回答问题</p>
|
|
||||||
<p>说明:模型应根据为生成准确答案而接收到的奖励来调整其行为</p>
|
|
||||||
<p>提示公式:“使用强化学习来回答以下问题[插入问题]”</p>
|
|
||||||
<h2 id="di-er-shi-zhang-ke-cheng-xue-xi-ti-shi">第二十章:课程学习提示</h2>
|
|
||||||
<p>课程学习是一种技术,允许模型通过先训练简单任务,逐渐增加难度来学习复杂任务。</p>
|
|
||||||
<p>要在ChatGPT中使用课程学习提示,模型应该提供一系列任务,这些任务逐渐增加难度。</p>
|
|
||||||
<p>提示还应包括有关期望输出的信息,例如要完成的最终任务以及任何特定要求或约束条件。</p>
|
|
||||||
<p>此技术对自然语言处理、图像识别和机器学习等任务非常有用。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:用于文本生成的课程学习</p>
|
|
||||||
<p>任务:生成与特定风格一致的文本</p>
|
|
||||||
<p>说明:模型应该在移动到更复杂的风格之前先在简单的风格上进行训练。</p>
|
|
||||||
<p>提示公式:“使用课程学习来生成与以下风格[插入风格]一致的文本,按照以下顺序[插入顺序]。”</p>
|
|
||||||
<p>示例2:用于语言翻译的课程学习</p>
|
|
||||||
<p>任务:将文本从一种语言翻译成另一种语言</p>
|
|
||||||
<p>说明:模型应该在移动到更复杂的语言之前先在简单的语言上进行训练。</p>
|
|
||||||
<p>提示公式:“使用课程学习将以下语言[插入语言]的文本翻译成以下顺序[插入顺序]。”</p>
|
|
||||||
<p>示例3:用于问题回答的课程学习</p>
|
|
||||||
<p>任务:回答问题</p>
|
|
||||||
<p>说明:模型应该在移动到更复杂的问题之前先在简单的问题上进行训练。</p>
|
|
||||||
<p>提示公式:“使用课程学习来回答以下问题[插入问题],按照以下顺序[插入顺序]生成答案。”</p>
|
|
||||||
<h2 id="di-er-shi-yi-zhang-qing-gan-fen-xi-ti-shi">第二十一章:情感分析提示</h2>
|
|
||||||
<p>情感分析是一种技术,允许模型确定文本的情绪色彩或态度,例如它是积极的、消极的还是中立的。</p>
|
|
||||||
<p>要在ChatGPT中使用情感分析提示,模型应该提供一段文本并要求根据其情感分类。</p>
|
|
||||||
<p>提示还应包括关于所需输出的信息,例如要检测的情感类型(例如积极的、消极的、中立的)和任何特定要求或约束条件。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:客户评论的情感分析</p>
|
|
||||||
<p>任务:确定客户评论的情感</p>
|
|
||||||
<p>说明:模型应该将评论分类为积极的、消极的或中立的</p>
|
|
||||||
<p>提示公式:“对以下客户评论进行情感分析[插入评论],并将它们分类为积极的、消极的或中立的。”</p>
|
|
||||||
<p>示例2:推文的情感分析</p>
|
|
||||||
<p>任务:确定推文的情感</p>
|
|
||||||
<p>说明:模型应该将推文分类为积极的、消极的或中立的</p>
|
|
||||||
<p>提示公式:“对以下推文进行情感分析[插入推文],并将它们分类为积极的、消极的或中立的。”</p>
|
|
||||||
<p>示例3:产品评论的情感分析</p>
|
|
||||||
<p>任务:确定产品评论的情感</p>
|
|
||||||
<p>说明:模型应该将评论分类为积极的、消极的或中立的</p>
|
|
||||||
<p>提示公式:“对以下产品评论进行情感分析[插入评论],并将它们分类为积极的、消极的或中立的。”</p>
|
|
||||||
<p>这种技术对自然语言处理、客户服务和市场研究等任务非常有用。</p>
|
|
||||||
<h2 id="di-er-shi-er-zhang-ming-ming-shi-ti-shi-bie-ti-shi">第二十二章:命名实体识别提示</h2>
|
|
||||||
<p>命名实体识别(NER)是一种技术,它可以使模型识别和分类文本中的命名实体,例如人名、组织机构、地点和日期等。</p>
|
|
||||||
<p>要在ChatGPT中使用命名实体识别提示,需要向模型提供一段文本,并要求它识别和分类文本中的命名实体。</p>
|
|
||||||
<p>提示还应包括有关所需输出的信息,例如要识别的命名实体类型(例如人名、组织机构、地点、日期)以及任何特定要求或约束条件。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:新闻文章中的命名实体识别</p>
|
|
||||||
<p>任务:在新闻文章中识别和分类命名实体</p>
|
|
||||||
<p>说明:模型应识别和分类人名、组织机构、地点和日期</p>
|
|
||||||
<p>提示公式:“在以下新闻文章[插入文章]上执行命名实体识别,并识别和分类人名、组织机构、地点和日期。”</p>
|
|
||||||
<p>示例2:法律文件中的命名实体识别</p>
|
|
||||||
<p>任务:在法律文件中识别和分类命名实体</p>
|
|
||||||
<p>说明:模型应识别和分类人名、组织机构、地点和日期</p>
|
|
||||||
<p>提示公式:“在以下法律文件[插入文件]上执行命名实体识别,并识别和分类人名、组织机构、地点和日期。”</p>
|
|
||||||
<p>示例3:研究论文中的命名实体识别</p>
|
|
||||||
<p>任务:在研究论文中识别和分类命名实体</p>
|
|
||||||
<p>说明:模型应识别和分类人名、组织机构、地点和日期</p>
|
|
||||||
<p>提示公式:“在以下研究论文[插入论文]上执行命名实体识别,并识别和分类人名、组织机构、地点和日期。”</p>
|
|
||||||
<h2 id="di-er-shi-san-zhang-wen-ben-fen-lei-ti-shi">第二十三章:文本分类提示</h2>
|
|
||||||
<p>文本分类是一种技术,它可以让模型将文本分成不同的类别。这种技术对于自然语言处理、文本分析和情感分析等任务非常有用。</p>
|
|
||||||
<p>需要注意的是,文本分类和情感分析是不同的。情感分析特别关注于确定文本中表达的情感或情绪。这可能包括确定文本表达了积极、消极还是中性的情感。情感分析通常用于客户评论、社交媒体帖子和其他需要表达情感的文本。</p>
|
|
||||||
<p>要在ChatGPT中使用文本分类提示,模型需要提供一段文本,并要求它根据预定义的类别或标签进行分类。提示还应包括有关所需输出的信息,例如类别或标签的数量以及任何特定的要求或约束。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:对客户评论进行文本分类</p>
|
|
||||||
<p>任务:将客户评论分类为不同的类别,例如电子产品、服装和家具</p>
|
|
||||||
<p>说明:模型应根据评论的内容对其进行分类</p>
|
|
||||||
<p>提示公式:“对以下客户评论 [插入评论] 进行文本分类,并根据其内容将其分类为不同的类别,例如电子产品、服装和家具。”</p>
|
|
||||||
<p>示例2:对新闻文章进行文本分类</p>
|
|
||||||
<p>任务:将新闻文章分类为不同的类别,例如体育、政治和娱乐</p>
|
|
||||||
<p>说明:模型应根据文章的内容对其进行分类</p>
|
|
||||||
<p>提示公式:“对以下新闻文章 [插入文章] 进行文本分类,并根据其内容将其分类为不同的类别,例如体育、政治和娱乐。”</p>
|
|
||||||
<p>示例3:对电子邮件进行文本分类</p>
|
|
||||||
<p>任务:将电子邮件分类为不同的类别,例如垃圾邮件、重要邮件或紧急邮件</p>
|
|
||||||
<p>说明:模型应根据电子邮件的内容和发件人对其进行分类</p>
|
|
||||||
<p>提示公式:“对以下电子邮件 [插入电子邮件] 进行文本分类,并根据其内容和发件人将其分类为不同的类别,例如垃圾邮件、重要邮件或紧急邮件。”</p>
|
|
||||||
<h2 id="di-er-shi-si-zhang-wen-ben-sheng-cheng-ti-shi">第二十四章:文本生成提示</h2>
|
|
||||||
<p>文本生成提示与本书中提到的其他提示技术相关,例如:零、一、几次提示,受控生成提示,翻译提示,语言建模提示,句子补全提示等。这些提示都与生成文本有关,但它们在生成文本的方式和放置在生成文本上的特定要求或限制方面有所不同。文本生成提示可用于微调预训练模型或训练新模型以执行特定任务。</p>
|
|
||||||
<p>提示示例及其公式:</p>
|
|
||||||
<p>示例1:故事创作的文本生成</p>
|
|
||||||
<p>任务:根据给定的提示生成故事</p>
|
|
||||||
<p>说明:故事应至少包含1000个单词,并包括一组特定的角色和情节。</p>
|
|
||||||
<p>提示公式:“根据以下提示[插入提示]生成一个至少包含1000个单词,包括角色[插入角色]和情节[插入情节]的故事。”</p>
|
|
||||||
<p>示例2:语言翻译的文本生成</p>
|
|
||||||
<p>任务:将给定的文本翻译成另一种语言</p>
|
|
||||||
<p>说明:翻译应准确并符合习惯用语。</p>
|
|
||||||
<p>提示公式:“将以下文本[插入文本]翻译成[插入目标语言],并确保其准确且符合习惯用语。”</p>
|
|
||||||
<p>示例3:文本完成的文本生成</p>
|
|
||||||
<p>任务:完成给定的文本</p>
|
|
||||||
<p>说明:生成的文本应与输入文本连贯一致。</p>
|
|
||||||
<p>提示公式:“完成以下文本[插入文本],并确保其连贯一致且符合输入文本。”</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/about-working/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">乱七八糟:应届生工作指南</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/network-download-1/">
|
|
||||||
<span class="button__text">Network的艺术:下载技术的历史</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,186 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/chrome-shortcut-key/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/chrome-shortcut-key/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/chrome-shortcut-key/">乱七八糟:Chrome常用快捷键</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-05-23
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 在日常使用浏览器时,掌握一些快捷键和技巧可以节省大量时间,提高工作和学习效率。通过学习和实践,能够更加轻松地应对各种网页浏览场景,让浏览器成为工作和学习的得力助手。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="chromekuai-jie-jian">Chrome快捷键</h2>
|
|
||||||
<h3 id="ctrlxi-lie">Ctrl系列</h3>
|
|
||||||
<ul>
|
|
||||||
<li>Ctrl+N 打开新的窗口。</li>
|
|
||||||
<li>Ctrl+H 查看历史记录。</li>
|
|
||||||
<li>Ctrl+J 查看下载历史。</li>
|
|
||||||
<li>Ctrl+F 在网页内查找</li>
|
|
||||||
<li>Ctrl+U 查看页面源码</li>
|
|
||||||
<li>Ctrl+L 选中地址栏中的内容</li>
|
|
||||||
<li>Ctrl+F5 刷新页面,忽略缓存</li>
|
|
||||||
<li>Ctrl+Shift+B 显示或隐藏书签栏</li>
|
|
||||||
<li>Ctrl+D 把当前页加入到书签中</li>
|
|
||||||
<li>Ctrl+T 在当前窗口打开新的标签页。</li>
|
|
||||||
<li>Ctrl+Shift+N 进入隐身模式。</li>
|
|
||||||
<li>Ctrl+O 用浏览器打开电脑上的文件。</li>
|
|
||||||
<li>Ctrl+Tab或Ctrl + PgDown 切换到下一个标签页</li>
|
|
||||||
<li>Ctrl+W 关闭当前标签页,如果是最后一个则关窗口</li>
|
|
||||||
<li>Ctrl+(1-8) 切换标签页 Ctrl+9 最后一个标签页。</li>
|
|
||||||
<li>Ctrl+Shift+Tab或Ctrl+Shift+PgUp 切换到上一个标签页</li>
|
|
||||||
<li>Ctrl ++ 或 Ctrl -- 放大或缩小网页 Ctrl+0 恢复到原来</li>
|
|
||||||
<li>Ctrl+Shift+T 重新打开上一次关闭的页面(隐身模式无效),能记住10个</li>
|
|
||||||
<li>Ctrl+G/Ctrl+Shift+G 查找下一个或者上一个匹配的内容(在网页内查找时使用)</li>
|
|
||||||
</ul>
|
|
||||||
<h3 id="zu-he-jian">组合键</h3>
|
|
||||||
<ul>
|
|
||||||
<li>Alt+F4 关闭窗口。</li>
|
|
||||||
<li>Shift+Esc 打开任务管理器</li>
|
|
||||||
<li>按住Alt点击链接,下载链接</li>
|
|
||||||
<li>Alt+Home 打开主页,在单签标签页</li>
|
|
||||||
<li>输入网址按Alt+Enter在新的标签页打开网址</li>
|
|
||||||
<li>按住Ctrl点击页面的连接,在新的标签页打开连接,停留在当前页。</li>
|
|
||||||
<li>按住Shift点击页面的连接,在新的窗口打开连接。</li>
|
|
||||||
<li>在地址栏输入 aaaa 按下Ctrl+Enter则会打开 www.aaaa.com</li>
|
|
||||||
<li>按住Ctrl+Shift点击页面的连接,在新的标签页打开连接,切换到新的页面。</li>
|
|
||||||
<li>鼠标左键,拖动链接到指定标签页,在标签页打开连接,拖动到其它位置则在,该位置打开一个新的标签页。</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="hou-ji">后记</h2>
|
|
||||||
<p>希望本文的内容能够对读者有所帮助,让大家在使用浏览器时能够更加得心应手,事半功倍。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/about-time/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">乱七八糟:时间的标准与格式</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/windows-optimization/">
|
|
||||||
<span class="button__text">乱七八糟:Windows优化流程</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1 +0,0 @@
|
|||||||
@media (prefers-color-scheme: light){:root{--background: white;--color: #101010}}@media (prefers-color-scheme: dark){:root{--background: #101010;--color: #A9B7C6}}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--background: #1D212C}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--background: #101010;--color: #A9B7C6}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--background: #1F222A}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--background: #f0f0f0}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--background: #222129}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--background: #21202C}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--background: #221F29}
|
|
@ -1 +0,0 @@
|
|||||||
@media (prefers-color-scheme: dark){:root{--accent: rgb(35,176,255);--accent-alpha-70: rgba(35,176,255,.7);--accent-alpha-20: rgba(35,176,255,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(32,128,192);--accent-alpha-70: rgba(32,128,192,.7);--accent-alpha-20: rgba(32,128,192,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(32,128,192);--accent-alpha-70: rgba(32,128,192,.7);--accent-alpha-20: rgba(32,128,192,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(35,176,255);--accent-alpha-70: rgba(35,176,255,.7);--accent-alpha-20: rgba(35,176,255,.2);--background: #1D212C;--color: white;--border-color: rgba(255, 255, 255, .1)}
|
|
@ -1 +0,0 @@
|
|||||||
@media (prefers-color-scheme: dark){:root{--accent: rgb(120,226,160);--accent-alpha-70: rgba(120,226,160,.7);--accent-alpha-20: rgba(120,226,160,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(24, 192, 128);--accent-alpha-70: rgba(24, 192, 128,.7);--accent-alpha-20: rgba(24, 192, 128,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(24, 192, 128);--accent-alpha-70: rgba(24, 192, 128,.7);--accent-alpha-20: rgba(24, 192, 128,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(120,226,160);--accent-alpha-70: rgba(120,226,160,.7);--accent-alpha-20: rgba(120,226,160,.2);--background: #1F222A;--color: white;--border-color: rgba(255, 255, 255, .1)}
|
|
@ -1 +0,0 @@
|
|||||||
@media (prefers-color-scheme: dark){:root{--accent: rgb(255,168,106);--accent-alpha-70: rgba(255,168,106,.7);--accent-alpha-20: rgba(255,168,106,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(240,128,48);--accent-alpha-70: rgba(240,128,48,.7);--accent-alpha-20: rgba(240,128,48,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(240,128,48);--accent-alpha-70: rgba(240,128,48,.7);--accent-alpha-20: rgba(240,128,48,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(255,168,106);--accent-alpha-70: rgba(255,168,106,.7);--accent-alpha-20: rgba(255,168,106,.2);--background: #222129;--color: white;--border-color: rgba(255, 255, 255, .1)}
|
|
@ -1 +0,0 @@
|
|||||||
@media (prefers-color-scheme: dark){:root{--accent: rgb(224,64,192);--accent-alpha-70: rgba(224,64,192);--accent-alpha-20: rgba(224,64,192,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(238,114,241);--accent-alpha-70: rgba(238,114,241,.7);--accent-alpha-20: rgba(238,114,241,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(224,64,192);--accent-alpha-70: rgba(224,64,192);--accent-alpha-20: rgba(224,64,192,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(238,114,241);--accent-alpha-70: rgba(238,114,241,.7);--accent-alpha-20: rgba(238,114,241,.2);--background: #21202C;--color: white;--border-color: rgba(255, 255, 255, .1)}
|
|
@ -1 +0,0 @@
|
|||||||
@media (prefers-color-scheme: dark){:root{--accent: rgb(255,98,102);--accent-alpha-70: rgba(255,98,102,.7);--accent-alpha-20: rgba(255,98,102,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(240,48,64);--accent-alpha-70: rgba(240,48,64,.7);--accent-alpha-20: rgba(240,48,64,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(240,48,64);--accent-alpha-70: rgba(240,48,64,.7);--accent-alpha-20: rgba(240,48,64,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff}
|
|
@ -1 +0,0 @@
|
|||||||
:root{--accent: rgb(255,98,102);--accent-alpha-70: rgba(255,98,102,.7);--accent-alpha-20: rgba(255,98,102,.2);--background: #221F29;--color: white;--border-color: rgba(255, 255, 255, .1)}
|
|
@ -1,207 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/docker-learn-1/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/docker-learn-1/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/docker-learn-1/">Docker学习笔记(一)</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-03-25
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 Docker 是一个开源平台,通过将应用程序隔离到轻量级、可移植的容器中,自动执行应用程序的部署、扩展和管理。容器是独立的可执行单元,它封装了应用程序在各种环境中一致运行所需的所有必要依赖项、库和配置文件。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="shen-me-shi-rong-qi"><strong>什么是容器?</strong></h2>
|
|
||||||
<p>容器是轻量级、可移植和隔离的软件环境,允许开发人员跨不同平台一致地运行和打包应用程序及其依赖项。它们有助于简化应用程序开发、部署和管理流程,同时确保应用程序始终如一地运行,而不管底层基础架构如何。</p>
|
|
||||||
<h2 id="rong-qi-shi-ru-he-gong-zuo-de"><strong>容器是如何工作的?</strong></h2>
|
|
||||||
<p>与传统的虚拟化不同,传统的虚拟化使用硬件资源模拟完整的操作系统,容器共享主机的操作系统内核,并利用轻量级虚拟化技术来创建隔离的进程。这种方法有几个好处,包括:</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>效率:容器的开销较小,可以共享公共库和可执行文件,与虚拟机 (VM) 相比,可以在单个主机上运行更多容器。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>可移植性:容器封装了应用程序及其依赖项,因此可以轻松地在不同的环境和平台上一致地移动和运行它们。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>快速启动:由于容器不需要启动完整的操作系统,因此它们的启动和关闭速度比 VM 快得多。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>一致性:容器为应用程序的开发、测试和生产阶段提供了一致的环境,从而减少了“它在我的机器上工作”的问题。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="rong-qi-he-docker"><strong>容器和 Docker</strong></h2>
|
|
||||||
<p>Docker 是一个简化创建、部署和管理容器过程的平台。它为开发人员和管理员提供了一组工具和 API 来管理容器化应用程序。使用 Docker,您可以将应用程序代码、库和依赖项构建并打包到容器映像中,该映像可以在任何支持 Docker 的环境中一致地分发和运行。</p>
|
|
||||||
<h2 id="dui-rong-qi-de-xu-qiu"><strong>对容器的需求</strong></h2>
|
|
||||||
<p>在软件开发和部署领域,一致性和效率至关重要。在容器出现之前,开发人员在跨不同环境部署应用程序时经常面临挑战,包括:</p>
|
|
||||||
<ul>
|
|
||||||
<li>不一致的环境:开发人员通常在不同的环境中工作,与生产服务器相比,这些环境可能具有不同的配置和库。这会导致部署应用程序时出现兼容性问题。</li>
|
|
||||||
<li>资源利用效率低下:虚拟机 (VM) 被广泛用于克服环境不一致的问题。但是,VM 需要为每个应用程序运行整个操作系统,从而使资源利用率低效。</li>
|
|
||||||
<li>流程缓慢和可伸缩性问题:传统的部署方法具有较慢的上市时间和扩展困难,这阻碍了软件更新的快速交付。</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="rong-qi-ru-he-ying-dui-zhe-xie-tiao-zhan"><strong>容器如何应对这些挑战:</strong></h2>
|
|
||||||
<ul>
|
|
||||||
<li>一致的环境:容器通过将应用程序及其依赖项、配置和库捆绑到单个容器中来解决环境不一致问题。这保证了应用程序在不同环境中平稳运行。</li>
|
|
||||||
<li>高效利用资源:与虚拟机不同,容器共享底层系统资源和操作系统内核,这使得它们轻量级且高效。容器旨在使用更少的资源并更快地启动,从而提高资源利用率。</li>
|
|
||||||
<li>更快的流程和可扩展性:容器可以轻松创建、销毁和替换,从而加快开发和部署周期。由于可以在不消耗大量资源的情况下部署多个容器,因此扩展应用程序变得更加容易。</li>
|
|
||||||
</ul>
|
|
||||||
<p>总体而言,对于希望快速响应市场变化、提高资源效率并确保可靠和一致的软件交付的组织来说,容器已成为必不可少的工具。它们彻底改变了现代软件开发实践,并在部署和应用程序管理领域产生了持久的影响。</p>
|
|
||||||
<h2 id="luo-ji-xu-ni-ji-rong-qi"><strong>裸机、虚拟机、容器</strong></h2>
|
|
||||||
<ul>
|
|
||||||
<li>裸机</li>
|
|
||||||
</ul>
|
|
||||||
<p>裸机是一个术语,用于描述直接在硬件上运行的计算机,无需任何虚拟化。这是运行应用程序的高性能方式,但也是最不灵活的方式。每台服务器只能运行一个应用程序,并且不能轻松地将应用程序移动到另一台服务器。</p>
|
|
||||||
<ul>
|
|
||||||
<li>虚拟机</li>
|
|
||||||
</ul>
|
|
||||||
<p>虚拟机 (VM) 是一种在单个服务器上运行多个应用程序的方法。每个 VM 都运行在虚拟机监控程序之上,虚拟机监控程序是模拟计算机硬件的软件。虚拟机监控程序允许您在单个服务器上运行多个操作系统,并且它还在不同 VM 上运行的应用程序之间提供隔离。</p>
|
|
||||||
<ul>
|
|
||||||
<li>容器</li>
|
|
||||||
</ul>
|
|
||||||
<p>容器是一种在单个服务器上运行多个应用程序的方法,而不会产生虚拟机管理程序的开销。每个容器都运行在容器引擎之上,容器引擎是一种模拟计算机操作系统的软件。容器引擎允许您在单个服务器上运行多个应用程序,它还提供在不同容器上运行的应用程序之间的隔离。</p>
|
|
||||||
<p><strong>Docker 与 OCI</strong>
|
|
||||||
开放容器计划 (OCI) 是 Linux 基金会的一个项目,旨在为容器格式和运行时创建行业标准。其主要目标是通过定义的技术规范确保容器环境的兼容性和互操作性。
|
|
||||||
Docker 是 OCI 的创始成员之一,在制定容器格式和运行时标准方面发挥了关键作用。Docker 最初开发了容器运行时(Docker 引擎)和映像格式(Docker 映像),作为 OCI 规范的基础。</p>
|
|
||||||
<p><strong>OCI 规范</strong></p>
|
|
||||||
<p>OCI 有两个主要规范:</p>
|
|
||||||
<ul>
|
|
||||||
<li>运行时规范 (runtime-spec):它定义了通过隔离技术(如容器引擎)执行容器的规范。Docker 构建的容器运行时(称为“containerd”)指导了 OCI 运行时规范的开发。</li>
|
|
||||||
<li>镜像规范 (image-spec):它定义容器镜像格式,用于描述容器的内容,并可由兼容的运行时运行。Docker 的初始映像格式促成了 OCI 映像规范的创建。</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="docker-he-oci-zhi-jian-de-jian-rong-xing"><strong>Docker 和 OCI 之间的兼容性</strong></h2>
|
|
||||||
<p>Docker 始终致力于支持 OCI 规范,并且自参与 OCI 以来,不断更新其软件以符合 OCI 标准。Docker 的 containerd 运行时和映像格式与 OCI 规范完全兼容,使 Docker 容器能够由其他符合 OCI 标准的容器运行时运行,反之亦然。</p>
|
|
||||||
<p>总之,Docker 和 Open Container Initiative 共同致力于维护容器行业的标准化和兼容性。Docker 在 OCI 规范的制定中发挥了重要作用,确保容器生态系统保持健康、可互操作,并可供整个行业的广泛用户和平台访问。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/awesome-podcast-use/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">搭建个人信息流:播客收听指北</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-2/">
|
|
||||||
<span class="button__text">Docker学习笔记(二)</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,228 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/docker-learn-2/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/docker-learn-2/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/docker-learn-2/">Docker学习笔记(二)</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-03-26
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 了解支持 Docker 的核心技术将有助于更深入地了解 Docker 的工作原理,并更有效地使用该平台。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="linux-rong-qi-lxc"><strong>Linux 容器 (LXC)</strong></h2>
|
|
||||||
<p>Linux 容器 (LXC) 是 Docker 的基础。LXC 是一种轻量级虚拟化解决方案,它允许多个隔离的 Linux 系统在单个主机上运行,而无需成熟的虚拟机管理程序。LXC 以安全和优化的方式有效地隔离应用程序及其依赖项。</p>
|
|
||||||
<h2 id="kong-zhi-zu-cgroups"><strong>控制组 (cgroups)</strong></h2>
|
|
||||||
<p>控制组 (cgroups) 是一项 Linux 内核功能,允许将 CPU、内存和 I/O 等资源分配给一组进程并对其进行管理。Docker 利用 cgroups 来限制容器使用的资源,并确保一个容器不会垄断主机系统的资源。</p>
|
|
||||||
<h2 id="lian-he-wen-jian-xi-tong-unionfs"><strong>联合文件系统 (UnionFS)</strong></h2>
|
|
||||||
<p>UnionFS 是一种文件系统服务,允许在单个统一视图中叠加多个文件系统。Docker 使用 UnionFS 为镜像和容器创建分层方法,从而实现更好的通用文件共享和更快的容器创建。</p>
|
|
||||||
<h2 id="ming-ming-kong-jian"><strong>命名空间</strong></h2>
|
|
||||||
<p>命名空间是 Docker 用于在容器之间提供隔离的核心技术之一。在本节中,我们将简要讨论什么是命名空间以及它们是如何工作的。
|
|
||||||
在 Linux 内核中,命名空间是一种允许隔离各种系统资源的功能,使进程及其子进程能够查看与其他进程分开的系统子集。命名空间有助于创建抽象层,以使容器化进程彼此分离并与主机系统分离。</p>
|
|
||||||
<p>Linux 中有几种类型的命名空间,包括:</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>PID(进程 ID):隔离进程 ID 号空间,这意味着容器中的进程只能看到自己的进程,而看不到主机或其他容器中的进程。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>网络 (NET):为每个容器提供单独的网络堆栈视图,包括其自己的网络接口、路由表和防火墙规则。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>挂载 (MNT):隔离文件系统挂载点,使每个容器都有自己的根文件系统,并且挂载的资源仅显示在该容器中。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>UTS(UNIX 分时系统):允许每个容器拥有自己的主机名和域名,与其他容器和主机系统分开。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>用户 (USER):在容器和主机之间映射用户和组标识符,以便可以为容器中的资源设置不同的权限。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>IPC(进程间通信):允许或限制不同容器中进程之间的通信。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="dockerru-he-shi-yong-ming-ming-kong-jian"><strong>Docker如何使用命名空间</strong></h2>
|
|
||||||
<p>Docker 使用命名空间为容器创建隔离环境。启动容器时,Docker 会为该容器创建一组新的命名空间。这些命名空间仅适用于容器内,因此在容器内运行的任何进程都可以访问与其他容器以及主机系统隔离的系统资源子集。</p>
|
|
||||||
<p>Docker 容器和 LXC 容器很相似,所提供的安全特性也差不多。当用 docker run 启动一个容器时,在后台 Docker 为容器创建了一个独立的命名空间和控制组集合。</p>
|
|
||||||
<p>命名空间提供了最基础也是最直接的隔离,在容器中运行的进程不会被运行在主机上的进程和其它容器发现和作用。</p>
|
|
||||||
<p>每个容器都有自己独有的网络栈,意味着它们不能访问其他容器的 sockets 或接口。不过,如果主机系统上做了相应的设置,容器可以像跟主机交互一样的和其他容器交互。当指定公共端口或使用 links 来连接 2 个容器时,容器就可以相互通信了(可以根据配置来限制通信的策略)。</p>
|
|
||||||
<p>从网络架构的角度来看,所有的容器通过本地主机的网桥接口相互通信,就像物理机器通过物理交换机通信一样。</p>
|
|
||||||
<p>那么,内核中实现命名空间和私有网络的代码是否足够成熟?</p>
|
|
||||||
<p>内核命名空间从 2.6.15 版本(2008 年 7 月发布)之后被引入,数年间,这些机制的可靠性在诸多大型生产系统中被实践验证。</p>
|
|
||||||
<p>实际上,命名空间的想法和设计提出的时间要更早,最初是为了在内核中引入一种机制来实现 OpenVZ 的特性。 而 OpenVZ 项目早在 2005 年就发布了,其设计和实现都已经十分成熟。
|
|
||||||
通过利用命名空间,Docker 确保容器是真正可移植的,并且可以在任何系统上运行,而不会受到同一主机上运行的其他进程或容器的冲突或干扰。</p>
|
|
||||||
<h2 id="kong-zhi-zu"><strong>控制组</strong></h2>
|
|
||||||
<p>cgroups 或控制组是一项 Linux 内核功能,负责实现资源的审计和限制。</p>
|
|
||||||
<p>它提供了很多有用的特性;以及确保各个容器可以公平地分享主机的内存、CPU、磁盘 IO 等资源;当然,更重要的是,控制组确保了当容器内的资源使用产生压力时不会连累主机系统。</p>
|
|
||||||
<p>尽管控制组不负责隔离容器之间相互访问、处理数据和进程,它在防止拒绝服务(DDOS)攻击方面是必不可少的。尤其是在多用户的平台(比如公有或私有的 PaaS)上,控制组十分重要。例如,当某些应用程序表现异常的时候,可以保证一致地正常运行和性能。</p>
|
|
||||||
<p>控制组机制始于 2006 年,内核从 2.6.24 版本开始被引入。</p>
|
|
||||||
<ul>
|
|
||||||
<li>资源隔离
|
|
||||||
cgroups 有助于将每个容器限制在一组特定的资源中,从而确保多个容器之间公平共享系统资源。这样可以更好地隔离不同容器,因此行为异常的容器不会消耗所有可用资源,从而对其他容器产生负面影响。</li>
|
|
||||||
<li>限制资源
|
|
||||||
使用 cgroups,可以对容器使用的各种系统资源(如 CPU、内存和 I/O)设置限制。这有助于防止单个容器消耗过多资源并导致其他容器或主机系统的性能问题。</li>
|
|
||||||
<li>确定容器的优先级
|
|
||||||
通过分配不同的资源份额,cgroups 允许您为某些容器提供优先级或优先级。在某些容器比其他容器更关键的情况下,或者在资源争用高的情况下,这可能很有用。</li>
|
|
||||||
<li>Monitoring 监测
|
|
||||||
cGroups 还提供用于监视单个容器的资源使用情况的机制,这有助于深入了解容器性能并识别潜在的资源瓶颈。</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="union-filesystems-lian-he-wen-jian-xi-tong"><strong>Union Filesystems 联合文件系统</strong></h2>
|
|
||||||
<p>联合文件系统,也称为 UnionFS,在 Docker 的整体功能中起着至关重要的作用。联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。它是一种独特的文件系统类型,它通过覆盖多个目录来创建虚拟的分层文件结构。UnionFS 无需修改原始文件系统或合并目录,而是支持将多个目录同时挂载到单个挂载点上,同时保持其内容独立。此功能在 Docker 的上下文中特别有用,因为它允许我们通过最小化重复和减小容器映像大小来管理和优化存储性能。</p>
|
|
||||||
<p>以下是联合文件系统的一些基本特性:</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>分层结构:UnionFS 构建了一个分层结构,该结构由多个只读层和一个顶部可写层组成。此结构通过仅更新可写层来有效处理更改,而只读层保留原始数据。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Copy-on-Write:COW 机制是 UnionFS 不可或缺的功能。如果容器对现有文件进行更改,系统将在可写层中创建该文件的副本,而只读层中的原始文件保持不变。此过程将修改限制在最顶层,确保快速且资源节约的操作。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>资源共享:联合文件系统允许多个容器在单独运行时共享公共基础层。此功能可防止资源重复并节省大量存储空间。</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>快速容器初始化:联合文件系统只需在现有只读层上创建新的可写层,就可以立即创建新容器。这种快速初始化减少了重复文件操作的开销,最终提高了性能。</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="docker-zhong-liu-xing-de-lian-he-wen-jian-xi-tong"><strong>Docker 中流行的联合文件系统</strong></h2>
|
|
||||||
<p>Docker 支持多个联合文件系统,便于构建和管理容器。一些流行的选项包括:</p>
|
|
||||||
<ul>
|
|
||||||
<li>AUFS(高级多层统一文件系统):AUFS 被广泛用作 Docker 存储驱动程序,可实现多层的高效管理。</li>
|
|
||||||
<li>OverlayFS(Overlay Filesystem):OverlayFS 是 Docker 支持的另一个联合文件系统。与 AUFS 相比,它使用简化的方法来创建和管理覆盖目录。</li>
|
|
||||||
<li>Btrfs(B-Tree 文件系统):Btrfs 是一种现代文件系统,除了快照和校验和等高级存储功能外,还提供与联合文件系统的兼容性。</li>
|
|
||||||
<li>ZFS(Z 文件系统):ZFS 是一个高容量且强大的存储平台,它提供联合文件系统功能以及数据保护、压缩和重复数据删除。</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-1/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Docker学习笔记(一)</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-3/">
|
|
||||||
<span class="button__text">Docker学习笔记(三)</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,253 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/docker-learn-3/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/docker-learn-3/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/docker-learn-3/">Docker学习笔记(三)</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-03-27
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 Docker 是一个平台,可简化在轻量级、可移植容器中构建、打包和部署应用程序的过程。在本节中,我们将介绍 Docker 的基础知识、其组件以及入门所需的关键命令。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="ji-chu-zhi-shi"><strong>基础知识</strong></h2>
|
|
||||||
<p>Docker 是一个平台,可简化在轻量级、可移植容器中构建、打包和部署应用程序的过程。在本节中,我们将介绍 Docker 的基础知识、其组件以及入门所需的关键命令。</p>
|
|
||||||
<h2 id="shen-me-shi-rong-qi"><strong>什么是容器?</strong></h2>
|
|
||||||
<p>容器是一个轻量级、独立且可执行的软件包,其中包含运行应用程序所需的所有依赖项(库、二进制文件和配置文件)。容器将应用程序与其环境隔离开来,确保它们在不同系统中一致地工作。</p>
|
|
||||||
<h2 id="docker-sheng-tai-xi-tong-zhong-you-san-ge-guan-jian-zu-jian"><strong>Docker 生态系统中有三个关键组件:</strong></h2>
|
|
||||||
<ul>
|
|
||||||
<li>Dockerfile:包含用于构建 Docker 映像的指令(命令)的文本文件。</li>
|
|
||||||
<li>Docker 映像:从 Dockerfile 创建的容器快照。映像存储在注册表(如 Docker Hub)中,可以拉取或推送到注册表。</li>
|
|
||||||
<li>Docker 容器:Docker 映像的运行实例。</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="an-zhuang-docker"><strong>安装Docker</strong></h2>
|
|
||||||
<p><strong>安装基础工具</strong></p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo apt-get update
|
|
||||||
</span><span> sudo apt-get install \
|
|
||||||
</span><span> apt-transport-https \
|
|
||||||
</span><span> ca-certificates \
|
|
||||||
</span><span> curl \
|
|
||||||
</span><span> gnupg \
|
|
||||||
</span><span> lsb-release
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>安装docker的gpg key:</strong></p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>安装docker源</strong></p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
||||||
</span></code></pre>
|
|
||||||
<p>上面命令中的 lsb_release -cs 返回 bullseye ,也就是debian11的代号。</p>
|
|
||||||
<p><strong>安装docker</strong></p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>apt-get update
|
|
||||||
</span><span>sudo apt-get install docker-ce docker-ce-cli containerd.io
|
|
||||||
</span><span>sudo systemctl enable docker
|
|
||||||
</span><span>sudo systemctl start docker
|
|
||||||
</span></code></pre>
|
|
||||||
<p>至此安装完成。</p>
|
|
||||||
<p>在debian系的Linux发行版上,docker会开机启动启动。</p>
|
|
||||||
<p>如果平时使用非root账户,又不想每次执行docker命令之前都加上sudo,参考docker的 文档 ,可以添加 docker 组,并将非root账户加入到该组中。下面的命令创建 docker 组并将当前用户加入 docker 组,执行完成之后重新登陆生效:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo groupadd docker
|
|
||||||
</span><span>sudo usermod -aG docker $USER
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>使用 Docker 存储库安装</strong></p>
|
|
||||||
<p>我建议使用此方法的主要原因是您可以轻松升级,因为存储库可以轻松更新!</p>
|
|
||||||
<p>首先,使用以下命令安装此方法的先决条件:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo apt update && sudo apt install ca-certificates curl gnupg
|
|
||||||
</span></code></pre>
|
|
||||||
<p>现在,让我们使用以下命令创建一个目录来存储密钥环:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo install -m 0755 -d /etc/apt/keyrings
|
|
||||||
</span></code></pre>
|
|
||||||
<p>接下来,使用给定的命令下载 GPG 密钥并将其存储在 /etc/apt/keyrings/etc/apt/keyrings 目录中:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
|
||||||
</span></code></pre>
|
|
||||||
<p>完成后,使用 chmod 命令更改 docker.gpg 文件的权限:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
|
||||||
</span></code></pre>
|
|
||||||
<p>最后,使用以下命令为 Docker 设置存储库:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>echo \
|
|
||||||
</span><span> "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
|
|
||||||
</span><span> "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
|
|
||||||
</span><span> sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
||||||
</span></code></pre>
|
|
||||||
<p>上述命令中每行末尾的额外 \ 只是添加新行的一种方式,以便您可以轻松查看整个命令。就是这样!</p>
|
|
||||||
<p>现在,您可以使用以下命令更新存储库索引并安装 Docker:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo apt update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
||||||
</span></code></pre>
|
|
||||||
<p>要验证 Docker 安装,您可以安装 hello-world 映像:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo docker run hello-world
|
|
||||||
</span></code></pre>
|
|
||||||
<p>hello-world docker 镜像很小,仅用于检查 Docker 是否运行正常。</p>
|
|
||||||
<h2 id="shi-yong-docker-er-bu-shi-yong-sudo"><strong>使用 Docker 而不使用 sudo</strong></h2>
|
|
||||||
<p>如果您注意到,在运行 hello-world 映像时,我使用了 sudo。</p>
|
|
||||||
<p>这可能不太方便。那么如何将其配置为不必使用 sudo 呢?</p>
|
|
||||||
<p>首先使用 groupadd 命令创建一个 docker 组:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo groupadd docker
|
|
||||||
</span></code></pre>
|
|
||||||
<p>现在,将用户添加到组(docker):</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo usermod -aG docker $USER
|
|
||||||
</span></code></pre>
|
|
||||||
<p>现在从终端注销并重新登录以使更改生效。</p>
|
|
||||||
<p>如果您在虚拟机中安装 Docker,需要重新启动才能使您所做的更改生效。</p>
|
|
||||||
<p>让我们通过运行 hello-world 图像来测试它:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run hello-world
|
|
||||||
</span></code></pre>
|
|
||||||
<p>正如您所看到的,我无需使用 sudo 即可获得相同的结果。</p>
|
|
||||||
<h2 id="xie-zai-docker"><strong>卸载 Docker</strong></h2>
|
|
||||||
<p>首先,使用以下命令停止 docker 服务:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo systemctl stop docker
|
|
||||||
</span></code></pre>
|
|
||||||
<p>然后按以下方式使用 apt purge 命令从系统中删除 Docker:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
||||||
</span></code></pre>
|
|
||||||
<p>如果您打算进行全新安装或者不想拥有任何以前的数据,那么您可以使用 rm 命令删除 Docker 文件:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo rm -rf /var/lib/docker
|
|
||||||
</span></code></pre>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sudo rm -rf /var/lib/containerd
|
|
||||||
</span></code></pre>
|
|
||||||
<p>就是这样! Docker 已成功删除。</p>
|
|
||||||
<h2 id="docker-commands-docker-ming-ling"><strong>Docker Commands Docker 命令</strong></h2>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker pull <image>: 从注册表(如 Docker Hub)下载映像。
|
|
||||||
</span><span>docker build -t <image_name> <path>: 从 Dockerfile 构建映像,其中 <path> 是包含 Dockerfile 的目录。
|
|
||||||
</span><span>docker image ls: 列出本地计算机上可用的所有映像。
|
|
||||||
</span><span>docker run -d -p <host_port>:<container_port> --name <container_name> <image>:从映像运行容器,将主机端口映射到容器端口。
|
|
||||||
</span><span>docker container ls: 列出所有正在运行的容器。
|
|
||||||
</span><span>docker container stop <container>: 停止正在运行的容器。
|
|
||||||
</span><span>docker container rm <container>: 移除停止的容器。
|
|
||||||
</span><span>docker image rm <image>: 从本地计算机中删除映像。
|
|
||||||
</span></code></pre>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-2/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Docker学习笔记(二)</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-4/">
|
|
||||||
<span class="button__text">Docker学习笔记(四)</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,195 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/docker-learn-4/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/docker-learn-4/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/docker-learn-4/">Docker学习笔记(四)</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-03-28
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 Docker 使您能够运行与主机操作系统分离的隔离代码段(包括应用程序及其依赖项)的容器。默认情况下,容器是临时的,这意味着容器中存储的任何数据一旦终止就会丢失。为了克服这个问题并跨容器生命周期保留数据,Docker 提供了多种数据持久化方法。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="docker-zhong-de-shu-ju-chi-jiu-hua"><strong>Docker 中的数据持久化</strong></h2>
|
|
||||||
<p>在本节中,我们将介绍:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Docker Volumes Docker 卷</li>
|
|
||||||
<li>Bind Mounts 绑定挂载</li>
|
|
||||||
<li>Docker tmpfs mounts Docker tmpfs 挂载</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="docker-volumes-docker-juan"><strong>Docker Volumes Docker 卷</strong></h2>
|
|
||||||
<p>Docker 卷是保存 Docker 容器生成和使用的数据的首选方法。卷是 Docker 用于存储文件和目录的主机上的一个目录,这些文件和目录的寿命可能超过容器的生命周期。Docker 卷可以在容器之间共享,它们提供了各种好处,例如轻松备份和数据迁移。</p>
|
|
||||||
<p>要创建卷,请使用以下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker volume create volume_name
|
|
||||||
</span></code></pre>
|
|
||||||
<p>要使用卷,请在 docker run 命令中添加 --volume(或 -v)标志:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --volume volume_name:/container/path image_name
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>在容器中挂载卷</strong>
|
|
||||||
若要将卷装载到容器,需要在运行容器时使用 -v 或 --mount 标志。下面是一个示例:</p>
|
|
||||||
<p>Using -v flag: 使用 -v 标志:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -d -v my-volume:/data your-image
|
|
||||||
</span></code></pre>
|
|
||||||
<p>Using --mount flag: 使用 --mount 标志:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -d --mount source=my-volume,destination=/data your-image
|
|
||||||
</span></code></pre>
|
|
||||||
<p>在上面的两个示例中,my-volume 是我们之前创建的卷的名称,/data 是容器内将挂载卷的路径。</p>
|
|
||||||
<p><strong>在容器之间共享卷</strong>
|
|
||||||
要在多个容器之间共享卷,只需在多个容器上挂载相同的卷即可。下面介绍如何在运行不同映像的两个容器之间共享 my-volume:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -d -v my-volume:/data1 image1
|
|
||||||
</span><span>docker run -d -v my-volume:/data2 image2
|
|
||||||
</span></code></pre>
|
|
||||||
<p>在此示例中,image1 和 image2 将有权访问存储在 my-volume 中的相同数据。</p>
|
|
||||||
<p><strong>Removing a Volume 删除卷</strong>
|
|
||||||
要删除卷,可以使用 docker volume rm 命令,后跟卷名称:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker volume rm my-volume
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="bind-mounts-bang-ding-gua-zai"><strong>Bind Mounts 绑定挂载</strong></h2>
|
|
||||||
<p>绑定挂载允许您将主机上的任何目录映射到容器中的目录。此方法在需要修改主机系统上的文件的开发环境中非常有用,并且这些更改应立即在容器中可用。</p>
|
|
||||||
<p>与卷相比,绑定挂载的功能有限。使用绑定挂载时,主机上的文件或目录将装载到容器中。文件或目录由其在主机上的绝对路径引用。相比之下,当您使用卷时,会在主机上的 Docker 存储目录中创建一个新目录,Docker 管理该目录的内容。</p>
|
|
||||||
<p>文件或目录不需要已存在于 Docker 主机上。如果尚不存在,则按需创建。绑定挂载的性能非常高,但它们依赖于主机的文件系统,该文件系统具有特定的可用目录结构。</p>
|
|
||||||
<p>要创建绑定挂载,请在 docker run 命令中使用带有 type=bind 的 --mount 标志:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --mount type=bind,src=/host/path,dst=/container/path image_name
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="docker-tmpfs-mounts-docker-tmpfs-gua-zai"><strong>Docker tmpfs mounts Docker tmpfs 挂载</strong></h2>
|
|
||||||
<p>Docker tmpfs 挂载允许您直接在容器的内存中创建临时文件存储。存储在 tmpfs 挂载中的数据快速且安全,但一旦容器终止,数据就会丢失。
|
|
||||||
要使用 tmpfs 挂载,请在 docker run 命令中添加 --tmpfs 标志:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --tmpfs /container/path image_name
|
|
||||||
</span></code></pre>
|
|
||||||
<p>通过采用这些方法,可以确保跨容器生命周期的数据持久性,从而增强 Docker 容器的实用性和灵活性。请记住选择最适合您的用例的方法,无论是首选的 Docker 卷、方便的绑定挂载,还是快速安全的 tmpfs 挂载。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-3/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Docker学习笔记(三)</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-5/">
|
|
||||||
<span class="button__text">Docker学习笔记(五)</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,230 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/docker-learn-5/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/docker-learn-5/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/docker-learn-5/">Docker学习笔记(五)</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-03-29
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 第三方映像是预构建的 Docker 容器映像,可在 Docker Hub 或其他容器注册表上使用。这些映像由个人或组织创建和维护,可用作容器化应用程序的起点。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="cha-zhao-di-san-fang-jing-xiang"><strong>查找第三方镜像</strong></h2>
|
|
||||||
<p>Docker Hub 是最大、最受欢迎的容器镜像注册表,包含官方和社区维护的镜像。您可以根据要使用的名称或技术搜索镜像。</p>
|
|
||||||
<p>例如:如果你正在寻找 Node.js 映像,你可以在 Docker Hub 上搜索“Node”,你会找到官方Node.js映像以及许多其他社区维护的映像。</p>
|
|
||||||
<p><strong>在 Dockerfile 中使用映像</strong>
|
|
||||||
要在 Dockerfile 中使用第三方映像,只需使用 FROM 指令将映像名称设置为基础映像即可。下面是使用官方Node.js镜像的示例:</p>
|
|
||||||
<p>FROM node:14</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span># The rest of your Dockerfile...
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>注意安全问题</strong>
|
|
||||||
请记住,第三方映像可能存在安全漏洞或配置错误。在生产中使用镜像之前,请务必验证镜像的来源并检查其信誉。更喜欢使用官方镜像或维护良好的社区镜像。</p>
|
|
||||||
<p><strong>维护您的镜像</strong>
|
|
||||||
使用第三方映像时,必须保持更新,以包含最新的安全更新和依赖项更改。定期检查基础映像中的更新,并相应地重新生成应用程序容器。</p>
|
|
||||||
<h2 id="shi-yong-di-san-fang-ying-xiang-shu-ju-ku"><strong>使用第三方映像:数据库</strong></h2>
|
|
||||||
<p>在 Docker 容器中运行数据库有助于简化开发过程并简化部署。Docker Hub 为 MySQL、PostgreSQL 和 MongoDB 等流行数据库提供了大量预制映像。</p>
|
|
||||||
<p><strong>示例:使用 MySQL 镜像</strong>
|
|
||||||
要使用 MySQL 数据库,请在 Docker Hub 上搜索官方镜像:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker search mysql
|
|
||||||
</span></code></pre>
|
|
||||||
<p>找到官方图片,然后拉动它:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker pull mysql
|
|
||||||
</span></code></pre>
|
|
||||||
<p>现在,您可以运行 MySQL 容器。指定所需的环境变量,例如 MYSQL_ROOT_PASSWORD,并选择性地将容器的端口映射到主机:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql
|
|
||||||
</span></code></pre>
|
|
||||||
<p>此命令创建一个名为 some-mysql 的新容器,将 root 密码设置为 my-secret-pw,并将主机上的端口 3306 映射到容器上的端口 3306。</p>
|
|
||||||
<p><strong>示例:使用 PostgreSQL 镜像</strong>
|
|
||||||
对于 PostgreSQL,请执行与上述步骤类似的步骤。首先,搜索官方图片:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker search postgres
|
|
||||||
</span></code></pre>
|
|
||||||
<p>Pull the image: 拉取图像:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker pull postgres
|
|
||||||
</span></code></pre>
|
|
||||||
<p>运行 PostgreSQL 容器,指定环境变量,例如 POSTGRES_PASSWORD:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --name some-postgres -e POSTGRES_PASSWORD=my-secret-pw -p 5432:5432 -d postgres
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="shi-yong-docker-de-jiao-hu-shi-ce-shi-huan-jing"><strong>使用 Docker 的交互式测试环境</strong></h2>
|
|
||||||
<p>Docker 允许您创建隔离的一次性环境,这些环境可以在完成测试后删除。这使得使用第三方软件、测试不同的依赖项或版本以及快速试验变得更加容易,而不会损坏本地设置。</p>
|
|
||||||
<p><strong>使用 Docker 创建交互式测试环境</strong>
|
|
||||||
为了演示如何设置交互式测试环境,让我们以 Python 编程语言为例。我们将使用 Docker Hub 上提供的公共 Python 映像。</p>
|
|
||||||
<p>要使用 Python 映像启动交互式测试环境,只需运行以下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -it --rm python
|
|
||||||
</span></code></pre>
|
|
||||||
<p>在这里,-it 标志确保使用 tty 在交互模式下运行容器,而 --rm 标志将在容器停止后将其删除。</p>
|
|
||||||
<p>现在,您应该位于容器内的交互式 Python shell 中。您可以像往常一样使用 pip 执行任何 Python 命令或安装其他软件包。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>print("Hello, Docker!")
|
|
||||||
</span></code></pre>
|
|
||||||
<p>完成交互式会话后,只需键入 exit() 或按 CTRL+D 即可退出容器。容器将按照 --rm 标志的指定自动删除。</p>
|
|
||||||
<p><strong>交互式测试环境的更多示例</strong>
|
|
||||||
可以使用 Docker Hub 上提供的多个第三方映像,并创建各种交互式环境,例如:</p>
|
|
||||||
<p>Node.js:若要启动交互式 Node.js shell,可以使用以下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -it --rm node
|
|
||||||
</span></code></pre>
|
|
||||||
<p>Ruby:要启动交互式 Ruby shell,您可以使用以下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -it --rm ruby
|
|
||||||
</span></code></pre>
|
|
||||||
<p>MySQL:要启动临时 MySQL 实例,您可以使用以下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -it --rm --name temp-mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -p 3306:3306 mysql
|
|
||||||
</span></code></pre>
|
|
||||||
<p>这将启动一个临时的MySQL服务器,该服务器可以通过主机端口3306访问。一旦容器停止,它将被移除。</p>
|
|
||||||
<p>随意探索和测试各种软件,而不必担心损坏本地计算机或安装不必要的依赖项。将 Docker 用于交互式测试环境可以让您在处理各种第三方软件时更高效、更干净地工作。</p>
|
|
||||||
<h2 id="ming-ling-xing-shi-yong-cheng-xu"><strong>命令行实用程序</strong></h2>
|
|
||||||
<p>Docker 映像可以包括命令行实用程序或我们可以在容器内运行的独立应用程序。这在使用第三方映像时非常有用,因为我们想要使用的工具已经打包好,无需任何安装或配置即可运行。</p>
|
|
||||||
<p><strong>BusyBox</strong>
|
|
||||||
BusyBox 是一个小型 (1-2 Mb) 且简单的命令行应用程序,它提供了大量常用的 Unix 实用程序,例如 awk、grep、vi 等。要在 Docker 容器中运行 BusyBox,只需拉取映像并使用 Docker 运行它:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker pull busybox
|
|
||||||
</span><span>docker run -it busybox /bin/sh
|
|
||||||
</span></code></pre>
|
|
||||||
<p>进入容器后,您可以开始运行各种 BusyBox 实用程序,就像在常规命令行上一样。</p>
|
|
||||||
<p><strong>cURL</strong>
|
|
||||||
cURL 是一个众所周知的命令行工具,可用于使用各种网络协议传输数据。它通常用于测试 API 或从 Internet 下载文件。若要在 Docker 容器中使用 cURL,可以使用 Docker Hub 上提供的官方 cURL 映像:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker pull curlimages/curl
|
|
||||||
</span><span>docker run --rm curlimages/curl https://example.com
|
|
||||||
</span></code></pre>
|
|
||||||
<p>在此示例中,--rm 标志用于在命令运行完毕后删除容器。当您只需要运行单个命令,然后清理容器时,这很有用。</p>
|
|
||||||
<p><strong>其他命令行实用程序</strong>
|
|
||||||
Docker 映像中提供了许多命令行实用程序,包括但不限于:</p>
|
|
||||||
<ul>
|
|
||||||
<li>wget:用于从 Web 上非交互式下载文件的免费实用程序。</li>
|
|
||||||
<li>imagemagick:用于图像处理和转换的强大软件套件。</li>
|
|
||||||
<li>jq:轻量级且灵活的命令行 JSON 处理器。</li>
|
|
||||||
</ul>
|
|
||||||
<p>若要使用这些工具中的任何一个,可以在 Docker Hub 上搜索它们,并按照其各自存储库中提供的说明进行操作。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-4/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Docker学习笔记(四)</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-6/">
|
|
||||||
<span class="button__text">Docker学习笔记(六)</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,297 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/docker-learn-6/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/docker-learn-6/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/docker-learn-6/">Docker学习笔记(六)</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-03-30
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 容器映像是可执行包,其中包含运行应用程序所需的所有内容:代码、运行时、系统工具、库和设置。通过构建自定义映像,您可以在任何 Docker 支持的平台上无缝部署应用程序及其所有依赖项。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="dockerfile"><strong>Dockerfile</strong></h2>
|
|
||||||
<p>构建容器镜像的关键组件是 Dockerfile。它本质上是一个脚本,其中包含有关如何组装 Docker 映像的说明。Dockerfile 中的每条指令都会在映像中创建一个新图层,从而更轻松地跟踪更改并最小化映像大小。下面是 Dockerfile 的简单示例:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span># Use an official Python runtime as a parent image
|
|
||||||
</span><span>FROM python:3.7-slim
|
|
||||||
</span><span>
|
|
||||||
</span><span># Set the working directory to /app
|
|
||||||
</span><span>WORKDIR /app
|
|
||||||
</span><span>
|
|
||||||
</span><span># Copy the current directory contents into the container at /app
|
|
||||||
</span><span>COPY . /app
|
|
||||||
</span><span>
|
|
||||||
</span><span># Install any needed packages specified in requirements.txt
|
|
||||||
</span><span>RUN pip install --trusted-host pypi.python.org -r requirements.txt
|
|
||||||
</span><span>
|
|
||||||
</span><span># Make port 80 available to the world outside this container
|
|
||||||
</span><span>EXPOSE 80
|
|
||||||
</span><span>
|
|
||||||
</span><span># Define environment variable
|
|
||||||
</span><span>ENV NAME World
|
|
||||||
</span><span>
|
|
||||||
</span><span># Run app.py when the container launches
|
|
||||||
</span><span>CMD ["python", "app.py"]
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="building-an-image-gou-jian-ying-xiang"><strong>Building an Image 构建映像</strong></h2>
|
|
||||||
<p>创建 Dockerfile 后,可以使用 docker build 命令生成映像。在包含 Dockerfile 的目录中的终端中执行以下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker build -t your-image-name .
|
|
||||||
</span></code></pre>
|
|
||||||
<p>此命令告诉 Docker 使用当前目录 (.) 中的 Dockerfile 构建映像,并为其分配名称 (-t your-image-name)。</p>
|
|
||||||
<p>检查镜像和图层
|
|
||||||
成功构建后,可以使用 docker image 命令检查创建的映像:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker image ls
|
|
||||||
</span></code></pre>
|
|
||||||
<p>要仔细查看镜像的各个图层,请使用 docker history 命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker history your-image-name
|
|
||||||
</span></code></pre>
|
|
||||||
<p>要查看镜像的图层,还可以使用 docker inspect 命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker inspect your-image-name
|
|
||||||
</span></code></pre>
|
|
||||||
<p>要删除镜像,请使用 docker image rm 命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker image rm your-image-name
|
|
||||||
</span></code></pre>
|
|
||||||
<p>将映像推送到注册表
|
|
||||||
构建映像后,可以将其推送到容器注册表(例如 Docker Hub、Google Container Registry 等),以便轻松分发和部署应用程序。首先,使用您的凭据登录注册表:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker login
|
|
||||||
</span></code></pre>
|
|
||||||
<p>然后,使用注册表 URL 标记映像:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker tag your-image-name username/repository:tag
|
|
||||||
</span></code></pre>
|
|
||||||
<p>最后,将标记的映像推送到注册表:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker push username/repository:tag
|
|
||||||
</span></code></pre>
|
|
||||||
<p>构建容器映像是使用 Docker 的一个关键方面,因为它使你能够轻松打包和部署应用程序。通过创建具有精确指令的 Dockerfile,您可以毫不费力地在各种平台上构建和分发映像。</p>
|
|
||||||
<p>Dockerfile
|
|
||||||
Dockerfile 是一个文本文档,其中包含 Docker 引擎用于构建映像的指令列表。Dockerfile 中的每条指令都会向映像添加一个新层。Docker 将根据这些说明生成映像,然后您可以从映像运行容器。Dockerfile 是基础结构即代码的主要元素之一。</p>
|
|
||||||
<h2 id="chang-jian-dockerfile-shuo-ming"><strong>常见 Dockerfile 说明</strong></h2>
|
|
||||||
<p>以下是一些常见的 Dockerfile 指令及其用途的列表:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>FROM: 设置基础映像的开始。必须将 FROM 作为 Dockerfile 中的第一条指令。
|
|
||||||
</span><span>WORKDIR: 设置任何 RUN、CMD、ENTRYPOINT、COPY 或 ADD 指令的工作目录。如果该目录不存在,则会自动创建该目录。
|
|
||||||
</span><span>COPY: 将文件或目录从主机复制到容器的文件系统中。
|
|
||||||
</span><span>ADD: 类似于 COPY,但也可以处理远程 URL 并自动解压缩存档。
|
|
||||||
</span><span>RUN: 在镜像中作为新图层执行命令。
|
|
||||||
</span><span>CMD: 定义从映像运行容器时要执行的默认命令。
|
|
||||||
</span><span>ENTRYPOINT: 类似于 CMD,但它旨在允许容器作为具有自己参数的可执行文件。
|
|
||||||
</span><span>EXPOSE: 通知 Docker 容器将在运行时侦听指定的网络端口。
|
|
||||||
</span><span>ENV: 为容器设置环境变量。
|
|
||||||
</span><span>
|
|
||||||
</span><span># 若要从 Dockerfile 生成映像,请使用 docker build 命令,指定生成上下文(通常为当前目录)和映像的可选标记。
|
|
||||||
</span></code></pre>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker build -t my-image:tag .
|
|
||||||
</span></code></pre>
|
|
||||||
<p>运行此命令后,Docker 将按顺序执行 Dockerfile 中的每条指令,并为每个指令创建一个新层。</p>
|
|
||||||
<h2 id="gao-xiao-de-ceng-huan-cun"><strong>高效的层缓存</strong></h2>
|
|
||||||
<p>构建容器镜像时,Docker 会缓存新创建的层。然后,这些图层可以在以后构建其他映像时使用,从而减少构建时间并最大限度地减少带宽使用。但是,要充分利用此缓存机制,您应该了解如何有效地使用图层缓存。</p>
|
|
||||||
<p>Docker 层缓存的工作原理
|
|
||||||
Docker 为 Dockerfile 中的每条指令(例如 RUN、COPY、ADD 等)创建一个新层。如果指令自上次生成以来未更改,则 Docker 将重用现有层。</p>
|
|
||||||
<p>例如,请考虑以下 Dockerfile:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>FROM node:14
|
|
||||||
</span><span>
|
|
||||||
</span><span>WORKDIR /app
|
|
||||||
</span><span>
|
|
||||||
</span><span>COPY package.json /app/
|
|
||||||
</span><span>RUN npm install
|
|
||||||
</span><span>
|
|
||||||
</span><span>COPY . /app/
|
|
||||||
</span><span>
|
|
||||||
</span><span>CMD ["npm", "start"]
|
|
||||||
</span></code></pre>
|
|
||||||
<p>首次构建镜像时,Docker 将执行每条指令并为每条指令创建一个新层。如果对应用程序进行一些更改并重新生成映像,Docker 将检查更改的指令是否影响任何层。如果任何层均不受更改的影响,则 Docker 将重用缓存的层。</p>
|
|
||||||
<ul>
|
|
||||||
<li>高效图层缓存的技巧</li>
|
|
||||||
<li>尽量减少 Dockerfile 中的更改:尽量减少 Dockerfile 中更改的频率,并以最常更改的行显示在底部的方式构建指令。</li>
|
|
||||||
<li>生成上下文优化:使用 .dockerignore 文件从生成上下文中排除可能导致缓存失效的不必要文件。</li>
|
|
||||||
<li>使用较小的基础映像:较小的基础映像可减少提取基础映像所需的时间以及需要缓存的图层数.</li>
|
|
||||||
<li>利用 Docker 的 --cache-from 标志:如果使用的是 CI/CD 管道,则可以指定要用作缓存源的镜像。</li>
|
|
||||||
<li>合并多个指令:在某些情况下,合并指令(例如 RUN)有助于最大限度地减少层数,从而提高缓存效率。</li>
|
|
||||||
<li>通过遵循这些最佳实践,您可以优化层缓存过程并减少 Docker 映像的构建时间,从而提高开发和部署过程的效率。</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="jing-xiang-da-xiao-he-an-quan-xing"><strong>镜像大小和安全性</strong></h2>
|
|
||||||
<p>生成容器映像时,必须注意映像大小和安全性。映像的大小会影响容器的生成和部署速度。较小的映像可以加快构建速度,并降低下载映像时的网络开销。安全性至关重要,因为容器映像可能包含可能使应用程序面临风险的漏洞。</p>
|
|
||||||
<p>Reducing Image Size 减小镜像尺寸
|
|
||||||
使用适当的基础映像:选择更小、更轻量级的基础映像,该基础映像仅包含应用程序所需的组件。例如,请考虑使用官方镜像的 alpine 变体(如果可用),因为它的尺寸通常要小得多。</p>
|
|
||||||
<p>FROM node:14-alpine
|
|
||||||
在单个 RUN 语句中运行多个命令:每个 RUN 语句在镜像中创建一个新图层,该图层会影响镜像大小。使用 && 将多个命令合并为一个 RUN 语句,以最小化图层数并减小最终镜像大小。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>RUN apt-get update && \
|
|
||||||
</span><span> apt-get install -y some-required-package
|
|
||||||
</span></code></pre>
|
|
||||||
<p>删除同一层中不必要的文件:在映像构建过程中安装包或添加文件时,请删除同一层中的临时或未使用的文件,以减小最终映像大小。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>RUN apt-get update && \
|
|
||||||
</span><span> apt-get install -y some-required-package && \
|
|
||||||
</span><span> apt-get clean && \
|
|
||||||
</span><span> rm -rf /var/lib/apt/lists/*
|
|
||||||
</span></code></pre>
|
|
||||||
<p>使用多阶段构建:使用多阶段构建创建较小的映像。多阶段构建允许您在 Dockerfile 中使用多个 FROM 语句。每个 FROM 语句在构建过程中创建一个新阶段。您可以使用 COPY --from 语句将文件从一个阶段复制到另一个阶段。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>FROM node:14-alpine AS build
|
|
||||||
</span><span>WORKDIR /app
|
|
||||||
</span><span>COPY package*.json ./
|
|
||||||
</span><span>RUN npm install
|
|
||||||
</span><span>COPY . .
|
|
||||||
</span><span>RUN npm run build
|
|
||||||
</span><span>
|
|
||||||
</span><span>FROM node:14-alpine
|
|
||||||
</span><span>WORKDIR /app
|
|
||||||
</span><span>COPY --from=build /app/dist ./dist
|
|
||||||
</span><span>COPY package*.json ./
|
|
||||||
</span><span>RUN npm install --production
|
|
||||||
</span><span>CMD ["npm", "start"]
|
|
||||||
</span></code></pre>
|
|
||||||
<p>使用 .dockerignore 文件:使用 .dockerignore 文件从生成上下文中排除可能导致缓存失效并增加最终映像大小的不必要文件。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>node_modules
|
|
||||||
</span><span>npm-debug.log
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="enhancing-security-zeng-qiang-an-quan-xing"><strong>Enhancing Security 增强安全性</strong></h2>
|
|
||||||
<p>保持基本映像更新:定期更新您在 Dockerfile 中使用的基本映像,以确保它们包含最新的安全补丁。</p>
|
|
||||||
<ul>
|
|
||||||
<li>避免以 root 身份运行容器:运行容器时始终使用非 root 用户,以最大程度地降低潜在风险。在运行应用程序之前创建用户并切换到该用户。</li>
|
|
||||||
</ul>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>RUN addgroup -g 1000 appuser && \
|
|
||||||
</span><span> adduser -u 1000 -G appuser -D appuser
|
|
||||||
</span><span>USER appuser
|
|
||||||
</span></code></pre>
|
|
||||||
<ul>
|
|
||||||
<li>限制 COPY 或 ADD 指令的范围:具体说明要复制到容器映像中的文件或目录。避免使用 COPY . .,因为它可能会无意中包含敏感文件。</li>
|
|
||||||
</ul>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>COPY package*.json ./
|
|
||||||
</span><span>COPY src/ src/
|
|
||||||
</span></code></pre>
|
|
||||||
<ul>
|
|
||||||
<li>扫描映像中的漏洞:使用 Anchore 或 Clair 等工具扫描映像中的漏洞,并在部署前修复它们。</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-5/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Docker学习笔记(五)</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-7/">
|
|
||||||
<span class="button__text">Docker学习笔记(七)</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,307 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/docker-learn-7/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/docker-learn-7/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/docker-learn-7/">Docker学习笔记(七)</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-03-31
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 容器镜像仓库是 Docker 容器镜像的集中存储和分发系统。它允许开发人员以这些映像的形式轻松共享和部署应用程序。容器镜像仓库在容器化应用程序的部署中起着至关重要的作用,因为它们提供了一种快速、可靠且安全的方式来跨各种生产环境分发容器映像。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="container-registries-rong-qi-jing-xiang-cang-ku"><strong>Container Registries 容器镜像仓库</strong></h2>
|
|
||||||
<p>以下是当今可用的常用容器镜像仓库列表:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Docker Hub:Docker Hub 是公共 Docker 映像的默认注册表,用作在开发人员之间共享和分发映像的平台。</li>
|
|
||||||
<li>Google Container Registry (GCR):GCR 是 Google Cloud Platform 提供的托管、安全且高度可用的注册表,非常适合托管私有容器镜像。</li>
|
|
||||||
<li>Amazon Elastic Container Registry (ECR):Amazon ECR 是由 Amazon Web Services 提供的完全托管的 Docker 容器镜像仓库,为存储、管理和部署容器映像提供高可扩展性和性能。</li>
|
|
||||||
<li>Azure 容器镜像仓库 (ACR):ACR 是 Microsoft Azure 提供的托管注册表,提供异地复制、访问控制以及与其他 Azure 服务的集成。</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>DockerHub</strong>
|
|
||||||
DockerHub 是 Docker Inc. 提供的基于云的注册服务。它是默认的公共容器镜像仓库,您可以在其中存储、管理和分发 Docker 映像。DockerHub 使其他用户可以轻松查找和使用您的映像,或者与 Docker 社区共享他们自己的映像。</p>
|
|
||||||
<p><strong>DockerHub的功能</strong></p>
|
|
||||||
<ul>
|
|
||||||
<li>公共和私有存储库:将映像存储在每个人都可以访问的公共存储库中,或者选择仅限您的团队或组织访问的私有存储库。</li>
|
|
||||||
<li>自动构建:DockerHub 与 GitHub 和 Bitbucket 等常用代码存储库集成,允许您为 Docker 映像设置自动构建。每当您将代码推送到存储库时,DockerHub 都会自动创建一个包含最新更改的新映像。</li>
|
|
||||||
<li>Webhook:DockerHub 允许您配置 Webhook,以便在构建或更新映像时通知其他应用程序或服务。</li>
|
|
||||||
<li>组织和团队:通过创建组织和团队来管理对映像和存储库的访问,使协作变得容易。</li>
|
|
||||||
<li>官方镜像:DockerHub 为 MongoDB、Node.js、Redis 等流行软件提供了一组精选的官方镜像。这些映像由 Docker Inc. 和上游软件供应商维护,确保它们是最新且安全的。</li>
|
|
||||||
</ul>
|
|
||||||
<p>要开始使用 DockerHub,您需要在他们的网站上创建一个免费帐户。注册后,您可以创建存储库、管理组织和团队以及浏览可用映像。</p>
|
|
||||||
<p>当您准备好共享自己的映像时,可以使用 docker 命令行工具将本地映像推送到 DockerHub:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker login
|
|
||||||
</span><span>docker tag your-image your-username/your-repository:your-tag
|
|
||||||
</span><span>docker push your-username/your-repository:your-tag
|
|
||||||
</span></code></pre>
|
|
||||||
<p>要从 DockerHub 拉取镜像,可以使用 docker pull 命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker pull your-username/your-repository:your-tag
|
|
||||||
</span></code></pre>
|
|
||||||
<p>DockerHub 对于分发和共享 Docker 映像至关重要,使开发人员能够更轻松地部署应用程序和管理容器基础架构。</p>
|
|
||||||
<h2 id="jing-xiang-biao-ji-zui-jia-shi-jian"><strong>镜像标记最佳实践</strong></h2>
|
|
||||||
<p>正确标记 Docker 映像对于高效的容器管理和部署至关重要。在本节中,我们将讨论镜像标记的一些最佳实践。</p>
|
|
||||||
<p><strong>使用语义版本控制</strong>
|
|
||||||
标记镜像时,建议遵循语义版本控制指南。语义版本控制是一种广受认可的方法,可以帮助更好地维护应用程序。Docker 镜像标签应具有以下结构 <major_version>.<minor_version>.<patch>。示例:3.2.1。</p>
|
|
||||||
<p><strong>标记最新版本</strong>
|
|
||||||
除了版本号之外,Docker 还允许您将映像标记为“最新”。通常的做法是将映像的最新稳定版本标记为“最新”,以便用户无需指定版本号即可快速访问它。但是,在发布新版本时保持此标记更新非常重要。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker build -t your-username/app-name:latest .
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>具有描述性和一致性</strong>
|
|
||||||
选择清晰且描述性的标签名称,以传达镜像的用途或与先前版本相比的更改。您的标签还应该在映像和存储库中保持一致,以便更好地组织和易用。</p>
|
|
||||||
<p><strong>包括生成和 Git 信息(可选)</strong>
|
|
||||||
在某些情况下,在镜像标记中包含有关构建和 Git 提交的信息可能会有所帮助。这有助于识别用于生成映像的源代码和环境。示例:app-name-1.2.3-b567-d1234efg。</p>
|
|
||||||
<p><strong>使用特定于环境和体系结构的标签</strong>
|
|
||||||
如果应用程序部署在不同的环境(生产、暂存、开发)或具有多个体系结构(amd64、arm64),则可以使用指定这些变体的标记。示例:your-username/app-name:1.2.3-production-amd64。</p>
|
|
||||||
<p><strong>需要时重新标记镜像</strong>
|
|
||||||
有时,您可能需要在将映像推送到注册表后重新标记映像。例如,如果您已经为应用程序发布了补丁,则可能需要使用与以前版本相同的标记重新标记新的补丁版本。这样可以更顺畅地更新应用程序,并减少需要应用补丁的用户的手动工作。</p>
|
|
||||||
<p><strong>使用自动生成和标记工具</strong>
|
|
||||||
请考虑使用 CI/CD 工具(Jenkins、GitLab CI、Travis-CI)根据提交、分支或其他规则自动生成映像和标记。这确保了一致性,并减少了人工干预导致错误的可能性。</p>
|
|
||||||
<p>通过遵循这些映像标记的最佳做法,可以确保 Docker 映像的容器注册表更有条理、更可维护且用户友好。</p>
|
|
||||||
<h2 id="running-containers-yun-xing-rong-qi"><strong>Running Containers 运行容器</strong></h2>
|
|
||||||
<p>要启动一个新容器,我们使用 docker run 命令,后跟映像名称。基本语法如下:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run [options] IMAGE [COMMAND] [ARG...]
|
|
||||||
</span></code></pre>
|
|
||||||
<p>例如,要运行官方的 Nginx 镜像,我们将使用:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -d -p 8080:80 nginx
|
|
||||||
</span></code></pre>
|
|
||||||
<p>这将启动一个新容器,并将主机的端口 8080 映射到容器的端口 80。</p>
|
|
||||||
<p><strong>Listing Containers 列出容器</strong>
|
|
||||||
要列出所有正在运行的容器,请使用 docker ps 命令。要查看所有容器(包括已停止的容器),请使用 -a 标志:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker container ls -a
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>Accessing Containers 访问容器</strong>
|
|
||||||
要访问正在运行的容器的 shell,请使用 docker exec 命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker exec -it CONTAINER_ID bash
|
|
||||||
</span></code></pre>
|
|
||||||
<p>将 CONTAINER_ID 替换为所需容器的 ID 或名称。您可以在 docker ps 的输出中找到它。</p>
|
|
||||||
<p><strong>Stopping Containers 停止容器</strong>
|
|
||||||
若要停止正在运行的容器,请使用 docker stop 命令,后跟容器 ID 或名称:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker container stop CONTAINER_ID
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>Removing Containers 移除容器</strong>
|
|
||||||
容器停止后,我们可以使用 docker rm 命令后跟容器 ID 或名称将其删除:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker container rm CONTAINER_ID
|
|
||||||
</span></code></pre>
|
|
||||||
<p>若要在容器退出时自动删除容器,请在运行容器时添加 --rm 标志:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --rm IMAGE
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>使用 docker run 运行容器</strong>
|
|
||||||
在本节中,我们将讨论 docker run 命令,该命令使你能够运行 Docker 容器。docker run 命令从指定映像创建一个新容器并启动它。</p>
|
|
||||||
<p>docker run 命令的基本语法如下:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
|
|
||||||
</span><span>OPTIONS:这些是命令行标志,可用于调整容器的设置,如内存约束、端口、环境变量等。
|
|
||||||
</span><span>IMAGE:容器将运行的 Docker 映像。这可以是 Docker Hub 中的映像,也可以是存储在本地的您自己的映像。
|
|
||||||
</span><span>COMMAND:这是容器启动时将在容器内执行的命令。如果未指定,则将使用映像的默认入口点。
|
|
||||||
</span><span>ARG...:这些是可选参数,可以传递给正在执行的命令。
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>常用选项</strong>
|
|
||||||
以下是一些常用的 docker run 选项:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>--name:为容器分配名称,使其更易于识别和管理。
|
|
||||||
</span><span>-p, --publish:将容器的端口发布到主机。当您想要从容器外部访问容器内运行的服务时,这很有用。
|
|
||||||
</span><span>-e, --env:在容器内设置环境变量。您可以多次使用此选项来设置多个变量。
|
|
||||||
</span><span>-d, --detach:在分离模式下运行容器,在后台运行容器,并且不在控制台中显示日志。
|
|
||||||
</span><span>-v, --volume:将卷从主机绑定挂载到容器。这有助于持久保存容器生成的数据或在主机和容器之间共享文件。
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>下面是一些示例命令,可帮助您了解如何使用 docker run:</strong></p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>运行 Ubuntu 容器的交互式会话:
|
|
||||||
</span><span>docker run -it --name=my-ubuntu ubuntu
|
|
||||||
</span><span>运行 Nginx Web 服务器并在主机上发布端口 80:
|
|
||||||
</span><span>docker run -d --name=my-nginx -p 80:80 nginx
|
|
||||||
</span><span>使用自定义环境变量运行 MySQL 容器以配置数据库:
|
|
||||||
</span><span>docker run -d --name=my-mysql -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=mydb -p 3306:3306 mysql
|
|
||||||
</span><span>使用绑定挂载卷运行容器:
|
|
||||||
</span><span>docker run -d --name=my-data -v /path/on/host:/path/in/container some-image
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="docker-compose"><strong>Docker Compose</strong></h2>
|
|
||||||
<p>Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具。它允许您使用名为 docker-compose.yml 的简单 YAML 文件创建、管理和运行应用程序。此文件描述了应用程序的服务、网络和卷,使您只需使用一个命令即可轻松运行和管理容器。</p>
|
|
||||||
<p>使用 Docker Compose 的一些好处包括:</p>
|
|
||||||
<ul>
|
|
||||||
<li>简化的容器管理:Docker Compose 允许您在一个地方定义和配置所有服务、网络和卷,使其易于管理和维护。</li>
|
|
||||||
<li>可重现版本:与他人共享您的 docker-compose.yml 文件,以确保他们与您运行相同的环境和服务。</li>
|
|
||||||
<li>版本控制支持:可以对 Docker Compose 文件进行版本控制,以便更轻松地兼容不同版本的 Docker Compose 工具本身。</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>创建 Docker Compose 文件:</strong>
|
|
||||||
若要创建 docker-compose.yml 文件,请首先指定要使用的 Docker Compose 版本,然后指定要定义的服务。下面是基本 docker-compose.yml 文件的示例:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>version: "3.9"
|
|
||||||
</span><span>services:
|
|
||||||
</span><span> web:
|
|
||||||
</span><span> image: nginx:latest
|
|
||||||
</span><span> ports:
|
|
||||||
</span><span> - "80:80"
|
|
||||||
</span><span> db:
|
|
||||||
</span><span> image: mysql:latest
|
|
||||||
</span><span> environment:
|
|
||||||
</span><span> MYSQL_ROOT_PASSWORD: mysecretpassword
|
|
||||||
</span></code></pre>
|
|
||||||
<p>在此示例中,我们指定了两个服务:运行最新版本的 nginx 映像的 Web 服务器 (web) 和运行 MySQL 的数据库服务器 (db)。Web 服务器将其端口 80 公开给主机,并且数据库服务器为 root 密码设置了环境变量。</p>
|
|
||||||
<p><strong>运行 Docker Compose:</strong>
|
|
||||||
要运行 Docker Compose 应用程序,只需导航到包含 docker-compose.yml 文件的目录并运行以下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker-compose up
|
|
||||||
</span><span>Docker Compose 将读取文件并按指定顺序启动定义的服务。
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>其他有用的命令:</strong></p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker-compose down:停止并删除 docker-compose.yml 文件中定义的所有正在运行的容器、网络和卷。
|
|
||||||
</span><span>docker-compose ps:列出 docker-compose.yml 文件中定义的所有容器的状态。
|
|
||||||
</span><span>docker-compose logs:显示 docker-compose.yml 文件中定义的所有容器的日志。
|
|
||||||
</span><span>docker-compose build:构建 docker-compose.yml 文件中定义的所有映像。
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="yun-xing-shi-pei-zhi-xuan-xiang"><strong>运行时配置选项</strong></h2>
|
|
||||||
<p>运行时配置选项允许您在运行 Docker 容器时自定义它们的行为和资源。这些选项有助于管理容器资源、安全性和网络。以下是一些常用运行时配置选项的简要摘要:</p>
|
|
||||||
<p><strong>Resource Management 资源管理</strong>
|
|
||||||
CPU:您可以使用 --cpus 和 --cpu-shares 选项限制容器的 CPU 使用率。--cpus 限制容器可以使用的 CPU 内核数,而 --cpu-shares 为容器分配 CPU 时间的相对份额。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --cpus=2 --cpu-shares=512 your-image
|
|
||||||
</span></code></pre>
|
|
||||||
<p>内存:您可以使用 --memory 和 --memory-reservation 选项限制和保留容器的内存。这有助于防止容器消耗过多的系统资源。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --memory=1G --memory-reservation=500M your-image
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>Security 安全</strong>
|
|
||||||
用户:默认情况下,容器以 root 用户身份运行。为了提高安全性,您可以使用 --user 选项以其他用户或 UID 身份运行容器。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --user 1000 your-image
|
|
||||||
</span></code></pre>
|
|
||||||
<p>只读根文件系统:为防止对容器文件系统进行不必要的更改,可以使用 --read-only 选项将根文件系统挂载为只读。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --read-only your-image
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>Networking 联网</strong>
|
|
||||||
发布端口:可以使用 --publish(或 -p)选项将容器的端口发布到主机系统。这允许外部系统访问容器化服务。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -p 80:80 your-image
|
|
||||||
</span></code></pre>
|
|
||||||
<p>主机名和 DNS:您可以使用 --hostname 和 --dns 选项自定义容器的主机名和 DNS 设置。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run --hostname=my-container --dns=8.8.8.8 your-image
|
|
||||||
</span></code></pre>
|
|
||||||
<p>包含这些运行时配置选项将使你能够有效地管理容器的资源、安全性和网络需求。有关可用运行时配置选项的完整列表,请参阅 Docker 的官方文档。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-6/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Docker学习笔记(六)</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-8/">
|
|
||||||
<span class="button__text">Docker学习笔记(八)</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,238 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/docker-learn-8/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/docker-learn-8/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/docker-learn-8/">Docker学习笔记(八)</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-04-01
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/tech/">#Tech</a>
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 容器安全是实现和管理容器技术(如 Docker)的关键方面。它包含一组实践、工具和技术,旨在保护容器化应用程序及其运行的基础结构。在本节中,我们将讨论一些关键的容器安全注意事项、最佳做法和建议。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="container-security-rong-qi-an-quan"><strong>Container Security 容器安全</strong></h2>
|
|
||||||
<p><strong>Container Isolation 容器隔离</strong>
|
|
||||||
隔离对于确保容器化环境的稳健性和安全性至关重要。容器应彼此隔离并与主机系统隔离,以防止未经授权的访问,并在攻击者设法破坏一个容器时减轻潜在的损害。</p>
|
|
||||||
<ul>
|
|
||||||
<li>命名空间:Docker 使用命名空间技术为运行容器提供隔离环境。命名空间限制容器在更广泛的系统中可以查看和访问的内容,包括进程和网络资源。</li>
|
|
||||||
<li>C组:控制组 (cgroups) 用于限制容器消耗的资源,例如 CPU、内存和 I/O。 正确使用 cgroups 有助于防止 DoS 攻击和资源耗尽情况。</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>安全模式和做法</strong>
|
|
||||||
在容器的开发、部署和操作过程中实施最佳实践和特定安全模式对于维护安全环境至关重要。</p>
|
|
||||||
<ul>
|
|
||||||
<li>最小权限:应以尽可能低的权限运行容器,仅授予应用程序所需的最低权限。</li>
|
|
||||||
<li>不可变的基础架构:容器应被视为不可变单元 - 一旦构建,就不应更改它们。任何更改都应通过从更新的映像部署新容器来实现。</li>
|
|
||||||
<li>版本控制:映像应进行版本控制,并存储在安全的容器注册表中。</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>安全访问控制</strong>
|
|
||||||
应将访问控制应用于容器管理和容器数据,以保护敏感信息并维护整体安全态势。</p>
|
|
||||||
<ul>
|
|
||||||
<li>容器管理:使用基于角色的访问控制 (RBAC) 来限制对容器管理平台(例如 Kubernetes)的访问,并确保用户仅具有所需的最低权限。</li>
|
|
||||||
<li>容器数据:对静态数据和传输中的数据进行加密,尤其是在处理敏感信息时。</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>容器漏洞管理</strong>
|
|
||||||
容器容易受到攻击,因为它们的映像依赖于各种包和库。为了降低这些风险,应将漏洞管理包含在容器生命周期中。</p>
|
|
||||||
<ul>
|
|
||||||
<li>镜像扫描:使用自动扫描工具识别容器和镜像中的漏洞。这些工具应集成到开发管道中,以便在潜在风险进入生产环境之前发现它们。</li>
|
|
||||||
<li>安全基础映像:使用最小且安全的基础映像创建容器,从而减少攻击面和潜在漏洞。</li>
|
|
||||||
<li>定期更新:使用最新的安全补丁和更新使基础映像和容器保持最新状态。</li>
|
|
||||||
</ul>
|
|
||||||
<h2 id="image-security-jing-xiang-an-quan"><strong>Image Security 镜像安全</strong></h2>
|
|
||||||
<p>映像安全是在环境中部署 Docker 容器的一个关键方面。确保您使用的镜像是安全的、最新的且没有漏洞至关重要。在本节中,我们将回顾用于保护和管理 Docker 映像的最佳实践和工具。</p>
|
|
||||||
<p><strong>使用受信任的映像源</strong>
|
|
||||||
从公共存储库中提取映像时,请始终使用受信任的官方映像作为容器化应用程序的起点。官方映像由 Docker 审查,并定期更新安全修复程序。可以在 Docker Hub 或其他受信任的注册表上找到这些映像。</p>
|
|
||||||
<p>Official Images: https://hub.docker.com/explore/</p>
|
|
||||||
<p>从其他用户下载镜像或创建自己的镜像时,请务必验证源,并检查 Dockerfile 和其他提供的文件,以确保它们遵循最佳实践并且不会引入漏洞。</p>
|
|
||||||
<p><strong>使镜像保持最新状态</strong>
|
|
||||||
持续监控您的镜像并定期更新它们。这有助于最大程度地减少已知漏洞的风险,因为更新通常包含安全补丁。</p>
|
|
||||||
<p>您可以使用以下工具扫描和检查映像的更新:</p>
|
|
||||||
<p>Docker Hub:https://hub.docker.com/
|
|
||||||
Anchore: https://anchore.com/
|
|
||||||
Clair: https://github.com/quay/clair</p>
|
|
||||||
<p><strong>使用最少的基础映像</strong>
|
|
||||||
最小基础映像仅包含运行容器化应用程序所需的基本要素。基础映像中存在的组件越少,潜在漏洞的攻击面就越小。</p>
|
|
||||||
<p>最小基础映像的一个示例是 Alpine Linux 发行版,由于其占用空间小和安全功能,它通常用于 Docker 映像。</p>
|
|
||||||
<p>Alpine Linux: https://alpinelinux.org/
|
|
||||||
Alpine Linux:https://alpinelinux.org/</p>
|
|
||||||
<p><strong>扫描镜像以查找漏洞</strong>
|
|
||||||
使用 Clair 或 Anchore 等工具定期扫描镜像以查找已知漏洞。这些工具可以检测映像和容器配置中的潜在风险,从而允许您在将映像推送到注册表或在生产环境中部署映像之前解决这些风险。</p>
|
|
||||||
<p><strong>对映像进行签名和验证</strong>
|
|
||||||
若要确保映像的完整性和真实性,请始终使用 Docker 内容信任 (DCT) 对映像进行签名。DCT 使用数字签名来保证您拉取或推送的镜像是您期望的镜像,并且在传输过程中未被篡改。</p>
|
|
||||||
<p>Enable DCT for your Docker environment by setting the following environment variable:
|
|
||||||
通过设置以下环境变量为 Docker 环境启用 DCT:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>export DOCKER_CONTENT_TRUST=1
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>利用多阶段构建</strong>
|
|
||||||
多阶段构建允许您在同一个 Dockerfile 中使用多个 FROM 指令。每个阶段可以具有不同的基础映像或指令集,但只有最终阶段才能确定最终映像的内容。通过使用多阶段构建,您可以最大程度地减少最终映像的大小和复杂性,从而降低漏洞风险。</p>
|
|
||||||
<p>下面是一个使用多阶段构建的示例 Dockerfile:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span># Build stage
|
|
||||||
</span><span>FROM node:12-alpine AS build
|
|
||||||
</span><span>WORKDIR /app
|
|
||||||
</span><span>COPY . .
|
|
||||||
</span><span>RUN npm ci --production
|
|
||||||
</span><span>
|
|
||||||
</span><span># Final stage
|
|
||||||
</span><span>FROM node:12-alpine
|
|
||||||
</span><span>COPY --from=build /app /app
|
|
||||||
</span><span>CMD ["npm", "start"]
|
|
||||||
</span></code></pre>
|
|
||||||
<p>通过遵循这些映像安全最佳实践,您可以最大限度地降低漏洞风险,并确保容器化应用程序的安全。</p>
|
|
||||||
<h2 id="runtime-security-yun-xing-shi-an-quan-xing"><strong>Runtime Security 运行时安全性</strong></h2>
|
|
||||||
<p>运行时安全性侧重于确保 Docker 容器在生产环境中运行时的安全性。这是容器安全的一个关键方面,因为威胁可能会在部署容器后到达或被发现。适当的运行时安全措施有助于最大程度地减少漏洞被利用时可能造成的损害。</p>
|
|
||||||
<p><strong>最小特权原则</strong>
|
|
||||||
确保您的容器遵循最小权限原则,这意味着它们应该只具有执行其预期功能所需的最低权限。这有助于限制容器受损时的潜在损坏。</p>
|
|
||||||
<p><strong>尽可能以非 root 用户身份运行容器</strong>
|
|
||||||
避免运行特权容器,因为这些容器可以访问主机的所有资源。
|
|
||||||
使用 Linux 功能从容器中剥离不必要的权限。</p>
|
|
||||||
<p><strong>只读文件系统</strong>
|
|
||||||
通过将容器的文件系统设置为只读,可以防止攻击者修改关键文件或在容器中植入恶意软件。
|
|
||||||
在启动容器时使用 --read-only 标志,使其文件系统为只读。
|
|
||||||
为需要写入访问权限的位置实施卷装载或 tmpfs 装载。</p>
|
|
||||||
<p><strong>安全扫描和监控</strong>
|
|
||||||
确保定期扫描容器中的漏洞,包括映像本身和运行时环境中的漏洞。</p>
|
|
||||||
<p><strong>使用容器扫描工具检测和修补映像中的漏洞。</strong>
|
|
||||||
实施运行时监视以检测和响应安全事件,例如未经授权的访问尝试或意外的进程启动。</p>
|
|
||||||
<p><strong>Resource Isolation 资源隔离</strong>
|
|
||||||
隔离容器的资源(如 CPU、内存和网络),以防止单个受感染的容器影响其他容器或主机系统。</p>
|
|
||||||
<p>使用 Docker 的内置资源约束来限制容器可以使用的资源。
|
|
||||||
使用网络分段和防火墙来隔离容器并限制其通信。</p>
|
|
||||||
<p><strong>Audit Logs 审核日志</strong>
|
|
||||||
维护容器活动的审核日志,以帮助进行事件响应、故障排除和合规性。
|
|
||||||
使用 Docker 的日志记录功能捕获容器日志,并将其输出到集中式日志记录解决方案。
|
|
||||||
实施日志分析工具以监控可疑活动,并在检测到潜在事件时自动发出警报。</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-7/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Docker学习笔记(七)</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-9/">
|
|
||||||
<span class="button__text">Docker学习笔记(九)</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,302 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/docker-learn-9/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/docker-learn-9/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/docker-learn-9/">Docker学习笔记(九)</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2024-04-02
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/xue-xi-bi-ji/">#学习笔记</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 Docker CLI(命令行界面)是一个强大的工具,允许您与 Docker 容器、映像、卷和网络进行交互和管理。它为用户提供了广泛的命令,用于在开发和生产工作流中创建、运行和管理 Docker 容器和其他 Docker 资源。</p>
|
|
||||||
<span id="continue-reading"></span>
|
|
||||||
<p>在本主题中,我们将深入探讨 Docker CLI 的一些关键方面,包括以下内容:</p>
|
|
||||||
<p><strong>1. 安装</strong></p>
|
|
||||||
<p>要开始使用 Docker CLI,您需要在计算机上安装 Docker。您可以按照 Docker 文档中相应操作系统的官方安装指南进行操作。</p>
|
|
||||||
<p><strong>2. 基本命令</strong></p>
|
|
||||||
<p>以下是一些需要熟悉的基本 Docker CLI 命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run:从 Docker 镜像创建并启动容器
|
|
||||||
</span><span>docker container:列出正在运行的容器
|
|
||||||
</span><span>docker image:列出系统上所有可用的镜像
|
|
||||||
</span><span>docker pull:从 Docker Hub 或其他注册表拉取映像
|
|
||||||
</span><span>docker push:将映像推送到 Docker Hub 或其他注册表
|
|
||||||
</span><span>docker build:从 Dockerfile 构建映像
|
|
||||||
</span><span>docker exec:在正在运行的容器中运行命令
|
|
||||||
</span><span>docker logs:显示容器的日志
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>3. Docker 运行选项</strong></p>
|
|
||||||
<p>docker run 是 Docker CLI 中最重要的命令之一。您可以使用各种选项自定义容器的行为,例如:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>-d, --detach:在后台运行容器
|
|
||||||
</span><span>-e, --env:为容器设置环境变量
|
|
||||||
</span><span>-v, --volume:绑定挂载卷
|
|
||||||
</span><span>-p, --publish:将容器的端口发布到主机
|
|
||||||
</span><span>--name:为容器分配名称
|
|
||||||
</span><span>--restart:指定容器的重启策略
|
|
||||||
</span><span>--rm:容器退出时自动移除容器
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>4. Dockerfile</strong></p>
|
|
||||||
<p>Dockerfile 是一个脚本,其中包含用于构建 Docker 映像的指令。您可以使用 Docker CLI 通过 Dockerfile 构建、更新和管理 Docker 映像。</p>
|
|
||||||
<p>下面是 Dockerfile 的简单示例:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span># Set the base image to use
|
|
||||||
</span><span>FROM alpine:3.7
|
|
||||||
</span><span>
|
|
||||||
</span><span># Update the system and install packages
|
|
||||||
</span><span>RUN apk update && apk add curl
|
|
||||||
</span><span>
|
|
||||||
</span><span># Set the working directory
|
|
||||||
</span><span>WORKDIR /app
|
|
||||||
</span><span>
|
|
||||||
</span><span># Copy the application file
|
|
||||||
</span><span>COPY app.sh .
|
|
||||||
</span><span>
|
|
||||||
</span><span># Set the entry point
|
|
||||||
</span><span>ENTRYPOINT ["./app.sh"]
|
|
||||||
</span></code></pre>
|
|
||||||
<p>若要生成映像,请使用以下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker build -t my-image .
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>5. Docker Compose</strong></p>
|
|
||||||
<p>Docker Compose 是一个 CLI 工具,用于使用 YAML 文件定义和管理多容器 Docker 应用程序。它与 Docker CLI 协同工作,提供一种一致的方式来管理多个容器及其依赖项。</p>
|
|
||||||
<p>使用官方安装指南安装 Docker Compose,然后您可以创建一个 docker-compose.yml 文件来定义和运行多容器应用程序:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>version: '3'
|
|
||||||
</span><span>services:
|
|
||||||
</span><span> web:
|
|
||||||
</span><span> image: webapp-image
|
|
||||||
</span><span> ports:
|
|
||||||
</span><span> - "80:80"
|
|
||||||
</span><span> database:
|
|
||||||
</span><span> image: mysql
|
|
||||||
</span><span> environment:
|
|
||||||
</span><span> - MYSQL_ROOT_PASSWORD=my-secret-pw
|
|
||||||
</span></code></pre>
|
|
||||||
<p>使用以下命令运行应用程序:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker-compose up
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="docker-images-docker-jing-xiang"><strong>Docker Images Docker 镜像</strong></h2>
|
|
||||||
<p>Docker 映像是轻量级、独立且可执行的包,其中包含运行应用程序所需的一切。这些映像包含所有必要的依赖项、库、运行时、系统工具和代码,使应用程序能够在不同的环境中一致地运行。</p>
|
|
||||||
<p>Docker 映像是使用 Dockerfile 构建和管理的。Dockerfile 是一个脚本,其中包含用于创建 Docker 映像的指令,提供设置应用程序环境的分步指南。</p>
|
|
||||||
<p><strong>使用 Docker 映像</strong></p>
|
|
||||||
<p>Docker CLI 提供了多个命令来管理和处理 Docker 映像。一些基本命令包括:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker image ls: List all available images on your local system.
|
|
||||||
</span><span>docker image ls:列出本地系统上所有可用的镜像。
|
|
||||||
</span><span>docker build: Build an image from a Dockerfile.
|
|
||||||
</span><span>docker build:从 Dockerfile 构建映像。
|
|
||||||
</span><span>docker image rm: Remove one or more images.
|
|
||||||
</span><span>docker image rm:删除一个或多个镜像。
|
|
||||||
</span><span>docker pull: Pull an image from a registry (e.g., Docker Hub) to your local system.
|
|
||||||
</span><span>docker pull:将映像从注册表(例如 Docker Hub)拉取到本地系统。
|
|
||||||
</span><span>docker push: Push an image to a repository.
|
|
||||||
</span><span>docker push:将镜像推送到存储库。
|
|
||||||
</span></code></pre>
|
|
||||||
<p>例如,要从 Docker Hub 拉取官方 Ubuntu 映像,可以运行以下命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker pull ubuntu:latest
|
|
||||||
</span></code></pre>
|
|
||||||
<p>拉取映像后,可以使用该映像和 docker run 命令创建并运行容器:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -it ubuntu:latest /bin/bash
|
|
||||||
</span></code></pre>
|
|
||||||
<p>此命令创建一个新容器,并使用 /bin/bash shell 在容器内启动交互式会话。</p>
|
|
||||||
<p><strong>Sharing Images 共享镜像</strong></p>
|
|
||||||
<p>可以使用容器注册表(如 Docker Hub、Google Container Registry 或 Amazon Elastic Container Registry (ECR))共享和分发 Docker 映像。将映像推送到注册表后,其他人可以轻松访问和使用它们。</p>
|
|
||||||
<p>要共享您的镜像,您首先需要使用正确的命名格式对其进行标记:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker tag <image-id> <username>/<repository>:<tag>
|
|
||||||
</span></code></pre>
|
|
||||||
<p>然后,您可以使用以下命令将标记的映像推送到注册表:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker push <username>/<repository>:<tag>
|
|
||||||
</span></code></pre>
|
|
||||||
<p><strong>Containers 容器</strong></p>
|
|
||||||
<p>容器可以被认为是轻量级、独立和可执行的软件包,其中包括运行软件所需的一切,包括代码、运行时、库、环境变量和配置文件。容器将软件与其周围环境隔离开来,确保它在不同的环境中统一工作。</p>
|
|
||||||
<p><strong>为什么要使用容器?</strong></p>
|
|
||||||
<ul>
|
|
||||||
<li>可移植性:容器确保应用程序在不同平台上一致地工作,无论是开发人员的笔记本电脑还是生产服务器。这消除了“它在我的机器上工作”的问题。</li>
|
|
||||||
<li>效率:容器是轻量级的,因为它们使用共享资源,而没有成熟操作系统的开销。这样可以缩短启动时间并减少资源使用。</li>
|
|
||||||
<li>可扩展性:容器可以根据工作负载轻松扩展或缩减,使其成为分布式应用程序和微服务的理想选择。</li>
|
|
||||||
<li>一致性:容器使开发人员、QA 和运营团队能够在整个应用程序生命周期中拥有一致的环境,从而实现更快、更顺畅的部署管道。</li>
|
|
||||||
<li>安全性:容器提供与其他容器和底层主机系统的隔离级别,这有助于维护应用程序安全性。</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>使用 Docker CLI 处理容器</strong>
|
|
||||||
Docker CLI 提供了多个命令来帮助你创建、管理容器并与之交互。一些常用命令包括:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run:用于创建和启动新容器。
|
|
||||||
</span><span>docker container ls:列出正在运行的容器。
|
|
||||||
</span><span>docker container stop:停止正在运行的容器。
|
|
||||||
</span><span>docker container rm:删除已停止的容器。
|
|
||||||
</span><span>docker exec:在正在运行的容器内执行命令。
|
|
||||||
</span><span>docker logs:获取容器的日志,可用于调试问题。
|
|
||||||
</span></code></pre>
|
|
||||||
<h2 id="docker-volumes"><strong>Docker Volumes</strong></h2>
|
|
||||||
<p>Docker 卷是一种用于保存 Docker 容器生成和使用的数据的机制。它们允许您将数据与容器本身分开,从而轻松备份、迁移和管理持久性数据。</p>
|
|
||||||
<p><strong>为什么卷很重要</strong> </p>
|
|
||||||
<p>Docker 容器本质上是短暂的,这意味着它们可以很容易地停止、删除或替换。虽然这对于应用程序开发和部署非常有用,但在处理持久性数据时会带来挑战。这就是销量的来源。它们提供了一种独立于容器生命周期存储和管理数据的方法。</p>
|
|
||||||
<p><strong>Types of Volumes 卷的类型</strong></p>
|
|
||||||
<p>Docker 中有三种类型的卷:</p>
|
|
||||||
<ul>
|
|
||||||
<li>主机卷 Host Volumes:它们存储在主机的文件系统中,通常位于 /var/lib/docker/volumes 目录中。这些可以很容易地访问,但可能会带来可移植性或文件系统兼容性的问题。</li>
|
|
||||||
<li>匿名卷 Anonymous Volumes:这些卷是在运行容器时自动创建的,无需指定卷。它们的 ID 由 Docker 生成,也存储在主机的文件系统中。</li>
|
|
||||||
<li>命名卷 Named Volumes:与匿名卷类似,命名卷存储在主机的文件系统中。但是,您可以提供自定义名称,以便于在其他容器或备份中引用。</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>使用 Docker CLI 进行卷管理</strong></p>
|
|
||||||
<p>Docker CLI 提供了各种命令来管理卷:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker volume create:创建具有给定名称的新卷。
|
|
||||||
</span><span>docker volume ls:列出系统上的所有卷。
|
|
||||||
</span><span>docker volume inspect:提供有关特定卷的详细信息。
|
|
||||||
</span><span>docker volume rm:删除卷。
|
|
||||||
</span><span>docker volume prune:删除所有未使用的卷。
|
|
||||||
</span></code></pre>
|
|
||||||
<p>若要在容器中使用卷,可以在 docker run 命令中使用 -v 或 --volume 标志。例如:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>docker run -d --name my-container -v my-named-volume:/var/lib/data my-image
|
|
||||||
</span></code></pre>
|
|
||||||
<p>此命令使用“my-image”映像创建名为“my-container”的新容器,并将“my-named-volume”卷挂载到容器内的 /var/lib/data 路径处。</p>
|
|
||||||
<h2 id="docker-networks-docker-wang-luo"><strong>Docker Networks Docker 网络</strong></h2>
|
|
||||||
<p>Docker 网络提供了管理容器通信的基本方法。它允许容器使用各种网络驱动程序相互通信以及与主机通信。通过了解和利用不同类型的网络驱动程序,可以设计容器网络以适应特定方案或应用程序要求。</p>
|
|
||||||
<p><strong>Network Drivers 网络驱动程序</strong></p>
|
|
||||||
<p>Docker 中提供了多个网络驱动程序。在这里,我们将介绍四种最常见的:</p>
|
|
||||||
<ul>
|
|
||||||
<li>bridge:容器的默认网络驱动程序。它创建一个专用网络,容器可以在其中相互通信并与主机通信。此网络上的容器可以通过主机的网络访问外部资源。</li>
|
|
||||||
<li>host:此驱动程序删除网络隔离,并允许容器共享主机的网络。它适用于网络性能至关重要的情况,因为它可以最大程度地减少容器网络的开销。</li>
|
|
||||||
<li>none:此网络驱动程序禁用容器网络。使用此驱动程序的容器在隔离环境中运行,无需任何网络访问。</li>
|
|
||||||
<li>overlay:此网络驱动程序使部署在不同主机上的容器能够相互通信。它旨在与 Docker Swarm 配合使用,非常适合多主机或基于集群的容器部署。</li>
|
|
||||||
</ul>
|
|
||||||
<p><strong>管理 Docker 网络</strong></p>
|
|
||||||
<p>Docker CLI 提供了各种命令来管理网络。以下是一些有用的命令:</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>列出所有网络:docker network ls
|
|
||||||
</span><span>检查网络:docker network inspect <network_name>
|
|
||||||
</span><span>创建新网络:docker network create --driver <driver_type> <network_name>
|
|
||||||
</span><span>将容器连接到网络:docker network connect <network_name> <container_name>
|
|
||||||
</span><span>断开容器与网络的连接:docker network disconnect <network_name> <container_name>
|
|
||||||
</span><span>移除网络:docker network rm <network_name>
|
|
||||||
</span></code></pre>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/docker-learn-8/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">Docker学习笔记(八)</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/about-time/">
|
|
||||||
<span class="button__text">乱七八糟:时间的标准与格式</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,4 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Hack typeface https://github.com/source-foundry/Hack
|
|
||||||
* License: https://github.com/source-foundry/Hack/blob/master/LICENSE.md
|
|
||||||
*/@font-face{font-family:"Hack";src:url("fonts/hack-regular.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-regular.woff?sha=3114f1256") format("woff");font-weight:400;font-style:normal}@font-face{font-family:"Hack";src:url("fonts/hack-bold-subset.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-bold-subset.woff?sha=3114f1256") format("woff");font-weight:700;font-style:normal}@font-face{font-family:"Hack";src:url("fonts/hack-italic-subset.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-italic-webfont.woff?sha=3114f1256") format("woff");font-weight:400;font-style:italic}@font-face{font-family:"Hack";src:url("fonts/hack-bolditalic-subset.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-bolditalic-subset.woff?sha=3114f1256") format("woff");font-weight:700;font-style:italic}
|
|
@ -1,4 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Hack typeface https://github.com/source-foundry/Hack
|
|
||||||
* License: https://github.com/source-foundry/Hack/blob/master/LICENSE.md
|
|
||||||
*/@font-face{font-family:"Hack";src:url("fonts/hack-regular.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-regular.woff?sha=3114f1256") format("woff");font-weight:400;font-style:normal}@font-face{font-family:"Hack";src:url("fonts/hack-bold.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-bold.woff?sha=3114f1256") format("woff");font-weight:700;font-style:normal}@font-face{font-family:"Hack";src:url("fonts/hack-italic.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-italic.woff?sha=3114f1256") format("woff");font-weight:400;font-style:italic}@font-face{font-family:"Hack";src:url("fonts/hack-bolditalic.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-bolditalic.woff?sha=3114f1256") format("woff");font-weight:700;font-style:italic}
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
|||||||
.footer{padding:40px 0;flex-grow:0;opacity:.5}.footer__inner{display:flex;align-items:center;justify-content:space-between;margin:0;width:760px;max-width:100%}@media (max-width: 899px){.footer__inner{flex-direction:column}}.footer a{color:inherit}.footer .copyright{display:flex;flex-direction:row;align-items:center;font-size:1rem;color:var(--light-color-secondary)}.footer .copyright--user{margin:auto;text-align:center}.footer .copyright>*:first-child:not(:only-child){margin-right:10px}@media (max-width: 899px){.footer .copyright>*:first-child:not(:only-child){border:none;padding:0;margin:0}}@media (max-width: 899px){.footer .copyright{flex-direction:column;margin-top:10px}}@media (max-width: 899px){.footer .copyright-theme-sep{display:none}}@media (max-width: 899px){.footer .copyright-theme{font-size:.75rem}}
|
|
@ -1,324 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Dich'blog</title>
|
|
||||||
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5">
|
|
||||||
<meta name="robots" content="noodp"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/style.css">
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/blue.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/color/background_dark.css">
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://blog.dich.ink/font-hack-subset.css">
|
|
||||||
|
|
||||||
<meta name="description" content="">
|
|
||||||
|
|
||||||
<meta property="og:description" content="">
|
|
||||||
<meta property="og:title" content="Dich'blog">
|
|
||||||
<meta property="og:type" content="article">
|
|
||||||
<meta property="og:url" content="https://blog.dich.ink/git/">
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:description" content="">
|
|
||||||
<meta name="twitter:title" content="Dich'blog">
|
|
||||||
<meta property="twitter:domain" content="blog.dich.ink">
|
|
||||||
<meta property="twitter:url" content="https://blog.dich.ink/git/">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="RSS" href="https://blog.dich.ink/atom.xml">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="">
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<header class="header">
|
|
||||||
<div class="header__inner">
|
|
||||||
<div class="header__logo">
|
|
||||||
|
|
||||||
<a href="https://blog.dich.ink" style="text-decoration: none;">
|
|
||||||
<div class="logo">
|
|
||||||
|
|
||||||
Dich'blog
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<nav class="menu">
|
|
||||||
<ul class="menu__inner">
|
|
||||||
<li class="active"><a href="https://blog.dich.ink">blog</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/tags">tags</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/archive">archive</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/about">about me</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://blog.dich.ink/links">links</a></li>
|
|
||||||
|
|
||||||
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">github</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</header>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<div class="post">
|
|
||||||
|
|
||||||
<h1 class="post-title"><a href="https://blog.dich.ink/git/">乱七八糟:Git使用简明手册</a></h1>
|
|
||||||
<div class="post-meta-inline">
|
|
||||||
|
|
||||||
<span class="post-date">
|
|
||||||
2023-12-15
|
|
||||||
</span>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="post-tags-inline">
|
|
||||||
:: tags:
|
|
||||||
<a class="post-tag" href="https://blog.dich.ink/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
|
||||||
<p>前言 Git,作为现代软件开发中不可或缺的版本控制工具,常常让初学者感到困惑。本文旨在介绍 Git 的全流程安装和基本使用,希望能够帮助新手更轻松地理解和掌握 Git 的基本概念和操作。</p>
|
|
||||||
<span id="continue-reading"></span><h2 id="an-zhuang-git">安装git</h2>
|
|
||||||
<p>Windows:<a href="https://git-scm.com/download/">https://git-scm.com/download/</a></p>
|
|
||||||
<p>Archlinux:<code>sudo pacman -S git</code></p>
|
|
||||||
<p>安装完成后检查版本:<code>git --version</code></p>
|
|
||||||
<h2 id="chuang-jian-xin-cang-ku">创建新仓库</h2>
|
|
||||||
<p>如果你的目录不是一个 Git 仓库,你需要先初始化。</p>
|
|
||||||
<p>创建新文件夹,在你的项目目录中运行以下命令:<br />
|
|
||||||
<code>git init</code></p>
|
|
||||||
<p>设置默认仓库为 main,避免因为 main/master 名称不同的牛马问题:</p>
|
|
||||||
<p><code>git init --initial-branch=main</code></p>
|
|
||||||
<h2 id="ke-long-cang-ku">克隆仓库</h2>
|
|
||||||
<p>执行如下命令以创建一个本地仓库的克隆版本:<br />
|
|
||||||
<code>git clone /path/to/repository</code><br />
|
|
||||||
如果是远端服务器上的仓库,你的命令会是这个样子:<br />
|
|
||||||
<code>git clone username@host:/path/to/repository</code></p>
|
|
||||||
<h2 id="lian-jie-yuan-cheng-cang-ku">连接远程仓库</h2>
|
|
||||||
<p>生成密钥:</p>
|
|
||||||
<p><code>ssh-keygen -t rsa -b 4096 -C "your_email@example.com"</code></p>
|
|
||||||
<p>可以生成多个不同名字的密钥:</p>
|
|
||||||
<p><code>ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/github_key1</code></p>
|
|
||||||
<p><code>ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/github_key2</code></p>
|
|
||||||
<p>使用 <code>ssh-add</code> 命令将生成的密钥添加到 SSH 代理中。</p>
|
|
||||||
<p><code>ssh-add ~/.ssh/github_key1</code></p>
|
|
||||||
<p><code>ssh-add ~/.ssh/github_key2</code></p>
|
|
||||||
<p>在 <code>~/.ssh/config</code> 文件中配置不同的主机别名以及相应的密钥文件。编辑该文件并添加以下内容:</p>
|
|
||||||
<p><code># GitHub repository 1</code></p>
|
|
||||||
<p><code>Host github1</code></p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>HostName github.com
|
|
||||||
</span><span>
|
|
||||||
</span><span>User git
|
|
||||||
</span><span>
|
|
||||||
</span><span>IdentityFile ~/.ssh/github_key1
|
|
||||||
</span></code></pre>
|
|
||||||
<p><code># GitHub repository 2</code></p>
|
|
||||||
<p><code>Host github2</code></p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>HostName github.com
|
|
||||||
</span><span>
|
|
||||||
</span><span>User git
|
|
||||||
</span><span>
|
|
||||||
</span><span>IdentityFile ~/.ssh/github_key2
|
|
||||||
</span></code></pre>
|
|
||||||
<p>连接到github:</p>
|
|
||||||
<p><code>ssh -T git@github.com</code></p>
|
|
||||||
<p>添加远程仓库:</p>
|
|
||||||
<p><code>git remote add origin <remote_repository_url></code></p>
|
|
||||||
<p>比如我已经在 GitHub 上创建了一个名为 <code>dichos</code> 的仓库,你可以使用以下命令将其添加为远程仓库:</p>
|
|
||||||
<p><code>git remote add origin git@github.com:Dichgrem/dichos.git</code></p>
|
|
||||||
<p>设置远程仓库</p>
|
|
||||||
<p><code>git remote set-url origin git@github.com:Dichgrem/dichos.git</code></p>
|
|
||||||
<h2 id="gong-zuo-liu">工作流</h2>
|
|
||||||
<p>本地仓库由 git 维护的三棵“树”组成。第一个是你的 <code>工作目录</code>,它持有实际文件;第二个是 <code>暂存区(Index)</code>,它像个缓存区域,临时保存你的改动;最后是 <code>HEAD</code>,它指向你最后一次提交的结果。</p>
|
|
||||||
<h2 id="chuang-jian-yi-ge-fen-zhi">创建一个分支</h2>
|
|
||||||
<p><code>git branch main</code></p>
|
|
||||||
<p>这将创建一个名为 main 的分支。</p>
|
|
||||||
<h2 id="shan-chu-fen-zhi">删除分支</h2>
|
|
||||||
<p><code>git branch -d master</code></p>
|
|
||||||
<p>使用大写强制删除</p>
|
|
||||||
<p><code>git branch -D master</code></p>
|
|
||||||
<h2 id="tian-jia-he-ti-jiao">添加和提交</h2>
|
|
||||||
<p>你可以提出更改(把它们添加到暂存区),使用如下命令:<br />
|
|
||||||
<code>git add <filename></code><br />
|
|
||||||
<code>git add *</code><br />
|
|
||||||
这是 git 基本工作流程的第一步;使用如下命令以实际提交改动:<br />
|
|
||||||
<code>git commit -m "代码提交信息"</code>如:</p>
|
|
||||||
<p><code>git commit -m "Initial commit"</code><br />
|
|
||||||
现在,你的改动已经提交到了 <strong>HEAD</strong>,但是还没到你的远端仓库。</p>
|
|
||||||
<h2 id="tui-song-gai-dong">推送改动</h2>
|
|
||||||
<p>你的改动现在已经在本地仓库的 <strong>HEAD</strong> 中了。执行如下命令以将这些改动提交到远端仓库:<br />
|
|
||||||
<code>git push origin master</code><br />
|
|
||||||
可以把 <em>master</em> 换成你想要推送的任何分支。</p>
|
|
||||||
<p>如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,你可以使用如下命令添加:<br />
|
|
||||||
<code>git remote add origin <server></code><br />
|
|
||||||
如此你就能够将你的改动推送到所添加的服务器上去了。</p>
|
|
||||||
<h2 id="he-bing-fen-zhi">合并分支</h2>
|
|
||||||
<p>分支是用来将特性开发绝缘开来的。在你创建仓库的时候,<em>master</em> 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。</p>
|
|
||||||
<p>创建一个叫做“feature_x”的分支,并切换过去:<br />
|
|
||||||
<code>git checkout -b feature_x</code><br />
|
|
||||||
切换回主分支:<br />
|
|
||||||
<code>git checkout master</code><br />
|
|
||||||
再把新建的分支删掉:<br />
|
|
||||||
<code>git branch -d feature_x</code><br />
|
|
||||||
除非你将分支推送到远端仓库,不然该分支就是 <em>不为他人所见的</em>:<br />
|
|
||||||
<code>git push origin <branch></code></p>
|
|
||||||
<h2 id="geng-xin-yu-he-bing">更新与合并</h2>
|
|
||||||
<p>要更新你的本地仓库至最新改动,执行:<br />
|
|
||||||
<code>git pull</code><br />
|
|
||||||
以在你的工作目录中 <em><strong>获取</strong>(fetch)</em> 并 <em><strong>合并</strong>(merge)</em> 远端的改动。<br />
|
|
||||||
要合并其他分支到你的当前分支(例如 master),执行:<br />
|
|
||||||
<code>git merge <branch></code><br />
|
|
||||||
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现_冲突(conflicts)<em>。 这时候就需要你修改这些文件来手动合并这些_冲突(conflicts)</em>。改完之后,你需要执行如下命令以将它们标记为合并成功:<br />
|
|
||||||
<code>git add <filename></code><br />
|
|
||||||
在合并改动之前,你可以使用如下命令预览差异:<br />
|
|
||||||
<code>git diff <source_branch> <target_branch></code></p>
|
|
||||||
<h2 id="biao-qian">标签</h2>
|
|
||||||
<p>为软件发布创建标签是推荐的。这个概念早已存在,在 SVN 中也有。你可以执行如下命令创建一个叫做 <em>1.0.0</em> 的标签:<br />
|
|
||||||
<code>git tag 1.0.0 1b2e1d63ff</code><br />
|
|
||||||
<em>1b2e1d63ff</em> 是你想要标记的提交 ID 的前 10 位字符。可以使用下列命令获取提交 ID:<br />
|
|
||||||
<code>git log</code><br />
|
|
||||||
你也可以使用少一点的提交 ID 前几位,只要它的指向具有唯一性。</p>
|
|
||||||
<h2 id="ri-zhi">日志</h2>
|
|
||||||
<p>如果你想了解本地仓库的历史记录,最简单的命令就是使用:<br />
|
|
||||||
<code>git log</code><br />
|
|
||||||
你可以添加一些参数来修改他的输出,从而得到自己想要的结果。 只看某一个人的提交记录:<br />
|
|
||||||
<code>git log --author=bob</code><br />
|
|
||||||
一个压缩后的每一条提交记录只占一行的输出:<br />
|
|
||||||
<code>git log --pretty=oneline</code><br />
|
|
||||||
或者你想通过 ASCII 艺术的树形结构来展示所有的分支, 每个分支都标示了他的名字和标签:<br />
|
|
||||||
<code>git log --graph --oneline --decorate --all</code><br />
|
|
||||||
看看哪些文件改变了:<br />
|
|
||||||
<code>git log --name-status</code><br />
|
|
||||||
这些只是你可以使用的参数中很小的一部分。更多的信息,参考:<br />
|
|
||||||
<code>git log --help</code></p>
|
|
||||||
<h2 id="ti-huan-ben-di-gai-dong">替换本地改动</h2>
|
|
||||||
<p>假如你操作失误(当然,这最好永远不要发生),你可以使用如下命令替换掉本地改动:<br />
|
|
||||||
<code>git checkout -- <filename></code><br />
|
|
||||||
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。</p>
|
|
||||||
<p>假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:<br />
|
|
||||||
<code>git fetch origin</code><br />
|
|
||||||
<code>git reset --hard origin/master</code></p>
|
|
||||||
<h2 id="xiu-gai-mo-ren-fen-zhi">修改默认分支</h2>
|
|
||||||
<p>git目前默认的主分支为 master,和 github 默认分支 main 不同,这使得默认配置下 git 往往连接失败。可以通过下两种方法改变默认分支。在本地 git init 时将默认分支修改成main</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>1. git --version //查看版本
|
|
||||||
</span><span>2. git config --global init.defaultBranch main //将默认分支修改成main
|
|
||||||
</span><span>3. git init //本地项目文件夹内创建.git文件夹
|
|
||||||
</span><span>4. git add . //添加到暂存区
|
|
||||||
</span><span>5. git commit -a [描述的内容] //记录修改行为
|
|
||||||
</span><span>6. git pull --rebase origin main //拉github上的readme.md
|
|
||||||
</span><span>7. git push origin main //上传代码
|
|
||||||
</span></code></pre>
|
|
||||||
<p>也可以不修改git上的默认分支,而是修改github上库的默认分支。</p>
|
|
||||||
<h2 id="windowsxia-gitshi-yong-dai-li">Windows下git使用代理</h2>
|
|
||||||
<p>由于网络环境的差异,Git连接github需要代理,或者全局模式。Git支持四种协议,而除本地传输外,还有:git://, ssh://, 基于HTTP协议,这些协议又被分为哑协议(HTTP协议)和智能传输协议。对于这些协议,要使用代理的设置也有些差异:</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>使用 <code>git协议</code> 时,设置代理需要配置 <code>core.gitproxy</code></p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>使用 <code>HTTP协议</code> 时,设置代理需要配置 <code>http.proxy</code></p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>而使用 <code>ssh协议</code> 时,代理需要配置ssh的 <code>ProxyCommand</code> 参数</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p>由于个人需求仅仅是 HTTP 的代理(相对来说,HTTP 有比较好的通适性,Windows 配置git/ssh比较棘手),设置的时候,只需要针对单个设置 <code>http.proxy</code> 即可,在需要使用代理的项目下面使用 <code>git bash</code> 如下命令进行设置(你的Uri和port可能和我的不同):</p>
|
|
||||||
<p><code>git config http.proxy</code> <a href="http://127.0.0.1:8088">http://127.0.0.1:2080</a> <code># 也可以是uri:port形式</code></p>
|
|
||||||
<p>这个是不需要鉴权的代理设置,如果需要鉴权,可能需要添加用户名密码信息:</p>
|
|
||||||
<p><code>git config http.proxy</code> <a href="http://username:password@127.0.0.1:8088">http://username:password@127.0.0.1:2080</a></p>
|
|
||||||
<p>如果git的所有项目都需要启用代理,那么可以直接启用全局设置:</p>
|
|
||||||
<p><code>git config --global http.proxy</code> <a href="http://127.0.0.1:8088">http://127.0.0.1:2080</a></p>
|
|
||||||
<p>为了确认是否已经设置成功,可以使用 <code>--get</code> 来获取:</p>
|
|
||||||
<p><code>git config --get --global http.proxy</code></p>
|
|
||||||
<p>这样可以看到你设置在global的 <code>http.proxy</code> 值。 </p>
|
|
||||||
<p>需要修改的时候,再次按照上面的方法设置即可,git 默认会覆盖原有的配置值。</p>
|
|
||||||
<p>当我们的网络出现变更时,可能需要删除掉原有的代理配置,此时需要使用 <code>--unset</code> 来进行配置:</p>
|
|
||||||
<p><code>git config --global --unset http.proxy</code></p>
|
|
||||||
<p>在命令之后,指定位置的设置值将会被清空,你可以再次使用 <code>--get</code> 来查看具体的设置情况。</p>
|
|
||||||
<p>如果使用了 HTTPS,肯呢个会碰到 HTTPS 证书错误的情况,比如提示: <code>SSL certificate problem</code> ,此时,可以尝试将 <code>sslVerify</code> 设置为 <code>false</code> :</p>
|
|
||||||
<p><code>git config --global http.sslVerify false</code></p>
|
|
||||||
<p>恩,到此,可以试试 git 来获取/更改项目了,此时,项目应该是使用代理来进行通讯的。</p>
|
|
||||||
<h2 id="zhu-yi">注意</h2>
|
|
||||||
<ul>
|
|
||||||
<li>不要多次使用不同的参数来设置代理,一般使用文中两种方式酌情选用即可, <code>--global</code> , <code>--system</code> , <code>--local</code> 各级设置后,可能会给自己带来不必要的麻烦。git默认是先到 git Repository 的配置文件中查找配置文件,如果没有才会到 <code>--global</code> 设置的文件中查找,因此,单个项目文件中的设置会覆盖 <code>--global</code> 的设置。</li>
|
|
||||||
<li>使用 <code>--global</code> 来配置的信息保存在当前用户的根目录下的 <code>.config</code> 文件中,而仓库中的配置保存在项目仓库的根目录下的 <code>.git/config</code> 文件中。</li>
|
|
||||||
<li>如果是 Linux 的用户,建议全局代理。</li>
|
|
||||||
</ul>
|
|
||||||
<blockquote>
|
|
||||||
<p>20240501更新完系统出现以下报错:</p>
|
|
||||||
</blockquote>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>sign_and_send_pubkey: signing failed for RSA "/home/dich/.ssh/id_rsa" from agent: agent refused operation
|
|
||||||
</span><span>git@github.com: Permission denied (publickey).
|
|
||||||
</span><span>致命错误:无法读取远程仓库。
|
|
||||||
</span><span>
|
|
||||||
</span><span>请确认您有正确的访问权限并且仓库存在。
|
|
||||||
</span></code></pre>
|
|
||||||
<p>解决方法是使用 ssh-add 命令重新添加你的密钥。</p>
|
|
||||||
<pre style="background-color:#151515;color:#e8e8d3;"><code><span>ssh-add ~/.ssh/id_rsa
|
|
||||||
</span></code></pre>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="pagination">
|
|
||||||
<div class="pagination__title">
|
|
||||||
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
<div class="pagination__buttons">
|
|
||||||
<span class="button previous">
|
|
||||||
<a href="https://blog.dich.ink/junk-cleanup/">
|
|
||||||
<span class="button__icon">←</span>
|
|
||||||
<span class="button__text">乱七八糟:垃圾清理的艺术</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
<span class="button next">
|
|
||||||
<a href="https://blog.dich.ink/about-working/">
|
|
||||||
<span class="button__text">乱七八糟:应届生工作指南</span>
|
|
||||||
<span class="button__icon">→</span>
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer__inner">
|
|
||||||
<div class="copyright">
|
|
||||||
<span>©
|
|
||||||
2024
|
|
||||||
Dichgrem</span>
|
|
||||||
<span class="copyright-theme">
|
|
||||||
<span class="copyright-theme-sep">:: </span>
|
|
||||||
Theme: <a href="https://github.com/pawroman/zola-theme-terminimal/">Terminimal</a> by pawroman
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script async defer src="http://173.249.208.93:12345/tracker.js" data-website-id="cluckwxwg0005qf4n55m737sz"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user