Linux实验报告.docx
1.inux程序设计试威报告老姓班学专网杨帆计1242121842284试验一1.inux系统安装与启动(选做试验)一、试验Il的(通过实践与查阅资料完成如下试验)1 .驾驭虚拟机的配置过程。2 .驾驭1.inux系统的安装过程和简洁配置方法。3 .驾驭与1.inUX相关的多操作系统的安装方法。4 .驾驭1.inUX系统的启动、关闭步骤。试验结论:rootloCalhOStfedoral#mandaterootlocalhostfedoral#manechoIroOtloCalhOStjrootQloCalhOStfedoral#mkdirtestdirlfedoralj#IS-Idrwxr-xr-x2fedoralfedoral496215-06-19d11rfxr-xr-x2fedoralfedoral496215-06-19drwxr-xr-x2fedoralfedoral496215-6-19dnxr-xr-x2fedoralfedoral496215-6-19drwxr-xr-x2fedoralfedoral496215-06-19drwxr-xr-x2fedoralfedoral496215-6-19dxr-xr-x2fedoralfedoral496215-6-19drwxr-xr-x2rootroot496215-6-19drwxr-xr-x2fedoralfedoral4962015-06-19root01,ocalhostfedoral#total3699:12Desktop09:12Documents09:12Download69:12Music09:12Pictures89:12Public99:12Templates18:55testdirl09:12Videos4.2在用户书目F复制testdi目为testdir2(吩咐:运行结果)。(root0lo<lhostfederal)#c-«rftestdirltestdir2(rootlocdlho$tfedoral)#1$DesktopDocumentsOOMnI。*MusicPicturesPublicTenpUtcstestdirltestdir2Videosroot0localhostfederal,4 .3在用户书U下删除IeSIdir2。(吩咐:运行结果)(rootlocalhostfedoral#rmdirtestdir2(rootlocalhostfedoral)#IsDesktopDocumentsDownloadMusicPicturesPublicTenpUtestestdirlvideosIroowlocalhostfedoralj#5 .文件操作51进入用户默认工作书目。5.2运行date>testl,然后运行Caltest1,记录视察到的信息(吩咐:运行结果)。rootlocalhostfedoral#date>testlrootlocalhostfedoral#cattestlFriJun1919:07:36PDT215root0localhostfedoral#5.3再次运行datetestl,然后运行CatteStI,记录视察到的信息(吩咐:运行结果)。rootloCaIhoStfedoral#date>testlrootlocalhostfedoral#cattestlFriJun1919:09:12PDT215IrootloCalhOStfedoral#5.4运行date>>lestl,然后运行CaIteStI,记录视察到的信息并说明缘由(吩咐:运行结果)。(rootlocalh5tKMt*Cdfloral(rootloclhstfedor*lfUDesktopDocunentsDownloadMusicPicturesPublicTeflplatettestltest?test3testdirVideoi(root0localhostfedorAl<rerftestdirl(root0localhotfederaljfrerftestl(rootlocalhostfederalIsOeiktopOocunentDownloadMusicPicturesPublicTenplatestest2test3Videos(rootloclh5tfedorlt四、试验思索题【.如何显示当前工作书目的完整路径。在1.inUX层次书目结构中,用户可以在被授权的随意书目下利用mkdir吩咐创建新书目,也可以利用Cd吩咐从一个书目转换到另一个书目。然而,没有提示符来告知用户目前处于哪一个书目中。要想知道当前所处的书目,可以运用PWd吩咐,该吩咐显示整个路径名。PWd说明:此吩咐显示出当前工作书目的肯定路径。例:$pwdho<nexu故示的路径名为homexu,每个书目名都用“/”隔开,根书目以开头的表示。2 .举例说明1.inUX吩咐的常用格式。mkdir-Psrvftplinu-10创建文件夹-p假如文件夹不存在自动创建free吩咐free吩咐的功能是查看当前系统内存的运用状况,它显示系统中剩余与已用的物理内存和交换内存,以与共享内存和被核心运用的缓冲区。3 .举例说明如何运用1.inUX吩咐帮助(吩咐:运行结果)。试验结论:(rootlocalhosttest3*chmodg-rfilelrootlocal.hosttest3*Is-Ifilel-rw-n-1rootrootO2015-06-1919:37filelrootlocalhosttest3*1.5用数字形式来为filel设置权限,使全部者可读、可写、可执行:其他用户和所属组用户只有读和执行的权限,并查看设置结果。rootlocal.hosttest3chmod755filelrootlocalhosttest3*Is-1filel-rwxr-xr-x1rootroot215-6-1919:37filelrootlocal.hosttest3*1.6用数字形式更改filel权限,使全部者只能读取此文件,其他任何用户都没有权限,并杳看设置结果。rootlocalhosttest3*chmod4fileljrootloCaIhOSttestO3#IS-Ifilel-1rootroot215-6-1919:37filelIrootloCalhoSttestO3#1. 7为其他用户添加写权限,并查看设置结果。rootlocalhosttestO3#chmodo+wfilelrootlocalhosttest3*ISlfilel-rw-1rootroot215-6-1919:37filelrootlocalhosttest3*a1. 8回到上层书目,杳看test03的权限。IrOotlocalhosttest3tcd.rootlocalhostfedoral#Is-Itest3total- rw-1rootrootO215-06-1919:37filelrootlocal.hostfedoral#1.9为其他用户添加对此书目的写权限,查看设置结果。rootelocalhostfedoral#chmodo+wtest3rootlocalhostfedoral#Is-Itest3total0- rw-1rootroot215-6-1919:37filelrootlocalhostfedoral#1.lo查看并记录书目IeSIO3与其中文件的所属用户和组。rootlocalhostfedoral#Is-Itest3total0- rw-1rootroot215-6-1919:37filelIrootQlocalhostfedoral#1.H把书目test03与其下的全部文件的全部者改成bin,所属组改成daemon,并查看设置结果。rootlocal.host/1#qbash:q:commandnotfoundroot0localhost/#;bash:syntaxerrornearunexpectedtokenrootlocalhost/1#(root0localhost(root0localhost/1*/1*/#cdhomehome#IsCddfedorafederalSlJ(root0localhost(rootlocalhostetctestIrOOtloCalhOSt(rootlocalhostetchome#cdSlJSlJ)*IsS1JJ#cdetctestetctest#Is(root0localhost(rootlocalho$trootlocalhostetctest#2.2用tar吩咐将etctest书目打包成etctest.tar.gz,杳看etctest.tar.gz的权限,解压缩etctest.tar.gzrootlocalhosthome#ISetctestetctest.tar.gzfedorarootloCalhOSthome#IS-Itotal1756drwxr-xr-x13rootroot496215-6288:49etctest-rw-r-r-1rootroot174292962015-6-261:31etctest.tar.gzdrwx25fedorafedora4096215e6266:25fedoraIrootloCaIhoSthome#rootlocalhosthome#tar-xvfetctest.tar.gztar:etctest/Xll/fontpath.d:timestamp2015-6-208:04:22is2385.3inthefuturetar:etctest/Xll:timeSta叩21S-6-208:66:35is23218.34393273suretar:etctestrc.drc5.d:thefuturetar:etctestrc.drc4.d:thefuturetar:etctestrc.drc6.d:thefuturetar:etctestrc.drc3.d:thefuturetar:etctestrc.drc2.d:thefuturetimestamptimestampti>estamptimestamptimestamp215-6-2215-062215-O6-2215-O6-2215-O6-208:17:54is08:17:54is08:17:54is08:17:54is08:17:54is23897.346323897.3458523897.3455723897.3453923897.34521tar:etctest/cron.weekly:timestamp215-6-208:08:14is23317.3436thefuturetar:etetest/fonts/conf.d:timestamp215-6-2O68:03:24is23027.343nthefuturetar:etetest/fonts:timestamp215-6-268:93:24is2327.34323349utureIrOOtloCaIhOSthome#Isetctestetctest.tar.gzfedoraIrootQloCalhoSthome# tar-ufall.tarlogo.gif这条吩咐是更新原来tar包all.tar中IOgo.gif文件,-u是表示更新文件的意思。# tar-tfall.tar这条吩咐是列出all.tar包中全部文件,-t是列出文件的意思斗tar-fall.tar这条吩咐是解出all.tar包中全部文件,-是解开的意思以上就是tar的最基本的用法。为/便利用户在打包解包的同时可以压缩或解压文件,Iar供应了一种特别的功能。这就是Iar可以在打包或解包的同时调用其它的压缩程序。试验结论:通过这个试验我了解了一般文件与书目权限的修改。试验四用户和组的管理(必做试验)一、试验目的1 .熟识1.inUX操作环境。2 .驾驭1.inUX一般吩咐格式。3 .熟识吩咐行操作方式进行用户和用户组管理。二、试验内容2 .建立新用户账号权限测试。3 .为新用户建立账号和工作组,并进行相应配苴4 .以该用户身份登录,修改密内。5 .删除该用户。三、试验步骤1.创建用户(以ZhangSan为例)1.1创建-个新用户ZhangSaneroot0localhosthome)#useraddzhangsanroot0localhosthone#Iscddetctestetctest.tar.gzfedorafedoralSlJzhangsanrootlocalhosthome#1.2查看eicpasswd文件的最终一行内容,并记录。rootlocalhosthomeJ#tailn1etcpasswdzhangsan:x:52:502:/home/ZhangSan:/bin/bashIrOotloCaihOSthome#1.3查看etcshadow文件的最终一行内容,并记录.rootlocal.hosthone#tail-n1etcshadowzhangsan:!:1666::99999:7:rooWlocalhosthome#1.4给用户zhangsan设置密码。rootQloCalhOSthome#passwdzhangsanChangingpasswordforuserzhangsan.NewUNIXpassword:BADPASSWORD:itistooshortRetypenewUNIXpassword:passwd:allauthenticationtokensupdatedsuccessfully.rootlocalhosthome#1.5查看ecshadow文件的最终一行内容,记录并说明变更。root(8localhosthome#tail-n1etcshadowZhangsan:SlSNvFSbqdSZ9.VlPSxpQjKieuX.t9c6:1666:99999:7:rootlocal.hosthome#1. 6运用zhangsan用户登录系统,测试能否登录胜利。rootlocalhosthome#szhangsanzhanqsanlocalhosthome$2.创建用户(以USer为例2.1 运用1的步骤创建新用户user0rootloCaIhoSthome#useradduserrootlocalhosthoae*Iscddetctestetctest.tar.gzfedorafedora1SUuserzhangsanrootlocalhosthoee#Iroot©ioCalnoStnomej#is-total32drwx4cddcdd496215-6-1969:14cdddrwxr-xr-x103rootroot4962l5-6-1923:48etctest-rw-r-r-1rootroot45215-6-2O61:15etctest.tar.gz-rw-r-r-1rootroot58215-6-1919:11fedoradrwx26fedoralfedoral496215-6-2O61:13fedoraldrwxr-xr-x3rootroot496215-6-2O68:48SlJdrwx4useruser496215-6-2O81:52userdrwx4zhangsanzhangsan496215-6-261:52zhangsan2.2更改zhangsan所属群组为root。IrootQlocalhosthome)#ChgrProotzhangsan(rootlocalhosthome)#Ultotal32drwxdrwxr-xr-x413cddrootcddroot4096215-6-1909:14Cdd4962l5-86-1923:48etctest-rw-r-r-1rootroot45215-G6-201:15etctest.tar.gz-rw-r-r-1rootroot58215-G6-1919:11fedoradrwx26fedoralfedoral4896215-6-261:13fedoraldrwxr-xr-x3rootroot496215-6-268:48SlJdrwx4useruser4962156201:52userdrwx4zhangsanroot496215-6-201:52Zhangsan2. 3查看ecpasswd文件,记录zhangsan用户和user用户的屈组状况。rootloCalhOSthome#tail-n1etcpasswduser:x:53:503:homeuser:binbashrootlocalhosthome#2. 4更改用户zhangsan的帐户名为user。rootlocalhosthome#usermod-1uesrZhangSanusermod:userzhangsandoesnotexistrootlocalhosthome#userdel-ruseruserdel:varspoolmailusernotownedbyuser,notremovingrootlocalhosthome#Iscddetctestetctest.tar.gzfedorafedoralSlJuser2. 5查看etcpasswd文件的最终一行内容,记录并说明变更。“0OtloCalhOSthome#tailn1etcpasswdcdd:x:51:51:/home/cdd:/bin/bashrootlocalhosthome#2. 6删除用户user.IrOOt©localhosthome#userdeluserroot0localhosthome#IScddetctestetctest.tar.gzfedorafedoralSlJ3.组的管理(以StUff为例)3.1 创建一个新组,组名为StUf九rootlocalhosthome#groupaddstuffrootlocalhosthome#Iscddetctestetctest.tar.gzfedorafedoralSlJuserrootlocal.hosthome#Is-Itotal28drwx4cddcdd496215-6-1909:14cdddrwxr-xr-x13rootroot4096215-61923:48etctest-rw-r-r-1rootroot45215-6-291:15etctest.tar.gz-rw-r-r-1rootroot58215-61919:11fedoradrwx26fedoralfedoral496215-6-201:13fedoraldnxr-xr-x3rootroot496215-6-200:48SlJdrwx453Stuff496215-6-291:52userrootlocalhosthome#3. 2查看etcgroup文件的最终一行内容,并记录。Iroot©localhosthome#tail-n1etcgroupstuff:x:503:Irooteiocalhosthome#3. 3创建一个新帐户test,并将其起始组和附属组都设为stuff。Iroot©localhosthome#useradd-gstuff-Gstufftestlrootl,ocalhosthome#IScddetctestetctest.tar.gzfedorafedoralSlJtesttestluserroot9locaIhosthome#IS-Itotal36drwx4Cddcdd40962l5-6-1909:14Cdddrwxr-xr-x13rootroot4096215-6-1923:48etctest-rw-r-r-1rootroot45215-6-201:15etctest.tar.gz-rw-r-r-1rootroot58215-6-1919:11fedoradrwx26fedoralfedoral4962ei56201:13fedoraldrwxr-xr-x3rootroot4962615-66-2068:48SlJdrwx4testl5944396215-6-202:37testdrwx4testlStuff48962l5-6-262:39testldrwx4503Stuff496215-6-261:52user3.4查看etcgroup文件中的最终一行内容,记录并说明变更。rootlocalhosthome#tail-n1etcgropstuff:x:503:testlIroot©localhosthome#3.5设置StUff组密码。rootloCaIhOSthome#gpasswdstuffChangingthepasswordforgroupstuffNewPassword:Re-enternewpassword:rootlocal.hosthome#3. 6在stuff组中删除用户test.rootlocalhosthome#gpasswddtestlstuffRemovinqusertestlfromgroupstuff3.7查看etcgroup文件中的最终一行,记录并说明变更。IrootQlocalhosthome#tail-n1etcgroupStuff:x:503:rootlocalhosthome#3. 8删除会且stuff,rootelocalhosthome#IS-Itotal36dr¼x4cddcdd496215-6-1999:14cdddrwxr-xr-x103rootroot4096215-6-1923:48etctest- rw-r-r-1rootroot45215-6-201:15etctest.tar.gz- rw-r-r-1rootroot58215-6-1919:11fedoradrwx26federalfederal40962l5-e6-281:13fedorald11xr-xrx3rootroot4962156289:48SlJdrwx4testlStUffl496215-6-292:37testdr¼x4testlStuff496215-6-292:39testldrwx453stuff496215-6-291:52userIrOOt©localhosthome#groupdelstufflrootlocalhosthone#Is-Itotal36drwx4Cddcdd496215-6-1999:14cdddrwxr-xr-x103rootroot496215-6-1923:48etctest- rw-r-r-1rootroot45215-6-291:15etctest.tar.gz- rw-r-r-1rootroot58215-6-1919:11fedoradrwx26fedoralfedoral4096215-6-281:13fedoraldrwxr-xr-x3rootroot4962156-269:48SlJdrwx4testl544096215-6-202:37testdr¼x4testlstuff4096215-6-292:39testldnx453stuff4096215-6-291:52user(rootQloCalhoSthome#四、试验思索题I.说明所屈群组与所属附加群组的区分。chgrp(changegroup)变更文件所属群组,hown(changeowner)变更文件全部者属性。2 .如一般用户遗失密码后要求复原用户权限,说明root用户可能实行的方式。1)在root账户下,打开ctcshadow(不是PaSSWd文件,因为密码事实上经过加密后放在了"影子口令"文件shadow中了。PaSSWd文件每个用户均可见,但是ShadoW只有root可以见)。2)找到一般用户名CiCikasa,然后删除其次个域即可,域之间用“:”隔开的,如下USerJdkakkkYUukkjkjk:14672:0:99999:7:上述红色部分就是经过加密的密码,删除即可。3)在般用户卜.,输入PaSSWd即可输入新密码。3 .如何指定不同用户的默认工作书目。1)修改etcvsfpdVSftPd.conf将guest_username=virtual_USeruserconfigdir=etcvsftpduseruser_sub_token$USER加进去2)在/etc书目下手工建立vsftpd_user书目3)在elcvSflPt1.USer书目下建立用户文件,用户文件名称=要登录的用户名。例如:FTP用户是test111那么就在/etc/vsftpd_user/卜建立一个testlll文件,文件内容IoCa1.rOot=hometesl111/$USER4)重启服务SerViCevsftpdrestart一、试验目的1 .驾驭Yi编辑器的进入与退出方法.2 .了解文本编辑器的三种模式。3 .娴熟驾驭运用Vi编辑霜进行编辑、选择与操作文本文件的吩咐。二、试验内容1.进入和退出vi02 .利用文件拷贝方式建立一个文件。3 .在该文件上移动光标位置.4 .对该文件内容执行删除、修改、替换等操作。三、试验步骤1 .在当前用户默认工作书目下新建一个名为'Tesl02”的书目。2 .将文件*7etcrsyslog.conf'复制到、est”书目下。3 .运用Vi打开est''目录而rsyslog.conf。4 .指出设定UmaSk(类似"umask0022”)的所在行号。5 .将光标移到该行,并且制该行内容。6 .将该行内容内容粘贴至最终一行。7 .撤销第6步的动作。8 .光标移到“$FileOwnerSySlog",删除该行。9 .存盘但不退出。10,将光标移到首行,插入模式下输入wHello,thisisviworld!woH.向下查找字符串"syslogw.12 .再向上查找字符串“TCP”°13 .强制退出vi,不存盘。四、试验思索题1 .举例说明试验中运用的吩咐处于何种模式下?2 .说明在Vi中如何实现字符串的查找,并实现查找结果的自动换行。3 .说明在Vi中如何实现行号的显示与关闭。试验六库文件的建立与引用(必做试验)根据课本第一章,第7-11页,建立并引用库文件,写出试验过程与结果。库函数介绍:1 .1.inUX系统调用,文件的描述符运用的是一个整数,库函数访问文件运用FI1.E类型的指针去指向描述文件;2 .库函数不随系统平台而变,即不管Win还是1.inUX都适用;库函数-读文件size_tfread(void*ptr,size_tsize,size_tn,FI1.E*stream)功能:从StreaIn指向的文件中读取n个字段,每个字段为SiZe字节,并将读取的数据放入Ptr所指向的字符数组中,返回实际已读取的字节数.(读出来的数据量为size*n)库函数-写文件size_tfwriIe(constvoid*ptf,size_lsize,sizen,PI1.E*strea11)功能:从缓冲区plr所指向的数组中把n个字段写到stream指向的文件中,每个字段长为SiZe个字节,返回实际写入的字段数。库函数-创建和打开FI1.E*fopen(constchar*fiIename1constchar*mode)filename:打开的文件名(包含路径,缺省为当前路径)mode:打开模式实例代码Sinclude<stdio.h>Ttinclude<string.h>Itinclude<stdlib.h>MefineBIJFFEI1.SIZE1024/*程序入口*/intmain(intargc,char*argv)(FI1.E*from_fd:FI1.E*to_fd:7*推断入参*/if(argc!-3)(printf(*Usage:%sfromfiletofilen*,argv0);longfileIen=O:charbufferBUTEi1.SlZE;char*tr;*打开源文件*/if(fromfd=fopen(argv1,"rb*)=NU1.1.)(printfCrOpen%sErrorn",argvl):exit(l):*创建目的文件*/if(to_fd=fopen(argv2,"wb")=1W1.1.)(printf(*0pcn%sErrorn,argv21);exit(l):*测得文件大小*/fseek(fromfd,01.,SEEKEND);file_len=ftell(from_fd);fseek(from_f(i,01.,SEEK_SET);Printf("formfilesizeis=%dn*,file_len):*进行文件拷贝*/while(!feof(from_fd)fread(buffer,BrFFER_SIZE,1,from_fd);if(BUFFERSIZE>=filelen)Ifwrite(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(tofd);exit(0);)结果与说明:root®Wl-VS-7673:homewl桌面/c+#g+file_lib_copy.cpp-ofile_lib_copyfilelibcopy.cpp:在函数iintmain(int,char*),中:fileib_copy.cpp:43:41:警告:格式'%d'expectsargumentoftype'int',butargument2hastype*longint,-WformatrootMl-MS-7673:/home/wl/桌面/c+#./file_lib_copyfilelibcopy,cpptest2.cfo11nfilesizeis=1030root<8wl-MS-7673:homew1/桌面/c+#