博文

目前显示的是 一月, 2022的博文

01. Linux 和 命令行.md

01. Linux 和 命令行.md 前言 很早之前就知道有 Missing Semester 这门课程,但一直没花时间学,认为自己折腾的内容其实和所教授的内容差不多,以为自己已经学过了。 但真正学了之后,才知道课程所涉及的广度和深度是自己捣鼓时很难学习到的,讲的很好很细,有基础的也可以看 文字版 学一下。 本系列主要是自己的看法。 内容上尽量避免和原课程内容重复,只作为课程内容的补充 。 原课程讲的很好了,也不知道补充啥好 对课程的一些评价 其实我还没学完,不过也快了,也许有些对该课程的发言权。 若是看视频,隔着屏幕你都能感觉到三位讲师的热情,这是真的热爱,十分佩服。 若是看文字档,真的能感到记录的很详细,讲的也很通俗,能把整个复杂的体系梳理成线性的,基本能 Self-contain 的教程,真的很了不起;对外部链接的扩展也很到位,若是想了解更多也不会没有方向;Exercise 的设置也还可以,网上也有 答案 。 缺点也是有的,首先是视频(也就是课堂上)基本就是不停的演示一连串的命令,可能相对枯燥,而且明显看得出时间卡的很紧,讲的很紧(但也没到快的程度,而且教这些内容确实无法避免枯燥的形式,课程 Note 的补充也弥补了这方面不足)。 其次是其中一位讲师口音有点重,但他出现的视频下都有校对良好的人工字幕,问题也不大。 总的来说,是很好的一门课。 正题 本文包含了以下章节内容 Course overview + the shell 无笔记,十分基础,作为课程入门,吃饭时候看挺下饭的 Shell Tools and Scripting 主要讲了 Shell Script 编程 $hebang (shebang) 的使用 小技巧:通过 Shell 执行命令前,可以先用 echo 打出来检验命令正确性 Command-line Environment 大体讲了 SIGNAL – 为什么 Ctrl+c 能够停止程序,为什么有时候不能,Ctrl+z 又是什么,学会了可以结合 Lecture 2的 Shell 写个脚本,考验你周边只会 Ctrl+c 的朋友 (然后周围没人用 Linux ) 前台运行,后台运行 (bg, fg, nohup, &, jobs) Tmux

Shell Tools and Scripting · the missing semester of your cs education

Shell Tools and Scripting · the missing semester of your cs education Metadata: Link: missing.csail.mit.edu Date: 2022年01月17日 19:26:14 Tags: #Annotation [x] 总结 [[01. Linux 和 命令行]] To assign variables in bash, use the syntax foo=bar and access the value of the variable with $foo . Note that foo = bar will not work since it is interpreted as calling the foo program with arguments = and bar . In general, in shell scripts the space character will perform argument splitting. This behavior can be confusing to use at first, so always check for that. 备注: To assign a variable, use = without space To use a variable, simply add $ before it Strings in bash can be defined with ' and " delimiters, but they are not equivalent. Strings delimited with ' are literal strings and will not substitute variable values whereas " delimited strings will. 备注: ' no variable Here $1 is the first argument to the script/funct

Command-line Environment · the missing semester of your cs education

Command-line Environment · the missing semester of your cs education Metadata: Link: missing.csail.mit.edu Date: 2022年01月20日 09:10:30 Tags: #Annotation [ ] 总结 [[01. Linux 和 命令行]] Your shell is using a UNIX communication mechanism called a signal to communicate information to the process. 备注: In our case, when typing Ctrl-C this prompts the shell to deliver a SIGINT signal to the process. 备注: Signals can do other things beyond killing a process. For instance, SIGSTOP pauses a process. In the terminal, typing Ctrl-Z will prompt the shell to send a SIGTSTP signal, short for Terminal Stop (i.e. the terminal’s version of SIGSTOP ). We can then continue the paused job in the foreground or in the background using fg or bg , respectively. 备注: The jobs command lists the unfinished jobs associated with the current terminal session. 备注: More intuitively, you can also refer to a process using the percent symbol followed

建立国内可访问的 Blogger

建立国内可访问的 Blogger 前言 其实很早之前就已经尝试过使用 Blogger 进行博客建设,但之前只是随意折腾了一下,如今打算正式整体迁移博客到 Blogger 中,主要是以下几点原因。 工作流的转变 不再以 Notion 为中心,目前 Notion 只用于多人协作,看书数据库等内容 开始使用 简悦 作为网页标注工具,同时配合自动化导出 Markdown 作为写文素材 开始使用 Obsidian 作为笔记软件 发现了 Stackedit.io 这个神器,能直接发布 Markdown 到 Blogger 中。配合 Dropbox 的同步,简直完美。 思维的转变 Local First! 云端软件只是获得了使用权,而不是所有权 虽然用的 Blogger,所有文章本地储存+Dropbox 备份 Easy First! 随着学习压力的增大,愈发没有精力折腾各种乱七八糟的事了 Blogger 本身质量过硬 存活时间长 安全性好 访问速度快 它的主题真的超棒,简洁大方(Essential Theme),真的是换用 Blogger 的重要原因之一。 目前有了一个满意的工作流,不出意外应该不会折腾新工具了。 需要注意的是,需要自有域名才能让国内访问。 对比其他博客平台 优点 静态博客 与 Vercel, Github pages 相比,Blogger 访问速度非常快(Google HK||TW Edge Node) 开箱即用,不用装 Go || Nodejs Blogger 主题真的超棒,真的符合审美 Wordpress || Typecho 快 零成本 稳 国内博客平台 无需实名 自定域名 缺点 改模板(会在文末给出 Github 地址直接抄) 显示缩略图 改 js css 改评论 需要 Stackedit 才能支持 Markdown 步骤 1. 添加自定义域名 略,跟着步骤走,添加两个 CNMAE 记录即可,一个作为解析,一个作为认证(解析可以 A 记录到 ghs.google.com 于国内可用的 IP,访问较稳定) 开启 HTTPS 要等十分钟左右,在这之前是不能访问的,除非你关掉重定向,但

gdb 简明使用教程

gdb 简明使用教程 Self-plug && Better rendered blog page 顺便 @“Tover”#37 师兄讲讲 pwndbg 咋用?-.- 前言 gdb 想必大家都听说过,作为最有名气的调试器之一,却由于其在命令行中运行的特点导致了周围用的人并不算多,加之现代编辑器中的调试功能已经成为标配,在很多时候用自带的调试器就能完成调试了。 但我依旧认为 gdb 十分重要,一是因为如果是多文件编程就不能用 VSCode 中自带的调试器(其实也是 gdb ,套了层 gui ,或许改下 json 能用,但是不打算改),二是因为市面上不同编辑器所带的调试功能用法虽然大同,但总是小异。 特别是 SCNU 机房的电脑默认 VSCode 配置无法直接调试,但默认装有 gdb(神奇) ,就不用在期末考试时候换用不熟悉的 VS || DevC++ 了 :) 2022.01.05 update 不用想在机房用 g++ || gdb 了,首先机房各电脑环境不同,必须要新 Win10 系统才能有环境,其次机房的 g++ 环境似乎也有点问题,编译不出可执行文件,很神秘。写半小时代码,花半小时解决怎么运行。幸好考试简单。。 还是学一手 VS 下的 debug 吧。 正文 前期准备 gdb 在启动时会首先弹一个版权信息,很烦,建议在 ~/.zshrc || ~/.bashrc 中添加 alias alias gdb="gdb -q" 或者启动时添加 -q 选项 q for quiet gdb 在退出时会弹一个确认信息,如果你觉得烦,也可以新建文件 ~/.gdbinit 并添加 set confirm off 顺带一提, ~/.gdbinit 文件如其名,是gdb在启动时会运行的命令,借此能够实现对 gdb 的扩展,如 pwndbg 编译时需要添加特殊参数 -g 代表这个程序编译时要留下调试信息 例如: g++ main.cpp -o main -Wall -g P.S. 似乎使用了 -O3 编译参数会对 gdb 产生影响? The  gcc docs  note that the default debug flags are