Use Go Embed

Go1.16引入新的//go:embed指令,可以在编译时嵌入文件和目录,并对其进行访问。通过它,真正做到部署时只有一个二进制文件。

背景:2021-02-16,Go Team正式发布了Go1.16。该版本包含下面的一些重要变化:

  • embed 包和 //go:embed 指令
  • 增加对 macOS ARM64 的支持
  • 默认启用 Module
  • io/fs 包
  • 弃用io/ioutil

最后,还有许多其他改进和错误修复,包括构建速度提高了 20-25%,linux/amd64上内存使用量减少了 5-15%。有关更改的完整列表以及有关上述改进的更多信息,请参阅 Go 1.16 发行说明

区分换行符

CRLF, LF 是用来表示文本换行的方式。CR(Carriage Return) 代表回车,对应字符 '\r';LF(Line Feed) 代表换行,对应字符 '\n'。不同的操作系统

Docker搭建FTP服务器

使用Docker搭建FTP服务。使用的镜像是fauria/vsftpd 1. 拉取镜像 1 docker pull fauria/vsftpd 2. 运行镜像 1 2 3 4 5 6 7 8 9 10 11 12 13 docker run -d --name vsftpd -v ~/sftp:/home/vsftpd \

@Bean和@Component

@Component and @Bean do two quite different things, and shouldn’t be confused. @Component (and @Service and @Repository) are used to auto-detect and auto-configure beans using classpath scanning. There’s an implicit one-to-one mapping between the annotated class and the bean (i.e. one bean per class). Control of wiring is quite limited with this approach, since it’s purely declarative. @Bean is used to explicitly declare a single bean, rather than letting Spring

Dead_lock

并发通常是指与一个或者多个进程同时发生的过程,通常这也意味着所有这些进程在同一个时间取得进展。并发的代码很难构建,通常需要几个迭代才能,让它按照预期的方式运行。而在并发编程时,都会遇到同样的问题,计算机的科学家已经对共同的问题进行了标记。

Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 是一个工具,可以帮助解决如安装、拆卸、升级、分发、信任和管理软件等常用问题。Docker包含一个命令行程序、一个后台守护进程和一组远程服务。

查看句柄数

查看句柄数 1 2 3 4 5 6 7 8 9 10 11 $ ulimit -a Maximum size of core files created (kB, -c) 0 Maximum size of a process’s data segment (kB, -d) unlimited Maximum size of files created by the shell (kB, -f) unlimited Maximum size that may be locked into memory (kB, -l) unlimited Maximum resident

Sed命令

sed 命令表示 Stream Editor(流编辑器),用来在 Linux 上执行基本的文本操作。它可以执行各种功能,如搜索、查找、修改、插入或删除文件。

此外,它也可以执行复杂的正则表达式匹配。

它可用于以下目的:

  • 查找和替换匹配给定的格式的内容。
  • 在指定行查找和替换匹配给定的格式的内容。
  • 在所有行查找和替换匹配给定的格式的内容。
  • 搜索并同时替换两种不同的模式。

注意:由于这是一篇演示文章,我们使用不带 -i 选项的 sed 命令,该选项会在 Linux 终端中删除行并打印文件内容。

但是,在实际环境中如果你想删除源文件中的行,使用带 -i 选项的 sed 命令。