Linux操作集

账号密码

本地虚拟机

Jerry1:
用户名:root
密码:root
主机端口转发:2222 -> 22
IP:192.168.56.10

Jerry2:
用户名:root
密码:root
主机端口转发:2223 -> 22
IP:

Jerry3:
用户名:root
密码:root
主机端口转发:2224 -> 22
IP:10.0.2.15

一、基础操作

1.网络与防火墙

# 查看防火墙状态
service firewalld status

# 关闭防火墙
service firewalld stop

# 安装net工具(执行ifconfig命令)
sudo yum install net-tools

# 修改网络信息 (eth0为网卡名)
vi /etc/sysconfig/network-scripts/ifcfg-eth0 

# 修改主机名
vi /etc/hostname

# 重启
reboot

# 编辑hosts文件
vim /etc/hosts
# 添加IP与主机名映射关系
# ==================================
192.168.56.11 node2
192.168.56.12 node3
# ==================================


2.文件操作


3.多台虚拟机配置不同IP

# 复制出虚拟机后,在虚拟机管理软件(VirtualBox)的网络设置中重写随机生成MAC地址并记录
# 虚拟机第一块网卡选择 网络地址转换(NET) 第二块网卡选择 仅主机(Host-Only)网络 两个网卡都需要重写生成MAC地址

# 进入虚拟机命令行界面,修改eth0配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0 
# 内容实例==================================
DEVICE="eth0"
BOOTPROTO="dhcp" # dhcp-自动获取IP  static-手动指定IP
ONBOOT="yes" # 开机自启动
TYPE="Ethernet" 
PERSISTENT_DHCLIENT="yes"
HWADDR=08:00:27:B3:79:92 # MAC地址 这里填的是 网络地址转换(NET)网卡的MAC地址
# ==================================

# 进入虚拟机命令行界面,修改eth1配置
vi /etc/sysconfig/network-scripts/ifcfg-eth1 
# 内容实例==================================
NM_CONTROLLED=yes
BOOTPROTO=static # 静态IP
ONBOOT=yes		# 开机启动
IPADDR=192.168.56.11 # IP
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.56.1 # 网关
HWADDR=08:00:27:92:D1:FD # MAC地址
DNS1=192.168.1.1 #DNS
DEVICE=eth1 # 网卡名称
PEERDNS=no
# ==================================

# 配置完成后重启网卡
service network restart

4.权限

# 进入虚拟机后
# 查看当前用户 
whoami

# 以root用户的权限执行某个xxx命令
sudo xxx

二、基础环境

1.java-1.8.0-openjdk安装(yum)

# 查看云端目前支持安装的jdk版本
yum search java|grep jdk

# 选择版本后,安装(执行以下命令会自动安装jdk相关依赖)
yum install -y java-1.8.0-openjdk

# 安装完成,验证是否安装成功
java -version

# 通过搜索java文件,查找jdk默认安装目录
find / -name 'java'

# 通过yum安装的默认路径为:/usr/lib/jvm
# 将jdk的安装路径加入到JAVA_HOME
vi /etc/profile
# 在文件最后加入:

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64/jre
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

# 修改/etc/profile之后让其生效(注意 . 之后应有一个空格)
. /etc/profile

2. java-1.8(安装包)

# 安装wget命令
yum -y install wget

# 下载安装包
wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz

# 解压(注意指定文件夹)
tar -zxvf jdk-8u201-linux-x64.tar.gz

# 移动、改名(可选)
mv jdk1.8.0_201 /devsoft/jdk1.8

# 配置环境变量
vi /etc/profile

# 末尾加入下列配置
export JAVA_HOME=/devsoft/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 刷新配置
source /etc/profile

# 查看java版本
java -version

3.MySQL(MariaDB分支)安装

# 安装mariadb-server
yum install -y mariadb-server

# 启动服务
systemctl start mariadb.service

# 如果发生错误:
# error:Job for mariadb.service failed because the control process exited with error code
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
# 输入 y 后,再次启动服务

# 添加到开机启动
systemctl enable mariadb.service

# 修改数据库管理员root密码============================
# 跳过权限验证
vi /etc/my.cnf
任意一行添加:skip-grant-tables

# 重启服务
systemctl restart mariadb.service

# 登录root 账户
mysql -u root -p
# (直接回车)

use mysql 
# 修改密码
update mysql.user set password=password('root') where user='root';
flush privileges;
quit

# 删除配置文件中的 skip-grant-tables
vi /etc/my.cnf
# 删除skip-grant-tables

# 重启服务
systemctl restart mariadb.service
# 修改数据库管理员root密码============================

# 登录
mysql -u root -p root

# 开启root 远程访问权限
MariaDB [mysql]> use mysql;
MariaDB [mysql]> select  User,authentication_string,Host from user;
# 指定root用户本机访问mysql的密码
MariaDB [mysql]> grant all privileges  on *.* to root@'localhost' identified by "当前服务器访问密码";
# % 表示指定所有IP以root用户访问时的密码
MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '远程登录密码';
# 刷新配置
MariaDB [mysql]> flush privileges;

# MariaDB修改密码
/usr/bin/mysqladmin -u root password '要修改的密码'



4.sync 命令安装

# 安装rsync
yum install rsync

# 在/usr/local/bin目录下创建 xsync
cd /usr/local/bin
touch xsync

# 编辑(注意修改主机名)
vim xsync

# ==================================
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
# 也可以采用:
# for host in hadoop{102..104};
for host in node1 node2 node3
do
    echo ====================    $host    ====================
    #3. 遍历所有目录,挨个发送
    for file in $@
    do
        #4 判断文件是否存在
        if [ -e $file ]
        then
            #5. 获取父目录
            pdir=$(cd -P $(dirname $file); pwd)
            echo pdir=$pdir
            
            #6. 获取当前文件的名称
            fname=$(basename $file)
            echo fname=$fname
            
            #7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹)
            ssh $host "mkdir -p $pdir"
            
			#8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下
            rsync -av $pdir/$fname $USER@$host:$pdir
        else
            echo $file does not exists!
        fi
    done
done
# ==================================

# 执行权限
chmod 777 xsync

5.vim命令安装

yum -y install vim*

6.ssh免密登录

# 前提:已配好 IP与主机名映射
# 生成密钥(在/home/user/.ssh目录下生成两个文件id_rsa(私钥)、id_rsa.pub(公钥))
ssh-keygen -t rsa

# 将公钥拷贝到要免密登录的目标机器上(node2为目标主机名)
ssh-copy-id node2

# 免密登录
ssh node2

三、Docker相关

1.Docker安装

# 检查内核版本,必须是3.10及以上
uname -r

# 卸载已经有的docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                  
# 安装docker依赖的包
sudo yum install -y yum-utils

# 配置docker地址
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
# 安装docker引擎ce 和docker的ce客户端
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动docker
sudo systemctl start docker

# 查看docker版本
docker -v

# 查看当前虚拟机docker安装了哪儿些镜像
sudo docker images

# docker开机自启动
sudo systemctl enable docker

# 配置docker 阿里云镜像加速
# 在阿里云的【容器镜像服务】中有镜像加速器,按照给出的命令执行即可
# centOS 镜像加速配置命令=====================================开始
# 创建目录
sudo mkdir -p /etc/docker

# 配置地址
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://zejfvcf7.mirror.aliyuncs.com"]
}
EOF

#重启后台服务
sudo systemctl daemon-reload

# 重启docker
sudo systemctl restart docker
# centOS 镜像加速配置命令=====================================结束

# 停止docker
systemctl stop docker

2.Docker的镜像操作

操作命令说明
检索docker search 关键字 (例如:docker search redis)我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。
拉取docker pull 镜像名:tag:tag是可选的,tag表示标签,多为软件的版本,默认是latest
列表docker images查看所有本地镜像
删除docker rmi image-id删除指定的本地镜像

查看docker的tags:https://hub.docker.com/

3.Docker的容器操作

软件镜像(QQ安装程序)----运行镜像----产生一个容器(正在运行的软件,运行的QQ)

3.1 安装Tomcat(其他容器同理)

# 搜索镜像
docker search tomcat

# 拉取镜像
docker pull tomcat

# 根据镜像启动容器
# 格式:docker run --name 给镜像起个名 -d 镜像名:tags
docker run --name mytomcat -d tomcat:latest

# 查看运行中的容器
docker ps  

# 停止运行中的容器
docker stop  容器的id

# 查看所有的容器
docker ps -a

# 启动容器
docker start 容器id

# 删除一个容器
docker rm 容器id
 
# 启动一个做了端口映射的tomcat
docker run -d -p 8888:8080 tomcat
#=============属性===================
-name  容器名  :给容器起名
-d:后台运行
-p: 将主机的端口映射到容器的一个端口    主机(虚拟机)端口:容器内部的端口
#=============属性===================

# 查看容器的日志
# 格式:docker logs 容器名/容器ID
docker logs container-name/container-id

更多命令参看https://docs.docker.com/engine/reference/commandline/docker/
可以参考每一个镜像的文档

3.2 Docker安装MySQL

安装和启动镜像务必参照官方文档!

# 下载mysql镜像 5.7为版本号,可替换
sudo docker pull mysql:5.7

# 启动MySQL
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
# 启动mysql命令解析:
# -p 指定端口号映射,把容器的3306映射到linux主机的3306端口,左边是linux端口,右边是容器端口
# --name 给启动的mysql指定一个名字
# -v 目录挂载,将容器内部mysql相关的文件夹(右边)挂载(快捷方式)到linux主机的目录(左边)下,日志、数据、配置。
# -e 指定root用户的密码
# -d 指定启动的版本

# 查看启动的容器
docker ps

# 进入容器的内部 命令中的mysql是容器的name ,也可以替换为容器的ID。 后面的目录不同的容器各不相同。
docker exec -it mysql /bin/bash

# 进入容器内部后 查看mysql安装目录
whereis mysql

# 进入虚拟机的mysql配置映射目录
cd /mydata/mysql/conf

# 修改mysql配置,字符编码
vi my.cnf
# 添加以下内容
# --------------------------------
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
# --------------------------------

# 重启mysql容器(添加配置后需要重启) 命令中mysql是容器名字
docker restart mysql

# mysql随docker启动自动启动,命令中mysql为镜像name
# 其他镜像同理
docker update mysql --restart=always

# 进入容器内配置文件的目录后查看配置文件
cat my.cnf
#===============================其他启动方法===============================
# 自定义配置文件位置的
# 把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面
# 改mysql的配置文件就只需要把mysql配置文件放在自定义的文件夹下(/conf/mysql)
docker run --name mysql03 -v /conf/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

# 指定mysql的一些配置参数
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
#===============================其他启动方法===============================

#===============================错误启动方法===============================
# 错误的启动:未指定密码
docker run --name mysql01 -d mysql

# 查看启动的容器(mysql退出了)
docker ps -a
#CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                           PORTS               NAMES
#42f09819908b        mysql               "docker-entrypoint.sh"   34 seconds ago      Exited (1) 33 seconds ago                            mysql01

# 查看错误日志
docker logs 42f09819908b
#error: database is uninitialized and password option is not specified 
#You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD;这个三个参数必须指定一个
#===============================错误启动方法===============================

3.3 Docker安装Redis

# 安装Redis(不指定版本就安装最新版)
docker pull redis

# 先创建一个redis的默认配置文件redis.conf
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

# 启动Redis容器(语法含义和mysql相同)
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

# 测试redis,连接redis客户端
docker exec -it redis redis-cli

# 修改redis.conf 配置文件,配置持久化
# (更多配置参考官方文档)
vi /mydata/redis/conf/redis.conf
# -------------------------------------------
appendonly yes
# -------------------------------------------

# 重启redis容器(修改配置后需要重启) redis为redis容器名
docker restart redis

# 自动启动redis
sudo docker update redis --restart=always

4.Docker部署SpringBoot项目

# SpringBoot项目打包(Jar) 并在服务器上创建该项目的Jar包存放目录(规范、也便于后续更新)
# 以projectName为自定义目录名称为例
mkdir /app/dockerfile/projectName

# 在刚创建好的目录下创建Dockerfile
vim Dockerfile
#--------------------Dockerfile内容---------------------------
# 源镜像名称,以该镜像为基础构建新镜像,如果没有
FROM openjdk:8u275-jre
# 将jar包添加到容器中并更名为app.jar
ADD meetingmanage-0.0.1-SNAPSHOT.jar meetingmanage.jar
# 运行jar包
RUN bash -c 'touch /meetingmanage.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/meetingmanage.jar"]
#---------------------Dockerfile内容--------------------------

# 编译镜像(在jar包所在目录下执行)
docker build -t zhangxy/meetingmanage .

# 启动容器
docker run -d -p 9002:80 --name=meetingmanage_zhangxy_9002 zhangxy/meetingmanage

四、BUG处理

1.awt异常

在这里插入图片描述

# 需要在tomcat的bin下的启动脚本cataliina.sh上加配置
CATALINA_OPTS=-Djava.awt.headless=true
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值