Linux课程大作业
Linux期末大作业
简单的IRC聊天程序—— Linux课程期末实验第一章概述【实验目的】综合应用Linux系统下的网络编程技术,使用C语言,结合软件工程思想,设计并实现一个简单的IRC聊天程序,具有服务器端和客户端,可以是终端字符界面,支持用户管理,用户名/密码注册和登录,支持版面聊天,用户可以选择进入某个版面,版面发言大家可以看到,同时支持点对点私聊,可以选择某个用户进行私聊。
从而熟悉在Linux系统所提供的网络通信接口及该系统下的编程思想,深入对计算机系统的理解,并切实提高软件设计开发的能力。
【实验原理】一个简单的聊天室,其功能是当这个聊天室中的任何一个用户输入一段字符后,室内的其他用户都可以看到这句话。
据此,聊天程序分为客户端和服务器端。
客户端对应每一个参加聊天的用户,完成从终端上输入采集并传递到服务器端和从服务器端接收信息输出显示的功能。
总体介绍该结构如下。
首先是初始化服务器,使服务器进入监听状态:sockfd = socket(AF_INET, SOCK_STREAM, 0);// 首先建立一个socket,族为AF_INET,类型为SOCK_STREAM。
// AF_INET = ARPA Internet protocols,即使用TCP/IP协议族。
// SOCK_STREAM类型提供了顺序的,可靠的,基于字节流的全双工连接。
// 由于该协议族中只有一个协议,因此第三个参数为0。
bind(sockfd, (struct sockaddr *)&servaddr,sizeof(serv_addr));// 再将这个socket与某个地址进行绑定。
// serv_addr 包括sin_family=AF_INET 协议族同socket。
// sin_addr.s_addr = htonl(INADDR_ANY)服务器所接收的所有其他地址// 请求建立的连接。
// sin_port = htons(SERV_TCP_PORT) 服务器所监听的端口。
《Linux系统管理与服务配置》大作业
《Linux系统管理与服务配置》大作业背景描述无论从硬件还是从软件上来讲,Linux操作系统都已经是一个非常成熟的操作系统,由于其免费、开源的特性使得Linux对Windows的威胁也越来越大。
在服务器和嵌入式系统市场上,Linux已经是主流的操作系统之一,现在Linux正稳步拓展桌面操作系统市场。
Linux网络服务功能非常强大,在Linux上可以部署Web Server、DNS Server、Mail Server、DB Server、FTP server等等,但是也由此产生了很多网络问题。
据统计,在Linux系统下产生的故障有60%来自网络方面,40%来自系统本身,课件熟练解决LInux下故障,对于熟练掌握Linux 系统有着巨大的帮助,请学生列出Linux系统下常见的故障与处理方法。
要求:1.要求从网络硬件传输故障(网线、路由器、交换机等)、网卡故障、网络服务故障等方面进行展开。
2.字数不少于1500字。
作业格式要求:(1)以A4纸张作(2)论文格式如下:论文标题用小二号字,宋体,加粗1 一级标题,用小三号黑体,加粗,并留出上下间距为:段前0.5行,段后0.5行)1.1 ××××××(作为正文2级标题,用小4号黑体,加粗)×××××××××(小4号宋体)××××××…………1.1.1 ××××(作为正文3级标题,用小4号黑体,不加粗)×××××××××(小4号宋体,行距1.5倍)××××××××教师姓名:李茂林联系方式:邮箱:截止日期:5月27日前将完成的作业发至指定邮箱。
linux大作业
仲恺农业工程学院Linux课程大作业报告院(系):信息科学与技术学院专业班级:计算机学号:姓名:目录1 简述题目 (1)2 shell程序设计 (5)2.1 程序设计要求 (5)2.2 程序设计内容 (5)1 (5)2 (10)3 (11)5 (13)6 (16)3 文件和目录部分 (17)3.1 程序设计要求 (17)3.2 程序设计内容 (17)2 (17)3 (17)6 (18)8 (19)9 (19)4 进程和信号部分 (20)4.1 程序设计要求 (20)4.2 程序设计内容 (20)1 (20)2 (21)8 (22)9 (23)10 (24)5 网络编程部分 (25)5.1 程序设计要求 (25)5.2 程序设计内容 (25)2 (25)3 (26)1 简述题目1、makefile文件的作用是什么,makefile文件中有一种变量,其值是根据具体的规则来确定的,称为自动变量,其中代表所有依赖文件列表的是哪个;举例说明make命令的工作流程。
答:(1)makefile的作用就是使得源文件修改的时候,能很快地自动编译和链接所有修改过的文件。
Make工具可将编译和链接的步骤按一定的规则写入文本文件。
(2)是指冒号后面的那一列(3)举例:现在有lib.h,lib.c,mod.c,app.h,app.c,main.c文件,编译链接成main.o程序示例:#script5-2_makefileAppexam:main.o app.o mod.o lib.ogcc –o apexam main.o app.o mod.o lib.omain.o:main.c app.hgcc –c main.capp.o:app.c app.hgcc –c app.cmod.o:mod.cgcc –c mod.clib.o:lib.c lib.hgcc –c lib.cclean:rm –f *.o2、什么是进程,用fork()创建一个子进程时,系统会做什么工作。
linux程序设计大作业
linux程序设计大作业在计算机科学与技术领域,Linux操作系统一直以其稳定性、安全性和开放性而受到广泛关注和应用。
作为一名计算机专业的学生,我有幸参与了一门名为“Linux程序设计”的课程,并完成了这门课程的大作业。
这门课程的大作业要求我们设计并实现一个基于Linux操作系统的应用程序。
我们可以自由选择应用程序的功能和领域,但需要保证程序的稳定性和可扩展性。
经过深思熟虑,我决定设计一个名为“Linux 文件管理器”的应用程序。
Linux文件管理器是一个用于管理文件和目录的工具,它可以帮助用户方便地浏览、复制、移动、删除和重命名文件和目录。
在设计这个应用程序时,我考虑到了用户的使用习惯和需求,力求提供简洁、直观和高效的操作界面。
首先,我使用C语言编写了程序的核心功能。
通过调用Linux系统提供的文件操作函数,我实现了文件和目录的创建、打开、读写、关闭等基本操作。
同时,我还实现了文件和目录的复制、移动、删除和重命名功能,以及文件和目录的属性查看和修改功能。
这些功能的实现基于Linux系统的文件系统结构和权限管理机制,保证了程序的安全性和可靠性。
其次,我设计了一个简洁而直观的用户界面。
通过使用Linux系统提供的图形界面库GTK+,我创建了一个包含菜单栏、工具栏和文件列表的主窗口。
用户可以通过菜单栏和工具栏选择不同的操作,而文件列表则显示当前目录下的文件和目录。
用户可以通过鼠标点击和键盘操作来选择文件和目录,并进行相应的操作。
同时,我还为用户提供了快捷键和上下文菜单等功能,以提高操作的效率和便捷性。
最后,我进行了大量的测试和优化工作,确保程序的稳定性和性能。
我编写了各种测试用例,模拟了不同的使用场景和操作方式,以验证程序的正确性和健壮性。
同时,我还对程序进行了性能优化,减少了不必要的系统调用和资源占用,提高了程序的运行效率和响应速度。
通过这个大作业的设计与实现,我不仅深入理解了Linux操作系统的原理和机制,还提高了自己的编程能力和问题解决能力。
Linux-习题(1)
大作业 ( 一 )一:填空题1:Linux中除图形登录外还可以使用命令提示行进行登录。
2:如果要访问网络中的另一台电脑,可以通过命令方式进行登录。
3: shell 是一个类似于 dos 的命令行解释工具。
4:Shell的概念最初是在__unix____操作系统中形成和得到广泛应用的。
5:Linux中的Shell有多种类型,其中最常用的几种是 Bourne Shell sh 、C Shell(csh)和Korn Shell(ksh).6:Bourne Shell简称 sh 。
7:创建名为p的用户可以通过 useradd p 命令进行创建。
8:为名为p的用户创建密码可以通过 passwd p 命令进行创建。
9:删除名为p的用户可以通过 userdel p 命令进行。
10:mv命令用来移动文件,cp命令用来复制文件。
11:当在Shell环境中启动vi编辑器时,可以使用 vi 命令进行启动。
12:当在vi编辑器中输入文字时,需要按键盘中的 I 键才可以进行输入。
13:在命名文件时不可以使用/、:、 \、 *、?、 % 、 >、|等符号。
14:root用户账户的基本信息保存在 /root/. 文件中。
15:在账户记录文件“root: x: 0: 0: root: /root: bin/bash”代码中的“bin/bash”表示 Bourne Again shell 。
16:当其他用户登录后要切换到root用户账户时,可以通过 su 命令进行。
17:当需要修改root用户账户时,需要在用户设置窗口中选择新建选项后才可以进行。
18:除了root用户账户外,还有lp、mail、uucp、 news 和 halt 这些默认的系统账户。
19:在Linux中权限最大的组是 root组,该组具备Linux操作的所有权限。
20:在Linux中可以使用 fdisk 或 df 命令查看磁盘分区情况。
21:当需要使用kill命令关闭编号是2547的程序时,其书写方式是 kill-9 2547 。
linux大作业
学号:姓名:班级:
大作业任务要求:
一、Shell编程要求:写出两个Shell程序,每个程序不少于十五行;说明程序主要功能;每行给出注释。
二、Linux操作系统配置实例要求:查阅资料结合实际使用情况,写出Linux操作系统使用中的一个配置的详细过程;具体配置目标不限(自选)。
三、Linux操作系统应用开发实例要求:编写Linux下的一个应用程序。
开发语言和工具不限;给出源代码和运行结果。
关键代码部分要给出注释。
四、Linux内核源码解读
要求:任选Linux内核源码,写出该模块运行过程;在每行内核源码后注释说明;解读源码不少于三十行。
收到的大作业内容不能雷同
Linux操作系统实验报告
实验1:Linux基本命令使用
实验目的:了解Linux字符界面的操作特点,验证Linux命令的用途,掌握Linux的基本操作;学习使用vi编辑器建立、编辑、显示以及加工处理文本文件
实验内容:
实验总结
实验2:shell编程
实验目的:熟悉shell环境,了解shell脚本编程的基本程序结构如循环结构,条件判断等,能进行简单shell脚本的程序设计,掌握shell程序的运行方法。
实验内容:
实验总结
实验3:Linux C编程
实验目的:掌握gcc的使用,熟悉makefile的编写;熟练掌握fork、exec、wait、waitip 等进程管理系统调用的使用
实验内容:
实验总结。
LINUX题库及参考答案
LINUX(UBUNTU)大作业Linux第一次作业一、选择题1、下列哪种说法是错误的( C ) 。
A.操作系统是裸机之上的第一层软件B.操作系统控制和管理全部的计算机资源C.Microsoft Office 是操作系统的一种D.操作系统应为用户提供便捷的操作界面2、以下说法中正确的是(C )。
A.Windows 8是单用户单任务操作系统B.MS-DOS是多用户多任务操作系统C.Linux是多用户多任务操作系统D.Unix是单用户多任务操作系统3、下列哪种说法是错误的( C ) 。
A.操作系统可用于控制和管理计算机系统资源B.操作系统可用于对各类任务进行调度C.操作系统可用于完成源代码编译D.操作系统应为用户提供便捷的操作界面4、Linux中系统超级管理员的帐户是(B )。
A.adminB.rootC.administratorD.superuser5、Linux系统是一个(D )的操作系统。
A.单用户、单任务B.单用户、多任务C.多用户、单任务D.多用户、多任务6、Linux是一个功能强大的操作系统,同时它是一个(C )。
A、商业软件B、共享软件C、自由软件D、专利软件7、自由软件的含义是(B )。
A.用户不需要付费B.软件可以自由修改和发布C.只有软件作者才能向用户收费D.软件发行商不能向用户收费8. 超级用户登录后的操作提示符是( B ) 。
A、$B、#C、&D、@9、在某终端显示信息为:[user@localhost ~]$,其中“~”表示(D )。
A.当前目录B.名为~的主机C.系统根目录/D.用户user的家目录10、关于Linux内核版本的说法,以下错误的是(C )。
A.表示为主版本号.次版本号.修正号B.1.2.3表示稳定的发行版C.1.3.3表示稳定的发行版D.2.2.5表示对内核2.2的第5次修正二、简答题1、请简述Linux操作系统有什么优点?答:Linux的主要优点包括:•提供了先进的网络支持:内置TCP/IP协议;•真正意义上的多任务、多用户作系统;•与UNIX系统在源代码级兼容,符合IEEE POSIX标准;•支持数十种文件系统格式;•开放源代码,用户可以自己对系统进行改进;•采用先进的内存管理机制,更加有效地利用物理内存。
LINUX大作业
Linux系统编程大作业一、实验题目实现一个FTP服务系统二、实验目的通过该实验,掌握Linux环境下的多线程/进程编程技术、文件操作、用户权限管理、进程间通信技术三、实验要求基于客户/服务器交互模式,采用TCP/IP通信协议,实现一个支持远程文件传输的客户/服务器软件,支持文件的上传和下载。
其中客户端软件命名为myftp,服务器软件命名为ftpserver,具体功能需求如下:(一)服务器1)启动方式。
执行ftpserver [IP地址] port启动FTP服务。
其中IP地址为可选项。
若不提供服务器IP地址,FTP服务将自动绑定到本地网络的IP。
2)用户认证与权限管理。
为FTP客户提供基于用户名/密码认证的服务模式,只有授权用户才可以访问FTP服务。
与此同时,对文件/目录的访问,也实现基于授权的访问机制,即只有授权用户才可以对指定文件进行读写操作。
用户只有在具备写权限操作的目录上才能上传文件。
(可直接集成Linux服务器系统的用户管理)3)并行执行功能。
为提高系统性能,服务器将采用多进程/线程技术响应客户请求。
当客户通过身份验证后,服务器将创建一个新的进程/线程来响应用户请求,提供服务。
4)服务器支持的客户文件操作。
登录成功后,客户可在服务器执行以下操作:创建/删除目录(mkdir/rmdir)、显示当前路径(pwd)、切换目录(cd)、查看当前目录下的所有文件(ls)、上传单个/多个文件(put/mput)、下载单个/多个文件(get/mget)。
5)服务传输模式。
支持二进制(默认)及ASCII传输模式。
用户可通过执行binary/ascii 命令切换传输模式。
6)站点计数与用户管理功能。
统计服务器站点的当前活动用户数及自运行以来的访客总数。
系统管理员可在服务器软件运行终端窗口执行以下命令:A)count current:当前活动用户数B)c ount all:显示系统访客总数C)l ist:显示当前在线的所有用户的用户名D)kill username:强制删除某个用户。
linux系统基础大作业
一、使用命令行创建用户,以自己的班级学号姓名命名(阐述命令及参数的用法,粘贴运行结果截图,共1题,每题5分,共5分)。
useradd命令可以创建新用户或者更新默认新用户的信息,一般格式为:useradd [选项] 用户名。
建立一个新用户之后还要使用passwd命令为新用户设置密码。
二、以新创建的用户登录,设计一个shell程序脚本,名称为array.sh,利用数组形式求出斐波那契数列前20项及总和,完成以下操作(共4题,第1题20分,第2,3,4题每题5分,共35分):(1)画出程序流程图,书写源代码。
(2)显示脚本的全部内容,输出到文档中,文档以自己的班级学号姓名命名(阐述使用的命令及参数功能,粘贴运行截图。
cat:连接文件并打印到标准输出设备上命令>>文件:把命令的输出附加到指定文件的后面,该文件原有内容不被破坏(3)使用三种方式运行脚本,结果添加到文档中,文档以自己的班级学号姓名命名(阐述三种方式用法及区别,粘贴运行截图)。
bash 脚本名 [参数]. 脚本名 [参数]:以当前shell执行一个shell脚本chmod a+x 脚本名 :利用chmod将shell脚本设置为对所有用户都有执行权限,然后用路径名称方式 ./脚本名执行当前工作目录下的array.sh文件(4)将文档进行压缩,生成压缩文件(阐述使用的压缩命令,粘贴运行截图)。
gizp [选项] [压缩文件的名称]:被压缩的文件扩展名为.gz,并且保持原有的存取权限,访问与修改时间。
如果不指定文件,或者文件名为”-”,则将标准输入压缩为标准输出,gizp命令只压缩普通文件,他忽略符号链接文件。
二、配置NFS服务器端和NFS客户端,服务器端共享shell编程中得到的压缩文件,客户端查看共享文件。
要求写出详细配置步骤,粘贴运行截图,对结果进行分析。
(共1题,每题30分,共30分)主要实验步骤服务器端:1.确定vmware station中存在两个linux系统:2.使用ifconfig查看这两个系统的ip地址,如果提示没有ifconfig这个命令,则使用yum install ifconfig安装:192.168.43.148可以充当NFS服务器,192.168.43.47可以作为客户端(192.168.43.148也可以作为客户端,192.168.43.47为服务器端)。
LINUX程序设计期末大作业
LINUX程序设计期末大作业1、期末大作业的目的《Linux程序设计》大作业是在完成理论课程学习之后,通过大作业的方式对学生进行综合实践考核,在学生掌握Linux的基本编程知识及常用的操作命令基础上,提高学生对所学知识的应用能力,特别是:煅炼学生搜集有关Linux资料,在资料文档的帮助下,运用Linux的基本知识及常用的操作命令来解决问题的能力。
2、大作业的基本要求要求能完成给定的编程任务,并写出相应的大作业总结报告2.1、根据合理的进度安排,按照程序的流程及方法,踏实地完成期末大作业的任务安排。
2.2、按照任务要求,完成各个功能模块的功能划分和程序编写,调试代码并运行。
2.3、按要求撰写大作业报告。
3、大作业的主要内容3.1、作业题目1)平时成绩(30分)课堂点名占6分,每个实验报告占8分,本学期共3个实验报告,共24分;2)、shell编程(20分)要求:写出2个Shell程序,每个不少于15行(如实现自己模拟shell下的cd、ls指令等),说明程序主要功能,每行给出注释;3)、多选一(50分)a)设计并实现一个简单的聊天室程序,可以是终端字符界面,支持用户管理,用户名/密码注册和登录,客户端登陆到服务器聊天后,可以在聊天室内与其他用户交流(这个聊天室中的任何一个用户输入一段字符后,室内的其他用户都可以看到这句话)。
据此,聊天程序分为客户端和服务器端。
客户端对应每一个参加聊天的用户,完成从终端上输入采集并传递到服务器端和从服务器端接收信息输出显示的功能。
b) 很多公共服务场所都有取号机,用来给用户进行编号,如医院,银行等。
试编写一个socket客户机/服务器程序,用来模拟取号机。
实现的功能如下:(1)、客户机连接服务器(2)、服务器收到客户机连接请求后,返回服务选项给客户机,包括:(a) 购买;(b) 维修;(c) 其他;(3)、客户机接收到服务选项信息,在屏幕打印,并提示用户按服务编号进行选择(4)、用户输入自己想选择的服务编号,如果合法,客户机将客户的选择传送给服务器,如果不合法,则打印错误提示信息要求用户重新输入;(5)、服务器为该服务请求分配一个新的流水号,将时间、服务项目、流水号传递给客户机,并将此次请求的所有信息存入文件备案(6)、客户机收到服务器返回的信息后在屏幕输出,告知用户有关此次服务请求的相关内容(7)、客户机退出,服务器继续等待新请求3.2报告要求封面(见附件一)摘要(300~500字,单独一页)目录(自动生成)报告正文:大作业目的及要求(上面的1、2)作业题目1源代码运行截图作业题目2,源代码运行截图……小结(设计中的优点、不足及改进)参考文献大作业评分表(见附件二)注:报告正文小四号字,1.25倍行距,双面打印,16周周四提交报告打印版和电子版,报告不得雷同。
linux大作业
Linux大作业课程:嵌入式linux操作系统一、课程表调试结果:xyz@ubuntu:~$ vi hh.cxyz@ubuntu:~$ gcc hh.c -o hhxyz@ubuntu:~$ gdb hhGNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04Copyright (C) 2012 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later </licenses/gpl.html>; This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details.This GDB was configured as "i686-linux-gnu".For bug reporting instructions, please see:</gdb-linaro/>;...Reading symbols from /home/xyz/hh...(no debugging symbols found)...done. (gdb) break mainBreakpoint 1 at 0x80484c8(gdb) nThe program is not being run.(gdb) runStarting program: /home/xyz/hhBreakpoint 1, 0x080484c8 in main ()(gdb) nSingle stepping until exit from function main,which has no line number information.说明:课程:教师:数学张老师语文段老师计算机王老师化学朱老师英语李老师政治王老师物理赵老师n英语语文化学化学语文政治计算机英语语文物理化学政治物理物理物理以上是第1周政治物理计算机语文数学政治物理语文化学物理语文数学物理化学英语以上是第2周语文语文政治计算机计算机政治数学政治计算机语文计算机化学政治语文化学以上是第3周计算机政治数学政治英语政治语文语文政治化学数学物理语文物理化学以上是第4周政治政治计算机化学物理英语语文物理数学计算机物理数学化学计算机数学以上是第5周英语英语化学化学数学政治物理数学物理英语化学英语英语计算机英语以上是第6周政治数学数学政治语文物理计算机语文英语语文语文化学语文英语政治以上是第7周物理数学数学计算机化学物理数学计算机物理英语数学数学计算机英语计算机以上是第8周英语数学数学英语政治物理英语政治数学语文物理物理计算机物理英语以上是第9周政治政治计算机化学物理政治计算机英语数学物理计算机数学物理英语计算机以上是第10周物理语文计算机英语化学数学英语政治英语计算机物理化学计算机物理数学以上是第11周英语英语英语物理语文语文计算机语文政治计算机语文数学语文政治计算机以上是第12周化学化学化学英语数学数学计算机计算机政治物理化学化学语文化学数学以上是第13周物理政治化学语文计算机计算机计算机英语化学语文英语计算机语文政治语文以上是第14周0x0014c4d3 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6 (gdb) nSingle stepping until exit from function __libc_start_main,which has no line number information.[Inferior 1 (process 2268) exited with code 0322](gdb)二、九九乘法表调试结果:1、没调试之前出错:xyz@ubuntu:~$ vi aa.cxyz@ubuntu:~$ gcc aa.c -o aaaa.c: 在函数‘main’中:aa.c:19:10: 错误:被调用的对象‘getch()’不是一个函数aa.c:23:1: 错误:expected ‘;’before ‘}’token2、去掉源程序getch()之后能正确运行出九九乘法表的结果。
Linux大作业(计算机14-3)
Linux实用操作系统大作业(上机实践):(要求将实现过程截屏并配有文字说明)1、以root身份登录Linux系统,添加两个用户账户(一个账号名为:xxxy,另一个账号名为:你名字的拼音缩写),分别修改登录密码,然后在tty2和tty3上登录。
显示在线用户登录情况,然后将登陆情况保存在文件中,让两个用户互发消息。
useradd xxxy;passwd xxxyuseradd hhypasswd xxxyctrl+alt+f2;ctrl+alt+f3;who |cat>lscat $mail username$mailwho/who am i2、进入root的主目录,显示该目录中的所有内容(包含隐含文件),并显示当前目录中的所有文件的详细信息,并说出每一列代表的含义。
统计该目录中所有的文件数目,并对该目录中的文件按大小进行排序(升序和降序)ls -lls -l|sort -hk 53、Linux系统有几种基本文件类型?在系统中找出每一种文件类型的文件,并显示该文件的位置。
1普通文件2目录文件3字符设备或块设备文件4套接口文件5符号链接文件4、创建一个目录树,进入目录/xju/xxxy/jsj143,使用cat建立小型文本文件ex1和ex2,内容自定,查看文件ex1和ex2文件内容,并显示行号。
把ex1和ex2合并成一个新文件ex。
mkdir /xju/xxxy/jsj143 -p5、创建一个目录树/cmd/cbin和/cmd/dbin,把/bin下以c开头的文件复制到/cmd/cbin,把/bin下以d开头的文件复制到下/cmd/dbin。
修改目录/cmd/cbin的名字为/cmd/bin,并删除/cmd/dbin目录。
然后,复制/cmd目录到/xju/xxxy/jsj143目录下。
6、进入目录/xju/xxxy/jsj143,查看文件ex1,ex2的属性,注意文件的属主和属组。
把文件ex1的属主和属组分别改成xxxy,把文件ex2的属主和属组分别改成你的账户。
Linux大作业 (2)
目录一、Shell编程 (2)1.1判断是否为自己的名字 (2)1.2 U盘的卸载与挂载 (2)二、Linux操作系统配置实例 (4)2.1 NFS服务配置 (4)2.1.1 服务器端 (4)2.1.2 客户端 (5)2.2 Samba服务配置 (7)2.2.1Samba服务器配置 (7)2.2.2 配置客户端,测试Samba服务器 (8)2.2.4 为一个组配置Samba共享 (8)2.2.5 关于Samba服务器的其它命令 (9)三、Linux操作系统应用开发实例 (9)3.1 计算学生的总成绩和平均成绩 (9)3.1.1 功能 (9)3.1.2 代码 (10)四、Linux内核源码解读 (11)4.1 sys.c 程序 (11)4.1.1 功能描述 (11)4.1.2 代码注释 (11)4.2 sys.h文件 (12)4.2.1 功能描述 (12)4.2.2 代码注释 (12)一、Shell编程要求:写出两个Shell程序,每个程序不少于十五行;说明程序主要功能;每行给出注释。
1.1判断是否为自己的名字#!/bin/shyes_or_no() { //定义一个判断函数echo “Is your name $* ?” //输出提示*是否为你的名字while true //while do 循环doecho -n “Enter yes or no: “ //输出提示回答是或者不是read x //读取所输入的数据case “$x” in//case语法选择y | yes ) return 0;; //输入y 或者yes 返回n | no ) return 1;; //输入n 或者no 返回x的值*) echo “Answer yes or no”;; //如果输入的不是以上几项就提示esac done} echo “Original parameters are $*” //输出if yes_or_nothen echo “Hi $1, nice name” //输出经过判断的名字,是你的名字else echo “Never mind” //不是你的名字fiexit 0 //退出1.2 U盘的卸载与挂载#!/bin/sh#mountusb.shquit(){clear //退出程序函数echo“*******************************************************************”echo“*** thank you to use,Good bye! ****”exit 0}mountusb(){ //加载U盘函数clearmkdir /mnt/usb //在/mnt下创建usb目录/sbin/fdisk –l | grep /dev/sd //查看U盘设备名称echo –e “Please Enter the device name of usb as shown above:\c”read PARAMETER mount /dev/$PARAMETER /mnt/usb}umountusb()//卸载U盘函数{clearls -la /mnt/usb}display() //显示U盘信息函数{clearumount /mnt/usb}cpdisktousb() //拷贝硬盘文件到U盘函数{clearecho –e “Please Enter the filename to be Copide (under Current directory):\c”read FILEecho “Copying,please wait!...”cp $FILE /mnt/usb}cpusbtodisk() //拷贝U盘函数到硬盘文件{clearecho -e “Please Enter the filename to be Copide in USB:\c”read FILEecho “Copying ,Please wait!...”cp /mnt/usb/$FILE . //点(.)表示当前路径}clearwhile truedoecho“=====================================================================”echo “*** LINUX USB MANAGE PROGRAM ***” echo “ 1-MOUNT USB ”echo “ 2-UNMOUNT USB ”echo “ 3-DISPLAY USB INFORMA TION ”echo “ 4-COPY FILE IN DISK TO USB ”echo “ 5-COPY FILE IN USB TO DISK ”echo “ 0-EXIT ”echo“=====================================================================”echo –e “Please Enter a Choice(0-5):\c”read CHOICE //读取输入数据case $CHOICE in //case条件跳转1)mountusb ;;2)unmountusb ;;3)display ;;4)cpdisktousb ;;5)cpusbtodisk ;;0)quit ;;*) e cho “Invalid Choice!Corrent Choice is (0-5)”sleep 4clear;;esacdone二、Linux操作系统配置实例要求:查阅资料结合实际使用情况,写出Linux操作系统使用中的一个配置的详细过程;具体配置目标不限(自选)。
Linux大作业
目录1. Linux 的概述 (1)2.学习Linux操作系统的目的和要求 (1)3.基本网络命令的使用 (2)3.1 ping 命令 (2)3.2 ifconfig命令 (2)3.3 netstat命令 (3)4.Linux系统的管理与配置 (4)4.1 网络文件配置 (4)4.3 NFS 文件远程挂载 (6)4.3.1配置NFS服务器 (6)4.3.2 实现远程挂载 (6)4.4 Samba (7)4.4.1 Samba服务器的配置 (7)4.4.2 Samba共享 (7)5.Shell编程 (8)5.1 编写Shell脚本程序 (8)5.2 编写Shell弹出式菜单程序 (9)5.3 编写乘法表 (10)6.gcc 编程的使用 (11)6.1 用递归求阶乘 (11)6.2编写累加程序 (12)6.3 求奇数程序 (14)总结 (15)参考文献: (15)Linux 基础与应用前言Linux操作系统是多用户、多任务的操作系统,具有强大的可移植性,良好地编程环境和强大的网络功能。
Linux 操作系统是一个免费的操作系统,Linux 的内核是Linux的主体,内核负责控制硬件设备、文件系统和程序任务调度等工作,但不包括用户应用程序。
Linux操作系统以它的高效性和灵活性著称,Linux 模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力,所以得到很广泛的应用。
我们这学期学习的Linux是RED HAT Linux系统,学习Linux的常用命令、Linux的常用工具、Linux系统管理和配置、Linux常用应用程序、Linux下的Shell编程、gcc编程等Linux系统下的操作。
Linux作为一个日渐流行的多用户、多任务操作系统,有着开放、稳定、安全、费用低廉等许多其它操作系统无可比拟的优势,具有越来越广泛的应用前景。
在网络技术迅速发展的今天,网络操作系统是网络中的核心技术,所以本课程是计算机科学与技术专业学生的一门必修专业课。
深圳大学linux课程大作业,嘻嘻你懂的
深圳大学实验报告课程名称:Linux操作系统实验项目名称:Linux上C程序编译,调试和工程文件管理学院:计算机与软件学院专业:软件工程指导教师:冯禹洪报告人:不好说学号:班级:1班实验时间: 1实验报告提交时间: 1教务处制一、实验目标:熟悉Linux上C程序设计环境,包括以下内容:1. 联机帮助man命令2. 编译工具gcc的使用3. 熟悉使用gdb来调试程序4. 熟悉C工程文件的管理工具makefile二、实验环境与工件湖边Linux实验室Fedora 13三、实验内容与步骤1.动态库函数可以在多个应用程序之间共享,可以减少应用程序文件的容量和应用程序的装载时间。
因此,熟悉构建动态库可以提高软件的编写质量。
请跟随以下步骤构建动态库message,并用其编写程序、编译和运行。
(40分)1.1编写源程序message.c(见图1)和main.c(见图2)图1. message.c源程序图2.main.c源程序1.2用以下命令对message.c进行编译,其中,“-fPIC”选项是告诉gcc产生的代码不要包含对函数和变量具体内存位置的引用。
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
1.3以上命令将获得目标文件message.o,使用以下命令建立共享函数库message:1.4使用1.3获得的共享函数库来编译main.c文件1.5设置共享函数库搜索路径1.6运行程序并附上结果1.7构建静态可执行程序1.7.1$gcc –c message.c1.7.2$ar –crv libmsg.a message.o1.7.3$gcc –o main main.c –L./ -lmsg1.7.4$./main注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
1.8 运行以下两个命令并截图说明结果:$ldd goodbye $ldd main$ls –l goodbye main答:main和goodbye的不同点在于代码被载入的时刻不同。
linux编程大作业题目
linux编程大作业题目第一部分简述题目要求:这部分题目必做,要详细回答,最好用自己理解的语言回答,有些题目可用图形和举例等阐述问题。
1、makefile文件的作用是什么,makefile文件中有一种变量,其值是根据具体的规则来确定的,称为自动变量,其中代表所有依赖文件列表的是哪个;举例说明make命令的工作流程。
2、什么是进程,什么是线程,它们之间有何差别,请编程说明。
3、简述Linu某文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。
解释i节点在文件系统中的作用。
4、文件指针FILE某与文件描述符是一个什么样的关系,请画图说明。
5、简述与window的文件系统相比,linu某文件系统有什么特点,并用图详细描述。
6、Linu某创始人是谁,Linu某操作系统的诞生、发展和成长过程始终依赖着的重要支柱有哪些,并描述Linu某的特点。
7、为什么要学习Linu某开源技术。
8、Linu某的主要组成包括什么。
9、什么是Linu某内核,它的作用是什么。
什么是Linu某的内核版本和发行版本?10、什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?第二程序设计题目要求:Shell程序设计部分、文件和目录部分、进程和信号部分、网络编程部分则必做(其中前3部分选作5道题目,网络编程为自学部分,选作2道题目)。
若做综合设计题目或自拟综合设计题目,则Shell程序设计部分、文件和目录部分、进程和信号部分、网络编程部分可不做。
Shell程序设计部分1、设计hell脚本程序,运行结果如下:----------------Linu某13/06/11----------------A:查看进程信息B:查看用户信息C:显示当前目录信息D:退出---------------当用户输入相应的数字执行相应的功能。
2、设计hell脚本程序,在屏幕上输出操作系统的信息,包括计算机名、Linu某分发版本名称、Linu某内核版本和当前的IP地址。
linux课程大作业
目录摘要 (1)关键字: (1)前言 (1)1. 设计的目的和意义 (1)1.1. 掌握熟悉基本的网络命令 (1)1.2. 掌握网络配置文件和配置方法以及shell编程 (1)2设计目标与总体方案 (2)2.1 熟悉基本网络命令 (2)2.2 配置NFS服务器以及配置samba服务器 (2)2.3设计方法和内容 (3)2.3.1 实习软硬件环境说明 (3)2.3.2 网络配置文件与配置方法 (3)2.3.3 常用网络操作命令 (4)2.3.4 telnet 建立多帐户测试 (5)2.3.5 配置NFS服务器 (5)2.3.6配置samba服务器 (9)2.3.7 shell编程 (12)总结 (16)参考文献: (17)摘要:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX 和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的UNIX工具软件、应用程序和网络协议。
本文就从对Linux系统中的一些代码程序做了简单的介绍,如:ping、ifconfig、netstat等网络命令的使用,熟悉网络配置文件的配置方法,体会Linux多用户的特点,利用telnet进行。
建立多个帐户进行测试。
配置NFS服务器,实现文件系统的远程挂载。
配置samba服务器,实现不同系统之间的文件共享。
简单shell编程等几个方面对Linux系统进行了一个全面的讲解。
关键字:服务器,网络命令,文件配置前言Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。
用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet 上下载许多Linux的应用程序[1]。
可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能[2]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux课程设计报告题目 Linux课程大作业院系班级姓名指导教师一、基础篇(给出源程序和编译运行的结果)1、编写一个简单的c语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。
源代码(c):源代码(汇编):.file "sum.c".text.globl average.type average, @functionaverage:.LFB0:.cfi_startprocpushl %ebp.cfi_def_cfa_offset 8.cfi_offset 5, -8movl %esp, %ebp.cfi_def_cfa_register 5subl $8, %espmovl 12(%ebp), %eaxmovl 8(%ebp), %edxaddl %edx, %eaxmovl %eax, -4(%ebp)fildl -4(%ebp)fldl .LC0fdivrp %st, %st(1)leave.cfi_restore 5.cfi_def_cfa 4, 4ret.cfi_endproc.LFE0:.size average, .-average.section .rodata.align 4.LC2:.string"\350\257\267\350\276\223\345\205\245\344\270\244\344\270\252\346\225\260\ 357\274\214\345\233\236\350\275\246\345\210\206\345\211\262".LC3:.string "%d".LC4:.string"%d\344\270\216%d\347\232\204\345\271\263\345\235\207\345\200\274\346\23 0\257\357\274\232%lf\n".text.globl main.type main, @functionmain:.LFB1:.cfi_startprocpushl %ebp.cfi_def_cfa_offset 8.cfi_offset 5, -8movl %esp, %ebp.cfi_def_cfa_register 5 andl $-16, %espsubl $48, %espmovl $0, 44(%esp) movl $.LC2, (%esp) call putsmovl $.LC3, %eax leal 40(%esp), %edx movl %edx, 4(%esp) movl %eax, (%esp) call __isoc99_scanf movl $.LC3, %eax leal 44(%esp), %edx movl %edx, 4(%esp) movl %eax, (%esp) call __isoc99_scanf movl 44(%esp), %edx movl 40(%esp), %eax movl %edx, 4(%esp) movl %eax, (%esp) call averagemovl 44(%esp), %ecx movl 40(%esp), %edx movl $.LC4, %eax fstpl 12(%esp)movl %ecx, 8(%esp) movl %edx, 4(%esp) movl %eax, (%esp)call printfleave.cfi_restore 5.cfi_def_cfa 4, 4ret.cfi_endproc.LFE1:.size main, .-main.section .rodata.align 8.LC0:.long 0.long 1073741824.ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3".section .note.GNU-stack,"",@progbits执行结果:2、编写一个c语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤,至少十步以上)。
所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
例如,153是一水仙花数,因为153=1³+5³+3³。
源代码:#include<stdio.h>int isnumber(int number){int ge=(number%100)%10;int shi=(number/10)%10;int bai=(number/100);printf("%d\n",ge);printf("%d\n",shi);printf("%d\n",bai);int temp=ge*ge*ge+shi*shi*shi+bai*bai*bai;if(temp==number){return 1;}else{return 0;}}int main(){int number=0;printf("input number!\n");scanf("%d",&number);if(number>1000&&number<0){printf("number limits outbounds!\n");}if(isnumber(number)){printf("number is format!\n");}else{printf("number is not format!\n");}return 0;}执行结果:3、设计一个程序,要求输出n个整数(n也由键盘输入)中的最大值,并为它编写makefile文件,用make编译后修成返回最小值,再编译,观察有多少文件不需要重新编译。
源代码:makefile文件:test:max.o main.ogcc max.o main.o -o testmain.o:main.c define.hgcc main.c -cmax.o:max.cgcc max.c -c结果图:改变程序后,只有max.c,main.c文件程序需要重新编译;4、编写一个程序,求2-n间的素数,n由键盘输入,循环变量分别从2到n、2到(int)sqrt(n),分别测出两个循环的所用时间。
源代码:#include "stdio.h"#include "math.h"int main(){int t1=0,t2=0;int n;int j,k,j2,k2;编译运行效果:5、设计一个程序,要求将10分别以十进制、八进制和十六进制输出。
程序设计:#include<stdio.h>int main(){int number=10;printf("十进制值:%d\n",number);printf("八进制值:%o\n",number);printf("十六进制值:%x\n",number);}运行结果:一、提高篇(三选二,划出程序流程图,给出程序源代码和编译运行的结果)1、设计两个程序,要求用命名管道FIFO,实现简单的文本文件或图片文件的传输功能。
流程图:源代码:#include <stdio.h>#include <signal.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <string.h>int main(){char s[128];int fd; FILE *fp;fp = fopen("./a.txt", "r");mkfifo("/tmp/fifo.tst", 0644);close(fd2);close(fd);return 0;}运行结果:2、设计两个程序,要求用消息队列,实现聊天程序,每次发言后自动在后面增加当前系统时间。
增加结束字符,比如最后输入“88”后结束进程。
流程图:接收端源代码:运行结果:3、设计两个程序,要求用mmap系统,实现简单的聊天程序。
二、应用篇给出程序设计思路和程序设计流程图,并给出程序源代码和编译运行的结果。
设计思路:要求生产者-消费者在固定的仓库空间条件下,生产者每生产一个产品将占用一个仓库空间,生产者生产的产品库存不能越过仓库的存储量,消费者每消费一个产品将增加一个仓库空间,消费者在仓库产品为零时不能再消费。
以下使用了两个信号量,一个用来管理消费者(sem_produce),一个用来管理生产者(sem_custom),sem_produce表示当前仓库可用空间的数量,sem_custom 表示当前仓库中产品的数量。
对于生产者来说,其需要申请的资源为仓库中的剩余空间,因此,生产者在生产一个产品前需申请sem_produce信号量,当此信号量的值大于零时,即有可用空间,将生产产品,并将sem_produce值减1,同时,当其生产一个产品后,当前仓库的产品数量加1,需要将sem_custom的值自动加1.对于消费者来说,其需要申请的资源为仓库中的产品,因此,消费者在消费一个产品前需申请sem_custom信号量,当此信号量的值大于零时,即有可用产品,将消费一个产品,并将sem_custom值减1,同时,当其消费一个产品后,当前仓库的剩余空间加1,需要sem_produce的值自动加。
1、生产者-消费者问题模拟程序。
流程图:生产者源代码:#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/sem.h>#include <errno.h>int sem_id;void init(){key_t key;int ret;unsigned short sem_array[2];union semun{int val;struct semid_ds *buf;unsigned short *array;消费者源代码:sops[1].sem_num = 1;sops[1].sem_op = 1;sops[1].sem_flg = 0;init();printf("this is customer\n");while(1){printf("\n\nbefore consume:\n");printf("productor is %d\n",semctl(sem_id,0,GETV AL));printf("space is %d\n",semctl(sem_id,1,GETV AL));semop(sem_id,(struct sembuf *)&sops[0],1); //get the productor to cusumeprintf("now consuming......\n");semop(sem_id,(struct sembuf *)&sops[1],1); //now tell the productor can bu produceprintf("\nafter consume\n");printf("products number is %d\n",semctl(sem_id,0,GETV AL));printf("space number is %d\n",semctl(sem_id,1,GETV AL));sleep(3);}}编译运行结果:3、实现基于GTK+的网络聊天室,实现通信双方的实时通信。