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  # 将所有本地的标签推送到远程仓库

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())

原文链接:https://www.cnblogs.com/blog-rui/p/12108072.html

安卓模拟器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.SplashActivity

vue 八大生命周期

  1. beforeCreate(创建前)
  2. created (创建后)
  3. beforeMount (载入前)
  4. mounted (载入后)
  5. beforeUpdate (更新前)
  6. updated (更新后)
  7. beforeDestroy( 销毁前)
  8. destroyed (销毁后)

Vue生命周期函数就是vue实例在某一个时间点会自动执行的函数

当Vue对象创建之前触发的函数(beforeCreate)

Vue对象创建完成触发的函数(Created)

当Vue对象开始挂载数据的时候触发的函数(beforeMount)

当Vue对象挂载数据的完成的时候触发的函数(Mounted)

Vue对象中的data数据发生改变之前触发的函数 (beforeUpdate)

Vue对象中的data数据发生改变完成触发的函数(Updated)

Vue对象销毁之前触发的函数 (beforeDestroy)

Vue对象销毁完成触发的函数(Destroy)

Linux服务器时间设置及同步

在同步网络时间之前,我们需要确保服务有安装  ntpdate 服务

ps aux |grep ntpdate

如果未安装,使用如下代码安装,系统会自动选择合适的镜像,按提示选择 y 就行。

yum install ntpdate

当然安装完成后,还可以执行第一条命令查看是否成功。确认安装成功后,输入如下代码

ntpdate -u cn.pool.ntp.org    //-u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;

注意:若不加上-u参数, 可能会出现以下提示:no server suitable for synchronization found
    执行完毕后,可 使用 ‘date’命令查看服务器时间是否同步成功。

原文地址:

https://www.cnblogs.com/JackpotHan/p/10813237.html