Linux文件系统实验报告

合集下载

《Linux系统管理》文件权限管理实验报告

《Linux系统管理》文件权限管理实验报告

《Linux系统管理》文件权限管理实验报告一、实验目的:1.了解和说下创建并使用脚本的步骤2.掌握shell的变量及特殊字符3.掌握shell的输入输出命令4.掌握常用shell程序逻辑结构语句二、实验内容:1.创建一个简单的列出目录和日期等shell脚本并运行之。

2.shell的输入输出重定向完成以下题目:(1)创建一个mytest文件,然后查看mytest和youtest文件,并观察执行结果。

(2)查看mytest和youtest文件过程中的正确信息输出定向到mytestout文件中,错误信息显示在屏幕,并查看定向文件。

(3)查看mytest和youtest文件过程中正确信息输出定向附加到mytestout,将错误信息输出定向到error,并查看定向文件。

(4)查看mytest和youtest文件过程中正确信息和错误信息混合输出到message文件中,并查看定向文件。

(5)查看mytest和youtest文件过程中正确信息和错误信息混合输出到/dev/null设备文件中。

(6)使用输入重定向把mytestout文件导入给wc -l命令,统计一下文件中的内容行数。

3.用shell语言编制shell程序,该程序在用户输入(read命令)年、月之后,自动打印输出(echo命令)该年该月的日历。

4.shell变量操作(1)编写一个shell脚本,并使它执行时显示/bin目录下所有以b开头的文件和目录并按ASCII码由大到小排序保存到temp文件中。

(2)编写一个shell脚本文件并执行,其中包含date和who 命令。

(3)编写一个简单的shell脚本文件,把你的名字赋给myname 的shell变量并输出改变的内容。

(4)查看系统的环境变量,并保存到文件myv中。

(5)编写一个shell脚本文件,从键盘读取数据保存到myvn 变量中并输出该变量。

(6)编写以下脚本程序带多个命令行参数运行并说明原因。

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文件系统

2.2 文件系统操作命令(2)



ls :显示当前目录中的文件和子目录列表 mkdir:建立子目录 rmdir: 删除“空”的子目录或无用的目录文件 mv :将文件以及目录移到其他位置,或更改文件 以及目录的名称 pwd :显示用户当前所在的目录 rm : 删除系统中过时或无用的文件 man :详细了解某个命令 quota:限制和显示用户可用的磁盘空间
ext、ext2、ext3、JFS、XFS、Linux Swap、VFAT


1.1 Linux文件系统—文件系统类型

ext2文件系统
GNU/Linux系统中标准的文件系统 文件存取性能极好,对中小型文件尤为突出 文件状态可能不一致,非日志文件系统

ext3文件系统
日志式文件系统 回溯追踪功能,安全性较高 文件处理速度较慢


3.2 实验内容

熟悉Linux文件操作命令,如查看文件系统的分区和 设备文件、查看目录结构、创建文件夹、复制文件、 更改文件权限等,观察Linux文件系统的特点 对比实验一的文件拷贝代码,利用不同的文件操作 函数实现文件的输出和拷贝 实现对光盘的加载和访问,然后卸载设备 加载Windows文件系统,实现对Windows数据的访 问和共享
2.1 文件系统生成和加载—命令du

命令du:统计目录或文件所占磁盘空间大小
逐级进入指定目录的每个子目录并显示该目录占用文
件系统数据块的情况 语法:du [options] [names]
无names时,对当前目录进行统计

option选项:
-s:对每个names只给出占用的数据块综述 -a:递归显示指定目录中所有文件占用的数据块数

实验报告-Linux-实验三-Linux文件管理与常用命令

实验报告-Linux-实验三-Linux文件管理与常用命令
more [option] filename
下面给出示例,如图3-2所示。
图3-2 more命令显示/etc/inittab文件
(3)less命令
该命令的功能和more命令的功能基本相同,也是用来按页显示文件。如果要按页显示/etc/inittab文件,显示效果,如图3-3所示。
图3-3 less命令显示/etc/inittab文件
3、熟悉Linux下常用的压缩归档工具gzip,bzip,tar,zip的相关操作。
实验仪器:
Windows 7装有Red Hat Enterprise Linux 5.2操作系统虚拟机PC机一台。
实验内容及步骤(或程序清单):
1、用root账户登录到终端,使用cat,more,less,head,tail等命令显示/etc/inittab文件。
图3-7复制/etc目录到/test
4、将/root/test/etc目录用tar命令打包成etc.tar.gz,查看etc.tar.gz的内容,解压缩etc.tar.gz。如图3-8所示。
实验内容及步骤(或程序清单):
图3-8 tar命令压缩/etc并解压缩
5、删除test目录,如图3-9所示。
图3-9删除test目录
通过该实验熟悉了linux操作系统文件及文件夹的相关命令操作掌握了linux下常用的压缩归档工具gzipbziptarzip的使用方法对今后学习linux操作系统起到很大帮助
姓名:黄兵周
学号:07
2013年10月16日
实验项目:文件管理与常用命令
实验目的:
1、熟悉文件显示的相关操作;
2、熟悉文件及文件夹的相关操作;
实验内容及步骤(或程序清单):
(4)head命令

《Linux系统管理》Linux文件管理实验报告

《Linux系统管理》Linux文件管理实验报告

《Linux系统管理》Linux文件管理实验报告一、实验目的:1.掌握Linux系统文件的操作命令2.掌握Linux系统权限的操作命令二、实验内容:1.用文件显示命令显示文件。

(1)以root身份进入系统命令符界面,查看当前目录下的文件及目录信息,请使用常见的选项进行显示并观察结果;查看/etc目录下的文件及目录信息,并查看/etc目录自己的信息,简述两种显示结果是否有区别?(2)显示/etc/passwd文件中的信息同时含有行号,并用more、less、head及tail命令进行不同的查看方式对该文件的部分内容进行显示;(3)在/tmp目录下创建/lianxi/first目录路径;在/tmp/lianxi目录下同时创建名为second和third的两个目录;生成 test目录作为lianxi的子目录,并将其权限设置为(744)(要求创建后查看是否存在);(4)利用cat及重定向命令在/tmp/lianxi/first目录中建立小型文件m1,输入以下信息:echo “Hello! Linux”echo ‘date’并显示m1文件的内容;(5)将当前日期重定向至/tmp/lianxi/first/目录的m2文件中,并显示其文件内容;(6)并利用cat命令将m1和m2文件合并至/tmp/lianxi/first/目录的m3文件中,并显示文件内容。

2.用查找、排序、显示内容命令操作文件。

(1)检索/etc/passwd文件中名为root的字符串,且显示其所在文件中的行号,同时利用管导线再次完成此功能;利用cat和管道线查看配置文件/etc/logrotate.conf中过滤掉空格及‘#’注释的文件内容。

(2)重新编辑/tmp/lianxi/first/m1文件中的内容,使得最终m1文件中的内容显示为:Study 30 independentlyHardly 95 finishLinux 85 task●查看m1文件中的内容;●对m1文件按每行第一个字符进行排序输出;●对m1文件按每行第一个字符进行方向排序;●对m1文件按每行第一个字段进行数值排序;●对m1文件按每行以第三个字段为关键字进行排序;●把root目录下的所有文件按文件由大到小进行排序。

linux的文件系统、目录结构、文件管理实验报告

linux的文件系统、目录结构、文件管理实验报告

linux的文件系统、目录结构、文件管理实验报告Linux是一款使用广泛的操作系统,具有丰富的文件系统、目录结构、文件管理系统。

以下是Linux文件系统实验报告。

一、文件系统文件系统是指计算机操作系统用来管理文件和数据存储空间的一种机制。

Linux系统使用的是可扩展的第二代文件系统(ext2、ext3、ext4),它支持更大的文件和更大的分区,并使用了更高效的索引和更快的文件系统检查。

二、目录结构Linux目录结构是一个统一的层次结构,它将计算机的所有文件都组织到一个合理的层次结构中。

以下是Linux常见的目录结构:1. /(根目录):根目录是文件系统的根节点,所有文件和目录都以它为起点。

2. /bin:包含一些最基本的系统工具,比如ls、cp、mv等常用命令。

3. /dev:包含系统设备文件。

4. /etc:包含系统中的配置文件和脚本文件。

5. /home:用于存储用户的个人文件和数据。

6. /lib:包含了系统中使用的一些共享库文件。

7. /mnt:用于挂载外部设备,比如USB、CD-ROM等。

8. /opt:用于存放第三方软件的安装文件和数据。

9. /proc:该目录是一个虚拟目录,它不占用实际存储空间,但可以查看和修改系统的运行状态。

10. /root:超级用户的家目录。

11. /sbin:包含一些管理系统的系统管理员使用的工具。

12. /tmp:用于存放临时文件和目录。

13. /usr:用于存放非本地(不是系统)用户的应用程序和数据。

14. /var:用于存放可变的数据,比如日志文件。

三、文件管理文件管理是指对计算机文件进行操作,如创建、复制、粘贴、移动和删除等。

下面是Linux 文件管理的一些常见命令:1. ls:列出目录中的文件和子目录。

2. cd:切换目录。

3. mkdir:创建一个新目录。

4. touch:创建一个新文件。

5. cp:复制文件或目录。

6. mv:移动或重命名文件。

linux实验报告1

linux实验报告1

linux实验报告1《Linux 实验报告 1》一、实验目的本次 Linux 实验的主要目的是让我们熟悉 Linux 操作系统的基本操作和常用命令,了解其文件系统结构,并能够在终端环境下进行一些简单的任务处理。

二、实验环境本次实验使用的是虚拟机软件 VirtualBox 中安装的 Ubuntu 2004LTS 操作系统。

三、实验内容及步骤(一)用户登录与系统信息查看1、打开虚拟机,进入 Ubuntu 系统登录界面,输入用户名和密码登录。

2、在终端中输入命令“uname a”查看系统内核信息,包括操作系统类型、内核版本等。

3、输入“lsb_release a”命令查看系统的发行版信息,如发行版名称、版本号等。

(二)文件和目录操作1、使用“cd”命令切换到不同的目录,如“cd /home”切换到用户主目录,“cd /etc”切换到系统配置目录等。

2、使用“ls”命令列出当前目录下的文件和子目录,结合“l”选项查看详细信息,包括文件权限、所有者、大小、修改时间等。

3、创建新目录,使用“mkdir testdir”命令在当前目录下创建一个名为“testdir”的目录。

4、在新创建的目录中创建一个文本文件,使用“touch testfiletxt”命令创建一个空的文本文件。

5、使用“cat”命令查看文本文件的内容,由于文件为空,此时没有输出。

6、使用“vi”或“nano”编辑器编辑文本文件,输入一些内容后保存退出。

7、使用“cp”命令复制文件,如“cp testfiletxt testfile_copytxt”复制文件并命名为“testfile_copytxt”。

8、使用“mv”命令移动文件,将“testfile_copytxt”移动到其他目录。

9、使用“rm”命令删除文件和目录,注意删除目录时需要使用“r”选项,如“rm r testdir”删除“testdir”目录及其包含的所有文件。

(三)文件权限管理1、使用“ls l”命令查看文件的权限信息,了解权限的表示方式,如“rwrr”等。

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系统使用实验报告Linux 系统使用实验报告一、实验目的本次实验旨在深入了解和熟悉 Linux 操作系统的基本操作、命令行使用以及系统配置,掌握常见的文件管理、进程管理、用户权限管理等功能,提高对 Linux 系统的实际应用能力。

二、实验环境1、操作系统:Ubuntu 2004 LTS2、实验工具:终端模拟器(Terminal)三、实验内容与步骤(一)系统登录与基本命令1、启动计算机,选择 Ubuntu 操作系统,输入用户名和密码登录系统。

2、打开终端模拟器,熟悉常用的基本命令,如`ls` (列出当前目录下的文件和文件夹)、`cd` (切换目录)、`mkdir` (创建新目录)、`rmdir` (删除空目录)等。

(二)文件管理1、在用户主目录下创建一个名为`experiment` 的文件夹,使用`mkdir experiment` 命令。

2、进入该文件夹,使用`cd experiment` 命令。

3、在`experiment` 文件夹中创建一个文本文件`filetxt` ,使用`touch filetxt` 命令。

4、使用`vi` 或`nano` 编辑器打开`filetxt` 文件,输入一些文本内容,并保存退出。

5、查看文件的内容,使用`cat filetxt` 命令。

6、复制文件,使用`cp filetxt file_copytxt` 命令。

7、移动文件,使用`mv filetxt/`命令将文件移动到上级目录。

8、删除文件,使用`rm file_copytxt` 命令。

(三)进程管理1、运行一个后台进程,例如`ping &`,然后使用`jobs` 命令查看后台进程。

2、将后台进程切换到前台,使用`fg %1` (其中%1 为后台进程的编号)命令。

3、终止进程,使用`Ctrl + C` 组合键终止正在运行的进程。

4、查看系统当前运行的进程,使用`ps aux` 命令。

(四)用户权限管理1、创建一个新用户,使用`sudo adduser username` 命令,其中`username` 为新用户的用户名。

Lniux文件系统实验报告

Lniux文件系统实验报告

实验五文件系统
一、实验目的
1.掌握Linux系统下fdisk命令的用法。

2.掌握Linux系统下文件系统的创建、挂载与卸载。

3.掌握Linux系统下利用RAID技术实现磁盘冗余阵列的方法。

二、实验内容
1.磁盘分区管理
2.动态磁盘管理
三、实验指导
1.服务器现需要新建一块20GB的硬盘,需要对新增的硬盘进行分区管理、分区方案为/user目录所在分区10GB,/backup目录所在分区5GB,/home目录所在分区5GB。

步骤一,添加新硬盘
点击“编辑虚拟机设置”按钮,如下图
选择添加硬盘,如下图
下一步选择“SCSI(S)推荐”,如下图
下一步创建“新虚拟磁盘”,设置磁盘空间大小为“20GB”,如下图所示
单击完成,即完成了新硬盘的添加,如下图所示
通过fdisk -l命令查看新硬盘是否添加成功
步骤二,利用fdisk命令对/dev/sdb/进行分区
步骤三,格式化新建分区,在各分区上建立ext3类型的文件的系统,建立时要求检查磁盘坏块并显示详细信息。

步骤四,将/dev/sdb1挂载到/user目录,/dev/sdb2挂载到
/backup目录,/dev/sdb3挂载到/home目录
2、某公司的Linux服务器新增两块硬盘,硬盘大小为40GB。

为了实现数据保护功能,现需利用2块硬盘创建RAID1卷。

要求创建的RAID设备名为/dev/md110,并利用mkfs命令创建ext3文件系统。

最后将文件系统挂载到系统上。

四、实验总结
通过本次实验,我学习到fdisk 的一些命令和在Linux 系统下利用RAID 技术实现磁盘冗余阵列的方法。

操作系统文件系统实验报告

操作系统文件系统实验报告

操作系统文件系统实验报告操作系统文件系统实验报告引言操作系统是计算机系统中的重要组成部分,负责管理计算机的硬件和软件资源,为用户提供一个友好的界面和高效的资源管理。

文件系统作为操作系统的一个重要组成部分,负责管理计算机中的文件和目录,提供文件的读写和存储功能。

本实验旨在深入了解操作系统文件系统的原理和实现方式,并通过实际操作来加深对文件系统的理解。

一、实验背景操作系统中的文件系统是一个层次化的结构,它将计算机中的存储空间划分为若干个逻辑单元,用来存储和管理文件和目录。

文件系统的设计和实现涉及到文件的组织方式、文件的存储结构、文件的访问方式等多个方面。

本实验将以Linux操作系统为例,通过使用Linux文件系统的一些基本命令和操作,来深入了解文件系统的原理和实现方式。

二、实验目的1. 了解文件系统的基本概念和原理。

2. 掌握Linux文件系统的基本命令和操作。

3. 熟悉文件的读写和存储方式。

4. 加深对文件系统的理解和应用。

三、实验内容1. 文件系统的基本概念和原理文件系统是操作系统中用来管理文件和目录的一种机制,它将计算机中的存储空间划分为若干个逻辑单元,用来存储和管理文件和目录。

文件系统的基本概念包括文件、目录、路径等,文件是计算机中存储数据的基本单位,目录是用来组织和管理文件的一种方式,路径是用来定位文件和目录的一种方式。

2. Linux文件系统的基本命令和操作Linux操作系统是一个开源的操作系统,它提供了丰富的文件系统命令和操作。

通过使用这些命令和操作,可以对文件和目录进行创建、删除、复制、移动等操作。

例如,可以使用"mkdir"命令来创建一个新的目录,使用"rm"命令来删除一个文件,使用"cp"命令来复制一个文件,使用"mv"命令来移动一个文件等。

3. 文件的读写和存储方式文件的读写是文件系统的一项重要功能,它可以通过读取和写入文件来实现对文件内容的访问和修改。

操作系统文件系统实验报告

操作系统文件系统实验报告

操作系统文件系统实验报告1. 实验目的本实验旨在深入了解操作系统中的文件系统,掌握文件系统的基本原理和操作。

2. 实验环境本实验使用Linux操作系统作为实验环境,其中包括以下软件和工具: - 操作系统:Ubuntu 20.04 - 文件系统:EXT4 - 终端模拟器:GNOME Terminal3. 实验步骤3.1 创建虚拟硬盘首先,我们需要创建一个虚拟硬盘,作为文件系统的存储介质。

可以使用以下命令来创建一个大小为1GB的虚拟硬盘:$ dd if=/dev/zero of=disk.img bs=1M count=10243.2 格式化虚拟硬盘接下来,我们需要使用mkfs命令来格式化虚拟硬盘,使其支持EXT4文件系统:$ mkfs.ext4 disk.img3.3 挂载虚拟硬盘格式化完成后,我们可以将虚拟硬盘挂载到系统中的一个目录上,以便我们可以访问其中的文件:$ mkdir /mnt/disk$ mount disk.img /mnt/disk3.4 创建文件现在,我们可以在挂载的虚拟硬盘上创建文件,可以使用touch命令来创建一个空文件:$ touch /mnt/disk/file.txt3.5 写入文件我们可以使用echo命令向文件中写入一些内容:$ echo "Hello, World!" > /mnt/disk/file.txt3.6 读取文件可以使用cat命令来读取文件的内容:$ cat /mnt/disk/file.txt3.7 卸载虚拟硬盘完成实验后,我们可以卸载虚拟硬盘,以便之后的实验使用:$ umount /mnt/disk4. 实验总结通过本次实验,我们深入了解了操作系统中的文件系统,并学会了如何创建、格式化、挂载和访问文件系统。

文件系统是操作系统中非常重要的一部分,它负责管理和组织计算机上的文件和目录,为用户提供了方便的文件操作接口。

掌握文件系统的基本原理和操作对于进一步学习和理解操作系统的工作原理具有重要意义。

linux操作系统实验2.Linux系统管理 报告

linux操作系统实验2.Linux系统管理 报告

实验2.L i n u x系统管理1.实验目的Linux系统各种文件系统的特点目录和结构权限系统模型用户管理用户组管理2.实验内容Linux目录结构# ls –l用户与权限# chown xu myfile目录的存取权限# ls –ld chen(目录名)chmod命令用户的帐户信息都保存在口令文件/etc/passwd为了保证系统的安全性,LINUX系统通常会对用户的口令进行shadow处理,也就是把用户口令保存到只有root用户才可读的/etc/shadow文件中,这个文件职可以称为影子文件。

该文件包含的用户名与/etc/passwd文件中的相同,并且存储了用户加密口令等相关信息。

# adduser liang此时就会在系统中添加了一个用户名称为liang的新用户。

通过终端为新用户,设置初始密码:命令如下;# passwd liang用userdel命令删除用户#userdel aa禁用liang.以root身份登录在终端上输入命令:# passwd –l liang启用liang.以root身份登录在终端上输入命令:# passwd –u liang修改用户名,将用户名:hjq 改为hanjieqiong,命令如下锁定:“hanjieqiong“用户,使其不能登陆,命令如下:该命令是通过在shadow文件中指定帐号的口令字段前加入锁定符号“!”锁定此用户的帐号的解锁“hanjieqiong”帐号:更改用户命令外壳shell# usermod –s /bin/tcsh hanjieqiong建立新组# groupadd newclass改变用户的初始组。

# usermod –g newclass hanjieqiong将用户添加到新组。

# usermod –G newclass, lp bin(要求此用户已经存在) 删除组# groupdel newclass3.实验数据4.实验总结本次实验了解了Linux系统各种文件系统的特点,Linux系统的目录和结构Linux系统的权限系统模型,Linux系统的用户管理和用户组管理,并通过linux 命令实际操作和配置。

linux实验报告总结

linux实验报告总结

linux实验报告总结《Linux 实验报告总结》在学习计算机技术的过程中,Linux 操作系统的重要性日益凸显。

为了更深入地了解和掌握 Linux 的相关知识和技能,我进行了一系列的实验。

通过这些实验,我不仅增强了对 Linux 系统的操作能力,还对其原理和应用有了更深刻的认识。

一、实验目的本次 Linux 实验的主要目的是熟悉 Linux 操作系统的基本命令和操作,了解文件系统的结构和管理,掌握进程管理和系统监控的方法,以及学会配置网络服务和进行系统安全设置。

二、实验环境实验所使用的操作系统是 Ubuntu 2004 LTS 版本,在虚拟机中进行安装和配置。

虚拟机软件为 VMware Workstation Pro 16,硬件配置为4GB 内存、2 个 CPU 核心和 20GB 硬盘空间。

三、实验内容及步骤(一)用户和权限管理1、创建新用户使用`adduser` 命令创建了新用户`user1`,并为其设置了密码。

2、赋予用户权限通过修改`/etc/sudoers` 文件,赋予`user1` 部分管理员权限,使其能够执行一些特定的系统管理命令。

(二)文件和目录操作1、文件创建和编辑使用`touch` 命令创建了一个空文件`filetxt`,然后使用`vi` 或`nano` 编辑器对其进行内容编辑。

2、目录创建和管理使用`mkdir` 命令创建了新目录`dir1`,并使用`cp` 、`mv` 和`rm` 等命令对文件和目录进行复制、移动和删除操作。

(三)进程管理1、查看进程信息使用`ps` 和`top` 命令查看系统中正在运行的进程信息,包括进程 ID、CPU 使用率、内存占用等。

2、进程控制使用`kill` 命令终止指定的进程,使用`nice` 和`renice` 命令调整进程的优先级。

(四)系统监控1、系统性能监控使用`vmstat` 、`iostat` 和`sar` 等命令监控系统的 CPU 、内存、磁盘 I/O 等性能指标。

linux操作系统实验报告书

linux操作系统实验报告书

linux操作系统实验报告书(1)一.实验名称:Linux基本命令的使用二.实验目的:1.进一步练习Linux登录和退出的方法2.练习与目录和文件操作相关的Linux命令:cd:切换目录mkdir:建立一个新目录cp:文件拷贝ls:显示目录及文件的内容mv:更改文件名称cat、more、less:浏览文件内容chmod:更改文件或目录的访问权限rm:删除文件rmdir:删除目录三.实验内容:1.登录进入Linux 系统。

2.将工作目录切换到根目录,用ls命令查看根目录下的内容,尝试使用-a,-l,-F,-A,-lF等不同选项并比较不同之处。

3.在家目录下建立一个名为test的新目录,将工作目录切换到test下,然后将/tmp下的文件lesson.log拷贝到该目录下,并将lesson.log用mv命令改名为:TestRenName.txt。

4.用cat命令浏览文件TestRenName.txt的内容,用more命令进行浏览翻页操作。

再用less命令浏览文件TestRenName.txt的内容。

5.用ls命令查看test下的文件的权限,并更改文件TestRenName.txt的权限为:只允许自己读写,不允许其他用户访问。

用ls命令查看更改后的结果后再将文件TestRenName.txt的权限更改为系统默认的权限:-rw-r--r--。

6.用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录。

7.用logout命令退出系统。

四.结果分析:五.实验心得*********************************************************************linux操作系统实验报告书(2)一.实验名称:Linux基本命令的使用二.实验目的:1. 掌握监视系统的几个Linux基本命令:PS--查看系统的进程tty--查看当前使用的终端df--查看系统的文件系统的空间使用情况du--查看具体某个文件和目录的磁盘空间的占用情况free--查看使用的内存资源的情况2. 掌握Linux下的联机帮助手册的使用3. 掌握Linux命令的简要帮助的获取方法4. 掌握一些其他常用的Linux命令:cal--显示日历date--显示系统的日期和时间clear--清屏find--查找文件uname--查看系统信息who--查看其他登录的用户which--查看命令的全路径tar--Linux下的压缩与解压缩命令三.实验内容:1.使用ps查看系统的进程运行情况,使用不同的命令选项并比较显示结果的差别;查看当前系统已安装的文件系统的空间使用情况;查看用户的家目录占用了多少空间;查看使用的内存资源的情况.2.查看ls命令的详细使用方法,查看ps命令的详细使用方法.3.获取ls命令的简要帮助信息,获取ps命令的简要帮助信息.4.用cal命令显示日历,用date命令显示系统的日期和时间,用clear清除屏幕,用find命令在系统中查找文件ch1.doc,用uname命令查看系统的信息,用who 命令查看其他登录的用户,用which命令查看一些命令的全路径,用tar命令来压缩test目录下的所有后缀为doc的文件到文件doc.tar.gz中,将doc.tar.gz 复制到用户的家目录并展开压缩文件.四.结果分析:1. 要查看系统的进程运行情况可使用ps命令:[stu@cs-linux stu]$ psPID TTY TIME CMD4442 pts/0 00:00:00 bash11683 pts/0 00:00:00 ps第一列中的PID表示进程编号,第二列中的TTY表示提交该进程的终端号,第三列中的TIME表示该进程已运行的时间,第四列中的CMD表示该进程所对应的命令.如果要显示进程更详细的信息,可以使用参数ps u:[stu@cs-linux stu]$ ps uUSER PID %CPU %MEM VSZ RSSTTY STAT START TIME COMMAND501 4442 0.0 0.3 5560 784 pts/0 S 09:45 0:00 bash501 11684 0.0 0.2 2592 644 pts/0 R 10:16 0:00 ps -uUSER表示进程拥有者,%CPU表示CPU时间的占用比例,%MEM表示内存的占用比例,VSZ表示进程的大小,RSS表示常驻内存部分大小,START表示进程的启动时间.如果要用长格式显示系统进程的信息,可以使用参数ps l:[stu@cs-linux stu]$ ps lFS UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME C MD4 S 501 4174 4173 0 75 0 - 1389 wait4 pts/0 00:00:00 bash0 R 501 4201 4174 0 80 0 - 776 - pts/0 00:00:00 ps要查看当前系统已安装的文件系统的空间使用情况,使用命令df:[stu@cs-linux stu]$ df文件系统1K-块已用可用已用% 挂载点/dev/hda7 9574520 2833764 6254392 32% /none 111472 0 111472 0% /dev/shm/dev/hda5 30701232 13538096 17163136 45% /mnt/hdd要查看用户的家目录占用了多少空间,先将工作目录切换到家目录,再使用命令du:[stu@cs-linux stu]$ du12 ./.kde/Autostart16 ./.kde8 ./.xemacs4 ./test64 .以上结果表示家目录公占用64KB的空间.要查看使用的内存资源的情况,应使用命令free:[stu@cs-linux stu]$ freetotal used free shared buffers cached Mem: 222948 216688 6260 0 17832 92792 -/+ buffers/cache: 106064 116884Swap: 514040 0 514040以上结果表示系统内存及交换空间使用情况.2. 查看ls命令的详细使用方法,使用命令man ls:[stu@cs-linux stu]$ man ls(.......显示内容省略)查看ps命令的详细使用方法,使用命令man ps:[stu@cs-linux stu]$ man ps(.......显示内容省略)3. 获取ls命令的简要帮助信息,可使用命令ls --help:[stu@cs-linux stu]$ ls --help(.......显示内容省略)获取ps命令的简要帮助信息,可使用命令ps --help:[stu@cs-linux stu]$ ps --help(.......显示内容省略)4. 要显示日历可使用命令cal:[stu@cs-linux stu]$ cal六月2004日一二三四五六1 2 3 4 56 7 8 9 10 11 1213 14 15 16 17 18 1920 21 22 23 24 25 2627 28 29 30以上用命令cal不加任何参数时显示当月日历,如果要指定查看某年某月的日历,可以加[月][年]参数,如要查看2004年8月:[stu@cs-linux stu]$ cal 08 2004八月2004日一二三四五六1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 31要显示系统的日期和时间,可使用命令date:[stu@cs-linux stu]$ date五6月18 11:23:23 CST 2004表示当前时间为2004年6月18日星期五11:23:23.用clear命令清除屏幕,之后将把已前显示的结果清除:[stu@cs-linux stu]$ clear用find命令在系统中查找文件ch1.doc,应首先退出到根目录下,在使用命令find ch1.doc:[stu@cs-linux /]$ cd /[stu@cs-linux /]$ find / -name "ch1.doc"find: /home/wb: 权限不够/home/stu/test/ch1.doc结果表示找到的文件在/home/stu/test/目录下.用uname命令查看系统的信息:[stu@cs-linux /]$ unameLinux用who命令查看其他登录的用户:[stu@cs-linux /]$ whostu tty1 Jun 18 14:22root pts/0 Jun 18 14:23 (:0.0)用which命令查看一些命令的全路径,如查看命令ls和ps的全路径:[stu@cs-linux /]$ which lsalias ls='ls --color=tty'/bin/ls[stu@cs-linux /]$ which ps/bin/ps用tar命令来压缩test目录下的所有后缀为doc的文件到文件doc.tar.gz中,如下:[stu@cs-linux test]$ tar cvf doc.tar.gz *.docch1.docch2.doc[stu@cs-linux test]$ lsch1.doc ch2.doc doc.tar.gz sesson.txt使用命令加参数cvf来打包所有后缀为doc的文件,参数c表示建立新文档,参数v表示在处理过程中显示相关信息,参数f表示以文件方式打包.现test目录下共有doc文件2个,所以显示ch1.doc,ch2.doc.打包后用ls命令查看,发现多了一个doc.tar.gz文件,表明操作成功.将doc.tar.gz复制到用户的家目录并展开压缩文件:[stu@cs-linux test]$ cd ..[stu@cs-linux stu]$ cp test/doc.tar.gz doc.tar.gz[stu@cs-linux stu]$ tar xvf doc.tar.gz *.docch1.docch2.doc[stu@cs-linux stu]$ lsch1.doc ch2.doc doc.tar.gz test第三行的参数x表示解包文件.五.实验心得这一章主要学习了Linux下的一些关于监视系统的命令以及一些常用辅助命令,对于一个Linux的系统管理员,掌握这些命令的使用是非常重要的,因为这些命令不仅可以让系统管理员了解到系统的运行情况,还可以了解到磁盘及内存的占用情况,以便系统管理员根据情况作出相应调整。

linux-实验报告-文件系统与文件管理

linux-实验报告-文件系统与文件管理

学生课程实验报告书课程:《linux网络操作系统》级系专业班学号:姓名:指导教师:一、实验项目:用户与组群管理二、实验日期:三、实验原理:1.熟悉Linux下常用的操作指令。

2.加深对文件,目录,文件系统等概念的理解。

3.掌握Linux文件系统的目录结构。

4.掌握有关Linux文件系统操作的常用命令。

5.了解有关文件安全方面的知识。

四、实验仪器:PC机Redhat网络操作系统五、实验步骤(纸张不够写可另外加纸并应装订):进入虚拟机,并在此平台上练习文件管理有关命令.一般在[root @ localhost xxxx]$提示符下键入有关命令。

1.浏览文件系统〈1〉运行pwd命令,确定你当前的工作目录。

〈2〉利用以下命令显示当前工作目录的内容:(理解各字段彻底意义。

)〈3〉运行以下命令:(反馈信息中.代表本身目录,..代表其父目录;选项a可以显示隐藏文件;选项i可以显示文件的I节点号)ls –ai〈4〉使用mkdir命令建立一个子目录subdir,并用ls查看当前目录。

〈5〉使用带-d选项的ls命令,你只能看到有关子目录的信息(.表示本身目录)。

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

①用相对路径将工作目录改到根目录。

②用绝对路径将工作目录改到根目录。

〈7〉使用ls命令列出根目录的内容,再分别列出各子目录的内容,体会各目录作用及访问权限。

〈8〉使用ls-l命令列出/dev的内容。

Ls –l /dev 列出/dev目录的内容,文件太多显示多屏,各行第一个字符为b的表示块特别文件;各行第一个字符为c的表示字符特别文件。

〈9〉使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什麽。

〈10〉使用命令cd ../..,你将工作目录移到什麽地方2.查看你的文件〈1〉利用cd命令,将工作目录改到你的主目录上。

〈2〉将工作目录改到你的子目录subdir,然后运行命令:date > file1 将当前日期和时间存放到新建文件file1中。

LINUX文件系统编程实验报告

LINUX文件系统编程实验报告

《操作系统原理》实验报告专业网络工程实验四 LINUX文件系统编程一、实验目的1.加深对文件,目录,文件系统等概念的理解。

2.掌握Linux文件系统的目录结构。

3.掌握有关Linux文件系统操作的常用命令。

4.了解有关文件安全方面的知识。

5.掌握LINUX文件系统的基本原理,结构和实现的方法6.掌握LINUX文件系统中文件的建立,打开,读写,执行,属性等系统调用的使用.二、实验内容1.浏览文件系统2.查看文件3.文件操作4.文件存取权限5.仔细阅读提供的源代码6.理解LINUX文件系统的基本原理7.调试提供的源代码三、实验步骤一、Linux常用文件命令1、浏览文件系统1.1运行pwd命令,确定你当前的工作目录。

1.2利用以下命令显示当前工作目录的内容:ls –l1.3运行以下命令:ls –ai1.4使用mkdir命令建立一个子目录subdir。

1.5使用带-d选项的ls命令,你只能看到有关子目录的信息。

cd /1.7使用ls命令列出根目录的内容,再分别列出各子目录的内容。

1.8使用ls -l命令列出/dev的内容1.9使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什么。

1.10使用命令cd .. /..,你将工作目录移到什么地方。

注意“/”前有无空格的区别。

2、查看文件2.1利用cd命令,将工作目录改到你的主目录上。

2.2将工作目录改到你的子目录subdir,然后运行命令:date > file1将当前日期和时间存放到新建文件file1中。

2.3使用cat命令查看file1文件的内容。

2.4利用man命令显示date命令的用法2.6利用cat命令显示文件file1的内容。

2.7利用ls -l file1命令列出文件file1的较详细的信息,注意其中第二字段(链接计数)的值。

2.8利用ln file1../fa命令进行文件链接。

然后运行ls -l file1,查看显示的第二段的值发生了什么变化。

操作系统实验5文件系统:Linux文件管理

操作系统实验5文件系统:Linux文件管理

实验5 文件系统: Linux文件管理1. 实验目的〔1〕掌握Linux提供的文件系统调用的使用方法;〔2〕熟悉文件和目录操作的系统调用用户接口;〔3〕了解操作系统文件系统的工作原理和工作方式。

2. 实验内容〔1〕利用Linux有关系统调用函数编写一个文件工具filetools, 要求具有下列功能:***********0.退出1.创建新文件2.写文件3.读文件4.复制文件5.修改文件权限6.查看文件权限7.创建子目录8.删除子目录9.改变当前目录到指定目录10.操作***********代码:#include<stdio.h>#include<sys/types.h>#include<unistd.h>#include<fcntl.h>#include<sys/stat.h>#include<syslog.h>#include<string.h>#include<stdlib.h>void menu(void);void openfile(void);void writefile(void);void readfile(void);void copyfile(void);void chmd(void);void ckqx(void);void cjml(void);void scml(void);void ggml(void);void ylj(void);int main(){int choose;int suliangjin=1;menu();scanf("%d",&choose);while(choose!=0){switch(choose){case 1:openfile();break;case 2:writefile();break;case 3:readfile();break;case 4:copyfile();break;case 5:chmd();break;case 6:ckqx();break;case 7:cjml();break;case 8:scml();break;case 9:ggml();break;case 10:ylj();break;}menu();scanf("%d",&choose);}return 0;}void menu(void){printf("文件系统\n");printf("1.创建新文件\n");printf("2.写文件\n");printf("3.读文件\n");printf("4.复制文件\n");printf("5.修改文件权限\n");printf("6.查看文件权限\n");printf("7.创建子目录\n");printf("8.删除子目录\n");printf("9.改变目前目录到指定目录\n");printf("10.操作\n");printf("0.退出\n");printf("请输入您的选择...\n");}void openfile(void){int fd;if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");elseprintf("open file:hileo.c %d\n",fd);if(close(fd)<0)perror("close");elseprintf("Close hello.c\n");}void writefile(void){int fd,size,len;char *buf="Hello!I'm writing to this file!";len=strlen(buf);if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");elseprintf("open file:hileo.c %d\n",fd);if((size=write(fd,buf,len))<0)perror("write");elseprintf("Write:%s\n",buf);if(close(fd)<0)perror("close");elseprintf("Close hello.c \n");}void readfile(void){int fd,size;char b[10];if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");elseprintf("open file:hileo.c %d\n",fd);lseek(fd,0,SEEK_SET);if((size=read(fd,b,10))<0)perror("read");elseprintf("read from file:%s\n",b);if(close(fd)<0)perror("close");elseprintf("Close hello.c\n");}void copyfile(void){if(fork()==0)execlp("/bin/cp","cp","/tmp/hello.c","/tmp/he.c",NULL);elsewait(0);printf("将hello.c复制he.c");}void chmd(void){int a;printf("1.文件主可读可写可执行\n");printf("2.文件主可读\n");printf("3.文件主可写\n");printf("4.文件主可执行\n");printf("请输入您的选项\n");scanf("%d",&a);switch(a){case 1:chmod("/tmp/hello.c",S_IRWXU);printf("ok!\n");break;case 2:chmod("/tmp/hello.c",S_IRUSR);printf("ok!\n");break;case 3:chmod("/tmp/hello.c",S_IWUSR);printf("ok!\n");break;case 4:chmod("/tmp/hello.c",S_IXUSR);printf("ok!\n");break;default:printf("您选择有误\n");}}void ckqx(void){char *path="/bin/ls";char *argv[4]={"ls","-l",NULL};if(fork()==0)execv(path,argv);elsewait(0);}void cjml(void){if(mkdir("/tmp/a",S_IRWXU)<0)perror("Mkdir");elseprintf("创建成功\n");}void scml(void){if(rmdir("/tmp/a")<0)perror("Rmdir");elseprintf("删除成功\n");}void ggml(void){if(chdir("/tmp/bc")<0)perror("chdir");elseprintf("更改目录成功\n"); }void ylj(void){if(link("hello.c","h.c")<0)perror("Link");elseprintf("建立硬连接\n"); }打开文件:写文件:读文件:复制文件: 修改权限: 查看权限:创建目录:删除目录:更改目录:硬连接:1.问题解决方案:在复制文件时用execlp函数, 虽然有复制成功但是他就跳出整个程序, 这就是一个缺陷。

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

黄冈师学院提高型实验报告实验课题文件系统的设计与实现(实验类型:□综合性 设计性□应用性)实验课程操作系统原理实验时间2015-2016 第二学期学生何正发专业班级软件工程1401学号07成绩:一、实验目的和要求1、熟悉操作系统设计的过程,巩固操作系统的基本知识,加深对操作原理、功能及各种不同的存储管理方法理解与应用;2、学会运用各种语言、软件开发新软件的基本方法;3、增强实际应用能力和动手操作能力。

二、实验条件Win7 /Windows 8.1/Linux等操作系统,装有java、C、C++、C#等语言工具的环境。

三、实验原理分析可以选择最佳适应算法,按照从小到大的次序组成空闲区自由链,当用户作业或进程申请一个空闲区时,存储管理程序从表头开始查找,当找到第一个満足要求的空闲区时,停止查找。

如果该空闲区大于请求表中的请求长度,将减去请求长度后的剩余空闲区部分留在可用表中。

回收时,从作链中删去要回收的作业块,同时在空闲链中插入该作业大小的空闲区,并按顺序排列四、实验方案或步骤1、应用环境、需求分析本模拟系统主要针对文件的管理和操作名主要有:创建用户、文件、文件夹,读文件,写文件,执行文件,关闭文件,删除用户、文件夹、文件的功能。

创建用户、文件、文件夹:在对系统发出操作命令之前必须先登录用户,然而登录之前必须创建该用户。

在创建完后,可通过登录用户来创建文件和文件夹。

在创建文件时可设置文件的属性和输入文件的容。

读文件:读取任何已创建的只读或读写文件的容;如果所要读的文件不是可读文件时,系统会显示该文件不可读;如果所读文件不存在,系统会显示文件不存在。

写文件用户可写或重写读写文件中的容,并保存文件中的重写容,以供下次读取;当所要写的文件不是可写的文件时,系统会显示该文件不可写;当所要写的文件并不存在时,系统会显示该文件不存在。

执行文件:登录用户后,用户可执行系统中已创建的执行文件;当该文件不是可执行文件时,系统会显示该文件不可执行;当该文件不存在时,系统将会显示该文件不存在。

关闭文件:可通过选择关闭文件的功能选项,来关闭系统中所有打开的文件,如果没有文件被打开,则系统会显示没有文件打开。

删除用户、文件、文件夹:用户可通过选择删除的功能选项来删除不想再保存的文件和文件夹,删除后,用户会自动注销;当选择删除用户的功能选项时,系统会删除该用户,以及该用户所创建的所有文件和文件夹。

2、概要设计打开文件流程图:写文件流程图:关闭文件流程图:3、详细设计(1)用户结构:账号与密码结构typedef struct users{char name[8];char pwd[10];}users;本系统有8个默认的用户名,前面是用户名,后面为密码,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。

users usrarray[8] ={"usr1","usr1","usr2","usr2","usr3","usr3","usr4","usr4","usr5","usr5","usr6","usr6","usr7","usr7","usr8","usr8",};(2)数据结构说明a)文件结构链表struct fnode{char filename[FILENAME_LENGTH];int isdir;int isopen;char content[255];fnode *parent;fnode *child;fnode *prev;fnode *next;};b)函数介绍fnode *initfile(char filename[],int isdir);//初始化文件或目录void createroot();//建立系统根目录int run();系统运行int findpara(char *topara);对参数进行处理bool chklogin(char *users, char *pwd);检查账号与口令void help();命令列表int mkdir();建立目录int create();建立文件int read();读取文件int write();写入文件int del();删除文件int cd();切换目录int dir();文件与目录列表4、代码清单#include "stdio.h"#include "iostream.h"#include "string.h"#include "iomanip.h"#define FILENAME_LENGTH 10 //文件名称长度#define COMMAND_LENGTH 10 //命令行长度#define PARA_LENGTH 30 //参数长度//账号结构typedef struct users{char name[8];char pwd[10];}users;//文件结构struct fnode{char filename[FILENAME_LENGTH];int isdir;int isopen;char content[255];fnode *parent;fnode *child;fnode *prev;fnode *next;};//账号users usrarray[8] ={"usr1","usr1","usr2","usr2","usr3","usr3","usr4","usr4","usr5","usr5","usr6","usr6","usr7","usr7","usr8","usr8",};fnode *initfile(char filename[],int isdir); void createroot();int run();int findpara(char *topara);bool chklogin(char *users, char *pwd);void help();int mkdir();int create();int read();int write();int del();int cd();int dir();fnode *root,*recent,*temp,*ttemp;charpara[PARA_LENGTH],command[COMMAND_LENGTH],temppara[PARA_LENGTH],recentpara[PARA_L ENGTH];//创建文件与目录结点fnode* initfile(char filename[],int isdir){fnode *node=new fnode;strcpy(node->filename,filename);node->isdir=isdir;node->isopen=0;node->parent=NULL;node->child=NULL;node->prev=NULL;node->next=NULL;return node;}//创建文件存储结点void createroot (){recent=root=initfile("/",1);root->parent=NULL;root->child=NULL;root->prev=root->next=NULL;strcpy(para,"/");}int mkdir(){temp=initfile(" ",1);cin>>temp->filename;if(recent->child==NULL){temp->parent=recent;temp->child=NULL;recent->child=temp;temp->prev=temp->next=NULL;}else{ttemp=recent->child;while(ttemp->next){ttemp=ttemp->next;if(strcmp(ttemp->filename,temp->filename)==0&&ttemp->isdir==1) {printf("对不起,目录已存在!");return 1;}}ttemp->next=temp;temp->parent=NULL;temp->child=NULL;temp->prev=ttemp;temp->next=NULL;}return 1;}int create(){temp=initfile(" ",0);cin>>temp->filename;gets(temp->content);//cin>>temp->content;if(recent->child==NULL){temp->parent=recent;temp->child=NULL;recent->child=temp;temp->prev=temp->next=NULL;cout<<"文件建立成功!"<<endl;}else{ttemp=recent->child;while(ttemp->next){ttemp=ttemp->next;if(strcmp(ttemp->filename,temp->filename)==0&&ttemp->isdir==0){printf("对不起,文件已存在!");return 1;}}ttemp->next=temp;temp->parent=NULL;temp->child=NULL;temp->prev=ttemp;temp->next=NULL;cout<<"文件建立成功!"<<endl;}return 1;}int dir(){int i=0,j=0;temp=new fnode;temp=recent;if(temp!=root){cout<<" <DIR> "<<".."<<endl;i++;}if(temp->child==NULL){cout<<"Total: "<<" directors " <<i<<" files"<< j <<endl;return 1;}temp=temp->child;while(temp){if(temp->isdir){cout<<" <DIR> "<<temp->filename<<endl;i++;}else{cout<<" <FILE> "<<temp->filename<<endl;j++;}temp=temp->next;}cout<<"Total: "<<" directors " <<i<<" files "<< j <<endl;}int read(){char filename[FILENAME_LENGTH];cin>>filename;if(recent->child==NULL){cout<<"文件不存在!"<<endl;return 1;}if(strcmp(recent->child->filename,filename)==0){cout<<recent->child->content<<endl;return 1;}else{temp=recent->child;while(temp->next){if(strcmp(temp->next->filename,filename)==0){cout<<temp->next->content<<endl;return 1;}}cout<<"文件不存在!"<<endl;}}int write(){char filename[FILENAME_LENGTH];cin>>filename;if(recent->child==NULL){cout<<"文件不存在!"<<endl;return 1;}if(strcmp(recent->child->filename,filename)==0) {recent->child->isopen=1;//设置文件标记为打开cin>>recent->child->content;recent->child->isopen=0;//设置文件标记为关闭cout<<"文件写入成功!"<<endl;return 1;}else{temp=recent->child;while(temp->next){if(strcmp(temp->next->filename,filename)==0){recent->child->isopen=1;//设置文件标记为打开cin>>temp->next->content;recent->child->isopen=0;//设置文件标记为关闭cout<<"文件写入成功!"<<endl;return 1;}}cout<<"文件不存在!"<<endl;}}int cd(){ char topara[PARA_LENGTH];cin>>topara;if(strcmp(topara,"..")==0){int i;while(recent->prev)recent=recent->prev;if(recent->parent){recent=recent->parent;}i=strlen(para);while(para[i]!='/' && i>0) i--; if(i!=0)para[i]='\0';elsepara[i+1]='\0';}else{findpara(topara);}return 1;}int findpara(char *topara){int i=0;int sign=1;if(strcmp(topara,"/")==0){recent=root;strcpy(para,"/");return 1;}temp=recent;strcpy(temppara,para);if(topara[0]=='/'){recent=root->child;i++;strcpy(para,"/");}else{if(recent!=NULL && recent!=root)strcat(para,"/");if(recent && recent->child){if(recent->isdir)recent=recent->child;else{printf("路径错误!\n");return 1;}}}while(i<=strlen(topara) && recent){int j=0;if(topara[i]=='/' && recent->child){i++;if(recent->isdir)recent=recent->child;else{printf("路径错误\n");return 0;}strcat(para,"/");}while(topara[i]!='/' && i<=strlen(topara)){recentpara[j]=topara[i];i++;j++;}recentpara[j]='\0';while((strcmp(recent->filename,recentpara)!=0 || (recent->isdir!=1)) && recent->next!=NULL){recent=recent->next;}if(strcmp(recent->filename,recentpara)==0){if(recent->isdir==0){strcpy(para,temppara);recent=temp;printf("是文件不是目录。

相关文档
最新文档