这是一个基于git bash的bash脚本开发库!如果你是一个程序员,且是重度自动化爱好者,那么,这个库应该会对你有所裨益。
克隆本repo
以我的.bash_profile为例说明如何使用
修改 $HOME/.bash_profile.sh,加入xbash-profile.sh的引用
# global configuration file
export GLOBAL_INI="$HOME/xcodes/xops/xshell/config/global-xjming.ini"
xprofile=$HOME/xcodes/xops/xshell/xbash-profile.sh
[[ -f $xprofile ]] && source $xprofile
GLOBAL_INI:该变量指向系统全局变量 global-xjming.ini,实际上也是一个sh文件,用于设置一些全局变量
source $xprofile:调用了 xbash-profile.sh
重启git bash即可
xops lib,指的是 /lib/下的sh文件,是我多年来写shell脚本的积累,大部分都是基于自己的实际需求而来,也参考了网上很多的代码实现。
不以x开头的.sh,是核心的代码,x*.sh则以核心库为基础。core.sh是其核心中的核心,必须引入!
core.sh:最最核心的文件,要使用xops lib,必须首先导入该sh!其他的lib也都是首先引入了它。
定义了最基本的alias
定义了最基本的 info,warn,error函数
定义了ext、lib等的引入函数:import,reload
实现了$PATH的添加、去重、移除
function __xbash_init__() {
# xbash-profile也是基于lib,core
[[ -s $XLIB_CORE ]] && source "$XLIB_CORE" || {
local script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
source "$script_dir/lib/core.sh"
}
import meta
}
这是xbash-profile.sh中的core.sh的引入。注意source部分,需要指明core.sh的路径。
在core.sh导入后,即可使用 import color; import xwin等形式去引入其他lib。
meta.sh:系统相关,其中的 meta::getopts 比较重要,用于命令行参数的解析。
string.sh:string操作相关的函数,如随机字符串、截取、大小写转换、格式化、拆分等。
cache.sh:以文件系统实现的cache
dict.sh:内存中的key-value存取
color.sh:ansi color的操作
--
其实xlib最初的目的是要构造一个脚本,用于快速的搭建起本地的开发环境。很多时候在重装系统后,各种软件的安装配置、环境配置等都是非常烦人的。
后来又扩大到了mac系统上。
综合考量之后,选择了git bash作为基础运行环境。因为git,这是必须要用的东西,而bash,则是linux下默认的shell。
有3个基本目录,都在$HOME/下,windows环境下,一般是 C:\Users{your-account}\
.
|-- Media
| |-- ACDSee Classic Chs.exe
| |-- CHKenPlayer
| |-- Honeyview
| |-- Imagine
| |-- PSDViewer
| |-- Picasa3
| |-- foobar2000
| |-- mpc-hc_64
| `-- translator
|-- bin
| |-- DragExt64.dll
| |-- FileActivityWatch.exe
......
| |-- xml.exe
| |-- xxd.exe
| |-- zip.exe
| `-- zlib1.dll
|-- database
| |-- DBtools
| |-- activemq-5.16.0
| |-- dbeaver-agent.jar
| |-- h2
| |-- kafka
| |-- mariadb64
| |-- mssql
| |-- mysql
| |-- pgsql
| `-- redis
|-- dev
| |-- JetBrains
| |-- LdapAdmin.exe
| |-- Python
| |-- Servers
| |-- Testing
| |-- architect
| |-- build
| |-- jvmTools
| |-- sdk
| |-- vim
| `-- vscode
|-- documents
| |-- Beyond Compare
| |-- Calibre2
| |-- Notepad3
| |-- Sigil
| |-- Typora
| |-- WPS2016.7z
| |-- WinMerge
| |-- XPS Viewer
| |-- batchRename.exe
| |-- emed64
| |-- npp7x64
| |-- pdfTools
| `-- txtUtils
|-- hw
| `-- aida64ex
|-- myPims
| |-- 2020-new-pass.xly
| |-- 2020.xly
| |-- 2021.xly
| |-- DBManager.exe
| |-- myPims.dat
| |-- mypims.exe
| `-- readme.txt
|-- net
| |-- FileZilla
| |-- InletexEc.exe
| |-- WeChat
| |-- WeMeet
| |-- Zoom
| `-- foxmail.7z
|-- net-admin
| |-- Cisco TFTP Server.7z
| |-- HyperTerm.7z
| |-- Remote Desktop Connection Manager
| |-- SERV-U.7z
| |-- SecureCRT
| |-- UltraVNC
| |-- hercules_3-2-8.exe
| |-- mac\265\330\326\267\320\336\270\304\306\367
| |-- tftpd32.7z
| `-- xmanager
|-- security
| |-- Fiddler
| |-- Nessus-6.9.1-x64.msi
| |-- OWASP
| |-- WinPcap_4_1_3.exe
| |-- Wireshark
| |-- burpsuite v1.7.11
| |-- nmap-7.31
| `-- npcap-0.11.exe
`-- system
|-- 7z
|-- Allway Sync
|-- ConEmu
|-- MenuMgr1.2.exe
|-- Ontrack EasyRecovery11 Enterprise.7z
|-- clean
|-- sysinternals
`-- tools
/bin/:所有的命令行应用都放在这里,并加入到$PATH中。目前你可以从这里找到我精心收集的命令行工具: https://github.com/bewlief/myrepo/tree/master/xops-bin
/database/:database server及client
/dev/:开发用
/architect/
/build/:git、maven、gradle等
/sdk/:java,golang的sdk
/servers/:tomcat,jetty,nginx等
/test/:测试相关
/xdata/
/xcodes/ :存放我的代码,如:
本库使用到的一些命令行工具的下载路径:
让我们一起来聊shell!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型