1. 首页 > Linux教程 > 正文

Linux教程FG055-cat/tail/head命令(文件内容查看/实时监控)

本文档风哥主要介绍Linux系统中cat、tail、head命令的使用方法,包括文件内容查看、实时日志监控、日志分析等,结合RHEL LINUX 10系统环境,提供详细的命令示例和输出结果,适合Linux运维人员在学习和生产环境中使用。更多视频教程www.fgedu.net.cn

参考Red Hat Enterprise Linux 10官方文档中的System administration章节 学习交流加群风哥QQ113257174

Part01-基础概念与理论知识

1.1 cat/tail/head命令的基本概念

cat、tail、head是Linux系统中最常用的文件内容查看命令。cat命令用于查看整个文件内容或合并多个文件;tail命令用于查看文件末尾内容,常用于实时监控日志文件;head命令用于查看文件开头内容,常用于快速预览文件。这三个命令是Linux运维人员必须掌握的基础命令。

cat/tail/head命令的特点:

  • cat:查看整个文件内容,合并文件
  • tail:查看文件末尾,实时监控
  • head:查看文件开头,快速预览
  • 支持管道操作和重定向
  • 可以与其他命令组合使用

1.2 cat/tail/head命令的语法格式

cat、tail、head命令的基本语法格式如下:

# cat命令基本语法
cat [选项] [文件名…]

# tail命令基本语法
tail [选项] [文件名…]

# head命令基本语法
head [选项] [文件名…]

# 语法说明:
# 文件名:要查看的文件名,可以指定多个文件
# 如果不指定文件名,则从标准输入读取
# 可以使用通配符指定多个文件

1.3 cat/tail/head命令的常用参数

cat、tail、head命令的常用参数如下:

# cat命令常用参数

# -n, –number
# 显示行号
cat -n file.txt

# -b, –number-nonblank
# 非空行显示行号
cat -b file.txt

# -s, –squeeze-blank
# 压缩连续空行
cat -s file.txt

# -A, –show-all
# 显示所有字符(包括换行符、制表符等)
cat -A file.txt

# -E, –show-ends
# 在每行末尾显示$
cat -E file.txt

# -T, –show-tabs
# 显示制表符为^I
cat -T file.txt

# tail命令常用参数

# -n N, –lines=N
# 显示最后N行
tail -n 20 file.txt

# -c N, –bytes=N
# 显示最后N个字节
tail -c 100 file.txt

# -f, –follow
# 实时监控文件(追加内容)
tail -f /var/log/messages

# -F
# 跟踪文件名,文件被删除重建后继续监控
tail -F /var/log/app.log

# –pid=PID
# 进程结束后停止监控
tail -f –pid=1234 /var/log/app.log

# -q, –quiet, –silent
# 不显示文件名标题
tail -q file1.txt file2.txt

# -v, –verbose
# 显示文件名标题
tail -v file.txt

# head命令常用参数

# -n N, –lines=N
# 显示前N行
head -n 20 file.txt

# -c N, –bytes=N
# 显示前N个字节
head -c 100 file.txt

# -q, –quiet, –silent
# 不显示文件名标题
head -q file1.txt file2.txt

# -v, –verbose
# 显示文件名标题
head -v file.txt

Part02-生产环境规划与建议

2.1 文件查看场景规划

在生产环境中,cat、tail、head命令主要用于以下场景: from LinuxDBA视频:www.itpux.com

# 文件查看场景规划

# 1. cat命令使用场景
# – 查看配置文件内容
# – 合并多个文件
# – 创建新文件
# – 查看小型文件

# 2. tail命令使用场景
# – 实时监控日志文件
# – 查看日志最新内容
# – 监控应用程序输出
# – 查看大文件末尾

# 3. head命令使用场景
# – 快速预览文件内容
# – 查看文件头部信息
# – 验证文件格式
# – 查看日志文件开头

# 4. 组合使用场景
# – 查看文件中间部分
# – 过滤特定内容
# – 统计文件信息
# – 日志分析

2.2 文件查看安全建议

在生产环境中使用cat、tail、head命令时,需要注意以下安全建议:

文件查看安全建议:

  • 避免使用cat查看大文件(使用less或more)
  • 查看敏感文件时注意权限控制
  • 实时监控日志时注意资源占用
  • 使用管道过滤敏感信息
  • 避免在脚本中使用cat读取大文件
  • 注意文件编码问题

2.3 文件查看最佳实践

文件查看命令在生产环境中的最佳实践:

# 文件查看最佳实践

# 1. 查看大文件使用less
# less /var/log/large.log

# 2. 实时监控多个日志文件
# tail -f /var/log/*.log

# 3. 查看文件中间部分
# head -n 100 file.txt | tail -n 20

# 4. 查看文件并高亮关键字
# tail -f /var/log/app.log | grep –color=auto “ERROR”

# 5. 查看文件并显示行号
# cat -n /etc/hosts

# 6. 查看压缩日志文件
# zcat /var/log/app.log.gz | tail -n 50

Part03-生产环境项目实施方案

3.1 cat命令实战操作

cat命令在RHEL LINUX 10系统中的实际操作示例:

# cat命令实战操作示例

# 1. 查看文件内容
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.100 server01.fgedu.net server01

# 2. 显示行号
# cat -n /etc/hosts
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
3 192.168.1.100 server01.fgedu.net server01

# 3. 查看多个文件
# cat /etc/hosts /etc/resolv.conf
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.100 server01.fgedu.net server01
search fgedu.net
nameserver 192.168.1.1

# 4. 合并文件
# cat file1.txt file2.txt > merged.txt
# cat merged.txt
Content from file1
Content from file2

# 5. 创建新文件
# cat > newfile.txt << EOF This is line 1 This is line 2 This is line 3 EOF # cat newfile.txt This is line 1 This is line 2 This is line 3 # 6. 追加内容到文件 # cat >> existing.txt << EOF Appended line 1 Appended line 2 EOF # 7. 显示特殊字符 # cat -A /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4$ ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6$ 192.168.1.100 server01.fgedu.net server01$ # 8. 压缩空行 # cat -s file_with_blank_lines.txt Line 1 Line 2 Line 3 # 9. 查看文件并统计行数 # cat -n /etc/passwd | tail -n 1 45 nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin # 10. 查看文件并搜索关键字 # cat /var/log/messages | grep "error" Apr 2 10:00:01 server01 kernel: [UFW BLOCK] error: ... Apr 2 10:05:23 server01 systemd[1]: error: ...

3.2 tail命令实战操作

tail命令在RHEL LINUX 10系统中的实际操作示例:

# tail命令实战操作示例

# 1. 查看文件最后10行(默认)
# tail /var/log/messages
Apr 2 10:00:01 server01 kernel: [UFW BLOCK] IN=eth0 OUT= MAC=00:00:00:00:00:00
Apr 2 10:00:02 server01 systemd[1]: Started Session 123 of user root.
Apr 2 10:00:03 server01 sshd[12345]: Accepted publickey for root from 192.168.1.100
Apr 2 10:00:04 server01 systemd[1]: Starting Daily apt download activities…
Apr 2 10:00:05 server01 systemd[1]: Finished Daily apt download activities.
Apr 2 10:00:06 server01 CRON[12346]: (root) CMD (/usr/local/bin/backup.sh)
Apr 2 10:00:07 server01 systemd[1]: Started Session 124 of user root.
Apr 2 10:00:08 server01 systemd[1]: Starting Daily man-db regeneration…
Apr 2 10:00:09 server01 systemd[1]: Finished Daily man-db regeneration.
Apr 2 10:00:10 server01 systemd[1]: Started Session 125 of user root.

# 2. 查看文件最后N行
# tail -n 20 /var/log/messages
Apr 2 10:00:01 server01 kernel: [UFW BLOCK] IN=eth0 OUT= MAC=00:00:00:00:00:00
Apr 2 10:00:02 server01 systemd[1]: Started Session 123 of user root.
…(共20行)

# 3. 实时监控日志文件
# tail -f /var/log/messages
Apr 2 10:00:01 server01 kernel: [UFW BLOCK] IN=eth0 OUT= MAC=00:00:00:00:00:00
Apr 2 10:00:02 server01 systemd[1]: Started Session 123 of user root.
(持续显示新内容,按Ctrl+C退出)

# 4. 实时监控并过滤关键字
# tail -f /var/log/messages | grep “error”
Apr 2 10:00:01 server01 kernel: error: [UFW BLOCK] IN=eth0 OUT=
Apr 2 10:00:05 server01 systemd[1]: error: Starting Daily apt download activities…

# 5. 监控多个日志文件
# tail -f /var/log/messages /var/log/secure
==> /var/log/messages <== Apr 2 10:00:01 server01 kernel: [UFW BLOCK] IN=eth0 OUT= ==> /var/log/secure <== Apr 2 10:00:02 server01 sshd[12345]: Accepted publickey for root # 6. 从第N行开始显示 # tail -n +100 /var/log/messages (从第100行开始显示到文件末尾) # 7. 查看文件最后N个字节 # tail -c 100 /etc/hosts erver01.fgedu.net server01 # 8. 跟踪文件名(文件被删除重建后继续监控) # tail -F /var/log/app.log Apr 2 10:00:01 server01 app[12345]: Application started tail: '/var/log/app.log' has become inaccessible: No such file or directory tail: '/var/log/app.log' has appeared; following end of new file Apr 2 10:05:01 server01 app[12346]: Application restarted # 9. 进程结束后停止监控 # tail -f --pid=12345 /var/log/app.log Apr 2 10:00:01 server01 app[12345]: Application started Apr 2 10:00:02 server01 app[12345]: Processing request (进程12345结束后,tail自动退出) # 10. 实时监控并高亮关键字 # tail -f /var/log/app.log | grep --color=auto -E "ERROR|WARN|^" Apr 2 10:00:01 server01 app[12345]: INFO: Application started Apr 2 10:00:02 server01 app[12345]: ERROR: Database connection failed Apr 2 10:00:03 server01 app[12345]: WARN: Retrying connection

3.3 head命令实战操作

head命令在RHEL LINUX 10系统中的实际操作示例:

# head命令实战操作示例

# 1. 查看文件前10行(默认)
# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

# 2. 查看文件前N行
# head -n 20 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
…(共20行)

# 3. 查看多个文件的前N行
# head -n 5 /etc/passwd /etc/group
==> /etc/passwd <== root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ==> /etc/group <== root:x:0: bin:x:1: daemon:x:2: sys:x:3: adm:x:4: # 4. 查看文件前N个字节 # head -c 100 /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost # 5. 不显示文件名标题 # head -q -n 5 /etc/passwd /etc/group root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin root:x:0: bin:x:1: daemon:x:2: sys:x:3: adm:x:4: # 6. 查看文件中间部分(结合tail) # head -n 100 /var/log/messages | tail -n 20 (显示第81-100行) # 7. 查看文件并显示行号 # head -n 5 /etc/passwd | cat -n 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin 4 adm:x:3:4:adm:/var/adm:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin # 8. 查看日志文件开头验证格式 # head -n 10 /var/log/app.log 2026-04-02 10:00:01 INFO [main] Application starting... 2026-04-02 10:00:02 INFO [main] Loading configuration... 2026-04-02 10:00:03 INFO [main] Connecting to database... 2026-04-02 10:00:04 INFO [main] Database connected successfully 2026-04-02 10:00:05 INFO [main] Starting web server... 2026-04-02 10:00:06 INFO [main] Web server started on port 8080 2026-04-02 10:00:07 INFO [main] Application started successfully 2026-04-02 10:00:08 INFO [http-nio-8080-exec-1] Processing request: GET / 2026-04-02 10:00:09 INFO [http-nio-8080-exec-1] Request completed in 50ms 2026-04-02 10:00:10 INFO [http-nio-8080-exec-2] Processing request: GET /api/users # 9. 查看压缩文件的前N行 # zcat /var/log/app.log.gz | head -n 10 2026-04-01 10:00:01 INFO [main] Application starting... 2026-04-01 10:00:02 INFO [main] Loading configuration... ...(共10行) # 10. 查看文件并统计行数 # head -n 100 /var/log/messages | wc -l 100

Part04-生产案例与实战讲解

4.1 实时日志监控案例

在生产环境中,实时日志监控是最常见的应用场景:

# 实时日志监控案例

# 1. 监控系统日志
# tail -f /var/log/messages
Apr 2 10:00:01 server01 kernel: [UFW BLOCK] IN=eth0 OUT= MAC=00:00:00:00:00:00
Apr 2 10:00:02 server01 systemd[1]: Started Session 123 of user root.
Apr 2 10:00:03 server01 sshd[12345]: Accepted publickey for root from 192.168.1.100

# 2. 监控应用日志并过滤ERROR
# tail -f /var/log/app.log | grep “ERROR”
2026-04-02 10:00:01 ERROR [main] Database connection failed
2026-04-02 10:00:05 ERROR [main] Retry attempt 1 failed
2026-04-02 10:00:10 ERROR [main] Retry attempt 2 failed

# 3. 监控多个日志文件
# tail -f /var/log/{messages,secure,app.log}
==> /var/log/messages <== Apr 2 10:00:01 server01 kernel: [UFW BLOCK] IN=eth0 OUT= ==> /var/log/secure <== Apr 2 10:00:02 server01 sshd[12345]: Accepted publickey for root ==> /var/log/app.log <== 2026-04-02 10:00:03 INFO [main] Application started # 4. 监控日志并高亮关键字 # tail -f /var/log/app.log | grep --color=auto -E "ERROR|WARN|INFO" 2026-04-02 10:00:01 INFO [main] Application starting... 2026-04-02 10:00:02 WARN [main] Configuration file not found, using defaults 2026-04-02 10:00:03 ERROR [main] Database connection failed # 5. 监控日志并统计错误数量 # tail -f /var/log/app.log | grep --line-buffered "ERROR" | pv -l > /dev/null
(实时统计ERROR出现的次数)

# 6. 监控日志并发送告警
# tail -f /var/log/app.log | while read line; do
if echo “$line” | grep -q “CRITICAL”; then
echo “$line” | mail -s “Critical Error” admin@fgedu.net
fi
done

# 7. 监控日志并写入文件
# tail -f /var/log/app.log | tee -a /tmp/app_monitor.log
(同时在屏幕显示和写入文件)

# 8. 监控日志并执行命令
# tail -f /var/log/app.log | while read line; do
if echo “$line” | grep -q “Restart required”; then
systemctl restart app
fi
done

4.2 日志分析实战

使用cat、tail、head命令进行日志分析:

# 日志分析实战

# 1. 统计日志中的错误数量
# cat /var/log/app.log | grep -c “ERROR”
15

# 2. 查看最近100行中的错误
# tail -n 100 /var/log/app.log | grep “ERROR”
2026-04-02 10:00:01 ERROR [main] Database connection failed
2026-04-02 10:00:05 ERROR [main] Retry attempt 1 failed

# 3. 查看日志中的唯一IP地址
# cat /var/log/nginx/access.log | awk ‘{print $1}’ | sort | uniq | head -n 10
192.168.1.100
192.168.1.101
192.168.1.102
192.168.1.103
192.168.1.104
192.168.1.105
192.168.1.106
192.168.1.107
192.168.1.108
192.168.1.109

# 4. 统计HTTP状态码
# cat /var/log/nginx/access.log | awk ‘{print $9}’ | sort | uniq -c | sort -rn
1234 200
567 304
234 404
89 500
45 403

# 5. 查看特定时间段的日志
# cat /var/log/app.log | grep “2026-04-02 10:”
2026-04-02 10:00:01 INFO [main] Application starting…
2026-04-02 10:00:02 INFO [main] Loading configuration…
…(10点时间段的所有日志)

# 6. 查看日志文件大小
# ls -lh /var/log/app.log
-rw-r–r–. 1 root root 50M Apr 2 10:00 /var/log/app.log

# 查看最后1000行的大小
# tail -n 1000 /var/log/app.log | wc -c
51234

# 7. 查找日志中的异常模式
# cat /var/log/app.log | grep -E “(Exception|Error|Failed)” | head -n 20
2026-04-02 10:00:01 ERROR [main] Database connection failed
2026-04-02 10:00:05 Exception [thread-1] NullPointerException
2026-04-02 10:00:10 Failed [task-1] Task execution timeout

# 8. 比较两个日志文件的差异
# diff <(head -n 100 /var/log/app.log.1) <(head -n 100 /var/log/app.log) (显示两个文件前100行的差异)

4.3 故障排查案例

使用cat、tail、head命令进行故障排查:

# 故障排查案例

# 1. 排查SSH登录失败
# tail -n 100 /var/log/secure | grep “Failed”
Apr 2 10:00:01 server01 sshd[12345]: Failed password for root from 192.168.1.100 port 22
Apr 2 10:00:02 server01 sshd[12346]: Failed password for user from 192.168.1.101 port 22

# 2. 排查系统启动问题
# head -n 50 /var/log/boot.log
[ OK ] Started Show Plymouth Boot Screen.
[ OK ] Started Forward Password R…uest to Plymouth Directory Watch.
[ OK ] Reached target Local Encrypted Volumes.
[ OK ] Reached target Paths.
[FAILED] Failed to start Docker Application Container Engine.
(发现Docker启动失败)

# 3. 排查服务启动失败
# tail -n 50 /var/log/messages | grep -A 5 “httpd”
Apr 2 10:00:01 server01 systemd[1]: Starting The Apache HTTP Server…
Apr 2 10:00:02 server01 httpd[12345]: AH00558: httpd: Could not reliably determine the server’s fully qualified domain name
Apr 2 10:00:03 server01 systemd[1]: Started The Apache HTTP Server.

# 4. 排查磁盘空间问题
# cat /var/log/messages | grep -i “disk\|space\|full”
Apr 2 10:00:01 server01 kernel: No space left on device
Apr 2 10:00:02 server01 systemd[1]: Failed to write /var/log/journal

# 5. 排查内存问题
# cat /var/log/messages | grep -i “out of memory\|oom”
Apr 2 10:00:01 server01 kernel: Out of memory: Kill process 12345 (java) score 500 or sacrifice child
Apr 2 10:00:02 server01 kernel: Killed process 12345 (java) total-vm:2048000kB

# 6. 排查网络问题
# tail -n 100 /var/log/messages | grep -i “network\|eth\|connection”
Apr 2 10:00:01 server01 kernel: eth0: link down
Apr 2 10:00:02 server01 NetworkManager[12345]: [1612345678.1234] device (eth0): state change: disconnected -> unavailable

# 7. 排查SELinux问题
# cat /var/log/audit/audit.log | grep -i “denied” | head -n 10
type=AVC msg=audit(1612345678.123:123): avc: denied { read } for pid=12345 comm=”httpd” name=”index.html”

# 8. 排查定时任务问题
# cat /var/log/cron | tail -n 20
Apr 2 10:00:01 server01 CRON[12345]: (root) CMD (/usr/local/bin/backup.sh)
Apr 2 10:00:02 server01 CRON[12345]: (root) MAIL (mailed 123 bytes of output but got status 0x004b#012)
(发现定时任务执行失败)

Part05-风哥经验总结与分享

5.1 文件查看技巧总结

根据多年的Linux运维经验,总结文件查看技巧: 更多学习教程公众号风哥教程itpux_com

风哥提示:cat、tail、head是Linux运维人员最常用的命令,但要注意使用场景。cat适合查看小文件,tail适合监控日志,head适合快速预览。在生产环境中,建议使用tail -f实时监控关键日志,配合grep过滤关键字,可以快速发现问题。记住,不要用cat查看大文件,这会占用大量内存和CPU资源!

# 文件查看技巧总结

# 1. 安全查看大文件
# less +F /var/log/large.log
(类似tail -f,但可以随时暂停浏览)

# 2. 查看文件并分页
# cat /etc/passwd | less

# 3. 查看文件并搜索
# cat /var/log/app.log | grep “ERROR” | less

# 4. 实时监控并高亮
# tail -f /var/log/app.log | grep –color=auto -E “ERROR|WARN|^”

# 5. 查看文件中间部分
# sed -n ‘100,200p’ /var/log/app.log

# 6. 查看文件并统计
# cat /var/log/app.log | wc -l
(统计总行数)

# 7. 查看文件并排序
# cat /var/log/app.log | sort | uniq | head -n 20

# 8. 查看压缩日志
# zcat /var/log/app.log.gz | tail -n 100

5.2 文件查看检查清单

在生产环境中查看文件时的检查清单:

文件查看检查清单:

  • 确认文件大小,大文件使用less
  • 确认文件权限和所有权
  • 确认文件编码格式
  • 实时监控时注意资源占用
  • 查看敏感文件时注意安全
  • 使用管道过滤敏感信息
  • 查看日志时注意时间范围
  • 保存重要日志片段
  • 使用grep过滤关键字
  • 注意日志轮转影响

5.3 相关工具推荐

与cat、tail、head相关的工具和替代方案: 学习交流加群风哥微信: itpux-com

# 相关工具推荐

# 1. less – 高级文件查看器
# less /var/log/large.log
# 优点:支持前后翻页、搜索、跳转

# 2. more – 简单分页查看器
# more /var/log/large.log
# 优点:简单易用,只能向前翻页

# 3. multitail – 多文件监控
# multitail /var/log/messages /var/log/secure
# 优点:可以同时监控多个文件,支持颜色高亮

# 4. lnav – 日志导航器
# lnav /var/log/*.log
# 优点:专业的日志查看工具,支持过滤、搜索、统计

# 5. grep – 文本搜索
# grep “ERROR” /var/log/app.log
# 优点:强大的文本搜索功能

# 6. awk – 文本处理
# awk ‘{print $1}’ /var/log/nginx/access.log
# 优点:强大的文本处理能力

# 7. sed – 流编辑器
# sed -n ‘100,200p’ /var/log/app.log
# 优点:可以查看文件任意部分

# 8. wc – 统计工具
# wc -l /var/log/app.log
# 优点:统计行数、字数、字节数

风哥总结:cat、tail、head是Linux系统中最基础也是最实用的文件查看命令。在生产环境中,这三个命令是运维人员的得力助手。cat用于查看小文件和合并文件,tail用于实时监控日志,head用于快速预览文件。建议熟练掌握这三个命令的各种参数和用法,特别是tail -f实时监控功能,这是排查问题的利器。记住,选择合适的工具查看文件,既能提高效率,又能避免资源浪费!更多视频教程www.fgedu.net.cn

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息