每天学习一个命令:jq 命令行下处理 JSON

jq 是一个命令行下的 JSON 字符串处理工具,就像 sed 对于文本一样,jq 对应着 json 文件,jq 命令可以不同方式转换 JSON。jq 可以接受文本输入,默认情况下,jq 从 stdin 读取 JSON 流。通过和管道的组合可以非常方便的处理 JSON。 jq is a lightweight and flexible command-line JSON processor 使用实例 直接处理文件 js -I '.' input.json cat input.json | jq -I '.' jq 只能接受标准 JSO Read more ...

2018-12-21 jq , json , linux , command

日志数据脱敏方法研究

日志文件中的敏感信息比如密码,电话号码等等进行过滤处理。第一个想到的方法就是去 log4j 中自定义 Appender,在 Appender 中正则匹配敏感信息进行过滤。 log4j 日志框架在之前 的文章中也也说过,主要有三个组件,Logger,Appenders 和 Layout,要过滤日志内容解决方法也就是从这三个地方着手。 log 时手动处理 Logger 着手就是在打日志的时候就处理,从根源解决。最精确的处理就是在每个类敏感的字段上手动处理,在打印日志时,封装方法手动转换 String 。这种方法唯一的缺点就是对于一个大型成熟的系统,要修改 Read more ...

2018-12-20 log4j , log , desensitize , 日志 , 脱敏

log4j PatternLayout 输出模板

log4j 下的 PatternLayout 只是 Layout 的一种,用来格式化日志文件的输出。在 PatternLayout 中,配置一个样板字符串,通过该字符串来定义输出格式。 log4j 还提供了其他三种 Layout org.apache.log4j.HTMLLayout(以 HTML 表格形式布局) org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串) org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 这个类的目标是格式化 Logg Read more ...

2018-12-19 log4j , java , log

Unix 进程

Unix 内核在硬件之上,与硬件交互,系统文件读写,网络数据发送,内存分配,扬声器播放音频等等。程序不能直接访问内核,通信通过系统调用完成。 系统调用是内核和用户空间交互的桥梁,规定了程序和计算机硬件之间可以发生的交互。 Unix 的系统调用文档已经在系统中,输入 man man 查看。 进程是 Unix 系统基石,所有的代码都在进程中被执行。 进程标示 唯一进程标示 PID,PID 本身没有任何进程信息,只是一个数字。系统中每一个进程都有其父进程,PPID。多数情况下,特定进程的父进程就是调用他的进程。 文件描述符值用来跟踪打开的资源,已经关 Read more ...

2018-12-17 unix , linux , process

log4j appender

Appender 表示日志输出的地方,常见的有控制台,文件等等,log4j 自带了一些常用的 Appender。 日志中的 LEVEL 和 threshhold log4j 框架中有两个概念 logger 和 appender。如果 logger 的最低 level 设置为 warn,这意味着任何日志 level 低于 warn 的日志都会被忽略。 一旦一个消息被 logger 接收,这条消息会被发送给一个或者多个 appenders(to console,to file,to mail server, etc). 每一个 appender 都会定 Read more ...

2018-12-17 log , java , log4j , slf4j

重构读书笔记

重构第一步,构造可靠的测试环境。 What 任何可以立即查阅的东西,都故意不去记忆。 什么是重构 重构,对软件内部结构调整,在不改变外部可观察行为的前提下,提高其可理解性,减低修改成本。 重构难题 对于修改接口,能获取所有调用者,那么可以安心修改。如果无法修改全部调用者,如果是公开已经发布的接口,就需要同时维护新旧两个接口,直到所有用户将该变化做出反应。 How Duplicated Code 重复代码提炼。兄弟类,则推到 super class,如果是不完全相同的,则分解方法提炼统一的方法。 Long method 小函数准确的命 Read more ...

2018-12-16 java , refactor , coding , programming

JProfile 简单使用

在学习 ThreadLocal 的时候有人推荐了 JProfiler ,可以用来对 Java 内存泄露分析,JProfile 其实是一个 Java 的性能分析工具,不仅可以用来排查 OutOfMemoryError 的错误,对于查找系统瓶颈,查看 Java 堆信息等等都有很强大的功能支持。 搜索一番之后发现也有很多 Java Profiler 的工具,JDK 自带也有 Java VisualVM 这样的工具。 JProfiler JProfiler’s intuitive UI helps you resolve performance bottle Read more ...

2018-12-14 java , jprofiler , visualvm

英语搭配语字典整理

最近用 [[GoldenDict]] 查词非常频繁且非常有效的提高了阅读的效率,但是在日常有的时候听一些英语口语的广播节目的时候,经常会有一些短语搭配,而我们平时如果写作的话,其实短语较于单词更为重要,口语亦然。所以产生了一个念头,如果有一本英语搭配语字典就能够提高不少效率,没想到都不用去刻意搜索,就出来了好几个推荐。 Oxford Collocation Dictionary 牛津英语搭配语词典 The BBI dictionary of English word combinations BBI 英语搭配词典 Longman Coll Read more ...


Bash Script

Shell Syntax - what is your input means to the shell Shell Operations - what can shell do read input from file breaks the input into words and operations parse the token into simple and compound commands performs the various shell expansions redirections execute th Read more ...

2018-12-14 linux , shell , bash , assignment

Linux 下安装 openssh server

一般服务器中会默认已经安装 SSH server,而个人版本的发行版,比如桌面版的 Ubuntu 或者我用的 Mint 可能默认没有安装,那么就需要自己安装配置。 SSH is program and protocol for securely logging into remote machines across a network. It allows you to run programs, and do a variety of tasks as if you were sitting at the machine. SSH is ver Read more ...

2018-12-12 linux , openssh , ssh

最近文章

  • Zig 语言编写的开源终端 Ghostty 在 Linux 上我使用 [[Guake]],到后来换成 macOS 之后使用 Kitty,直到前段时间更换成 Warp,但是没想到这几天又发现一款不错的终端 Ghostty。没查不知道,但是一查之后才发现 Ghostty 背后的作者的故事是多么精彩,并且 Ghostty 使用的 Zig 语言也是我第一次听说。
  • 关于在 Docker 容器中如何优雅关闭 Java 应用的记录 这两天遇到一个和 Docker 运行相关的问题,我们使用 Azure App Service 来运行服务,但是每次重启服务的时候,发现不会出发 Javalin 的 stop,感觉 Java 进程没有接受到 Docker 容器停机的信号,然后就被系统杀死了,所以就这个问题,仔细地研究了一下 Docker 运行以及如何优雅地关闭 Docker 容器中的 Java 进程。
  • IBKR 使用教程系列之共同基金 ETF Replicator 这两天在 IBKR 上买了一点按月分红的 ETF,然后在邮箱中就收到了 IBKR 发过来的建议邮件,说 IB 还提供了一个共同基金的工具可以来寻找类似表现,但是费用更低的其他 ETF,这就是一款 ETF 发掘工具。
  • Google Stitch:AI 驱动的 UI 设计工具让创意快速成为现实 在昨天 2025 年的 Google I/O 大会上 Google 一口气发布了超多的 AI 工具集,其中包括了一款叫做 Stitch 的 AI 工具,它可以快速帮助设计师和开发者将 UI 设计理念变成可实际使用的设计稿,生成设计稿之后可以直接导入到 Figma,或者直接导出成前端代码。所以本文就具体来介绍一下 Stitch。
  • NameCrane 邮件托管服务体验:超大存储空间的终身邮箱解决方案 去年黑五以及今年年初逛论坛的时候偶然间发现一款邮件托管服务 NameCrane,我自己一直都有发邮件的需求,我自己也有维护邮件服务器,但是看到有合理的邮件托管服务还是会忍不住多看一下,于是我就被 NameCrane 提供的终身套餐吸引住了。