linux上机实习报告
linux实训报告总结
linux实训报告总结本报告旨在总结和回顾我在Linux实训中所学到的知识和经验。
通过实际操作,我深入理解了Linux操作系统的核心概念和基本原理,同时也提升了自己的技能和能力。
一、实训背景和目的Linux实训是为了帮助学员掌握Linux操作系统的安装、配置和管理,以及开发和维护Linux应用程序的能力。
通过实践项目,学员在模拟的真实环境中学习并应用所学知识,提高自己在Linux领域的实际应用能力。
二、实训内容及过程1. Linux系统安装与配置在实训开始阶段,我们首先学习了Linux操作系统的安装和基本配置。
通过下载适当版本的Linux发行版,我们按照指导完成了Linux的安装,并进行了基本设置和网络配置。
2. Linux命令行操作Linux实训的重点之一是学习命令行操作。
我们通过练习常用的命令和参数,熟练掌握了文件与目录管理、用户和权限管理、进程和服务管理等方面的技能。
我们还学习了Shell脚本编写和调试,能够自动化执行一系列操作。
3. Linux网络配置与服务在Linux实训中,我们学习了网络配置与服务管理的基本知识。
我们了解了网络协议和配置文件的概念,能够设置网络接口、IP地址、子网掩码和网关等。
同时,我们还掌握了常用的网络服务如Web服务器、FTP服务器和邮件服务器的安装和配置方法。
4. Linux安全和权限管理在Linux实训的后期,我们重点学习了Linux系统的安全和权限管理。
我们了解了用户和组的概念,学习了用户权限和文件权限的设置和管理方法。
我们还学习了防火墙和入侵检测系统的原理和配置,以提高系统的安全性。
三、实践项目在Linux实训中,我们还参与了一系列实践项目,以应用所学知识并提升实际操作能力。
项目包括但不限于:- 搭建并配置Web服务器,实现网页访问和动态内容展示。
- 创建并管理数据库服务器,实现数据存储和检索功能。
- 编写Shell脚本,实现自动化系统管理和任务处理。
- 搭建并维护邮件服务器,实现邮件的发送和接收功能。
linux 上机报告心得
linux 上机报告心得
在Linux上机实验中,我学到了很多关于Linux操作系统的基础
知识和操作技巧。
以下是我在实验中的一些心得体会。
首先,在使用Linux操作系统时,必须先熟悉基本的命令行操作。
例如,常用的cd命令用于更改当前工作目录,ls命令用于列出当前目录下的文件和子目录,mkdir命令用于创建新目录等等。
此外,还有一些其他的命令,例如cp、mv、rm等,这些命令可以用于复制、移动和
删除文件和目录。
另外,在实验中,我也学到了Linux操作系统的文件系统结构。
Linux文件系统由许多不同的目录和子目录组成,每个目录都有特定的用途。
例如,/bin目录包含系统的基本命令,/usr目录包含用户应用
程序,/etc目录包含系统的配置文件等等。
了解这些目录结构对于更
方便地使用Linux操作系统非常重要。
在实验中,我也学到了Linux上如何编译和运行程序。
Linux操作系统通常有多种编译器可供选择,例如gcc、g++等。
在编写程序后,
可以使用相应的编译器将代码编译成可执行文件。
然后,使
用./filename命令即可运行程序。
此外,在实验中,我还学到了Linux上如何通过网络连接到其他计算机。
例如,可以使用ssh命令连接到其他计算机以进行文件传输和远程访问。
总的来说,Linux操作系统非常强大和灵活,但需要一些时间去学习和熟悉。
通过实验操作,我对Linux操作系统有了更全面和深入的了解,也为以后的学习和工作打下了坚实的基础。
linux实训个人总结8篇
linux实训个人总结8篇篇1一、实训背景与目标本次Linux实训旨在通过实践操作加深我对Linux操作系统的理解与应用能力,提升我在Linux环境下的软件开发和系统管理能力。
在为期XX周的实训过程中,我针对Linux系统的基本配置、软件开发、系统管理等方面进行了系统学习与实践。
二、实训内容1. Linux系统基础操作在实训初期,我重点学习了Linux系统的基本操作,包括文件与目录管理、常用命令的使用、软件包的安装与管理等。
通过实践操作,我掌握了Linux系统下的基本命令和操作技巧,能够熟练进行文件的增删改查以及软件的安装与配置。
2. 软件开发环境的搭建与实践本次实训中,我学习了如何在Linux环境下搭建软件开发环境,包括编译器的安装与配置、代码编辑器的使用、版本控制系统的实践等。
通过搭建开发环境,我能够自主进行软件的开发与调试,提升了我的软件开发能力。
3. 系统管理与维护实践在实训过程中,我还学习了Linux系统的管理与维护知识,包括系统监控、用户管理、进程管理、磁盘管理等。
通过实践操作,我掌握了系统管理的基本技巧,能够独立完成系统的日常管理与维护工作。
三、实训收获与体会1. 深入了解Linux系统架构与运行机制通过本次实训,我深入了解了Linux系统的架构和运行机制,对Linux系统的内核、文件系统、进程管理等方面有了更加清晰的认识。
2. 提升动手实践能力与问题解决能力在实训过程中,我通过大量的实践操作,提升了动手实践能力。
同时,在遇到问题时,我学会了独立思考和解决问题的方法,增强了问题解决能力。
3. 学会团队协作与沟通在实训过程中,我与团队成员紧密合作,共同完成任务。
通过团队协作,我学会了与队友沟通的技巧,提升了团队协作能力。
四、问题与解决方案在实训过程中,我也遇到了一些问题,如软件包安装失败、系统配置出错等。
针对这些问题,我通过查阅相关资料、请教老师同学等方式,找到了解决问题的方法。
同时,我也总结了问题的原因和解决方案,避免类似问题再次发生。
linux实训报告(6个内容)
Linux网络管理实训报告学生姓名:李含指导教师:刘国成班级: C0841学号: 36信息工程学院2011.11一、Linux安装与配置1、实训目的(1)熟练掌握Linux安装的方法(2)了解Linux的基本配置2、实训内容(1)安装带图形界面的Linux redhat 5.2企业版Linux用户和计算机(2)安装命令行界面Linux redhat 5.2企业版LinuxHLG-B (3)使用ssh putty连接到Linux(4)管理文件及目录3、实训步骤命令行安装RedHat(1)在vmvare安装虚拟机时,在选择操作系统该步骤时,一定选择Linux(2)新建完vitual machine 界面如下(3)打开vmware ,在vmware 光驱中挂载linux RedHat 企业版(4) 从光盘引导启动linux,启动vmare(5) 在命令行中键入text(6) 在光盘检测的页面,用tab 键选择Skip 跳过光盘检测。
(7) 再接下的界面中,直接点击OK 即可。
(8) 语言选择英语(注:这里选择英语,不要选择chinese )(9) 键盘使用习惯,默认即可。
点击OK(11)在弹出的页面中,点击yes。
FAT32,选择默认即可,点击ok。
(13) 在该页面可以看到默认的分区信息,可以根据自己对分区的要求对分区信息进行修改。
(14) 是否给GRUB 开机管理系统设定密码,根据个人安全需要选择。
(15) 在该页面选择使用IPv4 还是IPV6。
我们选择IPV4(16)在该页面,选择动态获得IP 地址,如后续需要指定,我们进行设定。
(17) 为服务器指定名称,方便其他人在网络上查找(18) 为系统指定时区(19) 设定root 密码(20) 安装完成后,需要重新启动机器。
4、实训小结通过对Linux安装与配置的实训,虽然时间很短,但我学到了很多,在与老师和同学们的相处下,我不仅学到了很多理论知识,我还学会了许多做人的道理,在实训期间,我才发现我的理论知识还不是很扎实,遇到的许多问题我都不知所措,还好有老师和同学帮助我,我才得以度过难关,在此,我要感谢那些帮助过我的老师和同学。
linux实习心得(通用3篇)
linux实习心得(通用3篇)linux实习心得篇1学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向,学习效率,掌握程度,熟悉操作是日常学习Linux中的三大法宝。
以下是作者学习Linux的一些个人经验,供参考:1,应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。
2,熟悉并掌握安装Linux,安装是学习的前提。
目前较常见的安装方法有二种:硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区,在系统检测不到与Linux兼容的显卡,那么此次安装就可能不支持图形化界面安装,而只能用文本模式安装等等。
3,掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。
4,熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件,永中office 20xx增强版安装只需要默认安装即可使用并操作大多与win 系统雷同,打印机的配置和管理,记录光盘等。
5,一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通,把用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。
6,掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。
linux实验报告总结-共10篇
∣inux实验报告总结(共10篇)(Linux实验报告汇总)(一)Shell 编程一、实验目的:1)掌握在Linux下的C编程基本方法。
2)掌握shell编程方法。
3)掌握dialog图形化编程方法。
二、实验内容1、编写能输出“Hello world!”问候语的C程序,并在终端中编译、执行。
要求记录所使用的命令及结果。
#include stdio.hmain()(printf(Hello world!\n);)2、编写一个C程序并设置其在后台执行,其功能是在一段时间后(可自行设置),在屏幕上显示信息:Time for play!,写出相应的程序、命令及结果。
#include stdio.hmain()(int time=0;printf(请输入等待时间(单位:s):);scanf(%d/&time);sleep(time);printf(Time for play!\n);)3、编写C程序,求1到100之间整数的阶乘和,并对程序进行优化。
写出程序、命令和结果。
#include stdio.hmain()int i;double s = l,sum = 0;for( i= l;i= 100;i++)sum+=s*=i;printf( 1到100之间整数的阶乘和:%f\n,sum);printf( 1到100之间整数的阶乘和:%e\n,sum);}4、编写C程序,根据键盘输入的半径求圆面积,要求在命令行周率(P∣=3∙14,PI=3∙14159,PI=3.14159626 等)进行编使用不同的译,写出程序、命令和结果。
#include stdio.hint main()double r = 0.0 , Area = 0.0;printf(请输入半径:);scanf(%lf, &r);Area = PI * r * r;printf(圆面积:%f∖n, Area);)5、编写shell程序sh.l,完成向用户输出“你好!”的问候语。
linux实习报告2篇_实习报告_
linux实习报告2篇:通过毕业前的实习巩固自己在大学期间所学的相关知识,锻炼自己实际的工作经验,熟悉linux运维相关知识。
锻炼自己在工作中的人际关系。
让自己在毕业之后能尽快实现从学校到社会的转变。
实习任务:1、巩固大学期间所学的知识。
2、学习互联网企业的运营模式。
3、延伸linux的应用,学习实现系统运维。
4、了解服务器的相关知识,为系统运维打下坚实基础。
实习内容:1、学习redhat linux服务器平台的安装与搭建,并将其应用到现实的工作中,能独立完成批量服务器系统的安装。
2、熟悉公司所用服务器的各个型号,了解服务器的架构知识,学习raid和远程管理卡的相关知识,并能够在服务器中部署。
学习磁盘阵列的设置及其部署知识。
3、在linux下熟悉应用项目的部署,包括apache、tomcat、nginx等服务器的部署,并且把应用项目成功部署在tomcat服务器。
4、熟悉应用项目的负载均衡配置、日志切割、数据备份等一些服务器优化软件和工具,为应用项目做好各个方面的优化。
5、熟悉oracle数据库,了解应用项目所需的oracle数据库,可以在项目中正确部署oracle数据库。
6、深入学习linux系统知识,了解工作的基本原理与工作之中常见的问题,做好系统的运维工作。
实习结论:经过在广州市文渊信息科技有限公司三个月的实习,使我真正认识了什么是linux运维。
学到了大学期间没法学到的知识,并且巩固了大学期间所学的知识。
除此之外,我还了解了it企业的运营模式。
实习体会:能够从事linux运维工作,我感到非常开心,我也非常珍惜这个来之不易的机会,在这段实习期间我学到了很多东西,也见识了很多从来没有见过的企业级的网络设备和服务器。
从企业级服务器,交换机,路由到磁盘阵列和负载均衡设备。
实习的时间虽然不长但是我的收获是无限的。
相信实习的经历必将对我未来的工作产生深远的影响。
我从以下几个方面来分析和总结这段时间的工作。
linux实训报告总结
linux实训报告总结在本次Linux实训中,我深入学习了Linux操作系统的基础知识和相关技能,并通过实际操作和项目练习,提高了自己在Linux环境下的实际应用能力。
以下是我对整个实训过程的总结和反思。
一、实训背景与目的在当今信息技术高速发展的背景下,Linux作为一种优秀的开源操作系统,具有高度的稳定性和安全性,被广泛应用于企事业单位和个人用户。
因此,为了提高我们在Linux操作系统上的开发和维护能力,本次实训旨在通过系统地学习、实践和项目练习,掌握Linux操作系统的基本原理、安装配置、常用命令等知识,以及运维和应用的技巧,为我们今后的工作和学习打下坚实的基础。
二、实训内容与过程1. Linux基础知识学习通过教材、课堂授课和自主学习,我系统地学习了Linux操作系统的发展历史、特点与优势,以及与其他操作系统的对比等内容。
通过这些学习,我对Linux的定位和应用领域有了更清晰的认识。
2. Linux环境搭建与配置在实训过程中,我们首先学会了如何在虚拟机或物理机上安装Linux操作系统,并进行相应的配置。
通过多次实践,我掌握了不同Linux发行版的安装方法和注意事项,并能够根据实际需求选择合适的Linux发行版进行安装。
3. Linux常用命令学习与应用在掌握了Linux环境的安装和配置之后,我们开始学习Linux的常用命令,并通过实际操作加深理解和记忆。
我学会了基本的文件和目录操作命令、文本处理命令、网络命令以及用户和权限管理命令等,这些命令对于后续的Linux应用和运维至关重要。
4. 实验项目练习在实训的最后阶段,我们进行了一系列的实验项目练习,包括搭建Web服务器、配置网络服务、部署应用程序等。
通过这些实验项目,我深入了解了Linux操作系统在不同场景下的应用,并学会了解决实际问题的方法和技巧。
三、实训成果与收获通过本次Linux实训,我取得了一系列的成果和收获:1. 对Linux操作系统有了更深入的理解:通过实际操作和项目练习,我对Linux操作系统的结构、核心原理和基本功能有了更深入的理解,不再局限于理论知识。
linux实习报告
linux实习报告一、引言在本次实习中,我有幸加入了一家IT公司的Linux团队,负责参与公司服务器的运维工作。
通过这次实习,我对Linux操作系统的理解和应用能力有了很大的提升。
在以下几个方面,我将详细介绍我在实习过程中所学到的内容以及遇到的挑战和解决方案。
二、实习内容1. 了解和熟悉Linux操作系统在刚开始实习的阶段,我首先学习了Linux操作系统的基本知识,包括Linux的历史、特点以及与其他操作系统的区别。
通过学习Linux 的文件系统、目录结构和文件权限等基本概念,我对Linux的组成和运行原理有了初步的了解。
2. 掌握Linux命令行操作在实习期间,我逐渐熟悉了Linux命令行的使用,并牢固掌握了一些基本的常用命令,如cd、ls、mkdir等。
通过使用这些命令,我可以方便地对Linux系统进行文件管理、进程管理和用户管理等操作。
3. 学习Shell脚本编程为了提高工作效率,我学习了Shell脚本编程语言,并能够编写一些简单的Shell脚本来完成重复性的任务。
通过自动化脚本的编写,我成功地简化了一些繁琐的操作,提高了工作效率。
4. 参与服务器运维工作在实习期间,我有机会参与公司服务器的运维工作。
我负责定期对服务器进行备份和监控,并及时处理其中出现的问题。
通过对服务器故障的排查和解决,我深入了解了Linux系统运维的重要性和技巧,提高了自己的问题解决能力。
5. 学习网络配置和安全技术为了提高对Linux网络配置和安全的掌握,我学习了网络配置的基本知识和一些网络安全技术。
我熟悉了Linux系统的网络配置文件和命令,并了解了Firewall和IDS等安全工具的使用方法。
这些知识使我能够更好地保护公司服务器的安全。
三、实习挑战与解决方案1. 学习曲线较陡在实习初期,由于对Linux系统的了解不够深入,我遇到了学习曲线较陡的挑战。
为了克服这一困难,我主动请教同事并阅读了相关的技术资料,逐渐提高了自己对Linux系统的理解与应用能力。
Linux操作系统实训报告
例 1:使用自己的学号和姓名各创建一个子目录,并用 ls 命令观察结果,如图 1-5 所示。
图 1-5 使用 mkdir 命令创建子目录
例 2:创建一个已经存在的子目录,观察显示结果,如图 1-6 所示。
4. rmdir 命令
图 1-6 创建已存在子目录结果
⑴ rmdir 语法:rmdir[选项|参数] 目录名 ⑵ rmdir 命令说明:用语删除空的目录。 ⑶ 使用权限:所有用户。 ⑷ rmdir 命令参数选项:
1.3 Linux 文件与目录的基本操作
linux实习报告
linux实习报告在踏入大学的这一年里,我有幸参加了一次Linux实习。
通过这次实习,我深入了解了Linux操作系统的相关知识,并且学到了很多实践经验。
下面是我对这次实习的总结和体会。
1. 实习背景Linux作为一种开源的操作系统,具有高度的安全性和稳定性,在互联网时代得到了广泛的应用和推崇。
有着自己独特的设计理念和架构模型,因此学习和掌握Linux操作系统已经成为了计算机专业学习的必要内容之一。
为了更好地提升自己的专业能力,我选择了参加这次Linux实习。
2. 实习目的通过这次实习,我希望能够深入了解Linux操作系统的内核原理和应用开发,并能够掌握Linux操作系统的基本使用方法。
同时,通过实践项目,提升自己的动手能力和问题解决能力。
3. 实习过程在实习的前期,我主要通过自学Linux的相关知识,包括Linux的基本概念、文件系统、进程管理、权限管理等内容。
同时,我还结合教材和实践项目进行学习,深入理解Linux的内核机制和应用开发方法。
实习的中期,我开始进行实践项目。
我选择了一个较为简单的项目,即搭建一个基于Linux的Web服务器。
在这个项目中,我学习了Linux下的服务器配置和管理,以及常用的Web开发框架和技术。
通过组建实际的Web服务器,我进一步加深了对Linux操作系统的理解和应用。
在实习的后期,我参与了一个较为复杂的实践项目,即Linux下的驱动开发。
通过这个项目,我学习了Linux内核模块的编写和加载方法,了解了设备驱动的原理和流程。
在实践中,我遇到了各种各样的问题,通过查阅文档和请教老师,我逐步攻克了这些困难,并成功完成了项目。
4. 实习收获通过这次实习,我不仅深入了解了Linux操作系统的原理和应用,还锻炼了自己的动手能力和问题解决能力。
我学会了独立思考和解决问题的方法,并且体验到了团队合作的重要性。
同时,我也意识到,学习并不仅仅是掌握一门技术,更是一个持续学习和不断进步的过程。
Linux基础操作实验报告
实验项目名称:Linux基础操作学号:上机实践日期:2011-9-19实验项目编号:一组号:上机实践时间: 2 学时一、目的(本次实验所涉及并要求掌握的知识点)1、熟悉启动Linux虚拟机与同时使用多个控制台登录Linux的基本操作;2、熟练使用date、shutdown、exit、halt、reboot等命令;3、掌握shell中的特殊按键、Linux中的基本命令;4、掌握对文件的备份和恢复。
二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图)1、实验内容1)练习使用启动Linux虚拟机2)练习同时使用多个控制台登录Linux3)练习使用date、shutdown、exit、halt、reboot等命令a.使用date命令修正系统时间,改为当前日期时间b.使用shutdown命令发出警告信息,查看其他控制台上的用户是否收到信息。
c.通过Internet查找,是否还有其他的关机命令4)练习操作shell中的特殊按键在做以下实验之前,用root登录到虚拟控制台1(下面简称vc1),运行如下命令:useradd mikepasswd mike添加mike用户然后用新增加的mike用户分别登录虚拟控制台2和3在虚拟控制台3下用mike用户登录成功后,运行如下命令:su (变换身份到超级用户,需要输入root的密码)5)练习所学习的基础命令,完成以下问题:a.logname和whoami的区别,举例说明b.从vc1向vc3用write命令发信息,写出这条完整的命令c.假设当前路径为:/home/mike,需要变换到绝对路径为/etc/default目录下,则该命令用相对路径怎么写?6)用tar命令实现如下备份和恢复:(备份文件均放在/root目录下)a.对/home目录进行压缩备份(采用gzip压缩),备份文件名为home.tar.gzb.对/home目录进行压缩备份(采用bzip2压缩),备份文件名为home.tar.bz2,比较二种工具的压缩能力c.在/home目录下建立文件a,在/home目录下建立目录test,在/home/test目录下建立文件b(用vi 编辑任意内容)d.对/home目录进行增量备份,备份2011年9月19日以来变化的文件,备份文件名为home.20110919.tare.删除目录/home,会出现什么情况?然后利用上述备份恢复所有文件。
linux操作系统实验报告书
linux操作系统实验报告书(1)一.实验名称:Linux基本命令的使用二.实验目的:1.进一步练习Linux登录和退出的方法2.练习与目录和文件操作相关的Linux命令:cd:切换目录mkdir:建立一个新目录cp:文件拷贝ls:显示目录及文件的内容mv:更改文件名称cat、more、less:浏览文件内容chmod:更改文件或目录的访问权限rm:删除文件rmdir:删除目录三.实验内容:1.登录进入Linux 系统。
2.将工作目录切换到根目录,用ls命令查看根目录下的内容,尝试使用-a,-l,-F,-A,-lF等不同选项并比较不同之处。
3.在家目录下建立一个名为test的新目录,将工作目录切换到test下,然后将/tmp下的文件lesson.log拷贝到该目录下,并将lesson.log用mv命令改名为:TestRenName.txt。
4.用cat命令浏览文件TestRenName.txt的内容,用more命令进行浏览翻页操作。
再用less命令浏览文件TestRenName.txt的内容。
5.用ls命令查看test下的文件的权限,并更改文件TestRenName.txt的权限为:只允许自己读写,不允许其他用户访问。
用ls命令查看更改后的结果后再将文件TestRenName.txt的权限更改为系统默认的权限:-rw-r--r--。
6.用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录。
7.用logout命令退出系统。
四.结果分析:五.实验心得*********************************************************************linux操作系统实验报告书(2)一.实验名称:Linux基本命令的使用二.实验目的:1. 掌握监视系统的几个Linux基本命令:PS--查看系统的进程tty--查看当前使用的终端df--查看系统的文件系统的空间使用情况du--查看具体某个文件和目录的磁盘空间的占用情况free--查看使用的内存资源的情况2. 掌握Linux下的联机帮助手册的使用3. 掌握Linux命令的简要帮助的获取方法4. 掌握一些其他常用的Linux命令:cal--显示日历date--显示系统的日期和时间clear--清屏find--查找文件uname--查看系统信息who--查看其他登录的用户which--查看命令的全路径tar--Linux下的压缩与解压缩命令三.实验内容:1.使用ps查看系统的进程运行情况,使用不同的命令选项并比较显示结果的差别;查看当前系统已安装的文件系统的空间使用情况;查看用户的家目录占用了多少空间;查看使用的内存资源的情况.2.查看ls命令的详细使用方法,查看ps命令的详细使用方法.3.获取ls命令的简要帮助信息,获取ps命令的简要帮助信息.4.用cal命令显示日历,用date命令显示系统的日期和时间,用clear清除屏幕,用find命令在系统中查找文件ch1.doc,用uname命令查看系统的信息,用who 命令查看其他登录的用户,用which命令查看一些命令的全路径,用tar命令来压缩test目录下的所有后缀为doc的文件到文件doc.tar.gz中,将doc.tar.gz 复制到用户的家目录并展开压缩文件.四.结果分析:1. 要查看系统的进程运行情况可使用ps命令:[stu@cs-linux stu]$ psPID TTY TIME CMD4442 pts/0 00:00:00 bash11683 pts/0 00:00:00 ps第一列中的PID表示进程编号,第二列中的TTY表示提交该进程的终端号,第三列中的TIME表示该进程已运行的时间,第四列中的CMD表示该进程所对应的命令.如果要显示进程更详细的信息,可以使用参数ps u:[stu@cs-linux stu]$ ps uUSER PID %CPU %MEM VSZ RSSTTY STAT START TIME COMMAND501 4442 0.0 0.3 5560 784 pts/0 S 09:45 0:00 bash501 11684 0.0 0.2 2592 644 pts/0 R 10:16 0:00 ps -uUSER表示进程拥有者,%CPU表示CPU时间的占用比例,%MEM表示内存的占用比例,VSZ表示进程的大小,RSS表示常驻内存部分大小,START表示进程的启动时间.如果要用长格式显示系统进程的信息,可以使用参数ps l:[stu@cs-linux stu]$ ps lFS UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME C MD4 S 501 4174 4173 0 75 0 - 1389 wait4 pts/0 00:00:00 bash0 R 501 4201 4174 0 80 0 - 776 - pts/0 00:00:00 ps要查看当前系统已安装的文件系统的空间使用情况,使用命令df:[stu@cs-linux stu]$ df文件系统1K-块已用可用已用% 挂载点/dev/hda7 9574520 2833764 6254392 32% /none 111472 0 111472 0% /dev/shm/dev/hda5 30701232 13538096 17163136 45% /mnt/hdd要查看用户的家目录占用了多少空间,先将工作目录切换到家目录,再使用命令du:[stu@cs-linux stu]$ du12 ./.kde/Autostart16 ./.kde8 ./.xemacs4 ./test64 .以上结果表示家目录公占用64KB的空间.要查看使用的内存资源的情况,应使用命令free:[stu@cs-linux stu]$ freetotal used free shared buffers cached Mem: 222948 216688 6260 0 17832 92792 -/+ buffers/cache: 106064 116884Swap: 514040 0 514040以上结果表示系统内存及交换空间使用情况.2. 查看ls命令的详细使用方法,使用命令man ls:[stu@cs-linux stu]$ man ls(.......显示内容省略)查看ps命令的详细使用方法,使用命令man ps:[stu@cs-linux stu]$ man ps(.......显示内容省略)3. 获取ls命令的简要帮助信息,可使用命令ls --help:[stu@cs-linux stu]$ ls --help(.......显示内容省略)获取ps命令的简要帮助信息,可使用命令ps --help:[stu@cs-linux stu]$ ps --help(.......显示内容省略)4. 要显示日历可使用命令cal:[stu@cs-linux stu]$ cal六月2004日一二三四五六1 2 3 4 56 7 8 9 10 11 1213 14 15 16 17 18 1920 21 22 23 24 25 2627 28 29 30以上用命令cal不加任何参数时显示当月日历,如果要指定查看某年某月的日历,可以加[月][年]参数,如要查看2004年8月:[stu@cs-linux stu]$ cal 08 2004八月2004日一二三四五六1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 31要显示系统的日期和时间,可使用命令date:[stu@cs-linux stu]$ date五6月18 11:23:23 CST 2004表示当前时间为2004年6月18日星期五11:23:23.用clear命令清除屏幕,之后将把已前显示的结果清除:[stu@cs-linux stu]$ clear用find命令在系统中查找文件ch1.doc,应首先退出到根目录下,在使用命令find ch1.doc:[stu@cs-linux /]$ cd /[stu@cs-linux /]$ find / -name "ch1.doc"find: /home/wb: 权限不够/home/stu/test/ch1.doc结果表示找到的文件在/home/stu/test/目录下.用uname命令查看系统的信息:[stu@cs-linux /]$ unameLinux用who命令查看其他登录的用户:[stu@cs-linux /]$ whostu tty1 Jun 18 14:22root pts/0 Jun 18 14:23 (:0.0)用which命令查看一些命令的全路径,如查看命令ls和ps的全路径:[stu@cs-linux /]$ which lsalias ls='ls --color=tty'/bin/ls[stu@cs-linux /]$ which ps/bin/ps用tar命令来压缩test目录下的所有后缀为doc的文件到文件doc.tar.gz中,如下:[stu@cs-linux test]$ tar cvf doc.tar.gz *.docch1.docch2.doc[stu@cs-linux test]$ lsch1.doc ch2.doc doc.tar.gz sesson.txt使用命令加参数cvf来打包所有后缀为doc的文件,参数c表示建立新文档,参数v表示在处理过程中显示相关信息,参数f表示以文件方式打包.现test目录下共有doc文件2个,所以显示ch1.doc,ch2.doc.打包后用ls命令查看,发现多了一个doc.tar.gz文件,表明操作成功.将doc.tar.gz复制到用户的家目录并展开压缩文件:[stu@cs-linux test]$ cd ..[stu@cs-linux stu]$ cp test/doc.tar.gz doc.tar.gz[stu@cs-linux stu]$ tar xvf doc.tar.gz *.docch1.docch2.doc[stu@cs-linux stu]$ lsch1.doc ch2.doc doc.tar.gz test第三行的参数x表示解包文件.五.实验心得这一章主要学习了Linux下的一些关于监视系统的命令以及一些常用辅助命令,对于一个Linux的系统管理员,掌握这些命令的使用是非常重要的,因为这些命令不仅可以让系统管理员了解到系统的运行情况,还可以了解到磁盘及内存的占用情况,以便系统管理员根据情况作出相应调整。
linux实习报告
linux实习报告本实习报告旨在总结我在Linux实习期间的经验和收获,包括实习岗位的介绍、工作内容和所学技能等方面。
通过实习,我不仅深入了解了Linux操作系统的原理和应用,还提升了自己的团队合作与问题解决能力。
一、实习岗位介绍实习期间,我被分配到了一家知名云计算公司的Linux运维团队,负责维护和管理公司内部的Linux服务器系统。
该岗位主要职责包括服务器的安装与配置、故障排查和处理、性能优化,以及监控和日志管理等工作。
二、工作内容和学习收获1. 服务器安装与配置在实习开始的第一个月,我先是熟悉了公司内部使用的Linux发行版,学习了如何进行服务器的安装与配置。
通过使用命令行和图形界面工具,我成功地安装了多台服务器,并进行了基本的网络设置和硬件驱动的安装。
这个过程不仅对我的Linux操作系统认识加深,而且使我熟悉了服务器硬件的组成和工作原理。
2. 故障排查和处理在实习的第二个月,我接触到了服务器故障排查和处理的工作。
通过观察服务器运行日志和使用专业工具进行分析,我能够定位问题并采取相应的措施进行修复。
例如,我曾遇到过由于硬盘故障导致的数据丢失问题,通过对硬盘进行诊断后,成功地恢复了数据并更换了故障硬盘,保证了服务器的正常运行。
3. 性能优化在实习的第三个月,我开始学习和实践服务器性能优化的工作。
通过对服务器的资源利用情况进行分析,我成功地优化了服务器的内存管理和磁盘IO性能,提升了系统的整体性能和响应速度。
同时,我还学习了如何合理设置和管理服务器的进程和服务,以避免资源浪费和系统崩溃的问题。
4. 监控和日志管理在实习的最后一个月,我专注于学习和实践服务器的监控和日志管理。
通过使用监控工具和日志分析工具,我能够实时监测服务器的运行状态,并进行故障预警和性能优化。
同时,我还学习了如何设置和管理日志文件,以便及时发现和解决问题。
三、团队合作与问题解决能力在实习期间,我积极参与团队中的各种沟通和协作活动,与团队成员密切合作完成日常工作和项目任务。
linux实习报告
linux实习报告Linux 实习报告一、实习背景本次实习是在某互联网科技公司的系统运维部门进行的,实习时间为两个月。
作为一名计算机科学专业学生,我选择了 Linux 实习,旨在深入了解和熟悉 Linux 系统的运维和管理。
二、实习目标1. 熟悉 Linux 操作系统的基本概念和原理;2. 掌握 Linux 系统的安装、配置和管理技巧;3. 学习常用的 Linux 命令及其应用;4. 理解 Linux 网络配置和安全管理。
三、实习内容1. Linux 系统的安装和配置在实习的第一周,我首先进行了 Linux 操作系统的安装。
选择了最新版本的 CentOS,并按照给定的步骤完成了安装过程。
之后,我学习了如何对系统进行基本的配置,包括网络设置、用户管理等。
2. Linux 系统的命令操作通过实习的学习和积累,我熟练掌握了 Linux 下的常用命令,比如文件和目录操作、文件权限管理、文本编辑等。
特别是在文件操作和权限管理方面,我深入了解了 Linux 的文件系统和权限机制,并学会了如何正确地操作和管理文件。
3. Linux 系统的网络配置在实习的第三周,我开始学习 Linux 网络配置,包括 IP 地址配置、网关设置、DNS 解析等。
通过实际操作和网络参数的调试,我逐渐掌握了网络配置的技巧和原理。
此外,还学习了如何使用 Linux 服务器搭建 Web 服务和 FTP 服务器。
4. Linux 系统的安全管理在实习的最后两周,我重点学习了 Linux 系统的安全管理。
学习了如何防范常见的网络攻击,如 DoS/DDoS 攻击、SQL 注入等。
通过实际操作和防护措施的设置,我掌握了一些基本的网络安全技巧,并加深了对系统安全的认识。
四、实习总结通过两个月的实习,我对 Linux 操作系统有了更深入的了解。
我不仅学到了很多知识,还锻炼了解决问题和快速学习的能力。
实习期间,我与同事们一起合作完成了一些实际的项目,这让我更好地理解了Linux 在实际工作中的应用。
linux实习报告
linux实习报告一、引言在本次实习中,我有幸加入了一家知名的科技公司,参与了他们的Linux开发团队。
通过与团队成员的合作和实践,我深入学习了Linux 操作系统的概念、原理以及开发方法。
本报告将详细总结我在实习期间所做的工作及所获得的经验和收获。
二、实习背景本次实习主要聚焦于Linux开发领域。
Linux作为一种开源操作系统,在企业应用和服务器领域具有广泛的应用。
通过参与该公司的实际项目,我得以深入了解Linux的内核架构和运行机制,提高了自己的编程和系统调试能力。
三、实习内容及工作经验1. Linux内核开发在实习初期,我主要负责参与Linux内核的开发工作。
通过参与跟踪和修复内核漏洞,我快速熟悉了Linux内核的代码结构和调试方法。
同时,在项目中,我也学会了使用版本控制工具进行协同开发,如Git 和SVN。
这些经验对我今后的Linux开发工作具有重要的指导作用。
2. 设备驱动开发随着实习的深入,我开始参与公司的设备驱动开发项目。
通过编写和调试设备驱动程序,我更加深入地理解了Linux的设备管理和驱动框架。
这一部分的实习对我掌握Linux设备驱动开发技术、提高代码质量和系统性能优化能力起到了关键的作用。
3. Shell脚本编写除了参与内核和驱动开发,我还积极参与了Shell脚本编写工作。
Shell脚本是一种强大的自动化工具,可以提高工作效率和代码的可维护性。
通过实践,我学会了编写清晰、高效且具有良好可读性的Shell 脚本,并实现了脚本的自动化执行。
4. 问题排查与解决在实习期间,我也遇到了一些挑战和问题。
例如,在设备驱动开发过程中,遇到了硬件兼容性问题导致的系统崩溃。
通过与团队成员的密切合作和经验交流,我最终成功解决了这些问题。
这些问题的排查和解决过程,提高了我问题定位和解决能力,并加深了我对Linux系统的理解。
四、实习收获通过这次实习,我获得了很多宝贵的经验和技能。
首先,我深入学习了Linux操作系统的原理和机制,对其内核结构和运行机制有了更全面的了解。
linux上机实验报告
l i n u x上机实验报告 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】L i n u x课程综合训练上机报告一、实验目的熟练掌握Linux操作系统的使用,掌握Linux的各项系统管理功能,掌握Linux下各类网络服务的安装、配置以及使用,并能用shell脚本实现简单的管理任务。
二、实验内容准备工作:利用虚拟机安装Linux操作系统,要求对/home目录单独分区,在系统中安装适当的软件包以备后续的实验需要,可关闭防火墙和SeLinux。
完成安装后将/root中的文件的内容附到报告中。
(5分)1.查看Linux系统磁盘空间的使用情况(给出显示结果)(3分)在命令行新建几个用户,如tux,tom,lily等,给每个用户创建密码,测试各个用户是否创建成功。
(2分)并为/home分区创建磁盘配额,使得你所创建的每个用户的可用空间的软限制为100M,硬限制为150M,且每个用户可用的inodes的软限制为300,硬限制为400。
试编写shell测试脚本验证你的磁盘配额设置。
(10分)2. 配置网络,并进行检测,确保能够在本地网络中联网通信(给出网络接口配置文件ifcfg-eth0)。
(5分)假设本地网络中大部分客户端是windows系统,请建立Linux Samba服务器使得windows客户端能够共享Linux服务器的资源,具体要求如下:创建一个共享文件夹/home/Public,使得所有用户都可以匿名访问(可读写)。
(5分)每个用户可以访问自己的主目录,具有完全权限,采用用户验证的方式;(5分)为用户tux和tom创建一个共享目录/home/share,可供这两个用户进行文件的共享(可读写);(5分)测试:使用smbclient客户端程序登录Samba服务器,访问服务器中的共享资源。
注:以上用户以及文件夹需要自己创建,并使之具有适当的权限。
linux实训报告心得
linux实训报告心得linux实训报告心得linux实训报告心得【1】我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2010,后来又有了XP,上大学时又有了win7。
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
直到学习Linux这门课以后,我才知道,原来我错了。
一.为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。
首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。
也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。
其中不乏很多IT精英的心血。
我们学透以后更可以做成自己的OS!其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
对我们学习操作系统有很大的帮助,加深我们对OS的理解。
再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。
二.学习情况在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
后来通过自学老师给的资料和向同学请教,掌握了一些基本的操作,比如挂载优盘,编译程序,在Linux环境下运行,转换目录等等。
学了这些基础才能进行下面的模拟OS程序。
老实说,第一个程序是在C中编译好的,调试好了才在Linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。
但是一些显而易见的小错误还是用vi改正比较方便。
以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录Linux 第一次上机(运行环境RedHat) (1)调试运行CD唱片应用程序 (1)运行过程 (1)心得体会 (3)编写shell脚本,求1到100的和 (3)运行过程 (3)源代码 (4)编写shell脚本,从键盘输入两个数,求这两个数的和 (4)运行过程 (4)源代码 (5)等待特定用户登录,每30秒确认一次 (5)运行过程 (5)源代码 (6)找出系统中当前消耗磁盘容量最大的前10个用户,并向他们发送警告邮件 (6)运行过程 (6)源代码 (8)查找输入文件的路径 (8)运行过程 (8)源代码 (9)Linux 第二次上机(运行环境RedHat) (9)定制自己的ls命令。
提供至少三种带参数的执行方式 (9)运行过程 (9)源代码 (11)调试编译串行口通信程序p6.5.c (16)运行过程 (16)Linux 第三次上机(运行环境RedHat,CentOS) (16)创建一个系统监听守护进程,一旦接收到其他进程发来的信号,马上给出报告 (16)运行过程 (16)源代码 (18)分别利用本地socket套接字和INTENET套接字实现进程间文件传输 (20)本地socket套接字运行过程 (20)本地socket套接字服务器server1.c源代码 (22)本地socket套接字客户端client1.c源代码 (23)INTENET套接字运行过程 (25)INTENET套接字服务器server2.c源代码 (28)INTENET套接字客户端client2.c源代码 (29)感谢与收获 (30)Linux 第一次上机(运行环境RedHat) 调试运行CD唱片应用程序运行过程图表1第一步,使用./CD 命令运行CD脚本图表2进入选项界面图表3增加CD图表4查找CD图表5查询数目图表6退出心得体会通过运行书上的CD唱片应用程序,进一步地了解到shell编程的方法,以及编写程序的思路。
编写shell脚本,求1到100的和运行过程图表7使用./sum1to100运行图表8使用cat sum1to100查看源代码编写shell脚本,从键盘输入两个数,求这两个数的和运行过程图表9使用./sumAandB 运行图表10使用cat sumAandB查看源代码等待特定用户登录,每30秒确认一次运行过程已知特定用户是zzx,我首先让root用户登录并运行程序,可以发现每隔30s提醒一次图表11使用./checkuser运行当我切换到zzx用户,并再次运行程序,可得如下结果图表12使用cat checkuser查看代码找出系统中当前消耗磁盘容量最大的前10个用户,并向他们发送警告邮件运行过程由于权限等问题,我们使用root用户运行程序图表13使用./mymail运行运行完毕后,我们就可以查看邮件了图表14 root用户收到的邮件图表15 zzx用户收到的邮件图表16 t1用户收到的邮件源代码图表17 使用cat命令查看查找输入文件的路径运行过程由于权限的问题,我们使用root用户运行程序图表18 使用./route运行,并按照要求输入文件名源代码图表19 使用cat route查看源代码Linux 第二次上机(运行环境RedHat) 定制自己的ls命令。
提供至少三种带参数的执行方式运行过程图表20 使用./ls 运行不带参数ls图表21使用./ls -l 运行带参数-l 的ls图表22 使用./ls -a运行带参数-a的ls图表23使用./ls -al 运行带参数-al的ls 源代码#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <pwd.h>#include <grp.h>#include <time.h>#include <dirent.h>int do_ls(char *dir,char *filename,int lflag){int n;struct stat buf;char out[100];struct passwd *pw;struct group *gr;struct tm *t;if(lflag == 0){printf("%s\t",filename);return 0;}if(lstat(dir,&buf)<0){fprintf(stderr,"stat error:%s\n",strerror(errno));return -1;}switch(buf.st_mode & S_IFMT) {case S_IFREG:printf("-");break;case S_IFDIR:printf("d");break;case S_IFCHR:printf("c");break;case S_IFBLK:printf("b");break;case S_IFIFO:printf("p");break;case S_IFLNK:printf("l");break;case S_IFSOCK:printf("s");break;}for(n=8;n>=0;n--){if(buf.st_mode&(1<<n)){switch(n%3){case 2:printf("r");break;case 1:printf("w");break;case 0:printf("x");break;default:break;}}else{printf("-");}}printf(" %d",buf.st_nlink);pw = getpwuid(buf.st_uid);printf(" %s",pw->pw_name);gr = getgrgid(buf.st_gid);printf(" %s",gr->gr_name);printf(" %ld",buf.st_size);t = localtime(&buf.st_atime);printf(" %d-%d-%d %d:%d",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min);printf(" %s ",filename);if(S_ISLNK(buf.st_mode)){printf(" -> ");if(readlink(filename,out,100)==-1){//printf("readlink error\n");}printf("%s",out);}printf("\n");return 0;}int ls_prepare(char *w,int aflag,int lflag) {struct stat buf;char name[100];DIR *dir;struct dirent *pdr;if(lstat(w,&buf)<0){fprintf(stderr,"stat error:%s\n",strerror(errno));return -1;}if(S_ISDIR(buf.st_mode)){dir = opendir(w);while ((pdr = readdir(dir))!=NULL){if(aflag==0){if(pdr->d_name[0]=='.')continue;memset(name,0,100);strcpy(name,w);strcat(name,"/");strcat(name,pdr->d_name);do_ls(name,pdr->d_name,lflag);}else{memset(name,0,100);strcpy(name,w);strcat(name,"/");strcat(name,pdr->d_name);do_ls(name,pdr->d_name,lflag);}}closedir(dir);}else{do_ls(w,w,lflag);}return 0;}int main(int argc,char **argv){int aflag =0;int lflag =0;char c;int i;while((c = getopt(argc,argv,"al"))!=-1){switch(c){case 'a':aflag =1;break;case 'l':lflag =1;break;default:break;}}if(argc == optind ){ls_prepare("./",aflag,lflag);}else{for(i=optind;i<argc;i++)ls_prepare(argv[i],aflag,lflag);}printf("\n");return 0;}调试编译串行口通信程序p6.5.c运行过程由于权限问题,我们在root用户下运行程序图表24 使用./mytrunk不带参数运行图表25使用./mytrunk /dev/ttyS0 0带参数运行Linux 第三次上机(运行环境RedHat,CentOS)创建一个系统监听守护进程,一旦接收到其他进程发来的信号,马上给出报告运行过程图表26首先运行守护进程之后查看当前进程图表27可以发现守护进程-jincheng在后台运行,且PPID=1,PID=4085图表28可以发现守护进程向test.txt发送了start图表29向守护进程发送终止信号,终止守护进程图表30可以发现后台运行的守护进程没了图表31可以发现守护进程又向test.txt发送了end图表32具体查看test.txt图表33具体查看test.txt的内容源代码#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <signal.h>#include <fcntl.h>#include <syslog.h>/* Daemonize myself. */int fd1;void sigintHandler(int sig){if(sig==SIGTERM){write(fd1,"end\n",5);exit(0);}}int daemon (int nochdir, int noclose){pid_t pid;pid = fork ();/* In case of fork is error. */if (pid < 0){perror ("fork");return -1;}/* In case of this is parent process. */if (pid != 0)exit (0);/* Become session leader and get pid. */ pid = setsid();if (pid < -1){perror ("setsid");return -1;}/* Change directory to root. */if (! nochdir)chdir ("/");/* File descriptor close. */if (! noclose){int fd;fd = open ("/dev/null", O_RDWR, 0);if (fd != -1){dup2 (fd, STDIN_FILENO);dup2 (fd, STDOUT_FILENO);dup2 (fd, STDERR_FILENO);if (fd > 2)close (fd);}}umask (0027);return 0;}int main(void){fd1=open("test.txt",O_RDWR | O_TRUNC);write(fd1,"start\n",7);daemon(0,0);signal(SIGTERM,sigintHandler);sleep(1000);return 0;}分别利用本地socket套接字和INTENET套接字实现进程间文件传输本地socket套接字运行过程图表34使用./server1运行服务器,显示服务器等待状态图表35当在另外一个终端运行客户端程序时,服务器显示客户连接,并要求输入传输文件名称图表36当服务器输入文件名称server1.c后客户端显示接收信息,不过接收到的文件重定向到test.txt中图表37 server1.c的内容图表38 客户端接收到显示在test.txt的内容,和server1.c的内容比较,完全一致本地socket套接字服务器server1.c源代码#include<sys/types.h>#include<sys/socket.h>#include<stdio.h>#include<sys/un.h>#include<unistd.h>#include<stdlib.h>#include<sys/stat.h>#include<fcntl.h>int main(){int filefd,n; ////////////////char file[100],buf[1024]; ////////////////int server_sockfd,client_sockfd;int server_len,client_len;struct sockaddr_un server_address;struct sockaddr_un client_address;unlink("server_socket");server_sockfd =socket(AF_UNIX,SOCK_STREAM,0);server_address.sun_family =AF_UNIX;strcpy(server_address.sun_path,"server_socket");server_len =sizeof(server_address);bind(server_sockfd,(struct sockaddr *)&server_address,server_len);listen(server_sockfd,5);while(1){printf("server waiting\n");client_len =sizeof(client_address);client_sockfd=accept(server_sockfd,(struct sockaddr *)&client_address,&client_len);if(client_sockfd!=-1){printf("you have a client ,please put the filename to transport!!\n");scanf("%s",file);if((filefd=open(file,O_RDWR))<0){perror("can't find the file");exit(1);}printf("filefd= %d\n",filefd);printf("the file is transported ,please wait...\n");lseek(filefd,0L,0);//每次接受客户机连接,应将用于读的源文件指针移到文件头write(client_sockfd,file,sizeof(file));//传送文件名if((n=read(filefd,buf,sizeof(buf)))>0){write(client_sockfd,buf,n);}printf("you have transport %d bytes and it is end!!\n",n);close(client_sockfd);}close(filefd);}}本地socket套接字客户端client1.c源代码#include<sys/types.h>#include<sys/socket.h>#include<stdio.h>#include<sys/un.h>#include<unistd.h>#include<stdlib.h>#include<sys/stat.h>#include<fcntl.h>int main(){int filefd,n,oldfilefd; /////////////////char file[100],buf[1024];int sockfd;int len;struct sockaddr_un address;int result;sockfd =socket(AF_UNIX, SOCK_STREAM,0);address.sun_family =AF_UNIX;strcpy(address.sun_path,"server_socket");len=sizeof(address);result=connect(sockfd,(struct sockaddr *)&address,len);if(result == -1){perror("oops:client1");exit(1);}if(result!= -1){oldfilefd=open("test.txt",O_RDWR);filefd=dup(oldfilefd);read(sockfd,file,sizeof(file));printf("the filename you receive is:%s\n",file);if((n=read(sockfd,buf,sizeof(buf)))>0){write(filefd,buf,n);}printf("you have received a file which is %d bytes,but the file's context cover the test.txt,so please check into test.txt!!\n",n);close(sockfd);}close(filefd);exit(0);}INTENET套接字运行过程图表39使用./server2运行服务器,显示服务器等待状态图表40当在另外一个终端运行客户端程序时,服务器显示客户连接,并要求输入传输文件名称图表41当服务器输入文件名称server2.c后客户端显示接收信息,不过接收到的文件重定向到test.txt中图表42 server2.c的内容图表43客户端接收到显示在test.txt的内容,和server2.c的内容比较,完全一致INTENET套接字服务器server2.c源代码#include<sys/types.h>#include<sys/socket.h>#include<stdio.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>#include<stdlib.h>#include<sys/stat.h>#include<fcntl.h>int main(){int filefd,n;////////////////char file[100],buf[4096];///////////////////int server_sockfd,client_sockfd;int server_len,client_len;struct sockaddr_in server_address;struct sockaddr_in client_address;server_sockfd =socket(AF_INET,SOCK_STREAM,0);server_address.sin_family=AF_INET;server_address.sin_addr.s_addr=inet_addr("127.0.0.1");server_address.sin_port =9734;server_len=sizeof(server_address);bind(server_sockfd,(struct sockaddr *)&server_address,server_len);listen(server_sockfd,5);while(1){printf("server waiting\n");client_len =sizeof(client_address);client_sockfd=accept(server_sockfd,(struct sockaddr *)&client_address,&client_len);if(client_sockfd!=-1){printf("you have a client ,please put the filename to transport!!\n");scanf("%s",file);if((filefd=open(file,O_RDWR))<0){perror("can't find the file");exit(1);}printf("filefd= %d\n",filefd);printf("the file is transported ,please wait...\n");lseek(filefd,0L,0);//每次接受客户机连接,应将用于读的源>文件指针移到文件头write(client_sockfd,file,sizeof(file));//传送文件名if((n=read(filefd,buf,sizeof(buf)))>0){write(client_sockfd,buf,n);}printf("you have transport %d bytes and it is end!!\n",n);close(client_sockfd);}close(filefd);}}INTENET套接字客户端client2.c源代码#include<sys/types.h>#include<sys/socket.h>#include<stdio.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>#include<stdlib.h>#include<sys/stat.h>#include<fcntl.h>int main(){int filefd,n,oldfilefd;////////////////////char file[100],buf[4096];int sockfd;int len;struct sockaddr_in address;int result;sockfd =socket(AF_INET,SOCK_STREAM,0);address.sin_family =AF_INET;address.sin_addr.s_addr =inet_addr("127.0.0.1");address.sin_port =9734;len =sizeof(address);result=connect(sockfd,(struct sockaddr *)&address,len);if(result == -1){perror("oops:client2");exit(1);}if(result!=-1){oldfilefd=open("test.txt",O_RDWR);filefd=dup(oldfilefd);read(sockfd,file,sizeof(file));printf("the filename you receive is:%s\n",file);if((n=read(sockfd,buf,sizeof(buf)))>0){write(filefd,buf,n);}printf("you have received a file which is %d bytes,but the file's context cover the test.txt,so please check into test.txt!!\n",n);close(sockfd);}close(filefd);exit(0);}感谢与收获通过这几次上机实习,使我更加扎实的掌握了有关Linux C编程方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。