Linux 实验报告.doc

上传人:jian****018 文档编号:9392251 上传时间:2020-04-05 格式:DOC 页数:24 大小:677.50KB
返回 下载 相关 举报
Linux 实验报告.doc_第1页
第1页 / 共24页
Linux 实验报告.doc_第2页
第2页 / 共24页
Linux 实验报告.doc_第3页
第3页 / 共24页
点击查看更多>>
资源描述
Linux程序设计实验报告 姓 名: 杨 帆 班 级: 计1242 学 号: 121842284 专 业:计算机科学与技术 指导老师: 赵帼英 实验一 Linux系统安装与启动(选做实验)一、实验目的(通过实践及查阅资料完成如下实验)1. 掌握虚拟机的配置过程。2. 掌握Linux系统的安装过程和简单配置方法。3. 掌握与Linux相关的多操作系统的安装方法。4. 掌握Linux系统的启动、关闭步骤。5. 了解Linux文件系统和目录结构。二、实验内容1. 安装虚拟机软件(如VMware、Virtualbox)。2. 在虚拟机软件中安装Linux操作系统(如Fedora、Ubuntu、redhat等)。3. 配置Linux系统运行环境。4. 正确地启动、关闭系统。三、实验步骤1 .安装虚拟机软件(VMware Workstation 7.0) 。2.在虚拟机软件中新建Linux虚拟机 2.1设置内存大小(建议大于256MB)2.2设置虚拟硬盘大小(建议大于8GB)2.3设置虚拟光驱(虚拟方式,镜像文件)2.4设置网络连接模式(建议采用桥接方式)2.5设置共享目录(建议英文目录名)1. 在Linux虚拟机中安装Linux操作系统(fedora10 )。3.1选择安装界面3.2检测安装截介质(建议跳过)3.3安装过程中的语言、键盘选择3.4磁盘分区(采用自动分区,总大小与2.2相匹配)3.5引导程序选择(采用GRUB)3.6注意事项(禁用SELinux)2. 通过相关命令实现对操作系统的登录、退出与关机3. 使用文件浏览器査看Linux操作系统目录结构四、实验思考题1. 举例说明Linux操作系统不同目录下文件的主要作用。2. 列出你发现的Linux与Windows操作系统区别。3. 列出决定文本界面及图形界面显示的关键文件,并说明设置的关键。4. 列出你所能想到的虚拟机软件的用途。实验结论:实验二:linux基本命令(必做实验)一、实验目的、要求(请在操作后附实验结果)1. 熟悉Linux操作环境。2. 掌握Linux 般命令格式。3. 掌握有关文件和目录操作的常用命令。4. 掌握有关进程操作的常用命令。二、实验内容1.熟练掌握登录和退出系统,创建,删除用户等命令(命令:运行结果)。2.熟悉 date,cal,who,echo, clear,passwd,man 等命令。3.在用户主目录下对文件进行如下操作:复制一个文件、显示文件内容、查找指 定内容、排序、文件比较、文件删除。4.对目录进行管理:创建和删除子目录、改变和显示工作目录、列出文件权限、 建立链接文件等。1. 显示系统中的进程信息。三、实验步骤1. 登录进入系统,打开shell环境(终端)。2. 使用 date,cal, who, echo, clear 等命令,了解 Linux 命令格式。3. 利用man命令查看date,echo等命令的帮助说明。4. 目录操作4.1在用户默认工作目录下新建目录testdirl(命令:运行结果)。4.2在用户目录下复制testdirl为testdir2(命令:运行结果)。4.3在用户目录下删除testdir2。(命令:运行结果)5. 文件操作5.1进入用户默认工作目录。5.2运行date testl,然后运行cat test 1,记录观察到的信息(命令:运行结果)。5.3再次运行date testl,然后运行cat testl,记录观察到的信息(命令:运行结果)。5.4运行datetestl,然后运行cattestl,记录观察到的信息并说明原因(命令:运行结果)。5.5 复制 testl 为 test2。5.6査看testl和test2的文件详细信息,记录并说明其异同。 5.7统计testl文件内容的行数、字数。5.8显示testl的内容。5.9建立testl的链接文件test3。5.10复制testl到上一级目录。5.11在用户目录下删除testl,删除testdirl。四、实验思考题1. 如何显示当前工作目录的完整路径。在Linux层次目录结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录。然而,没有提示符来告知用户目前处于哪一个目录中。要想知道当前所处的目录,可以使用pwd命令,该命令显示整个路径名。pwd说明:此命令显示出当前工作目录的绝对路径。例:$ pwd /home/xu显示的路径名为/home/xu,每个目录名都用“/”隔开,根目录以开头的“/”表 示。2. 举例说明Linux命令的常用格式。mkdir -p /srv/ftp/linux-10 创建文件夹 -p 如果文件夹不存在自动创建 free 命令 free命令的功能是查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存 和被核心使用的缓冲区。3. 举例说明如何使用Linux命令帮助(命令:运行结果)。实验结论:实验三文件权限管理(必做实验)一、实验目的1. 熟悉Linux操作环境。2. 掌握Linux 般命令格式。3. 理解Linux中文件所有者和权限的概念。4. 掌握有关权限操作的常用命令。5. 掌握文件/目录的打包和压缩命令。二、实验内容1.2.1 普通文件与目录权限的修改。1.2.2 改变文件属主。1.2.3 普通文件与目录的打包和压缩。三、实验步骤1. 文件权限操作1.1在用户默认工作目录下创建目录test03,进入test03目录,使用touch命令创 建空文件filel。1.2显示filel详细信息,记录文件的权限信息,所属用户和组。1.3对filel设置权限,使其他用户可以对此文件进行写操作,并查看设置结果。 1.4取消同组用户对filel的读取权限,并査看设置结果。1.5用数字形式来为filel设置权限,使所有者可读、可写、可执行;其他用户和 所属组用户只有读和执行的权限,并查看设置结果。1.6用数字形式更改filel权限,使所有者只能读取此文件,其他任何用户都没有 权限,并査看设置结果。1.7为其他用户添加写权限,并査看设置结果。1.8回到上层目录,查看test03的权限。1.9为其他用户添加对此目录的写权限,查看设置结果。1.10査看并记录目录test03及其中文件的所属用户和组。1.11把目录test03及其下的所有文件的所有者改成bin,所属组改成daemon,并 査看设置结果。 1.12删除目录test03及其下的文件。1.13设定umask为000 ($ umask 000),创建testdir目录,并査看其权限。2. 打包压缩命令操作2.1将/etc目录拷贝SlJ用户默认工作目录下,重命名为etctest。2.2用tar命令将etctest目录打包成etctest.tar.gz,查看etctest.tar.gz的权限,解压 缩 etctest.tar.gz四、实验思考题4.1列举ls命令不同选项的功能。(1) ls:显示所有非隐藏文件(按字典顺序排序)(2)ls-a:显示所有文件包括隐藏文件(3)ls-l:显示所有文件的详细信息(4)显示总数4.2 说明文件权限和文件所有者的含义。-rw-r-r-是文件的权限。Root是用户组。4.3 举例说明umask命令的功能。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ HOME/.bash_profile或$HOME/.profile中设置umask值。4.4 说明后缀名为tar.gz和tar.bz2的文件的压缩和解压命令。Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法:tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下: # tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。# tar -rf all.tar *.gif这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 # tar -uf all.tar logo.gif这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。# tar -tf all.tar这条命令是列出all.tar包中所有文件,-t是列出文件的意思# tar -xf all.tar这条命令是解出all.tar包中所有文件,-x是解开的意思以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序。实验结论:通过这个实验我了解了普通文件与目录权限的修改。实验四用户和组的管理(必做实验)一、实验目的1. 熟悉Linux操作环境。2. 掌握Linux 般命令格式。3. 熟悉命令行操作方式进行用户和用户组管理。二、实验内容2. 建立新用户账号权限测试。3. 为新用户建立账号和工作组,并进行相应配置。4. 以该用户身份登录,修改密码。5. 删除该用户。三、实验步骤1. 创建用户(以zhangsan 为例)1.1创建一个新用户zhangsan。1.2査看/etc/passwd文件的最后一行内容,并记录。1.3査看/etc/shadow文件的最后一行内容,并记录。1.4给用户zhangsan设置密码。1.5查看/etc/shadow文件的最后一行内容,记录并说明变化。1.6使用zhangsan用户登录系统,测试能否登录成功。2. 创建用户(以user为例)2.1使用1的步骤创建新用户user。2.2更改zhangsan所属群组为root。2.3査看/etc/passwd文件,记录zhangsan用户和user用户的属组情况。2.4更改用户zhangsan的帐户名为user。2.5査看/etc/passwd文件的最后一行内容,记录并说明变化。2.6删除用户user。3. 组的管理(以stuff为例)3.1创建一个新组,组名为stuff。 3.2査看/etc/group文件的最后一行内容,并记录。3.3创建一个新帐户test,并将其起始组和附属组都设为stuff。3.4査看/etc/group文件中的最后一行内容,记录并说明变化。3.5设置stuff组密码。3.6在stuff组中删除用户test。3.7查看/etc/group文件中的最后一行,记录并说明变化。3.8删除会且stuff。四、实验思考题1. 说明所属群组与所属附加群组的区别。chgrp(change group)改变文件所属群组,hown (change owner)改变文件所有者属性。2. 如普通用户遗失密码后要求恢复用户权限,说明root用户可能采取的方式。1) 在root账户下,打开/etc/shadow(不是passwd文件,因为密码实际上经过加密后放在了“影子口令”文件shadow中了。passwd文件每个用户均可见,但是shadow只有root可以见)。2) 找到普通用户名cicikasa,然后删除第二个域即可,域之间用“:”隔开的,如下user:TdkakkkYUukkjkjk:14672:0:99999:7:上述红色部分就是经过加密的密码,删除即可。3) 在普通用户下,输入passwd即可输入新密码。3. 如何指定不同用户的默认工作目录。1) 修改/etc/vsftpd/vsftpd.conf 将guest_username=virtual_useruser_config_dir=/etc/vsftpd_useruser_sub_token=$USER 加进去2) 在/etc目录下手工建立vsftpd_user目录3) 在/etc/vsftpd_user目录下建立用户文件,用户文件名称=要登录的用户名。例如:FTP用户是test111那么就在/etc/vsftpd_user/下建立一个test111文件,文件内容local_root=/home/test111/$USER4) 重启服务service vsftpd restart实验五文本编辑器(选做实验)一、实验目的1. 掌握Vi编辑器的进入与退出方法。2. 了解文本编辑器的三种模式。3. 熟练掌握使用vi编辑器进行编辑、选择及操作文本文件的命令。二、实验内容1. 进入和退出vi。2. 利用文件拷贝方式建立一个文件。3. 在该文件上移动光标位置。4. 对该文件内容执行删除、修改、替换等操作。三、实验步骤1. 在当前用户默认工作目录下新建一个名为“test02”的目录。2. 将文件“/etc/rsyslog.conf 复 制 到“test” 目录下。3.使用vi打开est 目 录 下 的 rsyslog.conf4. 指出设定umask (类似于“umask0022”)的所在行号。5. 将光标移到该行,并复制该行内容。6. 将该行内容内容粘贴至最后一行。7. 撤销第6步的动作。8. 光标移到“$ FileOwner syslog”,删除该行。9. 存盘但不退出。10. 将光标移到首行,插入模式下输入“Hello,this is vi world!”。11. 向下查找字符串“syslog”。12. 再向上査找字符串“TCP”。13. 强制退出vi,不存盘。四、实验思考题1. 举例说明实验中使用的命令处于何种模式下?2. 说明在vi中如何实现字符串的查找,并实现查找结果的自动换行。3. 说明在vi中如何实现行号的显示与关闭。实验六 库文件的建立与引用(必做实验)按照课本第一章,第7-11页,建立并引用库文件,写出实验过程及结果。库函数介绍:1. Linux系统调用,文件的描述符使用的是一个整数,库函数访问文件使用FILE类型的指针去指向描述文件;2. 库函数不随系统平台而变,即不管win还是Linux都适用;库函数 - 读文件size_t fread(void *ptr, size_t size, size_t n, FILE *stream)功能:从stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放入ptr所指向的字符数组中,返回实际已读取的字节数。(读出来的数据量为size*n)库函数 - 写文件size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream)功能:从缓冲区ptr所指向的数组中把n个字段写到stream指向的文件中,每个字段长为size个字节,返回实际写入的字段数。库函数 - 创建和打开FILE *fopen(const char *filename, const char *mode)filename:打开的文件名(包含路径,缺省为当前路径)mode:打开模式实例代码#include #include #include #define BUFFER_SIZE 1024/*程序入口*/int main(int argc,char *argv) FILE *from_fd; FILE *to_fd;7 /*判断入参*/ if(argc!=3) printf(Usage:%s fromfile tofilen,argv0); long file_len=0; char bufferBUFFER_SIZE; char *ptr; /* 打开源文件 */ if(from_fd=fopen(argv1,rb)=NULL) printf(Open %s Errorn,argv1); exit(1); /* 创建目的文件 */ if(to_fd=fopen(argv2,wb)=NULL) printf(Open %s Errorn,argv2); exit(1); /*测得文件大小*/ fseek(from_fd,0L,SEEK_END); file_len=ftell(from_fd); fseek(from_fd,0L,SEEK_SET); printf(form file size is=%dn,file_len); /*进行文件拷贝*/ while(!feof(from_fd) fread(buffer,BUFFER_SIZE,1,from_fd); if(BUFFER_SIZE=file_len) fwrite(buffer,file_len,1,to_fd); else fwrite(buffer,BUFFER_SIZE,1,to_fd); file_len=file_len-BUFFER_SIZE; bzero(buffer,BUFFER_SIZE); fclose(from_fd); fclose(to_fd); exit(0); 结果及说明:rootwl-MS-7673:/home/wl/桌面/c+# g+ file_lib_copy.cpp -o file_lib_copyfile_lib_copy.cpp: 在函数int main(int, char*)中:file_lib_copy.cpp:43:41: 警告: 格式 %d expects argument of type int, but argument 2 has type long int -Wformatrootwl-MS-7673:/home/wl/桌面/c+# ./file_lib_copy file_lib_copy.cpp test2.cform file size is=1030rootwl-MS-7673:/home/wl/桌面/c+#
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!