LINUX基础操作梳理

适用系统:CENTOS7

centos + mysql + java + git + nginx + python  +js 

LINUX安装 

安装centos的几种方式

1.双系统安装  WIN+LINUX

2.单独安装LINUX

3.通过虚拟化软件安装LINUX(windows+vmware+linux)

  省事、省钱、vmware可以虚拟化多个操作系统、vmwareworkstation、vmware esxi/vsphere

4.物理机 + vmware + docker

5.kvm

6.物理机 + docker
6种安装方式

通过虚拟化软件安装linux的步骤。

1.下载centos镜像

https://www.centos.org/download/
http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso
https://opsx.alibaba.com/mirror#阿里云官方镜像站

2.下载安装vmware虚拟机

(Windows用户)VMware Workstation是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。

下载激活地址:http://www.zdfans.com/html/5928.html

安装虚拟机。教程网上很多:https://https://www.cnblogs.com/yanjidong/articles/13184937.html

3.在虚拟机上安装centos7

把下载好的centos7镜像在虚拟机上进行安装,很简单。https://https://www.cnblogs.com/yanjidong/articles/13184937.html

4.安装完成,重启后,输入root账号和密码,进入系统。
安装步骤

忘记root密码怎么办?

1.重启 Linux 系统主机并出现引导界面时,按下键盘上的 e 键进入内核编辑界面

2.在 linux16 参数这行的最后面追加“rd.break”参数,然后按下 Ctrl + X 组合键来运行修 改过的内核程序

3.大约 30 秒过后,进入到系统的紧急求援模式

4.依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码来登录Linux 系统了

mount -o remount,rw /sysroot

chroot /sysroot

passwd

touch /.autorelabel

exit reboot

5.图文详细介绍 https://www.cnblogs.com/yanjidong/articles/13184937.html
root密码重置步骤

 连接网络

1.上网方式选择桥接

2.在网络配置文件中写入静态ip地址,网关,掩码,dns

  1.在windows中用ipconfig -all 查看主机上网的网络配置,记下ip网段,网关,掩码

  2.虚拟机linux中打开vim /etc/sysconfig/network-scripts/ifcfg-eth0(或者是其他名字ens33),进行网络配置(根据上面查到的信息)

3.重启网络,检查网络是否可用

  systmectl restart network  # centos7中启用systemctl,7以下使用service

  ip addr  # 检查ip等网络配置

  ping baidu.com  # 检查是否可用

网络配置具体内容,请看下面详细介绍。
配置网络

通过xshell远程管理linux

在windows终端安装xshell,连接虚拟机上的linux服务器,进行管理。(方便,平时在工作一般也是这种管理模式)
ssh root@ip地址   

linux文件目录结构

1.以根‘/’目录开始

2.linux以‘/’分割目录,windows以反斜杠‘\’分割目录     #×  斜杠和反斜杠

3.目录分类

/root  超级用户的家目录

/home/yanjidog  普通用的家目录

/etc  存放软件配置文件,一般通过yum,pip安装的软件,配置文件一般都在/etc下

  /etc/my.conf   mysql的配置文件

  /etc/redis.conf  redis的配置文件

/sbin   存放可执行命令文件

/bin   存放可执行命令文件

/usr/local/bin    存放可执行命令 文件

/opt    存放额外安装的软件目录

  比如,安装nginux,python3.8,正规的存放目录是/opt/python38|nginx1-12

/tmp      存放临时文件,不重要的文件,文件夹

/var       存放系统日志文件居多
目录分类详情

4.目录中文件颜色的意思

绿色:代表可执行文件

蓝色:代表文件夹

白色:代表普通文件

5.linux文件、文件夹操作命令

#以树状图显示文档目录结构

tree  /tmp

#查看磁盘使用情况

1.查看分区和磁盘

lsblk

2.查看空间使用情况

df -h

3.分区工具查看分区信息

fdisk -l

4.查看分区

cfdisk /dev/sda

5.查看内存大小

free -h

#对目录的操作

touch  创建普通文件

mkdir  创建文件夹

  -p参数:递归创建文件夹

  mkdir -p /tmp/1/2/3

rm  删除文件或文件夹

rmdir  删除空文件夹

mv 旧文件名   新文件名  :改名

cat  查看文件内容

ls  查看文件夹内容

  ls -l

  ll

pwd   打印当前目录路径

6.其他说明

文件夹下 以 .开头的文件,默认是隐藏文件

.      一个点,代表当前工作目录

..     两个点代表上一级目录

-   上一次工作目录
~     代表当前登录的用户的家目录,root是/root   ,普通是/home/yanjidong
文件目录操作

补充:cp 复制

cp xxx /tmp

cp -r 递归,复制目录以及目录的子孙后代

cp -p 复制文件,保持文件属性不变,可以用stat

linux的环境变量

通过echo命令打印出变量的值

echo $PATH

linux环境变量通过冒号分割区分

/usr/local/sbin:/usr/bin:/opt/python38:

linux通过which找到命令的path变量

which python3

linux的路径概念

#绝对路径

  在任何位置都可以通过绝对路径找到文件  :  /tmp/1/2/a.txt

#相对路径

  以当前工作目录为参考点,找到某个文件

  当你自目录1中时 : 1/2/a.txt

  ./first.py   # ./ 代表当前工作路径   . 是当前目录   / 是分隔符

输入/输出 重定向符号

1.>>  追加重定向,把文字追加到文件的结尾,理解为with open 的a模式

2.>    重定向符号,清空源文件所有内容,然后把文字覆盖到文件末尾,理解为w模式

3.< 输入重定向,把命令信息,写入到前面的命令

4.<<   将输入结果输入重定向

echo "python" > /tmp/a.txt

echo "yanjidong" >> /tmp/a.txt

cat >>/tmp/a.txt << AAA

#把命令执行的结果信息,写入到文件中

ip addr > /tmp/a.txt

echo命令

用于在终端输出字符串或变量提取后的值,echo [字符串|$变量]

1.默认把内容显示到终端

echo "python good"

2.写入到文件

echo "python good" > /tmp/a.txt

3.去除打印PATH值

echo $PATH

Linux提供的管道符“|”

两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入。

常见用法:

#检查python程序是否启动

ps -ef | grep python

#找到/tmp目录下所有txt文件

ls /tmp | grep .txt

#检查nginx的端口是否存活

netstat -tunlp | grep nginx

常用的其他命令

head、tail命令

head显示文件前几行,默认前10行

tail显示文件后几行,默认后10行

#查看前两行

head -2 /tmp/a.txt

#查看后两行

tail -2 /tmp/a.txt

#持续刷新显示

tail -f xx.log

#显示文件10-30行

head -30 /tmp/a.txt |tail -21

tail -f /var/log/mysql.log  常用于 对日志文件监控,检测,日志实时写入的信息
head、tail命令

sed命令

sed命令和gerp一样,用于对文本过滤,sed还可以修改文本。(比较好用)

sed命令和gerp一样,用于对文本过滤,sed还可以修改文本。

s 替换指令

d 删除指令

g 全局替换

#找到/tmp/pwd.txt文件中所有的root字符串,全局替换为AAA,但是不会写入到文件,只会返回替换结果

sed   -i  's/root/AAA/g' /tmp/pwd.txt  

sed 参数

-i 编辑,写入到文件,不会返回命令执行结果,直接生效

#找到26行,删除,  

sed -i  '26d' /tmp/pwd.txt 

#删除文件空白行

sed -i '/^$/d'  filename.txt 
sed替换删除等用法

查找命令的绝对路径

which  rm

whereis   xxx

scp命令

Linux scp命令用于Linux之间复制文件和目录。

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

#传输本地文件到远程地址

scp 本地文件  远程用户名@远程ip:远程文件夹/

scp 本地文件  远程用户名@远程ip:远程文件夹/远程文件名

scp -r  本地文件夹  远程用户名@远程ip:远程文件夹/

scp -r /tmp/a     root@ip : /home/a

#复制远程文件到本地

scp root@ip : /home/a.txt /tmp/a.txt

scp -r root@ip : /home/a     /home/
scp远程传输文件

du命令

统计文件,文件夹大小

面试题:请写出如何统计 /var/log/django/ 文件夹的大小

du  -sh /var/log/django 
查看文件夹大小

top命令

top 命令用于动态地监视进程活动与系统负载等信息

时间同步的命令

ntpdate -u ntp.aliyun.com  和阿里云同步

//以系统时间为基准,修改硬件时间

[root@a_python ~ 10:29:07]#hwclock -w

文本编辑器 Vim/Vi  (三个模式:命令模式、输入模式、底线命令模式)

1、打开一个文本文件

vim filename  //没有时会新建一个文件

2、刚进入编辑器是命令模式,输入i,a,o进入输入模式。编辑模式下的快捷键如下:

i,a,o   插入光标位置
yy 拷贝光标所在行
dd 删除光标所在行
D     删除当前光标到行尾的内容
dG    删除当前行到文档尾部的内容
p     粘贴yy所复制的内容
x   删除光标所在的字符
u     撤销上一步的操作
3yy    拷贝光标所在的3行
5dd    删除光标所在5行

3、编辑完成后,esc返回命令模式。在命令模式下输入冒号(英文的:),就进入了底线命令模式,在底线命令模式下可以输入单个或多个字符的命令,常用命令有:

:q!     强制退出
:wq!    强制写入退出
:set nu 显示行号
:数字  调到数字那行

随时按下esc可以退出底线命令模式

4、vim的常用按键

 1 移动:
 2 
 3 w(e)  移动光标到下一个单词
 4 b    移动到光标上一个单词
 5 
 6 数字0  移动到本行开头
 7 $    移动光标到本行结尾
 8 
 9 H    移动光标到屏幕首行
10 M    移动到光标到屏幕的中间一行
11 L    移动光标到屏幕的尾行
12 gg    移动光标到文档的首行
13 G    移动光标到文档尾行
14 
15 ctrl + f  下一页
16 ctrl + b  上一页
17 
18 `.  移动光标到上一次的修改行
19 
20 查找:
21 
22 /chaoge     在整篇文档中搜索chaoge字符串,向下查找
23 ?chaoge     在整篇文档中搜索chaoge字符串,向上查找
24 
25 *        查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
26 #        查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处
27 
28 gd        找到光标所在单词匹配的单词,并停留在非注释的第一个匹配上
29 
30 %    找到括号的另一半!!
31 
32 移动光标的方法
33 h 或 向左箭头键(←)    光标向左移动一个字符
34 j 或 向下箭头键(↓)    光标向下移动一个字符
35 k 或 向上箭头键(↑)    光标向上移动一个字符
36 l 或 向右箭头键(→)    光标向右移动一个字符
37 
38 向下移动5行      5j
39 向右移动10字符    10l
40 
41 n(space)    按下数字n,例如10,然后按下空格,光标会向右移动10个字符
View Code

网络配置

1、配置基础网络环境时的基础命令,如果你电脑上没有 ifconfig

yum install net-tools -y

  • ifconfig  查询、设置网卡和ip等参数
    • ifconfig 显示up状态的信息
    • ifconfig -a 显示所有状态的信息
    • ifconfig eth0 192.168.120.56 netmask 255.255.255.0 临时添加网卡eth0的地址
  • ifup,ifdown  简单的方式启动关闭网络
    • 这两个命令其实调用
      • /etc/init.d/network start
      • /etc/init.d/network stop
      • /etc/init.d/network restart
  • ip 
    • ip addr 显示所有端口信息
    • ip -s link ls eth0 显示指定网卡信息
    • ip addr add 192.168.2.1/24 dev eht0 临时添加网卡eth0的地址

2、装好linux后,需要用xshell进行远程连接,那就要获取ip地址,但有时候网卡没有启动,或没有配置地址。

#编辑网卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0

#修改配置参数,比较重要的两个参数

BOOTPROTO={static|none|dhcp|bootp}   一般使用static或者dhcp,想用xshell就选择static

ONBOOT=yes  开机时自动激活此网络接口

一个网卡配置文件示例如下:
TYPE=Ethernet #网卡类型 DEVICE=eth0 #网卡接口名称 ONBOOT=yes #系统启动时是否自动加载 BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议 IPADDR=192.168.1.11 #网卡IP地址 NETMASK=255.255.255.0 #网卡网络地址 GATEWAY=192.168.1.1 #网卡网关地址 DNS1=10.203.104.41 #网卡DNS地址 HWADDR=00:0C:29:13:5D:74 #网卡设备MAC地址 BROADCAST=192.168.1.255 #网卡广播地址

3、查看DNS配置

在vim /etc/sysconfig/network-scripts/ifcfg-eth0配置完dns后,在/etc/resolv.conf中看到。

#配置文件
cat /etc/resolv.conf
#dns服务器地址
nameserver 114.114.114.114
#通过nslookup解析域名
nslookup baidu.com

本地强制dns解析文件/etc/hosts (windows系统:windows/system32/driver/etc/hosts)

指定本地解析:
/etc/hosts

127.0.0.0         cnblogs.com/yanjidong

 查看系统版本信息

#查看系统版本信息
cat /etc/redhat=release
#查看内核版本
uname -r
#查看系统多少位
uname -m 
#查看内和所有信息
uname -a
#更改主机名
hostnamectl set-hostname yanjidong's host

LINUX用户与权限

# 超级用户是root,  uid=0;gid=0,通过id命令查看
id root
#普通用户常见
useradd yanjidong
#更改用户密码
passwd yanjidong
passwd root
#用户通过ssh登录系统
ssh yanjidong@10.10.1.1
#切换用户,-号很重要,意味着完全切换,即环境变量信息也变更为新用户的
su - username
su - root
#用户信息
/etc/passwd    账号信息
/etc/shadow    密码信息
/etc/group       用户组信息
#删除用户
userdel -f 强制删除
userdel -r  同时删除用户以及家目录
userdel -rf yanjidong
用户相关
#查看文件、文件夹所有权限
ls -l   /yanjidong/*
drwxr--r--    1    root    root    167883  1.gif
#文件、文件夹的用户分类,分为三种:user(属主)  group(属组)  other(其他人)
d(文件,文件夹,链接)               rwx(读写执行)                r--                  r--
文件类型                              属主的权限                 属组的权限        其他人的权限
#rwx 对应的8进制权限数字
r   4
w  2
x   1

777(rwxrwxrwx) : 代表 三个分类都是最大权限
文件和文件夹权限查看
#更改文件用户或用户组
chown 用户名 file
chgrp -R 组名 文件名|目录名
#更改文件权限,-R为递归遍历文件夹
chmod -R 777 /tmp

 LINUX中的快捷方式-软连接

#软连接命令
ln -s 目标文件未见   软连接位置
ln -s /opt/python3.8/bin/python3.8    /usr/bin/python3

LINUX的命令提示符如何修改

#用PS1变量控制命令提示符。临时更改,重启丢失
PS1='[\u@\h \W]\$'    \u:当前账户  \h:主机名  \w:完整路径 \W:相对路径 \t:时间
#永久更改,每次启动配置
vim /etc/profile   在最底行写入变量赋值
PS1='[\u@\h \w \t]\$'

文件解压缩

#tar解压缩命令
tar -zxvf Python-3.4.tgz    #解压
tar -czvf myfile.txt.tar.gz  myfile.txt   #压缩

查看网络端口

#查看网络端口
netstat -tunlp | grep 3306  #过滤出需要的3306端口
netstat -tunlp | grep 8000

进程操作

 1 #查看杀死进程的流程
 2 1.通过ps -ef找到你想杀死的进程,然后观察pid号
 3 ps -ef  | grep mysql
 4 用户名:root   pid:33588
 5 2.通过kill命令杀死pid
 6 kill 33588
 7 3.如果遇到杀不死的用-9 强制杀死
 8 kill -9 33588
 9 #一次性杀死多个有依赖的进程
10 ps -ef | grep nginx
11 killall nginx
查看、杀死进程

 查看某个网络进程的目录路径

netstat -nlp     # -t 只列出tcp

根据看到的pid号操作。系统会用PID号在/proc下建立一个对应的目录

cd /proc/174746

ll   #查看目录内文件详情   找到exe  对应的进程目录

LINUX的帮助手册

man ls
man kill

防火墙操作

selinux: linux内置防火墙

关闭selinux

 1 1.通过修改配置文件,重启机器,可以永久关闭selinux防火墙
 2 
 3 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
 4 
 5 2.临时关闭selinux,重启后失效
 6 
 7   1.先获取selinux状态
 8 
 9   getenforce
10 
11   2.临时关闭selinux
12 
13   setenforce 0
View Code

iptables: linux软件防火墙

关闭iptables

 1 1.查看iptables规则
 2 
 3   iptables -L
 4 
 5   2.清空iptables规则
 6 
 7   iptables -F
 8 
 9   3.关闭iptables服务
10 
11   systemctl stop firewalld
View Code

firewalld: linux软件防火墙,centos7默认已经使用firewall作为防火墙了

关闭firewalld防火墙

systemctl status firewalld  #查看防火墙状态

systemctl stop firewalld  #关闭防火墙

systemctl disable firewalld   #关闭防火墙开机启动

systemctl is-enabled firewalld.service   #检查防火墙是否启动
View Code

 linux中文设置

1.查看linux当前字符集

echo $LANG    # 变量前加$是打印这个变量的值

2.永久生效,更改字符集,写入配置文件

vim /etc/locale.conf

LANG="zh_CN.UTF-8"

3.使得配置文件生效

source /etc/locale.conf

4.保证客户端软件编码和linux一致

xshell   utf-8

centos  utf-8
中文字符集设置

linux的计划任务crontab

 1 语法格式:
 2 
 3 *                      *        *         *           *                command
 4 
 5 1,2                   *        *         *          *           /usr/bin/rm -rf   /tmp/1.text
 6 
 7 分钟(0-59)    小时   日期    月份   星期             命令
 8 
 9 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
10 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,911 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,612 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
13 
14 例子:
15 
16 #每周一到周五的凌晨1点,清空/tmp目录的所有文件
17 
18 0 1 * * 1-5 /usr/bin/rm -rf /tmp/* 必须用绝对路径
19 
20 #每月的1,10,22日的4:45重启nginx
21 * * * * * 
22 分 时 日 月 周 
23 
24 45 4 1,10,22 * * /opt/nginx/sbin/nginx -s reload
25 
26 练习这个crontab规则,写入到crontab文件中
27 通过命令 crontab -e 打开文件
语法格式

软件包安装卸载管理 

1.rpm命令管理,需要手动处理依赖关系。安装小软件,可以选择rpm安装

1.下载rpm包

  wget https://rpmfind.net/......

 2.安装rpm包

  rpm -ivh lrzsz-0.12.20.rpm

 3.rpm常用命令

  安装软件的命令格式 rpm -ivh filename.rpm # i表示安装 v显示详细过程 h以进度条显示
  升级软件的命令格式 rpm -Uvh filename.rpm
  卸载软件的命令格式 rpm -e filename.rpm
  查询软件描述信息的命令格式 rpm -qpi filename.rpm
  列出软件文件信息的命令格式 rpm -qpl filename.rpm
  查询文件属于哪个 RPM 的命令格式   rpm -qf filename
rpm使用

2.通过yum自动安装软件,自动处理依赖关系,联网情况下最方便。

yum安装软件,其实就是在线搜索一个rpm包,然后自动帮你rpm -ivh name.rpm

yum install mysql 

yum install mysql -y

yum源的配置

  1.知道yum源的老家在哪里?

    cd /etc/yum.repos.d/

    ls  看一下有哪些yum源文件

    以.repo后缀的就是yum源文件

    repo文件可以使用vim编辑
yum源文件位置

   2.我们要更改linux的yum源为alibaba的yum源仓库

1.找到阿里巴巴的yum网站
    https://opsx.alibaba.com/mirror
    2.找到centos标签,点击 “帮助”
    3.找到centos7相关,找到以下命令

    wget -0 /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    4.在linux上执行命令,下载阿里巴巴的yum源文件
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    5.清空原本yum的缓存
    yum clean all
    6.安装linux的额外仓库源,也就是epel源,继续在阿里云源上找,找到epel哪个标签
    7.安装找到的epel源,在linux上输入命令
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    8.生成yum的缓存,便于之后加速下载
    yum makecache
更改源仓库 .repo文件

 

3.下载源码,编译安装,以及程序的启动配置

 1 1.首选解决软件包依赖问题
 2 
 3 yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
 4 
 5 2.下载软件的源代码
 6 
 7 如 python3.8.tgz
 8 
 9 3.解压缩软件源代码,切换进入源代码目录
10 
11 4. /configure释放变异文件,make 编译,make install 编译安装。也可以make && make install
12 
13 例子:编译安装python3.8
14 
15 1.解决依赖关系
16 
17 yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
18 
19 2.下载python源代码
20 
21 wget https://www.python.org/ftp/python/3.8/Python-3.4.7.tar.xz
22 
23 3.解压缩pthon源代码
24 
25 xz -d python-3.8.tar.xz
26 
27 tar -xf pthon-3.8.tar
28 
29 4.切换进入python源代码目录
30 
31 cd /opt/python-3.8
32 
33 5.开始编译安装,释放编译文件
34 
35 ./configure --prefix=/opt/python38/   #目前暂时还不会生成这个文件夹
36 
37 6.开始编译,编译安装
38 
39 make && make install  # 这两部走完,才会生成创建上面的文件夹
40 
41 ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
42 #这个confiure脚本执行后,会生成一个Makefile文件
43 
44 make是用来编译的,它从Makefile中读取指令,然后编译。
45 
46 make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
47 
48 7.检查你自己制定的安装路径, /opt/python38/
49 
50 查看pthon38下的bin目录,python3的可执行文件都在这
51 
52 8.配置软连接,快捷启动。或者直接把pthon38/bin写入环境变量(如下,尽量用这一步)
53 
54 ln -s /opt/python38/bin/python3 /usr/bin/python3
55 ln -s /opt/python38/bin/pip3 /usr/bin/pip3
56 
57 9.配置系统环境变量,配置PATH,加入python3的目录
58 
59 #尽量用这一步
60 
61 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python347/bin/
62 #这一步尽量别用了
63 PATH=$PATH:/opt/python347/bin/
64 
65 #配置环境变量需谨慎,如果配错了,你的其他命令也会丢失!
66 
67 10.写入个人配置文件,永久生效/etc/profile
68 
69 vim /etc/profile  #编辑个人配置文件,写入PATH
70 
71 PATH=$PATH:/opt/python38/bin/
72 
73 source /etc/profile  #读取一下配置文件,生效配置。
编译安装及程序启动配置

 

posted on 2020-06-23 15:09  东门乱弹琴  阅读(107)  评论(0编辑  收藏  举报

导航