sh_config.sh 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. # path去重
  2. export PATH=$(echo $PATH | tr ':' '\n' | cat -n | sort -k2,2 -k1,1n | uniq -f1 | sort -k1,1n | cut -f2- | tr '\n' ':')
  3. alias sync_config_file='wget https://git.tianyunperfect.cn/tianyunperfect/sync/raw/master/sh_config.sh -O ~/.sh_config.sh && source ~/.sh_config.sh'
  4. # 快捷命令
  5. ## 未分类
  6. alias ll='ls -alh --time-style="+%Y-%m-%d %H:%I:%S"'
  7. #du -sh * 2>/dev/null | sort -hr
  8. alias du-sh='du -sh * 2>/dev/null | sort -hr'
  9. alias du-sh10='du -sh * 2>/dev/null | sort -hr | head -n 10'
  10. alias sourcevenv='source venv/bin/activate'
  11. alias weather='curl wttr.in/beijing'
  12. alias dust1='dust -d 1'
  13. function gittagpush() {
  14. if [ $# -ne 2 ]; then
  15. echo "需要两个参数: <变量1> <变量2>"
  16. return 1
  17. fi
  18. git tag -a $1 -m "$2"
  19. git push origin $1
  20. }
  21. alias gittags='git --no-pager tag -l -n'
  22. function reloadrc() {
  23. if [ -n "$ZSH_VERSION" ]; then
  24. echo "正在使用zsh"
  25. source ~/.zshrc
  26. elif [ -n "$BASH_VERSION" ]; then
  27. echo "正在使用bash"
  28. source ~/.bashrc
  29. else
  30. echo "无法确定当前 Shell 类型"
  31. fi
  32. }
  33. ## k8s
  34. function k8s-getnamespace() {
  35. kubectl config view | grep namespace
  36. }
  37. function k8s-setnamespace() {
  38. k8s-getnamespace
  39. kubectl config set-context --current --namespace="$1"
  40. }
  41. function k8s-getpod() {
  42. k8s-getnamespace
  43. # 如果有参数,则过滤
  44. if [ ! -z "$1" ]; then
  45. kubectl get pods -o wide | grep "$1"
  46. else
  47. kubectl get pods -o wide
  48. fi
  49. }
  50. alias k8s-descpods='kubectl describe pods'
  51. function k8s-getlog() {
  52. k8s-getnamespace
  53. podName=$(kubectl get pods -o wide | grep "${1}" | awk '{print $1}')
  54. kubectl logs --tail=300 -f "${podName}"
  55. }
  56. function k8s-getlogbase() {
  57. k8s-getnamespace
  58. podName=$(kubectl get pods -o wide | grep "${1}" | awk '{print $1}')
  59. kubectl logs -c base-jre --tail=300 -f "${podName}"
  60. }
  61. alias k8s-delpod='kubectl delete pod ${1} --force'
  62. function k8s-inpod() {
  63. k8s-getnamespace
  64. podName=$(kubectl get pods -o wide | grep "${1}" | awk '{print $1}')
  65. kubectl exec -it "${podName}" -- /bin/bash
  66. }
  67. alias k8s-topnodes='kubectl top node ${1}'
  68. alias k8s-toppods='kubectl top pod ${1}'
  69. alias k8s-getsvc='kubectl get svc'
  70. alias k8s-descsvc='kubectl describe svc'
  71. alias k8s-deldeployment='kubectl delete deployment'
  72. alias k8s-getdeployment='kubectl get deployment'
  73. alias k8s-descdeployment='kubectl describe deployment'
  74. alias k8s-getdeploymentgrep='kubectl get deployment | grep'
  75. alias k8s-getingress='kubectl get ingress'
  76. alias k8s-descingress='kubectl describe ingress'
  77. alias k8s-getingressgrep='kubectl get ingress | grep'
  78. ## docker
  79. alias docker-rm-all-image='docker rmi $(docker images -q)'
  80. alias docker-rm-all-docker='docker rm $(docker ps -a -q)'
  81. alias docker-show-image-prune='docker image ls -f dangling=true'
  82. alias docker-image-prune='docker image prune -a'
  83. alias dkstats='docker stats'
  84. alias dkps='docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"'
  85. alias dkpsa='docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"'
  86. alias dkrm='docker rm -f $1'
  87. alias dkrmi='docker rmi -f $1'
  88. alias dkimage='docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}"'
  89. alias dkip='docker inspect --format="{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" $(docker ps -aq)'
  90. function dkin() {
  91. docker exec -it "$1" bash
  92. }
  93. function dkinsh() {
  94. docker exec -it $1 sh
  95. }
  96. alias dklog='docker logs -n 300 -f $1'
  97. alias dkinspect='docker inspect $1'
  98. ## go
  99. alias gobuildwinexe='GOOS=windows GOARCH=amd64 go build -o $1.exe $1.go'
  100. alias gobuildlinuxexe='GOOS=linux GOARCH=amd64 go build -o $1 $1.go'
  101. alias gobuildmacexe='GOOS=darwin GOARCH=amd64 go build -o $1 $1.go'
  102. ## version
  103. alias pythonversion='python --version'
  104. alias javaversion='java -version'
  105. alias nodeversion='node -v'
  106. alias centosversion='cat /etc/os-release'
  107. alias ubuntuversion='cat /etc/lsb-release'
  108. alias goversion='go version'
  109. ## ip查看
  110. alias ipremote='curl cip.cc'
  111. function iplocal() {
  112. # 如果是mac 过滤 en0,如果是linux 过滤 eth0
  113. if [[ "$OSTYPE" == "darwin"* ]]; then
  114. ifconfig en0 | grep inet | grep -v inet6
  115. else
  116. ifconfig eth0 | grep inet | grep -v inet6
  117. fi
  118. }
  119. ## 进程相关
  120. alias psgrep='ps aux | grep -v grep | grep'
  121. alias killport='kill -9 $(lsof -t -i:$1)'
  122. alias ps-mem-top6='ps aux --sort=-%mem | awk '\''{print $2, $11, $4, $6/1024 "MB"}'\'' | head -n 6'
  123. # node
  124. alias npminstall='npm install -g --registry=https://registry.npmmirror.com '
  125. # python
  126. alias pipinstall='pip install $1 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com'
  127. # 文件查找相关
  128. function findByName() {
  129. local pattern=$1
  130. find . -name "*$pattern*"
  131. }
  132. function findByContent() {
  133. local pattern=$2
  134. local dir=$1
  135. find $dir -type f -exec grep -l "$pattern" {} +
  136. }
  137. # 备份
  138. function tar_back() {
  139. time=$(date "+%Y-%m-%d_%H_%M_%S")
  140. tar -zcvf "${1}".${time}.tgz "$1"
  141. ll -h ${1}.${time}.tgz
  142. }
  143. pid-cmd-centos() {
  144. sudo ls -l /proc/$1/cwd | awk '{print $11}'
  145. sudo cat /proc/$1/cmdline
  146. echo ''
  147. }
  148. pid-cmd-ubuntu() {
  149. ls -l /proc/"$1"/cwd | awk '{print $11}'
  150. tr '\0' ' ' </proc/"$1"/cmdline
  151. echo ""
  152. }
  153. function echo-arthas-install() {
  154. echo '
  155. # 判断是否存在 ~/arthas-boot.jar,如果不存在则下载
  156. if [ ! -f ~/arthas-boot.jar ]; then
  157. ( cd ~ && curl -O https://arthas.aliyun.com/arthas-boot.jar )
  158. fi
  159. # 判断是否在k8s里面
  160. if [[ ! -z "$KUBERNETES_SERVICE_HOST" && ! -z "$KUBERNETES_SERVICE_PORT" ]]; then
  161. echo "Running in Kubernetes environment"
  162. java -jar ~/arthas-boot.jar 1 --options json-format=true
  163. else
  164. echo "Not running in Kubernetes environment"
  165. java -jar ~/arthas-boot.jar --options json-format=true
  166. fi
  167. '
  168. }
  169. alias cparthas='echo-arthas-install | pbcopy'
  170. function curl-form() {
  171. curl -d "$2" "$1"
  172. }
  173. function watch-cpudiskmemory() {
  174. watch -n 1 '
  175. echo "===CPU占用摘要:"
  176. top -bn 1 -i -c | grep Cpu
  177. echo "
  178. ===内存占用摘要:"
  179. free -h
  180. echo "
  181. ===磁盘占用摘要:"
  182. df -h /'
  183. }
  184. #123
  185. function vimrc() {
  186. if [[ "$SHELL" =~ "zsh" ]]; then
  187. code ~/.zshrc
  188. else
  189. code ~/.bashrc
  190. fi
  191. }
  192. merge_video_audio() {
  193. if [ "$#" -ne 3 ]; then
  194. echo "错误:参数数量不正确!"
  195. echo "用法:merge_video_audio video.mp4 audio.mp3 output.mp4"
  196. return 1
  197. fi
  198. ffmpeg -i "$1" -i "$2" -c:v copy -c:a copy "$3"
  199. }
  200. rm-all() {
  201. find . -name $1 | xargs -I {} rm -rf {}
  202. }
  203. ### mysql
  204. function echo-mysql-tables() {
  205. echo 'SELECT table_name, table_comment FROM information_schema.tables WHERE table_schema = DATABASE();'
  206. }
  207. function echo-mysql-table-size() {
  208. echo 'select table_name,concat(round(sum(DATA_LENGTH/1024/1024),2),"MB") as data from information_schema.TABLES where table_schema =(SELECT DATABASE()) group by table_name;'
  209. }
  210. function echo-mysql-db-size() {
  211. echo 'select table_schema,concat(round(sum(DATA_LENGTH/1024/1024),2),"MB") as data from information_schema.TABLES where table_schema not in ("information_schema","mysql","performance_schema","sys") group by table_schema;'
  212. }
  213. function echo-npm() {
  214. echo '
  215. npm i webpack # 在module文件中安装
  216. npm i webpack -S # --save 常用,添加到package
  217. npm i webpack -D # --save-dev
  218. npm i webpack -g --registry=https://registry.npmmirror.com # 全局
  219. npm un webpack -g
  220. yarn add react
  221. yarn remove react
  222. yarn global add umi
  223. '
  224. }
  225. concat_params() {
  226. # 获取传入的参数个数
  227. num_params=$#
  228. # 判断参数个数是否大于等于1
  229. if [ $num_params -ge 1 ]; then
  230. # 使用循环遍历参数,并拼接在一起
  231. concat_str="$1"
  232. for ((i = 2; i <= $num_params; i++)); do
  233. concat_str+="%20${!i}"
  234. done
  235. # 打印拼接后的字符串
  236. echo "$concat_str"
  237. else
  238. echo "没有传入参数"
  239. fi
  240. }
  241. function url_encode() {
  242. echo "$1" | sed 's/ /%20/g'
  243. }
  244. function bing() {
  245. ## 如果是windows系统,则使用start,否则使用open,后面的参数可以有多个空格
  246. if [[ "$OSTYPE" == "msys"* ]]; then
  247. search_query=$(concat_params "$@")
  248. start "https://www.bing.com/search?q=$search_query"
  249. else
  250. search_query=""
  251. for query in "$@"; do
  252. search_query+=" $query"
  253. done
  254. search_query=$(url_encode "$search_query")
  255. open "https://www.bing.com/search?q=${search_query}"
  256. fi
  257. }
  258. function mvn_clean_package() {
  259. mvn clean package -Dmaven.test.skip=true
  260. }
  261. ## ska快捷
  262. function ska_push_dev() {
  263. skaffold run -p dev --tail
  264. }
  265. function mvn_push_dev() {
  266. mvn_clean_package
  267. ska_push_dev
  268. }
  269. function mvn_push_test() {
  270. mvn_clean_package
  271. skaffold build -p test -n aimptest
  272. }
  273. function mvn_clean_deploy() {
  274. mvn clean deploy -Dmaven.test.skip=true
  275. }
  276. function show_all_local_ip() {
  277. arp -a
  278. }
  279. alias nodels='fnm ls'
  280. alias nodeuse='fnm use'
  281. alias nodedefault='fnm default'
  282. alias nodeinstall='fnm install'
  283. alias nodelsremote='fnm ls-remote'
  284. alias nodeuninstall='fnm uninstall'
  285. alias catnodeversion='node --version > .node-version'
  286. alias yarnglobaladd='yarn global add'
  287. alias yarnglobalremove='yarn global remove'
  288. alias yarnadd='yarn add'
  289. alias yarnremove='yarn remove'
  290. alias yarninstall='yarn install'
  291. function echosync() {
  292. echo '
  293. source <(curl -s https://git.tianyunperfect.cn/tianyunperfect/sync/raw/master/sh_config.sh)
  294. '
  295. }
  296. alias settitle='wezterm cli set-tab-title '
  297. function btm_linux() {
  298. if [ ! -f "$HOME/btm" ]; then
  299. wget https://tianyunperfect1.oss-cn-beijing.aliyuncs.com/20/2024/btm/btm -O ~/btm
  300. chmod +x ~/btm
  301. fi
  302. ~/btm --process_memory_as_value
  303. }
  304. # watch 优化
  305. alias watch_alias='watch '
  306. # 函数,每隔2秒执行一次参数命令
  307. function watch_func() {
  308. while true; do
  309. clear
  310. "$@"
  311. sleep 2
  312. done
  313. }
  314. alias gpu_nvidia='nvidia-smi'
  315. alias gpu_amd='rocm-smi --showpids -u -P'
  316. alias iptables_show_all='iptables -t nat -L -n'
  317. # docker-compose up ,如果有参数,则使用-f 文件
  318. function docker_compose_up() {
  319. if [ $# -eq 0 ]; then
  320. docker-compose up
  321. return
  322. fi
  323. docker-compose -f "$1" up
  324. }
  325. # 同理 docker-compose down
  326. function docker_compose_down() {
  327. if [ $# -eq 0 ]; then
  328. docker-compose down
  329. return
  330. fi
  331. docker-compose -f "$1" down
  332. }