介绍 当通过 shell 会话与您的服务器交互时,您的 shell 会编译许多信息来确定其行为和对资源的访问。其中一些设置包含在配置设置中,其他设置由用户输入确定。 shell 跟踪所有这些设置和细节的一种方法是通过它维护的一个称为环境的区域。环境是 shell 在每次启动包含定义系统属性的变量的会话时构建的区域。 在本指南中,我们将讨论如何与环境交互以及如何通过配置文件交互地读取或设置环境和 shell 变量。 要使用浏览器中的终端来学习本教程,请单击Launch an Interactive Terminal!下面的按钮: 启动互动终端! 否则,如果您想继续使用本地系统或远程服务器,请打开终端并在那里运行本教程中的命令。 环境和环境变量如何工作 每次产生 shell 会话时,都会发生一个进程来收集和编译 shell 进程及其子进程应该可用的信息。它从系统上的各种不同文件和设置中获取这些设置的数据。 环境提供了一种媒介,通过该媒介,shell 进程可以获取或设置设置,然后将这些设置传递给其子进程。 该环境被实现为表示键值对的字符串。如果传递多个值,它们通常用冒号 ( 🙂 字符分隔。每对通常看起来像这样: KEY=value1:value2:… 如果该值包含重要的空格,则使用引号: KEY=”value with spaces” 这些场景中的关键是变量。它们可以是两种类型之一,环境变量或外壳变量。 环境变量是为当前 shell 定义的变量,由任何子 shell 或进程继承。环境变量用于将信息传递到从 shell 产生的进程中。 Shell 变量是专门包含在设置或定义它们的Shell 中的变量。它们通常用于跟踪临时数据,例如当前工作目录。 按照惯例,这些类型的变量通常使用全部大写字母定义。这有助于用户区分其他上下文中的环境变量。 打印外壳和环境变量 每个 shell 会话都会跟踪自己的 shell 和环境变量。我们可以通过几种不同的方式访问这些。 我们可以使用envorprintenv命令查看所有环境变量的列表。在默认状态下,它们的功能应该完全相同: ..
Category : 教程系列
介绍 Angular 中的查询参数允许跨应用程序中的任何路由传递可选参数。查询参数不同于常规的路由参数,它只在一条路由上可用,不是可选的(例如,/product/:id)。 在本文中,我们将参考一个显示产品列表的应用程序示例。我们将提供接收组件可以读取和操作的可选值order和price-range值。提供的值将影响产品列表的排序和过滤。 使用查询参数 Router.navigate 如果您使用命令导航到路由Router.navigate,您将使用queryParams. 在我们的示例中,如果我们希望将访问者路由到按受欢迎程度排序的列表中的产品,则如下所示: goProducts() { this.router.navigate([‘/products’], { queryParams: { order: ‘popular’ } }); } 这将产生一个如下所示的 URL: http://localhost:4200/products?order=popular 您还可以提供多个查询参数。在我们的示例中,如果我们想将访问者路由到按受欢迎程度排序并使用昂贵价格范围过滤的列表的产品,它看起来像这样: goProducts() { this.router.navigate([‘/products’], { queryParams: { order: ‘popular’, ‘price-range’: ‘not-cheap’ } }); } 这将产生一个如下所示的 URL: http://localhost:4200/products?order=popular&price-range=not-cheap 现在,您已经了解了如何queryParams使用来设置查询参数。 保留或合并查询参数 queryParamsHandling 默认情况下,任何后续导航操作都会丢失查询参数。为了防止这种情况,您可以设置queryParamsHandling为’preserve’或’merge’。 在我们的示例中,如果我们希望将访问者从带有查询参数{ order: ‘popular’ }的/users页面路由到该页面,同时保留查询参数,我们将使用’preserve’: goUsers() { this.router.navigate([‘/users’], { queryParamsHandling: ‘preserve’ }); } ..
介绍 Resize Observer是一个新的 JavaScript API,它与Intersection Observer API等其他观察者 API 非常相似。它允许在元素大小发生变化时通知元素。 元素大小改变的最常见原因是当视口被调整大小或设备的方向在纵向和横向之间改变时。到目前为止,我们不得不依赖全局window.resize事件来监听调整大小事件并检查某些元素是否改变了大小。由于大量的触发事件,这很容易导致性能问题。换句话说,使用window.resize通常是浪费的,因为它会通知我们每个视口大小的变化,而不仅仅是当元素的大小实际发生变化时。 Resize Observer API 的另一个用例是窗口的 resize 事件无法帮助我们处理:当动态添加或从 DOM 中删除元素时,会影响父元素的大小。这在现代单页应用程序中越来越频繁。 在本教程中,您将了解 React Observer 的基本用法。您还将在自己的前端代码中实现 React Observer 并测试浏览器支持。 先决条件 要成功完成本教程,您需要具备以下条件: 对 HTML 的理解。该如何建立与HTML系列网站是一个伟大的地方开始。 CSS的基础知识。该如何建立一个网站使用CSS系列可以帮助你实现这一目标。 了解 JavaScriptfor和forEach循环。要了解有关循环的更多信息,请访问这篇名为For Loops、For…Of Loops 和 For…In Loops in JavaScript 的文章。该文章提供了如何进行彻底的解释forEach循环工作。 了解 JavaScript 中的 DOM 操作。如果您想了解有关此主题的更多信息,请访问了解 DOM — 文档对象模型系列。 步骤 1 — 了解 Resize Observe ..
介绍 命令行参数是一种为命令提供额外输入的方法。您可以使用命令行参数为 Node.js 脚本增加灵活性和自定义。 在本文中,您将了解参数向量、检测参数标志、处理多个参数和值以及使用commander包。 先决条件 要完成本教程,您需要: Node.js 的本地开发环境。遵循如何安装 Node.js 并创建本地开发环境。 本教程已通过 Node v16.10.0、npmv7.12.2 和commanderv7.2.0 验证。 使用参数向量 Node.js 支持传递参数的列表,称为参数向量。参数向量是process.argvNode.js 脚本中可用的数组。 该数组包含传递给脚本的所有内容,包括 Node.js 可执行文件以及脚本的路径和文件名。 如果您要运行以下命令: node example.js -a -b -c 您的参数向量将包含五个项目: [ ‘/usr/bin/node’, ‘/path/to/example.js’, ‘-a’, ‘-b’, ‘-c’ ] 至少,不带任何参数运行的脚本仍将包含数组中的两个项目,node可执行文件和正在运行的脚本文件。 通常,参数向量与参数计数( argc)配对,它告诉您传入了多少个参数。 Node.js 缺少这个特定变量,但我们总是可以获取length参数向量数组的 : 例子.js if (process.argv.length === 2) { console.error(‘Expected at least one argument!’); process.exit(1); ..
介绍 虽然许多用户需要像 MariaDB 这样的数据库管理系统的功能,但他们可能觉得仅仅通过 MariaDB 提示与系统交互并不舒服。 phpMyAdmin 的创建是为了让用户可以通过 Web 界面与 MariaDB 进行交互。在本指南中,我们将讨论如何安装和保护 phpMyAdmin,以便您可以安全地使用它来管理 Debian 10 系统上的数据库。 先决条件 在开始使用本指南之前,您需要具备以下条件: 访问 Debian 10 服务器。此服务器应具有具有sudo特权的非 root 用户和配置为ufw. 要进行设置,请按照我们的 Debian 10 初始服务器设置指南进行操作。 灯管(大号inux下,一个帕什,中号ariaDB和P HP)堆叠安装您的Debian 10的服务器上。按照我们在 Debian 10上安装 LAMP 堆栈的指南进行设置。 注意: MariaDB是 MySQL 的一个社区开发的分支,虽然这两个程序密切相关,但它们并不是完全可以互换的。虽然 phpMyAdmin 是专门为管理 MySQL 数据库而设计的,并在各种对话框中引用 MySQL,但请放心,您安装的 MariaDB 将与 phpMyAdmin 一起正常工作。 最后,在使用像 phpMyAdmin 这样的软件时还有一些重要的安全考虑,因为它: 直接与您的 MariaDB 安装通信 使用 ..
该clearfix现在黑客已经存在了很长一段时间,和修补程序可以与浮动比它们更大的容器发生的元素的一个问题。 下面是问题的一个例子: .box { padding: 1rem; background: rgba(255, 105, 180, 0.1); border: 3px dashed rgba(255, 105, 180, 0.1); border-radius: 5px; } .box img { float: left; } <div class=”box”> <img class=”sammy” src=”Sammy_punk.svg” width=”200″ height=”128″ alt=”Sammy!”> Lorem ipsum dolor sit amet, consectetur adipiscing elit… </div> Lorem ipsum dolor 坐 amet,consectetur adipiscing 精英… 旧的清除修复黑客 旧的修复方法是overflow: auto在容器上设置,因此通常会在包含浮动元素的元素上创建和使用这样的类: .clearfix ..
虚拟机,通常也称为VM,是运行在虚拟化软件或管理程序之上的访客系统。VirtualBox、VMWare 和 QEMU 是流行工具的示例,它们能够模拟网络、磁盘和其他硬件资源以构建充当物理计算机的虚拟化环境。这些环境彼此隔离,并与安装虚拟化软件的主机隔离,每个环境都运行不同的操作系统。 虚拟机主要用于云计算,以在较小规模的虚拟专用服务器之间分配硬件资源。与容器相比,虚拟机需要更多资源,但这使它们能够无缝模拟整个服务器和桌面。 虚拟机的另一个重要用例是在开发环境的上下文中。借助虚拟机,开发人员能够在独立于基本操作系统的隔离、预配置环境中处理他们的应�..
介绍 在本文中,您将探索React Hooks,这是 React 最新版本 16.8 中的一项新功能。React Hooks 是函数,作为状态和生命周期方法的模块化替代品。React Hooks 允许您构建基于函数的组件,而不是类组件。 先决条件 要完成本教程,需要了解 React。要了解有关 React 的更多信息,请查看如何在 React系列中编码。 分析useState()方法 在类组件中,您可以将 React 导入index.js文件并创建类对象的实例JustAnotherCounter。您将添加一个状态和一个函数来更新属性count: 索引.js import React, { Component } from ‘react’; class ScoreCounter extends Component { state = { count: 0 }; setCount = () => { this.setState({ count: this.state.count + 1 }); }; render() { return ..
本教程的先前版本由Brian Boucheron编写 介绍 MariaDB是一个开源关系数据库管理系统,通常用作 MySQL 的替代品,作为流行的LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆栈的数据库部分。它旨在成为 MySQL 的替代品。 本快速入门教程介绍了如何在 Ubuntu 20.04 服务器上安装 MariaDB 并使用安全的初始配置对其进行设置。它还将介绍如何为密码访问设置额外的管理帐户。 先决条件 要学习本教程,您需要一台运行 Ubuntu 20.04 的服务器。此服务器应具有非 root 管理用户和使用 UFW 配置的防火墙。按照我们针对 Ubuntu 20.04 的初始服务器设置指南进行设置。 第 1 步 – 安装 MariaDB 在安装 MariaDB 之前,使用以下命令更新服务器上的包索引apt: sudo apt update 然后安装包: sudo apt install mariadb-server 从默认存储库安装时,MariaDB 将自动开始运行。要对此进行测试,请检查其状态。 sudo systemctl status mariadb 您将收到类似于以下内容的输出: Output● mariadb.service – MariaDB 10.3.22 ..
介绍 为网站配置服务器时,您可能需要实施一些常见的条件操作。例如,也许某些文件应该被用户的浏览器缓存的时间比其他文件长,或者网站的某些部分应该只允许通过安全连接(例如需要用户密码的任何内容),而网站的其他部分则不吨。 另一个简单、常见的例子是确保当一个新网页代替旧网页发布时,所有旧地址都将重定向到正确的位置。这很有用,因为这意味着旧链接和书签不会停止工作,并且还保留了 Google 的缓存。 Nginx 的 map 模块允许您在 Nginx 的配置文件中创建变量,其值是有条件的——也就是说,它们依赖于其他变量的值。在本指南中,我们将了解如何使用 Nginx 的地图模块实现两个示例:如何设置从旧网站 URL 到新网站的重定向列表以及如何创建国家/地区许可名单以控制您网站的流量。 先决条件 要学习本教程,您需要: 使用此初始服务器设置教程设置的一台 Ubuntu 16.04 服务器,包括 sudo 非 root 用户。 按照如何在 Ubuntu 16.04 上安装 Nginx 教程,在您的服务器上安装 Nginx。 步骤 1 — 创建和测试示例网页 首先,我们将创建一个代表新发布网站的测试文件。我们将使用此文件来测试我们的配置。 让我们index.html在默认的 Nginx 网站目录中创建一个简单的页面。这个文件只有纯文本描述里面的内容:Home。 sudo sh -c ‘echo “Home” > /var/www/html/index.html’ 有了这个测试文件,接下来我们将检查它是否正确地使用curl. 我们不需要index.html为此命令指定,因为如果没有提供确切的文件名,则默认情况下会提供该文件。 curl http://localhost/ 作为回应,您应该看到一个单词Home,如下所示: Nginx 响应 Home ..