实现类似于 deepcopy 的 3 个函数 deepget, deepset, deeppop,代码如下: #!/usr/bin/env python3.10 import re import operator import typing as t from functools import reduce T = t.TypeVar('T') def parse_deepkey...
date 命令使用示例
显示 显示当前日期和时间 $ date Mon 28 Nov 2022 10:50:05 PM CST 显示指定格式的当前日期和时间 $ date +"%Y-%m-%d %H:%M:%S" 2022-11-28 22:51:10 $ date +"%y-%m-%d" 22-11-28 $ date +"%s" # seconds since 1970-01-01 00:00:...
sed 命令使用示例
替换 把 hello 替换为 world $ sed 's/hello/world/g' 把第 2 到 5 行替换为一行 hello world $ sed '2,5c hello world' 插入 在第 2 行前面插入一行 hello world $ sed '2i hello world' 在第 2 行后面插入一行 hello world $ sed '2a h...
Linux 上 ELF 文件依赖库的查找顺序
Linux 上的 2 种 ELF 文件类型:可执行文件(Executable file)和 共享对象文件(Shared object file),它们在执行期间需要通过 动态库链接器(ld.so)来查找其依赖的动态库文件,然而系统中可能在不同的目录下存在相同的动态库文件,那么执行时到底链接到哪个目录下的呢,本文将描述其在不同目录间的查找顺序。 如何识别 ELF 文件类型 Linux 上可...
fpm: 一个跨平台且支持多种包格式的打包工具
通过《一种让 Linux 上的 C/C++ 程序自带依赖库的打包方式》和《国产操作系统和 CPU 分类》两篇文章,介绍了一种针对 Linux 上的 C/C++ 程序的简化打包数量的方式,从一次打需要适配的操作系统和 CPU 组合数量的包,简化为 CPU 架构数 * 2 的数量,那么在准备编译环境的时候也就需要准备 CPU 架构数 * 2 个。 现在介绍一个打包工具 fpm ,这是一个 跨平...
国产操作系统和 CPU 分类
国产 操作系统 和 CPU 厂商数量繁多,令人眼花缭乱,如果你做一款 C/C++ 软件需要适配国产的各种操作系统和 CPU,打包时针对每一种操作系统和 CPU 的组合都要打一个包的话,那么每一次打包的数量可能会多达数十个,光是编译环境的准备都需要耗费大量的时间,这无疑是令人难以接受的。 但是万变不离其宗,如果经过仔细分析的话,会发现这些操作系统和 CPU 都是从现有的体系中衍生出来的,而不...
一种让 Linux 上的 C/C++ 程序自带依赖库的打包方式
Linux 上的 C/C++ 程序编译打包后拿到 同 CPU 架构 的其他 Linux 系统上运行时,通常会由于目标系统上缺少该程序所需的库而无法运行。 这个问题在一个连接上互联网的 Linux 系统上可以很容易的通过 yum 或 apt 安装缺少的依赖库来解决,但是如果是在一个无法使用 yum 和 apt 的内网系统上,则非常麻烦。 本文介绍一种打包方式,让打包后的程序自带依赖库,即使...
Python 入门 - 12 - 模块和包
模块(module) 一个包含 Python 代码的 .py 文件就是一个 模块(module),文件名去除 .py 后缀就是 模块名,模块名也可以通过模块的 __name__ 属性获取。 一个模块可以被 import 引用,也可以当作脚本直接运行,模块中的 定义 和 语句 只在被 import 或直接运行的时候 执行一次。 例如现在有一个名为 fibo.py 的文件,其内容如下: ...
Python 入门 - 11 - 类
Python 类源自于 C++ 和 Modula-3 这两种语言的类机制的结合。 Python 中一切皆 对象(Object),类里边又引入了 3 种对象:类对象(Class)、实例对象(Instance) 和 方法对象(Method) 作用域和命名空间 作用域(scope) 指的是 Python 代码中的一个文本区域,分为以下几类: 模块 类 函数 命名空间(nam...
Python 入门 - 10 - 异常
异常简介 异常(Exception) 即程序执行过程中产生的预期以外的错误,例如有一个脚本 test.py,其内容如下: #!/bin/python3 print('2' + 2) 当执行该脚本时会产生如下异常: [root@localhost ~] python3 test.py Traceback (most recent call last): File "test....