history 命令可用于浏览历史执行过的命令,该命令在 Bourne Shell 中不可用,但 Bash 和 Korn 则支持该特性。在 Bash 和 Korn 中,每一次命令的执行都被视为一次事件,并且配有相应的事件号(Event Number)。在需要的情况下,可以通过事件号将执行过的命令再次执行。

不带选项的 history 会在终端输出所有执行过的历史命令。

原文:Differences Between Single and Double Brackets in Bash

概述

当我们在 Bash 中做变量比较时,通常可以交换地使用单括号 [] 和双括号 [[]]。比如,我们可以使用表达式 [ 3 -eq 3 ][[ 3 -eq 3 ]] 来比较 3 是否等于 3。两个表达式都会执行成功,那两者的区别是什么呢?

在本文中,我们会讨论单括号和双括号之间的一些区别。

jobs 命令主要用于显示系统中的任务列表及运行状态。在 Linux 中,每一个 job 都有一个唯一 ID,系统管理员通过任务 ID 对任务进行管理,可使其在前后或后台运行。通常任务和进程是等价的,只在于说侧重不同。即任务之于用户,相应地,进程之于系统。

jq 是 Linux 下处理 JSON 文档字符串的命令行工具,可用于过滤并格式化输出特定的内容。其官网的手册详尽地介绍了 jq 的使用方法,内容相当丰富。本文则注重对过滤器的使用,并通过不同的示例加以说明。

本文主要介绍如何基于 Docker 生成容器化应用以及配置 Nginx 来实现 Web 服务的负载均衡,包含以下内容: Go 简易 Web 程序(hello world) 通过 Dockerfile 生成镜像 Nginx 配置 Docker Compose 多容器启动 Go Web 程序 本次配置使用 Go Web 程序作为后端服务,其作用是接收请求并返回“hello-world”,代码如下: // main.go package main import ( "log" "net/http" "os" ) func main() { logFile, err := os.OpenFile("/var/log/app.log",...

Redis 集群是基于“主从复制”特性之上的分布式 Redis 版本,可提供高并发、高性能、高可用的数据库服务。Redis 集群突破了单台服务器的内存局限,集群中的每一个节点都可以存储数据,同时维护着 “key-node” 的映射表。本文记录了 3 主 3 从的 Redis 集群的配置过程,主要内容包括:

  1. Redis 集群的配置过程;
  2. 集群相关命令;
  3. Go 存取集群数据;

Redis 主从复制可以实现数据库的读写分离,即主节点负责接收写请求、从节点负责接收读请求,是高性能 Redis 服务的基础。所以配置 Redis 主从复制应当作为开发者的技能之一,后文内容包括:

  1. 单机配置一主二从的主从复制服务
  2. 服务验证;