[转帖]有用的脚本

有用,脚本 · 浏览次数 : 0

小编点评

## Summary of the Script Library This script library is designed for developers and anyone who wants to make their everyday life easier and happier using developer-oriented tools and techniques. It involves a mix of Java, shell, and other tools. **Key Features:** * **Manual script creation:** The library encourages using scripts to automate repetitive tasks, making development processes smoother. * **Open-source contributions:** Many scripts are open-sourced and can be contributed back to the project. * **Shell/Bash focus:** The library primarily focuses on using Bash for script development and deployment, due to its popularity and widespread usage. * **Best practices:** The library provides recommendations and best practices for writing and maintaining scripts to ensure quality and reliability. * **Cross-platform support:** Some scripts may be written for specific operating systems, but the library promotes using Bash as much as possible. **Benefits:** * **Improved developer productivity:** By automating tasks and providing helpful tools, the library can help developers save time and effort. * **Enhanced developer experience:** The library can make development processes more efficient and enjoyable, leading to increased productivity. * **Reduced reliance on GUI tools:** Using scripts can eliminate the need for GUI tools and allow developers to work directly with the command line. **Target Audience:** * Developers * Anyone who wants to improve their development workflow * Anyone looking for a more efficient way to manage their projects **Overall, this script library is a valuable resource for anyone looking to streamline their development process and improve their overall productivity.**

正文

https://github.com/oldratlee/useful-scripts#-java%E7%9B%B8%E5%85%B3%E8%84%9A%E6%9C%AC

 

🐌 useful scripts for making developer's everyday life easier and happier, involved java, shell etc.
👉 平时有用的手动操作做成脚本,以便捷地使用,让开发的日常生活更轻松些。 💕

欢迎 👏 💖

本仓库的脚本(如Java相关脚本)在阿里等公司(如随身云,见awesome-scripts仓库说明)的线上生产环境部署使用。

如果你的公司有部署使用,欢迎使用通过 Issue:who's using | 用户反馈收集 告知,方便互相交流反馈~ 💘



🔰 快速下载&使用

source <(curl -fsSL https://raw.githubusercontent.com/oldratlee/useful-scripts/release-2.x/test-cases/self-installer.sh)

更多下载&使用方式,参见下载使用

📚 使用文档

☕ Java相关脚本

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

🐚 Shell相关脚本

Shell使用加强:

  1. c
    原样命令行输出,并拷贝标准输出到系统剪贴板,省去CTRL+C操作,优化命令行与其它应用之间的操作流。
  2. coat
    彩色cat出文件行,方便人眼区分不同的行。
  3. a2l
    按行彩色输出参数,方便人眼查看。
  4. uq
    不重排序输入完成整个输入行的去重。相比系统的uniq命令加强的是可以跨行去重,不需要排序输入。
  5. ap and rp
    批量转换文件路径为绝对路径/相对路径,会自动跟踪链接并规范化路径。
  6. cp-into-docker-run
    一个Docker使用的便利脚本。拷贝本机的执行文件到指定的docker container中并在docker container中执行。
  7. tcp-connection-state-counter
    统计各个TCP连接状态的个数。用于方便排查系统连接负荷问题。
  8. xpl and xpf
    在命令行中快速完成 在文件浏览器中 打开/选中 指定的文件或文件夹的操作,优化命令行与其它应用之间的操作流。

Shell开发/测试加强:

  1. echo-args
    输出脚本收到的参数,在控制台运行时,把参数值括起的括号显示成 红色,方便人眼查看。用于调试脚本参数输入。
  2. console-text-color-themes.sh
    显示Terminator的全部文字彩色组合的效果及其打印方式,用于开发Shell的彩色输出。
  3. parseOpts.sh
    命令行选项解析库,加强支持选项有多个值(即数组)。

⌚ VCS相关脚本

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

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

🎓 Developer Guide

为用户提供有用的功能,当然是这个库的首要的价值体现和存在理由。

但作为一个开源项目,每个人都可以看到源码实现,这个库或许能做得更多。

🎯 面向开发者的目标

  • Shell/Bash作为线上生产环境使用的专业编程语言。
  • 期望体现Shell/Bash脚本 生产环境级的严谨开发方式与最佳实践,进而有可能示例与改善在生产环境中Shell脚本的质量状况。

PS:

  • 虽然上面是自己期望的目标,但自己在Shell语言上一定会有很多理解和使用上的问题、在这些实现脚本中也会很多需要的改进,可以一起学习、讨论与实践~ 💕
  • 这个库中脚本的实现也有使用Python

关于Shell脚本

命令行(CLI)几乎是每个程序员每天都在使用的工具。相比图形界面工具(GUI),命令行有着自己不可替代的便利性和优越性。

命令行里写出来其实就是Shell脚本,可以说每个开发者会写Shell脚本(或多或少)。在生产环境的功能实现中,也常会看到Shell脚本(虽然不如主流语言那么常见)。

可能正因为上面所说的Shell脚本的便利性和大众性:

  • Shell脚本有不少是顺手实现的(包括生产环境用的Shell脚本);
  • Shell脚本的实现常常可能质量不高,会引发线上严重的故障。

🚦 开发约定

在这个库中的Shell脚本:

  • 统一使用Bash 3+
  • 面向生产环境,尽可能使用严谨安全的开发方式。

ShellBash的原因是:

  • 目前仍然是主流的Shell,并且在不同环境基本上都缺省部署了。
  • GoogleShell风格指南中,明确说明了:Bash是唯一被允许执行的shell脚本语言。
    • 有大量的Shell实现,shbashzshfishcshtcshkshashdash……
    • 不同的Shell有各种差异,深坑勿入。
    • 统一用Bash,可以避免差异带来的风险与没有收益的复杂性。
  • 个人系统学习过的是Bash,比较理解熟悉。

PS: 虽然交互Shell个人已经使用Zsh + oh-my-zsh,但在严谨的Shell脚本开发时还是使用Bash

📚 Shell学习与开发的资料

更多资料参见 子文档

与[转帖]有用的脚本相似的内容:

[转帖]有用的脚本

https://github.com/oldratlee/useful-scripts#-java%E7%9B%B8%E5%85%B3%E8%84%9A%E6%9C%AC 🐌 useful scripts for making developer's everyday life easier an

[转帖]Linux Shell 脚本的 10 个有用的“面试问题和解答”

http://blog.itpub.net/31545813/viewspace-2926667/ Linux 的浩瀚无垠,使人总能每次都提交与众不同的内容。这些内容不仅对他们的职业生涯很有用,同时也让他们增长知识。在此,我们就尝试这么去做,至于能取得多大的成功,就由我们的读者朋友们来判断吧。 在此

[转帖]Redis进阶实践之十 Redis主从复制的集群模式

https://www.cnblogs.com/PatrickLiu/p/8426610.html 一、引言 Redis的基本数据类型,高级特性,与Lua脚本的整合等相关知识点都学完了,说是学完了,只是完成了当前的学习计划,在以后的时间还需继续深入研究和学习。从今天开始来讲一下有关Redis的集群模

[转帖]Linux中执行shell脚本的4种方法总结

https://www.jb51.net/article/53924.htm 这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下 bash shell 脚本的方法有多种,现在作个小结。假设我们编写好的shell脚本的文件

[转帖]MobaXterm激活专业版

本文思路来自 https://github.com/flygon2018/MobaXterm-keygen 有python 环境 并且不看英文的可以继续往下 不然直接访问这个地址也行。 1.需要一个大佬的脚本 你的电脑得能执行python脚本2.脚本链接:https://pan.baidu.com/

[转帖]MobaXterm激活专业版

本文思路来自 https://github.com/flygon2018/MobaXterm-keygen 有python 环境 并且不看英文的可以继续往下 不然直接访问这个地址也行。 1.需要一个大佬的脚本 你的电脑得能执行python脚本2.脚本链接:https://pan.baidu.com/

[转帖]MobaXterm激活专业版

本文思路来自 https://github.com/flygon2018/MobaXterm-keygen 有python 环境 并且不看英文的可以继续往下 不然直接访问这个地址也行。 1.需要一个大佬的脚本 你的电脑得能执行python脚本2.脚本链接:https://pan.baidu.com/

[转帖]shell脚本中$0 $1 $# $@ $* $? $ 的各种符号的意义

概述 shell中有两类字符,一类是普通字符,在Shell中除了本身的字面意思外没有其他特殊意义,即普通纯文本;另一类即元字符,是Shell的保留字符,在Shell中有着特殊的含义。 今天主要介绍一下shell中字符$的各种用法。 转义字符$ 在linux shell脚本中经常用到字符 ,下面是 ,

[转帖]shell脚本中$0 $1 $# $@ $* $? $ 的各种符号的意义

概述 shell中有两类字符,一类是普通字符,在Shell中除了本身的字面意思外没有其他特殊意义,即普通纯文本;另一类即元字符,是Shell的保留字符,在Shell中有着特殊的含义。 今天主要介绍一下shell中字符$的各种用法。 转义字符$ 在linux shell脚本中经常用到字符 ,下面是 ,

[转帖]Linux shell 单引号和双引号

https://www.cnblogs.com/airoot/p/15324883.html 在编写shell脚本的时候经常会用到引号,有些时候却老是忘记单引号和双引号之间的区别,所以就整理一下供以后脑子不好使了的时候前来复习一下。首先说下他们的共同点: 好像就只有一个,就是它们都可以用来界定一个字