资源描述
摘要
Linux是一个自由和开放源码类Unix操作系统,存在着很多不一样Linux版本,但它们全部使用了Linux内核。经过课程设计,结合实际操作和设计,巩固课堂教学内容,使我们掌握嵌入式Linux系统开发基础概念、原理和技术,将理论和实际相结合,应用现有硬件和软件条件完成一个完整嵌入式系统设计和实现,把理论课和试验课所学内容综合为一,并在此基础上强化我们实践意识、提升其实际动手能力和创新能力,从而为后续课程学习,毕业设计步骤和未来实际工作打好坚实基础。在此次课程设计中,我们将熟悉基础挂载命令,基础配置文件和配置方法,学会Vsftp服务器安装和配置,实现文件系统远程挂载,配置samba服务器,实现不一样系统之间文件共享,简单shell script编程等。
关键字:开放源码 Linux系统 服务器
序言
Linux是一个自由和开放源码类Unix操作系统,存在着很多不一样Linux版本,但它们全部使用了Linux内核。Linux可安装在多种计算机硬件设备中。Linux是一个领先操作系统,世界上运算最快10台超级计算机运行全部是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上大家已经习惯了用Linux来形容整个基于Linux内核,而且使用GNU 工程多种工具和数据库操作系统。Linux得名于天才程序员林纳斯·托瓦兹。
Linux操作系统是UNIX操作系统一个克隆系统,它诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。以后借助于Internet网络,并经过全世界各地计算机爱好者共同努力,已成为今天世界上使用最多一个UNIX 类操作系统,而且使用人数还在迅猛增加。
Linux是一套无偿使用和自由传输类Unix操作系统,是一个基于POSIX和UNIX多用户、多任务、支持多线程和多CPU操作系统。它能运行关键UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为关键设计思想,是一个性能稳定多用户网络操作系统。它关键用于基于Intel x86系列CPU计算机上。这个系统是由全世界各地成千上万程序员设计和实现。其目标是建立不受任何商品化软件版权制约、全世界全部能自由使用Unix兼容产品。
目录
摘要 1
前言 2
1.设计的背景 1
1.1 操作系统的基本特征 1
1.2 Linux 操作系统的特点 2
1.3 Unix系统的主要特点 2
2.设计方案 3
2.1 设计的意义和目的 3
2.2 方案论述 3
3. 软硬件环境说明 3
4. 网络服务器的配置 4
4.1常用的网络命令 4
4.2 熟悉网络配置文件的配置方法 8
4.3 telnet建立多账户测试 8
4.4 Samba服务器的配置 10
4.5 配置vsFTP服务器 11
5. shell script 编程 14
5.1 shell script的简单介绍 14
5.2 shell script的简单编程 14
个人总结
参考文献
1.设计背景
1.1操作系统基础特征
操作系统(Operating System,简称OS)是管理和控制计算机硬件和软件资源计算机程序,是直接运行在“裸机”上最基础系统软件,任何其它软件全部必需在操作系统支持下才能运行。其基础特征有以下四点:
(1)并发性(Concurrence)
并行性和并发性是既相同又有区分两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序实施,故微观上这些程序只能是分时地交替实施。
(2)共享性(Sharing)
在操作系统环境下,所谓共享是指系统中资源可供内存中多个并发实施进程(线程)共同使用。因为资源属性不一样,进程对资源共享方法也不一样
(3)虚拟性(Virtual)
操作系统中所谓"虚拟",是指经过某种技术把一个物理实体变为若干个逻辑上对应物。物理实体(前者)是实,即实际存在,以后者是虚,是用户感觉上东西。用于实现虚拟技术,称为虚拟技术。在OS中利用了多个虚拟技术,分别用来实现虚拟处理机、虚拟内存、虚拟外部设备和虚拟信道等。
(4)异步性
在多道程序环境下,允很多个进程并发实施, 但只有进程在取得所需资源后方能实施。在单处理机环境下,因为系统中只有一个处理机,所以每次只许可一个进程实施,其它进程只能等候。当正在实施进程提出某种资源要求时,如打印请求,而此时打印机正在为其它某进程打印,因为打印机属于临界资源,所以正在实施进程必需等候,且放弃处理机,直到打印机空闲,并再次把处理机分配给该进程时,该进程方能继续实施。
1.2 Linux 操作系统特点
Linux操作系统在短时间内得到迅猛发展,这和该操作系统良好特征是分不开。Linux包含了UNIX操作系统全部功效和特征。简单地说,Linux含有UNIX全部特征而且含有自己独特魅力,关键表现在以下多个方面: 1开放性、2多用户 、3多任务 、4友好用户界面、5设备独立性、6丰富网络功效 、7可靠安全性 、8良好可移植性 、9 X Window系统 、10 内存保护模式 。这些特点使得Linux系统在嵌入式开发和开源代码编写方面占据了有利优势。
1.3 Unix系统关键特点
UNIX操作系统(尤尼斯),是一个强大多用户、多任务操作系统,支持多个处理器架构,根据操作系统分类,属于分时操作系统,其关键特点以下:
1. UNIX系统是一个可供多用户同时操作会话式分时操作系统,不一样用户能够在不一样终端上,经过会话方法控制系统操作。系统继承子以往操作系统优异技术,又在总体设计思想上有所创新。
2. UNIX系统在结构上分为内核和核外程序两部分。内核部分就是通常所说UNIX操作系统.能够从内核中分享出来部分,则以核外程序形式存在并在用户环境下运行,内核向核外程序提供了充足而强大支持,而核外程序灵活地利用了内核支持。
3. UNIX系统向用户提供了两种界面,一个是用户使用命令,经过终端和系统进行交互界面,即用户界面;另一个是用于用户程序和系统接口,即系统调用。系统采取树型结构文件系统,它由基础文件系统和可装下若干个子文件系统组成,它既能扩大文件存放空间,含有良好安全性,保密性和可维护性。
4. UNIX系统提供了丰富核外系统程序,其中包含丰富语言处理程序,系统实用程序和开发软件工具,这些程序为用户提供了相当完备程序设计环境。系统能在笔记本计算,PC机,工作站,中小型机及至巨型机上运行操作系统,所以,UNIX系统含有极强可伸缩性。
2.设计方案
2.1 设计意义和目标
① Linux操作系统含有很好可移植性、良好地编程环境和强大网络工程,作为计算机专业学生,Linux是一门很关键必修课。
② 经过这课程设计能够全方面了解Linux基础命令和基础操作,而且经过
上机操作提升自己编程能力、程序调试能力和应用能力。
③ Linux课程设计目标就在于经过一次实践性活动加深对这门课程
了解,使我们在感性认识上深入升华为理性认识。为后继课程
学习打下坚实基础。
2.2 方案叙述
在虚拟机中运行Linux操作系统,完成课程设计内容。首先要熟悉基础网络命令和她们使用方法,比如ping、ifconfig、netstat等网络命令。同时,熟悉网络配置文件配置方法。其次,体会Linux多用户特点,并利用telnet进行测试。学会在Linux系统中配置VSFTP服务器,而且能够实现局域网文件传输。还有学会配置samba服务器,而且能够实现不一样系统之间文件共享。最终,学会编写简单shell程序。
3. 软硬件环境说明
依据此次课程设计内容,做出以下准备:
装有VMware虚拟机软件pc机一台。
VMware虚拟机软件,是全球桌面到数据中心虚拟化处理方案领导厂商。全球不一样规模用户依靠VMware来降低成本和运行费用、确保业务连续性、加强安全性并走向绿色。
此次课程设计就是经过此虚拟机软件,将Linux操作系统装于此软件进行操作,在安装之前经过手动设置硬件参数以下:
20G磁盘、1G内存、单核处理器、虚拟CDROM、NAT网络适配器
4. 网络服务器配置
4.1常见网络命令
(1)ping命令 功效说明:检测主机。
语 法:ping [-dfnqrRv] [-c<完成次数>] [-i<间隔秒数>] [-I<网络界面>] [-l<前置载入>] [-p<范本样式>] [-s<数据包大小>] [-t<存活数值>] [主机名称或IP地址]
标准使用方法:ping(-选项) 主机名称或IP地址
补充说明:实施ping指令会使用ICMP传输协议,发出要求回应信息,若远端主机网络功效没有问题,就会回应该信息,所以得悉该主机运作正常。
参 数:
-d 使用SocketSO_DEBUG功效。
-c <完成次数> 设置完成要求回应次数。
-f 极限检测。
-i <间隔秒数> 指定收发信息间隔时间。
-I <网络界面> 使用指定网络界面送出数据包。
-l <前置载入> 设置在送出要求信息之前,先行发出数据包。
-n 只输出数值。
-p <范本样式> 设置填满数据包范本样式。
-q 不显示指令实施过程,开头和结尾相关信息除外。
-r 忽略一般Routing Table,直接将数据包送到远端主机上。
-R 统计路由过程。
-s <数据包大小> 设置数据包大小。
-t <存活数值> 设置存活数值TTL大小。
-v 具体显示指令实施过程。
以下图:
图4.1 (a)
① IP地址简单设置
图 (b)
(2)ifconfig命令
语法:ifconfig [网络设备] [down up -allmulti -arp -promisc] [add<地址>] [del<地址>] [<硬件地址>] [media<网络媒介类型>] [mem_start<内存地址>] [metric<数目>] [mtu<字节>] [netmask<子网掩码>] [tunnel<地址>] [-broadcast<地址>] [-pointopoint<地址>] 补充说明:ifconfig可设置网络设备状态,或是显示目前设置。
参数:
[网络设备] 网络设备名称。
Down 关闭指定网络设备。
up 开启指定网络设备。
-arp 打开或关闭指定接口上使用ARP协议。前面加上一个负号用于关闭该选项。
-allmuti 关闭或开启指定接口无区分模式。前面加上一个负号用于关闭该选项。
-promisc 关闭或开启指定网络设备promiscuous模式。加上一个负号用于关闭该选项。
Add <地址> 设置网络设备IPv6IP地址。
Del <地址> 删除网络设备IPv6IP地址。
Media <网络媒介类型> 设置网络设备媒介类型。
mem_start <内存地址> 设置网络设备在主内存所占用起始地址。
Metric <数目> 指定在计算数据包转送次数时,所要加上数目。
Mtu <字节> 设置网络设备MTU。
Netmask <子网掩码> 设置网络设备子网掩码。
Tunnel <地址> 建立IPv4和IPv6之间隧道通信地址。
-broadcast <地址> 将要送往指定地址数据包当成广播数据包来处理。
-pointopoint <地址> 和指定地址网络设备建立直接连线,此模式含有保密功效。
图4.1(2)
现在解释一下输出信息含义:
① eth0:网络接口 ⑦ link encap:网络类型
② HWaddr:网卡物理地址 ⑧ UP:正在使用网络接口
③ Inet addr :IP地址 ⑨ Interrupt:终端信息
④ Bcast:广播地址 ⑩ Base address:内存地址
⑤ RX byte,TX byte表示接搜和传输具体数目
⑥ RX packets,TX packets接收和传输数据包个数
(3) netstat命令
功效说明:显示网络状态。
语 法:netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
补充说明:利用netstat指令可让你得悉整个Linux系统网络情况。
参 数:
-a或--all 显示全部连线中Socket。
-A <网络类型>或--<网络类型> 列出该网络类型连线中相关地址。
-c或--continuous 连续列出网络状态。
-C或--cache 显示路由器配置快取信息。
-e或--extend 显示网络其它相关信息。
-F或--fib 显示FIB。
-g或--groups 显示多重广播功效群组组员名单。
-h或--help 在线帮助。
-i或--interfaces 显示网络界面信息表单。
-l或--listening 显示监控中服务器Socket。
-M或--masquerade 显示伪装网络连线。
-n或--numeric 直接使用IP地址,而不经过域名服务器。
-N或--netlink或--symbolic 显示网络硬件外围设备符号连接名称。
-o或--timers 显示计时器。
-p或--programs 显示正在使用Socket程序识别码和程序名称。
-r或--route 显示Routing Table。
-s或--statistice 显示网络工作信息统计表。
-t或--tcp 显示TCP传输协议连线情况。
-u或--udp 显示UDP传输协议连线情况。
-v或--verbose 显示指令实施过程。
-V或--version 显示版本信息。
-w或--raw 显示RAW传输协议连线情况。
-x或--unix 此参数效果和指定"-A unix"参数相同。
--ip或--inet 此参数效果和指定"-A inet"参数相同。
以下图所表示:
图4.1(3)
4.2 熟悉网络配置文件配置方法
一台安装了Linux系统电脑假如想要联网,首先要做就是进行网络配置。
首先以根用户登录系统,然后使用lspci | grep Ethernet命令检验计算机上以太网卡设备是否被内核检测到。在默认情况下,只有root也就是根用户才有权限进行网络配置。
然后使用“ifconfig”命令查看系统已经识别并已激活网络接口。假如没有找到能够用“ifconfig -a”命令找到全部已识别包含未激活网络接口,然后使用”ifconfig 网卡名 up“激活。就对这块网卡进行设置使它能够发挥作用。
在命令行输入“ifconfig 网卡名 IP地址 netmask 子网掩码”就能够临时指定网卡IP地址,但重启后失效。永久改变IP地址用“vi /etc/sysconfig/network-scripts/ifcfg-eth0”编辑网卡eth0配置文件。假如设置是dhcp自动获取IP地址,那么IPADDR、NETMASK和GATWAY全部能够不写。
使用“service network restart”命令重新开启network服务,使配置文件生效。四个状态全部必需是OK,不然说明设置有问题,需要重新修改设置。最终再次使用“ifconfig”命令查看网卡参数, IP地址修改成功,而且会一直保留。
4.3 telnet建立多账户测试
功效说明:远端登入。
语 法:telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<统计文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]
补充说明:实施telnet指令开启终端机阶段作业,并登入远端主机。
参 数:
-8 许可使用8位字符资料,包含输入和输出。
-a 尝试自动登入远端系统。
-b <主机别名> 使用别名指定远端主机名称。
-c 不读取用户专属目录里.telnetrc文件。
-d 开启排错模式。
-e <脱离字符> 设置脱离字符。
-E 滤除脱离字符。
-f 此参数效果和指定"-F"参数相同。
-F 使用Kerberos V5认证时,加上此参数可把当地主机认证数据上传到远端主机。
-k <域名> 使用Kerberos认证时,加上此参数让远端主机采取指定领域名.
-K 不自动登入远端主机。
-l <用户名称> 指定要登入远端主机用户名称。
-L 许可输出8位字符资料。
-n <统计文件> 指定文件统计相关信息。
-r 使用类似rlogin指令用户界面。
-S <服务类型> 设置telnet连线所需IP TOS信息。
-x 假设主机有支持数据加密功效,就使用它。
-X <认证形态> 关闭指定认证形态。
以下图测试:
图4.3 telnet建立多账户测试
4.4 Samba服务器配置
Samba是一整套UNIX程序(包含Linux),它能够了解SMB,即Server Message Block协议。Windows系列和OS/2操作系统全部是使用SMB协议来在不一样计算机之间相互通信。经过在UNIX上安装Samba,就使得UNIX能够同Windows系列计算机之间相互通信,并能够使UNIX机器模拟成Windows机器。这么,安装了SambaLinux机器就能够模拟Window NT功效,它并能提供几乎全部Windows NT功效。以下图所表示:
(1) 服务器配置
图 (1)
(2)创建账户和共享目录
图 (2)
(3)指定用户和添加共享
图(3)
(4) 测试共享和选择服务器
图(4)
(5) 输入口令和测试
图 (5)
4.5 配置vsFTP服务器
一、安装。
命令:yum install vsftpd
二、开启、关闭、重启:service vsftpd start/stop/restart.
注:--查看vsftpd 开启状态
[root@singledb ~]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@singledb ~]# chkconfig vsftpd on
[root@singledb ~]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
这里看到,默认情况下从2到5设置为on了。2到5是多用户等级。 这个对应是linux不一样运行等级。
我们也能够加level 选项来指定:
[root@singledb ~]# chkconfig --level 0 vsftpd on
[root@singledb ~]# chkconfig --list vsftpd
vsftpd 0:on 1:off 2:on 3:on 4:on 5:on 6:off
我们看到0已经设置为on了。
传统init 定义了7个运行级(run level),每一个等级全部代表系统应该补充运行一些特定服务:
(1)0级是完全关闭系统等级 (2)1级或S级代表单用户模式
(3)2-5 级 是多用户等级 (4)6级 是 重新引导等级
三、配置。
1.配置文件:位置 /etc/vsftpd/;vsftpd.conf:主配置文件;ftpusers: 指定哪些用户不能访问FTP服务器;user_list: 指定用户是否能够访问ftp服务器由vsftpd.conf文件中userlist_deny取值来决定。其中vsftpd.conf 文件设置以下参数:
(1)ftpd_banner=welcome to ftp service :设置连接服务器后欢迎信息
(2)idle_session_timeout=60 :限制远程用户机连接后,所建立控制连接,在多长时间没有做任何操作就会中止(秒)
(3)data_connection_timeout=120 :设置用户机进行数据传输时,设置空闲数据中止时间
(4)accept_timeout=60 设置在多长时间后自动建立连接
(5)connect_timeout=60 设置数据连接最大激活时间,多长时间断开,为她人所使用;
(6)max_clients=200 指明服务器总用户并发连接数为200
(7)max_per_ip=3 指明每个用户机最大连接数为3
(8)local_max_rate=50000(50kbytes/sec) 当地用户最大传输速率限制
(9)anon_max_rate=30000匿名用户最大传输速率限制
(10)pasv_min_port=端口
(11)pasv-max-prot=端口号 定义最大和最小端口,为0表示任意端口;
(12)listen_address=IP地址 设置ftp服务来监听地址,用户端能够用哪个地址来连接;
(13)listen_port=端口号 设置FTP工作端口号,默认为21
(14)chroot_local_user=YES 设置全部当地用户能够chroot
(15)chroot_local_user=NO 设置指定用户能够chroot
(16)chroot_list_enable=YES
(17)chroot_list_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_list中用户才能实施 )
(18)local_root=path 不管哪个用户全部能登录用户,定义登录帐号主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
(19)chroot_local_user=yes/no 是否锁定当地系统帐号用户主目录(全部);锁定后,用户只能访问用户主目录/home/user,不能利用cd命令向上转;只能向下;
(20)chroot_list_enable=yes/no 锁定指定文件中用户主目录(部分),文件:/chroot_list_file=path 中指定;
(21)userlist_enable=YES/NO 是否加载用户列表文件;
(22)userlist_deny=YES 表示上面所加载用户是否许可拒绝登录;
(23)userlist_file=/etc/vsftpd/user_list 列表文件
图下图所表示:
(1)vsFTP配置参数
图(a)
图(b)
图(c)
图(d)
(2)重启配置vsFTp并查询
图 (2)
5. shell script 编程
5.1 shell script简单介绍
Shell是系统用户界面,提供了用户和内核进行交互操作一个接口。它接收用户输入命令并把它送入内核去实施。
实际上Shell是一个命令解释器,它解释由用户输入命令而且把它们送到内核。不仅如此,Shell有自己编程语言用于对命令编辑,它许可用户编写由shell命令组成程序。Shell编程语言含有一般编程语言很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写Shell程序和其它应用程序含有一样效果。
5.2 shell script简单编程
5.2.1用shell编程实现拷贝功效
在根目录下有四个文件 m1.txt,m2.txt,m3.txt,m4.txt,用 Shell 编程,实现自动 创建 m1,m2,m3,m4 四个目录,并将 m1.txt,m2.txt,m3.txt,m4.txt 四个文件分别拷贝到各自对应目录下。
图 5.2.1
5.2.2 用shell编程求和计算从1到用户输入数字和。(1+2+3+…n)。
图 5.2.2
5.2.3编写一个 Shell 程序,实现以下功效:
(1). 当运行一个程序时候,这个程序会让使用者选择 Y 或 N ;
(2)假如使用者输入 Y 或 y 时,就显示『 OK, continue 』
(3)假如使用者输入 n 或 N 时,就显示『 Oh, interrupt !』
(4)假如不是 Y/y/N/n 之内其它字节,就显示『 I don't know what your choice is 』(利用中括号、 && 和 || 来实现)
图5.2.3
个人总结
时间稍众即逝,为期一周课程设计转眼间就结束了,经过此次课程设计,让我们愈加好认识和了解Linux操作系统。首先从开始对Linux一无所知,到做完课设后有了一定程度了解,从而深入熟悉Linux这个操作系统和在Linux下编程。经过此次设计,我们能够熟练掌握基础网络命令、网络配置文件及其配置方法和服务器简单配置,亲身体会到了Linux多用户特点。经过试验我认识到了系统调用实现,系统信息和状态读取,经过学习,学会了在 Linux环境下进行简单编程,也让我从中学到了不少Linux知识。此次课程设计,加深了我们对理论知识了解,也锻炼了我们实践能力,更多是在实践中收获了太多感慨和心得,即使课程设计已经结束,可我们明白“学无止境”道理,我们会继续刻苦钻研,求实创新,不停地用知识来充实自己。
在此次设计中,我们也有很多不足之处,还有很多Linux知识没有包含到,只是有点印象 了解不太深。经过此次课程设计,我们对于Linux有了深入了解,很多在书本上自己认为已经掌握知识点,不过在课程设计过程中却会存在很多小问题,这就考验我们总体把握和知识点融会贯通,经过此次课程设计,让我知道了自己还有很多知识点是没有掌握,很多知识点就算掌握了书本上,也还不会活用。期望以后课设和试验中多练习,实践是检验真理唯一路径,实践也是进步关键路径之一。
最终,感谢老师帮助和指导。经过此次课程设计,让我们知道了在扎实基础前提下,我们更要多动手,多锻炼,勇于去尝试,勇于去实践。
参考文件
[1] David Tansley著. 徐炎译.Linux和UNIX Shell编程指南. 北京:机械工业出版社
[2] 刘兵著.Linux实用教程[M].北京:中国水利水电出版社,.7
[3] 朱居正、高冰著. Red Hat Linux 9实用培训教程. 北京:清华大学出版社,.7
[4] 张炯著.Unix网络编程实用技术和实例分析.北京:清华大学出版社,.11
[5] 顾云苏著.Linux 服务器配置和优化.北京:清华大学出版社,.9
展开阅读全文