#89 bash 上下键搜索历史记录
Linux Bash 2022-12-16我一直用 zsh + omz,但是毕竟 bash 才是大多数情况下的默认 Shell。
zsh 和 bash 都是用上下键来搜索历史记录,但是不同的是,zsh 会利用已经输入部分做前缀匹配,而 bash 不会,只是简单的上一条、下一条。
今天学会一个方法(Bash history search, partial + up-arrow):
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
凑活凑活吧。
已经加到我个人的 bash 配置中。
#88 转载:Linux/UNIX 编程如何保证文件落盘
Linux 2022-11-10我们编写程序 write 数据到文件中时,其实数据不会立马写入磁盘,而是会经过层层缓存。每层缓存都有自己的刷新时机,每层缓存都刷新后才会写入磁盘。这些缓存的存在是为了加速读写操作,因为如果每次读写都对应真实磁盘操作,那么读写的效率会大大降低。带来的坏处是如果期间发生掉电或者别的故障,还未写入磁盘的数据就丢失了。对于数据安全敏感的应用,比如数据库,比如交易程序,这是无法忍受的。所以操作系统提供了保证文件落盘的机制。我们来看下这些机制的原理和使用。
#87 重启 GNOME
Linux GNOME 2022-05-17#86 mpv 播放器
Linux 视频 2022-04-04#85 HTTP 超时相关的疑问
Linux HTTP 2022-02-25今天发现一个奇怪的现象,相同的代码在 CentOS 7 服务器上发起 HTTP 请求 3 秒之后超时,报 “TimeoutError: [Errno 110] Connection timed out”。
在我本地就按我们的定义的超时时间 5 秒超时,报 “tornado.simple_httpclient.HTTPTimeoutError: Timeout while connecting”。
#84 setcap
Linux 2022-02-08#83 Linux 小工具汇总
Linux 工具 2022-01-16#82 curl 使用的 DNS 为什么和 dig 的结果不一致 [编辑中]
Linux Curl dig 开发工具 2021-12-17#81 plocate
Linux 命令行 2021-12-15#80 Linux 文件创建时间
Linux 2021-12-12#79 Linux-libre
Linux 2021-10-29内核需要和硬件打交道,中间少不了硬件厂商的支持,可是有些厂商不愿提供相关的资料,只提供了一些二进制文件,无法审查,无法修改。
Linux 内核中一直包含着很多这样的二进制 blob。
#78 zsh: you have running jobs.
Linux Shell Zsh 2021-09-09我定义了一个 gitg 的快捷方式:
function _new_gitg () {
# alias g='gitg --all >/dev/null 2>&1 &' # 覆盖 g=git
if [ -z "$1" ]; then
nohup gitg --all >/dev/null 2>&1 &!
else
nohup gitg -s $1 >/dev/null 2>&1 &!
fi
}
alias g='_new_gitg'
但是每次退出 shell 会有提示:zsh: you have running jobs.
我就加上 nohup,以为不会有提示,但提示依旧(不过强制退出也不会关闭 gitg 就是了)。
在 SO 上搜到相同问题,这个答复就可以很好的解决我的问题:
If you want to not see that message, simply pass the job id to disown, like so:
> disown %1 > ``` > Or, start the job with &! (zsh-specific trick): > ```sh > nohup ./my_script.sh &! > ``` ```sh function _new_gitg () { if [ -z "$1" ]; then nohup gitg --all >/dev/null 2>&1 &! else nohup gitg -s $1 >/dev/null 2>&1 &! fi } alias g='_new_gitg'
经过测试,这个技巧在 bash 5.1.4 下也有效。
#77 转载:用户态 tcpdump 如何实现抓到内核网络包的?
Linux 计算机网络 抓包 tcpdump 2021-09-08#76 UMIDIGI 与 GPL 协议
开发者 Linux 法律 版权 2021-09-01最近发生的一件事情挺有意思的,在得到 “上门自取” 的回复之后,有位美女替外国程序员依照 GPL 协议上门向国内的一家厂商索要内核代码。
深圳公司 UMIDIGI 生产安卓手机(联发科 Mediatek),面向海外用户。
波兰开发者 Patrycja (@ptrcnull) 想将移植 postmarketOS (基于 Alphine Linux) 到 UMIDIGI 的一款设备上,结果发现缺少 ft8719_dsi_fhdplus
屏幕驱动。
Patrycja 尝试联系 UMIDIGI,得到了以下回复:
就是说,如果你要的话,你可以上门来取。我们可以认为这是想让 Patrycja 知难而退。
可是 Patrycja 八月 17 号在 Twitter 上抱怨之后,深圳科技博主 Naomi Wu 机械妖姬(@RealSexyCyborg,混 Youtube)主动提供帮忙,表示愿意代替 Patrycja 上门索取源代码。
然后机械妖姬 08/20 就拿着自拍杆勇闯 UMIDIGI 公司。
UMIDIGI 行政人员表示需要之前发邮件的 BEN 已经离职(我觉得很可能就坐在旁边看美女),然后提供源代码的事情需要先向老板请示,之后在相对友好的氛围下,机械妖姬离开了。
随后:
- 08/25 UMIDIGI 向机械妖姬提供了相关文件。
- 08/26 Patrcja 完成了系统移植,并向机械妖姬和 UMIDIGI 表示感谢。
这件事件我的评价是:
UMIDIGI 之前的邮件回复十分愚蠢,直接向法务部门咨询之后,通过合法的途径(可能涉及联发科的知识产权)将代码提供给他不就好了吗?
不过,如果不是事情闹大了,UMIDIGI 会不会提供源代码呢?这就不知道了,我们也不能以恶意揣度之。只能就事论事,在这次事件中,各方的表现都非常好。