Linux 实验报告Word格式.docx
《Linux 实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《Linux 实验报告Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
2.5设置共享目录(建议英文目录名)
1.在Linux虚拟机中安装Linux操作系统(fedora10)。
3。
1选择安装界面
2检测安装截介质(建议跳过)
3安装过程中的语言、键盘选择
3.4磁盘分区(采用自动分区,总大小与2.2相匹配)
3.5引导程序选择(采用GRUB)
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命令格式。
利用man命令查看date,echo等命令的帮助说明.
4。
目录操作
1在用户默认工作目录下新建目录testdirl(命令:
4.2在用户目录下复制testdirl为testdir2(命令:
3在用户目录下删除testdir2。
(命令:
运行结果)
5。
文件操作
1进入用户默认工作目录。
2运行date>
testl,然后运行cattest1,记录观察到的信息(命令:
运行结果).
3再次运行date>
testl,然后运行cattestl,记录观察到的信息(命令:
4运行date»
testl,然后运行cattestl,记录观察到的信息并说明原因(命令:
5.5复制testl为test2.
6査看testl和test2的文件详细信息,记录并说明其异同。
5.7统计testl文件内容的行数、字数。
8显示testl的内容。
5.9建立testl的链接文件test3。
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命令帮助(命令:
实验三文件权限管理(必做实验)
一、实验目的
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权限,使所有者只能读取此文件,其他任何用户都没有权限,并査看设置结果。
7为其他用户添加写权限,并査看设置结果。
8回到上层目录,查看test03的权限。
9为其他用户添加对此目录的写权限,查看设置结果。
10査看并记录目录test03及其中文件的所属用户和组。
1.11把目录test03及其下的所有文件的所有者改成bin,所属组改成daemon,并査看设置结果。
12删除目录test03及其下的文件。
13设定umask为000($umask000),创建testdir目录,并査看其权限。
2.打包压缩命令操作
2.1将/etc目录拷贝SlJ用户默认工作目录下,重命名为etctest。
2用tar命令将etctest目录打包成etctest。
tar.gz,查看etctest.tar.gz的权限,解压缩etctest.tar。
gz
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命令的选项有很多(用mantar可以查看到),但常用的就那么几个选项,下面
来举例说明一下:
#tar-cfall.tar*。
jpg
这条命令是将所有.jpg的文件打成一个名为all。
tar的包.-c是表示产生新的包
—f指定包的文件名。
#tar-rfall。
tar*。
gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。
—r是表示增加文件的
意思。
#tar-ufall。
tarlogo。
这条命令是更新原来tar包all.tar中logo。
gif文件,-u是表示更新文件的意思。
#tar—tfall。
tar
这条命令是列出all。
tar包中所有文件,—t是列出文件的意思
#tar—xfall。
这条命令是解出all.tar包中所有文件,—x是解开的意思
以上就是tar的最基本的用法。
为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能.这就是tar可以在打包或解包的同时调用其它的压缩程序。
实验结论:
通过这个实验我了解了普通文件与目录权限的修改。
实验四用户和组的管理(必做实验)
3.熟悉命令行操作方式进行用户和用户组管理。
2.建立新用户账号权限测试。
3.为新用户建立账号和工作组,并进行相应配置。
4.以该用户身份登录,修改密码。
5.删除该用户。
1.创建用户(以zhangsan为例)
1创建一个新用户zhangsan。
2査看/etc/passwd文件的最后一行内容,并记录。
1.3査看/etc/shadow文件的最后一行内容,并记录。
1.4给用户zhangsan设置密码.
5查看/etc/shadow文件的最后一行内容,记录并说明变化。
6使用zhangsan用户登录系统,测试能否登录成功。
2.创建用户(以user为例)
2.1使用1的步骤创建新用户user.
2更改zhangsan所属群组为root。
2.3査看/etc/passwd文件,记录zhangsan用户和user用户的属组情况。
2.4更改用户zhangsan的帐户名为user.
2.5査看/etc/passwd文件的最后一行内容,记录并说明变化。
6删除用户user.
3.组的管理(以stuff为例)
3.1创建一个新组,组名为stuff。
3.2査看/etc/group文件的最后一行内容,并记录.
3创建一个新帐户test,并将其起始组和附属组都设为stuff。
4査看/etc/group文件中的最后一行内容,记录并说明变化.
3.5设置stuff组密码。
3.6在stuff组中删除用户test。
7查看/etc/group文件中的最后一行,记录并说明变化。
3.8删除会且stuff。
1.说明所属群组与所属附加群组的区别。
chgrp(changegroup)改变文件所属群组,
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_user
user_config_dir=/etc/vsftpd_user
user_sub_token=$USER加进去
2)在/etc目录下手工建立vsftpd_user目录
3)在/etc/vsftpd_user目录下建立用户文件,用户文件名称=要登录的用户名。
例如:
FTP用户是test111那么就在/etc/vsftpd_user/下建立一个test111文件,文件内容local_root=/home/test111/$USER
4)重启服务servicevsftpdrestart
实验五文本编辑器(选做实验)
1.掌握Vi编辑器的进入与退出方法。
2.了解文本编辑器的三种模式。
3.熟练掌握使用vi编辑器进行编辑、选择及操作文本文件的命令。
1.进入和退出vi.
2.利用文件拷贝方式建立一个文件。
3.在该文件上移动光标位置.
4.对该文件内容执行删除、修改、替换等操作.
1.在当前用户默认工作目录下新建一个名为“test02”的目录.
2.将文件“/etc/rsyslog。
conf'
复制到“test”目录下。
使用vi打开est’’目录下的rsyslog。
conf〇
指出设定umask(类似于“umask0022"
)的所在行号。
5.将光标移到该行,并复制该行内容.
6.将该行内容内容粘贴至最后一行。
7.撤销第6步的动作。
8.光标移到“$FileOwnersyslog”,删除该行。
9.存盘但不退出。
10.将光标移到首行,插入模式下输入“Hello,thisisviworld!
”。
11.向下查找字符串“syslog”。
12.再向上査找字符串“TCP”。
13.强制退出vi,不存盘.
1.举例说明实验中使用的命令处于何种模式下?
2.说明在vi中如何实现字符串的查找,并实现查找结果的自动换行.
3.说明在vi中如何实现行号的显示与关闭.
实验六库文件的建立与引用(必做实验)
按照课本第一章,第7—11页,建立并引用库文件,写出实验过程及结果。
库函数介绍:
Linux系统调用,文件的描述符使用的是一个整数,库函数访问文件使用FILE类型的指针去指向描述文件;
库函数不随系统平台而变,即不管win还是Linux都适用;
库函数-读文件
size_tfread(void*ptr,size_tsize,size_tn,FILE*stream)
功能:
从stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放入ptr所指向的字符数组中,返回实际已读取的字节数。
(读出来的数据量为size*n)
库函数—写文件
size_tfwrite(constvoid*ptr,size_tsize,size_tn,FILE*stream)
从缓冲区ptr所指向的数组中把n个字段写到stream指向的文件中,每个字段长为size个字节,返回实际写入的字段数。
库函数—创建和打开
FILE*fopen(constchar*filename,constchar*mode)
filename:
打开的文件名(包含路径,缺省为当前路径)
mode:
打开模式
实例代码
#include〈stdio。
h〉
#include<
string.h〉
#include〈stdlib。
h〉#defineBUFFER_SIZE1024/*程序入口*/
intmain(intargc,char**argv){FILE*from_fd;
FILE*to_fd;
7/*判断入参*/if(argc!
=3){
printf(”Usage:
%sfromfiletofile\n"
argv[0]);
}longfile_len=0;
charbuffer[BUFFER_SIZE];
char*ptr;
/*打开源文件*/if((from_fd=fopen(argv[1],"
rb"
))==NULL){printf(”Open%sError\n”,argv[1]);
exit
(1);
}/*创建目的文件*/if((to_fd=fopen(argv[2],”wb”))==NULL){printf("
Open%sError\n”,argv[2]);
exit
(1);
}/*测得文件大小*/fseek(from_fd,0L,SEEK_END);
file_len=ftell(from_fd);
fseek(from_fd,0L,SEEK_SET);
printf("
formfilesizeis=%d\n"
,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);
}结果及说明:
root@wl-MS—7673:
/home/wl/桌面/c++#g++file_lib_copy.cpp—ofile_lib_copyfile_lib_copy。
cpp:
在函数‘intmain(int,char**)'
中:
file_lib_copy。
43:
41:
警告:
格式‘%d'
expectsargumentoftype‘int’,butargument2hastype‘longint’[—Wformat]root@wl-MS-7673:
/home/wl/桌面/c++#。
/file_lib_copyfile_lib_copy.cpptest2.cformfilesizeis=1030root@wl—MS-7673:
/home/wl/桌面/c++#