Linux环境高级编程基础知识主要内容•Linux介绍•Linux文件结构•Linux常用命令Linux是什么?•Linux是类Unix操作系统,具有Unix的许多特点,能运行主要的UNIX工具软件、应用程序和网络协议。•Linux是一个支持多用户、多进程、多线程、实时性较好、功能强大而稳定的操作系统。•Linux可以免费使用,遵循GPL(theGNUGeneralPublicLicense)声明,可以自由修改和传播。•Linux是目前运行硬件平台最多的操作系统,它可以运行在x86PC、SunSparc、DigitalAlpha、680x0、PowerPC、MIPS等平台上。•Linux是完全符合POSIX(ThePortableOperatingSystemInterface)标准的操作系统。Linux的特点•真正的多用户、多任务操作系统;•是符合POSIX标准的系统;•提供shell命令解释程序和编程语言;•提供强大的管理功能,包括远程管理功能;(SSH)•具有内核的编程接口;•具有图形用户接口;(KDE/Gnome)•具有大量有用的实用程序和通信、联网工具;•Linux系统组成部分的源代码是开放的,任何人都能修改和重新发布它;•Linux系统不仅可以运行自由发布的应用软件,还可以运行许多商业化的应用软件;•它可以运行在几乎所有硬件平台上。1984年,GNU项目开始,旨在开发一个类似Unix、并且是自由软件的完整操作系统——GNU系统。(GNU是“GNUisNotUnix”的递归缩写)。1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNUC编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux用户基础和开发环境。1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生(Freeminix-likekernelsourcesfor386-AT)。1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。Linux与GPL的结合后,吸引了众多的开发人员,并将GNU项目下的C库、GCC、Emacs、bash等移植到linux内核中。Linux简史理查德·马修·斯托曼(RichardMatthewStallman,RMS,生于1953年),自由软件运动的精神领袖、GNU计划以及自由软件基金会(FreeSoftwareFoundation)的创立者、著名黑客。他的主要成就包括Emacs及后来的GNUEmacs,GNUC编译器及GNU调试器。他于1989年与一群律师起草了广为使用的GNU通用公共协议证书(GNUGeneralPublicLicense,GNUGPL),创造性地提出了“反版权”(或“版权属左”,或“开权”,copyleft)的概念。GNU/LinuxGNU/Linux•李纳斯·托沃兹,linux之父,全名LinusBenedicTorvalds,芬兰人,出生于1969.12.28。•从1991年4月份起,LinusTorvalds开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel386体系结构保护模式运行方式下的编程技术。但后来Linux的发展却完全改变了初衷。开源软件(opensourcesoftware)自由软件(freesoftware)免费软件开源软件vs自由软件Linux和Windows比较特点WindowsLinux安全性能一般好稳定性好很好软件支持很好好硬件支持好一般源代码保密开放系统可调节性基于界面的规范性,更易于调节具有极大的可调节性使用方便性非常方便方便版权限制和费用有无技术支持好基于社团形式的Linux和Windows比较•Linux和Windows两个操作系统各有优缺点,两者也在很多情况下在互相借鉴,互相融合。在易用性方面,Windows仍然处于优势在灵活性方面,Linux则占据上风在安全性方面,Linux系统比Windows系统好在软件支持方面,一直是Windows的强项Linux的真正优势是服务器操作系统Linux操作系统源代码公开和免费的特点,使它迅速发展壮大,赢得了许多大型软件公司的支持。Linux的应用领域:◦Linux服务器(中低端的应用服务器)◦嵌入式Linux系统(信息家电、智能仪表)◦桌面市场(办公软件、电子政务)Linux的应用领域Linux的版本•Linux只是一个内核。为了安装方便,将linux内核,系统软件,应用软件打包在一起发行,称作发行版本。•Linux的版本分为发行版本和内核版本,而内核版本又分为开发版本和稳定版本,开发版本和稳定版本是相互关联的。Linux的内核版本Linux的内核版本号有三个数字组成:r.x.yr:目前发布的Kernel版本x:偶数:稳定版本,奇数:开发中版本y:错误修补的次数.范例:kernel2.0.38;kernel2.6.13-17linux内核网站:kernel.org/Linux的内核版本查看内核版本命令:uname–acat/proc/versionLinux的发行版本•Linux发行套件(Distribution):以LinuxKernel为核心,搭配各种应用程序和工具。•许多个人、组织和企业,开发了基于GNU/Linux的Linux发行版。目前有200余种LinuxDistribution•Linux发行版大体可以分为两类:商业公司维护和社区组织维护。前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。查看发行版本命令:cat/etc/issuecat/etc/redhat-releaseLinux的发行版本Linux的发行版本比较流行的Linux发行版本:•RedHat:redhat•Mandrake:linux-mandrake/en/•Slackware:slackware/•SuSE:suse/index_us.html•Debian:debian.org/•CentOS:centos.org/•Ubuntu:ubuntu/Linux的安装Linux硬件要求:Linux内核运行对硬件的要求很低;在嵌入式系统中使用的Linux内核大多不到100K;Linux服务器版或者桌面版相对比较庞大,例如:RedHatEnterpriseLinux5完全安装大概需要占用5G左右的磁盘空间,最小安装也在1G以上;系统的最小内存为512M,推荐配置在1G以上。Linux的安装三种安装方式:光盘安装硬盘安装网络安装Linux文件结构•Linux操作系统里,一切皆文件普通文件◦文本文件◦二进制文件可执行程序,声音,图像文件目录文件链接文件◦硬链接:相当于一个文件的两个副本,指向同一数据存储区◦软链接:相当于一个文件的快捷方式Linux文件类型设备文件◦/dev/ttys1:标准终端◦/dev/hda:第一块IDE硬盘管道文件◦例:用户使用lp打印一个文件时,lp建立打印进程并向一个管道发送信息Linux文件类型用颜色代表不同文件:蓝色:目录绿色:可执行文件红色:压缩文件浅蓝色:链接文件灰色:其他文件Linux文件类型Linux文件属性Linux文件属性Linux文件结构/etc是etcetera的缩写。存放系统配置文件和子目录,它是系统中最重要的目录之一,用户要用到的网络配置文件、文件系统、X-Windows系统配置文件、设备配置信息、设置用户信息等都在这个目录下。/var主要存放一些系统运行时要改变的数据。比如spool目录(mail、news、打印机等用的),log文件、formattedmanualpages和暂存文件。/usr用户所有程序几乎都安装在这里,Linux系统中占用空间最大的目录。/usr/share/man,/usr/local/man:这两个目录为放置各类套件说明档的地方,例如你如果执行manman,则系统会自动去找这两个目录下的所有说明文件/bin,/sbin,/usr/bin,/usr/sbin:放置系统预设的可执行文件,其中,/bin,/usr/bin是给系统使用者使用的指令,而/sbin,/usr/sbin则是给系统管理员使用的指令几个重要的目录Linux系统区分英文字符的大小写。命名目录和命名文件的规则是相同的。在Linux下以.开头的文件是属于隐藏文件。Linux系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字母、数字、“.”(点)、“_”(下划线)和“-”(连字符)。和DOS一样,“.”和“..”分别用来表示“当前目录”和“父目录”,因此它们也不能单独作为文件名。“/”既可代表目录树的根也可作为路径名中的分隔符(类似DOS下的“\”),因此“/”不能出现在文件名中。文件名中可以有(空格),但建议用户用_(下划线)来替代。有些转意字符在shell中有特殊的含义,在文件名中应尽量避免使用这些字符。这样的转意字符有:?(问号),*(星号),(空格),$(货币符),&,扩号等等。Linux文件命名规则Linux常用命令•区分大小写•command为命令的名称(系统命令一般都是小写)•中括号[]不存在,只是表示可选,进行参数设定时,通常为“-”,若为完整参数名称,则输入“--”符号•command–optionsarguments这几项之间以空格隔开,空格无论多少,都视为1个•指令太长时,可以使用“\”继续到下一行command[-options][arguments]执行的命令命令的选项,说明对命令的要求命令的参数,描述命令作用的对象表示选项或参数可有可无,即参数并非必须命令提示符表示命令输入的状态◦管理员root用户的提示符“#”[rootlocalhost~]#◦普通用户提示符“$”[teacherlocalhost~]$Linux常用命令相对路径是以“.”或“..”开始的目录路径表示形式cd./testls../bin绝对路径是以“/”开始的路径表示形式ls/cd/home~/表示用户主目录;“-”表示进入此工作目录前所在的目录./表示当前目录;../表示父级目录Linux常用命令help命令◦$helppwd“--help”命令选项◦$touch--help使用man命令阅读手册页◦$manls使用info命令阅读信息页◦$infols获得命令帮助文件、目录操作命令目录操作命令◦lspwdcdmkdirrmdir文件操作命令◦touchcprmmvfind文本文件查看命令◦catmoreless◦headtail目录操作命令命令功能ls显示指定目录和文件的信息pwd显示当前目录名称cd进入指定的目录mkdir创建指定名称的目录rmdir删除指定名称的目录目录操作命令实例列目录$ls$ls-l显示当前目录名称$pwd更改当前目录$cd/etc$cd../bin建立和删除目录$mkdirmydir$rmdirmydir文件操作命令命令功能touch建立指定名称的文件或更新文件时间cp复制文件或目录rm删除文件或目录mv移动文件或目录,文件或目录重命名find在指定目录查找符合条件的文件文件操作命令实例建立空文件$touchtfile文件查找◦按文件名进行查找$find.-namefile*◦按文件属主进行查找$find.-userteacher复制和删除文件$cpfileafileb$rmfilea文件移动与重命名$mvfileafileb$mvfileadira/文本文件查看命令命令功能cat显示文本文件内容more分页显示文本