Ming Ming
首页
  • VUE2
  • VUE3
  • 设计模式
  • JUC
  • Nginx
  • RabbitMQ
  • Redis
  • linux
  • SQL
  • MyBatis
  • 软件使用
  • 工具类
  • 在线工具

    • githubHosts (opens new window)
    • 正则表达式 (opens new window)
    • 文件转换器 (opens new window)
    • 代码在线运行 (opens new window)
GitHub (opens new window)
首页
  • VUE2
  • VUE3
  • 设计模式
  • JUC
  • Nginx
  • RabbitMQ
  • Redis
  • linux
  • SQL
  • MyBatis
  • 软件使用
  • 工具类
  • 在线工具

    • githubHosts (opens new window)
    • 正则表达式 (opens new window)
    • 文件转换器 (opens new window)
    • 代码在线运行 (opens new window)
GitHub (opens new window)
  • linux

    • 与Linux相关的知识点
      • 一、Linux
        • 查看已开放端口
        • 杀死进程
        • centos7端口策略
        • TOP使用
      • 二、Docker
        • ①语法
        • ②使用
        • 1.安装mysql和redis
        • 2.安装elasticsearch和kibana
        • 3.安装Nginx
        • 4.安装Portainer
      • 三、MySql安装
        • 一、 安装前准备
        • 二、 安装Mysql
        • 三、注意事项
      • 四、JDK安装
  • 操作系统
  • linux
J-Ming
2021-11-05
目录

与Linux相关的知识点

# 一、Linux

# 查看已开放端口

firewall-cmd --list-ports
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)
# 查看远程端口是否开放
telnet 127.0.0.1 1025//telnet IP 端口号
#查看端口占用
netstat -tunlp | grep 端口号
ps -ef | grep nginx

# 杀死进程

# 查看正在运行的进程
netstat -tpnul
# 查看进程详情
ps aux |grep program_name 
# 杀死进程
kill -9 id

# centos7端口策略

1.修改ssh默认登录端口

 # 修改port后面的22
 vi /etc/ssh/sshd_config

2.防火墙状态

 systemctl status firewalld
 systemctl start firewalld  
 systemctl stop firewalld
 # 禁止开机自启
 systemctl disable firewalld.service

3.端口是否开放

 # 指定端口号
 firewall-cmd --query-port=6379/tcp
 # 所有开放端口
 firewall-cmd --list-port

4.添加需要开放的端口

 # 添加
 firewall-cmd --add-port=123/tcp --permanent
 # 载入
 firewall-cmd --reload

5.移除指定端口:

firewall-cmd --permanent --remove-port=123/tcp

6.说明

 # 作用域
 -zone 
 # 永久生效,没有此参数重启后失效
 --permanent 

# TOP使用

 top:启动top命令
 top -c:显示完整的命令行
 top -b:以批处理模式显示程序信息
 top -S:以累积模式显示程序信息
 top -n 2:表示更新两次后终止更新显示
 top -d 3:设置信息更新周期为3秒
 top -p 139:显示进程号为139的进程信息,CPU、内存占用率等
 top -n 10:显示更新十次后退出

默认进入top时,各进程是按照CPU的占用量来排序的。

  1. 在top基本视图中,按键盘数字“1”可以监控每个逻辑CPU的状况
  2. 默认单位是KiB,使用按键E可以切换为MiB、GiB、TiB、PiB、EiB

任务字段介绍

  • %CPU: CPU Usage,自上次屏幕更新以来任务占用的CPU时间份额,表示为总CPU时间的百分比。

  • %MEM: Memory Usage,进程使用的物理内存百分比

  • CODE:Code Size,可执行代码占用的物理内存量

  • COMMAND:Command Name or Command Line,用于显示输入的命令行或者程序名称

  • PID:Process Id,任务独立的ID,即进程ID

  • PPID:Parent Process Id,父进程ID

  • UID:User Id,任务所有者的用户ID

  • USER:User Name,用户名

  • RUSER:Real User Name,实际的用户名

  • TTY:Controlling Tty,控制终端名称

  • TIME:CPU TIME,该任务CPU总共运行的时间

  • TIME+:同TIME,其粒度更细

  • OOMa:Out of Memory Adjustment Factor,内存溢出调整机制,这个字段会被增加到当前内存溢出分数中,来决定什么任务会被杀掉,范围是-1000到+1000。

  • OOMs:Out of Memory Score,内存溢出分数,这个字段是用来选择当内存耗尽时杀掉的任务,范围是0到+1000。0的意思是绝不杀掉,1000的意思是总是杀掉。

  • S:Process Status,表示进程状态信息

    • D: 不可中断休眠
    • I:空闲
    • R:运行中
    • S:休眠
    • T:被任务控制信号停止
    • t:在跟踪期间被调试器停止
    • Z:僵尸

交互命令

命令 功能
h、? 帮助信息查看,涵盖所有的快捷键
空格、回车按键 手动刷新界面信息
q、ESC按键 退出
B 粗体显示功能
d、s 改变间隔时间
E、e 切换内存显示的单位,从KiB到EiB
g 然后输入1-4其中一个数字,选择哪种窗口(1.默认,2.任务,3.内存,4.用户)
H 进程、线程显示切换
k 输入PID信息,杀掉一个任务
Z 改变配色
P CPU 占用率大小的顺序排列进程列表
M 以内存占用率大小的顺序排列进程列表

# 二、Docker

# ①语法

#查看运行的日志看问题出在哪里
docker logs -f 容器ID

# ②使用

#https://docs.docker.com/engine/install/centos/
##Uninstall old versions
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
##SET UP THE REPOSITORY
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
##INSTALL DOCKER ENGINE
sudo yum install docker-ce docker-ce-cli containerd.io
#设置开机自启
sudo systemctl enable docker
#查看运行的日志看问题出在哪里
docker logs -f 容器ID

# 1.安装mysql和redis

docker pull mysql:5.7
#进入容器内部
docker exec -it mysql /bin/bash
#启动容器 -v为挂载文件路径
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 \
--lower_case_table_names=1
#redis
docker pull redis
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
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
#开启持久化
echo "appendonly yes"  >> /mydata/redis/conf/redis.conf

# 2.安装elasticsearch和kibana

docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2
# 创建一个保存elasticsearch配置的文件夹
mkdir -p /mydata/elasticsearch/config
# 创建一个保存elasticsearch数据的文件夹
mkdir -p /mydata/elasticsearch/data
# 允许任何远程机器访问
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
# 创建容器并启动
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

##其中elasticsearch.yml是挂载的配置文件,data是挂载的数据,plugins是es的插件,如ik,而数据挂载需要权限,需要设置data文件的权限为可读可写,需要下边的指令。
##chmod -R 777 要修改的路径
##-e "discovery.type=single-node" 设置为单节点
##特别注意:
##-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \ 测试环境下,设置ES的初始内存和最大内存,否则会占用全部内存
# 启动kibana
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 \
-d kibana:7.4.2

# 3.安装Nginx

随便启动一个nginx实例,复制出配置

docker pull nginx:1.10
docker run -p 80:80 --name nginx -d nginx:1.10

将容器内的配置文件拷贝到/mydata/nginx/conf/ 下

# 方法一
mkdir -p /mydata/nginx/html
mkdir -p /mydata/nginx/logs
mkdir -p /mydata/nginx/conf
mkdir -p /mydata/nginx/conf.d
docker cp nginx:/etc/nginx/nginx.conf  /mydata/nginx/conf/
docker cp nginx:/etc/nginx/conf.d/default.conf /mydata/nginx/conf.d
#进入容器
docker exec -it nginx /bin/bash
#由于拷贝完成后会在config中存在一个nginx文件夹,所以需要将它的内容移动到conf中
mv /mydata/nginx/conf/nginx/* /mydata/nginx/conf/
rm -rf /mydata/nginx/conf/nginx

#方法二
mkdir -p /mydata/nginx
##.代表当前目录
docker container cp nginx:/etc/nginx .
mv nginx conf
mkdir nginx
mv conf nginx/

停止和删除容器

docker stop nginx
docker rm nginx

创建新的Nginx,执行以下命令

docker run -p 80:80 --name nginx \
 -v /mydata/nginx/html:/usr/share/nginx/html \
 -v /mydata/nginx/logs:/var/log/nginx \
 -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
 -v /mydata/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
 -d nginx:1.10

设置开机启动nginx

docker update nginx --restart=always

创建“/mydata/nginx/html/index.html”文件,测试是否能够正常访问

echo '<h2>hello nginx!</h2>' >index.html

# 4.安装Portainer

docker pull portainer/portainer
docker run -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer

# 三、MySql安装

# 一、 安装前准备

1、检查是否已经安装过mysql,执行命令

[root@localhost /]# rpm -qa | grep mysql

若已安装,执行

[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

再次执行查询命令,查看是否删除

[root@localhost /]# rpm -qa | grep mysql

2、查询所有Mysql对应的文件夹

[root@localhost /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost lib]# find / -name mysql
/data/mysql
/data/mysql/mysql

删除相关目录或文件

[root@localhost /]#  rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql 

验证是否删除完毕

[root@localhost /]# whereis mysql
mysql:
[root@localhost /]# find / -name mysql
[root@localhost /]# 

3、检查mysql用户组和用户是否存在,如果没有,则创建

[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql
[root@localhost /]# 

4、从官网下载是用于Linux的Mysql安装包

下载命令:

[root@localhost /]#  wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

也可以直接到mysql官网 (opens new window)选择其他版本进行下载。

# 二、 安装Mysql

1、在执行wget命令的目录下或你的上传目录下找到Mysql安装包:mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz 执行解压命令:

[root@localhost /]#  tar xzvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
[root@localhost /]# ls
mysql-5.7.24-linux-glibc2.12-x86_64
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到**/usr/local/mysql** 执行移动命令:

[root@localhost /]# mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql

2、在**/usr/local/mysql**目录下创建data目录

[root@localhost /]# mkdir /usr/local/mysql/data

3、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

[root@localhost /]# chown -R mysql:mysql /usr/local/mysql
[root@localhost /]# chmod -R 755 /usr/local/mysql

4、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

[root@localhost /]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

补充说明:

此时可能会出现错误:cannot open shared object file:xxx

出现该问题首先检查该链接库文件有没有安装使用 命令进行核查

[root@localhost bin]# rpm -qa|grep libaio   
[root@localhost bin]# 

运行命令后发现系统中无该链接库文件

[root@localhost bin]#  yum install  libaio-devel.x86_64

安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误:cannot open shared object file:xxx

执行如下命令后,再次运行数据库的初始化命令:

[root@localhost bin]#  yum -y install numactl

5、运行初始化命令成功后,输出日志如下:

A temporary password xxxx for root@localhost:xxx

记录日志最末尾位置**root@localhost:**后的字符串xxx,此字符串为mysql管理员临时登录密码。

6、编辑配置文件my.cnf,添加配置如下

[root@localhost bin]#  vi /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1

7、启动mysql服务器

[root@localhost /]# /usr/local/mysql/support-files/mysql.server start

如果出现如下提示信息

Starting MySQL... ERROR! The server quit without updating PID file

查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令

#查询服务
ps -ef|grep mysql
ps -ef|grep mysqld
#结束进程
kill -9 PID
#启动服务
 /usr/local/mysql/support-files/mysql.server start

8、添加软连接,并重启mysql服务

[root@localhost /]#  ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
[root@localhost /]#  ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost /]#  service mysql restart

9、登录mysql,修改密码(密码为步骤5生成的临时密码)

[root@localhost /]#  mysql -u root -p
# mysql>set password for root@localhost = password('yourpass');
mysql>SET PASSWORD = PASSWORD ('your new password');
mysql>ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql>flush privileges;

10、开放远程连接

mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;

11、设置开机自动启动

# 1、将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 2、赋予可执行权限
[root@localhost /]# chmod +x /etc/init.d/mysqld
# 3、添加服务
[root@localhost /]# chkconfig --add mysqld
# 4、显示服务列表
[root@localhost /]# chkconfig --list

# 三、注意事项

  • 初始化密码忘记
# 在[mysqld]下加入跳过验证 skip-grant-tables
vi /etc/my.cnf
# 重启
service mysql restart
mysql -u root -p
# 修改密码
mysql> UPDATE mysql.user set authentication_string=password('123456Aa@') where user='root';
# 初始化密码
mysql> alter user 'root'@'localhost' identified by 'root';
# 注释或删掉 skip-grant-tables 重启mysql
  • ERROR 2002 (HY000): Can’t connect to local MySQL server through socket (opens new window) ‘/tmp/mysql.sock’ (2)
[root@localhost /]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

# 四、JDK安装

  1. 解压安装包到/usr/local/java/

    tar -xvf /home/xxx/tool/jdk-8u271-linux-x64.tar.gz -C /usr/local/java/
    
  2. 配置环境变量

    #root用户下
    vim /etc/profile
    # 普通用户下
    cd  ~
    vim .bash_profile
    
  3. 编辑环境变量

    export JAVA_HOME=/usr/local/java/jdk1.8.0_271
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JRE_HOME=$JAVA_HOME/jre
    
  4. 刷新环境变量

    source /etc/profile
    source .bash_profile
    
编辑 (opens new window)
上次更新: 2024/06/12, 02:20:36
Theme by Vdoing | Copyright © 2024-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式