编程整理
以下是本人编程开发中的一些配置信息整理,好记性不如烂笔头,以资参考(后续还会更新…)
Java 相关环境配置项:
1、环境下载:
标题 | 链接地址 |
---|---|
JDK下载: | JDK7下载 JDK8下载 快速下载地址(国内镜像) JDK17下载 |
Eclipse下载: | 最新版 其他版 |
Maven下载: | 下载地址 |
Spring 插件下载: | 下载地址 |
MySQL下载: | 下载地址 安装版下载 压缩版下载 |
MariaDB 下载: | 下载地址 |
Gradle下载 | 下载地址 |
2、环境配置:
Java及部分工具的环境变量配置
1 | # JDK配置: |
3、Linux下安装java环境
压缩版安装:
官网下载地址:https://www.oracle.com/java/technologies/downloads/#java8
下载地址(国内):https://repo.huaweicloud.com/java/jdk/
解压文件
1
tar -zxvf jdk-8u171-linux-i586.tar.gz
配置java环境变量,打开
/etc/profile
文件,添加环境变量配置,配置完后使用source /etc/profile
命令使环境生效yum安装:
检查系统中是否包含有java环境:
1
2
3
4
5
6
7
8
9
10
11
12
13# 先确认以前有没有安装过
rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj
# 如果没有输入信息表示没有安装。
# 如果安装可以使用rpm -qa | grep java | xargs rpm -e --nodeps 批量卸载所有带有Java的文件 这句命令的关键字是java
# 首先检索包含java的列表
yum list java*
检索1.8的列表
yum list java-1.8*安装并校验:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28# 安装1.8.0的所有文件 默认jre jdk 安装路径是/usr/lib/jvm 下面
yum install java-1.8.0-openjdk* -y
# 使用命令检查是否安装成功
java -version
# 查询java安装路径
# 先用which java查询到执行路径 得到 /usr/bin/java
which java
# 再用ls -l查询到具体的路径
ls -l /usr/bin/java
# 得到
lrwxrwxrwx 1 root root 22 Jan 7 11:30 /usr/bin/java -> /etc/alternatives/java
# 继续使用ls -l 查看
ls -l /etc/alternatives/java
# 得到下面的地址就是java安装目录 即 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
lrwxrwxrwx 1 root root 73 Jan 7 11:30 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/bin/java
# 校验java环境
[root@jnssd ~]# java
[root@jnssd ~]# javac
4、Maven 仓库配置:
下载地址:http://maven.apache.org/download.cgi
1 | <!-- 本地仓库地址配置 --> |
5、Gradle仓库配置
正如 Maven 的 setting.xml 文件一样,Gradle 也有定义自己的初始化全局配置文件的操作,官方文档指引,以下随机演示一种我采用的方式:
在
GRADLE_HOME/init.d/
目录下新建init.gradle
文件配置仓库地址:将以下代码复制到
init.gradle
文件中,jar 包查找路径从上至下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18allprojects {
repositories {
// 使用 maven 本地仓库
mavenLocal()
// 使用阿里云代理的中央仓库
maven { name "aliyun" ; url 'https://maven.aliyun.com/repository/public' }
// 使用 maven 中央仓库
mavenCentral()
}
buildscript {
repositories {
mavenLocal()
maven { name "aliyun" ; url 'https://maven.aliyun.com/repository/public' }
mavenCentral()
}
}
}注意:mavenLocal() 会从以下路径查找 setting.xml 从而找到本地的 maven 仓库具体路径
或者使用如下的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
}
}
maven {
url ALIYUN_REPOSITORY_URL
url ALIYUN_JCENTER_URL
}
}
}或者这种配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google/'
def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2/') || url.startsWith('http://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://maven.google.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
remove repo
}
if (url.startsWith('https://plugins.gradle.org/m2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
remove repo
}
}
}
maven {
allowInsecureProtocol = true
url ALIYUN_REPOSITORY_URL
url ALIYUN_GOOGLE_URL
url ALIYUN_GRADLE_PLUGIN_URL
}
}
buildscript{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public/'
def ALIYUN_GOOGLE_URL = 'https://maven.aliyun.com/repository/google/'
def ALIYUN_GRADLE_PLUGIN_URL = 'https://maven.aliyun.com/repository/gradle-plugin/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2/') || url.startsWith('http://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://maven.google.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GOOGLE_URL."
remove repo
}
if (url.startsWith('https://plugins.gradle.org/m2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_GRADLE_PLUGIN_URL."
remove repo
}
}
}
maven {
allowInsecureProtocol = true
url ALIYUN_REPOSITORY_URL
url ALIYUN_GOOGLE_URL
url ALIYUN_GRADLE_PLUGIN_URL
}
}
}
}以上各种方式尝试下即可
JAVA 配置打包相关:
打成war包的时候排除某些文件夹
1
2
3
4
5
6
7
8<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<packagingExcludes>template\**,html\**,uploads\**,static\**</packagingExcludes>
</configuration>
</plugin>
JAVA 项目在Linux上部署相关
1、Tomcat实现war包部署
这里不做赘述
部署后配置tomcat服务自启等,
如果使用的压缩版:
下载
Tomcat下载页面:https://tomcat.apache.org/download-80.cgi 选择需要的包
1
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz
解压
1
tar -zxvf apache-tomcat-8.5.73.tar.gz
注册Tomcat为Linux上的systemd服务
在
/etc/systemd/system
目录下创建一个tomcat.service
文件1
nano /etc/systemd/system/tomcat.service
填入以下信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19[Unit]
Description=The tomcat-server Process Manager
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_144/jre"
Environment="CATALINA_BASE=/opt/software/apache-tomcat-8.5.73"
Environment="CATALINA_HOME=/opt/software/apache-tomcat-8.5.73"
Environment="CATALINA_PID=/opt/software/apache-tomcat-8.5.73/temp/tomcat.pid"
ExecStart=/opt/software/apache-tomcat-8.5.73/bin/startup.sh
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target重新加载服务配置文件
1
systemctl daemon-reload
服务启动、停止、重启、开机自启等
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17启动
systemctl start tomcat
停止
systemctl stop tomcat
重启
systemctl restart tomcat
查看状态
systemctl status tomcat
配置开机自启
systemctl enable tomcat
禁用自启
systemctl disable tomcat
如果使用的
yum
安装版:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20安装 (安装目录在 "/usr/share/tomcat")
yum install tomcat
启动
systemctl start tomcat
停止
systemctl stop tomcat
重启
systemctl restart tomcat
查看状态
systemctl status tomcat
配置开机自启
systemctl enable tomcat
禁用自启
systemctl disable tomcat
2、在Linux上以jar形式运行
2.1、直接运行(但是不能关闭窗口,关闭窗口程序也会关闭)
1 | java -jar jar包 |
2.2、程序在后台运行
1 | nohup java -jar jar包名称 >记录日志 2>&1 & |
2.3、程序以服务的形式运行(可配置为程序开机自启)
配置 Spring Boot jar以服务的方式运行
创建shell脚本
1
2这里使用的的nano工具编写文本,可以使用 vim编辑器,看各人爱好
nano spring-boot-admin.sh编写shell脚本内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81!/bin/bash
配置java环境变量哦,不然程序还是无法启动的
export JAVA_HOME=/opt/SoftWare/jdk1.8.0_211
export PATH=${JAVA_HOME}/bin:${PATH}
这里可替换为你自己的执行程序,其他代码无需更改 这里的包名为 spring-boot-admin-1.0.0.jar
APP_NAME=/opt/web/spring-boot-admin-1.0.0.jar
配置jar启动的jvm大小
JVM="-server -Xms128m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=128m -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
JVM="-server -Xms128m -Xmx256m -XX:MetaspaceSize=64M -XX:MaxNewSize=128m -XX:MaxMetaspaceSize=128m -Djava.awt.headless=true"
配置jar包外部配置文件的路径
APPFILE_PATH="-Dspring.config.location=/opt/web/config/application.properties"
使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
nohup java $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 2>&1 &
echo "${APP_NAME} start success"
fi
}
停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
重启
restart(){
stop
start
}
根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac启动运行
1
2
3
4
5
6
7
8
9
10
11启动服务
sh spring-boot-admin.sh start
停止服务
sh spring-boot-admin.sh stop
查看服务
sh spring-boot-admin.sh status
重启服务
sh spring-boot-admin.sh restart注册为系统服务
在
/etc/systemd/system
目录下创建一个spring-boot-admin.service
文件,文件内容为:(文件也可以在
/usr/lib/systemd/system
目录下创建,然后使用 ln -l 命令软连接到/etc/systemd/system下)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[Unit]
备注信息
Description=Springboot project for test auto start
After=syslog.target network.target nss-lookup.target
[Service]
User=root
Type=forking
这里是指定启动程序的目录
ExecStart=/bin/sh /opt/web/shell/spring-boot-admin.sh start
ExecReload=/bin/sh /opt/web/shell/spring-boot-admin.sh restart
ExecStop=/bin/sh /opt/web/shell/spring-boot-admin.sh stop
[Install]
WantedBy=multi-user.target测试服务执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18刷新配置
systemctl daemon-reload
启动、重启、停止
启动
systemctl start spring-boot-admin.service
重启
systemctl restart spring-boot-admin.service
停止
systemctl stop spring-boot-admin.service
配置开机自启
systemctl enable spring-boot-admin.service
禁止开机启动
systemctl disable spring-boot-admin.service
数据库安装
MySQL安装程序
安装版下载地址:https://dev.mysql.com/downloads/installer/
安装很简单,不描述了
MySQL 压缩版安装
压缩版下载地址:https://dev.mysql.com/downloads/mysql/
1 | 服务配置: |
MySQL在Linux上安装
1、查看CentOS自带mysql是否已安装
1 | yum list installed | grep mysql |
2、如果有,就全部卸载
1 | yum -y remove +数据库名称 |
3、下载 MySQL Yum Repository
1 | ## 如果找不到wget命令则先yum install wget |
4、添加 MySQL Yum Repository
1 | ## 添加 MySQL Yum Repository 到你的系统 repository 列表中,执行 |
5、验证下是否添加成功
1 | yum repolist enabled | grep "mysql.*-community.*" |
6、选择要启用 MySQL 版本
1 | yum repolist all | grep mysql |
7、通过 Yum 来安装 MySQL
1 | ## 如果是MySQL5.6版本的,最好指定版本,默认的5.6.51有些问题,最好使用5.6.50版本的比较好,如果需要其他版本,使用如下命令查看: |
8、启动MySQL
1 | ##(如果是MySQL5.6.51版本的,可能启动不了,卸载MySQL后最好删除掉 /var/lib/mysql 下的相关数据后重新安装并启动,不然可能后续的5.6版本还是无法启动) |
9、登录mysql(MySQL5.6默认没有密码)
1 | ##(注意:5.7以上的版本,为了加强安全性,MySQL为root用户随机生成了一个密码,在error log中,关于error log的位置,具体地址是/var/log/mysqld.log。),5.6版本的默认没有密码就能登录 |
10、修改密码(修改密码的四种方式)
1 | ## 10.1、shell命令行下 |
注意:由于 MySQL5.7版本以上采用了密码强度验证插件 validate_password,故此我们需要设置一个有一定强度的密码;如果设置简单密码会报如下错误:
1 | SET PASSWORD = PASSWORD('root'); |
11、配置远程登录访问
1 | # 1、新建用户远程连接mysql数据库 |
12、Linux下忽略MySQL表名称大小写
修改/etc/my.cnf文件:
1
nano /etc/my.cnf
在[mysqld]下加入一行:lower_case_table_names=1
重新启动数据库即可
1
systemctl restart mysqld
MySQL查看版本号
1 | # 1、使用命令行登录 mysql -uroot -p,进入的欢迎界面就有版本号,如: |
MariaDB 压版版安装
下载地址:https://mariadb.org/download/
1 | 请以管理员身份运行cmd控制台,该命令会自定创建MariaDB 服务,同时配置端口、密码、允许远程连接访问 |
MariaDB 安装时初始化相关命令参数
参数 | 描述 |
---|---|
-?, –help | 显示帮助信息并退出 |
-d, –datadir=name | 新数据库的数据目录(不输入默认当前解压路径下) |
-S, –service=name | Windows服务的名称 |
-p, –password=name | root用户密码 |
-P, –port=# | mysqld 端口(指定服务端口) |
-W, –socket=name | 命名管道名称 |
-D, –default-user | 创建默认用户 |
-R, –allow-remote-root-access | 允许用户以root身份从网络进行远程访问 |
-N, –skip-networking | 不要使用TCP连接,而是使用管道 |
-i, –innodb-page-size | 自MariaDB 10.2.5起,Innodb页面大小 |
Linux相关
配置阿里 epel源
1 | wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo |
安装 epel仓库
1 | yum install epel-release |
修改系统的hostname
编辑/etc/sysconfig/network
文件:
1 | [root@demo ~]# nano /etc/sysconfig/network |
添加HOSTNAME=mytest
如下:
1 | Created by cloud-init on instance boot automatically, do not edit. |
再使用如下命令设置一下:
1 | hostnamectl set-hostname mytest |
断开xshell连接,重新连接一下,就换为mytest了:如:
1 | [root@mytest ~]# |
Linux 查找之前打过的命令
第一种:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20history | grep xxx
eg: history | grep wget
[jiang@jnssd software]$ history | grep wget
798 wget https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.tar.gz
859 wget https://downloads.apache.org/rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip
899 wget http://ftp.cuhk.edu.hk/pub/packages/apache.org/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip
902 wget https://downloads.apache.org/rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip
1000 wget --no-check-certificate https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz
1028 wget --no-check-certificate https://codeload.github.com/apache/rocketmq/tar.gz/refs/tags/rocketmq-all-4.9.2
1033 wget --no-check-certificate https://codeload.github.com/apache/rocketmq/tar.gz/refs/tags/rocketmq-rocketmq-all-4.9.2.tar.gz
1035 wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.7.1.tar.gz
1036 wget --no-check-certificate https://github.com/apache/rocketmq/archive/rocketmq-rocketmq-all-4.9.2.tar.gz
1037 wget --no-check-certificate https://github.com/apache/rocketmq/archive/rocketmq-all-4.9.2.tar.gz
1041 wget https://github.com/apache/rocketmq/archive/rocketmq-all-4.7.1.tar.gz
1046 wget https://downloads.apache.org/rocketmq/4.9.2/rocketmq-all-4.9.2-source-release.zip
1084 history | grep wget
1088 history | grep wget
[jiang@jnssd software]$第二种:
ctrl +r 搜索快捷按键类似于 window 文本查找
Nginx在Linux上安装
1、配置nginx的yum安装源
1 | # 编辑 Nginx 源 这里设置为中科大的镜像repo |
2、安装 Nginx、启动及其他命令等
1 | ## 安装 Nginx |
Nginx在Windows上安装使用
Windows下载Nginx:http://nginx.org/en/download.html
解压后即可使用,以下命令最好在解压目录下使用,如需全局使用,可将解压地址配置在Windows下Path环境变量
中。
1 | 启动nginx |
Nginx代理配置:
1 | user nginx; |
以上是直接使用的http协议访问的,如果需要配置https证书访问,添加如下配置:
1 | server { |
SSH相关:
配置SSH中root
账号不能登录
编辑ssh的配置文件,取消
PermitRootLogin
前的注释,把属性值 从yes
改为no
1
[root@jnssd ~]# nano /etc/ssh/sshd_config
重启sshd服务
1
[root@jnssd ~]# service sshd restart
配置SSH的端口:
编辑ssh的配置文件,取消
Port
前的注释,把属性值 从22
改为 需要的端口1
[root@jnssd ~]# nano /etc/ssh/sshd_config
重启sshd服务
1
[root@jnssd ~]# service sshd restart
用户相关及权限:
1、创建用户
1 | [root@jnssd ~]# adduser jiang |
2、为新用户创建初始化密码
1 | [root@jnssd ~]# passwd jiang |
3、授权
个人用户的权限只可以在本home下有完整权限,其他目录需要别人授权。经常需要root用户的权限,可以通过修改sudoers文件来赋予权限。
新创建的用户并不能使用sudo命令,需要给他添加授权。
查找sudoers文件路径并赋予权限
1
2
3
4
5
6
7
8
9
10查找sudoers文件路径
[root@jnssd ~]# whereis sudoers
查看权限
[root@jnssd ~]# ls -l /etc/sudoers
-r--r----- 1 root root 4363 Nov 12 10:21 /etc/sudoers
赋予读写权限
[root@jnssd ~]# chmod -v u+w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0440 (r--r-----) to 0640 (rw-r-----)修改sudoers文件
1
[root@jnssd ~]# nano /etc/sudoers
文件中添加新用户信息:
1
2
3# Allow root to run any commands anywhere
root ALL=(ALL) ALL
jiang ALL=(ALL) ALL #这个是新用户收回权限
1
2chmod -v u-w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0640 (rw-r-----) to 0440 (r--r-----)注:
/etc
下面的sudo
开头的文件不能赋予除root
用户之外的权限,如果赋予了可能会出现如下错误:1
2
3
4[jiang@jnssd ~]$ sudo
sudo: /etc/sudo.conf is owned by uid 1000, should be 0
sudo: /etc/sudo.conf is owned by uid 1000, should be 0
sudo: /etc/sudoers.d is owned by uid 1000, should be 0解决:
1
2
3在root用户模式下分别执行如下命令
[root@jnssd jiang]# chown -R root:root /etc/sudoers.d
[root@jnssd jiang]# chown -R root:root /etc/sudo.conf
4、删除用户
1 | [root@jnssd ~]# userdel -r jiang |
5、给某个用户某个文件的权限
1 | 给某个用户(jiang)某文件夹(opt)权限 |
6、禁止普通用户通过sudo su
命令进入root模式的方法(在root模式下操作):
修改 /etc/sudoers 的权限, 用来写入文件
1
[root@jnssd ~]# chmod 777 /etc/sudoers
修改sudo 可以执行的命令
1
2
3
4
5编辑sudoers文件
[root@jnssd ~]# nano /etc/sudoers
在需要配置的用户后面追加如下内容(如这里的用户 jiang)
jiang ALL=(ALL) ALL,!/bin/su- ! 取反的意思
- 追加的内容意思就是所有用户, 所有组都不允许使用 /bin/su 命令
- 如果想要普通用户, 使用指定的命令就直接使用 “,” 分割 在 “!/bin/su” 后面追加即可
- 如果不想让普通用户使用, 只需要在指定命令的开头写入 ! 取反即可
- 写入命令时必须写绝对路径
将文件的权限修改回来
1
[root@jnssd ~]# chmod 0440 /etc/sudoers
测试
1
2
3[jiang@jnssd ~]$ sudo su root
[sudo] password for jiang:
Sorry, user jiang is not allowed to execute '/bin/su root' as root on jnssd.
7、其他
配置在其他用户使用
netstat -ntlp
查看端口时没有进程编号的情况1
chmod +s /bin/netstat
查看当前系统中能登录的账号
1
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
配置防火墙
1 | 列出所有可用单元 |
文件远程传输
Rsync实现传输文件
Rsync拷贝命令中常用的几个参数说明:
1 | -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD |
传输实例
1 | 使用ssh默认端口使用用户jiang传输log文件 到远程服务器的opt目录下 |
Windows相关
Windows下查看某端口使用
1 | netstat -ano|findstr 端口号 |
其他
Redis 安装
Windows安装:
下载地址:https://github.com/tporadowski/redis/releases
1 | ## 下载地址: https://github.com/tporadowski/redis/releases |
Linux安装:
yum 方式安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24直接yum 安装的redis 不是最新版本
yum install redis
如果要安装最新的redis,需要安装Remi的软件源,官网地址:http://rpms.famillecollet.com/
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
然后可以使用下面的命令安装最新版本的redis:
yum --enablerepo=remi install redis
安装后启动redis
service redis start
或者
systemctl start redis
配置redis开机启动
chkconfig redis on
或者
systemctl enable redis.service
redis安装完毕后,我们来查看下redis安装时创建的相关文件,相关命令如下:
rpm -qa |grep redis
rpm -ql redis
redis安装后的相关配置文件在 /etc/redis.conf解压版安装
下载
redis下载地址:https://redis.io/
1
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
解压
1
tar -zxvf redis-6.2.6.tar.gz
编译安装
1
2
3
4
5
6cd redis-6.2.6/
make
此时用以下命令就能启动了
redis-6.2.6/src/redis-server redis-6.2.6/redis.conf注: 这种启动在控制关闭后会停止,如果需要后台启动需修改 redis.conf 文件中的**
daemonize
属性值为yes**即可配置服务
在
/etc/systemd/system
目录下创建一个redis.service
文件1
nano /etc/systemd/system/redis.service
填入以下信息:
1
2
3
4
5
6
7
8
9
10
11
12
13[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/opt/software/redis-6.2.6/src/redis-server /opt/software/redis-6.2.6/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target注:如果在redis.conf 文件中将**
daemonize
属性值改为了yes,此服务文件中的Type值需为forking**重新加载服务配置文件
1
systemctl daemon-reload
服务的启动、停止、重启、开机自启等
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17启动
systemctl start redis
停止
systemctl stop redis
重启
systemctl restart redis
查看状态
systemctl status redis
配置开机自启
systemctl enable redis
禁用自启
systemctl disable redis
SVN安装
1、Windows安装
下载地址:https://tortoisesvn.net/downloads.html
中文库在页面下方
2、Linux安装
安装svn
1
yum -y install subversion
创建目录并配置
建立版本库目录(建议使用/var/svn 这样的路径,不然后续在配置开机自启的时候需要修改部分配置,看个人喜好吧!)
1
mkdir -p /opt/svn/
创建svn代码库
1
svnadmin create /opt/svn/repo
执行上面的命令后,自动建立repo测试库,查看/opt/svn/repo 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。以后创建svn库类似,替换repo名称即可
用户密码passwd配置
1
2[root@Master ~]# cd /opt/svn/repo/conf/
[root@Master conf]# nano passwd修改password为以下内容:
1
2
3
4[users]
# harry = harryssecret
# sally = sallyssecret
admin=admin注:格式必须是 用户名=密码(用户名和密码必须成对)
权限控制authz配置
1
[root@Master conf]# nano authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
1
2
3#设置[/]代表根目录下所有的资源 或者写成[repl:/]
[/]
admin = rw以上配置表示demo对根目录有读写权限,r为读,w为写
如果是多个用户开发,这里可以配置用户组,编辑示例:
1
2
3
4
5
6
7
8
9[groups]
admin = admin # admin为用户组,等号之后的admin为用户
test = fuhd,test
[repo:/] # 表示根目录(/opt/svn/repo)
@admin = rw # 表示admin组对根目录有读写权限,r为读,w为写
[repo:/test] # 表示test目录(/opt/svn/repo/test)
@test = rw # 表示test组对test目录有读写权限服务svnserve.conf配置
每个版本库创建之后都会生成svnserve.conf主要配置文件。编辑它:
1
[root@Master conf]# nano svnserve.conf
追加以下内容:
1
2
3
4
5
6
7
8
9
10
11[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字,可以填写为项目名称
realm=repositories启动与停止svn服务
查看svn的服务是否启动
1
ps -ef|grep svn
如果没有启动执行下面命令即可(默认端口3690):
1
2
3
4
5
6svnserve -d -r /opt/svn/repo
或者:
systemctl start svnserve
# 指定端口
svnserve -d -r /opt/svn/repo --listen-port=9527停止:
1
killall svnserve
开启端口
如果配置了防火墙规则,使用如下命令即可:
1
2
3
4/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
/etc/init.d/iptables status访问
本地使用svn去checkout代码。请求地址:
svn://ip(域名)/库名
eg:
填写账号、密码
配置开机自启
1
systemctl enable svnserve.service
如果前面设置的svn目录地址使用的是
/var/svn
这样的路径,开机时能够启动的,如果不是,可能会报如下错误:1
2
3
4
5
6
7
8
9
10
11
12[root@Master ~]#systemctl status svnserve
● svnserve.service - Subversion protocol daemon
Loaded: loaded (/usr/lib/systemd/system/svnserve.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2021-11-16 18:22:03 CST; 31s ago
Process: 1011 ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS (code=exited, status=1/FAILURE)
Nov 16 18:22:02 Master systemd[1]: Starting Subversion protocol daemon...
Nov 16 18:22:03 Master svnserve[1011]: svnserve: 根路径“/var/svn”不存在,或者不是目录。
Nov 16 18:22:03 Master systemd[1]: svnserve.service: control process exited, code=exited status=1
Nov 16 18:22:03 Master systemd[1]: Failed to start Subversion protocol daemon.
Nov 16 18:22:03 Master systemd[1]: Unit svnserve.service entered failed state.
Nov 16 18:22:03 Master systemd[1]: svnserve.service failed.这里需要修改
/etc/sysconfig
下的svnserve
文件:1
[root@Master ~]# nano /etc/sysconfig/svnserve
将该配置文件中的
/var/svn
变更为你自己的路径就行,eg:1
2
3
4# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="-r /opt/svn"使用如下命令项目是可以启动的:
1
systemctl start svnserve.service
查看svn服务:
1
2
3
4
5
6
7
8
9
10
11
12
13[root@Master ~]# systemctl status svnserve.service
● svnserve.service - Subversion protocol daemon
Loaded: loaded (/usr/lib/systemd/system/svnserve.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2021-11-16 18:28:58 CST; 28s ago
Process: 2049 ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 2050 (svnserve)
Tasks: 1
Memory: 596.0K
CGroup: /system.slice/svnserve.service
└─2050 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -r /opt/svn
Nov 16 18:28:58 Master systemd[1]: Starting Subversion protocol daemon...
Nov 16 18:28:58 Master systemd[1]: Started Subversion protocol daemon.
visual code 插件
1 | Auto Close Tag 自动补全html标签 |
Hbase 数据备份 还原
1 | # test_table 表名 |
MySQL数据操作相关
1 | ###############创建视图################## |
Phoenix 相关操作整理
1 | # 建表 |
设置网页滤镜
1 | body>* { |
一行代码设置网页暗模式
1 | html{ |
实现正则检测密码强度
1 | 这里实现匹配“大写字母,小写字母,数字,特殊字符”四项中的至少三项的正则表达式如下: |
待续。。。