linu系统及应用应用开发实验报告册

合集下载

linux实验报告

linux实验报告

linux实验报告实验目的:通过对Linux操作系统的实践,掌握基本的Linux命令和操作方法,了解Linux操作系统的特点和优势。

实验一:Linux环境搭建在实验一中,我们首先需要搭建Linux操作系统的环境。

根据实验指导书的要求,我们选择了Ubuntu作为实验平台。

通过下载Ubuntu镜像文件,并利用虚拟机软件创建一个虚拟机,将镜像文件安装到虚拟机中。

在安装过程中,我们需要选择合适的分区和网络配置等,并设置root用户的密码。

实验二:基本命令的使用在实验二中,我们主要学习了Linux的基本命令的使用方法。

首先,我们了解了Linux文件系统的结构,包括根目录、用户目录、系统目录等。

然后,通过命令行终端进行一系列的实践操作,比如查看文件内容、创建目录、复制文件等。

这些命令的使用不仅提高了我们的工作效率,同时也增强了对Linux操作系统的理解。

实验三:软件安装与卸载实验三主要涉及到Linux的软件安装与卸载。

我们首先学习了使用APT工具进行软件包管理,通过安装命令行界面的方式安装了一些常用的软件,比如文本编辑器、终端工具等。

此外,我们还学习了如何卸载已安装的软件包,清理不需要的文件,以保持系统的整洁性。

实验四:权限管理在实验四中,我们学习了Linux的权限管理机制。

Linux操作系统采用了基于用户和组的权限模型,通过设置文件和目录的权限,实现对文件的读、写、执行的控制。

我们通过实际操作,创建了新的用户和组,并为不同的用户和组设置了不同的权限。

这样,可以有效地保护系统的文件和数据的安全性。

实验五:网络配置与服务搭建在实验五中,我们主要学习了Linux的网络配置和服务搭建。

通过设置网络接口、IP地址和网关等参数,实现了网络的正常连接。

同时,我们还学习了一些常用的网络命令,比如ping、ssh等。

此外,我们尝试搭建了一个简单的Web服务器,通过浏览器访问,可以查看服务器上的网页。

实验六:系统监控和故障恢复在实验六中,我们学习了Linux的系统监控和故障恢复方法。

Linux操作系统实验报告

Linux操作系统实验报告

实验报告实验名称Linux操作、使用、编程指导教师杨健实验类型验证实验学时2+2 实验时间2007.10.29 1、实验目的和要求1.能够安装某Linux发行版本(例如Red Hat)2.了解Linux的启动过程3.了解Linux文件的组织结构4.熟悉X Window 环境5.练习使用Linux 常用命令6.熟练使用Linux的C语言开发环境7.学习并掌握Linux 编译工具gcc 的使用方法8. 熟练使用Linux的C语言开发环境9. 学习并掌握Linux 编译工具gcc 的使用方法10. Linux操作系统下的熟悉并能够进行进程创建11. 掌握Linux操作系统下的并发进程间同步12. 掌握Linux操作系统下的进程间通信IPC二、实验环境(实验设备)Windows 2000 + VMWare + RedHat Linux 8三、实验原理及内容熟悉了vim的操作,知道它的打开方式,编译方法,和运行方法。

了解了vim的常见的命令。

实验报告pid_t pid; //pid_t是Linux下的进程号类型,也就是Process ID _ Type 的缩写。

其实是宏定义的//unsigned int a类型int data=5;if((pid=fork())<0) /*错误处理,此处的pid的值,可以说明fork调用后,目前执行的是父进程还是子进程*/{printf("fork error\n");exit(0);}else if(pid==0) /*这是新进程*/{data--;printf("child\'s data is:%d\n",data);exit(0);}else /*这是最初的父进程*/{printf("parent\'s data is:%d\n",data);}exit(0);}/*fork函数被调用一次但返回两次。

《Linux操作系统服务器配置与应用》实训报告

《Linux操作系统服务器配置与应用》实训报告

湖南工业职业技术学院信息系《Linux操作系统服务器配置与应用》实训报告《Linux操作系统服务器配置与应用》实训报告班级学号:学生姓名:任课教师:完成时间:成绩评定:目录一、使用Linux系统 (1)1. 使用ls、mkdir、rmdir、cd、mv、rm、cp等文件目录管理指令。

(2)2. 使用gzip、gunzip、tar等命令。

(2)3. 文本编辑命令 (3)4. 用户与组的管理 (3)二、管理Linux系统 (6)1. 配置常规网络参数 (6)三、配置与管理企业网站 (6)1、服务器IP是? (6)2、客户端分别是? (6)3、apache服务器启动 (7)4、两个文件 (7)5、分别测试网站服务器,有测试结果 (7)四、配置与管理FTP服务器 (8)1、服务器IP是? (8)2、客户端分别是 192.168.10.190 (8)3、服务器启动 (9)5、分别测试ftp服务器,有测试结果 (9)五、配置与管理DNS服务器 (10)一、使用L i n u x系统1. 使用ls、mkdir、rmdir、cd、mv、rm、cp等文件目录管理指令。

(1)使用ls指令查看/目录下的内容(2)使用mkdir指令在用户主目录中创建三个目录,分别以A、B、C为名称(3)使用rmdir指令删除C目录(4)使用cd指令进入A目录图1(5)使用mv指令将以B目录移动至A目录(6)使用rm指令删除B目录(7)使用cp指令将用户主目录下的.bashrc文件拷贝至A目录图22. 使用gzip、gunzip、tar等命令。

(1)使用gzip指令将用户主目录下的.bashrc文件压缩成bashrc.gz(2)使用gunzip指令将bashrc.gz文件解压(3)使用tar指令使用zxvf和czvf分别对vmware.tar.gz和用户主目录进行操作图33. 文本编辑命令(1)使用vi使用vi编辑一篇英文文章,学会保存文字,定位光标,删除文字,复制、剪切、粘贴文字,搜索文字,执行shell命令(2)使用cat查看文件(3)使用more命令(4)使用less命令(5)使用head命令(6)使用tail命令图44. 用户与组的管理(1)使用命令添加名称为user1、user2、user3、user4的用户(2)使用命令设置user1、user2、user3、user4用户的密码为redhat(3) 使用命令删除user2和user4用户(4)使用命令添加group18、grou19和group20三个组(5)使用命令删除group19组图5(6)who指令查看当前登陆系统的用户(7)使用命令看当前用户的UID与GID(8)使用命令查看当前使用shell的用户名称(9)使用su指令从root用户切换至user1,然后切换回root图65. 权限管理。

linux应用实验报告书

linux应用实验报告书

北京林业大学2012学年—2013学年第二学期 Linux应用实验报告书专业名称:班级:姓名:学号:实验题目:实验三 Vi编辑器的基本使用实验环境: Red Hat Linux 9 实验目的:1.通过Vi 操作练习,能够熟练使用Vi 中的常见操作,并且熟悉Vi 的3种模式。

2.熟悉shell的各项功能。

实验步骤:1.熟悉Shell环境,使用Shell的各种功能1)命令补齐功能①用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补齐命令的后半部分。

如图,输入da后按tab键直接补全date命令,回车后显示命令。

②用mkdir命令创建新的目录。

首先输入第一个字母m,然后按tab键,由于以m开头的命令太多,shell会提示是否显示全部的可能命令,输入n。

a)再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列表。

b)在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这个命令,然后输入需要的字母,再按tab键,让shell补齐剩下的命令。

c)最后输入要创建的目录名,按回车键执行命令。

d)多试几个命令利用tab键补齐。

实验过程截图如下:③命令别名功能a)输入alias命令,显示目前已经设置好的命令的别名。

b)设置别名ls为ls –l,以长格形式显示文件列表:c)显示别名ls代表的命令,确认设置生效:d)使用别名ls显示当前目录中的文件列表。

e)删除别名ls:#unalias ls。

f)显示别名ls,确认删除别名已经生效:g)最后再用命令ls 显示当前目录中的文件列表实验过程截图如下:④输入、输出重定向和管道(1) 输入/输出重定向a)用ls命令显示当前目录中的文件列表:b)使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中:c)查看文件list中的内容:d)再次使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中。

linux系统实训报告

linux系统实训报告

linux系统实训报告一、引言本报告是关于Linux系统实训的总结和经验分享。

在实训中,我们学习了Linux的基本概念、操作和应用,通过实际操作和实验验证,进一步加深了对Linux系统的理解和掌握。

二、实训内容1. Linux系统简介Linux是一种开源的操作系统,具有稳定性高、安全性好和开放性强的特点。

它广泛应用于各种设备和领域,如服务器、个人电脑、嵌入式系统等。

2. Linux常用命令在实训中,我们学习了Linux系统下的常用命令,如cd、ls、mkdir、rm等。

这些命令可以帮助我们进行文件的管理和操作。

3. 文件权限管理Linux系统有一套完善的文件权限管理机制。

我们学习了如何使用chmod和chown命令来修改文件的权限和所有者,以及如何通过chmod命令来设置文件的特殊权限。

4. 文本编辑器在Linux系统中,有多种文本编辑器可供选择,如vi和nano。

我们学习了如何使用这些编辑器来创建、编辑和保存文本文件,并体验了它们的强大功能和灵活性。

5. Bash脚本编程Bash是Linux系统默认的命令解释器,我们掌握了Bash脚本编程的基本知识,能够编写简单的脚本程序来实现自动化任务和批量操作。

6. 网络配置与服务Linux系统支持网络功能,我们学习了如何配置网络连接和设置IP地址,以及如何使用Linux系统提供的各种网络服务,如SSH、FTP等。

7. 系统管理和性能优化作为一种功能强大的操作系统,Linux提供了丰富的系统管理工具和性能优化手段。

我们学习了如何使用top、ps等命令来查看系统状态和进程信息,并掌握了一些优化技巧来提升系统性能。

三、实训经验总结1. 实践是最好的学习方法在Linux系统实训中,理论知识只是基础,真正的学习和体验是通过实践来完成的。

只有亲自动手操作和解决问题,才能真正理解和掌握Linux系统。

2. 多角度思考问题Linux系统是一种非常灵活和自由的操作系统,我们在实训中遇到了各种各样的问题和挑战。

linux实验系统实验报告

linux实验系统实验报告

linux实验系统实验报告Linux实验系统实验报告一、引言Linux实验系统是一个基于Linux操作系统的实验平台,旨在提供一个实践学习的环境,帮助学生深入了解Linux操作系统的原理和应用。

本实验报告旨在总结和分析我在使用Linux实验系统进行实验时的经验和收获。

二、实验环境1. 硬件环境:我使用的是一台配备Intel Core i5处理器和8GB内存的个人电脑。

2. 软件环境:我下载并安装了Linux实验系统的最新版本,该版本基于Ubuntu操作系统,并预装了一系列常用的开发工具和软件包。

三、实验内容1. 实验一:Linux基础命令的使用在这个实验中,我通过终端窗口使用了一些常用的Linux命令,如ls、cd、mkdir、rm等。

通过实际操作,我熟悉了Linux文件系统的结构和基本操作,掌握了如何在Linux中创建、删除和移动文件夹,以及如何查看文件和文件夹的属性。

2. 实验二:Shell脚本编程这个实验要求我们使用Shell脚本编写一个简单的程序,实现对指定文件夹中所有文件进行备份的功能。

通过这个实验,我学会了如何使用Shell编程语言,掌握了一些基本的语法和命令,比如if语句、for循环和cp命令。

我还学会了如何将Shell脚本保存为可执行文件,并在终端中运行。

3. 实验三:网络配置与管理这个实验主要涉及Linux系统的网络配置和管理。

我学会了如何配置网络接口,包括设置IP地址、子网掩码和网关。

我还学会了如何使用ping命令测试网络连接,以及如何使用ifconfig命令查看和管理网络接口的状态。

通过这个实验,我对Linux系统的网络配置有了更深入的了解。

四、实验收获通过使用Linux实验系统进行实验,我获得了以下收获:1. 对Linux操作系统有了更深入的了解:通过实际操作,我对Linux操作系统的基本原理和文件系统有了更深入的了解。

我学会了如何在Linux中进行文件和文件夹的管理,以及如何使用命令行界面进行各种操作。

linux操作系统应用实验报告

linux操作系统应用实验报告

《实用操作系统》实验报告实验报告:实验项目名称:linux操作系统应用班级:学号:12+++ 姓名:地点:B512 时间:2013 年10 月16 日一.实验目的1、掌握linux操作系统安装,安装采用的是硬盘安装d:\soft\sysconfig\rhel5\*.iso.2、熟悉linux操作系统常用桌面应用3、掌握vi、vim修改开机系统配置文件/etc/inittab.二.实验设备计算机设备一台三.实验内容与步骤实验内容如下:1、linux操作系统安装root的密码普通用户的名称、密码分区默认的硬盘的处理ide、scsi开机图形界面-会话--勾选gnome、或kde2、gnome桌面应用3、kde桌面应用4、开机系统配置文件修改右击-打开终端-vi /etc/inittab命令模式插入模式底行模式Linux系统安装实验步骤如下(以“标准”选项类型配置为例):1.打开VMware workstation,新建虚拟机。

2.虚拟机配置选择“标准”,下一步选择硬件兼容性workstation6。

(选择“自定义安装”中间步骤有部分差别,在此省略,在后面实验分析中作讨论)3.安装客户机操作系统选择“我以后再安装操作系统”,点击下一步。

4.客户及操作系统选择“Linux”,版本为“red hat enterprise linux5”,其他默认,点击下一步。

5.命名虚拟机名称及选择位置,位置最好选择系统C盘以外。

6.指定磁盘容量,选择默认点击下一步。

7.准备创建虚拟机,点击“定制硬件”按钮。

8.在设备框内,点击“新CD/DVD”,在右边连接处,选择“使用ISO镜像文件”,浏览选上已下好的Linux镜像,点击确定和完成。

9.在命令框中,点击“打开该虚拟机电源”。

10.图形界面出现后,直接按回车键即在图形模式下安装Linux。

11.当完成程序检测系统后,在安装程序询问是否测试CD媒介,直接选择“skip”跳过。

《Linux操作系统服务器配置与应用》实训报告

《Linux操作系统服务器配置与应用》实训报告

《Linux操作系统服务器配置与应用》实训报告Linux操作系统服务器配置与应用实训报告一、引言随着云计算和大数据的兴起,Linux操作系统在服务器领域的应用越来越广泛。

为了更好地掌握Linux操作系统服务器配置与应用的相关知识,我们进行了本次实训。

本报告将详细介绍实训内容、实训过程中遇到的问题以及解决方法,并对实训效果进行总结。

二、实训内容及方法本次实训的内容主要包括Linux操作系统的基本介绍、服务器硬件配置、网络配置、安全配置、Web服务器配置、数据库服务器配置等。

实训使用了实验室提供的几台服务器,通过远程连接进行配置和应用。

三、实训过程1. Linux操作系统的基本介绍:我们首先学习了Linux操作系统的基本概念、特点以及与Windows操作系统的区别。

了解了Linux系统的优势和适用领域。

2.服务器硬件配置:我们学习了如何配置服务器的硬件,包括CPU、内存、硬盘等。

通过实际操作,了解了服务器硬件的重要性和如何选择合适的硬件配置。

3.网络配置:在实验过程中,我们学习了网络配置的基本知识,并通过配置IP地址、子网掩码、网关等参数,实现了服务器与外部网络的通信。

4.安全配置:为了保护服务器的安全,我们进行了一系列的安全配置操作。

包括设置防火墙、修改SSH端口、禁用不必要的服务等。

这些操作可以有效地提高服务器的安全性。

5. Web服务器配置:本次实训中,我们使用了Apache作为Web服务器,并学习了如何进行配置。

通过修改Apache的配置文件,我们实现了在服务器上搭建一个简单的网站。

6.数据库服务器配置:我们还学习了MySQL数据库的配置和使用。

通过安装MySQL数据库,创建数据库、用户以及表,我们成功地在服务器上搭建了一个简单的数据库服务器。

四、问题与解决方法在实训过程中,我们遇到了一些问题,下面对其中的两个问题及解决方法进行介绍。

问题1:连接服务器时提示连接超时。

解决方法:这个问题可能是由于网络配置不正确导致的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

l i n u系统及应用应用开发实验报告册文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]合肥师范学院实验报告册2013-2014第二学期系别计算机科学与技术实验课程 linux系统及应用专业 11级计算机科学与技术班级嵌入式应用技术姓名学号指导教师何冀军实验项目一览表实验一 Linux系统安装和简单配置一、实验目的(1)掌握Linux操作系统的安装步骤;(2)掌握Linux系统的简单配置方法;(3)掌握Linux系统的启动、关闭步骤。

二、实验内容(1)安装Linux系统;(2)配置Linux系统运行环境;(3)正确地启动、关闭系统。

三、实验软件VMWare Workstation ;Red hat linux 镜像文件;四、实验主要步骤(1)配置并安装操作系统;(2)vi创建程序并实用GCC编译;(3)运行程序;五、实验结果实验项目二 Linux基本命令的使用一、实验目的(1)掌握Linux一般命令格式;(2)掌握有关文件和目录操作的常用命令;(3)掌握有关进程操作的常用命令;(4)熟练使用man命令。

二、实验内容(1)正确地登陆和退出系统;(2)熟悉date,cal,who,echo,clear,passwd命令;(3)在用户主目录下对文件进行如下操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等;(4)对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等;(5)利用man显示date,echo等命令的手册页;(6)显示系统中的进程信息。

三、实验软件VMWare Workstation ;Red hat linux ;四、实验主要步骤1、登录进入系统,修改个人密码。

2、使用简单命令:date,cal,who,echo,clear等,了解linux命令格式;3、浏览文件系统:(1)运行pwd命令,确定当前工作目录;(2)运行ls –l命令,理解各字段含义;(3)运行ls –ai命令,理解各字段含义。

(4)使用cd命令,将工作目录改到根目录(/)上。

(5)直接使用cd,用pwd命令验证回到的位置。

(6)用mkdir建立一个子目录subdir;(7) 将工作目录改到subdir.4、文件操作(1)验证当前工作目录在subdir;(2)运行date >file1,然后运行cat file1,看到什么信息(3)运行cat subdir,会有什么结果,为什么(4)利用man 命令显示date 命令的使用说明;(5)运行man date>>file1,看到什么运行cat file1,看到什么(6)利用ls –l file1,了解链接计数是多少运行ln file1 ../fa,再运行ls –l file1,看链接计数有无变化用cat命令显示fa 文件内容。

(7)显示file1的前10行,后10行。

(8)运行cp file1 file2,然后ls –l,看到什么运行 mv file2 file3,然后ls –l看到什么运行 cat f*,结果怎样(9)运行rm file3,然后ls –l,结果如何(10)在/etc/passwd文件中查找适合你注册名的行.(11)运行ls –l,理解各文件的权限是什么(12)用两种方式改变file1的权限。

(13)统计file1文件的行数、字数。

(14)运行 man ls|more,显示结果是什么运行 cat file1|head -20|tee file5 ,结果如何运行cat file5|wc,结果如何五、实验结果实验项目三 vi编辑器一.实验目的学习使用vi编辑器建立、编辑、显示及加工处理文本文件。

二.实验内容(1)进入和退出vi;(2)利用文本插入方式建立一个文件;(3)在新建的文本文件上移动光标位置;(4)对该文件执行删除、复原、修改、替换等操作。

三.实验软件VMWare Workstation ;Red hat linux ;四.实验主要步骤1、进入vi;2、建立一个文件,如.进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。

最后将该文件存盘。

回到shell状态下。

3、运行gcc –o myfile,编译该文件,会发现错误提示。

理解其含义。

4、重新进入vi,对该文件进行修改。

然后存盘,退出vi。

重新编译该文件。

如果编译通过了,可以用./myfile运行该程序。

5、运行man date > file10,然后vi file10.使用x,dd等命令删除某些文本行。

使用u命令复原此前的情况。

使用c,r,s等命令修改文本内容。

使用检索命令进行给定模式的检索。

五.实验结果实验项目四 shell编程一、实验目的(1)了解shell的作用和主要分类;(2)掌握bash的建立和执行方式;(3)掌握bash的基本语法;(4)学会编写shell脚本。

二、实验内容(1)shell脚本的建立和执行;(2)历史命令和别名定义;(3)shell变量和位置参数、环境变量;(4)bash的特殊字符;(5)一般控制结构;(6)算术运算及bash函数。

三.实验软件VMWare Workstation ;Red hat linux ;四.实验主要步骤1、利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。

然后以不同方式执行脚本。

2、运行history命令,配置历史命令环境。

3、体会bash的命令补齐功能。

4、用alias定义别名,然后执行。

5、编辑如下脚本进行执行:6、编写一个shell脚本,求斐波那契数列的前10项及总和。

7、设计一个程序cuts,它由标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n 个字符至第m个字符之间的所有字符(包括这两个字符)。

例如: $cuts 11 14tis is a test of cuts program (输入)tst(显示结果五.实验结果实验项目五常用开发工具一.实验目的(1)掌握C语言编译的基本用法;(2)掌握gdb调试工具的基本用法;(3)理解make工具的功能,学会编制makefile的方法。

二.实验内容(1)利用gcc编译C语言程序,使用不同选项,观察并分析显示结果;(2)用gdb调试一个编译后的C语言程序;(3)编写一个由多个文件构成的C语言程序,编制makefile,运行make工具进行维护。

三.实验软件VMWare Workstation ;Red hat linux ;四.实验主要步骤1、改写例,使用下列选项对它进行编译:-I,-D,-E,-c,-o,-l。

2、完成对思考题、的调试。

3、完成对思考题的编制,并使用make进行维护。

五.实验结果实验项目六 Linux内存管理一、实验目的(1)了解Linux内存管理的基本原理和方法;(2)了解内存申请和释放的方式;(3)掌握malloc,realloc,free,calloc 函数的使用。

二、实验内容(1)使用C语言编写一个包含内存分配与释放的程序,观察分析并显示运行结果;(2)通过gdb等工具对程序进行调试;(3)在程序运行过程中观察系统内存的使用情况,验证内存管理函数的执行效果。

三.实验软件VMWare Workstation ;Red hat linux ;四.实验主要步骤(1)内存库函数实验-malloc函数,运行程序清单6-1,写明运行结果。

(2)内存库函数实验-calloc函数,运行程序清单6-2,写明运行结果。

(3)内存库函数实验-realloc函数,运行程序清单6-3,写明运行结果。

(4)内存错误分析实验:指出程序清单6-4的内存错误原因。

指出程序清单6-5的内存错误原因。

通过比较程序清单6-6、6-7输出结果,分析程序6-3内存错误原因。

五.实验结果程序清单:(1)5-1#include <>#include <>main(){char *p;clrscr();ApplyForMem(str,300);free(str);();return 0;}(5)5-5#include <>#include <>#include <>int main() {char z = *(const char *)0;exit(EXIT_SUCCESS);}(6)5-6#include “”#define HEAP_BLOCK_SIZE 32int main(){验目的(1)理解系统调用和库函数的异同;(2)学会用系统调用和库函数进行编程;(3)掌握一些常用的系统调用和库函数的功能及应用。

二.实验内容(1)使用系统调用对文件进行操作;(2)使用系统调用对进程进行控制;(3)使用管道机制进行I/O;(4)使用信号机制进行进程通信。

三.实验软件VMWare Workstation ;Red hat linux ;四.实验主要步骤1、完成思考题,上机编译、运行。

2、完成对思考题,上机编译、运行。

3、编译并运行例程序,体会管道机制的应用。

4、编译并运行例程序,体会消息队列的管理。

5、完成思考题,上机编译、运行。

五.实验结果。

相关文档
最新文档