每天学习一个命令:uniq 筛选过滤重复的行

uniq 命令从标准输入读取过滤邻近的相同的行,然后写回标准输出,在此过程中 uniq 会将重复的行 merge 合并到第一个结果中,所以 uniq 可以用来排除文件中重复的行。因此 uniq 经常和 sort 合用,先排序,然后使用 uniq 来过滤重复行。 查看 man uniq 得知这个命令是用来显示,或者隐藏重复行的命令,一般情况下使用管道命令组合其他 cat, grep, awk, sort 等等使用。可用来过滤重复行,或者找到文本中重复的行。 基本使用 命令格式: uniq [OPTION]... [INPUT [OUTPUT]] Read more ...

2018-02-06 uniq , linux , command , awk , sort

Linux 管理开机启动

如果想要科学的管理 Linux 的开机启动项,那么了解 Linux 开机启动流程是非常有必要的。链接的文章将 Linux 开机启动流程讲述的非常通俗易懂,这里就不再详述。简单地归纳: 加载内核 ,读入 /boot 目录下内核文件 内核加载完成后,运行第一个程序 /sbin/init(PID 为 1),用来初始化系统环境 依据运行级别启动守护进程(daemon 或者称为服务) 加载开机启动程序 用户登录 进入 login shell,依据不同的登录方式(命令行登录,ssh 登录,图形界面登录),系统加载不同的 shell 配置, Read more ...

2018-02-05 linux , startup , script , shell , command

每天学习一个命令:ed 行编辑器

ed 是一个面向行的文本编辑器。ed 命令还有一个严格的 red 命令,red 命令只能编辑当前目录中的文件,并且不能够执行shell命令。 当使用 ed 命令明确指定一个文件时,文件的一份拷贝被读入编辑器的缓存,所有的编辑都是保存在缓存中,而不是直接在文件中修改。如果退出 ed 却没有显示的使用 w 命令来保存修改的话,所有的修改内容都会丢失。 编辑的内容可以通过两种不同的方式:command 和 input 两种模式。使用第一种命令模式时,ed 命令通过从标准输入读取命令并将修改执行在编辑器缓存中。一个典型的命令 ,s/old/new/g Read more ...

2018-02-02 linux , command , unix , ed , line , editor

每天学习一个命令: rename 批量修改文件名

虽然 Linux 下有很多方式可以重命名文件,比如 mv filename newfilename,设置可以使用 cat 命令来将一个文件输出重定向到文件 cat file > newfile,或者可以拷贝的时候重命名 cp file newfile 。 但是其实 Linux 下有一个命令 rename 顾名思义,就是用来重命名文件的,并且能够按照正则批量重命名文件。他的基本使用方式就是 rename [options] "s/oldname/newname/" file 这个命令可以分开几部分来讲,首先对于整体命令先不看选项(option Read more ...

2018-01-31 linux , command , rename , file

MyBatis 中 insert 和 insertSeletive 区别

MyBatis generator 自动生成的 mapper 文件中有两个 insert 方法,insert 和 insertSelective,这两个方法都可以插入一条数据 对于 insert: int insert(T record); 对于 insertSelective int insertSelective(T record); insertSelective 对应的 SQL 语句加入了 NULL 检验,只会插入数据不为 null 的字段,而 insert 会插入所有字段,会插入 null 数据。 也就意味着如果定义了表 def Read more ...

2018-01-30 mybatis , mysql , orm , java

v2ray 使用和总结

v2ray 是一个模块化的代理工具,支持 VMess,Socks,HTTP,Shadowsocks 等等协议,并且附带很多高级功能,HTTP 伪装, TLS 等等。 安装 install root 账户下执行 bash <(curl -L -s https://install.direct/go.sh) 该脚本会自动安装 unzip 和 daemon。脚本执行成功后,进行如下操作: 编辑文件 vim /etc/v2ray/config.json 来配置 运行 service v2ray start 来启动 v2ray 使用 Read more ...

2018-01-26 linux , windows , mac , socks , http , shadowsocks , proxy , vmess

自建网络硬盘 ownCloud

ownCloud 是一个文件分享服务,可以将个人的文件内容,比如文本,图片,音频等等存储到一个中心服务器上,类似于 Dropbox。但是与 Dropbox 不同之处在于 ownCloud 是开源的,任何人都可以检视其源代码并且可以为之贡献代码,这意味着他将文件的控制权交给了个人,敏感的文件任何人都无法查看,但于此同时他也将文件的安全交给了个人管理。 ownCloud 安装 [[OwnCloud]] 安装之前确保有 sudo 权限,并且 ownCloud 需要 web 服务器,比如 nginx 或者 Apache 数据库 MySQL P Read more ...

2018-01-25 linux , cloud , drive , owncloud

使用 Celery Once 来防止 Celery 重复执行同一个任务

在使用 Celery 的时候发现有的时候 Celery 会将同一个任务执行两遍,我遇到的情况是相同的任务在不同的 worker 中被分别执行,并且时间只相差几毫秒。这问题我一直以为是自己哪里处理的逻辑有问题,后来发现其他人 也有类似的问题,然后基本上出问题的都是使用 Redis 作为 Broker 的,而我这边一方面不想将 Redis 替换掉,就只能在 task 执行的时候加分布式锁了。 不过在 Celery 的 issue 中搜索了一下,有人使用 Redis 实现了分布式锁,然后也有人使用了 Celery Once。 大致看了一下 Celery On Read more ...

2018-01-24 celery , celery-once , redis , broker , queue , task , unique , python

pipenv 使用

pipenv 是目前官方 推荐使用的包管理工具。 能够为项目创建和管理虚拟环境,从 Pipfile 文件添加或删除安装的包,Pipfile.lock 来锁定安装包的版本和依赖信息。 不用再维护 requirements.txt, 使用 Pipfile 和 Pipfile.lock 来代替 在安装了 pyenv 的条件下,可以自动安装需要的 Python 版本 这里就不得不提到 pyenv 了,pyenv 能用来管理不同的 Python 版本,结合 pyenv-virtualenv 也能够快速创建虚拟环境,不过这个 pipenv 提供了 Read more ...

2018-01-23 python , virtualenv , pyenv , pipenv

又一款抓包分析软件 wireshark

Wireshark 是一款网络分析工具,也是学习网络协议的工具,原先介绍过的 Charles ,mitmproxy 等 HTTP 抓包工具,都局限于 HTTP/HTTPS 请求,对于更底层的 TCP/IP,UDP 等协议就无能为力了。Wireshark 可以抓取网卡上的网络包,并实时展示,Wireshark 包括了过滤器,协议显示等等工具。 Wireshark 和其他工具的区别,比如 Charles,mitmproxy,Fiddler 等。Charles, mitmproxy,Fiddler 是专门用来捕获 HTTP,HTTPS 请求的。Wiresha Read more ...

2018-01-16 wireshark , charles , mitmproxy , proxy

最近文章

  • 我 Vibe Coding 了一个日本看房神器:BukkenAI 最近在东京认真找房子,每次拿到一个物件地址,我都要重复做同样一套操作:打开 [[Google Maps]] 搜地址,确认大概位置;找最近的车站,看步行距离;切到 Yahoo 地图查灾害风险图;再搜一圈附近有没有超市、医院、药局。做完一遍下来,十几分钟就过去了,物件多的时候,这些重复的信息收集工作比看房本身还累。某天做完第 N 遍之后,我决定干脆自己做一个工具,输入地址,全部自动搞定。这就是 BukkenAI 的起点。
  • Entire:让 AI 编程会话成为 Git 历史的一部分
  • Atuin:用数据库替换 Shell 历史,跨设备同步不再是难题
  • Ghostty 终端配置技巧:从入门到舒适 从 Warp 切换到了 [[Ghostty]],理由非常简单,我使用 atuin 来同步 Shell 历史,但是 Warp 不支持,外加上 Ghostty 自带 Metal GPU 加速渲染、原生 macOS AppKit 构建、启动飞快,可以让 AI 以纯文本方式配置,就果断切换了。
  • GitNexus:把你的代码库变成 AI 能读懂的知识图谱 用 AI 写代码这件事,大家都已经习惯了。但一个尴尬的现实是:AI 在修改代码的时候,经常不知道自己改的那个函数被多少地方调用、改完之后会不会连锁反应把别的功能搞崩。这不是 AI 模型不够聪明,而是它看不到代码库的全貌——依赖关系、调用链路、执行流程,这些结构性的信息在普通的文件搜索里是丢失的。