目录
压缩和解压命令 gzip/guzip zip/unzip tar
yum -y install与yum install有什么不同
Linux的基本概念
- Linux是一个操作系统
- Linux是免费的
- 和windows相比安全性比较好,系统稳定性强,windows容易蓝屏,且需要定期的清理磁盘
- Unix是收费的,几个很有中国特色的老哥,怀着好东西要大家分享的高尚的情怀弄了一套Linux出来。
Linux的安装的注意事项
(这里就不赘述Linux的安装过程,网络上有很多,所以只是谈一些注意的事项)
【情况】我这里每次重启电脑之类的操作,导致了虚拟机的ip总是发生变化,需要频繁的修改xshell
配置IP
【解决】
- 查看自己的网卡名 通常的执行ifconfig命令之后eth0网卡的第一个inet就是自己的IP,但是我的不是eth0是ens33
命令:ifconfig - 找到配置网卡信息文件的目录
命令: cd /etc/sysconfig/network-scripts/ - 配置网卡IP地址的配置文件
命令: ifcfg-eth0 - 编辑ifcfg-eth0文件
(1)ONBOOT=yes 开启网卡功能
(2)BOOTPROTO=static 将动态IP修改成静态IP
(3)IPADDR=192.168.0.208 配置IP地址
(4)NETMASK=255.255.255.0 配置子网掩码
(5)GATEWAY=192.168.0.1 配置网关 - 重启网卡
命令: service network restart
Linux的命令
安装软件的三种方式
rpm方式安装
需要去下载相应的rpm格式的安装包xxxx.rpm
rpm [参数] rpm包
-i 安装
-U 更新(很少用)
-e 卸载
-v 显示安装信息
-h 显示安装进度
例:
rpm -ivh mysql.rpm 安装mysql并显示安装进度和安装信息
rpm -e mysql.rpm 卸载mysql,只适用于rpm包安装的软件
rpm -e mysql.rpm --nodeps,--nodeps可以忽略依赖关系强制卸载
rpm -ivh --nodeps mysql.rpm --nodeps可以忽略依赖关系强制安装
rpm -ivh --replacefiles mysql.rpm 当系统内已存在相同安装包时使用--replacefiles可替换已存在的安装包
rpm -qa 可用来查看已安装的rpm包,例:
rpm -qa|grep httpd 查看apache的安装包
yum方式的安装
yum方式安装需要连接yum源,此时需要你的linux能联网或者挂载系统光盘(系统光盘自带yum源)
yum常用方法:
yum install mysql 安装mysql
yum -y install mysql -y参数表示在安装过程中所有需要询问的选项都选yes
yum list|grep mysql 显示可安装的mysql列表
yum update mysqld 更新mysql
yum list installed|grep mysql 查询是否安装了mysql
yum remove mysql 卸载yum安装的mysql
源码方式的安装
configure命令,生成Makefile文件。
make clean;make命令将源码编译成二进制文件。
make install命令将上一步编译好的二进制文件安装到指定的目录中去。
配置环境变量
有些开发软件安装之后需要配置环境变量
环境变量文件在/etc下的profile文件,我们可以用vim profile命令来编辑该文件,将变量添加进去
一般需要将安装文件的bin目录加入path中,可在profile中加入下面一行代码
【例】安装jdk
1.在 /usr/ 目录下创建 java文件夹mkdir /usr/java
2.将压缩包 jdk-8u191-linux-x64.tar.gz 复制到该目录,并解压tar -zxvf jdk-8u191-linux-x64.tar.gz
3.修改环境变量
(1).修改 /etc/profile 文件vim /etc/profile
(2).在文件后面添加 java 的配置并保存,如下
JAVA_HOME=/usr/java/jdk1.8.0_191
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
$PATH是取系统原来自带的环境变量,必须要加
修改完文件后:wq保存退出,输入下面的指令使环境变量立即生效
两个变量之间以:分隔不是;分隔
(3).让配置生效source /etc/profile
(4).验证配置信息
echo $JAVA_HOME
echo $PATH
echo $CLASSPATH
(5).测试
查看java版本 java -version
,显示如下信息,配置成功
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
【其他安装】
#set mysql environment
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:${MYSQL_HOME}/bin
#set java environment
export JAVA_HOME=/usr/local/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#set zookeeper enviroment
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:${ZOOKEEPER_HOME}/bin
#set hadoop environment
export HADOOP_HOME=/usr/local/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#set hive environment
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
#set sqoop environment
export SQOOP_HOME=/usr/local/sqoop_1.4.6_hadoop_2.0.4_alpha
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$SQOOP_HOME/bin
#set storm environment
export STORM_HOME=/usr/local/storm
export PATH=$PATH:$STORM_HOME/bin
#set kafka environment
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
#set scala environment
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
#set spark environment
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
#set elasticsearch environment
export ES_HOME=/home/centos/elasticsearch
export PATH=$PATH:$ES_HOME/bin
cd命令
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. 返回上两级目录;
cd / 进入根目录
新建文件夹和文件:mkdir touch
mkdir 创建文件夹
mkdir [文件夹名称] 直接跟文件夹名,可在当前目录下创建文件夹
mkdir /usr/local/lby 可跟路径
mkdir -p /usr/test/test01 假如lam不存在,需要用-p才可以创建该文件夹
touch 新建文件
touch [文件名] 可直接跟文件名在当前目录下创建新的文件
cat/less/more/tail等文件查看命令
-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。
-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线; +<数字>:从指定数字的行开始显示。
按Space键:显示文本的下一屏内容。
按Enier键:只显示文本的下一行内容。
按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键:显示帮助屏,该屏上有相关的帮助信息。
按B键:显示上一屏内容。
按Q键:退出rnore命令。
--retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
-c或——bytes=:输出文件尾部的N(N为整数)个字节内容;
-f或;--follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“--retry"连用时功能相同;
-n或——line=:输出文件的尾部N(N位数字)行内容。
--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名;
一般tail命令最常用的-n和-f,例:
tail filename 读取filename最后10行内容
tail -f filename 实时动态读取filename最后10行内容
tail -20f filename 实时动态读取filename最后20行内容
cat和less及more指令相似,cat是一次性读取所有内容,文件内容较多时速度较慢。less与more的区别在于:less可以前后翻页查看,more只能向前翻页查看。
tail则用于实时获取log信息,从后向前读取内容
上述四种命令均可跟grep搭配使用cat/less/tail |grep mysql
查看文件大小的命令 du/df
du -sh * 显示当前目录下所有文件的大小
du -sh [文件名] filename 显示该文件大小
du -sh 显示当前目录所占空间大小
-s或 仅显示总计,只列出最后加总的值。
-h或 以K,M,G为单位,提高信息的可读性。
df 显示磁盘占用信息,直接df默认一k为单位
df -lh 显示本地系统的占用信息,以K,M,G为单位
文本编辑器 vi
vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。
Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
vi编辑器支持编辑模式和命令模式
- 编辑模式下可以完成文本的编辑功能:使用“esc”键或者“ctrl+7”快捷键
- 命令模式下可以完成对文件的操作命令:使用“A”、“a”、“O”、“o”、“I”、“i”键。
【以下命令均为命令模式的操作】
- 命令模式下按 u 是撤销键
- 显示行号 :set nu 【注】有冒号
- 不显示行号 :set nonu 【注】有冒号
- Ctrl+u:向文件首翻半屏;
- Ctrl+d:向文件尾翻半屏;
- Ctrl+f:向文件尾翻一屏;
- Ctrl+b:向文件首翻一屏;
- :行号 光标跳转到指定行的行首; 【注】有冒号
- :$ 光标跳转到最后一行的行首;【注】有冒号
- D 删除从当前光标到光标所在行尾的全部字符;【注】区分大小写
- dd 删除光标行正行内容 ,相当于eclipse的 “ctrl + d”
- ndd 向后删除包括当前行的n行
- /字符串 文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示
- ?name 文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示
- :q 在命令模式下,执行退出vi操作 【注】有冒号
- :wq 在命令模式下,执行存盘退出操作,保存并退出
- :q! 在命令模式下,执行强制退出vi操作
- :s/test01/test02/ 替换当前行第一个 test01为 test02
- :s/test01/test02/g 替换当前行所有 test01为 test02
Esc:从编辑模式切换到命令模式;
ZZ:命令模式下保存当前文件所做的修改后退出vi;
x或X:删除一个字符,x删除光标后的,而X删除光标前的;
nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
a:在当前字符后添加文本;
A:在行末添加文本;
i:在当前字符前插入文本;
I:在行首插入文本;
o:在当前行后面插入一空行;
O:在当前行前面插入一空行;
:w:在命令模式下,执行存盘操作;
:w!:在命令模式下,执行强制存盘操作;
:e文件名:在命令模式下,打开并编辑指定名称的文件;
:n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
:f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
:1,3y 复制第一行到第三行
:1,3d 删除第一行到第三行
:1,3s/str/str_new/g 替换第一行到第三行中的字符串
:1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符
:1,3 g/str /d 删除第一行到第三行中含有这个字符串的行
移动文件及文件夹 mv/cp /scp
mv:剪切、重命名
cp:复制文件
scp:远程拷贝
mv 类似于windows下的剪切
mv aaa /etc/udev 讲aaa移动至/etc/udev目录下
mv /opt/lampp /etc/udev 将/opt目录下的lampp移动至/etc/udev目录下
mv -r aaa /etc/udev 将aaa文件夹递归移动至/etc/udev目录下,不加-r会出错
mv aaa bbb 将aaa改名为bbb
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-s:对源文件建立符号连接,而非复制文件;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
用法与mv基本相似
cp 路径1 路径2
重定向 >
cat aaa.txt > bbb.txt 将aaa的内容写入bbb中,覆盖写入
cat aaa.txt >> bbb.txt 讲aaa的内容追加写入bbb中,不覆盖原来内容
> bbb.txt 将bbb清空
权限管理 chmod
chmod -R 给文件夹下所有的文件赋权限,递归处理
chmod u+x,g+w f01 //为文件f01设置自己可以执行,组员可以写入的权限 chmod u=rwx,g=rw,o=r f01 给所属用户添加读写执行权限,给组添加读写权限,给其他用户添加读权限
chmod 764 f01 以数字的方式赋予所属用户/用户组/其他用户权限r=4,w=2,x=1
chmod a+x f01 //对文件f01的u,g,o都设置可执行属性,a代表all
删除命令 rm
一般都用rm -rf aaa
-r 递归删除
-f 强制删除,不询问
rm使用时需要谨慎,因为是强制删除,所以可能删除到重要的东西
用户/用户组
group | groupadd abcd//添加组 cat /etc/group//查看当前系统所有的组 chgrp abcd b.txt//将b.txt归属到abcd组 |
user | useradd abcd -g abcd//创建一个用户归属于abcd组 passwd abcd: 输入用户abcd的登录密码 useradd test //创建一个test用户 cat /etc/passwd //查看系统所有用户 userdel abcd //删除abcd用户 |
su abcd | 切换用户 |
firewalld | yum install firewalld //在线安全firewalld service firewalld status //查看防火墙状态 service firewalld stop //关闭防火墙 |
查看服务
netstat -nlpt|grep 80 查看该端口号是否被占用
free -m //查看LINUX内存剩余容量
ps可以查看具体的进程信息,一般与管道符连接其他命令使用,如:grep(gre是过滤)
ps常用参数-ef/-aux,一般最常用还是-ef,例:ps -ef|grep nginx查询nginx进程
top也可查看进程信息,而且是动态显示
whoami 查看当前登陆用户
who 查看多少用户在使用系统
date查看系统时间,可跟时间格式使用
cal查看日历,可跟年份,查看指定的年份
chkconfig --list #查看系统服务启动
chkconfig iptables on #开机启动该服务
chkconfig iptables off #开机不启动该服务
service iptables start #启动该服务
service iptables restart #重启启该服务
ps -ef|grep mysql|grep -v grep|awk '{print $2}'ps -ef|grep mysql 是查询mysql服务的进程
|后的grep -v grep 是匹配不包含grep的行
awk是取查询结果的第几列,awk '{print $2}'则是取第二列的值
grep 无参数则显示匹配的行
-c 显示匹配的行数
-v 显示不匹配的行
杀掉进程 kill 命令
kill最常用的参数是-9,用法:kill -9 进程号 即可强制杀掉该进程
统计命令 wc
常用的参数是 -l 用法:wc -l ,例:
ps -ef|grep mysql|wc -l 统计查询出的mysql进程的行数
查找命令 find/locate/whereis/which
find -name 后跟文件名,可查看文件所在目录,可跟user,查看属于user的文件
find -name filename 查找filename所在目录
find -name name* 查找开头为name的文件所在目录
find -name *name 查找结尾为name的文件所在目录
find -name *name* 查找包含name字符串的文件所在目录
find -user faith 查看用户faith的文件
locate用法与find基本相似,只是locate搜索速度较快些,locate一般系统不会自带,需要安装,可用yum安装
whereis只能搜索程序名
which则是只查询path中的环境变量
压缩和解压命令 gzip/guzip zip/unzip tar
gzip和gunzip一般可用参数是-r,例:
gzip test.txt 压缩文件
gzip -r test 压缩所有test下的子文件
gunzip test.gz 解压文件
zip和unzip可用参数较多,例:
zip test 不跟参数直接使用
zip -r test 递归压缩test下所有文件
unzip test 不跟参数直接使用
unzip -n 解压时不覆盖已存在的文件
unzip -o 解压时覆盖已存在的文件
unzip -d 将文件解压到目录中去
tar使用的较为多些,用法也多,最常用的是zxcvf几个参数,例:
-c 创建新文档,就是代表压缩的意思
-x 解压文档
-f 使用归档文件
-z 使用gzip解压
-v 详细输出模式
最为常用的使用方法:
tar -zcvf test.tar test 将test压缩为test.tar并输出详细信息
tar -zxvf test.tar 将test.tar解压缩,并输出详细信息
定时任务 crontab
crontab [-u user] 文件
crontab [-u user] {-r -e -l}
不加-u的话默认当前用户
-e:执行文字编辑器来设定时程表,内定的文字编辑器是vi。
-r:删除目前的时程表。
-l:列出目前的时程表。
crontab -e 就可以打开一个文件进行编辑
crontab文件的格式为“M H D m d cmd”,M为分钟1-59,H为小时1-24,D为天1-31,m为月1-12,d为周0-6(0为周日)。cmd代表要执行的程序,*代表每分钟都执行
* * * * * sh /opt/lampp/test.sh 表示每分钟执行一次test.sh这个脚本
*/5 * * * * sh /opt/lampp/test.sh 表示每5分钟执行一次test.sh这个脚本
30 21 * * * /usr/local/apache/bin/apachectl restart 表示每晚的21:30重启apache
常用的一些服务名
iptbles //防火墙
network //网络
httpd //Apache
nginx //nginx
某些服务启动时需要占用控制台,导致无法继续操作,这时可以在启动命令的结尾加一个&符,服务启动就在后台运行,可释放控制台,不影响继续操作,例:
/usr/local/tamcat/bin/catalina.sh run & 后台启动
nohup /usr/local/tamcat/catalina.sh run & 同样是后台启动,加了个打印启动日志的功能,自动打印日志存入nohup.out文件中
除了上述将命令做成系统服务然后设置为开机启动之外,还有另外一种方式可以开机运行该脚本,那就是在/etc/rc.d/rc.local文件中加入该脚本,例:
要开机启动lampp,在/etc/rc.d/rc.local文件中加入/opt/lampp/lampp start就可以了
下面要讲的awk较难,初学略懵,awk语法为awk [选项参数] '{命令参数}' file ,但是选项参数使用较少,awk常用内置参数如下
$0 表示整个当前行
$n 表示每行的第n个字段
NF 每行有多少个字段
NR 每行的记录号
awk命令参数中可使用if判断,用法:
'{if(条件){执行语句}
else{执行语句} }'
Linux常用命令
查看进程
- 查看java进程: ps -ef|grep java
- 查看nginx进程:ps -ef|grep nginx
查看CentOS版本
- cat /etc/centos-release
自动提示文件夹(自动补全)
- tab键
到网络上下载软件的命令
- wget [下载软件的链接]
访问网站
- curl www.baidu.com
查找文件中的内容,相当于windows中的ctrl + F
-
cat [要查找的文件名] | grep [要查找的文本内容]
yum -y install与yum install有什么不同
- yum -y install 包名(支持*) :自动选择y,全自动
- yum install 包名(支持*) :手动选择y or n
- yum remove 包名(不支持*)
- rpm -ivh 包名(支持*):安装rpm包
- rpm -e 包名(不支持*):卸载rpm包
- yum -y install [命令] 当有些命令不存在可以使用这个安装
- yum -y install wget :安装wget命令
centOS linux防火墙
- 关闭防火墙: systemctl stop firewalld.service
- 禁止防火墙开机自启 systemctl disable firewalld.service
- 查看防火墙状态 firewall-cmd --state
- 查看端口 firewall-cmd --zone=public --query-port=80/tcp
- 查看所以已经开放的端口 firewall-cmd --list-ports
- 开启端口 firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
- 查看防火墙状态 systemctl status firewalld
- 重启防火墙 firewall-cmd --reload
- 删除防火墙端口 firewall-cmd --zone=public --remove-port=80/tcp --permanent
linux开启关闭定时任务
- service crond start
- service crond stop
克隆虚拟机(CentOS7)以及网卡配置
1.
2.
3.
4.
5.
6.
7.
8.开启虚拟机,切记切换 root 用户
su root
9.查看网卡名称和MAC地址
ip addr
10.修改grub文件 cd etc/sysconfig/
11.输入 vim grub
12.在GRUB_CMDLINE_LINUX 后面添加 net.ifnames=0 biosdevname=0
13.执行命令 grub2-mkconfig -o /boot/grub2/grub.cfg
14.找到网卡的配置文件 cd etc/sysconfig/network-scripts/ ,并删除ifcfg-ens33.bak 和ifcfg-lo
【注】此处的ens33.**是第9点查询的网卡名称,电脑不一样可能网卡的名称也不同
15.生成uuid
uuidgen ens33(自己的网卡名)
16.
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens31"
UUID="cc9e7ec0-af60-4aa8-b503-bcd291ad9c3d"
DEVICE="ens31"
ONBOOT="yes"
IPADDR=192.168.0.216
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
HWADDR=00:50:56:3d:a1:86
ZONE=
17.修改网卡文件的名称
mv ifcfg-ens33 ifcfg-ens31
18.重启 reboot
19. 然后使用 ip addr,发现网卡的名和IP地址已经修改成功
20.中间可以查看网卡的状态 systemctl restart network
21.如果不好使可以最后重复一下 12和13的步骤,然后重启
【*】在linux上联网下载内容的时候报错 Could not resolve host: centos.ustc.edu.cn; Unknown error解决方案
- ping www.baidu.com
- 发现不能联网,可能就是DNS服务器错误
- 修改一下 /etc/resolv.conf文件,通过vim编辑在文件的末尾加一句话
nameserver 8.8.8.8完成
- 成功解决