一些Cygwin/WSL,BASH指令碼hook函式;
阿新 • • 發佈:2022-03-07
ping
使ping
命令引數支援網址形式,直接在命令列ping一個網址,顯示其伺服器資訊(當然了,也有可能是CDN節點)...
ping() {
if [ $# -eq 1 ] && [[ "$1" =~ "/" ]];then
#if [ $# -eq 1 ] && [[ "$1" =~ ^http ]];then
host=$(/usr/bin/env python3 /v/bin/python-parseurl.py "$1")
[ ! -z "$host" ] && _ping $host
else
_ping $@
fi
}
附:依賴的python-parseurl.py
#!/usr/bin/env python3 # -*- coding: utf-8 -*- #解析一個URL,僅輸出host部分 import sys from urllib.parse import urlparse if len(sys.argv)==2: url=str(sys.argv[1]).strip() else: url="" if not (url.startswith("http") or url.startswith("ftp://")): url="{}{}".format("http://",url) parsed = urlparse(url) print(parsed.netloc)
nc
預設nc命令的使用格式為nc -v www.baidu.com 443
,此函式使nc
命令支援地址和埠連在一起的情況,比如nc -v www.baidu.com:443
;
##覆蓋預設nc命令,使之可以直接使用ip和埠粘在一起的引數形式:eg:nc -v 127.0.0.1:80 nc() { if [[ "${@:$#}" =~ ^.+:[0-9]{1,5}$ ]];then echo "引數粘連,分開解析地址和埠..." local addr=$(echo "${@:$#}"|cut -d ':' -f 1) local port=$(echo "${@:$#}"|cut -d ':' -f 2) declare -a options while [ $# -gt 1 ]; #最後一個引數不使用,去除之,並保留前面的所有引數 do options=(${options[@]} $1) shift done /usr/bin/nc ${options[@]} $addr $port else /usr/bin/nc $@ fi }
MySQL
mysql
不帶命令列引數時,直接使用預設使用者名稱和密碼root登入MySQL命令列終端;方便快捷地進行本地開發;
mysql() {
#hookmysql命令,使用預設使用者名稱和密碼連線本地MySQL主機
if [ $# -eq 0 ];then
/usr/bin/mysql -h127.0.0.1 -uroot -proot
else
/usr/bin/mysql $@
fi
}
本文來自部落格園,作者:晴雲孤魂,轉載請註明原文連結:https://www.cnblogs.com/cnhack/p/15975216.html