每天学习一个命令:使用 grep 查找文件内字符串

一直都知道 grep 很强大,但是一直都没有办法来定义它,直到看到 man 介绍第一行,非常简洁精炼 “print lines matching a pattern”,一下子就知道了 grep 的作用。 grep 全称是 Global Regular Expression Print。grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。 grep 可用于 shell 脚本,因为 grep 通过返回一个状态值来说明搜索的状态,如果模 Read more ...

2017-09-23 grep , linux , egrep , command , regular

jinja2 笔记

jinja2 是基于 Python 的模板引擎。 种类 注意下面的 \ 是因为模板需要转义,使用时需要去掉,另外大括号和 % 之间的空格也需要去掉。 \{\% ... \%\} Statements 控制结构,比如 if/elif/else for-loops,macros,block 等等 \{\{ ... \}\} Expressions 表达式,用来输出结果 \{\# ... \#\} Comments 注释 \# ... \#\# Line Statements 表达式及过滤器 \{\{ name \}\} 结构表示一个变量 Read more ...

2017-09-22 python , flask , jinja2 , template , web

Python 笔记之赋值语句和表达式

赋值语句比较简单,Learning Python 这本书中对赋值语句介绍比较详细,分类也讲述的比较细,这篇文章就只简单的记录一些容易混乱的知识点,并不记录所有赋值语句需要注意的点。 Augmented assignment and shared references 在之前的文章中就交代过共享引用是需要特别注意的,在 augmented assignment 中也是 >>> L = [1, 2] >>> M = L # L M 共享同一个对象 >>&g Read more ...

2017-09-20 python , notes , assignment , expression

Maven 介绍

Maven 是一个项目管理工具,主要用于项目构建,依赖管理,项目信息管理。自动化构建过程,从清理、编译、测试和生成报告、再到打包和部署。Maven 通过一小段描述信息来管理项目。 Maven 安装 安装之前先把 JDK 环境配置好。 Debian/Ubuntu/Linux Mint 下 sudo apt install maven 如果要手动安装则按照下面步骤,选择一个合适的版本 下载 Maven 最新安装包,地址 http://maven.apache.org/download.cgi 比如 apache-Maven-3.3.9-bi Read more ...

2017-09-20 maven , java , build , management

IntelliJ IDEA 中使用 Resin 调试

平时开发环境使用的是 jetty,而 Java Web 有一个更好更快的服务器 Resin,这篇文章就来说一下什么是 Resin,以及在 Debug 中如何使用。 什么是 Resin Resin 是一个提供高性能的,支持 Java/PHP 的应用服务器。目前有两个版本:一个是 GPL 下的开源版本,提供给一些爱好者、开发人员和低流量网站使用;一种是收费的专业版本,增加了一些更加适用于生产环境的特性。 Resin 也可以和许多其他的 web 服务器一起工作,比如 Apache Server 和 IIS 等。Resin 支持 Servlets 2.3 标 Read more ...

2017-09-19 Resin , IntelliJ , Java

Python 中 subprocess.call() vs os.system() 区别

在 Python 中调用系统命令可以使用两种方法,一种是 os 模块中的 system() 方法,一种是 subprocess 模块中的 call() 方法。 os.system() 这个方法会接受一个字符串命令,然后在 subshell 中执行,通常是 linux/OSX 下的 bash ,或者 Windows 下面的 cmd.exe。根据官方的文档,os.system() 方法时使用标准 C 方法 system() 来调用实现的,所以存在和 C 方法中一样的限制。 os.system("python –version") 举例 import Read more ...

2017-09-18 python , subprocess , system , subshell

写了一个推送图书到 Kindle 的 bot

最近因为好奇所以大致的看了一下 Telegram 的 bot,很早 就开始用 Telegram 但事实上,我大部分情况下就是将 Telegram 作为一个跨平台同步工具和备份工具来使用,直到最近因为 Ingress 的一些朋友和一个图书群我对 Telegram 才有了更多的使用,也在 Telegram 发现了每周会推送一本书的 Channel。 所以我想照着有一个叫做 to_kindle_bot 的号自己写了一个将图书发送到 kindle 邮箱的机器人,bot 要实现的功能很简单,就是将图书资源发送给 bot 之后将图书发送邮件推送到关联的 kindl Read more ...


每天学习一个命令:jstack 打印 Java 进程堆栈信息

Jstack 用于打印出给定的 Java 进程 ID 或 core file 或远程调试服务的 Java 堆栈信息。 这里需要注意的是 Java 8 引入了 Java Mission Control,Java Flight Recorder,和 jcmd 等工具来帮助诊断 JVM 和 Java 应用相关的问题。推荐使用最新的工具以及 jcmd 来进行诊断。 Prints Java thread stack traces for a Java process, core file, or remote debug server. This com Read more ...

2017-09-14 jstack , java , debug , linux , thread-dump

Spring 中 HandlerMethodArgumentResolver 使用

HandlerMethodArgumentResolver 是一个接口: public interface HandlerMethodArgumentResolver { boolean supportsParameter(MethodParameter var1); @Nullable Object resolveArgument(MethodParameter var1, @Nullable ModelAndViewContainer var2, NativeWebRequest var3, @Nullable WebDa Read more ...

2017-09-10 spring , resolver , spring-boot

使用 antigen 来管理 zsh 插件

antigen 是 zsh 的插件管理工具,在他 GitHub 主页上的一句话非常形象的解释了他的功能。 Antigen is to zsh, what Vundle is to vim. 2021 年更新 在过去几年的使用里面 antigen 并没有出现多大的问题,但是随着 antigen 以及 zsh 安装的插件过多,导致每一次打开一个新的终端都会变得很慢,所以我在今年早些的时候切换成了 zinit。 安装 curl -L git.io/antigen > antigen.zsh 或者 apt-get install zs Read more ...

2017-09-07 antigen , zsh , bash , linux , vim , tmux

最近文章

  • OBS 配置多路推流 实现多平台同时直播 [[Open Broadcaster Software(OBS)]] 是一个非常强大的开源的,直播推流工具。但是默认情况下 OBS 只能配置推送一个直播流。但是现在支持直播的平台越来越多,如果直接将直播流推送给多个平台,那么可以通过本文介绍的方法,借助多平台推流插件来实现。
  • 将 Obsidian 配置成私人 AI 知识库 前两天介绍过腾讯推出的个人知识库工具 IMA.Copilot,但是熟悉我的人肯定知道我这几年了一直都是在使用 Obsidian 作为我个人的知识库的,在本地完全使用 Markdown 作为文档的存储格式,不依赖任何的外部工具,以及联网工具,只使用 Syncthing 作为同步。
  • 腾讯推出个人知识库产品 ima.copilot 前两天看到腾讯推出一个个人知识库产品 ima,融合了 DeepSeek,可以直接搜索知识库中的内容,还可以上传文档回答,所以今天就来体验一下这个新产品 ima。
  • asdf 升级 0.16.0 问题记录 很早之前我就已经开始使用 asdf 作为我本地的编程语言多版本管理工具,这个工具非常实用,但是最近 asdf 升级到了 0.16.0 版本,这是一个不兼容的版本,作者将整个项目中 asdf 从 Bash 脚本重写为 Go 语言,这带来了一系列的问题,这里记录一下我在升级过程中遇到的问题以及解决方案。
  • 2025 苹果开发者帐号注册记录 最近开发了一款 Aki 日语词典想要上架 iOS,但是发现 Apple 开发者帐号注册却是比较麻烦,主要是我平时使用的 Apple ID 不在国区,手机一直使用的是美区帐号,还有一个日区的帐号用来下载日区的应用,所以导致 Apple ID 和绑定的手机号都非常混乱,我本来想注册美区的帐号,因为本来就是手机登录的帐号,但是过不去认证,所以想要去注册国区的帐号,可是我的 macOS 和手机没有一个有国区帐号的登录,利用网页版本注册的时候也发生了不明错误(We are unable to process your request. An unknown error occurred.),根本没有提供任何有效的信息,最后尝试用日区的 Apple 帐号注册,可是下载了 Developer 应用,登录日区帐号,Enroll 按钮显示灰色!这种错误也是第一次见到,不过好在这一次,我可以通过网页来联络客服,等了两天之后从客服那边获得了一点有效信息。