Linux 下显示网络流量

Linux 下查看网络流量的命令有很多,之前 也介绍过使用 nethogs 来按照进程查看网络流量。但其实 Linux 下有很多命令同样可以达到效果。 总体带宽使用 bmon 使用 apt install bmon 安装,使用非常简单直接运行即可。 bmon 的介绍说是一个网络监控和调试工具,能够提供一个可视化的界面。 其他还有 nload, slrum, speedometer, netload 套接字连接带宽使用 常用的有 iftop,iptraf iftop 使用 pcap 库来捕获进出网络适配器的数据包,然后汇报总数据包大小和数量。i Read more ...

2018-02-09 linux , command , network , iftop , bmon

Linux 下几款快速启动器

本篇文章主要介绍 Linux 下几款常用的启动器,启动器顾名思义就是用来快速开启应用程序的程序。启动器最常用的功能就是用来快速启动另外一个程序,但是一款好的启动器应该提供一些常用的功能,比如说base64 编解码,比如当前Unix时间戳,再比如搜索Google,计算器,打开文件,单位转化,甚至是执行系统命令等等。 本文主要要介绍的是这三款: GNOME Do,cerebroApp,albertlauncher。 GNOME Do GNOME Do 是最初由David Siegel开发的一个GNU/Linux下的流行的自由应用程序启动器1,GNOME Read more ...

2018-02-09 linux , launcher , command , app

每天学习一个命令: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

最近文章

  • Claude Code 第三方 API 代理配置 Headroom 最近在给自己的 AI 编程工作流加入 [[Headroom]] 上下文压缩工具时,遇到了一个需要特别注意的配置问题。相信有不少人和我一样,为了降低成本或者改善访问体验,已经在 [[Claude Code]] 或 [[Codex]] 里配置了第三方 API 代理,比如一些第三方聚合平台或者自建的转发服务。这时候想再套上一层 Headroom 做 Token 压缩,就需要特别注意配置细节,不然两层代理会打架。
  • Headroom:让 AI Agent 少花冤枉钱的上下文压缩工具 最近一段时间我在深度使用 [[Claude Code]] 做开发工作,用得越多,账单就越触目惊心。一次稍微复杂一点的任务,比如让它读取几个文件、搜索一下代码、跑一下测试,轻轻松松就能烧掉超过 100K 的 Token。更让人无奈的是,这 100K 里面有相当大一部分是重复冗余的内容——工具调用的输出、日志、搜索结果,它们被原封不动地塞进上下文,再一次次地发给模型,而模型其实只需要其中很小一部分关键信息。
  • 用 Harbor 搭建私有 Docker Registry:从安装到日常使用的完整实践 我维护过几个跑在自己服务器上的小项目,构建出来的 [[Docker]] 镜像最早都是直接推到 [[Docker Hub]] 上的。用了一段时间之后开始觉得别扭:一些只在内网跑的服务镜像,没必要也不应该传到公开的仓库;Docker Hub 对匿名拉取做了限流之后,CI 流水线偶尔会因为触发了速率限制而失败;再加上想给不同的项目、不同的同事分配不同的访问权限时,公共仓库这套体系根本满足不了。折腾到后来我意识到,是时候在自己的机器上搭一个真正能用的私有镜像仓库了。
  • 用 New API 打造个人 AI 网关:统一管理所有大语言模型接口 这段时间我同时用着好几个大语言模型服务:日常写作和代码靠 [[Claude]],轻量任务交给 [[Codex]],搜索增强用 [[Antigravity]],还有几个本地跑着 [[Ollama]] 的小模型供离线场景使用。每个平台各自的 API Key 散落在项目环境变量里,月底要去好几个后台分别对账,想横向对比两个模型的输出还得打开不同的网页或客户端来回切换,很费事。
  • Surfingkeys:比 Vimium 更强大的浏览器键盘控制扩展 最早接触 [[Vimium]] 是在学习 Vim 编辑器之后,那种能用键盘完全控制浏览器的感觉确实让人着迷。不用频繁移手到鼠标,链接跳转、页面滚动、标签切换全用键盘搞定,效率提升的体验是实实在在的。用了几年 Vimium 之后,我开始接触到 [[Surfingkeys]],起初以为不过是另一个同类扩展,但深入用下来才发现这两者的差距远比我想象的大。