linux 实验报告 文件系统与文件管理
文件系统管理实训报告
一、实训背景随着信息技术的飞速发展,文件系统作为存储和管理数据的核心,其性能、稳定性和安全性越来越受到重视。
为了提高我们对文件系统管理的理解和实践能力,我们进行了文件系统管理实训。
本次实训以Linux系统下的文件系统管理为主要内容,通过实际操作,加深对文件系统结构、命令、权限管理等方面的认识。
二、实训目标1. 掌握Linux文件系统的基本结构;2. 熟悉常用的文件系统管理命令;3. 理解文件权限和属性的概念;4. 学会文件系统备份与恢复;5. 提高文件系统的安全性和性能。
三、实训内容(一)文件系统结构Linux文件系统采用树状结构,以根目录“/”为起点,所有文件和目录都从根目录开始分层排列。
常见的文件系统结构包括:1. 根目录(/):包含系统中的所有目录和文件;2. 换行目录(/bin、/sbin、/usr):存放常用的系统命令和系统服务;3. 用户目录(/home):存放用户个人文件和目录;4. 临时目录(/tmp):存放临时文件和程序;5. 系统目录(/etc、/var、/opt):存放系统配置文件、日志文件和可选软件包。
(二)文件系统管理命令1. ls:列出目录内容;2. pwd:显示当前目录的绝对路径;3. cd:切换目录;4. mkdir:创建目录;5. rmdir:删除空目录;6. touch:创建空文件;7. rm:删除文件或目录;8. cp:复制文件或目录;9. mv:移动或重命名文件或目录;10. chmod:修改文件权限;11. chown:更改文件所有者;12. chgrp:更改文件所属组。
(三)文件权限和属性Linux文件权限分为三组:所有者、所属组和其他用户。
每组权限包括读(r)、写(w)和执行(x)三种。
通过chmod命令可以修改文件权限,例如:- chmod 755 filename:设置所有者有读、写、执行权限,所属组和其他用户有读、执行权限;- chmod u+x filename:给所有者添加执行权限;- chmod g-w filename:取消所属组的写权限。
《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系统使用的是可扩展的第二代文件系统(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试验Linux文件系统-目录和文件管理
实验报告课程名称:Linux操作系统实验名称:实验 4、Linux 文件系统学生姓名:学号:指导教师:实验时间:年月日实验成绩:1实验四、Linux文件系统-目录和文件管理一、实验要求(1)掌握目录和文件管理的操作命令;(2)掌握文件权限的修改方法。
(3)掌握文件链接的方法。
二、实验内容和实验步骤【操作要求1】查看Linux系统常见的目录。
目录和文件管理班级:学院(系):【操作步骤】输入命令:1S,查看Linux系统常见的目录,截图如下:【操作要求2】显示当前目录下文件类型。
【操作步骤】输入命令:ls -l|more,截图如下:说明:“-”:表示普通文件“d”:表示目录文件“c”:表示字符设备文件“b”:表示块设备文件“l”:表示符号链接文件【操作要求3】查看当前目录下所有文件类型【操作步骤】输入命令:file *,截图如下:【操作要求4】先创建两个新目录dir1和dir2,然后将dir2目录移到dir1目录中,最后删除dir2目录。
【操作步骤】(1)以普通用户user登陆字符界面,输入命令:pwd,当前目录为用户的主目录:/home/user。
(2)输入命令:ls -1,查看当前目录中的所有文件。
(3)创建两个目录,输入命令:mkdir dir{1,2}。
(4)输入命令:1s -1,确认两个目录创建成功。
以上4个步骤截图如下:2(5)输入命令:mv dir2 diri,将dir2目录移动到diri目录。
(6)输入命令:cd diri,切换diri目录,再输入:ls命令,查看到dir2目录。
截图如下:(7)删除dir2目录,输入命令:rm — rf dir2。
【操作要求5】查找profile文件。
【操作步骤】(1)切换用户为超级用户,输入命令:su -并输入密码。
(2)输入命令:find /etc -name profile,截图如下:(3)使用exit命令,退出超级用户身份。
【操作要求6】将/etc/profile文件中所有包含“HOSTNAME”的行存入 f4 文件,并修改 f4 文件的权限,让所有用户都可以读写。
linux实践报告:文件系统
一、实验目的1.学习LINUX系统下对文件进行操作的各种命令和图形化界面的使用方法。
2. 深入学习和掌握文件管理系统的基本原理和LINUX等操作系统下常用的系统调用,编写一个使用系统调用的例程。
二、实验指导1. 目录/proc下与系统相关的文件和目录(1) /proc/$pid/fd:这是一个目录,该进程($PID号码进程)每个打开的文件在该目录下有一个对应的文件。
例如:#ls /proc/851/fd0 1 2 255这表示,851号进程目前正在使用(已经打开的)文件有4个,它们的描述符分别是0、1、2、255。
其中,0、1、2 依次分别是进程的标准输入、标准输出和标准错误输出设备。
(2)/proc/filesystems:该文件记录了可用的文件系统类型。
(3)/proc/mounts:该记录了当前被安装的文件系统信息例如:#cat /proc/mount(4)/proc/$pid/maps:该文件记录了进程的映射内存区信息。
例如:#cat /proc/851/maps2.常用命令操作ls 命令用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。
例如:$ ls -liah22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile19942 -rw-r--r-- 1 scalish users 30 Jan 3 20:00 test2.out925 -rwxr-xr-x 1 scalish users 378 Sep 2 2002 test.sh上面的列表显示 8 列:第 1 列指示文件的 inode,因为我们使用了 -i 选项。
剩下的列通过 -l 选项来进行正常显示。
第 2 列显示文件类型和文件访问权限。
第3 列显示链接数,包括目录。
第 4 和第 5 列显示文件的所有者和组所有者。
这里,所有者 'bluher' 属于组'users'。
linux操作基础实验报告
linux操作基础实验报告Linux 操作基础实验报告一、实验目的本次实验的主要目的是让学生熟悉和掌握 Linux 操作系统的基本操作,包括文件和目录管理、用户和权限管理、进程管理以及网络配置等方面,为今后更深入地学习和使用 Linux 系统打下坚实的基础。
二、实验环境本次实验使用的操作系统是 Ubuntu 2004 LTS ,实验在虚拟机中进行,虚拟机软件为 VMware Workstation Pro 16 。
三、实验内容及步骤(一)文件和目录管理1、登录到 Linux 系统后,首先使用`pwd` 命令查看当前工作目录。
2、使用`ls` 命令查看当前目录下的文件和子目录。
3、使用`mkdir` 命令创建一个新的目录,例如`myfolder` 。
4、使用`cd` 命令进入新创建的目录。
5、在新目录中,使用`touch` 命令创建一个新的空文件,例如`myfiletxt` 。
6、使用`vi` 或`nano` 命令编辑该文件,输入一些文本内容并保存。
7、使用`cat` 命令查看文件的内容。
8、使用`cp` 命令将该文件复制到其他目录。
9、使用`mv` 命令将文件移动到其他位置。
10、使用`rm` 命令删除文件和目录,注意使用`r` 选项递归删除非空目录。
(二)用户和权限管理1、使用`sudo adduser` 命令创建一个新用户,例如`newuser` 。
2、使用`sudo passwd newuser` 命令为新用户设置密码。
3、切换到新用户登录,查看当前用户信息,使用`whoami` 和`id` 命令。
4、回到 root 用户,使用`chmod` 命令修改文件或目录的权限,例如给一个文件设置读写执行权限。
5、使用`chown` 命令修改文件或目录的所有者和所属组。
(三)进程管理1、使用`ps` 命令查看当前系统中的进程信息。
2、使用`top` 命令动态查看系统的资源使用情况和进程状态。
3、使用`kill` 命令结束一个指定的进程,需要知道进程的 PID 。
linux实验文件系统与文件管理
学生课程实验报告书课程:《Linux操作系统》10 级系专业班学号:姓名:指导教师:李光炀2013—2014学年第 2 学期一、实验项目:文件系统与文件管理二、实验日期:2013年04月07日三、实验原理:掌握文件系统的挂载与卸载;磁盘配额管理;文件的权限修改;文件的归档与压缩;四、实验仪器:PC机Redhat网络操作系统五、实验步骤(纸张不够写可另外加纸并应装订):1.对/文件系统实施用户级配额管理,对普通用户hellen与jerry进行配额管理,磁盘空间软配额为300M,硬配额为350M,文件数量配额为:软配额12个,硬配额为15个。
写出配额的具体步骤,并测试用户级配额是否成功。
普通用户hellen:普通用户jerry2.在桌面环境下,选中有个文件或文件夹进行相应权限的修改。
3.用chmod命令分别用数字模式和功能模式修改/root/install.log文件属性。
4.用chgrp命令修改/root/install.log的所属组群为hellen。
5.用chown命令修改/root/install.log的文件所有者为hellen。
6.用mkdir命令创建/chf/chen目录。
7.用cp命令将/root/install.log文件拷贝到/chf/chen目录下。
8.用mv命令将/chf文件夹(包括子文件夹的内容)全部移到/chen目录下。
9.用rm命令删除/chen文件夹。
10.在/root文件夹下创建ts.txt文件,用ln命令创建ts.txt硬链接为ts1.lnk,符号链接为ts2.lnk,尝试在ts.txt、ts1.lnk、ts2.lnk 三个文件中修改内容,观察另外两个文件的变化情况。
11.删除ts.txt文件,分别打开ts1.lnk、ts2.lnk文件看看是否能顺利打开。
12.用find命令查找/root文件夹下文件所有者为root,文件大于10k的文件。
13.用grep命令查找/root/install.log文件中包含kde字符的行,并显示行号。
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` 为新用户的用户名。
Linux实验报告
实验报告实验项目名称目录与文件管理(一)所属课程名称 Linux系统及应用实验类型设计型实验实验日期班级学号姓名指导老师询问是否重写,一面误覆盖文件-f 禁止交互式操作,即使有文件覆盖也不会给出提示同时,mv’命令还能够对文件进行重命名操作mv 源文件修改后文件七、文件权限文件的访问级别共有三个,分别是文件的拥有者、文件有者的属组用户、一般用户,其对应的标识符分别是u、g、o。
文件使用权分别为读(r)、写(w)、执行(x),在使用文件的权限时,其对行的权值分别为读(4)、写(2)、执行(1)。
其具体的属性如图一所示图一当为[ d ]则是目录;当为[ - ]则是文件1字段表示文件类型,2硬链接数目,3文件拥有者,4表示从属组,5表示文件大小(KB),6表示最近修改时间,7文件名;八、文件权限的修改1)使用操作符直接对所对应的用户更改权限操作符号含义+ 添加某个权限- 取消某个权限= 赋予给定权限并取消其他所有权限2)对文件的使用权限的权值进行更改chmod u | g | o(分别对应的用户的权值)文件路径其中值共有三个,分别对应读写执行的权限之和2.创建mdm.txt文件3.使用vi编辑器输如文本4.使用cat,和tac命令查看文件5.复制man.config文件到zyd目录下6.查看man.config的前50行7.查看man.config的后20行8.使用more命令查看文件使用less命令查看文件9.移动man.config文件10.更改man.config的权限12.删除man.config和Linux目录【结论】(结果)对于文件的创建和查看,必须能够熟练使用,由实验可以看出创建文件时最好使用touch命令创建文件而不是vi编辑器。
在实际工作中,不同的工作需求使用不同的命令来查看文件,例如我们知道,在我们查看Linux的系统日志,或者Lost and Found目录文件时,使用tail来查看最近的修改记录就极为方便,在不同的场景下选择不同的查看命令可以极大的方便我们的工作。
Linux磁盘和文件系统管理文件实验
Linux磁盘和⽂件系统管理⽂件实验1、添加 10G 硬盘,为硬盘分三个分区:分区1:1G ext4 挂载⾄ /part-ext4分区2:2G xfs 挂载⾄ /part-xfs分区3:2G swap (代码82)分别设置分区1,分区2 可以开机⾃动挂载,启⽤swap分区3[root@localhost ~]# fdisk -lDisk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytes[root@localhost ~]# mkdir /part-ext4[root@localhost ~]# mkdir /part-xfs[root@localhost ~]# mkfs.ext4 /dev/sdb1[root@localhost ~]# mkfs.xfs /dev/sdb2[root@localhost ~]# vim /etc/fstab[root@localhost ~]# mkswap /dev/sdb32、创建⼀个逻辑分区 /dev/sdb5 分区5:2G配置 autofs ⾃动挂载⾄⽬录 /autodir/test 并设置⽬录20秒不被使⽤时⾃动卸载[root@localhost ~]# mkfs.xfs /dev/sdb5[root@localhost ~]# vim /etc/auto.master/autodir /etc/auto.misc --timeout=20[root@localhost ~]# vim /etc/auto.misctest -fstype=xfs :/dev/sdb5[root@localhost ~]# systemctl start autofs[root@localhost ~]# systemctl enable autofs3、将 Centos 7 光盘制作成 iso 镜像⽂件,并将镜像⽂件挂载⾄ /dvd ⽬录[root@localhost ~]# useradd li[root@localhost ~]# dd if=/dev/cdrom of=/root/centos7.iso[root@localhost ~]# mkdir /dvd[root@localhost ~]# mount -o loop centos7.iso /dvd4、为 /part-ext4 ⽬录配置磁盘配额,设置⽤户 li 的磁盘软配额为 8M 硬配额为 10Mi节点软配额 2 硬配额 3 ,并经过验证[root@localhost ~]# cd /part-ext4[root@localhost part-ext4]# quotacheck -avug[root@localhost part-ext4]# lsaquota.group er lost+found[root@localhost part-xfs]# cd /part-ext4[root@localhost part-ext4]# edquota -u li[root@localhost part-ext4]# chmod 1777 /part-ext4/[root@localhost part-ext4]# quotaon /part-ext4/5、为 /part-xfs ⽬录配置磁盘配额,设置⽤户 li 的磁盘软配额为 20M 硬配额为 30Mi节点软配额 2 硬配额 3,并经过验证[root@localhost ~]# xfs_quota -x -c 'limit bsoft=20M bhard=30M isoft=2 ihard=3 li' /part-xfs/[root@localhost ~]# xfs_quota -x -c report /part-xfs/[root@localhost ~]# chmod 1777 /part-xfs/测试[root@localhost ~]# su - li[li@localhost part-ext4]$ dd if=/dev/zero of=/part-ext4/kk bs=1M count=9sdb1: warning, user block quota exceeded.9+0 records in9+0 records out9437184 bytes (9.4 MB) copied, 0.13922 s, 67.8 MB/s[li@localhost part-ext4]$ dd if=/dev/zero of=/part-ext4/kk2 bs=1M count=2 sdb1: write failed, user block limit reached.dd: error writing ‘/part-ext4/kk2’: Disk quota exceeded2+0 records in1+0 records out1048576 bytes (1.0 MB) copied, 0.0142495 s, 73.6 MB/s[li@localhost part-ext4]$ lltotal 10272-rw-------. 1 root root 7168 Oct 29 15:03 aquota.group-rw-------. 1 root root 7168 Oct 29 15:14 er-rw-rw-r--. 1 li li 9437184 Oct 29 15:25 kk-rw-rw-r--. 1 li li 1048576 Oct 29 15:26 kk2drwx------. 2 root root 16384 Oct 29 14:19 lost+found[li@localhost ~]$ cd /part-xfs[li@localhost part-xfs]$ dd if=/dev/zero of=/part-xfs/aa bs=1M count=29 29+0 records in29+0 records out30408704 bytes (30 MB) copied, 0.313577 s, 97.0 MB/s[li@localhost part-xfs]$ dd if=/dev/zero of=/part-xfs/aa1 bs=1M count=2 dd: error writing ‘/part-xfs/aa1’: Disk quota exceeded2+0 records in1+0 records out1048576 bytes (1.0 MB) copied, 0.0120921 s, 86.7 MB/s[li@localhost part-xfs]$ dd if=/dev/zero of=/part-xfs/aa2 bs=1M count=2 dd: failed to open ‘/part-xfs/aa2’: Disk quota exceeded[li@localhost part-xfs]$ lltotal 30720-rw-rw-r--. 1 li li 30408704 Oct 29 15:27 aa-rw-rw-r--. 1 li li 1048576 Oct 29 15:27 aa1。
操作系统实验5文件系统:Linux文件管理
(1)掌握Linux 提供的文件系统调用的使用方法;
(2)熟悉文件和目录操作的系统调用用户接口;
(3)了解操作系统文件系统的工作原理和工作方式。
(1) 利用Linux 有关系统调用函数编写一个文件工具filetools,要求具有下列功能:***********
0. 退出
1. 创建新文件
2. 写文件
3. 读文件
4. 复制文件
5. 修改文件权限
6. 查看文件权限
7. 创建子目录
8. 删除子目录
9. 改变当前目录到指定目录
10. 链接操作
通过这次实验掌握Linux 提供的文件系统调用的使用方法;熟悉文件和目录操作的调用用户接口,了解操作系统文件系统的工作原理和工作方式。
操作系统 实验4:文件管理实验报告
一、实验题目:文件管理实验--Linux下的文件管理二、实验目的和要求:实验目的:(1)加深对文件、目录、文件系统等概念的理解。
(2)掌握 Linux 文件系统的目录结构。
(3)掌握有关 Linux 文件系统操作的常用命令。
(4)了解有关文件安全性方面的知识。
实验要求:(1)正确使用文件管理命令,能熟练地对文件进行浏览、拷贝、移动和删除。
(2)能熟练地确定和更改工作目录,查看内容和文件属性,创建和删除目录。
(3)正确地理解文件的权限,并能进行相应更改。
(4)理解文件的类型及其表示形式。
(5)理解文件名的表示形式,在模式匹配中能正确使用通配符。
三、实验内容:(1)使用pwd,cd,ls等命令浏览文件系统。
(2)使用cat,cp,mv,head,tail,rm等命令查看你的文件。
(3)使用ln命令进行文件的硬连接和符号连接。
软中断通信(4)使用find,grep命令进行文件查找和模式匹配。
(5)使用chmod命令修改文件的权限。
四、实验步骤:(说明:对本实验涉及的教材中的相关内容进行归纳总结,只需简要说明即可。
)1、用root账号登录到终端,使用pwd命令查看当前目录2、用cd命令将当前目录切换到“/”目录下3、使用ls明令查看Linux的目录结构,了解各目录存放与系统相关的文件14、使用 cat、more、head、tail等命令显示 /etc/inittab文件内容5、使用grep 命令在/etc/inittab 文件中查询“initdefault”字符串26、使用find 命令查找 /目录下所有以main 开头的文件7、使用 cp 命令将/etc目录下的inittab文件拷贝到/root目录下8、使用 sort 和uniq 命令对 /root目录下的inittab文件排序后输出其结果39、统计inittab文件的字节数、行数、字数10、用mkdir命令在/root目录下创建一个test目录11、用cp命令将/etc目录及其下所有内容复制到test目录下12、使用cd和ls查看/root/test/etc 下的内容413、将test目录改名为test214、删除test2五、实验总结:通过本次实验,让我懂得了怎样创建文件以及文件管理命令的使用,对Linux的掌握和了解进一步加深。
《Linux操作系统》实验四-文件管理和管理实验
《Linux操作系统》实验报告实验四:文件管理和管理实验一、实验目的1.掌握用户管理命令;2.掌握文件管理命令。
二、实验环境Win10记事本VM三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果)用户管理实验内容:一、用户管理(一)添加用户useradd1、增加新用户user1,用户主目录:/home/user12、设置user1密码为user1113、增加新用户user2,用户主目录:/user/user24、设置user2 的密码为空5、以user1用户身份登陆6、将/home/file1文件拷贝到user1的用户主目录下,能够执行成功吗?可以执行7、将/home/file1文件拷贝到/home/dir1目录下,能够执行成功吗?不能够执行成功8、切换到root用户9、将/home/file1文件拷贝到/home/dir1目录下,能够执行成功吗?为什么?可以执行,因为Root用户有权限执行10、执行# chown user1 /home/dir1,命令作用是什么?改变user1的主目录为:/home/dir111、切换回user1用户12、将/home/file1文件拷贝到/home/dir1目录下,能够执行成功吗?为什么?不能,因为user1用户没有权限13、passwd和shadow文件的前5行内容和后4行内容是什么?Passwd(1):用户名。
(2):密码(已经加密)(3):UID(用户标识),操作系统自己用的(4):GID组标识。
(5):用户全名或本地帐号shadow(1):帐号名称(2):密码:这里是加密过的,但高手也可以解密的。
要主要安全问题(代!符号标识该帐号不能用来登录)(3):上次修改密码的日期(4):密码不可被变更的天数(5):密码需要被重新变更的天数(99999表示不需要变更)(6):密码变更前提前几天警告(7):帐号失效日期(8):帐号取消日期(9):保留条目,目前没用思考题:/etc/passwd和/etc/shadow的文件权限对于系统安全有何作用?(二)删除用户1、#userdel user12、#userdel -r user2思考:步骤1和步骤2的执行结果有什么异同?若使用参数r则删除用户的同事也删除用户所有的相关文件,也包括宿主目录及用户的邮件池等。
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 实验报告总结在学习计算机相关知识的过程中,Linux 操作系统无疑是一个重要的领域。
通过一系列的实验操作,我对 Linux 有了更深入的理解和认识。
以下是我对这些实验的详细总结。
一、实验目的本次 Linux 实验的主要目的是熟悉 Linux 操作系统的基本命令和操作,了解其文件系统、进程管理、用户权限等核心概念,并能够运用这些知识解决实际问题。
二、实验环境我们使用了虚拟机软件(如 VMware 或 VirtualBox)来创建 Linux操作系统的实验环境。
所安装的 Linux 发行版包括 Ubuntu、CentOS 等,版本根据具体实验要求而定。
三、实验内容及步骤(一)文件和目录操作1、熟悉常用的文件操作命令,如`ls` 用于列出目录内容,`cd`用于切换目录,`mkdir` 用于创建新目录,`rmdir` 用于删除空目录,`touch` 用于创建空文件等。
2、掌握文件权限的设置,通过`chmod` 命令修改文件的读、写、执行权限,了解`u`(所有者)、`g`(所属组)、`o`(其他用户)的权限设置方式。
3、进行文件的复制、移动和删除操作,使用`cp` 命令复制文件,`mv` 命令移动文件或重命名文件,`rm` 命令删除文件或目录。
(二)进程管理1、学会使用`ps` 命令查看系统中的进程信息,包括进程的 ID、状态、占用的 CPU 和内存等。
2、掌握通过`kill` 命令终止进程的方法,根据进程 ID 发送相应的信号来结束进程的运行。
3、了解进程的调度和优先级设置,通过`nice` 命令调整进程的优先级。
(三)用户和用户组管理1、熟悉用户和用户组的创建、修改和删除操作,使用`useradd` 命令添加新用户,`usermod` 命令修改用户属性,`userdel` 命令删除用户。
2、掌握用户组的管理命令,如`groupadd` 创建用户组,`groupmod` 修改用户组属性,`groupdel` 删除用户组。
实验5 Linux文件管理
实验5 Linux文件管理一、实验目的1. 掌握Linux文件系统的基本原理、结构和实现方法2. 掌握Linux文件系统中文件的建立、打开、读/写、执行、属性等系统调用的使用3. 学会设计简单的文件系统并实现一组操作4. 通过实验学习文件系统的系统调用命令,提高对文件系统实现功能的理解和掌握二、实验内容设计并实现一个一级文件系统程序,要求实现以下功能:1. 提供文件创建/删除接口命令create / delete、目录创建/删除接口命令mkdir / rmdir、显示目录内容命令ls等。
2. 创建的文件不要求格式和内容。
三、实验结果1. 程序源代码main.cpp#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <string.h>#include "structure.h"#include "creat.h"#include "access.h"#include "ballfre.h"#include "close.h"#include "delete.h"#include "dir.h"#include "format.h"#include "halt.h"#include "iallfre.h"#include "install.h"#include "log.h"#include "name.h"#include "open.h"#include "rdwt.h"#include "igetput.h"struct hinode hinode[NHINO];struct dir dir;struct file sys_ofile[SYSOPENFILE];struct filsys filsys;struct pwd pwd[PWDNUM];struct user user[USERNUM];FILE *fd;struct inode *cur_path_inode;int user_id;/*kkkkk*/unsigned short usr_id;char usr_p[12];char sel;char temp_dir[12];main(){unsigned short ab_fd1,ab_fd2,ab_fd3,ab_fd4,i,j;char *buf;int done=1;printf("\nDo you want to format the disk(y or n)?\n");if(getchar()=='y'){printf("\nFormat will erase all context on the disk \n");printf("Formating...\n");format();printf("\nNow will install the fillsystem,please wait...\n");install();printf("\n----Login----\nPlease input your userid:");scanf("%u",&usr_id);printf("\nPlease input your password:");scanf("%s",&usr_p);/* printf("\nsuccess\n");*/if(!login(usr_id,usr_p))return;while(done){printf("\n Please Select Your Operating\n");printf(" -1----ls\n -2----mkdir\n -3----change dir\n -4----create file\n -0----Logout\n");/* зЂвт*/sel=getchar();sel=getchar();switch(sel){case '1':_dir();break;case '2':printf("please input dir name:");scanf("%s",temp_dir);mkdir(temp_dir);break;case '3':printf("please input dir name:");scanf("%s",temp_dir);chdir(temp_dir);break;case '4':printf("please input file name:");scanf("%s",temp_dir);ab_fd1=creat(2118,temp_dir,01777);buf=(char *)malloc(BLOCKSIZ*6+5);write(ab_fd1,buf,BLOCKSIZ*6+5);close(0,ab_fd1);free(buf);break;case '0':logout(usr_id);halt();done = 0;default:printf("error!\nNo such command,please try again.\nOr you can ask your teacher for help.\n");break;}}}elseprintf("User canseled\nGood Bye\n");}structure.h#ifndef _STRUCTURE_H#define _STRUCTURE_H#define MAX 32767#define BLOCKSIZ 512#define SYSOPENFILE 40#define DIRNUM 128#define DIRSIZ 14#define PWDSIZ 12#define PWDNUM 32#define NOFILE 20#define NADDR 10#define NHINO 128#define USERNUM 10#define DINODESIZ 72#define DINODEBLK 32#define FILEBLK 512#define NICFREE 50#define NICINOD 50#define DINODESTART 1024#define DATASTART (2+DINODEBLK)*BLOCKSIZ#define DIEMPTY 00000#define DIFILE 01000#define DIDIR 02000#define UDIREAD 00001#define UDIWRITE 00002#define UDIEXICUTE 00004#define GDIREAD 00010#define GDIWRITE 00020#define GDIEXICUTE 00040#define ODIREAD 00100#define ODIWRITE 00200#define ODIEXICUTE 00400#define READ 1#define WRITE 2#define EXICUTE 3#define DEFAULTMODE 00777#define IUPDATE 00002#define SUPDATE 00001#define FREAD 00001#define FWRITE 00002#define FAPPEND 00004#define DISKFULL 65535#define SEEK_SET 0struct inode{struct inode *i_forw;struct inode *i_back;char i_flag;unsigned int i_ino;unsigned int i_count;unsigned int di_addr[NADDR];unsigned short di_number;unsigned short di_mode;unsigned short di_uid;unsigned short di_gid;unsigned short di_size;};struct dinode{unsigned short di_number;unsigned short di_mode;unsigned short di_uid;unsigned short di_gid;unsigned long di_size;unsigned int di_addr[NADDR]; };struct direct{char d_name[DIRSIZ];unsigned int d_ino;};struct filsys{unsigned short s_isize;unsigned long s_fsize;unsigned int s_nfree;unsigned short s_pfree;unsigned int s_free[NICFREE];unsigned int s_ninode;unsigned short s_pinode;unsigned int s_inode[NICINOD];unsigned int s_rinode;char s_fmod;};struct pwd{unsigned short p_uid;unsigned short p_gid;char password[PWDSIZ];};struct dir{struct direct direct[DIRNUM];int size;};struct hinode{struct inode *i_forw;};struct file{char f_flag;unsigned int f_count;struct inode *f_inode;unsigned long f_off;};struct user{unsigned short u_default_mode;unsigned short u_uid;unsigned short u_gid;unsigned short u_ofile[NOFILE]; };extern struct inode* aaa;extern struct hinode hinode[NHINO]; extern struct dir dir;extern struct file sys_ofile[SYSOPENFILE]; extern struct filsys filsys;extern struct pwd pwd[PWDNUM];extern struct user user[USERNUM];extern struct inode *cur_path_inode;extern FILE *fd;extern int user_id;extern struct inode *iget();extern iput();extern unsigned int balloc();extern bfree();extern struct inode *ialloc();extern ifree();extern int namei();extern short iname();extern unsigned int access();extern _dir();extern mkdir();extern chdir();extern unsigned short open();extern create();extern unsigned int read();extern unsigned int write();extern int login();extern logout();extern install();extern format();extern close();extern halt();#endifaccess.h#include <stdio.h>#include "structure.h"unsigned int access(user_id,inode,mode) unsigned int user_id;struct inode *inode;unsigned short mode;{switch(mode){case READ:if(inode->di_mode&ODIREAD) return 1;if((inode->di_mode&GDIREAD)&&(user[user_id].u_gid==inode->di_gid)) return 1;if((inode->di_mode&UDIREAD)&&(user[user_id].u_uid==inode->di_uid)) return 1;return 0;case WRITE:if(inode->di_mode&ODIWRITE) return 1;if((inode->di_mode&GDIWRITE)&&(user[user_id].u_gid==inode->di_gid)) return 1;if((inode->di_mode&UDIWRITE)&&(user[user_id].u_uid==inode->di_uid)) return 1;return 0;case EXICUTE:if(inode->di_mode&ODIEXICUTE) return 1;if((inode->di_mode&GDIEXICUTE)&&(user[user_id].u_gid==inode->di_gid)) return 1;if((inode->di_mode&UDIEXICUTE)&&(user[user_id].u_uid==inode->di_uid)) return 1;return 0;default:return 1;}}ballfre.h#include <stdio.h>#include "structure.h"static unsigned int block_buf[BLOCKSIZ/sizeof(int)];unsigned int balloc(){unsigned int free_block;int i,flag;if(filsys.s_nfree==0){printf("\nDisk Full!!\n");return DISKFULL;}i=filsys.s_pfree;flag=(i==0);if(flag) //该BLOCK组全部用了{fseek(fd,DATASTART+BLOCKSIZ*(filsys.s_free[NICFREE-1]+1),SEEK_SET);//filsys.s_free[NICFREE-1]+1指向下一个block组的地址块fread(block_buf,1,BLOCKSIZ,fd);for(i=0; i<NICFREE; i++){filsys.s_free[i]=block_buf[i];}//将待用block组的地址读入超级块filsys.s_pfree=NICFREE-1;free_block=filsys.s_free[filsys.s_pfree];}else{free_block=filsys.s_free[filsys.s_pfree];filsys.s_pfree--;}filsys.s_nfree--;filsys.s_fmod=SUPDATE;return free_block;}bfree (unsigned int block_num){int i;if(filsys.s_pfree==NICFREE-1)//表示回收的block已经可以组成一个block组了{for(i=0; i<NICFREE; i++){block_buf[i]=filsys.s_free[NICFREE-1-i];}filsys.s_pfree=0;fseek(fd,DATASTART+BLOCKSIZ*(filsys.s_free[0]),SEEK_SET);//filsys.s_free[0]为当前BLOCK组的地址块fwrite(block_buf,1,BLOCKSIZ,fd);}else filsys.s_pfree++;filsys.s_nfree++;filsys.s_fmod=SUPDATE;}close.h#include <stdio.h>#include "structure.h"close(user_id,cfd)unsigned int user_id;unsigned short cfd;{struct inode *inode;inode=sys_ofile[user[user_id].u_ofile[cfd]].f_inode;iput(inode);sys_ofile[user[user_id].u_ofile[cfd]].f_count--;user[user_id].u_ofile[cfd]=SYSOPENFILE+1;}creat.hcreat(uid,filename,mode)unsigned int uid;char *filename;unsigned short mode;{int di_ith,di_ino;struct inode *inode;int i,j;i=0;while(i<USERNUM)//user[]的值由函数login()注册,参看文件log.h {if(user[i].u_uid==uid){user_id=i;break;}i++;}if(i==USERNUM){printf("the user id is wrong.\n");exit(1);}di_ino=namei(filename);if(di_ino!=-1)//文件已经存在{inode=iget(di_ino);if(access(user_id,inode,mode)==0){iput(inode);printf("\ncreat access not allowed\n");return 0;}for(i=0; i<inode->di_size/BLOCKSIZ+1; i++){bfree(inode->di_addr[i]);}for(i=0; i<SYSOPENFILE; i++)if(sys_ofile[i].f_inode==inode){sys_ofile[i].f_off=0;}for(i=0; i<NOFILE; i++)if(user[user_id].u_ofile[i]==SYSOPENFILE+1){user[user_id].u_uid=inode->di_uid;user[user_id].u_gid=inode->di_gid;for(j=0; j<SYSOPENFILE; i++)if(sys_ofile[j].f_count==0){user[user_id].u_ofile[i]=j;sys_ofile[j].f_flag=(char)mode;}return i;}}else{inode=ialloc();di_ith=iname(filename);dir.size++;dir.direct[di_ith].d_ino=inode->i_ino;inode->di_mode=user[user_id].u_default_mode;inode->di_uid=user[user_id].u_uid;inode->di_gid=user[user_id].u_gid;inode->di_size=0;inode->di_number=0;for(i=0; i<SYSOPENFILE; i++)if(sys_ofile[i].f_count==0){break;}for(j=0; j<NOFILE; i++)if(user[user_id].u_ofile[j]==SYSOPENFILE+1){break;}user[user_id].u_ofile[j]=i;sys_ofile[i].f_flag=(char)mode;sys_ofile[i].f_count=0;sys_ofile[i].f_off=0;sys_ofile[i].f_inode=inode;return j;}return 0;}delete.h#include <stdio.h>#include "structure.h"delete(char *filename){unsigned int dinodeid;struct inode *inode;dinodeid=namei(filename);if(dinodeid!=(int)NULL)inode=iget(dinodeid);inode->di_number--;iput(inode);}dir.h_dir(){unsigned int di_mode;int i,j,one;struct inode *temp_inode;printf("CURRENT DIRECTORY:\n");for(i=0;i<dir.size;i++){if(dir.direct[i].d_ino!=DIEMPTY){printf("%sDIRSIZ",dir.direct[i].d_name);temp_inode=iget(dir.direct[i].d_ino);di_mode=temp_inode->di_mode;for(j=0;j<9;j++){one=di_mode%2;di_mode=di_mode/2;if(one) printf("x");else printf("-");}if(temp_inode->di_mode&&DIFILE==1){printf("%ld\n",temp_inode->di_size);printf("block chain:");for(i=0;i<temp_inode->di_size/BLOCKSIZ+1;i++)printf("%4d",temp_inode->di_addr[i]);printf("\n");}else printf("<dir>\n");iput(temp_inode);}}}mkdir(char *dirname){int dirid,dirpos;struct inode *inode;struct direct buf[BLOCKSIZ/(DIRSIZ+2)];unsigned int block;dirid=namei(dirname);if(dirid!=-1)//dirid==-1表示没有该目录名存在;{inode=iget(dirid);if(inode->di_mode&DIDIR)printf("\n%s directory already existed!!\n");elseprintf("\n%s is a file name&can not creat a dir the same name",dirname);iput(inode);return 0;}dirpos=iname(dirname);inode=ialloc();inode->i_ino=dirpos;dir.direct[dirpos].d_ino=inode->i_ino;dir.size++;strcpy(buf[0].d_name,".");buf[0].d_ino=dirid;strcpy(buf[1].d_name,"..");buf[1].d_ino=cur_path_inode->i_ino;block=balloc();fseek(fd,DATASTART+block*BLOCKSIZ,SEEK_SET);fwrite(buf,1,BLOCKSIZ,fd);inode->di_size=2*(DIRSIZ+2);inode->di_number=1;inode->di_mode=user[user_id].u_default_mode;inode->di_uid=user[user_id].u_uid;inode->di_gid=user[user_id].u_gid;inode->di_addr[0]=block;iput(inode);return 0;}chdir(char *dirname){int dirid;int temp;struct inode *inode;short block;int i,j,low=0,high=0;dirid=namei(dirname);if(dirid=#include <stdio.h>#include "structure.h"delete(char *filename){unsigned int dinodeid;struct inode *inode;dinodeid=namei(filename);if(dinodeid!=(int)NULL)inode=iget(dinodeid);inode->di_number--;iput(inode);}=-1){printf("\n%s does not existed\n",dirname);return 0;}inode=iget(dirid);if(!access(user_id,inode,user[user_id].u_default_mode)){printf("\nhas not access to the directory %s",dirname);iput(inode);return 0;}for(i=0;i<dir.size;i++){for(j=0;j<DIRNUM;j++){temp=dir.direct[j].d_ino;if(dir.direct[j].d_ino==0||dir.direct[j].d_ino>MAX) break;}dir.direct[j].d_ino=0;}for(i=0;i<cur_path_inode->di_size/BLOCKSIZ+1;i++){bfree(cur_path_inode->di_addr[i]);}i=dir.size;for(i=0;i<dir.size;i+=BLOCKSIZ/(DIRSIZ+2)){block=balloc();cur_path_inode->di_addr[i]=block;fseek(fd,DATASTART+block*BLOCKSIZ,SEEK_SET);fwrite(&dir.direct[i],1,BLOCKSIZ,fd);}cur_path_inode->di_size=dir.size*(DIRSIZ+2);iput(cur_path_inode);cur_path_inode=inode;i=inode->di_size/BLOCKSIZ+1;j=0;for(i=0;i<inode->di_size/BLOCKSIZ+1;i++){fseek(fd,DATASTART+inode->di_addr[i]*BLOCKSIZ,SEEK_SET);fread(&dir.direct[j],1,BLOCKSIZ,fd);j+=BLOCKSIZ/(DIRSIZ+2);}return 0;}format.hformat(){struct inode *inode;struct direct dir_buf[BLOCKSIZ/(DIRSIZ+2)];struct pwd passwd[BLOCKSIZ/(PWDSIZ+4)];struct filsys filsys;unsigned int block_buf[BLOCKSIZ/sizeof(int)];char *buf;char *empty;int i,j,k;fd=fopen("filesystem","w+b");buf=(char*)malloc((DINODEBLK+FILEBLK+2)*BLOCKSIZ*sizeof(char));if(fd==NULL){printf("\nfile system file creat failed!!\n");exit(0);}fseek(fd,0,SEEK_SET);fwrite(buf,1,(DINODEBLK+FILEBLK+2)*BLOCKSIZ*sizeof(char),fd);free(buf);passwd[0].p_uid=2116;passwd[0].p_gid=03;strcpy(passwd[0].password,"don1"); passwd[1].p_uid=2117;passwd[1].p_gid=03;strcpy(passwd[1].password,"don2"); passwd[2].p_uid=2118;passwd[2].p_gid=04;strcpy(passwd[2].password,"abcd"); passwd[3].p_uid=2119;passwd[3].p_gid=04;strcpy(passwd[3].password,"don4"); passwd[4].p_uid=2220;passwd[4].p_gid=05;strcpy(passwd[4].password,"don5");inode=iget(0);inode->di_mode=DIEMPTY;iput(inode);inode=iget(1);inode->di_number=1;inode->di_mode=DEFAULTMODE|DIDIR; inode->di_size=3*(DIRSIZ+2);inode->di_addr[0]=0;strcpy(dir_buf[0].d_name,"..");dir_buf[0].d_ino=1;strcpy(dir_buf[1].d_name,".");dir_buf[1].d_ino=1;strcpy(dir_buf[2].d_name,"etc");dir_buf[2].d_ino=2;fseek(fd,DATASTART,SEEK_SET);fwrite(dir_buf,1,3*(DIRSIZ+2),fd);iput(inode);fseek(fd,1056,SEEK_SET);fread(inode,DINODESIZ,1,fd);inode=iget(1);iput(inode);inode=iget(2);inode->di_number=1;inode->di_mode=DEFAULTMODE|DIDIR;inode->di_size=3*(DIRSIZ+2);inode->di_addr[0]=1;strcpy(dir_buf[0].d_name,"..");dir_buf[0].d_ino=1;strcpy(dir_buf[1].d_name,".");dir_buf[1].d_ino=2;strcpy(dir_buf[2].d_name,"password");dir_buf[2].d_ino=3;fseek(fd,DATASTART+BLOCKSIZ*1,SEEK_SET);fwrite(dir_buf,1,3*(DIRSIZ+2),fd);iput(inode);inode=iget(3);inode->di_number=1;inode->di_mode=DEFAULTMODE|DIFILE;inode->di_size=BLOCKSIZ;inode->di_addr[0]=2;for(i=5;i<PWDNUM;i++){passwd[i].p_uid=0;passwd[i].p_gid=0;strcpy(passwd[i].password," ");}fseek(fd,DATASTART+2*BLOCKSIZ,SEEK_SET);fwrite(passwd,1,BLOCKSIZ,fd);iput(inode);filsys.s_isize=DINODEBLK;filsys.s_fsize=FILEBLK;filsys.s_ninode=DINODEBLK*BLOCKSIZ/DINODESIZ-4;filsys.s_nfree=FILEBLK-3;for(i=0;i<NICINOD;i++){filsys.s_inode[i]=4+i;}filsys.s_pinode=0;filsys.s_rinode=NICINOD+4;for(i=NICFREE+2;i<FILEBLK;i+=50)//为何要加2,参看149行的注释{for(j=0;j<NICFREE;j++){block_buf[NICFREE-1-j]=i-j;}fseek(fd,DATASTART+BLOCKSIZ*(i-49),SEEK_SET);fwrite(block_buf,1,BLOCKSIZ,fd);}//当i=502之后,完成文件块502~453的写入;//之后文件块512~503不能进行,需要特殊处理for(i=503;i<512;i++)block_buf[i-503]=i;fseek(fd,DATASTART+BLOCKSIZ*503,SEEK_SET);fwrite(block_buf,1,BLOCKSIZ,fd);//至此,才完成512块文件块的定位for(i=0;i<NICFREE;i++){filsys.s_free[i]=i+3;//从DATASTART的第一个BLOCK作为MAIN DIRECTORY//第二个BLOCK作为etc目录//第三个BLOCK作为password文件//故此i要加3}//每50个BLOCK成组,在每个BLOCK组当中的第一个BLOCK(称为地址块)放有整个BLOCK//组的地址。
实验三Linux文件系统及文件管理
实验三1 实验名称:Linux文件系统及文件管理2 实验目的通过本实验了解Linux操作系统支持的多文件系统,并熟练掌握Linux文件管理方法,使实验者具备初步的Linux操作系统文件管理能力,包括:2.1 掌握磁盘管理能力2.2 掌握目录与文件管理能力2.3 掌握文件归档与压缩能力2.4 掌握RPM软件包管理能力3 实验环境3.1Windows XP下基于“VMware Workstation”虚拟机环境的Red Hat Enterprise Linux Server 5系统。
3.2将主机的登录名改为具有个人学号后3位特征的名字。
4实验要求、步骤及结果4.1掌握目录与文件管理相关的shell命令的使用。
【操作要求1】用一条命令新建具有如下结构的目录树。
注意:文件名严格区分大小写。
【操作要求1】【操作要求2】将M2目录重命名为m2;查看m1目录的访问权限;减去其它用户对m1目录的执行权。
【操作步骤1-重命名】【操作步骤2-查看权限】【截取访问权限】修改前【截取访问权限】修改后【操作要求3】不区分大小写,找出/etc/fstab文件中不包含“swA p”字样的行,结果保存在mulu/m1/m11/test.txt文件中;将mulu/m1/m12目录移动到mulu/m2下目录下并重命名为m22;删除mulu/m2/m21目录。
参照“【操作要求1】样式”绘制目录结构图。
【操作步骤1-字符匹配】【操作步骤2-移动】【操作步骤3-删除目录】【绘制目录结构图】【操作要求4】统计/etc 目录下扩展名为.conf 的文件数,结果保存到mulu 目录的wc.txt 文件中;查看wc.txt 的访问权限;查看wc.txt 的内容。
【操作步骤1】【操作步骤2】【操作步骤3】【操作要求5】从/etc 目录开始查找(find )fs 开头文件;将fstab 文件中所有包含“mnt ”的行写入f4文件并保存在当前目录中。
Linux 实验报告(二)文件和目录管理
Linux操作系统报告单名称:__________ 文件和目录管理________ 任课教师: __ ___ _专业:__计算机科学与技术班级: _ _ 姓名: _ 学号:完成日期:_ _ 成绩: ___ ___执行命令 cp bak.d/p*.c7. 创建目录 dir5,此目录下创建文件 a 和 b 和 e 和 f和目录a.d p1.c bak.d p2.c和目录b.d。
执行命令mv a c 和 mv b e f a.d 和 mv a.d b.d8. 跳转到 dir5 的上层目录,执行命令 rm –ir dir59. 创建目录 dir6 和文件 a.c 和文件 b.c 和文件 e.c,执行命令 rm -i和 who>-i 和rm –i,然后执行命令 rm * 和 cat * 和 ls *和rm -- -i10. 跳转到 dir6 的上层目录,复制 dir6 目录到/tmp11. 修改/tmp 下的 dir6 目录下 a.c 文件内容,以增量拷贝的方式,复制 dir6 目录到/tmp,查看/tmp 下的 dir6 目录下 a.c 文件内容。
12. 找出所有/usr/include 下的.c 文件和.h 文件13. 找出所有/usr/include 下的.c 文件和.h 文件,并查找文本“extern”, 分屏显示。
14. 查找出/tmp 下所有的目录文件和 socket 文件15. 查找出/tmp 下所有 3 天内没有访问的文件和 3 天内修改过的普通文件16. 查找出/tmp 下所有大于 100c 的普通文件三、实验步骤:四、实验结果:1.查看操作系统的根目录下,有哪些目录2.文件操作(1)查看文件(可以是二进制的)内容 cat执行格式:cat filename 或 more filename 或 cat filename|more 例: cat file1 以连续显示方式,查看文件 file1 的内容或 cat file1|more 以分页方式查看文件的内容(2)删除文件 rm执行格式:rm filename例: rm file?rm f* 删除以f开头的一般文件(3)复制文件 cp执行格式: cp [r] source destination例:cp file1 file2 将 file1 复制成 file2cp file1 dir1 将file1复制到目录 dir1cp /dir1/file1 . 将file1复制到当前目录cp /tmp/file1 file2 将file1复制到当前目录名为 file2 cp –r dir1 dir2 (recursive copy)复制整个目录(4)移动或更改文件、目录名称 mv执行格式: mv source destination例:mv file1 file2 将文件 file1,更名为 file2mv file1 dir1 将文件 file1,移到目录 dir1 下mv dir1 dir2 将文件 dir1,移到目录 dir2 下(5)比较文件(可以是二进制的)或目录的内容 diff执行格式: diff [r] name1 name2 (name1、name2 同为目录)文件或例:diff file1 file2 比较 file1 与 file2 的不同处diff –r dir1 dir2 dir1 与 dir2 的不同处(6)文件中字符串的查找 grep执行格式:grep string file1例:grep abc file1 查找并列出串 abc 所在的整行文字3、系统询问与权限口令(1)查看系统中的使用者执行格式: who(2)查看 username执行格式: who am I 查看自己的 username(3)改变自己的 username 的帐号与口令 su执行格式: su username例:su username 输入账号Password 输入密码(4)文件属性的设置 chmod执行格式: chmod [R] mode name其中:[-R]为递归处理,将指定目录下所有文件及子目录一并处理 mode 为 3-8 位数字,是文件/目录读、写、执行允许权的缩写(r:read,数字代号为"4", w:write,数字代号为"2", x:execute,数字代号为"1")mode: rwx rwx rwxuser group other缩写:(u)(g)(o)例:chmod 755 dir1 将将目录 dir1 设定成任何人皆有读取及执行的权利,但只有拥有者可作写修改。
linux操作系统实验报告
linux操作系统实验报告Linux 操作系统实验报告一、实验目的本次实验的主要目的是深入了解和熟悉Linux 操作系统的基本操作、命令行使用、文件系统管理以及进程管理等方面的知识和技能。
通过实际操作和实践,提高对 Linux 操作系统的掌握程度,为今后在相关领域的学习和工作打下坚实的基础。
二、实验环境本次实验使用的是虚拟机软件 VirtualBox 安装的 Ubuntu 2004 LTS操作系统。
虚拟机配置为 2GB 内存,20GB 硬盘空间。
实验在Windows 10 操作系统的主机上进行。
三、实验内容及步骤(一)用户和权限管理1、创建新用户使用`sudo adduser <username>`命令创建新用户,例如创建用户名为`testuser` 的新用户。
2、设置用户密码使用`sudo passwd <username>`命令为新用户设置密码。
3、切换用户使用`su <username>`命令切换到新用户。
4、用户权限管理修改`/etc/sudoers` 文件,为新用户赋予特定的权限,例如允许执行特定的管理员命令。
(二)文件和目录操作1、查看文件和目录使用`ls` 命令查看当前目录下的文件和目录,使用`ls l` 命令查看详细信息,包括文件权限、所有者、大小和修改时间等。
2、创建、删除文件和目录使用`touch <filename>`命令创建新文件,使用`mkdir <directoryname>`命令创建新目录。
使用`rm <filename>`命令删除文件,使用`rmdir <directoryname>`命令删除空目录,使用`rm r <directoryname>`命令删除非空目录。
3、复制、移动文件和目录使用`cp <source> <destination>`命令复制文件或目录,使用`mv <source> <destination>`命令移动文件或目录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生课程实验报告书课程:《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中。
Ls –l 反馈信息中有新文件 file1。
请注意并记下文件长度为:
〈3〉使用cat命令查看file1文件的内容。
〈4〉利用man命令显示date命令的用法(说明文件):
〈5〉将date命令的用法(说明文件内容)附加到文件file1的后面:注意file1文件长度为,较前变长。
〈6〉利用ls -l file1命令列出文件file1的较详细的信息。
ls -l file1 注意第二字段(链接记数)的值为“1”。
〈7〉利用ln file1../fa命令进行文件链接。
然后运行ls -l file1,查看显示的第二段的值发生了什麽变化。
〈8〉现在想利用cat fa命令显示文件fa的内容,应该如何改动工作目录?
〈9〉利用cp file1 fa命令生成文件file1的副本。
然后利用ls -l命令查看工作目录的内容。
〈10〉将文件fa删除。
再利用ls -l命令查看工作目录内容。
〈11〉运行mv file1 file_a命令,然后用ls命令查看这两个文件是否都还在工作目录中?
3.文件存取权限
〈1〉存取权限
LINUX系统对所有文件设置了存取权限。
存取权限让你确定谁可以对你的个人文件和目录行访问,以及可以进行什麽操作。
把所有用户分为三类:
——文件主(user),即文件的属主。
——组用户(group),即文件组的成员。
——其他用户(other),即能对系统进行访问的所有其他用户。
对一个文件的存取权限分为三种:
——读(r)
——写(w)
——执行(x)
一组存取权限以及相应的文件类型统称为文件模式。
如:rw-r--r--表示文件主有读和写的权限,组用户和其他用户只有读权限。
〈2〉文件存取权限
读权限(r)允许指定的用户可以打开文件并阅读其内容。
如cat,more,file和cp命令等。
写权限(w)允许指定的用户可以打开文件并修改其内容。
如vi,mail,cp等。
执行权限(x)允许指定的用户运行(即执行)一个二进制文件文件或者把一个shell脚文件当做命令来运行。
当你通过输入命令名来调用命令时,你必须具有该命令文件的执行限。
〈3〉目录存取权限
读权限(r)允许你列出相应目录中所存放的文件的名字(即目录的内容表)。
写权限(w)允许你从目录中删除已有文件或者把新文件添加到目录中。
查询权限(x)允许你在目录中进行查找和使用cd命令把工作目录放到它这里。
〈4〉修改文件权限
文件主或root用户可以使用chmod命令来修改文件或目录的权限。
修改文件权限的方式有两种:符号模式和绝对模式。
这里主要介绍符号模式。
使用chmod命令修改当前权限设置的一般形式是:chmod key file [file...]
其中,key由以下成分组成:[who] [+|-|=] [mode]
——who这一部分可以由下面的一个和多个字符组成:u,g,o或a,它们分别表示文件主,组用户,其他用户或所有三种用户。
默认值是a。
——第二部分必须是以下三个字符中的一个:+,-,或者=,分别表示增加,删除或者设定。
——mode成分可以由以下字符任意组合:r,w或x,分别表示读,写或者执行/查询的权限。
以上三个部分必须依次输入,而且它们之间没有空格。
在一个命令行中可以指定多个key,彼此间用逗号隔开,中间没有空格。
如:设文件f原来的权限是rw-rw-r--,现在想让所有用户都具有执行权限,则可使用以下命令:chmod a+x f ,该命令执行后,文件f的权限变成rwxrwxr-x。
练习:
mv file_a file1 恢复文件file1;
ls –l 显示文件file1的权限为 rw-rw-r—;
1).取消同组用户g和其他用户o 对文件可读的权利;
2).显示文件file1的权限。
3).恢复同组用户g和其他用户o 对文件可读的权利;
4 配额管理
〈1〉利用fdisk创建一个分区
〈2〉格式化为ext 3文件系统
〈3〉将该分区设置为自动挂载为/home
.
〈4〉创建两个用户hellen和jerry,组群为student
〈4〉对/home文件系统实施用户级和组群级的配额管理,普通用户helen和jerry的软配额为150MB,硬配额为200MB,student组群的软配额为800MB,硬配额为900MB0
这个不懂怎么进行分配,很多命令不是很熟悉.
六、指导教师评语:
实验成绩_______________ 指导教师_______________。