// 安装脚手架 npm install -g angular-cli // 新建Angualr项目 ng new angualrDemo --skip-install 注:如果按照官网的教程只用输入 ng new 项目名 即可,但是这种情况下它会默认使用npm帮我们创建项目并且安装各种依赖,非常耗时间,所以我们后面加上-- skip-install跳过安装依赖的过程. 启动项目 ng serve 默认启动在端口4200 ng serve – open,启动并打开浏览器 ng serve --port 端口 // 终结
作者: admin
Linux中jdk的安装与卸载,及多版本jdk配置(宝塔面板)
一、卸载
1、获取当前已安装版本 rpm -qa | grep jdk 2、卸载不需要的版本(jdk名字得是上边查出来的全称,复制粘贴就行) rpm -e --nodeps jdk1.8.0_121
二、单版本安装
1、官网下载tar.gz后缀的安装包 https://www.oracle.com/java/technologies/downloads/#java11

2、新建一个jdk文件夹,用宝塔面板把安装包上传到这个文件夹里,并且解压

3、执行命令进入配置文件:
vim /etc/profile
执行后如下图,输入E进入编辑模式,
复制如下代码到文件末尾,把JAVA_HOME的路径改成自己的jdk文件夹路径,java名字也改了
export JAVA_HOME=/www/jdk/jdk-11.0.18 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
插入后这样

4、保存并退出编辑,重新加载系统配置文件,这样可以使配置立即生效,不用重启
source /etc/profile
5、检查新安装的jdk
java -version
6、将jdk地址添加进宝塔JDK管理

原文链接:https://blog.csdn.net/cs_zhao18/article/details/126473295
服务器宝塔安装Jenkins
一、Jenkins包下载
大家可以从Jenkins官网(https://www.jenkins.io/)根据自己的需要下载最新的版本。
但Jenkins官网下载较慢,容易造成下载失败。可以去国内的开源镜像网站下载Jenkins最新版本。目前博主使用的是清华大学的开源镜像网站(https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/),大家可以根据自己的需要下载对应版本的war包

二、新建java项目 运行war包
1.不要太任意的位置新建jenkins文件夹,将下载的jenkins.war文件上传
2.这里两个坑,一个是宝塔默认生成的启动命令后是server.port=7377 ,要改成 –httpPort=7377
3.第二个项目用户要调成root,否则后面执行脚本会权限不足(这个耽误了很久,尝试给springboot权限失败了,这里只能选root避免权限不足)
这里要安装jdk11,需要安装参考另一个教程

/usr/local/btjdk/jdk-17.0.4.1/bin/java -jar -Xmx1024M -Xms256M /www/wwwroot/jks/jenkins.war --httpPort=7377 启动命令讲解 /usr/local/btjdk/jdk-17.0.4.1/bin/java JDK 的路径 -Xmx1024M -Xms256M 限制最大内存为1024M 最小内存256M --server.port=8656(jenkins 不支持server.port改用httpPort) 启动的端口
三 、运行Jenkins,启动后到日志查看解锁密码下一步会用到

四、输入ip:端口进行访问,访问不通记得查看宝塔是否放行端口

设置全跳过了,直接开始使用


原文链接:https://blog.csdn.net/yzding1225/article/details/127548016
Jenkins中文设置https://blog.csdn.net/zh__quan/article/details/106230100
jenkins配置Git源码管理https://blog.csdn.net/weixin_43507959/article/details/102689513
五创建一个新项目
如果没有maven选项,先安装插件,参考:https://www.likecs.com/show-203813628.html
记得去全局工具里安装maven版本否则下面运行会报错


输入项目名字,选择maven项目

Git项目输入git地址 https的

这里参考https://blog.csdn.net/weixin_43507959/article/details/102689513
参考https://gitee.com/help/articles/4181#article-header0

运行,要么就是maven报错,上面有解决办法,要么就是java报错,解决办法:https://blog.csdn.net/qq_35663625/article/details/123180907

1、根据报错去jenkins机器查看目录(/data/jenkins/workspace/test-zhanjian-super-web)是否存在,上去看该目录存在,原因一可排除 2、通过百度有博客说是jenkins机器的java没有配置环境变量 上jenkins机器查看java环境变量也配置了 最后网上建议做一个软链接,jenkins会自动去bin目录下查找java可执行文件,最终问题解决(具体原因还不知道) # ln -s /www/jdk/jdk-11.0.18/bin/java /usr/local/bin/java
顺利的话这里将会下载文件了
添加后执行的脚本文件

java -version cd ../ # maven 项目名字 # demo-0.0.1-SNAPSHOT.jar 项目打包后的jar包名字 sh start.sh maven demo-0.0.1-SNAPSHOT.jar
并且将 start.sh脚本放在 jenkins目录 .jenkins/workspace 下
#!/bin/bash
pathName=$1 # 项目名(项目目录名)
project=$2 # jar包名字(target下的jar包名字)
if [ "$pathName" = "" ];
then
echo -e "\033[0;31m 未输入项目名 \033[0m"
exit 1
fi
if [ "$project" = "" ];
then
echo -e "\033[0;31m 未输入jar包名字 \033[0m \033[0;34m target下的jar包名字 \033[0m"
exit 1
fi
# 创建java项目目录
mkdir -p /www/javaroot/$pathName
# chmod 777 /www/javaroot/$pathName
# 删除文件
rm -rf /www/javaroot/$pathName/$project
echo "拷贝文件"
cp ./$pathName/target/$project /www/javaroot/$pathName/
echo "切换路径"
cd /www/javaroot/$pathName/
# 解决jenkins自动杀掉衍生进程
BUILD_ID=dontKillMe
# 查询是否有已经存在的进程
#grep -v start.sh 是排除这个sh进程,否则会同时把本进程杀死 start.sh是进程名
pid=`ps -ef | grep demo-0.0.1-SNAPSHOT.jar | grep -v grep | grep -v start.sh | awk '{print $2}'`
echo "已存在的进程pid"+$pid
if [ -n "$pid" ]
then
kill -9 $pid
echo "杀死存在进程"
fi
echo "启动项目"
nohup java -jar $project --spring.profiles.active=dev >/dev/null 2>&1 &
date #打印时间
echo "启动成功!"出现这个界面说明已经运行成功

Linux文件更改编码
在Windows下编写了一个Shell脚本,上传到Linux中,无法运行。经查找,发现是编码不同的问题。
解决方案: 1.Linux下使用VI编辑器打开文件。 2.查看编码 :set ff 3.修改为Unix :set ff=unix 4.保存退出 :wq
宝塔面板使用WebHook配合gogs搭建钩子 Git push上传自动推送到服务器
第一步宝塔软件商店安装webhook

第二步 点击webhook设置添加脚本

脚本内容
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "开始"
#判断宝塔WebHook参数是否存在
if [ ! -n "china" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径
gitPath="/www/wwwroot/$1"
#git 网址
gitHttp="git@gitee.com:tyaa/test-hook.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp .
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End1"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
mkdir $gitPath
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End2"
exit
fi
文件夹最好是空的
git命令操作
// 更新到远程仓库 $ git add . //指定更新内容 . 表示全部更新,test.txt 表示更新指定文件 $ git commit -m "一些注释说明" //添加更新说明 $ git push origin master //执行更新操作 // 从远程仓库同步最新版本到本地 $ git pull origin master // 克隆 $ git clone https://gitee.com/yourname/repository // 本地初始化 $ git init //初始化本地项目 $ git remote add origin <远程仓库地址> //绑定远程仓库 #注:地址形式为 https://gitee.com/yourname/test.git 或 git@gitee.com:yourname/test.git //查看所在目录的分支 -a表示所有 git branch -a //输入命令切换分支 适用于第一次创建并切换分支 $ git checkout -b develop origin/develop // 其中远程分支为origin/develop,本地分支为zhanghanlun 如果已经有本地分支,直接输入命令 $git checkout develop // 强制推送,注意会强制删除原有仓库中的某些代码 $git push -u origin master -f // 如果本地版本与远程版本有差异,但又要强制推送,使用 --force 参数: git push --force origin master git 本地改动了,不保留,直接拉取线上最新代码 git fetch --all git reset --hard origin/master //git拉取远程代码并创建本地分支 git checkout -b dev(本地分支名) origin/dev(远程分支名) //如果执行命令报错,可能是没有更新远程仓库信息,这时候需要手动更新下远程仓库信息,执行命令git fetch origin,再执行git branch -a可以看到最新的远程仓库信息,然后再重新执行git checkout -b dev(本地分支名) origin/dev(远程分支名)
git tag v1.0 # 给当前版本打上名为v1.0的标签 git push origin v1.0 # 将名为v1.0的标签推送到远程仓库 git push --tags # 将所有本地的标签推送到远程仓库
apache网站无法接收请求头的问题
// 经测试只经过这一行就ok了 #这行是最重要的,加载apache配置文件的最后一行 SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
原文地址:https://blog.csdn.net/kevlin_V/article/details/126935404
Python获取硬件信息(硬盘序列号,CPU序列号)
pip install wmi pip install pywin32
import wmi
c = wmi.WMI()
# # 硬盘序列号
for physical_disk in c.Win32_DiskDrive():
print(physical_disk.SerialNumber)
# CPU序列号
for cpu in c.Win32_Processor():
print(cpu.ProcessorId.strip())
# 主板序列号
for board_id in c.Win32_BaseBoard():
print(board_id.SerialNumber)
# mac地址
for mac in c.Win32_NetworkAdapter():
print(mac.MACAddress)
# bios序列号
for bios_id in c.Win32_BIOS():
print(bios_id.SerialNumber.strip())安卓模拟器adb操作
1) 发送文本
语法:input text <string>
<string>:文本内容
示例:input text "www.xyaz.cn" #模拟输入 (不支持中文)
2) 按键
语法:input keyevent [--longpress] <键值>
[--longpress]:长按
示例:input keyevent 3 #模拟点击Home键
3) 点击
语法:input tap <x> <y>
<x> <y>:坐标
示例:input tap 500 200 #模拟点击坐标(500, 200)的点
3) 点击
语法:input tap <x> <y>
<x> <y>:坐标
示例:input tap 500 200 #模拟点击坐标(500, 200)的点
4) 划动
语法:input swipe <x1> <y1> <x2> <y2> [duration(ms)]
<x1> <y1>:起点坐标
<x2> <y2>:终点坐标
[duration]:持续时间
示例:input swipe 200 200 300 300 #模拟滑动 从起点坐标(200, 200)划动到终点(300, 300)
获取app的包名和activity名称
(1)adb logcat | findstr START
然后点击app
CMD界面,cmp= 后面的值就是 包名/activity名称
例如: cmp=com.shanjian.originaldesign/.activity.other.Activity_In
am start -n com.skymobi.mrpsanguo/com.skymobi.moposns.MoposnsLogoActivity
am start -n com.com.ziyong/com.cyjh.elfin.activity.SplashActivityvue 八大生命周期
- beforeCreate(创建前)
- created (创建后)
- beforeMount (载入前)
- mounted (载入后)
- beforeUpdate (更新前)
- updated (更新后)
- beforeDestroy( 销毁前)
- destroyed (销毁后)
Vue生命周期函数就是vue实例在某一个时间点会自动执行的函数
当Vue对象创建之前触发的函数(beforeCreate)
Vue对象创建完成触发的函数(Created)
当Vue对象开始挂载数据的时候触发的函数(beforeMount)
当Vue对象挂载数据的完成的时候触发的函数(Mounted)
Vue对象中的data数据发生改变之前触发的函数 (beforeUpdate)
Vue对象中的data数据发生改变完成触发的函数(Updated)
Vue对象销毁之前触发的函数 (beforeDestroy)
Vue对象销毁完成触发的函数(Destroy)