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课程大作业院系班级姓名指导教师一、基础篇(给出源程序和编译运行的结果)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调试程序(给出步骤,至少十步以上)。
《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-习题(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编程大作业讲解
linux编程大作业讲解linux第一部分简述题目要求:这部分题目必做,要详细回答,最好用自己理解的语言回答,有些题目可用图形和举例等阐述问题。
1、makefile文件的作用是什么,makefile文件中有一种变量,其值是根据具体的规则来确定的,称为自动变量,其中代表所有依赖文件列表的是哪个;举例说明make 命令的工作流程。
答:在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。
其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。
Makefile 有自己的书写格式、关键字、函数。
在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。
能够使用一行命令来完成“自动化编译”。
自动变量$^代表所有依赖文件,以空格分开,以出现的先后为序。
2、什么是进程,用fork()创建一个子进程时,系统会做什么工作。
请编程说明。
答:进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配的单位,不仅是系统内部独立运行的实体也是独立竞争资源的实体。
用fork()时系统会分配子进程一个ID号然后继承父进程的地址空间,包括进程上下文进程堆栈打开的文件描述符等等,他就是父进程的一个复制品。
3、简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。
解释i节点在文件系统中的作用。
答:文件系统建立在由若干连续的逻辑块构成的存储空间中,根据用途逻辑块可分为:超级块、i节点区和数据区。
其中i节点区用于存放i节点,每个文件都有各自唯一的i节点,i 节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。
在i 节点表中最重要的内容是磁盘地址表。
在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。
linux大作业及要求
一、为企业架设web服务器,要求:1.建立WEB服务器,服务器名为,网站主目录为/var/xx/www,站点主页文件的搜索顺序为index.html index.php;服务器启动时的子进程数为5;使用端口为80。
网页内容为:班级名称,用户名,192.168.yy.12,2.每个同学为自己建立个人主页空间,在/home下对自己做限额,软配额限制15M,硬配额限制60M, i节点数不受限制。
每个同学都属于gp组,组的限额是用户限额的50倍。
网页内容为:学号,用户名,192.168.yy.12,/home/用户名/www 其中:XX为同学名字的最后一个字的拼音,yy为同学学号的后两位数字,十位为0的只取个位数字。
评分标准:1. 正确安装DNS和apache并配置地址。
(10分)2. 正确配置dns,添加主机记录,并能够正常解析的。
(30分)3. 正确配置站点,建立主页,建立用户及个人主页,并能正常访问。
(30分)4. 正确设置配额。
(20分)5. 将配置及测试过程整理成文档,格式规范,步骤完整、图表清晰。
(10分)二、为企业架设ftp服务器1.建立FTP服务器,服务器名字为,服务器的欢迎语为“welcometo login ftpserver”.允许匿名用户上传下载文件,匿名用户的根目录为/var/ftp/pub,匿名用户的最大传输速率为10Kb/s.2.为自己和自己前后相邻的两个同学建立账户(只有一个相邻的,就建立一个),账户名字为姓名的全拼,允许本地用户访问,禁止相邻两个同学的账号切换到主目录以外的目录。
3.对/home做磁盘限额,用户的软配额限制15M,硬配额限制60M, i节点数不受限制。
每个同学都属于gp组,组的限额是用户限额的50倍。
4.将windows主机的一个txt文件上传到ftp服务器,文档的内容为:姓名,学号,windows主机ip,192.168.yy.13.其中:XX为同学名字的最后一个字的拼音,yy为同学学号的后两位数字,十位为0的只取个位数字。
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大作业
石家庄学院课程设计报告课程名称:Linux大作业设计题目:Web服务器的配置院系:计算机系专业:计算机科学与技术班级:2011级设计者:马淑娟马晓春张聪聪学号:20111303015 2011130301620111303017指导教师:滑斌杰2012 年 6 月17 日一、题目分析:通过对web服务器的有关配置,深刻理解web服务器的功能,并学会如何配置基于IP,基于端口,基于域名的虚拟主机。
二、制作过程:2.1 配置基于IP的虚拟主机:下面介绍在 192.168.0.8 和192.168.0.9 上创建两个基于IP 地址的虚拟主机的配置过程。
1.创建文档目录和测试主页student@Ubuntu: ~$ sudo mkdir -p /home/www/192.168.0.8/htdocsstudent@Ubuntu: ~$ sudo mkdir -p /home/www/192.168.0.9/htdocsstudent@Ubuntu:~$ sudo touch /home/www/192.168.0.8/htdocs/index.htmlstudent@Ubuntu: ~$ sudo touch /home/www/192.168.0.9/htdocs/index.html用来测试index.html 文件的内容可以分别为“this 192.168.0.8”与“this 192.168.0.9”。
2.配置虚拟网络接口(1) 使用如下命令。
student@Ubuntu:~ $ sudo gedit /etc/network/interfaces(2) 添加如下的配置。
auto eth0:1iface eth0:1 inet staticaddress 192.168.0.8netmask 255.255.255.0network 192.168.0.0broadcast 192.168.0.255auto eth0:2iface eth0:2 inet staticaddress 192.168.0.9netmask 255.255.255.0network 192.168.0.0broadcast 192.168.0.255(3) 使用如下命令重新启动网络服务。
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操作系统大作业2
武汉理工大学华夏学院Linux 操作系统大作业专业软件工程班级软件1111姓名董丽敏成绩指导教师凌伟Linux 操作系统大作业一、VI编辑器的操作1请在 /root 这个目录下建立一个名为 vitest 的目录;2进入 vitest 这个目录当中;3将 /etc/man.config 拷贝到本目录底下;4使用 vi 开启本目录下的 man.config 这个档案;5在 vi 中设定一下行号;6移动到第58 行,向右移动 40 个字符,请问您看到的双引号内是什么目录?7移动到第一行,并且向下搜寻一下『MAN』这个字符串,请问他在第几行?8接着下来,我要将 50 到 100 行之间的 man 改为 MAN ,并且一个一个挑选是否需要修改,如何下达指令?9修改完之后,突然反悔了,要全部复原,有哪些方法?10我要复制 51 到 60 行这十行的内容,并且贴到最后一行之后;11删除 11 到 30 行之间的 20 行;12将这个档案另存成一个 man.test.config 的檔名;13去到第 29 行,并且删除 15 个字符;14请问目前的档案有多少行与多少字符?15储存后离开吧!步骤如下显示1. mkdir vitest2. cd vitest3. cp /etc/man.config .4. vi man.config5. 『:set nu』然后你会在画面中看到左侧出现数字即为行号。
6. 先按下『58G』再按下『40→』会看到『/dir/bin/foo』这个字样在双引号内;7. 先执行『1G』或『gg』后,直接输入『/MAN』,则会去到第11行!8. 直接下达『:50,100s/man/MAN/gc 』命令!若一直按『y』最终会出现『在23 行内置换25 个字符串』的说明。
9.一直按『u 』回复到原始状态。
10. 『51G』然后再『10yy 』最后一行会出现『复制十行』类的说明字样。
按下『G 』到最1后一行,再给他『p 』贴上10行!11. 因为11~30 20 行,因此『11G 』→『20dd 』就能删除20行12. 『:w man.test.config 』,最后一行出现"man.test.config" [New].. 的字样。
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作为一个日渐流行的多用户、多任务操作系统,有着开放、稳定、安全、费用低廉等许多其它操作系统无可比拟的优势,具有越来越广泛的应用前景。
在网络技术迅速发展的今天,网络操作系统是网络中的核心技术,所以本课程是计算机科学与技术专业学生的一门必修专业课。
LinuxC编程大作业
LinuxC编程大作业
1.内容(二选一)
A.字符界面的挖雷游戏
●参考windows操作系统下的挖雷游戏,字符界面下实现其基本的挖雷游戏功
能,雷区小,中,大可选,难度(布雷树木)可选。
●具备用户登录功能,能保存浏览该用户的前20次游戏成绩,用户数据和游戏
数据保存为记录文件。
●实现游戏成绩排行榜功能(即统计所有游戏用户的游戏成绩,按时间排雷时间
的多少列出前十)。
B.学生管理信息系统
●参考12章综合练习的学生管理程序,字符界面下实现一个功能简单的学生管
理信息系统,至少具备学生信息的增删改和浏览,按条件查询,统计功能;
●提高功能:学生课程管理模块,选课,录成绩及其查询统计功能。
●所有的信息采用记录文件作持久化保存。
2.要求
A.独立完成大作业,严禁抄袭,雷同者全部不及格。
B.提交内容:大作业报告(格式参考学院的格式文档)和源代码(学号+姓名),全部
提交给班长统一刻盘。
C.提交截至时间:17周周四。
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地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仲恺农业工程学院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系统中,每个进程都有各自的生命周期。
在一个进程的生命周期中,都有各自的运行环境以及所需的资源。
一个进程程可以由多个线程组成,线程独自拥有的资源很小,但是系统运行的最小单位。
当通过fork函数创建心得子进程时,内核将父进程的用户地址空间的内容复制给子进程,这样父子进程之间拥有各自的用户空间,当父进程修改变量的值时不会影响子进程中的相应变量。
但为了提高效率,Linux采用了COW(Copy on Write)算法,子进程创建时,父子进程享有相同的地址空间只是在页表中设置COW标志,只有在父进程或子进程执行写数据操作时,才为子进程申请一个物理页,将父进程空间中相应数据所在页的内容复制到该物理页,然后将该页映射至子进程用户地址空间的适当位置。
此外,子进程还继承父进程的其他资源。
举例说明:#include<sys/types.h>intglob=10;int main(void){int local;pid_t pid;local=8;if((pid=fork())==0){sleep(2);}else{glob++;local--;sleep(10);}printf(“pid=%d,glob=%d,localar=%d\n”,getpid(),glob,local);exit(0);}}3、简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。
解释i节点在文件系统中的作用。
答:Linux通过i节点表将文件的逻辑结构和物理结构进行转换。
i 节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。
在i节点表中最重要的内容是磁盘地址表。
在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。
Linux文件系统通过把i节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的i节点号,通过该i节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。
4、文件指针FILE*与文件描述符是一个什么样的关系,请画图说明。
答:文件执行I/O操作有两种基本方式:系统调用、基于流;系统调用即直接处理文件描述符,而基于流则处理FILE*类型的文件柄,它是建立在系统调用I/O 方法基础上的C函数库,它基于系统调用方法的封装并增加了额外的功能,使程序减少系统调用,提高程序的性能;但在处理设备、管道、网络套接字和其他特殊类型的文件时,必须用系统调用I/O方法。
5、简述与windows的文件系统相比,linux文件系统有什么特点,并用图详细描述。
答:Linux操作系统的核心就是处理文件,把其他所有的驱动、软件等其他软件都看成了文件,就是对文件的操作,Linux的整个文件系统就是一棵巨大的树结构,最顶部是/(Root根),所有文件夹、文件和驱动盘都是这个Root的分支。
6、Linux创始人是谁,Linux操作系统的诞生、发展和成长过程始终依赖着的重要支柱有哪些,并描述Linux的特点。
答:Linux的创始人是Linux Torvalds(林纳斯)。
Linux操作系统的诞生、发展和成长过程始终依赖着的重要支柱有UNIX操作系统;MINIX操作系统;GNU计划;POSIX标准;Internet网络。
Linux的特点:1)自由软件;2)完全兼容POSIX 1.0标准;3)多任务、多用户;4)良好的用户界面;5)支持多种文件系统;6)丰富的网络功能;7)可靠的系统安全;8)良好的可移植性。
7、为什么要学习Linux开源技术。
答:因为Linux是一个很强的附加技能。
服务器和云服务平台选用Linux的比较多。
在超越PC的战场上,Linux是一个必修技能。
同时,Linux的稳定性很好,这也是大部分服务器使用Linux的一个重要原因。
由于Linux的设计与Windows 不同,所以Linux可以长时间的持续运转,也不需要对磁盘进行碎片整理。
8、Linux的主要组成包括什么。
答:(1)内核。
内核主要作用是运行程序和管理硬件。
内核包括几个主要部分:进程管理、内存管理、硬件设备驱动、文件系统驱动、网络管理和其他一些部分,内核最重要的部分是内存管理和进程管理。
(2)shell。
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。
它接收用户输入的命令,并把它送入内核去执行。
shell实际上是一个命令解释器。
目前有如下主要版本的shell。
1. Bourne shell:贝尔实验室开发。
2. BASH: GNU开发。
3. Korn shell:针对Bourne shell的发展。
4. C shell:sun公司开发。
shell中的命令分为内部命令和外部命令。
前者包含在shell之中,如cd、exit 等,查看内部命令可用help命令。
后者存于文件系统某个目录下的具体可操作程序,如cp等,查看外部命令的路径可用which。
(3)文件结构。
文件结构是文件存放于磁盘上的组织方法。
(4)实用工具。
1. 编辑器:用于编辑文件。
2.过滤器:用于接收数据并过滤数据。
3.交互程序:允许用户发送信息或接收来自其他用户的信息。
Linux上的过滤器主要有ed、ex、Vi、Emacs。
ed和ex是行编辑器,vi和Emacs是全屏幕编辑器。
9、什么是系统调用?系统调用是通过什么方式陷入内核态的?请写出你对系统调用的理解。
什么是文件I/O和标准I/O库?文件I/O和标准I/O库的区别? 答:Linux内核是系统的心脏,是运行程序和管理磁盘盒打印机等硬件设备的核心程序。
内核的作用:提供了操作系统的最核心功能,它负责管理系统的进程,内存,设备驱动程序,文件和网络系统,决定着系统的性能和稳定性。
内核以独占的方式执行最底层任务,保证系统正常运行;协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等。
Linux的内核版本由3部分组成:主版本号、次版本号、末版本号。
其中,版本号的第二位数字,可以确定Linux内核版本的类型,第二位数字是奇数的为开发版本,第二位数字是偶数的是稳定版本。
Linux发行版,指的是以Linux内核为中心,再集成开发各种系统管理软件或应用软件,组成一套完整的操作系统。
这种在内核上开发出的可供用户使用的Linux系统就是Linux发行版。
10、如何学习《Linux系统编程》这门课程,谈谈自己的感受。
答:自己在虚拟机或者在电脑上安装一个linux的系统,然后按照书本上的东西去学习,去尝试编程,我觉得这是学习linux的最快最好的办法。
学习时循序渐进的过程,不可操之过急,有解决不了的问题就问问同学或者上百度去查找,网络会是学习linux的最好的伙伴。
还有不要死板,要活学活用,才能享受到学习的乐趣,取得很好的成绩。
2 shell程序设计2.1程序设计要求1、掌握shell脚本的语法结构,掌握如何使用shell命令进行流程控制。
2、掌握shell程序设计,特别是掌握变量的分类与使用、条件表达式、控制语句和函数的使用。
2.2程序设计内容1.1、设计shell脚本程序,运行结果如下:- - - - - - - - - - - - - - - -Linux 13/06/11- - - - - - - - - - - - - - - -A: 查看进程信息B:查看用户信息C:显示当前目录信息D:退出- - - - - - - - - - - - - - -当用户输入相应的数字执行相应的功能。
(1)流程图(2)详细代码echo "-------------------------------"echo "LINUX `date -d now +%y/%m/%d`" echo "-------------------------------"echo "键入下面选项:"echo "A.查看进程信息"echo "B.查看用户信息"echo "C.显示当前目录信息" echo "D.退出"read choicecase "$choice" ina | A ) ps -efj;;b | B ) who;;c | C ) ls -l;;q | Q ) exit;;* ) echo "输入a~d等.\n";;esac(3)调试结果2.2、设计shell脚本程序,在屏幕上输出操作系统的信息,包括计算机名、Linux分发版本名称、Linux内核版本和当前的IP地址。