Logseq常用插件
前言 以此文章记录我常用的Logseq plugin,常用常更新 Readwise Official Plugin Logseq Anki Sync
前言 以此文章记录我常用的Logseq plugin,常用常更新 Readwise Official Plugin Logseq Anki Sync
说明 近期在学习GO语言,想深入研读一下GO的源码,第一步就要是可以在本地正常的编译源代码,此文对MAC上go源的安装进行记录 下载go源码 git clone https://github.com/golang/go 选择go版本分支 本次使用go 1.8版本分支来进行编译,切换分支 git checkout release-branch.go1.8 本地编译 查看本地的go版本 go version go version go1.20.5 darwin/amd64 设置编译源码的go版本 export GOROOT_BOOTSTRAP=$GOROOT 设置go mod模式为auto 因为在go1.16后,go默认在任何路径下都开启gomod模式,待编译的go源码不需要使用gomod模式,设置其它模式为自动 export GO111MODULE=auto 编译 cd go/src ./make.bash 输出结果如下 Installed Go for darwin/amd64 in /Users/tomyli/github/go Installed commands in /Users/tomyli/github/go/bin 测试验证 修改go1.8的fmt包,增加一行打印内容,打印出来 tomyli /Users/tomyli/github/go/src/fmt/print.go func Println(a ...interface{}) (n int, err error) { println("tomyli") return Fprintln(os.Stdout, a...) } 重新编译 cd go/src ./make.bash 验证脚本 创建一个新编译的go的GOPATH mkdir /Users/tomyli/github/go/localhost 测试脚本保存到localhost文件夹 main.go内容如下 ...
简介 GO诞生于2009年,官网 静态编译型语言 强类型语言 创始人 Ken Thompson Rob Pike Robert Griesemer 肯 汤普森 罗伯 派克 罗伯特 格瑞史莫 目标 简单 高效 生产力 借鉴多门编程语言,新时代的C 设计哲学 简单 显式 组合 并发 面向工程 类型 普通类型 $GOPATH/src/builtin/builtin.go type-study/type-study_test.go https://www.educative.io/answers/what-is-type-uintptr-in-golang int int int8 int16 int32 int64 uint uint uint8 uint16 uint32 uint64 uintptr 不带数字的为平台相关的类型 ...
前言 最近在实践学习plantegg大佬的程序员案例,对IPC的实验进行一下记录,以备查验 术语说明 IPC 本文的主角,全名为 Instructions per cycle(clock), 表示每个时钟周期可执行的指令数,常用来做为评判处理器性能的指标 NOP no operation, 在指令集中表示一个指令不改变所执行程序的 register,status flag,也就是不要进行上下文的切换,CPU的上下文切换是有时间开销的 实验代码下载 git clone https://github.com/plantegg/programmer_case 实验机器信息 实验只可在物理机下进行 实验验证 测试nop指令 编译测试代码 gcc ./nop.c -o nop 执行测试 perf stat ./nop 现象 IPC跑到3.79 问题 我记得第一次执行IPC好像跑到了4(未改变代码),当时忘记截图了,后续测试的都到不了4了 IPC与perf执行时间长短有关吗? 好像是无关的,保证cpu 100%后就可以停止进行查看 IPC怎么接近4? 改代码增加nop指令的数量,加到将近700个,IPC达到3.97 测试pause指令 编译测试代码 gcc ./pause.c -o pause 执行测试 perf stat ./pause 现象 IPC只跑到了0.11 测试nop指令跑两份各自绑定到同一物理核 如何判断HT?通过查看/proc/cpuinfo信息, 如果physical id和core id都一样的话,说明这两个core实际是一个物理core,其中一个是HT 执行测试 taskset -c 0 perf stat ./nop taskset -c 24 perf stat ./nop 现象 ...
前言 在日常应用中,统计文件内容是一种常见的需求,可以通过 wc 命令来实现 Wc wc file 统计文件,显示行数、单词数、字节数,带文件名 wc -c file 统计文件,只显示字节数 wc -w file 统计文件,只显示单词数 wc -l file 统计文件,只显示文件行数 wc file1 file2 统计多个文件,显示汇总信息 wc < file 统计文件,显示行数、单词数、字节数,不带文件,便于shell脚本后续处理 wc -L file 打印出文件行最长的节数 疑惑 wc -c 与 wc -w 是如何统计的 在统计 hello.txt 时, wc -c 的结果为 55 , wc -m 的结果为 45 ,为什么统计的结果不一样?这个文本中包含了中文内容,猜测和这个有关 验证是否与中文有关 这个好办,建一个不带中文的文件,验证如下 可以看到统计的结果是一样的 中文是如何统计的? 这个就涉及到编码的问题了,先用 hexyl 查看一下,字节的总数为55,但是在进行字符统计时,使用的unicode编码将3个字节计算为1个字符(例如 好 被编码成 E5 A5 BD ),这就对上了,哈哈! 编码是个大话题,后续好好学习一下 REF wc (Unix) - Wikipedia wc - How to display the number of lines, words and characters in separate lines? - Unix & Linux Stack Exchange Captured On: [2023-03-02 Thu 16:28] ...
前言 开发中查看日志信息过多时,可以使用linux中的 more 和 less 命令进行分页查看 More 分页显示文件内容,只可以向后翻页 more file 分页显示文件内容, 在页面使用 空格键 进行翻页 more -n file 分页显示文件内容,一页显示指定行数 more -d file 分页显示文件内容,带页面操作提示信息 more -p file 分页显示文件内容,不进行滚动,而是直接替换页面的内容 more -s file 分页显示文件内容,多行空格按一行空格显示 more +num file 分页显示文件内容,从文件的第 n 行开始显示 more -f file 分页显示文件内容,不折叠长行 如上图所示,第一行这个长行按两行进行了统计 Less 分页显示文件内容,More的增强版本,支持向前向后翻页,页面操作类VI形式。less > more less file 分页显示文件内容,可上下(b)翻页,按行(j/k)翻 less -g file 分页显示内容,只高亮单条结果(默认高亮所有匹配),对大文件可提升性能 less -N file 分页显示内容,带行号,可用来查看源码 less -s file 分页显示文件内容,多行空格按一行空格显示 less -M file 分页显示文件内容,底部显示更多信息(当前的进度和屏幕显示的行信息) less -p file 分页显示文件内容,查询指定内容,在匹配处开始显示 less +G file 分页显示文件内容,从文件结尾开始显示 ...
前言 开发中常常需要查看文件的部分内容,这时可以用 head 命令来查看文件开头部分与 tail 命令来查看文件结尾部分 Head head file 打印文件的前10行内容 head -n file 打印文件前n行的内容 head -c file 打印文件前n个字节(换行符计算在内)的内容,文件小于指定字节则打印全部文件内容 head -v file 打印文件的前10行内容,显示打印的文件标题 head file1 file2 同时查看多个文件的头部内容 head -q file1 file2 同时查看多个文件的头部内容,不打印文件标题,可用于后续文件内容合并处理 Tail tail file 打印文件后10行内容,不足则打印全部内容 tail -n file 指定打印文件后n行的内容 tail -c file 打印文件尾部n个字节(换行符计算在内)的内容,文件小于指定字节则打印全部文件内容 tail -v file 打印文件的尾部10行内容,显示打印的文件标题 tail -q file1 file2 同时查看多个文件的尾部内容,不打印文件标题,可用于后续文件内容合并处理 tail -f file 监控文件后续输出,对监控线上服务日志输出很有用 tail -F file 监控文件后续输出,即使文件重命名也可以正确输出,对监控线上服务日志输出很有用 tail -f –pid=n file 监控文件输出,当监控的进程退出时, tail 程序退出 REF head (Unix) - Wikipedia Using Linux Tail Command with PID Terminate Option - YouTube
功能 Cat命令有两个作用: 输出文件内容到标准输出 合并文件内容 输出文件内容 cat file 查看文件内容 cat -n file 查看文件内容,带行号,统计所有行(包括空行) cat -b file 查看文件内容,带行号,不统计空行 cat -s file 查看文件内容,压缩空行,多个空行只显示一行空行 cat -E file 查看文件内容,显示行结束符号为 $ cat -T file 查看文件内容,显示tab符号为 ^ cat -A file 查看文件内容,显示tab符号为 ^ ,显示行结束符号为 $ cat multiple files 查看多个文件 合并文件内容 cat配合linux的管道命令可以实现更强大的功能 cat file1 file2 > file3 cat >newfile 这是一个很强大的命令,可以直接创建文件并把输入的内容写入到新创建的文件中 cat 只输入cat会发生什么呢,它会把输入的内容再输出出来,没事可以自言自语了 cat -n file1 file2 > file3 统计两个文件的内容带行号写入到file3 cat file1 - file2 > file3 获取file1的内容,用户进行输入,最后加上file2的内容写到file3文件中 cat file1 >> file2 追加file1的内容到file2中 ...
前言 今天学习一下Linux的 touch 命令 功能 按man文档的说明,是修改文件的时间戳,目前常用的操作是用来 创建文件 touch file 创建一个空文件,文件的访问时间与修改时间为当前时间 touch -a file 改变文件的访问时间 从上图可以看出来, b.txt 文件只有访问时间被修改了,修改时间没有变 验证时用到 stat 命令, 这个后续具体学习 touch -m file 改变文件的修改时间 从上图可以看出来, cc.txt 文件只有修改时间变了,访问时间没有变 touch -t file 修改文件为指定的时间,格式为 [[CC]YY]MMDDhhmm[.ss] 上图命令将 dd.txt 文件的访问时间与修改时间改成了 2022-01-02 12:22:23 touch -d file 修改文件为指定的日期,支持的时间格式更广泛 touch -r reffile file 修改文件的时间为引用的文件时间 如图, ff.txt 文件与 a.txt 的时间同步了 REF touch (command) - Wikipedia Check file access and modification time in Linux - Linux Tutorials - Learn Linux Configuration stat(1): file/file system status - Linux man page Captured On: [2023-01-06 Fri 18:55]
前言 今天学习一下Linux中的复制移动相关命令,主要学习 cp 与 mv CP 功能 复制文件或文件夹 cp file target 复制文件到target目录 cp -i 复制前进行询问(如果存在同名文件) cp -n 复制,但不覆盖已经存在的文件 cp -b 复制,复制前备份目标同名文件(如果存在) cp -f 强制删除(目录文件不能打开)并覆盖 cp -p 复制文件到目标文件夹,保留原文件的修改时间、访问时间与归属相关信息 cp -u 复制文件到目标文件夹,仅当源文件的修改时间晚于目标同名文件时进行复制 cp -r 递归复制文件夹内容到目标文件夹 组合杀 对文件进行备份,按数字方式 cp -f --backup=numbered aa.txt aa.txt 如图所示,每执行一次命令,就顺序产生一个同名文件+编号的备份,有点类似于一个版本管理系统 更新文件夹 cp -ruv e ../target 如图所示,只有e/ee.txt有更新,执行命令时只做了增量更新文件 MV 功能 移动(重命名)文件或文件夹 mv 移动文件 移动并重命名 mv -i 移动前询问(目标有同名文件) mv -n 移动文件,但不覆盖存在的文件 mv -u 移动文件,只在源文件比目标文件新时才执行 mv -f 执行覆盖,不提示 REF cp (Unix) - Wikipedia mv (Unix) - Wikipedia Two great uses for the cp command | Opensource.com