(7)输入命令“pwconv”,进行shadow加密,完成批量创建用户帐号工作。
(8)输入命令“cat/etc/passwd”,查看/etc/passwd文件将发现所有的用户帐号均已建立。
2、目录操作
【操作要求】先创建二个新目录dir1和dir2,然后将dir2目录移到dir1目录中,最后删除dir2目录。
【操作步骤】
(1)以普通用户(hellen)身份登录到Linux字符界面,当前目录为用户的主目录“/home/hellen”。
(2)输入命令“ls–l”,查看当前目录中的所有文件。
(3)创建两个目录,输入命令“mkdirdir1dir2”。
(4)再次输入命令“ls–l”,确认两个目录是否成功创建。
(5)输入命令“mvdir2dir1”,将dir2目录移动到dir1目录。
(6)输入命令“cddir1”,切换到dir1目录,再输入“ls“命令,查看到dir2目录。
(7)删除dir2目录,输入命令“rm–rfdir2”。
3、文件操作
【操作要求1】查找fstab文件,并将fstab文件中所有包含“mnt”的行存入f4文件。
【操作步骤】
(1)查找fstab文件,输入命令“find/-namefstab”,稍等片刻,屏幕显示fstab文件的完整路径为“/etc/fstab”。
(2)将/etc/fstab文件中所有包含“mnt”的行存入f4文件,输入命令“grep–n“mnt”/etc/fstab>f4”。
(3)输入命令“catf4”,查看f4文件的内容。
【操作要求2】将f4文件复制到在dir1目录,并在dir1目录中创建/etc/fstabt文件的符号链接文件fstabt-link。
【操作步骤】
(1)由于当前目录为/home/hellen/dir1,输入命令“cpf4.”,将f4文件复制到dir1目录。
(2)创建/etc/fstab文件的符号链接文件,输入命令“ln–s/etc/fstabfstab-link”。
输入命令“ls-l”,可发现淡蓝色的符号链接文件fstab-link,并使用“->”表示其所指向的源文件。
4、设置文件权限
(1)在用户主目录下创建目录test,进入test目录使用touch命令创建空文件file1。
(2)以ls–l命令长格形式显示文件详细信息,注意文件的权限和所属用户和组。
(3)对文件file1设置权限,使其他用户可以对此文件进行写操作:
#chmod o+w file1。
用ls–l命令查看设置结果。
(4)取消同组用户对此文件的读取权限:
#chmod g-r file1。
查看设置结果。
(5)用数字形式来为文件file1设置权限,所有者可读、可写、可执行;其他用户和所属组用户只有读和执行的权限:
#chmod 755 file1。
设置完成后查看设置结果。
(6)用数字形式更改文件file1的权限,使所有者只能读取此文件,其他任何用户都没有权限:
#chmod 400 file1。
查看设置结果。
(7)为其他用户添加写权限:
#chmodo+wfile1。
查看设置结果。
(8)回到上层目录,查看test的权限。
(9)为其他用户添加对此目录的写权限。
#chmodo+wtest。
查看设置结果。
(11)查看目录test及其中文件的所属用户和组。
(12)把目录test及其下的所有文件的所有者改成bin,所属组改成daemon:
#chown -R bin:
daemon test/。
查看设置结果。
(13)删除目录test及其下的文件。
(14)设定umask,#umask000;重新创建test1目录,并查看其权限。
实验二、vi的基本操作
一实验要求
(1)熟悉并掌握vi命令模式、文本编辑模式和最后行模式三种工作模式之间的转换方法。
(2)掌握利用vi新建和保存文件;熟悉光标的移动,文本的插入与删除等操作。
(3)掌握字符串替换;行的复制、移动、撤消和删除等操作。
二实验内容
1、新建文本文件
【操作要求】利用vi新建文件f2,内容为:
HowtoReadFaster
WhenIwasaschoolboyImusthavereadeverycomicbookeverpublished.ButasIgotolder,myeyeballsmusthavesloweddownorsomethingImean,comicbooksstartedtopileupfasterthenIcouldreadthem!
Itwasn’tuntilmuchlater,whenIwasstudyingatcollege,Irealizedthatitwasn’tmyeyeballsthathadgonewrong.They’restillmovingaswellasever.Theproblemisthatthere’stoomuchtoreadthesedays,andtoolittletimetoreadeveryWORDofit.
【操作步骤】
(1)启动计算机后,以普通用户(hellen)身份登录字符界面。
(2)在Shell命令提示符后输入命令“vi”,启动vi文本编辑器,进入命令模式。
(3)按“i”键,从命令模式转换为文本编辑模式,此时屏幕的最底边出现“----INSERT----”字样。
(4)输入上述文本内容。
如果输入出错,可使用退格键或Delete键删除错误的字符。
(5)按ESC键返回命令模式。
(6)按“:
”键进入最后行模式,输入“wf2”,就可以将正在编辑的内容保存为f2文件。
屏幕底部显示“"f2"[New]3L,482Cwritten”字样,表示此文件有3行,482个字符。
注意:
vi中行的概念与平时所说的行有所区别,在输入文字的过程中由于字符串长度超过屏幕宽度而发生的自动换行,vi并不认为是一行,只有在vi中按一次Enter键,另起一行的才是新的一行。
(7)按“:
”键后输入“q”,退出vi。
2、编辑文件
【操作要求1】打开f2文件并显示行号。
【操作步骤】
(1)输入命令“vif2”,启动vi文本编辑器并打开f2文件。
(2)按“:
”键切换到最后行模式,输入命令“setnu”,每一行前出现行号。
(3)vi自动返回到命令模式,连续两次输入“Z”,就退出vi。
【操作要求2】在f2文件的第一行后插入如下一行内容:
“Withthedevelopmentofsociety,theabilityofreadingbecomesmoreandmoreimportant.”,并在最后一行之后添加一行,内容为:
“Wemustknowsomemethodstoreadfaster.”
【操作步骤】
(1)再次输入命令“vif2”,启动vi文本编辑器并打开f2文件。
(2)按“a”键,进入文本编辑模式,屏幕底部出现“—INSERT--”字样。
(3)利用方向键移动光标到第一行行尾后,按Enter键,另起一行。
输入“Withthedevelopmentofsociety,theabilityofreadingbecomesmoreandmoreimportant.”。
(4)将光标移动到最后一行的行尾,按Enter键,另起一行。
输入“Wemustknowsomemethodstoreadfaster.”。
【操作要求3】将文本中所有的“eyeballs”用“eye-balls”替换。
【操作步骤】
按ESC键后输入“:
”,进入最后行模式。
因为当前f2文件中共有5行,所以输入命令“1,5s/eyeballs/eye-balls/g”,并按Enter键,将文件中所有的eyeballs”替换为“eye-balls”。
【操作要求4】把第二行移动到文件的最后,删除第一和第二行并恢复删除,并不保存修改。
【操作步骤】
(1)按“:
”键,再次进入最后行模式,输入命令“2,2m5”,将第二行移动到第五行的后面。
(2)按“:
”键,输入“1,2d”,删除第一和第二行。
(3)按“u”键,恢复被删除的部分。
(4)按“:
”键,进入最后行模式,输入“q!
”,退出vi,不保存对文件的修改。
【操作要求5】复制第二行,并添加到文件的最后,删除第二行,保存修改后退出vi。
【操作步骤】
(1)再次输入命令“vif2”,启动vi文本编辑器并打开f2文件。
(2)按“:
”键,进入最后行模式,输入“2,2co5”,将第二行的内容复制到第五行的后面。
(3)移动光标到第二行,键入“dd”命令,原来的第二行消失。
(4)按“:
”键,输入“wq”,存盘并退出vi。
实验三、Linux下C语言编程和调试
1.目的
(1)通过实验使学生了解linux提供的gcc编译器;
(2)掌握linuxGCC命令,熟悉在命令行下编译C的方法;
(3)熟悉linux提供的文本编辑器vi的使用。
2.预备知识
(1)linuxC编译器gcc的使用;
(2)linuxC程序文件的编辑、编译和执行。
3.操作要求:
编写程序实现求三个数中最大值,并得到运行结果。
(1)gcc基本语法
gcc[option][filename]
选项
功能
-c
对源文件进行预处理、编译和汇编,产生目标文件,但不进行连接。
-o<文件名>
定义输出的执行文件名为<文件名>
-S
在编译后停止,产生类型名为s的汇编代码文件
-E
在预处理后停止,输出预处理后的源代码至标准输出,不进行编译
-O
对程序进行编译优化,编译速度比不做优化慢且要求内存多。
-O2
比-O优化效果更好,但编译速度较慢
-g
产生一张用于调试和排错的扩展符号表,以便用gdb进行调试
(2)make项目管理器
make项目管理器(GNU中的名称为gmake)可以根据项目开发者说明的项目开发文件Makefile自动的进行编译配置和重复编译,能实现复杂项目的编译自动化。
项目开发文件Makefile的编写使用以下规则:
目标体1:
依赖体1[依赖体2[...]]
命令行1
命令行2
[...]
目标体2:
依赖体1[依赖体2[...]]
命令行1
命令行2
[...]
[...]
其中目标体是命令行要生成的输出文件,依赖体是命令行要输入的文件或选项,命令行序列是要创建目标体文件所需要的步骤,例如编译命令。
无特别指定,make总是使用当前目录中的Makefile进行自动编译。
例如我们在当前目录中有两个项目开发文件hello.c和hello.h,则Makefile文件可以
编写为:
hello:
hello.o
gcchello.o-ohello
hello.o:
hello.chello.h
gcc-shello.c
gcc-chello.c
clean:
rmhello*.o*.s
结果如下:
make命令的使用:
make命令会根据Makefile的内容对项目进行管理。
,make命令能自动确定哪一个模块已被修改,然后再进行统一、无遗漏的编译。
make命令的用法是:
make[-ffilename][options][targets]
make命令的部分参数
参数
意义
-Cdir
在读Makefile或做任何操作前切换目录,一般用于对目录的递归搜索
-d
显示调试信息
-ffile
指定file文件作为Makefile,而不使用默认的makefile或Makefile
-Idir
指定Makefile搜索目录
-k
默认情况下,make在遇到错误时终止执行,-k可在出现错误时工作的尽量长一些,以便观察分析
-n
让make在不真正编译的情况下列出将执行的步骤
(3)gdb调试源程序
当编译后得到的目标程序出现错误时,需要对源程序进行调试以找出错误,排除故障。
Linux提供了调试源程序的工具gdb,gdb不仅允许用户在运行程序时显示源代码,而且在调试程序中允许设置断点暂停程序运行,显示变量的内容。
实验四、简单shell编程
【实验内容】用shell语言编制一个批处理程序,其功能如下:
(进入vi编辑模式,直接输入以下代码,保存、修改权限、执行即可)
A.屏幕提示用户键盘输入年、月;
B.接收用户的输入值;
C.输出该年该月的日历。
程序代码
#!
/bin/sh
echo"year:
"
readye
echo"month:
"
readmo
cal$mo$ye
注意:
若脚本文件名为test.sh,首先用chmoda+xtest.sh改变权限后,方可用./test.sh运行
实验五、FTP服务配置
【实验目的】
掌握vsftpdFTP服务的配置。
【实验内容】
1.使用setup菜单完成TCP/IP网络配置;
(1)在命令行运行setup,选择“NetworkConfiguration”
(2)选择“eth0(eth0)……”
(3)取消“UseDHCP”
(4)配置IP地址和子网掩码为192.168.202.5/255.255.255.0,网关为192.168.202.1
(5)一层层退出
(6)运行ifdowneth0禁用以太网卡
(7)运行ifupeth0启用以太网卡并重新读取配置。
(8)使用ifconfig检查eth0网卡的IP地址配置。
2.vsftpd服务器的基本配置
(1)rpm-qvsftpd察看vsftpd软件包是否安装
Vsftpd-1.1.3-8表示位于系统的第三张光盘上。
(2)servicevsftpdstart启动vsftpd服务器
(3)chkconfigvsftpdon将vsftpd服务设置为自动启动
(5)从XP客户端访问ftp:
//192.168.202.5
访问之前需要关闭防火墙,命令:
/etc/init.d/iptablesstop
或通过图形提醒界面:
(6)察看vsftpd服务器的配置文件的缺省配置:
vi/etc/vsftpd/vsftpd.conf
1)anonymous_enable=YES允许匿名用户登录
2)local_enable=YES允许本地用户登录
3)write_enable=YES允许写入(上传文件、创建目录)(包含所有用户)
4)#anon_upload_enable=YES允许匿名用户上传文件,但已被注释掉
5)#anon_mkdir_enable=YES允许匿名用户创建目录,但已被注释掉
3.配置允许匿名用户上传的FTP服务器
(1)vi/etc/vsftpd/vsftpd.conf
(3)去掉上面(4)(5)两行的注释
(3)servicevsftpdrestart
(4)从XP客户端重新访问“ftp:
//192.168.202.5”,上传一个文件,是否成功?
答:
不能,因为匿名用户是以ftp帐号访问FTP服务器的,主目录为/var/ftp。
(可察看/etc/passwd,找ftp那一行)而“/var/ftp”目录所属用户为root,目录权限为drwxr-xr-x,即ftp作为“其他用户”,没有写入权限,所以不能在“/var/ftp”目录中创建新文件和新建目录。
两种办法解决这个问题:
4.办法1:
创建一个属于ftp用户的目录
(1)cd/var/ftp
(2)mkdirup1创建一个目录
(3)chownftp:
ftpup1修改目录的所属用户
(4)ll查看目录权限
5.办法2:
创建一个属于root用户的目录,但修改目录权限为允许其他用户修改目录内容
(1)cd/var/ftp
(2)m