|
|
|
@ -166,7 +166,7 @@
|
|
|
|
|
|
|
|
|
|
- 如果你不得不处理 XML,`xmlstarlet` 宝刀未老。 |
|
|
|
|
|
|
|
|
|
- 使用 `jq` 处理 JSON。 |
|
|
|
|
- 使用 [`jq`](http://stedolan.github.io/jq/) 处理 JSON。 |
|
|
|
|
|
|
|
|
|
- Excel 或 CSV 文件的处理,[csvkit](https://github.com/onyxfish/csvkit) 提供了 `in2csv`,`csvcut`,`csvjoin`,`csvgrep` 等工具。 |
|
|
|
|
|
|
|
|
@ -231,7 +231,7 @@
|
|
|
|
|
|
|
|
|
|
- 若要了解内存状态,运行并理解 `free` 和 `vmstat` 的输出。尤其注意“cached”的值,它指的是 Linux 内核用来作为文件缓存的内存大小,因此它与空闲内存无关。 |
|
|
|
|
|
|
|
|
|
- Java 系统调试则是一件截然不同的事,一个可以用于 Oracle 的 JVM 或其他 JVM 上的调试的小技巧是你可以运行 `kill -3 <pid>` 同时一个完整的栈轨迹和堆概述(包括 GC 的细节)会被保存到标准输出/日志文件。 |
|
|
|
|
- Java 系统调试则是一件截然不同的事,一个可以用于 Oracle 的 JVM 或其他 JVM 上的调试的小技巧是你可以运行 `kill -3 <pid>` 同时一个完整的栈轨迹和堆概述(包括 GC 的细节)会被保存到标准输出/日志文件。JDK 中的 `jps`,`jstat`,`jstack`,`jmap` 很有用。[SJK tools](https://github.com/aragozin/jvm-tools) 更高级. |
|
|
|
|
|
|
|
|
|
- 使用 `mtr` 去跟踪路由,用于确定网络问题。 |
|
|
|
|
|
|
|
|
@ -283,12 +283,6 @@
|
|
|
|
|
find . -type f -ls |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
- 尽可能的使用 `xargs` 或 `parallel`。注意到你可以控制每行参数个数(`-L`)和最大并行数(`-P`)。如果你不确定它们是否会按你想的那样工作,先使用 `xargs echo` 查看一下。此外,使用 `-I{}` 会很方便。例如: |
|
|
|
|
```sh |
|
|
|
|
find . -name '*.py' | xargs grep some_function |
|
|
|
|
cat hosts | xargs -I{} ssh root@{} hostname |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
- 假设你有一个类似于 web 服务器日志文件的文本文件,并且一个确定的值只会出现在某些行上,假设一个 `acct_id` 参数在URI中。如果你想计算出每个 `acct_id` 值有多少次请求,使用如下代码: |
|
|
|
|
```sh |
|
|
|
|
cat access.log | egrep -o 'acct_id=[0-9]+' | cut -d= -f2 | sort | uniq -c | sort -rn |
|
|
|
@ -394,7 +388,7 @@
|
|
|
|
|
|
|
|
|
|
- `cssh`:可视化的并发 shell |
|
|
|
|
|
|
|
|
|
- `rsync`:通过 ssh 同步文件和文件夹 |
|
|
|
|
- `rsync`:通过 ssh 或本地文件系统同步文件和文件夹 |
|
|
|
|
|
|
|
|
|
- `wireshark` 和 `tshark`:抓包和网络调试工具 |
|
|
|
|
|
|
|
|
|