linux教程 实验指导书
- 格式:doc
- 大小:138.00 KB
- 文档页数:20
实验1 RedHat Linux常用命令使用
【实验目的】
1、 了解linux的基本命令,熟练掌握其基本操作;
2、 掌握一些常用的Linux命令的使用方法。
【实验要求】
1、 了解RedHat Linux获得的方法以及怎样在虚拟机上进行安装;
2、 复习一些常用Linux命令的使用方法,掌握其功能和使用时的选项和参数。
【实验步骤】
一、RedHat Enterprise Linux 4的启动
启动VMWare虚拟机,即可看到Linux的启动画面,实验室的root密码统一设定为123456。
二、常用的Linux命令使用
启动到Linux界面以后,在桌面上右键打开终端,即可进入命令输入的终端界面。
请在实验过程中输入正确的命令和选项参数,完成以下功能:
1:创建自己的账户(如:test)和口令。
2:使用新创建的用户账户和口令登录Linux系统,察看登录后的界面。
3:使用pwd命令察看当前的工作目录,然后用ls命令查看当前目录下的内容,尝试使用-a,-l,-F,-A,-lF等不同选项并比较不同之处。
4:在当前目录下建立一个名为test的新目录,然后将工作目录切换到test下,尝试将/etc目录下的文件passwd拷贝到该目录下(cp源文件 目的目录)。察看当前目录下的passwd文件的属主和文件权限。
5:尝试向当前目录下的passwd文件和/etc/passwd文件分别写入一些新内容(可使用 echo "字符串" >>文件 的命令),看看操作能否成功,如果不能成功,请说明原因。用cat命令浏览文件password的内容,用more命令进行浏览翻页操作,再用less命令浏览文件的内容。比较这几个命令的不同之处
6:用ls命令查看test下文件的权限,用mv命令更改文件password的文件名为test.txt,尝试用chown和chgrp更改文件的属主为root、组为root,看看能否成功,不成功,请说明原因。尝试用chomd将文件权限为"-rw-------"。看看能否成功,不成功,请说明原因。
7:用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录。
(想一想有没有一条命令将目录及目录下的所有文件删除,写出这条命令)。 8:使用ps命令查看当前系统内的进程,并利用man命令获取ps命令的参数,写出获取当前终端进程执行情况的ps命令。
9:使用df命令查看当前系统已安装的文件系统的空间使用情况,记录结果。
10:使用man获取tar和gzip的帮助信息,尝试将test目录下的文件打包并压缩,然后到另外一目录tmp下解包,写出这几条命令。
11:尝试执行"ls –l /tmp",看看这条命令的执行会出现什么结果,解释一下这条命令。
12:执行cal和date命令,说说这两条指令的用途。
13:执行命令clear和logout,退出系统。(想一想有没有其他的方法,写出这种方法)
14:用ifconfig命令查看网卡的IP地址和MAC地址。
15:执行命令ftp ,使用用户名anonymous和空密码登录,将目录切换到/linux,下载压缩包linux-2.6.10.tar.bz2并解压到当前目录。 实验2 Linux文本编辑、Shell编程与网络服务配置
【实验目的】
1、 学习Linux常用编辑器的使用;
2、 学习Linux下Shell编程的基本方法;
3、 练习网络服务的配置和管理。
【实验要求】
1、 复习vi编辑器的使用方法,学习gedit和emacs的使用;
2、 复习网络配置和网络服务器的配置和使用的内容。
【实验步骤】
一、shell编程
1. 利用vi编辑器编写一个shell脚本程序filemenu:
until
echo List Directory..........1
echo Change Directory........2
echo Edit File...............3
echo Remove File.............4
echo Exit Menu...............5
read choice
test $choice = 5
do
case $choice in
1) ls;;
2) echo Enter target directory
read dir
cd $dir
;;
3) echo Enter file name
read file
vi $file
;; 4) echo Enter file name
read file
rm $file
;;
q|Q|5) echo Goodbye;;
*) echo illegal Option
esac
2. 调试该程序使其能正常工作,运行之。解释这个程序的功能。
二、网络服务配置与管理
1. 网络文件系统(NFS,NetworkFileSystem)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。
2.Linux NFS服务器的配置
以root身份登陆Linux服务器,编辑/etc目录下的共享目录配置文件exports,指定共享目录及权限等。
编辑文件/etc/exports,在该文件里添加如下内容:/home/test 192.168.1.*(rw, sync,
no_root_squash)然后保存退出,目录/home/test可改为自选的共享目录。
添加的内容表示:允许ip地址范围在192.168.1.*的计算机以读写的权限来访问/home/test目录。/home/test也称为服务器输出共享目录。括号内的参数意义描述如下:rw:读/写权限,只读权限的参数为ro;sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。no_root_squash:NFS服务器共享目录用户的属性,如果用户是root,那么对于这个共享目录来说就具有root的权限。
接着执行如下命令,启动端口映射: /etc/rc.d/init.d/portmap start
最后执行如下命令启动NFS服务,此时NFS会激活守护进程,然后就开始监听Client端的请求: /etc/rc.d/init.d/nfs start
我们可以进行NFS服务器的回环测试,验证共享目录是否能够被访问。在Linux服务器上运行如下命令:
mkdir /mnt/nfs
mount–tnfs 192.168.1.120:/home/test /mnt/nfs (此命令使用的本机IP地址请使用ifconfig命令查看)
ls /mnt/nfs
如果NFS正常工作,应该能够在/mnt/nfs目录看到/home/test共享目录中的内容。
拆卸NFS文件系统的命令 umount /mnt/nfs 。
3.NFS客户端的配置
在Linux服务器设置好后,还需要对客户端进行相关配置。此项任务可以相邻的两台计算机互相完成。
mount–tnfs 192.168.1.120:/home/test /mnt/nfs (此命令使用的本机IP地址请使用相邻计算机的IP地址)。
此时,目标系统端所显示的内容即为Linux服务器的输出目录的内容,即Linux服务器的输出目录/home/test通过NFS映射到了目标系统的/mnt/nfs目录。用户可以用增/删/修改文件的方式来验证实际效果。
选作:telnet服务器配置
1. 以root身份登陆Linux服务器,编辑/etc/xinetd.d/telnet (或krb5-telnet),找到 disable
= yes 将 yes 改成 no 。
2.激活服务: service xinetd restart
3.测试服务: 在windows主机的命令行下输入telnet 虚拟机ip,如果配置正确,系统提示输入远程机器的用户名和密码
Login:
PassWord:
注:默认只允许普通用户
4.telnet服务限制
telnet是明文传送口令和数据的,如果你对其默认的设置不满意,有必要对其服务范围进行限制。假设你的主机的ip是210.45.160.17,就可以按如下方式设置了。
#vi /etc/xinetd.d/telnet
service telnet
{
disable = no #激活 telnet 服务,no
bind = 210.45.160.17 #your ip
only_from = 210.45.0.0/16 #只允许 210.45.0.0 ~ 210.45.255.255 这个网段进入
only_from = #只有教育网才能进入!
no_access = 210.45.160. #这两个ip不可登陆
access_times = 8:00-12:00 20:00-23:59 # 每天只有这两个时间段开放服务
......
}
5.telnet root用户的登入
telnet不是很安全,默认的情况之下不允许root以telnet进入Linux主机。若要允许root用户登入,可在普通用户进入后,切换到root用户,拥有root的权限。 实验3 Linux开发工具的使用
【实验目的】
1、 学习gcc的编译方法与使用;
2、 学习Linux调试器GDB的使用学习Linux内核编译的方法。
3、学习编写makefile文件来进行工程项目管理
【实验要求】
1、 复习gcc的编译选项和gdb的调试命令;
2、 复习makefile文件的编写方法。
【实验步骤】
一、编译器gcc的使用
1. 编辑一个C语言程序文件hello.c:
#include
main()
{
char name[20];
printf(“Please input your name:”);
scanf(“%s”,name);
printf(“Welcome %s!\n”,name);
return 0;
}
2. 编译文件: gcc –o hello hello.c。
3. 如果有错误,修改hello.c的内容,然后再次编译,直至没有错误为止。
二、用GDB调试程序BUG
1. 使用文本编辑器输入以下代码greet.c。程序试图倒序输出main函数中定义的字符串,但结果没有显示。
#include
int display1(char *string);
int display2(char *string);