Linux系统管理
前言
要期末考了,一直摆烂的我要 gg 了。
挑战一天速通。
文件管理
文件操作
查看文件
ls
命令:
-a
:显示所有文件,包括隐藏文件(以“.”开头的文件)。-l
:长格式显示详细信息,如权限、拥有者、大小和修改时间。-d
:显示目录本身的属性,而不是显示目录中的内容。-h
:人性化显示文件大小,以 K、M、G 等单位表示文件大小。
file
命令:
查看文件类型和详细属性,例如文本文件、二进制文件等。
示例:
1 |
|
创建文件
mkdir
命令:
-p
:递归创建目录,自动创建不存在的父目录。
touch
命令:
- 用于创建空文件或更新文件的时间戳。
cp
命令:
-r
:复制目录及其内容。-p
:保留文件的原始属性,如修改时间和权限。示例:
1 |
|
删除文件
rm
命令
-f
:强制删除文件,不提示确认。-r
:递归删除目录及其内容。
示例:
1 |
|
查找文件
locate
命令:
- 快速查找包含指定关键字的文件。
find
命令:
-name
:按文件名查找。-type
:按文件类型查找(f 为文件,d 为目录)。-size
:按文件大小查找。-exec
:对查找到的文件执行指定命令。示例:
1 |
|
命令历史
history
命令
显示命令历史,按编号显示命令。
!<编号>
:执行历史中的指定命令。-c
:清空历史命令。-w
:保存历史到文件。示例:
1 |
|
通配符和扩展符
*
:匹配任意数量的字符。?
:匹配单个字符。[ ]
:匹配指定范围内的字符。{}
:包含逗号分隔的列表,自动展开为多个路径或文件名。示例:
1 |
|
文件内容操作
查看内容
cat
命令:
-n
:显示文件时加上行号。
more
和 less
命令:
- 用于分页查看文件内容。
head
和 tail
命令
head -n
:查看文件前 n 行。tail -n
:查看文件后 n 行。tail -f
:实时显示文件新增的内容,常用于监控日志文件。示例:
1 |
|
内容统计
wc
命令:
-l
:统计行数。-m
:统计字符数。-c
:统计字节数。示例:
1 |
|
内容搜索
grep
命令:
-n
:显示匹配行及行号。-i
:忽略大小写。-v
:显示不匹配的行。示例:
1 |
|
内容对比
diff
命令:
比较两个文件,显示差异。
示例:
1 |
|
时间管理
date
命令:
- 查看当前系统时间。
hwclock
命令:
-w
:将系统时间写入硬件时钟。-s
:将硬件时钟的时间设置为系统时间。示例:
1 |
|
其它常用命令
which
命令:
- 查找命令的实际路径。
stat
命令:
- 查看文件的详细属性,包括修改时间、权限等。
ln
命令:
-s
:创建软链接。示例:
1 |
|
查看帮助
man
命令:
查看命令的手册页,获取详细的使用说明。
示例:
1 |
|
重定向
标准输入输出:
<
:输入重定向,将文件作为命令的输入。>
:输出重定向,将命令的输出保存到文件。&>
:将标准输出和错误输出一起重定向到文件。示例:
1 |
|
正则表达式
在 Linux 中,正则表达式是一种用于文本搜索和匹配的强大工具。它通过特定的字符和符号,定义模式来匹配文本。正则表达式广泛应用于 Linux 命令和工具中,例如grep
、sed
、awk
、vi
等。
正则表达式的分类
Linux 中的正则表达式分为两类:
- 基础正则表达式:较为简单,常用于
grep
等命令。 - 扩展正则表达式:功能更强大,常用于
egrep
、sed
、awk
等命令。
正则表达式中的元字符
- 普通字符
普通字符直接匹配它们在文本中出现的字符。例如,正则表达式abc
会匹配文本中的abc
字符串。
- 特殊字符(元字符)
元字符是正则表达式中具有特殊含义的字符。它们可用于创建复杂的模式匹配。
元字符 | 含义 |
---|---|
. |
匹配任意单个字符(换行符除外) |
^ |
匹配行首 |
$ |
匹配行尾 |
* |
匹配前一个字符0次或多次 |
+ |
匹配前一个字符1次或多次(扩展正则) |
? |
匹配前一个字符0次或1次(扩展正则) |
[] |
匹配括号内的任意一个字符(字符集) |
` | ` |
() |
用于分组或引用子表达式(扩展正则) |
{} |
匹配前一个字符的次数范围(扩展正则) |
\ |
转义字符,用于取消元字符的特殊含义 |
- 用法示例
**
.
**:匹配任意单个字符。1
2echo "cat bat rat" | grep "c.t"
# 匹配c后跟任意字符再跟t的字符串,输出 "cat"**
^
和$
**:匹配行首和行尾。1
2echo "hello" | grep "^he" # 匹配以 "he" 开头的行
echo "hello" | grep "lo$" # 匹配以 "lo" 结尾的行**
[]
**:字符集匹配。匹配括号内任意一个字符。1
2echo "cat bat mat" | grep "[cb]at"
# 匹配 "cat" 或 "bat",输出 "cat" 和 "bat"**
*
**:匹配前一个字符0次或多次。1
2echo "helloooo" | grep "lo*"
# 匹配l后面有0个或多个o,输出 "helloooo"**
+
**:匹配前一个字符1次或多次(扩展正则)。1
2echo "helloooo" | grep -E "lo+"
# 匹配l后跟1个或多个o,输出 "helloooo"**
?
**:匹配前一个字符0次或1次(扩展正则)。1
2echo "color colour" | grep -E "colou?r"
# 匹配 "color" 或 "colour",输出 "color" 和 "colour"**
{}
**:匹配前一个字符的次数范围(扩展正则)。1
2echo "ho hooo hooooo" | grep -E "ho{2,4}"
# 匹配 "ho" 后面有2到4个 "o",输出 "hooo"**
()
**:分组和引用子表达式(扩展正则)。1
2echo "abcabc" | grep -E "(abc)+"
# 匹配重复的 "abc",输出 "abcabc"**
|
**:或运算,匹配左边或右边的表达式(扩展正则)。1
2echo "cat bat rat" | grep -E "cat|rat"
# 匹配 "cat" 或 "rat",输出 "cat" 和 "rat"
- 转义字符
\
一些元字符如果需要作为普通字符使用,可以用\
进行转义。1
2echo "3+3=6" | grep "3\+3"
# 匹配包含"3+3"的字符串
正则表达式在Linux工具中的使用
grep
命令
grep
用于在文件或文本中搜索匹配的行,支持基础正则和扩展正则。
1 |
|
sed
命令
sed
用于文本流编辑,支持正则表达式进行替换、删除等操作。
1 |
|
awk
命令
awk
是一种强大的文本处理工具,支持正则表达式匹配。
1 |
|
find
命令
find
用于文件搜索,支持正则表达式。
1 |
|
常见用法示例
匹配邮箱地址:
1
grep -E "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
匹配电话号码(以数字开头,允许连字符或空格分隔):
1
grep -E "[0-9]{3}[- ]?[0-9]{3}[- ]?[0-9]{4}"
匹配IP地址:
1
grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"
正则表达式是文本处理中的核心工具,通过学习和应用正则表达式,可以大大提高在Linux环境下进行文本处理和分析的效率。
用户、组和权限
用户和组的基本概念
用户账号的类型:
- 超级用户(root):拥有系统的最高权限。
- 普通用户:系统管理员或其他用户创建的用户,用于日常操作。
- 系统用户:系统为运行某些服务或程序而创建的用户,通常不直接登录。
用户组的类型:
- 每个用户可以属于一个基本组和多个附加组。基本组通常是用户创建时自动分配的组,附加组则可以根据需要添加。
UID 和 GID:
- UID(用户标识符):每个用户在系统中都有一个唯一的 UID。
- 系统用户 UID 通常在 1-999 之间。
- 普通用户的 UID 默认从 1000 开始。
- GID(组标识符):每个组有一个唯一的 GID。
- root 组的 GID 为 0。
- 系统组的 GID 通常在 1-999 之间,普通组从 1000 开始分配。
查看用户信息:
使用id
命令可以查看用户的 UID、GID 以及所属的附加组。
1 |
|
用户配置文件:
/etc/passwd
:保存用户的基本信息,包括用户名、UID、GID、注释、家目录和默认的 shell。/etc/group
:保存组信息,包含组名、GID 和组成员列表。/etc/shadow
:保存用户的密码信息,包括加密后的密码和密码到期时间。
用户账号和组的管理
用户管理
创建用户:
useradd
命令用于添加用户账号。
1 |
|
-u
:指定用户 UID。-d
:指定用户的家目录。-g
:指定用户的基本组。-s
:指定用户的登录 shell。
设置密码:
passwd
命令用于设置或修改用户密码。
1 |
|
-d
:清除用户密码。-l
:锁定用户账户。-u
:解锁用户账户。
切换密码:
su
用于切换用户。1
su - user1
修改用户属性:
usermod
命令用于修改用户账号属性。
1 |
|
-d
:修改用户家目录。-l
:修改用户名。-g
:修改用户的基本组。-G
:修改用户的附加组,-a
参数用于添加附加组。
用户组管理
创建用户组:
groupadd
用于创建用户组。
1 |
|
管理组成员:
gpasswd
用于添加和删除组成员。
1 |
|
删除用户组:
groupdel
删除用户组,但如果该组是某些用户的基本组,必须先删除这些用户。
系统配置文件
/etc/login.defs
文件
此文件定义了创建用户账号时的默认设置,例如 UID/GID 范围、密码最长使用时间等。
/etc/skel
目录
这个目录包含新用户创建时自动复制到其家目录的默认配置文件。
文件和目录的权限及归属
权限与归属的概念
- Linux 文件和目录都有三种访问权限:读(r)、写(w)、执行(x),以及三个权限类别:文件所有者、文件所属组**、其他用户。
设置文件权限
字符形式的 chmod 命令:
- 使用字符形式可以针对用户、组、其他用户设置权限。
1
chmod u+rwx, g+rx, o+r file.txt
数字形式的 chmod 命令:
- 使用数字形式设置文件的权限,例如
777
代表所有用户都有读写执行权限。1
chmod 755 file.txt
修改文件的归属
chown
命令
- 修改文件或目录的所有者和所属组。
1
2chown user1 file.txt
chown user1:group1 file.txt
系统高级权限设置
SUID 权限设置。
- 可以通过
sudo
或者其他方式赋予特定用户临时提升权限的功能,确保日常操作安全。
磁盘与文件系统
挂载存储设备
- 什么是挂载
挂载是将存储设备的文件系统与某个目录进行关联,使得用户能够通过该目录访问存储设备上的数据。
- 挂载硬盘分区
使用mount
命令挂载硬盘分区,语法:
1 |
|
这将把/dev/sda1
分区挂载到/mnt
目录下。
使用umount
命令取消挂载:
1 |
|
-h
:人性化显示(自动转换为合适的单位,如KB, MB, GB)。-T
:显示文件系统类型。挂载 ISO 镜像
使用mount -o loop
挂载ISO镜像文件:
1 |
|
确保设备未处于使用状态,未被使用时才能卸载。可以使用lsof
命令查看是否有进程占用设备。
- 自动挂载
修改/etc/fstab
文件可以设置系统启动时自动挂载分区。文件内容示例如下:
1 |
|
使用mount -a
命令重新加载/etc/fstab
配置文件,使新的挂载设置生效。
修改网络
- 通过nmcli修改
1 |
|
系统软件包管理
Linux 中的软件安装方式可以分为:源码安装、包管理安装等。
其中源码安装适用于所有Linux系统,包管理安装则不同的发行版有不同的管理器。
文件打包与压缩
查看目录或文件占用磁盘空间的大小:
du
-h
人性化显示容量信息,以K、M、G为单位显示统计结果(默认单位为KB)。-s
查看目录本身的大小。s表示求和的意思,如果不加该选项,则会显示指定目录下所有子目录和大小。
tar
linux 中常用的打包命令为tar
,常用的压缩命令由三个:gzip、bzip2、xz。
实际应用中,一般都是通过tar命令来调用gzip、bzip2或xz进行或解压。
打包压缩:
-c,创建.tar格式的包文件,该选项不会对包文件进行压缩
-v,显示命令的执行过程。该选项非必须,课根据情况选用。
-f,指定要打包或解包的文件名称,该选项必须放到选项组合的最后一位
-z,表示调用gzip来压缩包文件
-j,表示调用bzip2来压缩包文件
-J,表示调用xz来压缩包文件
解包解压缩:
-x,表示接口.tar格式的包文件
-C,表示指定解压后文件存放的目的位置
-f,指定要打包或解包的文件名称,该选项必须放到选项组合的最后一位
-z,表示调用gzip来解压缩包文件
-j,表示调用bzip2来解压缩包文件
-J,表示调用xz来解压缩包文件
-t,在不解压的情况下查看压缩文件内都包括哪些内容
zip文件压缩和解压缩
压缩命令格式:zip 压缩后的文件名 压缩的目标
解压缩命令格式:unzip 解压缩后的文件名 解压缩的目标
源配置
包管理
yum
yum list
查看yum仓库中的软件包- 源前加
@
的软件包表示已安装
- 源前加
yum repolist
将系统中所有的yum源都列出来yum info xxxx
查看软件包的信息yum install xxxx
安装软件yum remove
卸载软件yum remove
在卸载一个软件包的同时会将所有依赖于该软件的其它软件包也一同卸载yum clean all
清除本地缓存
dpkg
dpkg -i 软件包名.deb
安装dpkg -r 软件名
卸载
snap
snap list
查看已经安装的软件snap find xxxx
搜索要安装的snap软件包snap info xxxx
查看软件的更多信息snap install xxxx
安装snap软件包snap switch -channel=xxxx xxxx
更换软件安装通道snap refresh xxxx
更新软件包snap revert xxxx
还原到之前版本snap remove xxxx
卸载软件
rpm
rpm -i xxxx
安装软件包-i
安装软件包-v
显示安装过程-h
显示安装进度
rpm -e xxxx
卸载软件rpm -q
查询-a
所有的软件包-qi
查询已安装软件包的信息-ql
查询软件包所安装的文件-qc
查询软件包所安装的配置文件-qf
查询某个文件所属的软件包
apt
apt-get:
apt-get install xxxx
安装apt-get remove xxxx
卸载apt-get remove --purge
卸载并删除配置文件apt-get update
更新软件列表apt-get upgrade
升级已安装的软件包apt-get clean
清理软件包
apt:
apt install xxxx
安装apt remove xxxx
删除软件包apt update
更新软件包列表apt upgrade
升级软件包apt search xxxx
搜索软件包
dnf
dnf install xxxx
安装软件包dnf remove xxxx
删除软件包dnf update
更新软件包dnf search xxxx
搜索软件包dnf list installed
查看已安装软件包
系统进程和服务管理
管理Linux进程
了解进程
进程是系统中正在运行的程序,一个程序可能对应多个进程,是操作系统资源分配和调度的基本单位。
进程有三种基本状态:
- 运行态:进程正在执行。
- 就绪态:进程准备执行,等待CPU资源。
- 等待态:进程等待外部事件完成。
父进程和子进程:systemd
是Linux启动的第一个进程,PID为1,负责管理系统的所有进程。
进程的属性:每个进程都有一个唯一的进程标识符(PID),可以通过pidof
命令查询。
进程的分类:进程可分为系统进程和用户进程,其中系统进程用于执行系统级任务,用户进程用于执行用户操作。
查看进程状态
ps
命令
ps
命令查看系统当前进程的静态统计信息
常用选项:
a
:显示所有与终端相关的进程。x
:显示所有与终端无关的进程。u
:以用户格式显示详细信息。top
命令
top
命令显示系统当前进程的动态信息,支持按键操作,如p
按CPU使用率排序,m
按内存使用率排序,q
退出。
/proc
伪文件系统
/proc
目录包含运行中的进程和系统内核信息,可通过读取其中文件查看内存、CPU等状态。
控制进程
- 启动进程
手动启动进程可分为前台和后台。使用&
符号将进程放到后台执行,使用jobs
查看后台进程,fg
将后台进程调回前台。
- 改变进程运行方式
nohup
命令解除进程与终端的绑定,终端关闭后进程继续运行。
1 |
|
- 终止进程执行
kill
命令用于终止进程。-9
选项强制终止无法响应的进程,killall
终止指定名称的所有进程。
1 |
|
监视系统信息
监视用户信息
users
命令显示当前登录的用户名。who
命令显示登录用户的详细信息。w
命令不仅显示用户信息,还包括其活动和系统负载信息。last
命令查看系统的登录记录。
监视资源占用信息
- 查看CPU信息
通过cat /proc/cpuinfo
查看CPU硬件信息,uptime
查看系统运行时间和CPU负载情况。
- 查看内存信息
free
命令查看内存使用情况,cat /proc/meminfo
查看内存硬件信息。
管理Linux服务
- 什么是服务?
服务是系统后台运行的进程,与终端无关,分为对内服务(本地)和对外服务(网络)。
systemd
初始化进程
systemd
是Linux系统的初始化进程,负责启动和管理系统服务。
使用pstree
查看进程树,可以看到systemd
处于进程树的根。
systemd unit
systemd
的服务定义为unit
,常见的有service unit
和target unit
。target unit
用于模拟系统运行级别。
管理服务状态
使用systemctl
命令管理服务状态,如启动、停止、重启、重新加载等
- 列出所有服务
1 |
|
- 启动
1 |
|
- 停止
1 |
|
- 重启
1 |
|
- 重新加载
1 |
|
管理服务启动状态
查看系统启动时的服务
1 |
|
管理运行级别
- 查看系统的默认运行级别
1 |
|
- 设置默认运行级别
1 |
|
- 临时切换运行级别
1 |
|
管理计划任务
- 一次性计划任务
使用at
命令配置一次性计划任务,确保atd
服务已启动。
例:在明天上午点执行script.sh
脚本。
1 |
|
- 周期性计划任务
通过crontab -e
编辑周期性计划任务,使用绝对路径指定命令。
- 维护计划任务列表
使用crontab -l
查看用户的计划任务,crontab -r
删除计划任务列表。
基本服务搭建
Samba
- 建立共享目录
1 |
|
- 修改 samba 配置文件
在原文件尾部添加,注意要将原文件重点的[global]
删除,文件中不能有两个同名的[global]
。
1 |
|
- 验证配置文件的正确性
1 |
|
- 添加 samba 账号
首先需要添加同名的系统账号。
1 |
|
- 设置权限
1 |
|
- 禁用SELinux
1 |
|
- 重新加载 samba 服务
1 |
|
NFS
要安装和配置 NFS 文件服务,并共享 /var/smbhome
、/var/ftphome
和 /var/webhome
目录,同时限制只有 10.0.XX.0/24
网段的客户端可以访问并具有读写权限,可以按照以下步骤进行操作。
- 安装启动
首先,安装 NFS 服务所需的软件包。
1 |
|
- 创建共享目录
确保要共享的目录(/var/smbhome
、/var/ftphome
和 /var/webhome
)已存在。如果没有,创建这些目录。
1 |
|
- 配置目录的访问权限
确保共享目录的权限正确设置,使得 NFS 客户端可以进行读写操作。
1 |
|
- 配置 NFS 导出文件
NFS 共享的目录通过 /etc/exports
文件进行配置。打开并编辑该文件。
1 |
|
在文件中添加以下行,指定要共享的目录,并限制只能来自 10.0.XX.0/24
网段的客户端访问,并赋予读写权限。
1 |
|
rw
: 允许客户端读写。sync
: 保证数据同步写入磁盘。no_root_squash
: 允许客户端以 root 权限访问(如果需要)。重新加载 NFS 配置
修改完 /etc/exports
文件后,重新加载 NFS 配置。
1 |
|
- 启动并配置 NFS 服务
确保 NFS 服务正在运行,并且可以响应客户端的请求。
1 |
|
- 测试 NFS 共享
从客户端机器上,您可以使用 mount
命令挂载 NFS 共享并访问目录。首先,确保客户端安装了 NFS 客户端工具。
1 |
|
然后,在客户端挂载 NFS 共享。例如,将 /var/smbhome
目录挂载到客户端的 /mnt/smbhome
。
1 |
|
- 自动挂载配置
如果希望在客户端机器每次启动时自动挂载共享,可以编辑 /etc/fstab
文件。
1 |
|
添加如下条目以自动挂载:
1 |
|
VSFTP
- 编辑配置文件
1 |
|
- 配置vsftp服务
1 |
|
- 创建站点主目录
1 |
|
- 创建用户
1 |
|
- 创建ftp目录和文件
在 /var/ftphome
下创建名为 ftp.ppt
的文件和名为 dir-ftp
的文件夹。设置权限为用户 ftp1
具有完全权限,其他用户只有读取权限。
1 |
|
- 配置域名解析
为了让域名 ftp.gxjzy.com
指向你的服务器,需要确保 DNS 已经配置好。如果是本地测试,可以在 /etc/hosts
文件中添加如下条目:
在文件中添加服务器的 IP 地址和域名:
1 |
|
(请根据你的实际服务器 IP 地址进行修改)
- 允许防火墙通过 FTP 端口
如果系统启用了防火墙,需要允许 FTP 相关端口(默认是 21)通过。
1 |
|
- 重启服务
1 |
|
- 测试
使用 FTP 客户端连接到服务器进行测试。可以使用命令行工具 ftp
,或者 GUI 工具(如 FileZilla)。
1 |
|
输入用户名 ftp1
和密码 Ftp@9630
进行登录,检查是否可以上传、下载文件以及是否只能在 /var/ftphome
目录下操作。
DHCP
要安装和配置 DHCPD
服务并为客户端分配地址池 10.0.XX.2
到 10.0.XX.90
,网关地址为 10.0.XX.1
,DNS 地址为 10.0.XX.100
,以及 IP 地址租约时间为 7 天,可以按照以下步骤进行操作:
- 安装 DHCPD 服务
首先,安装 dhcpd
服务所需的软件包:
1 |
|
- 启动 DHCPD 服务并设置开机自启
启动 DHCP 服务并设置为开机自启:
1 |
|
- 配置 DHCP 配置文件
编辑 DHCP 配置文件 /etc/dhcp/dhcpd.conf
,配置 DHCP 地址池、网关、DNS 和租约时间。
1 |
|
在文件中添加如下内容:
1 |
|
default-lease-time
和max-lease-time
设置了租约时间为 7 天(即 604800 秒)。subnet
配置了10.0.XX.0/24
网络,并指定了 IP 地址池10.0.XX.2
到10.0.XX.90
。option routers
设置网关为10.0.XX.1
。option domain-name-servers
设置 DNS 为10.0.XX.100
。option broadcast-address
设置广播地址为10.0.XX.255
。配置防火墙
确保防火墙允许 DHCP 服务的流量。默认情况下,DHCP 使用 UDP 的 67 和 68 端口。您需要确保防火墙允许这些端口。
1 |
|
- 启动并测试 DHCP 服务
重新启动 DHCP 服务使配置生效:
1 |
|
- 查看 DHCP 服务状态
确保 DHCP 服务正在运行,并检查服务状态:
1 |
|
- 客户端测试
从客户端机器上,使用以下命令检查是否能够通过 DHCP 获取到正确的 IP 地址:
1 |
|
然后,检查客户端是否获得了正确的 IP 地址、网关和 DNS:
1 |
|
DNS
为了设置 BIND DNS 服务器并配置正向与反向 DNS 解析,你可以按照以下步骤进行操作。
- 配置正向 DNS 区域
创建和配置正向 DNS 区域文件,以便解析域名 gxjzy.com
。
- 编辑主配置文件
/etc/named.conf
:
1 |
|
确保在文件中加入以下配置,设置区域文件的路径和名称:
1 |
|
"gxjzy.com"
是你要解析的主机名。"1.168.192.in-addr.arpa"
是反向 DNS 区域,假设你的网段是192.168.1.0/24
。配置正向解析区文件
接下来创建正向解析区文件 /var/named/gxjzy.com.db
。
1 |
|
添加以下内容:
1 |
|
@
表示gxjzy.com
域。IN A
用于设置主机的 IP 地址。ns1
是 DNS 服务器的名称,www
是 Web 服务器的名称。配置反向解析区文件
创建反向解析文件 /var/named/192.168.1.rev
,用于将 IP 地址映射为主机名。
1 |
|
添加以下内容:
1 |
|
- 启动并启用 DNS 服务
启动并启用 BIND 服务,使其开机自启:
1 |
|
- 测试 DNS 配置
使用 nslookup
命令来测试 DNS 配置:
1 |
|
WEB
- 安装 HTTPD 服务
安装 Apache HTTP 服务(httpd
)并启动:
1 |
|
- 配置 Web 站点
创建网站的根目录 /var/webhome/
:
1 |
|
创建一个名为 gxjzy.html
的首页文件,并写入相应的内容:
1 |
|
- 配置 VirtualHost
编辑 Apache 配置文件,配置 www.gxjzy.com
的虚拟主机:
1 |
|
添加以下内容:
1 |
|
- 测试 Web 站点
在浏览器中访问 http://www.gxjzy.com
,如果配置正确,你将看到网页内容:
1 |
|