MySQL一张表中一条数据拆分为多条数据
1.创建表
create table test_table
(
id int auto_increment
primary key,
project_id int null,
branch_name varchar(512) null
);
create table test_table
(
id int auto_increment
primary key,
project_id int null,
branch_name varchar(512) null
);
yield 表达式(包括 yield 和 yield from 子句)现在不允许在推导式和生成器表达式中使用(但 for 子句最左边的可迭代对象表达式除外)。 (由 Serhiy Storchaka 在 bpo-10544 中贡献。)
https://bugs.python.org/issue10544
操作系统有两层含义一种是指完整的软件包,用来管理计算机的核心层软件,以及附带的所有标准工具软件,包含命令解释器,图形用户界面,文件操作工具和文本编辑器等
另一种更狭义的含义则是指管理分配计算机资源(CPU,RAM和设备)的核心层软件。术语内核通常就是指这一种含义。
虽然在没有内核的情况下计算机也能运行程序。但是有了内核会极大的简化其他程序的编写和使用。主要归功与内核所提供的用于管理有限资源的核心软件层。
操作系统,内核,shell之间的关系
操作系统包括操作系统内核,驱动,运行库,引导程序等
内核,操作系统最核心的内容,一般来说内核特指一个或者几个文件
shell,一般是指跟用户直接交互的界面,可以是命令行也可以是窗口,用户通过shell 访问并控制计算机
进程调度
内存管理
提供文件系统
创建和终止程序
对设备的访问
联网
提供系统调用应用编程接口(API)
$ sudo apt remove systemtap
$ sudo apt install g++ make git libelf-dev libdw-dev
$ git clone git://sourceware.org/git/systemtap.git
$ cd systemtap/
$ ./configure && make // no errors
$ sudo make install
$ sudo stap -e 'probe begin { printf("Hello, World!\n"); exit() }'
[sudo] password for knudfl:
Hello, World!
安装完成后执行下列命令检验是否完成安装
如果安装成功显示下列内容
Pass 1: parsed user script and 476 library scripts using 119196virt/87952res/5764shr/82508data kb, in 80usr/100sys/189real ms.
Pass 2: analyzed script: 1 probe, 2 functions, 0 embeds, 0 globals using 120780virt/89660res/5900shr/84092data kb, in 0usr/0sys/6real ms.
Pass 3: translated to C into "/tmp/stapTYYmwZ/stap_455006ea742bbf1a3302e2dbfd0820a7_1159_src.c" using 120780virt/89660res/5900shr/84092data kb, in 0usr/0sys/0real ms.
Pass 4: compiled C into "stap_455006ea742bbf1a3302e2dbfd0820a7_1159.ko" in 8380usr/1750sys/6001real ms.
Pass 5: starting run.
hello systemtap!
Pass 5: run completed in 0usr/20sys/436real ms.
原文链接:https://cjting.me/2017/05/13/how-git-generate-diff/
diff 是我们每天都要使用的一个功能,每次提交时,我都习惯先用 git diff --cached 看看这次提交更改了些什么,确定没问题,然后再 git commit。git 生成的 diff 非常直观,直观到我从来都没有去思考过 diff 是怎么生成的,觉得这应该是很简单的一件事,两个文件做个对比,不就行了。
pytest是一个强大的Python测试工具,它可以用于所有类型和级别的软件测试。 Pytest可以被开发团队,QA团队,独立测试小组,实践TDD的个人和开放源代码项目。实际上,整个互联网上的项目都是从unittest或者nose转向pytest,包括Mozilla和Dropbox。为什么?因为pytest提供 强大的功能,如'断言'重写,第三方插件模型,强大但简单的fixture模型。
pytest是软件测试框架,这意味着pytest是命令行工具。它会自动找到你写的测试,运行测试并报告结果。可编写插件或安装第三方来扩展插件。它可以用来测试Python发行版。它很容易与其他工具对接,如持续集成和网页自动化
1.查看journal 日志所占用的空间
2.清理不必要的journal 日志
3.查看ubuntu 下载的软件包
4.产看inodes消耗情况
5.删除用户后遗留下的垃圾文件
6.清除不必要的core文件(慎用)
1.logger 对象
2.logger对象的handler?
3.Formatter?
使用logging.basicConfig(**kwargs) 会对对root logger进行一次性配置,比如如果只有logger对象而没有handler时会调用basicConfig(**kwargs)中的参数,如果没有basicConfig(**kwargs)则这个logger中记录的日志信息不会被输出。
logging.basicConfig()函数是一个一次性的简单配置工具使,也就是说只有在第一次调用该函数时会起作用,后续再次调用该函数时完全不会产生任何操作的,多次调用的设置并不是累加操作。
在 /etc/apt/source.list.d/下创建pgdg.list并添加如下内容:
deb https://mirrors.cloud.tencent.com/postgresql/repos/apt/ bionic-pgdg main
#deb https://mirrors.tencentyun.com/postgresql/repos/apt/ bionic-pgdg main
#deb-src http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
执行更新apt 源
pg_ctlcluster 12 main start
等效于如下命令:
/usr/lib/postgresql/12/bin/postgres "-D" "/var/lib/postgresql/12/main" "-c" "config_file=/etc/postgresql/12/main/postgresql.conf"
或者使用systemd 启动postgresql 12
postgresql 12 在ubuntu的服务名为postgresql@12.service
pg_ctl路径位于/usr/lib/postgresql/12/bin/pg_ctl
参考资料:
[1].https://github.com/digoal/blog/blob/master/201901/20190105_01.md (PostgreSQL 培训视频(含PG知识图谱、Oracle迁移到PG知识点))
[2].https://github.com/digoal/blog/blob/master/201812/20181203_01.md (PostgreSQL 11 参数模板 - 珍藏级)
[3].https://github.com/digoal/blog/blob/master/202001/20200118_02.md (PostgreSQL+MySQL 联合解决方案课程 - 汇总视频、课件)
[4].https://github.com/digoal/blog/blob/master/201805/20180524_02.md (PostgreSQL 多应用场景实践 - 沙箱实验)
[5].https://github.com/digoal/blog (完整资料)
%<(N, trunc) 下一个单元的输出宽度限制为N列, 左对齐
%<|(N, trunc) 下一个单元输出至全局第N列, 左对齐
%>, %>|, %>>, %>< 类似, 分别为 右对齐, 右对齐, 右对齐(如果左边有多余空格则复用), 居中对齐