Skip to content

Commit 4e41430

Browse files
committed
clean markdown
1 parent a1e9ecd commit 4e41430

File tree

5 files changed

+79
-70
lines changed

5 files changed

+79
-70
lines changed

README.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
🐌 useful-scripts
1+
🐌 useful-scripts
22
====================================
33

44
<img src="docs/script-logo.png" width="20%" align="right" />
@@ -10,16 +10,16 @@
1010
[![GitHub forks](https://img.shields.io/github/forks/oldratlee/useful-scripts.svg?style=social&label=Fork&)](https://github.com/oldratlee/useful-scripts/fork)
1111

1212

13-
👉 把平时有用的手动操作做成脚本,这样可以便捷的使用。 ✨
13+
👉 把平时有用的手动操作做成脚本,这样可以便捷的使用。 ✨
1414

15-
有自己用的好的脚本 或是 平时常用但没有写成脚本的功能,欢迎提供([提交Issue](https://github.com/oldratlee/useful-scripts/issues))和分享([Fork后提交代码](https://github.com/oldratlee/useful-scripts/fork))! 💖
15+
有自己用的好的脚本 或是 平时常用但没有写成脚本的功能,欢迎提供([提交Issue](https://github.com/oldratlee/useful-scripts/issues))和分享([Fork后提交代码](https://github.com/oldratlee/useful-scripts/fork))! 💖
1616

1717
PS:
1818

1919
本仓库的脚本(如`Java`相关脚本)在阿里等公司(如随身云,见[`awesome-scripts`仓库](https://github.com/Suishenyun/awesome-scripts)说明)的线上生产环境部署使用。
20-
如果你的公司有部署使用,欢迎使用通过[提交Issue](https://github.com/oldratlee/useful-scripts/issues)告知,方便互相交流反馈~ 💘
20+
如果你的公司有部署使用,欢迎使用通过[提交Issue](https://github.com/oldratlee/useful-scripts/issues)告知,方便互相交流反馈~ 💘
2121

22-
🔰 快速下载&使用
22+
🔰 快速下载&使用
2323
----------------------
2424

2525
```bash
@@ -28,46 +28,46 @@ source <(curl -fsSL https://raw.githubusercontent.com/oldratlee/useful-scripts/m
2828

2929
更多下载&使用方式,参见[下载使用](docs/install.md)
3030

31-
📚 使用文档
31+
📚 使用文档
3232
----------------------
3333

34-
### [`Java`相关脚本](docs/java.md)
34+
### [`Java`相关脚本](docs/java.md)
3535

36-
1. [show-busy-java-threads](docs/java.md#beer-show-busy-java-threads)
36+
1. [show-busy-java-threads](docs/java.md#-show-busy-java-threads)
3737
用于快速排查`Java``CPU`性能问题(`top us`值过高),自动查出运行的`Java`进程中消耗`CPU`多的线程,并打印出其线程栈,从而确定导致性能问题的方法调用。
38-
1. [show-duplicate-java-classes](docs/java.md#beer-show-duplicate-java-classes)
38+
1. [show-duplicate-java-classes](docs/java.md#-show-duplicate-java-classes)
3939
找出`jar`文件和`class`目录中的重复类。用于排查`Java`类冲突问题。
40-
1. [find-in-jars](docs/java.md#beer-find-in-jars)
40+
1. [find-in-jars](docs/java.md#-find-in-jars)
4141
在目录下所有`jar`文件里,查找类或资源文件。
4242

43-
### 🐚 [`Shell`相关脚本](docs/shell.md)
43+
### 🐚 [`Shell`相关脚本](docs/shell.md)
4444

4545
`Shell`使用加强:
4646

47-
1. [c](docs/shell.md#beer-c)
47+
1. [c](docs/shell.md#-c)
4848
原样命令行输出,并拷贝标准输出到系统剪贴板,省去`CTRL+C`操作,优化命令行与其它应用之间的操作流。
49-
1. [coat](docs/shell.md#beer-coat)
49+
1. [coat](docs/shell.md#-coat)
5050
彩色`cat`出文件行,方便人眼区分不同的行。
51-
1. [a2l](docs/shell.md#beer-a2l)
51+
1. [a2l](docs/shell.md#-a2l)
5252
按行彩色输出参数,方便人眼查看。
53-
1. [ap and rp](docs/shell.md#beer-ap-and-rp)
53+
1. [ap and rp](docs/shell.md#-ap-and-rp)
5454
批量转换文件路径为绝对路径/相对路径,会自动跟踪链接并规范化路径。
55-
1. [tcp-connection-state-counter](docs/shell.md#beer-tcp-connection-state-counter)
55+
1. [tcp-connection-state-counter](docs/shell.md#-tcp-connection-state-counter)
5656
统计各个`TCP`连接状态的个数。用于方便排查系统连接负荷问题。
57-
1. [xpl and xpf](docs/shell.md#beer-xpl-and-xpf)
57+
1. [xpl and xpf](docs/shell.md#-xpl-and-xpf)
5858
在命令行中快速完成 在文件浏览器中 打开/选中 指定的文件或文件夹的操作,优化命令行与其它应用之间的操作流。
5959

6060
`Shell`开发/测试加强:
6161

62-
1. [echo-args](docs/shell.md#beer-echo-args)
62+
1. [echo-args](docs/shell.md#-echo-args)
6363
输出脚本收到的参数,在控制台运行时,把参数值括起的括号显示成 **红色**,方便人眼查看。用于调试脚本参数输入。
64-
1. [console-text-color-themes.sh](docs/shell.md#beer-console-text-color-themessh)
64+
1. [console-text-color-themes.sh](docs/shell.md#-console-text-color-themessh)
6565
显示`Terminator`的全部文字彩色组合的效果及其打印方式,用于开发`Shell`的彩色输出。
66-
1. [parseOpts.sh](docs/shell.md#beer-parseoptssh)
66+
1. [parseOpts.sh](docs/shell.md#-parseoptssh)
6767
命令行选项解析库,加强支持选项有多个值(即数组)。
6868

69-
### [`VCS`相关脚本](docs/vcs.md)
69+
### [`VCS`相关脚本](docs/vcs.md)
7070

71-
目前`VCS`的脚本都是`svn`分支相关的操作。使用更现代的`Git`吧! 💥
71+
目前`VCS`的脚本都是`svn`分支相关的操作。使用更现代的`Git`吧! 💥
7272

7373
因为不推荐使用`svn`,这里不再列出有哪些脚本了,如果你有兴趣可以点上面链接去看。

docs/install.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
🐌 下载使用
1+
🐌 下载使用
22
====================================
33

44
下载整个工程的脚本
@@ -36,7 +36,7 @@ cd useful-scripts
3636
svn up
3737
```
3838

39-
PS:
39+
PS:
4040
我的做法是把`useful-scripts` checkout到`$HOME/bin/useful-scripts`目录下,再把`$HOME/bin/useful-scripts`配置到`PATH`变量上,这样方便我本地使用所有的脚本。
4141

4242
### 打包下载

docs/java.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
🐌 `Java`相关脚本
1+
🐌 `Java`相关脚本
22
====================================
33

44
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
@@ -26,7 +26,9 @@
2626
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
2727

2828
<a id="beer-show-busy-java-threadssh"></a>
29-
🍺 [show-busy-java-threads](../show-busy-java-threads)
29+
<a id="beer-show-busy-java-threads"></a>
30+
31+
🍺 [show-busy-java-threads](../show-busy-java-threads)
3032
----------------------
3133

3234
用于快速排查`Java``CPU`性能问题(`top us`值过高),自动查出运行的`Java`进程中消耗`CPU`多的线程,并打印出其线程栈,从而确定导致性能问题的方法调用。
@@ -185,7 +187,7 @@ $ show-busy-java-threads
185187
- 提出/实现了多次执行的功能 [superhj1987/awesome-scripts#1](https://github.com/superhj1987/awesome-scripts/issues/1)
186188
- [xiongchen2012](https://github.com/xiongchen2012) 提出/解决了长用户名截断的Bug [#62](https://github.com/oldratlee/useful-scripts/pull/62)
187189
188-
🍺 [show-duplicate-java-classes](../show-duplicate-java-classes)
190+
🍺 [show-duplicate-java-classes](../show-duplicate-java-classes)
189191
----------------------
190192
191193
找出`Java Lib``Java`库,即`Jar`文件)或`Class`目录(类目录)中的重复类。
@@ -345,8 +347,10 @@ class paths to find:
345347
346348
[tgic](https://github.com/tg123)提供此脚本。友情贡献者的链接 [commandlinefu.cn](http://commandlinefu.cn/) | [微博linux命令行精选](http://weibo.com/u/2674868673)
347349
348-
<a id="find-in-jarssh"></a>
349-
🍺 [find-in-jars](../find-in-jars)
350+
<a id="beer-find-in-jarssh"></a>
351+
<a id="beer-find-in-jars"></a>
352+
353+
🍺 [find-in-jars](../find-in-jars)
350354
----------------------
351355
352356
在当前目录下所有`jar`文件里,查找类或资源文件。
@@ -442,7 +446,7 @@ WEB-INF/lib/aspectjweaver-1.8.8.jar!org/aspectj/weaver/XlintDefault.properties
442446
443447
支持彩色输出,文件名中的匹配部分以`grep`的高亮方式显示。
444448
445-
![](https://user-images.githubusercontent.com/1063891/33545067-9eb66072-d8a2-11e7-8a77-d815c0979e5e.gif)
449+
![find-in-jar screenshot](https://user-images.githubusercontent.com/1063891/33545067-9eb66072-d8a2-11e7-8a77-d815c0979e5e.gif)
446450
447451
### 参考资料
448452

docs/shell.md

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
🐌 `Shell`相关脚本
1+
🐌 `Shell`相关脚本
22
====================================
33

44
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
@@ -41,7 +41,7 @@
4141
`Shell`使用加强
4242
====================================
4343

44-
🍺 [c](../c)
44+
🍺 [c](../c)
4545
----------------------
4646

4747
原样命令行输出,并拷贝标准输出到系统剪贴板,省去`CTRL+C`操作,优化命令行与其它应用之间的操作流。
@@ -102,15 +102,15 @@ Options:
102102
- [拷贝复制命令行输出放在系统剪贴板上](http://oldratlee.com/post/2012-12-23/command-output-to-clip),给出了不同系统可用命令。
103103
- 关于文本文件最后的换行,参见[Why should text files end with a newline?](https://stackoverflow.com/questions/729692)
104104
105-
🍺 [coat](../coat)
105+
🍺 [coat](../coat)
106106
----------------------
107107
108108
彩色`cat`出文件行,方便人眼区分不同的行。
109109
支持`Linux``Mac``Windows``cygwin``MSSYS`)。
110110
111111
命令支持选项、功能和使用方式与[`cat`命令](https://linux.die.net/man/1/cat)完全一样(实际上读流操作在实现上全部代理给`cat`命令)。
112112
113-
命令名`coat`意思是`COlorful cAT`;当然单词`coat`的意思是外套,彩色输入行就像件漂亮的外套~ 😆
113+
命令名`coat`意思是`COlorful cAT`;当然单词`coat`的意思是外套,彩色输入行就像件漂亮的外套~ 😆
114114
注:之前命名是`colines`(意思是`COLorful LINES`)。
115115
116116
### 示例
@@ -163,9 +163,9 @@ or available locally via: info '(coreutils) cat invocation'
163163
```
164164
165165
注:上面示例中,没有彩色;在控制台上运行可以看出彩色效果,如下:
166-
![](../docs/coat.png)
166+
![coat screenshot](../docs/coat.png)
167167
168-
🍺 [a2l](../a2l)
168+
🍺 [a2l](../a2l)
169169
----------------------
170170
171171
按行彩色输出参数,方便人眼查看。
@@ -193,7 +193,7 @@ test-cases/self-installer.sh
193193
194194
注:上面示例中,没有彩色;在控制台上运行可以看出彩色效果,和上面的`coat`命令一样。
195195
196-
🍺 [ap](../ap) and [rp](../rp)
196+
🍺 [ap](../ap) and [rp](../rp)
197197
----------------------
198198
199199
批量转换文件路径为绝对路径/相对路径,会自动跟踪链接并规范化路径。
@@ -226,7 +226,9 @@ $ rp /home /etc/../etc /home/admin
226226
```
227227
228228
<a id="beer-tcp-connection-state-countersh"></a>
229-
🍺 [tcp-connection-state-counter](../tcp-connection-state-counter)
229+
<a id="beer-tcp-connection-state-counter"></a>
230+
231+
🍺 [tcp-connection-state-counter](../tcp-connection-state-counter)
230232
----------------------
231233
232234
统计各个`TCP`连接状态的个数。
@@ -257,15 +259,15 @@ SYN_SENT 17
257259
258260
[sunuslee](https://github.com/sunuslee)改进此脚本,增加对`MacOS`的支持。 [#56](https://github.com/oldratlee/useful-scripts/pull/56)
259261
260-
🍺 [xpl](../xpl) and [xpf](../xpf)
262+
🍺 [xpl](../xpl) and [xpf](../xpf)
261263
----------------------
262264
263265
在命令行中快速完成 在文件浏览器中 打开/选中 指定的文件或文件夹的操作,优化命令行与其它应用之间的操作流。
264266
支持`Linux``Mac``Windows``cygwin``MSSYS`)。
265267
266-
* `xpl`:在文件浏览器中打开指定的文件或文件夹。
268+
- `xpl`:在文件浏览器中打开指定的文件或文件夹。
267269
`xpl``explorer`的缩写。
268-
* `xpf`: 在文件浏览器中打开指定的文件或文件夹,并选中。
270+
- `xpf`: 在文件浏览器中打开指定的文件或文件夹,并选中。
269271
`xpf``explorer and select file`的缩写。
270272
271273
### 用法
@@ -300,7 +302,9 @@ xpf /path/to/dir1 /path/to/foo1.txt
300302
====================================
301303
302304
<a id="beer-echo-argssh"></a>
303-
🍺 [echo-args](../echo-args)
305+
<a id="beer-echo-args"></a>
306+
307+
🍺 [echo-args](../echo-args)
304308
----------------------
305309
306310
在编写脚本时,常常要确认输入参数是否是期望的:参数个数,参数值(可能包含有人眼不容易发现的空格问题)。
@@ -322,12 +326,12 @@ $ ./echo-args 1 " 2 foo " "3 3"
322326
323327
需要查看某个脚本(实际上也可以是其它的可执行程序)输出参数时,可以这么做:
324328
325-
* 把要查看脚本重命名。
326-
* 建一个`echo-args`脚本的符号链接到要查看参数的脚本的位置,名字和查看脚本一样。
329+
- 把要查看脚本重命名。
330+
- 建一个`echo-args`脚本的符号链接到要查看参数的脚本的位置,名字和查看脚本一样。
327331
328332
这样可以不改其它的程序,查看到输入参数的信息。
329333
330-
🍺 [console-text-color-themes.sh](../console-text-color-themes.sh)
334+
🍺 [console-text-color-themes.sh](../console-text-color-themes.sh)
331335
----------------------
332336
333337
显示`Terminator`的全部文字彩色组合的效果及其打印方式。
@@ -347,7 +351,7 @@ colorEcho "0;31;40" "Hello world!"
347351
colorEchoWithoutNewLine "4;33;40" "Hello world!" "Hello Hell!"
348352
```
349353
350-
`console-text-color-themes.sh`的运行效果图如下:
354+
`console-text-color-themes.sh`的运行效果图如下:
351355
![console-text-color-themes.sh的运行效果图](console-colorful-text.png)
352356
353357
### 贡献者
@@ -358,7 +362,7 @@ colorEchoWithoutNewLine "4;33;40" "Hello world!" "Hello Hell!"
358362
359363
- [utensil](https://github.com/utensil)的[在Bash下输出彩色的文本](http://utensil.github.io/tech/2007/09/10/colorful-bash.html),这是篇很有信息量很钻研的文章!
360364
361-
🍺 [parseOpts.sh](../parseOpts.sh)
365+
🍺 [parseOpts.sh](../parseOpts.sh)
362366
----------------------
363367
364368
命令行选项解析库,加强支持选项有多个值(即数组)。
@@ -385,8 +389,8 @@ find file: bar.txt
385389
386390
- `-`: 无参数的选项。即有选项则把值设置成`true`。这是 ***缺省*** 的类型。
387391
- `:`: 有参数的选项,值只有一个。
388-
- `+`: 有多个参数值的选项。值列表要以`;`表示结束。
389-
注意,`;``Bash`的元字符(用于一行中多个命令分隔),所以加上转义写成`\;`(当然也可以按你的喜好写成`";"``';'`)。
392+
- `+`: 有多个参数值的选项。值列表要以`;`表示结束。
393+
注意,`;``Bash`的元字符(用于一行中多个命令分隔),所以加上转义写成`\;`(当然也可以按你的喜好写成`";"``';'`)。
390394
391395
实际要解析的输入参数往往是你的脚本参数,这样`parseOpts`函数调用一般是:
392396
@@ -397,10 +401,10 @@ parseOpts "a,a-long|b,b-long:|c,c-long+" "$@"
397401
398402
通过约定的全局变量来获取选项和参数:
399403
400-
* 选项名为`a`,通过全局变量`_OPT_VALUE_a`来获取选项的值。
401-
* 选项名为`a-long`,通过全局变量`_OPT_VALUE_a_long`来获取选项的值。
402-
即,把选项名的`-``_`,再加上前缀`_OPT_VALUE_`对应的全局变量来获得选项值。
403-
* 除了选项剩下的参数,通过全局变量`_OPT_ARGS`来获取。
404+
- 选项名为`a`,通过全局变量`_OPT_VALUE_a`来获取选项的值。
405+
- 选项名为`a-long`,通过全局变量`_OPT_VALUE_a_long`来获取选项的值。
406+
即,把选项名的`-``_`,再加上前缀`_OPT_VALUE_`对应的全局变量来获得选项值。
407+
- 除了选项剩下的参数,通过全局变量`_OPT_ARGS`来获取。
404408
405409
按照惯例,输入参数中如果有`--`表示之后参数中不再有选项,即之后都是参数。
406410
@@ -443,17 +447,17 @@ parseOpts "a,a-long|b,b-long:|c,c-long+" -a -b bv -- --c-long c.sh -p pv -q qv a
443447
这个脚本比较复杂,测试过的环境有:
444448
445449
1. `bash --version`
446-
`GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)`
447-
`uname -a`
448-
`Linux foo-host 2.6.32-41-generic #94-Ubuntu SMP Fri Jul 6 18:00:34 UTC 2012 x86_64 GNU/Linux`
450+
`GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)`
451+
`uname -a`
452+
`Linux foo-host 2.6.32-41-generic #94-Ubuntu SMP Fri Jul 6 18:00:34 UTC 2012 x86_64 GNU/Linux`
449453
1. `bash --version`
450-
`GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin14)`
451-
`uname -a`
452-
`Darwin foo-host 14.0.0 Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64 x86_64 i386 MacBookPro10,1 Darwin`
454+
`GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin14)`
455+
`uname -a`
456+
`Darwin foo-host 14.0.0 Darwin Kernel Version 14.0.0: Fri Sep 19 00:26:44 PDT 2014; root:xnu-2782.1.97~2/RELEASE_X86_64 x86_64 i386 MacBookPro10,1 Darwin`
453457
1. `bash --version`
454-
`GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)`
455-
`uname -a`
456-
`Linux foo-host 2.6.9-103.ELxenU #1 SMP Wed Mar 14 16:31:15 CST 2012 i686 i686 i386 GNU/Linux`
458+
`GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)`
459+
`uname -a`
460+
`Linux foo-host 2.6.9-103.ELxenU #1 SMP Wed Mar 14 16:31:15 CST 2012 i686 i686 i386 GNU/Linux`
457461
458462
### 贡献者
459463

docs/vcs.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
🐌 `VCS`相关脚本
1+
🐌 `VCS`相关脚本
22
====================================
33

44
> 你会发现这些脚本都是`svn`分支相关的操作。
55
>
66
> 个人在使用`Git`的过程中(7年+),并没有发现有对应脚本的需求(侧面反映出`Git`的优秀)。
77
> 原因:`Git`的概念模型一等公民支持分支,切换分支是件很简单且统一的事,而`svn`不得不涉及仓库的`URL`(不统一简单)。
88
>
9-
> 我已经在自己的开发机上卸载了`svn`,没有需求场景也没理由再用了。 😛
9+
> 我已经在自己的开发机上卸载了`svn`,没有需求场景也没理由再用了。 😛
1010
>
11-
> 使用更现代的`Git`吧! 💥
11+
> 使用更现代的`Git`吧! 💥
1212
1313
1. [swtrunk.sh](docs/vcs.md#beer-swtrunksh)
1414
自动`svn`工作目录从分支(`branches`)切换到主干(`trunk`)。
@@ -20,7 +20,7 @@
2020
拷贝当前`svn`目录对应的远程分支到系统的粘贴板,省去`CTRL+C`操作。
2121
PS:`Git`分支不需要`URL`来引用,没有这个脚本的需求,直接给个分支名就好了。
2222

23-
🍺 [swtrunk.sh](../swtrunk.sh)
23+
🍺 [swtrunk.sh](../swtrunk.sh)
2424
----------------------
2525

2626
`svn`工作目录从分支(`branches`)切换到主干(`trunk`)。
@@ -29,8 +29,9 @@
2929
命令以`svn`的标准目录命名约定来识别分支和主干。
3030
即,分支在目录`branches`下,主干在目录`trunk`下。
3131
示例:
32-
- 分支: http://www.foo.com/project1/branches/feature1
33-
- 主干: http://www.foo.com/project1/trunk
32+
33+
- 分支: <http://www.foo.com/project1/branches/feature1>
34+
- 主干: <http://www.foo.com/project1/trunk>
3435

3536
### 用法
3637

@@ -58,7 +59,7 @@ svn work dir /path/to/svn/work/dir1 switch from http://www.foo.com/project1/bran
5859
svn work dir /path/to/svn/work/dir2 switch from http://www.foo.com/project2/branches/feature1 to http://www.foo.com/project2/trunk !
5960
```
6061

61-
🍺 [svn-merge-stop-on-copy.sh](../svn-merge-stop-on-copy.sh)
62+
🍺 [svn-merge-stop-on-copy.sh](../svn-merge-stop-on-copy.sh)
6263
----------------------
6364

6465
把指定的远程分支从刚新建分支以来的修改合并到本地`svn`目录或是另一个远程分支。
@@ -84,7 +85,7 @@ svn-merge-stop-on-copy.sh http://www.foo.com/project1/branches/feature1 http://w
8485

8586
[姜太公](https://github.com/jzwlqx)提供此脚本。
8687

87-
🍺 [cp-svn-url.sh](../cp-svn-url.sh)
88+
🍺 [cp-svn-url.sh](../cp-svn-url.sh)
8889
----------------------
8990

9091
拷贝当前`svn`目录对应的远程分支到系统的粘贴板,省去`CTRL+C`操作。

0 commit comments

Comments
 (0)