Wiznote 为知笔记

很早以前写过一篇文章,为了寻找Evernote 的代替品,两年过去了,我也认认真真地用了两年的的为知笔记。说实话现在再来说为知笔记确实有些晚,很早很早以前就有很多人推荐为知笔记。

但是经过两年使用,加上最新 2.5.8 的版本更新,让我不得不出来说一说 WizNote,早在之前的文章中提到过,因为 WizNote 提供 Linux 版本的客户端,所以让我一直能够用下去。我一直坚信的一点就是做产品,一定是做到一个服务,让用户选择一个服务,能够不考虑其使用成本,也就是不管我是在 Windows ,Mac 还是 Linux,或者是 Android 或者 iOS 我都能够快速获取服务提供的内容,这才是一个真正好的产品。当然所有的笔记类产品中只有 WizNote 做到了。当然这里其实还要提一嘴网易云音乐,太良心了这两家公司。WizNote 不说其他的功能在一定程度上超越 Evernote,但就跨平台,多设备同步这一点就比 Evernote 好过不止一点。更不用说支持markdown,支持语法高亮,支持pdf,html导出等等非常良心的功能。

最新 WinNote 更新一个 Linux 的 AppImage 版本,虽然这个版本绿色,下载直接可以使用,但是带来一个问题就是,无法建立快捷方式,我的快速启动突然失效,让我有些失望。AppImage 格式是一种新的Linux程序封装方法。AppImages 是便携的——它们无需安装即可运行在大多数Linux发行版上。所有的依赖包均包含于一个AppImage文件。但是这个 AppImage 文件必须每一次都让我去目录下手动执行,这个让我非常不爽,于是找到了下面的解决方法,手动创建一个快捷方式,使用该快捷方式启动 WizNote。

如果使用 GNOME,可以安装包 sudo apt-get install --no-install-recommends gnome-panel,然后使用如下命令:

gnome-desktop-item-edit ~/.local/share/applications --create-new

该命令会弹出一个对话框,输入一些必要的参数,保存即可,该命令会在 ./local/share/application/ 目录下新建一个 WizNote.desktop 的文件

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application                                # type
Icon=wiznote                                    # location of icon file
Terminal=false                                  # whether this app requires to be run in a terminal.
Name[en_US]=WizNote
GenericName=WizNote                             # longer name of the app
Exec=/home/einverne/app/WizNote-2.5.8-x86_64.AppImage  # command used to launch an app
Name=WizNote
Categories=WizNote;                             # categories in which this app should be listed.
GenericName[en_US.UTF-8]=WizNote

另外一个令我不爽的就是,在这个版本发布之后一段时间后我在 Linux 上的 PPA 安装的版本突然之间无法登录并无论多少次重新登录都说我密码错误,无法登录。即使说因为新版本,或者是因为同步机制升级,导致老版本的同步失效,也应该给予一个正确的提示,而不是说密码错误,我的密码并没有输入错误或者记错,因为网页版,Android/iOS 端都是正常登录的,而仅仅给个密码错误的提示会误导用户。虽然安装了新版本的 WizNote 这依然浪费了很多的时间,还有让我吐槽浪费更多的时间。

这有回到了文章开头我的观点,作为一个服务(产品),应该提供的是用户随时随地可获取的服务,所有的更新升级对用户应该都是透明的,用户不应该关心版本升级可能带来的任何问题,有很多时候我非常反感一个产品突然拿掉一些功能,虽然可能在一定程度上可能已经脱离公司发展轨迹,但其实对一些用户还是有着深刻的影响的。所以很多时候在考虑深度使用一个产品(服务)的时候,我一般都会考虑在这个产品的数据有没有备份或者导出的途径,如果没有任何可以导出或者备份的功能,一般情况下也就淘汰了这个服务。

说了这么多,其实 WizNote 还是目前我深度使用的一个服务,我真心的希望他会越来越好,也能够继续维护这么多版本的开发。最后真心地祝愿。


2018-02-14 wiznote , notebook , multi-platform , notes

免费的电子书站点收集

一年前使用 kindle 的时候有 kindle10000 ,还有无数的 kindle push 网站,去年突然全部一下子都关闭了,这一年多来,陆陆续续又发现了一些很不错的站点。现在整理整理分享一下。我电脑中还有大概五六十 G 的当年 kindle 人倒闭时全站资源的打包只是一直都还么有时间建立索引,整理出来,有时间还是要整理一下的。

我的小书屋

http://mebook.cc/

以网盘下载为主

可以用来推送电子书到 Kindle 邮箱

集思会

强烈推荐的站点,几乎 kindle10000 之后就是他了。

http://www.kindlepush.com

书籍比较全,每天可推送两本,下载一本

2018-08-01 更新 kindlepush 网站也关站了,基本上也应该是盗版的原因吧,现在的资源站基本上只要做大了也就面临着闭站的风险了。

书伴

很早之前因为一些 Kindle 相关的文章而关注了,后来也陆陆续续的有一些好书分享。

https://bookfere.com/

漫画

http://vol.moe/

记得以前不叫这个名字的,可推送漫画,漫画比较全,有连载。

bookset 我的精品书库

看站点应该只是个人在维护的。

https://bookset.me/

epubee

一个电子书在线转换工具,也提供热门书的下载和推送。

http://cn.epubee.com/

掌上书苑

一个类似论坛的分享网站

https://www.cnepub.com/
https://www.soepub.com/

我要 kindle 电子书

这也是个人站长维护的电子书分享站点

http://51kindle.me/

kindle178

www.kindle178.com

高清杂志

这是一个杂志的合集,需要付费

http://www.gqzzw.com/

古腾堡

http://readfree.me/

书籍比较全,相同书籍有不同版本,可推送到 kindle,可下载,可共享图书

子乌书简

http://book.zi5.me/

可推送,可下载,注册用户可以共享电子书,网站由 WordPress 所写。

鸠摩搜索

https://www.jiumodiary.com/

主要是微博网盘和百度网盘共享书籍,质量层次不齐

olecn

少量的电子书,基本都在百度网盘

http://www.olecn.com/category/book/

其他

mLook 精校电子书,注册需要邀请码

http://plugin.mlook.mobi/

周读,资源都是放在百度盘上的

http://ireadweek.com/

PDFDRIVE

这是一个面向英文阅读者的 PDF 分享网站,托管了很多高清的 PDF 资源。

https://www.pdfdrive.com/

Library Genesis

Library Genesis 是科学论文和书籍搜索引擎,是一款非常好用的学术(盗版)书网站,以英文语言作品为主,辅以法、德、日、西、葡、意、俄、阿、土等语言作品。1

SaltTiger

个人维护的,基本和计算机相关,大部分都是英文图书

https://salttiger.com/

booklist.mobi

也是一个个人维护的站点

http://www.booklist.mobi/

epdf

英文 PDF

https://epdf.tips/

manybooks

https://manybooks.net/

好读

http://www.haodoo.net/

一些聚合搜索网站

全国图书馆参考咨询联盟

http://www.ucdrs.superlib.net/

读秀

http://www.duxiu.com

计算机相关

  • https://github.com/justjavac/free-programming-books-zh_CN
  • 相关 Kindle 的 tips

最后,在能力范围内请支持正版。个人已买 Kindle Unlimited,部分书籍能够买到也尽量会购买。部分不会发行的电子书用来在 Kindle 上读。

  1. https://www.douban.com/note/651658406/

    http://gen.lib.rus.ec http://libgen.io 


2018-02-13 books , free , website , kindle , pdf , mobi , epub

Linux 下安全的删除文件

Linux 下有一个非常危险的命令—-rm,虽然本意上rm命令是用来删除文件或者文件夹的,但是这个命令删除的文件很难找回来,一旦不小心手贱敲快了,就有可能导致不可挽回的结果。所以我搜了一圈,发现其实 Ubuntu 下有一个包 trash-cli。给Linux加了一层垃圾箱。

安装

sudo apt install trash-cli

这个命令包,包括 trash, trash-list, trash-restor, trash-empty 等等几个命令,具体可以参看 man。

~/.zshrc 中添加 alias

alias rm=trash

这样,以后使用 rm 时,默认将文件移动到垃圾箱中,再不会发生不小心删除文件之后无法找回的问题。

reference


2018-02-12 linux , rm , delete , file , manager

搭建自己的 Weibo 转 RSS 服务

认识我的人都是知道我一直使用 RSS 订阅信息,但是互联网越来越闭塞的现在,每一家公司都在自建后花园,把所有的信息封闭在内部,几乎现在没有任何内容型平台提供 RSS 输出了,所以也才有了这篇文章。以前我使用的微博转 RSS 的服务大都已经挂掉,唯一一家微博档案最近也似乎有些危险。不过幸好查到下面两个项目,让微博定义 RSS 不在困难。

  • https://github.com/DIYgod/Weibo2RSS
  • https://github.com/zgq354/weibo-rss

我使用了第二个项目,安装过程可以参考下文,都是使用 nodejs 实现,如果手动安装需要手动配置一下环境。

使用 Docker 安装

安装 Docker 的文章可以查看之前的文章

git clone https://github.com/zgq354/weibo-rss.git
cd weibo-rss
docker build -t <tag> .
docker run -p 3000:3000 -d --name weibo-rss --restart=always <tag>

默认程序会监听服务器的 3000 端口,可以通过 Nginx 的 proxy_pass 指令配置请求转发。

reference


2018-02-11 linux , docker , weibo , rss , inoreader

每天学习一个命令:find 查找文件

查找的动作在平时使用的频率也还是很高的,所以知道并用好 find 这个命令也很重要。find 命令顾名思义,就是搜索特定文件夹内的文件。

基本使用

最基本的使用

find [path] [expression]

在 path 目录下查找 expression 的文件。

使用举例

通过文件名查找

find -name "query"   # 搜索文件名,大小写敏感
find -iname "query"  # 大小写不敏感
find -not -name "query"  # 查找不包含关键字的文件
find \! -name "query"    # 不包含

按照类型查找文件

find -type [fdlcb] "query"

type 后能够使用的类型有

  • f 常规文件
  • d 目录
  • l 连接
  • c character devices
  • b block devices

比如要查找系统中所有以 .conf 结尾的文件

find / -type f -name "*.conf"

通过文件大小查找

find /path/to/folder -size 50M

查找 50M 的文件,size 后能够使用的单位有:

  • b 512byte blocks
  • c byte 字节
  • w two byte
  • k kB 千字节
  • M MB
  • G GB

size 后面的参数可以使用 + 或者 - 或者不加来标识,超过,少于,或者正好。

find / -size +700M   # 表示查找大于 700M 的文件
find / -size -50c    # 表示查找小于 50 byte 的文件
find . -size 50M     # 表示在当前目录查找正好 50M 的文件

通过时间来查找文件

Linux 会存储下面的时间:

  • Access time 上一次文件读或者写的时间
  • Modifica time 上一次文件被修改的时间
  • Change time 上一次文件 inode meta 信息被修改的时间

在按照时间查找时,可以使用 -atime-mtime 或者 -ctime ,和之前 size 参数一样可以使用 + 或者 - 来标识超多多长时间或者少于多长时间。

find / -mtime 1          # 寻找修改时间超过一天的文件
find / -atime -1         # 寻找在一天时间内被访问的文件
find / -ctime +3         # 寻找 meta 信息被修改的时间超过 3 天的文件

寻找修改时间超过 1 小时的 mp3 文件

find /path/to/folder -maxdepath 1 -mmin +60 -type f -name "*.mp3"

其中的-mmin n 参数表示的就是文件内容在前 n 分钟没有修改。

find /path/to/folder -maxdepath 1 -mmin +60 -type f -name "*.mp3" -exec rm -f {} \;

通过上面的语句就能够一次性删除超过 60 分钟未修改的 mp3 了。

通过 Owner 和权限搜索

使用 -user-group 参数来通过拥有者搜寻

find / -user einverne
find / -group shadow

同样按着权限查找文件

find / -perm 644
find / -perm -644 # 查找权限至少是 644 的文件

限制查找的深度

使用 -maxdepth 来限制查找的深度,默认情况下 find 会一层层搜索,如果只想让 find 命令查找当前目录或者子目录,可以使用

find -maxdepth 2 -name "query"

同理 还有一个选项 -mindepth

find -mindepth 2 -maxdepth 3 -name "query"

对搜索结果批处理

在搜索出结果之后,可以使用如下的方式对搜索的结果执行一个命令

find [param] -exec command {} \;

比如批量修改权限

find . -type f -perm 644 -exec chmod 664 {} \;
find . -type d -perm 755 -exec chmod 700 {} \;   # 批量修改文件夹权限

批量删除时间超过 1 天的文件

综合上面按时间查找文件和对搜索结果批处理,可以获知

find /path/to/folder/* -mtime +1 -exec rm {} \;
  • find 后面接一个完整的 path
  • -mtime +1 表示的查找时间超过 1 天的内容
  • -exec 后面表示对搜索的结果进行处理

使用 locate

locate 命令需要额外安装

sudo apt install mlocate

locate 命令维护了一份文件和目录的数据库,所以检索速度会快一些,数据库通常一天更新一次,可以手动更新数据库

sudo updatedb
locate -S   # 查看当前数据库数据

locate 使用的方式和 find 大致差不多。

reference


2018-02-10 linux , find , file , command , search

监控 docker 运行数据 stats 命令

之前因为学习 Docker 也总结了一批经常使用的 Docker 命令 然后回头过来看唯独漏掉了 Docker 监控的一块,一方面也是当时看的文档并没有覆盖到这个领域,另一方面也是最近看到 Google cAdvisor 才开始注意到 Docker 监控的命令。

使用

查看容器资源使用

直接运行,查看所有当前运行的 Docker 状态及资源消耗

docker stats

该命令执行后会返回下列数据

  • 容器ID,名字
  • CPU及 MEM 使用率
  • 内容使用量及限制
  • NET I/O 网络IO
  • BLOCk I/O 本地IO
  • PIDs 进程ID

查看容器中进程情况

查看容器中启动的进程

docker top [CONTAINER] [ps options] 

查看容器的日志

使用如下命令查看容器日志

docker logs [OPTIONS] CONTAINER

使用参数 -f 来追踪打印未来的日志

docker logs -f CONTAINER

2018-02-10 docker , monitor , container

Linux 下显示网络流量

Linux 下查看网络流量的命令有很多,之前 也介绍过使用 nethogs 来按照进程查看网络流量。但其实 Linux 下有很多命令同样可以达到效果。

总体带宽使用

bmon

使用 apt install bmon 安装,使用非常简单直接运行即可。

bmon 的介绍说是一个网络监控和调试工具,能够提供一个可视化的界面。

其他还有 nload, slrum, speedometer, netload

套接字连接带宽使用

常用的有 iftop,iptraf

iftop 使用 pcap 库来捕获进出网络适配器的数据包,然后汇报总数据包大小和数量。iftop 报告每一个连接所使用的带宽,但是没有办法报告进程名和编号。使用 iftop 时如果系统包含多个网络接口可能需要指定监控的接口 sudo iftop -i eth0,类似 top 命令,iftop 可以在运行时改变显示:

  • h 帮助
  • n 是否解析域名
  • s 是否显示源地址
  • d 是否显示目标地址
  • S 是否显示端口号

iptraf

iptraf 是一款交互式的网络监控工具,它可以显示每个连接和主机之间的传输数据。按连接/端口查看流量。

ifstat

ifstat: 按设备查看流量

ethtool

ethtool: 诊断工具

ss

ss: 连接查看工具


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 Do 不仅能够用来启动程序,也能够快速打开文件,控制媒体文件等等。

通过下面命令安装

sudo apt install gnome-do

他的官网地址:https://do.cooperteam.net/ 安装之后我最喜欢的设置就是将启动 Do 的快捷键设置为 Alt+Space

不过可惜的是 GNOME Do 已经很多年没有更新 ,版本也永远的停留在了 GNOME Do 0.95。总结来看 Do 虽然不是最好的启动器,但是应付日常使用完全没有任何问题。

cerebroApp

cerebroApp 是一款用 Javascript 实现的启动器,跨平台,支持插件,界面友好。一般启动器能够实现的功能他都有。安装方法可参考其官网: https://cerebroapp.com/ 非常简单,几乎一键。

代码地址: https://github.com/KELiON/cerebro

改变快速启动hotkeys

当尝试在 Perferences 中修改启动快捷键时你会发现无法修改,查看官方的文档可以看到:

Config file path
Windows: %APPDATA%/Cerebro/config.json
Linux: $XDG_CONFIG_HOME/Cerebro/config.json or ~/.config/Cerebro/config.json
macOS: ~/Library/Application Support/Cerebro/config.json

修改配置文件,可以看到默认定义的快捷键是 Control + Space 我习惯使用 Alt + Space

安装插件

安装插件非常简单,在 cerebro 中直接输入 plugins hash 即可。

在 Cerebro 中访问粘贴板 https://github.com/codingmatty/cerebro-plugin-clipboard

直接在 Cerebro 中获取 hash ,安装 cerebro-hash ,然后先键入 hash 加上空格后面是需要 hash 的字符串。

hash [input]
hash (algorithm) [input]
(algorithm) [input]

有道翻译插件 https://github.com/lcjnil/cerebro-youdao 输入 youdao hello 来查询

还有 BASE64 加密解密,时间戳 等等插件,自己添加即可。

更多有用的 Cerebro 扩展插件可以在这里获取: https://github.com/lubien/awesome-cerebro

albertlauncher

同样是一款开源启动器,不过他只有 Linux 版本,安装过程也是比较简单。功能区别不是很大。它使用 C/C++ Qt 写成。同样支持插件。

安装过程可参考: https://albertlauncher.github.io/docs/installing/

项目地址: https://github.com/albertlauncher/albert

总的来说比较推荐 cerebroApp ,在三者区别不大的情况下,跨平台还是比较吸引我的,并且UI小清新。

  1. 参考维基 


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]]

uniq 会从标准输入读取数据,过滤相邻的行,并将结果输出到标准输出。如果没有其他选项,重复的行会合并到第一次出现的行上。

uniq 的基本使用如下:

一些常用参数

  • -c 在每一行前打印行出现的次数
  • -d 只打印重复的行,重复的行只打印一次
  • -D 打印出所有重复的行
  • -f 在比较时跳过前 N 个 fields
  • -i 在比较重复行时忽略大小写
  • -s 在比较时忽略前 N 字符
  • -u 只打印唯一的行
  • -w 比较时只比较每一行的前 N 个字符

通常情况下 field 是由空格或者 TABs 分割的。

通常情况下,uniq 会和 sort 搭配使用。

命令返回 0 或者 >0 的数值表示退出,如果为 0 表示运行成功,>0 的数值表示发生错误。

实例

假设有如下四行在文件 cat file.txt 中:

uniq line
repeat line
test line
repeat line

打印重复行的数量

最为常用的 -c 选项,可以打印重复行的数量

sort file.txt | uniq -c
  2 repeat line
  1 test line
  1 uniq line

打印重复的行

使用 -d 打印重复的行,那么不重复的行就不会输出

sort file.txt | uniq -dc
  2 repeat line

仅显示不重复的行

显示不重复的行 -u

sort file.txt | uniq -u
test line
uniq line

跳过行开头字符

可以使用 -s 参数跳过开头 N 个字符

cat /var/log/nginx.log | uniq -s 10

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

Linux 管理开机启动

如果想要科学的管理Linux 的开机启动项,那么了解 Linux 开机启动流程是非常有必要的。链接的文章将Linux开机启动流程讲述的非常通俗易懂,这里就不再详述。简单地归纳:

  1. 加载内核 ,读入 /boot 目录下内核文件
  2. 内核加载完成后,运行第一个程序 /sbin/init(PID为1),用来初始化系统环境
  3. 依据运行级别启动守护进程(daemon 或者称为服务)
  4. 加载开机启动程序
  5. 用户登录
  6. 进入login shell,依据不同的登录方式(命令行登录,ssh登录,图形界面登录),系统加载不同的shell配置,基本上就完成启动了

这篇文章涉及到的开机启动项内容主要就是集中在上述的第3,4步。Linux 预置七种运行级别(0-6),系统在 /etc 目录会有各个运行级别对应的子目录,目录中指定要加载的程序

  /etc/rc0.d   /etc/rc1.d   /etc/rc2.d   /etc/rc3.d   /etc/rc4.d   /etc/rc5.d   /etc/rc6.d

目录中的 rc 表示 run command, 最后的 d 表示 directory 目录。/etc/rcN.d(其中 N 表示的run level) 目录下是一系列启动脚本。文件都是以 字母S+两位数字+程序名 的形式构成。字母 S 表示 Start,如果第一个字母是 K,那么表示 Kill 关闭。中间两位数字表示处理顺序,数字越小表示处理越早。不建议直接手动修改 /etc/rcN.d 目录下的文件。这就要涉及到本文的重点,如何科学的管理Linux自启动脚本。

rcconf

使用命令 apt-get install rcconf 来安装, rcconf 使用了一个非常友好的界面来管理启动项,使用 sudo rcconf 就能看到一个开机启动时可以执行的程序列表,使用空格选中就能添加到开机启动,同理撤销选中就取消开机启动,最后OK,保存就行。rcconf 是 update-rc.d 命令的 TUI(Text User Interface)。

几个重要的文件

  • /var/lib/rcconf/services 用来保存服务启动number,如果服务的启动顺序不是 20(默认),那么 rcconf 会将服务的启动顺序保存到该文件中以备重新启用时恢复。
  • /var/lib/rcconf/lock Lock 锁
  • /var/lib/rcconf/guide 管理员用来定义的Guide

update-rc.d

上一个 rcconf 命令中就提到了其实 rcconf 就是这个 update-rc.d 命令的封装,update-rc.d 命令可以用来安装或者移除 init 脚本。

update-rc.d [-n] [-f] name remove
update-rc.d [-n] name defaults
update-rc.d [-n] name disable|enable [ S|2|3|4|5 ]

其中 -n 选项,不会做任何实际操作,但是会显示运行命令之后会执行的操作,可以用来检查命令。-f 命令可以记忆为 force 表示强行删除链接。

当执行该命令时,就是用将 /etc/rcN.d/[SK]NNname 指向 /etc/init.d/name ,如果有任何的 /etc/rcN.d/[SK]??name 存在的话,update-rc.d 不会做任何改动。

update-rc.d service enable
update-rc.d samba defaults
update-rc.d mysql defaults 10 10  # 启动优先级,顺序
update-rc.d apache2 start 10 2 3 4 5 . stop 90 0 1 6 .     # 指定优先级,启动时10,关闭时90,后面的 `2 3 4 5` 表示run level
update-rc.d -f samba remove       # 移除服务自启动 

sysv-rc-conf

使用命令安装 apt-get install sysv-rc-conf ,然后使用管理员运行 sudo sysv-rc-conf

systemctl

还有一个命令 systemctl 涉及太多 systemd 的内容,略过

手动

如果先要自己写一个服务,或者脚本开机启动,那么可以把文件放到 /etc/init.d/ 目录下,改权限

chmod +x /etc/init.d/startup.sh
ln -s /etc/init.d/startup.sh /etc/rc.d/

reference


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

电子书

最近文章

  • Linux 下执行文件中的每一行 今天想要通过 adb 将盒子中的所有 apk 备份出来,很早之前写过的文章 就提到过如何手动的备份 apk 文件,不过这样很麻烦,需要每一条都手敲,所以想到了使用刚了解到的 xargs 命令,所以想通过几个命令将文件路径全部都拷贝出来,包名也拷贝出来。然后使用 xargs 来批量执行每一行命令。
  • Intellij IDEA 中删除所有未使用的类 修改设置
  • Gitlab 中使用命令行提交 merge request gitlab-cli 是一个用 Javascript 所写的工具,可以用来在命令行中提交 gitlab 的 merge request 等等,作者说收到 hub 工具的启发。
  • 每天学习一个命令:xargs xargs 会从标准输入读取内容,然后将内容送给其他命令构建其他可执行命令。这意味着可以从一个命令行的输出结果读取内容并作为另一个命令的输入。
  • Useful tmux tips Tmux 是一个很强大的终端复用工具,下面是日常积累中记录的一些使用经验。