Linux实验指导书详细资料_第1页
Linux实验指导书详细资料_第2页
Linux实验指导书详细资料_第3页
Linux实验指导书详细资料_第4页
Linux实验指导书详细资料_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Linux实验指导书目录 TOC o 1-3 h z u HYPERLINK l _Toc497292838 1. Linux常用命令 PAGEREF _Toc497292838 h 2 HYPERLINK l _Toc497292839 2. Linux用户与用户组 PAGEREF _Toc497292839 h 2 HYPERLINK l _Toc497292840 3. Linux文件目录权限管理 PAGEREF _Toc497292840 h 3 HYPERLINK l _Toc497292841 4. Linux磁盘管理 PAGEREF _Toc497292841 h 5 HYPER

2、LINK l _Toc497292842 5. Linux进程管理 PAGEREF _Toc497292842 h 13 HYPERLINK l _Toc497292843 6. vim编辑器使用(I) PAGEREF _Toc497292843 h 20 HYPERLINK l _Toc497292844 7. vim编辑器使用(II) PAGEREF _Toc497292844 h 20 HYPERLINK l _Toc497292845 8. gcc编译与gdb调试 PAGEREF _Toc497292845 h 20 HYPERLINK l _Toc497292846 9. shell

3、变量 PAGEREF _Toc497292846 h 20 HYPERLINK l _Toc497292847 10. shell数据重定向与管道 PAGEREF _Toc497292847 h 20 HYPERLINK l _Toc497292848 11. shell脚本流程控制 PAGEREF _Toc497292848 h 20 HYPERLINK l _Toc497292849 12 shell函数调用 PAGEREF _Toc497292849 h 20Linux常用命令一、实验目的熟悉Linux的基本操作与命令查找和帮助二、实验内容三、实验要求四、实验设备五、实验过程Linux用

4、户与用户组一、实验目的了解计算机用户和工作组的基本概念掌握计算机用户的相关管理方法二、实验内容练习Linux的账号管理命令。三、实验要求四、实验设备五、实验过程1 新建用户gasby1 2 修改gasby1的密码为gasby111 Passwd: gasby111ReType:gasby1113 切换到第二个虚拟终端,并以gasby1登录 ctrl+alt+f24 切换到root权限 su -5 新建组gasby groupadd gasby6 删除组gasby groupdel gasby7 新建用户gasby2,并修改密码为gasby222 useradd gasby2 passwd ga

5、sby2228 修改gasby2的主目录为/root usermod d /root gasby29 请问gasby2这个用户能登录么?为什么?10 修改gasby2用户的主目录为/home/gasby2 usermod d /home/gasby2 gasby211 切换到第三个虚拟终端,并以gasby2登录 12 查询目前登陆到系统的用户 who 13 发送广播hello(发送后切换到第二个终端看看收到消息了么?然后切换回来)wall “hello”14 对gasby1发送消息(发送后切换到第二个终端看看收到消息了么?然后切换回来)write gasby1 hello15 结束会话。Ctr

6、l+d16 给root写一封信,并查看账户切换(一般情况下):Ctrl + Alt + Fx其中Ctrl + Alt + F7为图形界面: Linux文件目录权限管理实验目的掌握文件与目录管理命令实验内容改变文件/目录访问权限 chmod改变文件/目录的属主与属组 chown文件/目录打包 tar实验要求实验设备实验过程(1)1. 查看当前用户在创建文件/目录时的默认权限#umask S2在/home/student目录下创建目录myfile#cd /home/student#mkdir myfile3. 查看myfile的默认属性是否与1中输出的权限相符合#ll | grep myfile4

7、. 在当前目录下,建立权限为741的目录test1,查看是否创建成功。#mkdir m 741 test1用户对test1与myfile目录的权限有何差异?(2)5. 改变对myfile的权限为666#chmod 666 myfile或#chmod u=rw,g=rw,o=rw myfile试着将myfile的权限恢复默认设置。6. 改变myfile的属主为gasby1登录到root账户 (此处请思考下如何同时登录多个账户,上节课write gasby1为什么总是会有问题?)#cd /home/student#ll#chown gasby1 myfile#ll对比myfile的属主是否发生了变

8、化?切换至图形界面后再采用chmod修改myfile的权限,看是否能成功。(3)采用tar对文件夹打包/解压,并从图像界面上去查看创建的归档包和解压包#cd#tar cf mytar test1解压mytar文件至指定目录myunpack#mkdir myunpack#tar xf mytar C myunpack4. Linux磁盘管理实验目的了解文件系统的概念。掌握文件系统的简单操作。了解磁盘分区情况。掌握存储设备的挂载方法。实验内容(一)1. 使用 fdisk 命令进行磁盘分区,然后使用 fdisk l 查看分区情况;2. 使用 mkfs 命令创建文件系统;3. 使用 mount 和 u

9、mount 命令实施挂载和卸载文件系统的操作;4. 修改配置文件/etc/fstab,在系统启动时自动挂装文件系统;(二)查看磁盘文件大小 df; du创建连接文件 ln实验要求实验设备实验过程(一)1. 在 VMware 中添加一块虚拟硬盘1.2. 此时在弹出的对话框中选项添加按钮;点击图中添加1.3. 点击“是”1.4. 此时会弹出向导来帮助我们添加相应的设备,选择硬盘,单击下一步。1.5. 将大小设置为5.0 G1.6. 单击完成,虚拟硬盘即添加成功。2. 使用 fdisk 命令创建分区2.1进入 Linux 系统的命令行模式,以root用户登录,使用 fdisk l 命令来查看系统中的

10、硬盘新添加的磁盘已有的磁盘2.2 使用命令的方式来查看硬盘分区,下图是 fdisk 中的常用命令, #fdisk /dev/sdc2.3 m 表示显示菜单,p 查看分区情况2.4 创建主分区2.5 创建扩展分区2.6 创建逻辑分区2.7关于分区类型,可以键入 l 键来查看:注意:如果想更改相应的文件类型可以使用“ t”键来更改2.8使用“ w”键来进行保存:2.9 查看分区情况#fdisk l3. 格式化分区使用 mkfs 命令来格式化硬盘, mkfs -t ext3 /dev/sdc14. 使用 mount 命令来挂载刚刚创建的分区4.1 创建挂载目录: mkdir /mnt/userfil

11、e4.2 使用 mount 命令来挂载刚刚创建的分区;5 自动挂载(选做)修改相应的配置文件使用自动挂载的方法:修改/etc/fstab 文件,在最后添加一行,然后此后重启计算机后目录将自动挂载。(二)文件系统操作1 将系统内所有的分区(文件系统)列出来。 df2 将系统内的所有特殊文件格式及名称都列出来。 df -aT3 将/home下面的可用的磁盘容量以易读的容量格式显示。df -h /home 4 将当前各个分区中可用的inode数量列出。df -ih5 列出目前目录下的所有文件容量(大小)。(实际显示时仅显示目录容量) du6 将题5中每个文件的大小也显示出来。du ah7将/etc/

12、passwd复制到/home/student中,查看新复制文件的链接数目和inode,查看当前目录容量与当前目录所在分区的inode。cd /home/studentcp -a /etc/passwd ./du -sdf i passwddu -sb df i8 将/home/student/passwd创建硬链接成为passwd-hd文件,并查看容量和inode。ln passwd passwd-hddu sbhdf i passwd-hd查看具体某个文件的inode可以用stat命令,如:stat passwd9 将/home/student/passwd创建符号链接passwd-so,并

13、查看passwd-so文件的inode,显示passwd-so中的内容。ln -s passwd passwd-sols -li passswd* 删除passwd,看是否还能查看passwd-so和passwd-hd中的文件信息。5. Linux进程管理实验目的了解任务调度。了解进程管理。实验内容(一)任务调度1. 使用 at, atd安排单次执行的任务;2. 使用 crontab, crond安排循环执行的任务;(二)进程管理1. 查看进程状态ps, top2. 杀死进程 kill实验要求实验设备实验过程(一)任务调度1. 单一任务调度1.1 安排单一工作任务时,系统必须要有负责这个调度的

14、服务:atd。一般情况下,这个服务是默认打开的,为确保万一,可以重新启动该服务。1.2 采用at来生成任务,系统默认将这个任务以文本文件方式写入/var/spool/at/目录内,该工作便能等待atd这个服务的取用与执行。但并不是所有人都有执行at的权限,可以利用/etc/at.allow和/或 /etc/at.deny两个文件来进行at权限管理。上图说明任何人都具有at的操作权限。1.3 采用at设置2分钟后在tty3终端显示“Hello World!”(切换tty终端采用:Ctrl+Alt+Fx)上图中按 Ctrl+d出现结束标志马上切换至tty3终端看看是否有显示“Hello World

15、!”;等待两分钟之后看看会不会有显示。1.4 查看目前主机上有多少个待做的工作任务:atq,删除工作任务: atrm。先随便设计两个任务,然后atq查看待做的任务个数可以看到目前有两个待做的任务,任务号为13与12.删除任务号为12的任务,再查看当前主机上还有几个待做的任务可以看到只剩下13号任务了,说明atrm可以删除之前预设的任务。1.5 拓展:请同学们自己回去熟悉batch的使用,看看batch与at有哪些不一样。感兴趣的同学可以参考鸟哥的Linux私房菜基础学习篇(第三版),这是一本很全面很好的Linux书籍。2. 循环任务调度2.1 采用crontab来生成任务,系统默认将这个任务以

16、文本文件方式写入/var/spool/cron/目录内(而且是以账号来作为判别的),该工作便能等待cron这个服务的取用与执行。但并不是所有人都有执行crontab的权限,可以利用/etc/cron.allow和/或 /etc/cron.deny两个文件来进行crontab权限管理。上图说明/etc/cron.allow不存在,系统通过/etc/cron.deny来管理权限,且上图说明所有人都具有crontab的操作权限。cron执行的每一项工作都会记录在/var/log/cron中。2.2 采用crontab创建一个循环任务:在tty3终端每隔2分钟输出“testing crontab jo

17、bs”#crontab e进入vim编辑界面,在这里设置任务。按字母i进入vim编辑模式,然后如下图输入:输入完成后,按Esc键,然后输入 :wq(记得要先输入冒号) ,再按回车键退出。查看任务是否设置成功:crontab -l 切换至tty3终端,看看是否每隔2分钟会输出对应的内容。参考资料:2.3 继续执行2.2,添加另一个任务,如图:同样保存退出。采用crontab l看看是不是多了一个任务?然后切换到tty3下,看是否每隔1分钟输出“my 2nd crontab job”。2.4 删除单个循环任务,如何实现?如果采用crontab r会把所有的循环任务都删除掉;如果只想删除单个任务,则

18、必须采用crontab e重新编辑,如要删除2.3中设置的第二个任务:如图删掉第二行后保存即可。采用crontab l看看是不是此时只有一个任务了?切换到tty3下查看是不是只有一个任务在执行了。2.5 执行crontab r看看是不是所有任务都删掉了。切换到tty3下查看,是不是所有任务都没有执行了。(二)进程管理通过startx进入图形用户界面1 查看当前所有进程:ps aux 2 查看当前进程树,找出ps进程的父进程是哪个进程:pstree3 查看进程树,并且在进程树中显示进程ID(PID):pstree p4 通过top查看进程:top思考通过top和ps查看进行有什么差异?5. 你会

19、发现top霸屏了,它占据了这个终端,致使这个终端没法继续输入了。6. 此时,按Ctrl+z将其置于后台。(Ctrl+z是把进程置于后台的命令)这表明top这个进程放置到后台了,在后台处于暂停状态7 再输入top, 然后再Ctrl+z,看看有什么变化。说明这是第2个放入后台的进程,进程名是top8 查看有多少个后台进程可以看到有两个进程在后台处于暂停状态。9 取出后台进程,置于前台采用fg命令,请同学们自己查看fg命令的使用:fg -h如这里要把第一个放到后台的进程拿到前台,则执行: fg %1看看你能看到什么? 停止当前进程:Ctrl+c然后再执行jobs l看看,看还有几个后台进程。将其掉到

20、前台关闭。而后再执行jobs,看是否还有后台进程。6. vim编辑器使用(I)实验目的理解VIM在一般模式、编辑模式和命令模式三者之间的关系。熟悉VIM基本命令的使用实验内容VIM基本操作实验要求实验设备VMware虚拟机、Linux操作系统、计算机实验过程(一)理解三种模式之间的关系。1. 从这里你可以知道,编辑模式与命令模式两者之间是没法直接切换的,他们之间必须通过一般模式这座桥梁来进行切换。而进入到一般模式的操作特别简单,按Esc键即可。2. 使用vim 新建一个test.txt文档#vim test.txt3. 打开一个已经存在的文件,看看显示有何不同譬如打开/etc/man.conf

21、ig文件#vim /etc/man.config当前光标处于第一行第一列文件名,文件属性,共141行,共4617个字符第二个红色框框里面的top代表什么意思?自己去操作看它的变化,明白它的意思。(二)命令详解(二)案例练习修改为/home/student/tmp,显然一开始在你的主目录下是没有tmp目录的,那你该怎么办呢?第1、2行命令应相应修改为:mkdir p /tmp/vitest 思考下为什么?cd /tmp/vitest7. vim编辑器使用(II)实验目的熟悉VIM文件恢复熟悉VIM 多文件多窗口编辑熟悉VIM环境设置实验内容(一)vim保存文件、恢复与打开时的警告(二)vim多文

22、件多窗口编辑(三)vim环境设置实验要求实验设备VMware虚拟机、Linux操作系统、计算机实验过程(一)vim保存文件、恢复与打开时的警告恢复:在编辑的文档未保存之前发生突发情况(如死机、断电)等情况,如何将数据救回来。1. vim会在被编辑的文件目录下自动新建一个名为.filename.swp的文件,例如当编辑/tmp/vitest/man.config时,vim会自动创建/tmp/vitest/man.config.swp的暂存文件,你对man.config的操作就会记录到这个文件里面。当发生突发情况时,这个文件就能够起到恢复的作用。(注意:如果你的工作目录下没有 tmp/vitest

23、/目录,你首先要在你的主目录下创建这个目录,然后再将/etc/man.config文件复制到你刚创建的这个目录来进行下面的实验。 请参考实验6中的步骤完成。)此时会进入到vim界面,在vim一般模式下将这个任务放到后台。(还记的如何将任务放到后台吗?)此时会出现以下界面2. 模拟vim不正常中断,操作如图可以看到,由于有vim任务在后台,所以对应地生成了相应的.swp文件,当采用kill杀掉该进程(即不正常中断),可以看到.swp文件依旧存在,说明:不正常中断时,对应的.swp文件会存在。此时,再采用vim打开man.config会出现下界面请同学们认真阅读自己屏幕上显示出来的内容!在这里可以

24、看到.man.config.swp文件已存在了,可以采用它来恢复源文件。请同学们自己恢复源文件。正常恢复应该可以一步一步地出现下图所示界面,最后按q键退出。不过在你恢复源文件之后,.swp文件并不会自动删除,所以你离开vim后还得自行删除对应的.swp文件,才能正常打开恢复的man.config文件。看看自己打开man.config文件是否显示正常!(二)将一篇文档中的部分内容复制到另一个文档中去1. 将/tmp/vitest/目录下的man.config文件前4行复制到新文件newman中#cd /tmp/vitest#vim man.config newman此时vim会打开man.con

25、fig文件,在一般模式下,执行:files操作此时你看到有两个文件列出来了,且有自己的编号2. 此时输入4yy(复制4行),再输入:n,你会进入到第二个文件(即newman)中3. 输入p粘贴复制的文本,继续输入p多粘贴几份。4. 输入u来还原原本的文本数据,自己在p和u之间多操作几次,看看变化情况。5. 进入到一般模式,输入 :wq保存退出6. 使用vim查看newman中的内容,看是否是你刚刚复制的内容。如果一个文件很大,需要同时查看前面和后面的内容,该怎么办呢?在一般窗口界面下的编辑软件都有“切割窗口或者冻结窗口”的功能来将一个文件切割成多个窗口展示,那么采用vim如何实现?切割窗口命令

26、“:sp filename”7. 执行下面命令,看可以看到什么#vim man.config进入到vim后用1G去到第一行,然后输入 :sp再次打开这个文件一次,然后再输入G,结果如下此时,如果你接着输入 :sp newman应该能够出现下图。可以看到已经打开了三个文件了。在同一个终端显示了多个窗口,可以使用命令在多个窗口间进行切换:(三)vim环境设置设置自己偏好的vim环境,即以后打开vim进行编辑时,其排版都是按照之前设置的偏好进行的。可以在vim环境一般模式下输入:set all来查看vim默认设置(实在太多了)。另外,可以通过修改 /.vimrc文件来设置自己的偏好。可如下图进行设置

27、(注意:双引号后面的内容为注释信息,不要输入)。此时,再随便打开或新建一个文档,看看vim环境是否有变化(是否这个时候自动显示出行号了?)8. gcc编译与gdb调试实验目的理解GCC编译器工作原理熟悉GCC基本用法和常用选项熟悉GDB调试实验内容编写hello.c程序,依次生成相应的汇编文件、目标文件、可执行文件。实验要求实验设备实验过程(一)GCC编译过程由上图可知,GCC编译包括四个步骤:预处理、编译、汇编和连接库文件,然后才能生成可执行文件。Tips: 库文件包括静态库文件和动态库文件,在windows中静态库和动态库文件对应为.lib和.dll,在Linux中对应的静态库和动态库文件

28、分别为.a和.so。1. 自己查看gcc的帮助文档,理解 -g, -E, -S, -c, -o选项的意思(自己看帮助文档,一定要理解)。2. 采用vim编辑一个简单的C程序并保存为hello.c文件。3. 采用gcc编译器,生成汇编文件hello.s#gcc S hello.c4. 采用gcc编译器,生成目标文件hello.o#gcc c hello.c5. 采用gcc编译器,生成可执行文件hello#gcc o hello hello.c6. 执行生成的hello文件,看程序是否执行成功。#./hello(二)gdb调试采用gdb调试首先需要打开gcc编译器的调试选项-g如:#gcc o h

29、ello g hello.c执行教材p133页8.3.3 gdb的实例。按照他的操作来熟悉gdb调试。9. shell变量实验目的实验内容系统变量的设置用户变量的设置与显示变量键盘读取、数组与声明实验要求实验设备实验过程(一)系统变量的设置1. 采用vim编写sysvar.sh文件并执行(需要在root账户下执行),看看输出结果并理解各变量的意思。以下为sysvar.sh文件#! /bin/sh# this is a demoecho “the name of this program is $0”echo “youve input $# params. They are $*”echo “a

30、nd the first one of them is $1”echo “the PID of this program is $”echo “”echo “youve executed correctly, and the return code is $?”试着改变系统变量,深入理解系统变量的使用规则。(一)变量的设置与显示1. 采用echo命令显示变量#echo $variable#echo $PATH这两条命令,你看到了什么不一样的?2. 显示变量HOME, MAIL的内容3. 注意变量赋值时候等号左右两边没有空格#myname=VBird#echo $myname试试如果左右两边有空

31、格会出现什么情况。4. 掌握转义字符,双引号,单引号、反引号的使用方式。# echo “my current directory is pwd and logname is $LOGNAME”# echo “my current directory is pwd and logname is $LOGNAME”有什么区别?#var=”log name is $LOGNAME”#echo $var# var=log name is $LOGNAME#echo $var有什么区别?5.按照下面范例实现(范例是在root账户下进行的,你可以下student账户下进行即可),理解转义字符等的使用。下文

32、中dmtsai都改为student(三)变量键盘读取、数组与声明1.读取键盘输入的变量read2. declare的用法3.数组。如图操作#echo $var#echo $var0#echo $var1#echo $var2#echo $var3#echo $var4都会输出什么?为什么?自己试着定义一个整形数组,并将其内容输出。(提示:采用declare功能)10. shell数据重定向与管道实验目的实验内容实验要求实验设备实验过程本实验采用studeng账户登录,试验中涉及到的root全部采用student代替。(一)数据重定向也就是说“标准输出”和“标准错误输出”都会将信息输出到屏幕上面

33、。那么数据重定向就是说将要输出的东西输出到另外的地方去(一般是文件)1. 按下图操作,将根目录下的内容输出到rootfile文件中(采用student账户操作)执行完成后查看rootfile文件的内容,看与之前输出到屏幕上的内容是否一致。2. 继续执行#ll /home /rootfile,并再次查看rootfile的内容,你发现了什么?3. 继续执行#ll /home/student /rootfile,再次查看rootfile的内容,对比之前的操作,你又发现了什么?结合上图来看下图,理解“标准输出”与“标准错误输出”的代码,并回答出上面两个问题。4. 我在我自己账户“luowei”下执行下

34、面的命令,出现了很多permisssion denied,这些其实是“标准错误输出”。在你的电脑上会出现什么?这一行是正确的输出5. 将“标准输出”和“标准错误输出”分别重定向到不同的文件中去查看自己相应目录下是否出现了list_right和list_error文件,并查看其中的内容是否跟上面的一致。6. 如果我们知道会有错误信息发生,但想将这些错误信息忽略掉,不将其进行显示或保存。这时可采用垃圾桶黑洞来实现看到没,此时只有正确的输出了,错误的都没有了。 /dev/null就是那个垃圾桶黑洞。7. 如果我们想将正确与错误输出写入到同一个文件中呢看看这条语句是否成功了?是否与屏幕上直接输出的内容

35、一模一样呢?再执行再看看list的内容,跟之前的list有什么不一样?这次的内容跟屏幕上直接输出的内容一模一样了吗?上面这条语句跟屏幕上的输出是一模一样的(保持了顺序,但第一个语句虽然有输出,但没有保持原有顺序),且这条语句也可以用下面的语句来实现自己检查,看看是不是如此。8. 输入重定向(在student账户下操作)(二)管道管道命令“|”仅能处理经由前面一个命令传过来的正确信息,也就是standard output的信息,对于standard error 并没有直接处理的能力,其整体上的使用方法可以参考下图:在每个管道后面接的第一个数据必定是“命令”,而且这个命令必须要能接收standard input的数据才行,这样的命令才可以是“管道命令”采用管道和less阅读/etc下的内容#ls at /etc | less1. 选取命令grep,自己根据help了解这个命令的用法并实现下面的范例,通过范例理解管道的使用。2. 排序命令:sort, wc, uniqsort可以根据选项按照不同的方式进行排序,请同学们自己参看help了解不同的排序方式。有些时候文件里面有很多重复的内容,你不想这些重复的内容重复显示,这些重复的东东显示一次便可以了,采用uniq命令可实现该功能。在下图的范例中也涉及到了cut这个命令,其实cut是个选取命令,同学们自己看help了解其功能wc命令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论