Centos7基本命令
-
查看CPU相关信息
lscpu
-
查看IP地址
cat /etc/hosts
-
centOS系统更新命令
yum -y update
-
查看当前活动用户
w #
-
查看内存使用情况
free -m
-
查看内核/操作系统/CPU等信息
uname -a
-
查看计算机名
hostname
-
查看操作系统信息
cat /etc/os-release
-
安装vim
yum -y install vim*
-
安装wget
yum -y install wget
-
安装net-tools工具
yum install net-tools
-
查看端口占用
netstat -tlnp|grep 80
-
一次性的清除占用80端口的程序
lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh
-
手工终止进程的运行
kill 5014 kill -9 5014 # 强制停止
-
开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent 命令含义: –zone #作用域 –add-port=80/tcp #添加端口,格式为:端口/通讯协议 –permanent #永久生效,没有此参数重启后失效
-
防火墙设置
systemctl status firewalld #查看防火墙状态 Active 属性 firewall-cmd --reload #重启firewall systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
* 防火墙打开特定端口 ```bash # --permanent永久生效,没有此参数重启后失效 firewall-cmd --zone=public --add-port=8080/tcp --permanent # 重新载入防火墙 firewall-cmd --reload
centOS7 连接网络
-
网络相关命令
ip addr # 查看网络信息 ifconfig # 查看网络信息 systemctl restart network.service # 重启网络
-
查看网络配置
cat /etc/sysconfig/network-scripts/ifcfg-lo
Java安装及环境配置
首先准备Linux版的java安装包,上传到服务器
-
创建安装目录
mkdir /usr/local/java/
-
解压至安装目录
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/
-
设置环境变量
-
打开文件
vim /etc/profile
-
在profile文件末尾添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_171 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
-
使环境变量生效
source /etc/profile
-
添加软链接
ln -s /usr/local/java/jdk1.8.0_171/bin/java /usr/bin/java
-
检查java -version和javac命令
-
启动jar包,并后台运行
nohup java -jar XXXXXX.jar & # 启动jar包并后台运行 ps aux|grep XXXXX.jar # 查看jar包占用的端口 kill -9 端口号 # 杀死进程
Maven安装及环境配置
-
下载maven
-
wget方法
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo yum -y install apache-maven
-
一般下载
http://mirrors.hust.edu.cn/apache/maven/maven-3/3.6.0/binaries/
-
-
创建安装目录
mkdir /usr/local/maven3/
-
解压至安装目录
tar zxf apache-maven-3.6.0-bin.tar.gz -C /usr/local/maven3/
-
设置环境变量
-
编辑环境变量文件
vi /etc/profile
-
在文件末尾添加
export M2_HOME=/usr/local/maven3/apache-maven-3.6.0 export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
-
使环境变量生效
source /etc/profile
-
检查是否生效 mvn -v 命令
-
打开maven安装目录conf文件下setting.xml文件,找到对应的xml标签设置
-
配置阿里镜像
nexus-aliyun central Nexus aliyun http://maven.aliyun.com/nexus/content/groups/public -
配置docker-maven-plugs 打包
com.spotify
-
-
在根目录下构建镜像
mvn clean package -Dmaven.test.skip=true
-
mvn 打包(由于项目模块之间存在依赖关系,所以打包只能整体打包)
mvn clean # 清空 mvn package # 打包
Git安装及环境配置
-
使用yum命令安装,
yum install git
安装过程中有提示选项,输入y,回车继续安装
-
生成秘钥,生成过程中的选项按三下回车,不用输入
ssh-keygen -t rsa -C "您的email"
-
秘钥生成好之后,打开文件,复制秘钥设置到仓库中
vim /root/.ssh/id_rsa.pub
-
Git 基本命令
-
查看当前仓库修改的文件
git status
-
撤回文件修改
git checkout 文件名
-
-
git 命令切换分支
-
查询本地当前分支
git branch -a
-
查询远端分支
git branch -r
-
如果不匹配需要执行下面的命令
git pull
-
然后再执行 git branch -a 命令 ,其中带* 符号的分支就是当前所在地分支
[root@localhost backstage-cloud]# git branch -a * backstage-cloud-v1.0 remotes/origin/master
-
切换分支命令,格式为本地分支名,对应远端分支名
git checkout -b backstage-cloud-v1.2-dev origin/backstage-cloud-v1.2-dev
-
执行成功提示
Branch backstage-cloud-v1.2-dev set up to track remote branch backstage-cloud-v1.2-dev from origin. Switched to a new branch 'backstage-cloud-v1.2-dev'
-
再执行查询分支命令,可以看到分支已经切换成功
[root@localhost backstage-cloud]# git branch -a backstage-cloud-v1.0 * backstage-cloud-v1.2-dev remotes/origin/HEAD -> origin/backstage-cloud-v1.0 remotes/origin/master
-
Docker安装及环境配置
-
卸载旧版本docker
sudo yum remove docker docker-common docker-selinux docker-engine
-
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
-
设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
-
安装docker
sudo yum install docker-ce #安装最新版docker sudo yum install
# 选择版本安装,例如:sudo yum install docker-ce-17.12.0.ce -
启动并加入开机启动
sudo systemctl start docker sudo systemctl enable docker
-
启动/关闭/重启docker
systemctl start docker # 开启docker systemctl restart docker # 重启docker systemctl stop docker # 关闭docker
-
验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
-
安装安装 docker-compose(该版本需要去GitHub确认,是不是最新版本)
sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
-
配置
sudo chmod +x /usr/local/bin/docker-compose
-
检查是否安装成功
docker-compose --version
-
删除为none的镜像
docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm docker iscses|grep none|awk '{print $3 }'|xargs docker rmi
-
根据docker-compose.yml服务的编排启动docker文件
docker-compose up -d
-
查看docker容器运行状态配置信息(IP地址等)
docker inspect 容器ID
-
查看所有镜像
docker iscses
-
查看网络模式
docker network ls
-
查看所有在运行的容器
docker ps
-
进入容器命令行(根据镜像版本选择)
docker exec -it 容器id /bin/sh docker exec -it 容器id /bin/bash docker exec -it 容器id bash
-
关闭容器和删除容器
docker stop 容器id # 停止容器 docker rm 容器id # 删除容器 # 另一种方法 docker-compose stop 容器id docker-compose rm 容器id
-
删除镜像(删除镜像前必须先停止删除容器)
docker rmi 镜像id
-
查看docker容器内存占用命令
docker stats
-
查看容器内部地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器id
-
查看容器运行的日志
docker logs 容器ID docker logs --since 30m 容器ID # 查看最近三十分钟日志 docker logs --tail 300 容器ID # 查看倒数三白行数据
-
docker容器中进行文件编辑(按照不同的环境选择)
apt-get update # 先更新 apt-get install vim # 再安装vim 即可进行文件编辑
-
Dockerfile 文件编辑(举例)
# 指定镜像 FROM openjdk:8u191-jdk-alpine3.9 # 维护者信息 MAINTAINER ******@gmail.com # 在新镜像内部执行的命令,比如安装一些软件、配置一些基础环境,可使用\来换行,当前设置是指定时区,&&支持多命令 RUN mkdir -p /service-eureka && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 设置工作目录 WORKDIR /service-eureka # 设置端口 EXPOSE 8761 # 将文件复制到镜像中 ADD ./service-eureka/target/service-eureka-1.0-SNAPSHOT.jar ./ CMD java -Djava.security.egd=file:/dev/./urandom -jar service-eureka-1.0-SNAPSHOT.jar
-
docker-compose.yml 文件编辑(举例)
#注册中心 service-eureka: build: context: ./ # Dockerfile文件地址 dockerfile: ./service-eureka/Dockerfile restart: always ports: # 宿主机映射端口 :容器端口 同一个模块构建镜像只要宿主机端口不冲突就行 - "8761:8761" volumes: # 宿主机地址 :docker容器地址,映射目录(容器路径需要根据dockerfile配置来设置) - ./service-eureka/target/:/service-eureka container_name: service-eureka hostname: service-eureka iscse: service-eureka # networks: #网络模式 # - eureka-net environment: #环境变量 SERVER_PORT: "8761" #自定义参数用于给服务的配置文件传递参数 mem_limit: 400m #设置容器最大内存
Python安装及环境配置
-
安装编译相关的工具
yum -y groupinstall "Development tools"; yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel; yum install libffi-devel -y;
-
下载安装包
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
-
创建文件夹
mkdir /usr/local/python3/
-
解压到相关目录
tar -xvJf Python-3.7.0.tar.xz -C /usr/local/python3/
-
检查源码的依赖合法性
./configure
-
编译安装
make && make install
Tomcat安装及环境配置
-
获取官方安装包
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz
-
创建tomcat安装文件夹
mkdir /usr/local/tomcat
-
解压文件
tar -zxvf apache-tomcat-8.5.43.tar.gz
-
将tomcat文件移动到 /usr/local/tomcat/下面
mv apache-tomcat-8.5.43 /usr/local/tomcat/
-
转到安装目录下面
cd usr/local/tomcat/apache-tomcat-8.5.43/bin/
-
启动tomcat或关闭tomcat
./startup.sh ./shutdown.sh
-
配置Manager
-
编辑apache-tomcat-8.5.43/conf/tomcat-users.xml
-
编辑编辑 apache-tomcat-8.5.43/webapps/manager/META-INF/context.xml,允许任意 IP 访问
访问 http://ip:端口/manager/html 进入 manager 页面
-
RabbitMQ 配置
由于本项目使用的RabbitMQ运行在docker容器中,所以下面的命令需要进入运行rabbitmq容器的内部执行,进入容器内部的命令在上面docker配置中;
-
外部连接RabbitMQ
-
建立新的用户
rabbitmqctl add_user admin admin #新增用户/密码(admin/admin) rabbitmqctl set_user_tags admin administrator #给用户admin配置权限 rabbitmqctl set_permissions -p / admin '.*' '.*' '.*' # 配置admin用户拥有所有权限 rabbitmqctl list_user_permissions admin # 查看admin用户拥有的权限
也可以在页面中配置,使用创建时的用户登录,然后配置用户的账号密码为admin/admin,接着点add user,然后点击用户名进去,进行两次set
-
启动WEB管理插件
rabbitmq-plugins enable rabbitmq_management
-
-
创建新的RabbitMQ容器的时候需要创建账户,两种方法,上面说的是第一种使用命令行进入容器内部创建,另外一种就是进入rabbitMQ的控制页面进行手动创建:
- 先进入 IP:15672, 进入管理界面,默认账号为
system system123
- 然后在admin标签页添加账户
- 然后点击账户名,进行权限设定
Nginx安装及环境配置
-
安装Nginx/卸载
$ sudo yum -y install nginx # 安装 nginx $ sudo yum remove nginx # 卸载 nginx
使用yum进行Nginx安装时,Nginx配置文件在
/etc/nginx
目录下。 -
配置Nginx服务
$ sudo systemctl enable nginx # 设置开机启动 $ sudo service nginx start # 启动nginx服务 $ sudo service nginx stop # 停止nginx服务 $ sudo service nginx restart # 重启nginx服务 $ sudo service nginx reload # 重新加载配置,一般是在修改过nginx配置文件时使用。
-
安装依赖库
-
安装gcc
yum -y install gcc gcc-c++ # nginx编译时依赖gcc环境
-
安装pcre
yum -y install pcre pcre-devel # 让nginx支持重写功能
-
安装zlib
# zlib库提供了很多压缩和解压缩的方式,nginx使用zlib对http包内容进行gzip压缩 $ sudo yum -y install zlib zlib-devel
-
安装OpenSSL
# 安全套接字层密码库,用于通信加密 $ sudo yum -y install openssl openssl-devel
-
-
配置及使用
-
查看日志
/var/log/nginx/access.log; # 运行日志 /var/log/nginx/error.log; # 错误日志
-
配置Nginx.conf文件,文件位置,/etc/nginx/nginx.conf
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { # log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; log_format main '$remote_addr - $remote_user [$time_local] "$request" $http_host ' '$status $request_length $body_bytes_sent "$http_referer" ' '"$http_user_agent" $request_time $upstream_response_time'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; upstream scs-service { ip_hash; # 基于IPhash算法,保持session一致性 # 网关地址 server 172.19.0.10:8762 weight=1 max_fails=3 fail_timeout=30s; server 172.19.0.8:8763 weight=1 max_fails=3 fail_timeout=30s; } server { listen 80 default_server; # listen [::]:80 default_server; server_name localhost; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location /scs-service/ { proxy_pass http://scs-service/; proxy_set_header Host $host; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html; # # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /52x.html { # } # } }
-
如请求失败错误日志为failed (13: Permission denied),则需要关闭selinux,
-
临时关闭selinux
setenforce 0 # 关闭 setenforce 1 # 开启
-
永久关闭
vim /etc/selinux/config
输出如下
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. # SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
- 将SELinux status:enable 修改为disabled,需要重启系统.
-
-
Mysql安装及环境配置
-
MYSQL常用命令:
# 数据库连接和基础操作命令 mysql -u root -h IP地址 -p # 根据IP地址连接数据库 show databases; # 显示所有数据库名 use 数据库名; # 进入数据库 show tables; # 显示所有表名 # 数据库属性和配置 show full processlist; # 查看当前链接主机 show variables like "max_connections"; # 查看最大连接数 set GLOBAL max_connections=300; # 设置最大连接数 show global variables like 'wait_timeout'; # 查看设置的全局等待超时时间 set global wait_timeout=300; # 设置全局超时时间
-
Linux中安装数据库,操作命令
-
卸载系统自带的MariaDB
-
查看有没有安装 mariadb
rpm -qa|grep -i mariadb
-
卸载mariadb
rpm -e --nodeps ********
-
删除my.conf
rm /etc/my.conf
-
-
卸载已安装的mysql(没安装忽略)
-
查看有没有安装mysql
rpm -qa|grep -i mysql
-
如果有,卸载
rpm -e *********
-
查看mysql服务
chkconfig --list | grep -i mysql
-
删除mysql服务
chkconfig --del mysql
-
查找mysql分散的文件
whereis mysql
-
找到后删除
rm -rf /usr/lib/mysql
-
-
官网下载安装包 ,下载地址为
https://dev.mysql.com/downloads/mysql
-
创建用户组
groupadd mysql
-
创建一个用户名为mysql的用户并加入mysql用户组
useradd -g mysql mysql
-
安装依赖
yum install perl yum -y install autoconf j yum install libaio
-
解压安装包
tar -xvf ********
-
运行命令进行安装
rpm -ivh MySQL-client-5.6.44-1.el7.x86_64.rpm rpm -ivh MySQL-devel-5.6.44-1.el7.x86_64.rpm rpm -ivh MySQL-server-5.6.44-1.el7.x86_64.rpm
-
安装完成后修改密码
-
查看服务的状态
service mysql status
-
如果是运行状态,执行关闭命令关闭mysql:
service mysql stop
-
执行以下两个命令来跳过密码登录mysql:
mysqld_safe --user=mysql --skip-grant-tables --skip-networking & mysql -u root -p
-
执行以下命令修改密码:
use mysql; select host,user,password from user; update user set password=password("root") where user='root'; quit;
-
重启mysql:
service mysql restart
-
登录mysql:
mysql -uroot -proot
-
使用mysql数据库:use mysql
use mysql
-
修改密码(第一次登录必须修改以下)
set password = password('root');
-
刷新权限:
flush privileges;
-
配置远程访问权限。
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges; quit; service mysql restart;
-
新增账户(只适用于mysql5.6)
insert into mysql.user values ('localhost', '用户名', password('密码'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, 'mysql_native_password', '', 'N'); insert into mysql.user values ('%', '用户名', password('密码'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0, 'mysql_native_password', '', 'N');
-
设置mysql开机启动:
-
查看服务:
chkconfig --list mysql
-
开启mysql服务自动启动:
chkconfig mysql on
-
-
-
-
使用容器的方式启动mysql , docker-compose.yml中配置mysql数据库,配置数据库主从
# -----------------mysql-主库---------------------- mysql-master: command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --max_allowed_packet=128M --default-authentication-plugin=mysql_native_password build: context: ./ dockerfile: db/mysql/Dockerfile environment: MYSQL_ROOT_PASSWORD: iysys01 TZ: Asia/Shanghai restart: always container_name: mysql-master iscse: mysql-master ports: - "3339:3306" # -----------------mysql-从库---------------------- mysql-slave: command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --max_allowed_packet=128M --default-authentication-plugin=mysql_native_password build: context: ./ dockerfile: db/mysql/Dockerfile environment: MYSQL_ROOT_PASSWORD: iysys TZ: Asia/Shanghai restart: always container_name: mysql-slave iscse: mysql-slave ports: - "3340:3306"
-
数据库基本信息
MASTER 账号:root 密码:iysys01 端口:3339 slave 账号:root 密码:iysys 端口:3340
-
docker容器中的mysql主从配置
-
进入到容器内部
docker exec -it mysql-master /bin/bash
-
更新容器并安装vim
apt-get update #更新 apt-get install vim #安装vim
-
数据库关闭和重启
service mysqld stop service mysql restart
-
配置Mater主数据库,进入到 /etc/mysql 目录下,打开my.cnf文件,在文件中添加如下配置
[mysqld] ## 同一局域网内注意要唯一 server-id=100 ## 开启二进制日志功能,可以随便取(关键) log-bin=mysql-bin
-
使用docker命令进入到master中,登录数据库执行命令,创建slave用户和密码
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
-
给创建的用户授予权限
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
-
配置slave数据库,进入到 /etc/mysql 目录下,打开my.cnf文件,在文件中添加如下配置
[mysqld] ## 设置server_id,注意要唯一 server-id=101 ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用 log-bin=mysql-slave-bin ## relay_log配置中继日志 relay_log=edu-mysql-relay-bin
-
连接主数据库,执行
show master status;
返回数据
File Position mysql-bin.000002 617 -
进入到slave数据库执行,master_host为主数据库容器的内部IP地址,同时将上面查询的参数配置到下面的命令中.
change master to master_host='172.19.0.12', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000002', master_log_pos= 617, master_connect_retry=30;
-
slave执行
show slave status
返回数据,注意两个值
Slave_IO_Running Slave_SQL_Running NO NO -
执行以下命令开启主从复制
start slave
执行成功后上面两个值为YES
-
Redis安装及环境配置
-
redis删除数据
redis-cli -h IP -p 端口 -a 密码 flushall
-
查询所有key, 并删除指定的key
keys *
-
删除指定的key
del key名