Home avatar

Lixp 的 Blog

Quine程序

Quine 程序是指自生成程序, 它不接受输入, 运行它会输出程序源代码.

思路(以C语言为例):

  1. 先在代码任意位置定义一个字符串 s 与一个 printf 函数.
  2. 先构建字符串 s 的内容, 使其为程序源代码, 把其中 s 赋值部分留一个 s=%c%s%c, 在吧其中的转义字符修改为%c 并记录.
  3. 修改两个 printf 的部分, 把%s 位置输入为字符串 s, 其它位置输入应该的转义字符 ASCII 码.

如果使用 python, 其中有 repr()可以输出字符串对象本身, 或者使用%r 来调用, 如:

Ubuntu的Docker容器和镜像消失

一次ubuntu Linux机器内存溢出强行重启机器, 启动后docker的容器和镜像全部消失, 后台还有容器相关进程在运行, apt重装docker, 容器和镜像全部都能看到了, 然后在某次正常重启后, 又消失了, 网上查询了很多方式, 都不行, 最后发现是因为snap安装的docker和apt安装的docker共存导致的.

Ubuntu系统NVIDIA驱动和CUDA安装

使用Ubuntu官方仓库安装:

  1. sudo ubuntu-drivers autoinstall
  2. 重启
  3. sudo apt install nvidia-cuda-toolkit
  4. sudo apt install nvidia-container-toolkit / sudo apt install nvidia-docker2

这种方式比传统的去NVIDIA官网下载.run文件安装更简单, 并且仓库源由Ubuntu官方维护, 兼容性错误更少

MySQL安装相关

# 普通安装
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 mysql

# 退出自动重启
docker run -itd --restart=always --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 mysql