版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章Linux系统概述第1章概述.pptx第2章Linux常用命令.pptx第3章文件系统.pptx第4章Linux系统概述.pptx第5章Linuxshell程序设计.pptx第6章系统管理系统基本设置与备份.pptx第7章服务器管理.pptx第8章Linux内核简介.pptx第9章常用开发工具.pptx第10章Linux内核编译与管理.pptx全套PPT课件Linux是当前具有发展潜力的计算机操作系统,而Internet的旺盛需求正推动着Linux的快速发展Linux是自由传播的类Unix的操作系统,在中国推广使用的主要有RedHatLinux、TurboLinux等,以及国产的红旗Linux、中标普华Linux等不同版本。Linux具有自由与开放的特性及强大的网络功能,这些特性使Linux具有无限广阔的发展前景。2第1章Linux系统概述第1章Linux系统概述31.1Linux系统的历史1.2GNU计划自由软件与开放源码1.3Linux的特点1.4Linux的发展和应用1.5Linux系统安装1.1.1Unix系统的出现1969年Thompson和Richie在美国Bell实验室开发了名为Unix的多用户多任务操作系统。1969年Thompson利用暑假期间的一个月开发出了Unix的原型,使用的是基本组合编程语言(BasicCombinedProgrammingLanguage,BCPL)1971年大部分代码改用C语言,具有很强的可移植性。41.1Linux系统的历史优点:Unix可靠并运行稳定,至今仍被广泛应用于银行、航空、保险、金融等领域的大中型计算机和高端服务器中。Unix的商业版本包括赫赫有名的Sun公司的Solaris、IBM公司的AIX和HP公司的HP-UX等。缺点:必须借助操作命令才能管理和使用Unix,操作困难价格昂贵,个人用户拒之千里之外,使之无法应用于家庭51.1Linux系统的历史1.1.2Linux的出现1991年,LinusTorvalds(Linux之父),开创了一个在操作系统领域里全新的世界——Linux操作系统。1991年年初,LinusTorvalds基于Minix来开发终端仿真程序。1991年9月17日,LinusTorvalds将自己开发的系统源程序传到了FTP服务器上,被定为Linux0.01版本。61.1Linux系统的历史1994年,Linux已经成为功能完善、稳定可靠的操作系统。1995年1月,BobYoung创办了RedHat实验室,以GNU/Linux为核心,集成了400多个源代码程序模块,发行RedHatLinux。1998年2月,以EricRaymond为首的编程高手创办了开放源代码促进会,以IBM、Intel为首的IT企业对Linux产品进行投资。
71.1Linux系统的历史1.1.3Linux的发行版本发行版本是厂家将Linux内核与应用软件和文档包装起来,并提供一些安装界面和系统设定管理工具的一个软件包的集合。最常见的Slackware、RedHat、Debian等。目前Linux发行版的数量已超过400种。内核版本指的是在LinusTorvalds领导下的开发小组开发出的系统内核的版本号。 81.1Linux系统的历史内核版本:稳定版和开发版,Linux内核版本号由3组数字组成:第一个组数字.第二组数字.第三组数字。第一个组数字:目前发布的内核主版本。第二个组数字:偶数表示稳定版本;奇数表示开发中版本。第三个组数字:错误修补的次数。
91.1Linux系统的历史2.6.18-128.ELsmp,
第一个组数字:2,主版本号
第二个组数字:6,次版本号,表示稳定版本(因为有偶数)
第三个组数字18,修订版本号,表示修改的次数,头两个数字合在一齐可以描述内核系列。如稳定版的2.6.0,它是2.6版内核系列。128:表示这个当前版本的第5次微调patch,ELsmp指出了当前内核是为ELsmp特别调校的EL:EnterpriseLinux;smp:表示支持多处理器,表示该内核版本支持多处理器
101.1Linux系统的历史RedHat RedHatLinux系统(如图所示)是全球最受欢迎的服务器版操作系统,其服务器的功能非常强,性能也非常好,对系统和内核做了很好的调优。 大多数企业都在使用RedHatLinux系统。RedHat最早由Bob.Young和Marc.Ewing在1995年创建。111.1Linux系统的历史目前RedHat系统大体分以下三个系列由RedHat公司提供收费技术支持和更新的RedHatEnterpriseLinux。现在最新版本为RedHatEnterpriseLinux8.0。由社区开发的FedoraCore(免费),最新版本为Fedora30。RedHat克隆版CentOS(免费),现在最新版本为CentOS7.6。121.1Linux系统的历史Mandriva由Gal.Duval创建,于1998年7月发布。MandrakeSoft将最好的图形桌面环境及其图形界面配置工具集成到Linux中,并且树立了易用性和功能性的标准。Mandriva的开发完全透明化,只要有了新的测试版本,就都可以在cooker上找到。131.1Linux系统的历史SUSESUSE是德国最著名的Linux发行版,最新发布的19版本得到广大爱好者的青睐,在企业中的使用量也非常大;对3D的支持非常好,但对内存的要求比较高。让openSUSE成为最易获得且最广泛使用Linux发行版本利用开源使openSUSE成为可用性最强的Linux发行版本简化并开放其开发及打包过程,使openSUSE成为Linux开发人员及软件提供商选择的平台。141.1Linux系统的历史DebianDebianGNU/Linux是Linux爱好者最中意的Linux操作系统,是因为Debian系统软件包更新非常方便,可采用apt-get和dpkg命令实现。Debian系统分为三个版本分支:unstable为最新的测试版本,包括最新的软件包,但bug较多,适合桌面用户使用testing版本都经过unstable中的测试,稳定,支持新技术(比如SMP等)stable版本用于服务器,软件包大多过时,但稳定性和安全性高151.1Linux系统的历史Ubuntu Ubuntu是拥有Debian所有优点的桌面操作系统:Ubuntu的界面装饰得简易而不失华丽Ubuntu易于安装,只要按照提示一步一步地进行即可Ubuntu硬件支持最好且最全面且支持最新版本软件Ubuntu系统可以轻松实现网上快速更新可以采用sudo命令安装软件内置有桌面动画161.1Linux系统的历史GentooGentooLinux是一套通用、快捷、完全免费的Linux发行版本。GentooLinux拥有一套先进的包管理系统——Portage(Python编写),包括文件依赖、精细的包管理、OpenBSD风格的虚拟安装、安全卸载、系统框架文件、虚拟软件包、配置文件管理等。最新版本为GentooLinux201906-01。
171.1Linux系统的历史SlackwareSlackware是历史最悠久的Linux发行版本,包含最新流行软件,并按照传统提供简单易用、灵活且强大的功能。Slackware同时向新手和高级用户提供一套先进的系统,可装备使用从桌面工作站到机房服务器的任何场合,但它所有的配置还要通过配置文件来进行。最新版本为SlackwareLinux14.2。181.1Linux系统的历史FreeBSDFreeBSD创建于1993年,是一种基于美国加州伯克利大学的4.4BSD-Lite发布的类UNIX操作系统,它面向i386、IA-64、PC-98、Alpha/AXP及UltraSPARC平台。FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,current则是添加了新技术的测试版。191.1Linux系统的历史RedFlag由中科红旗软件技术有限公司推出的中文版Linux。RedFlagLinux在众多的中国Linux用户中占有较大的比例,可以从其官方网站下载桌面版。目前桌面版的最高版本为8.0。同时中科红旗针对服务器市场专门推出了红旗服务器版本,其操作系统目前最高版本为7.0。RedFlagLinux系统是国内较大、较成熟的Linux发行版之一。
201.1Linux系统的历史各种发行版本比较
版本优点缺点软件包管理系统是否免费下载官方网站RedHat用户群庞大及技术资料社区多免费版的FC,生命周期短,多媒体支持不友好up2date(rpm),yum(rpm)是/Mandriva操作界面友好,社区技术支持庞大,NTFS分区大小变更部分版本bug较多,最新版本只先给Mandrake俱乐部的成员urpmi(rpm)是
SUSE专业、易用的YaST软件包管理系统FTP发布要比零售版晚1到3个月YaST(rpm),第三方APT(rpm)软件库取决于版本/211.1Linux系统的历史1.1Linux系统的历史版本优点缺点软件包管理系统是否免费下载官方网站Debian遵循GNU规范,完全免费,优秀的网络和社区资源安装相对较难,stable版本的软件极度过时APT(DEB)是/Ubuntu有优秀的资源和技术支持,固定的版本更新周期,可从DebianWoody直接升级还未建立成熟的商业模式APT(DEB)是/Gentoo高度的可定制性,完整的使用手册,完美的Portage系统编译耗时多,安装缓慢Portage(SRC)是/221.1Linux系统的历史版本优点缺点软件包管理系统是否免费下载官方网站Slackware稳定、安全,高度坚持UNIX的规范配置均通过编辑文件来进行,自动硬件检测能力较差SlackwarePackageManagement(TGZ)是/FreeBSD速度快且稳定,优秀的使用手册,Ports系统硬件支持较差,在桌面系统中软件兼容性差Ports(TBZ)是/RedFlag支持中文,适合亚洲人的使用习惯,优秀的服务器管理工具硬件支持较差,桌面系统软件包安装不便RPM是23其他的Linux系统除了以上使用比较多的Linux发行版以外,还有一些其他的Linux操作系统发行版本。国内有:即时Linux操作系统,有服务器和桌面两个版本;中标Linux操作系统,具有服务器和桌面两个版本;共创Linux操作系统,只有桌面一个版本,与WindowsXP非常相似,易使用;新华Linux系统,基于Debian系统,有服务器和桌面两个版本。241.1Linux系统的历史国外的还有:KNOPPIX、MEPIS、XandrOS、YellowDog、Slax系统,其中Slax-LiveCD是一张98MB~300MB不等的Linux发行光盘,它基于Slackware。它拥有很多有特色的工具,包括用于创建自启动运行光盘所需的脚本等。图中所示图标依次为中标、Slax、KNOPPIX、MEPIS、YellowDog、新华华镭、新华、共创的logo。251.1Linux系统的历史1.2GNU计划自由软件与开放源码RichardM.Stallman在此思想基础上提出了自由软件(FreeSoftware)的概念。它是指用户有运行、复制、研究、改进软件的自由,即以下3种层次的自由:研究程序运行机制,并根据自己的需要修改软件的自由。重新分发复制件,以使他人能够共享软件的自由。改进程序,为使他人受益而散发软件的自由。自由软件的代表是操作系统Linux和编译工具GCC。261.2GNU计划自由软件与开放源码1984年,RichardM.Stallman创办GNU计划和自由软件基金会。到20世纪90年代初,GNU项目已经开发出许多高质量的免费软件,其中包括有名的Emacs编辑系统、BashShell程序、GCC系列编译程序、GDB调试程序等。1983年9月27日,Richard公开发起GNU(,其目标是创建一套完全免费的、自由的类操作系统。271.2GNU计划自由软件与开放源码 为保证GNU软件能够被自由地使用、复制、修改和发布,所有GNU软件都有一个GNU通用公共许可证(GeneralPublicLicense,GPL),这是一个广泛使用的自由软件许可证。GPL授予程序接受人有以下自由:以任何目的运行程序的自由。再发行复制件的自由。改进该程序,并公开发布改进版的自由。这里说的自由软件,并不是指软件免费。281.2GNU计划自由软件与开放源码Linux发展AndrewS.Tanenbaum教授所编写的一个类UNIX操作系统,用于让学生了解操作系统的运行过程。1991年LinusBenedictTorvalds用汇编语言编写好Linux系统的第一个内核Linux0.0.1。1993年,大约有上百名程序员参与了Linux内核代码的编写、修改工作。1994年3月,Linux1.0版发行291.2GNU计划自由软件与开放源码到Linux1.3以后,Linux已可运行在Intel、Digital以及SunSparc等处理器上。1998年开始,很多商业公司也加入了Linux的开发阵营中,因此出现了很多新的版本,如Slackware、RedHat、Suse、OpenLinux、TurboLinux等。提示:基于Linux内核的操作系统使用了大量的GNU软件,包括Shell程序、工具、程序库、编译器及工具等。301.2GNU计划自由软件与开放源码1.3Linux的特点Linux是一种以LinusTorvalds为首的一批Internet志愿者创建开发的类Unix的操作系统,并且Linux从最初就加入了GNU计划,其软件发行遵循GPL原则,也就是自由软件,是自由而不是免费。
311.3Linux的特点Linux的特点如下1.多用户 在Linux中不但可以拥有许多用户账号,而且可以让多个用户在同一时间登录进入系统并在系统上同时工作。每个用户都能拥有按自己意愿定制的环境。2.多任务在Linux中,用户可以同时运行多个程序。3.多平台 Linux所支持的平台种类是操作系统历史上最多的,如SunSpare、SGIMIPS、AppleMac、PowerPC、Alpha、HP-PA、IntelX86、PDA和手机等。321.3Linux的特点4.漂亮的用户界面 Linux提供两种用户界面:字符界面和图形化用户界面。字符界面是传统的Unix界面,用户需要输入要执行的相关命令才能完成相关的操作。字符界面下的这种操作方式的确不太方便,但是效率很高,目前仍在使用。331.3Linux的特点5.硬件支持 Linux对硬件的要求比较低,能支持相当丰富的硬件,尤其是它对比较老的硬件的支持相当不错。6.强大的通信和联网功能Linux支持种类繁多的网卡、调制解调器、串行设备等连接设备。7.应用程序支持由于与POSIX标准及几个不同的应用程序设计接口兼容,因此Linux可以使用的免费软件或共享软件的范围很广。341.3Linux的特点1.3Linux的特点类
别支持的常用软件名称文本编辑器vi、Emacs、NEdit、gedit编程工具GCC、GDB、make、peri、prof数据库MySQL、PostgreSQL、Oracle、Infomix办公软件Gnumeric、Organizer、StartOffice、CoreWordPerfect351.3Linux的特点类
别支持的常用软件名称图形处理软件GIMP、XV、XView、KSnapshotInternet应用Lynx、NetscapeCommunication、Apache游戏Xboard、xboling、Gnome-Stones、Doom、Quake3D作图Blender、MayaCAD软件QCad、Pro/E
Wildfire
2.0361.3Linux的特点类
别支持的常用软件名称虚拟机VMware、QEMU科学计算MATLAB、OCTAVE、LabPlot、SCILAB网页浏览器Mozilla、Netscape多媒体播放器XMMS、MPlayer、RealOne371.4Linux的发展和应用 目前全球Linux用户已超过4000万人,并正在不断增加,许多知名企业和大学都是Linux的用户。 Linux的应用范围主要包括桌面、服务器、嵌入式系统、集群计算机等方面。
381.4Linux的发展和应用1.4.1IntranetIntranet有5项基本标准的服务:文件共享、目录查询、打印共享、电子邮件和网络管理。Intranet的特点有以下几个开放性和可扩展性可以支持不同计算机、不同操作系统、不同数据库、不同网络的互联。通用性 Intranet的通用性表现在它的多媒体集成和多应用集成两个方面简易性和经济性Intranet的性能价格比远高于其他内部通信方式。安全性Intranet的实现基于Internet技术,两个地理位置不同的部门或子机构也可能利用Internet相互连接。
391.4Linux的发展和应用1.4.2服务器Linux服务器的稳定性、安全性、可靠性已经得到业界认可,政府、银行、邮电、保险等业务关键部门已经开始规模性使用。作为服务器,Linux的服务领域包括以下3个方面。1.网络服务网络服务是Linux的一个主要应用领域,Linux系统可以提供WWW服务、FTP服务和电子邮件服务等网络服务。2.文件和打印服务、
Linux下的Samba服务,不仅可以轻松地面向用户提供文件及打印服务,还可以通过磁盘配额控制用户对磁盘空间的使用。3.数据库服务
目前各大数据库厂商均已推出基于Linux的大型数据库,如Sybase、Oracle、DB2等。Linux具有稳定运行的性能,在数据库服务器领域得到广泛应用。
401.4Linux的发展和应用1.4.3嵌入式系统嵌入式系统是指凡是带有微处理器的非计算机系统。对于嵌入式系统而言,Linux有许多不可忽略的优点。Linux具有很强的可移植性Linux内核可免费获得,并可根据实际需要自由修改Linux功能强大并且内核很小Linux支持多种开发语言,如C语言、C++、Java等
411.4Linux的发展和应用1.4.4集群计算机集群计算机利用高速的计算机网络,将许多计算机连接起来,并加入相应的集群软件形成的具有超强可靠性和计算能力的计算机。其具体特点有:性能网络服务的工作负载通常是大量相互独立的任务,通过一组服务器分而治之,可以获得很高的整体性能极高的性能价格比 Linux集群计算机的价格是相同性能的传统超级计算机的10%~30%极强的可扩展性 在Linux集群计算机中增加单个计算机就能增加整个集群的计算能力,并不需要淘汰原来的计算机设备。高可用性 在硬件和软件上都有冗余,通过检测软硬件的故障,将故障屏蔽,由存活节点提供服务,可实现高可用性。
421.4Linux的发展和应用1.选择虚拟机类型打开虚拟机软件VMware,选择新建虚拟机后,选择虚拟机类型配置。
431.5Linux系统安装2.选择虚拟机的兼容性配置虚拟机各项硬件功能参数,包括虚拟机版本兼容性,内存、处理器、网络适配器和硬盘容量的限制。
441.5Linux系统安装3.选择客户机操作系统来源虚拟机如同物理机,需要安装操作系统,安装操作系统程序来源可选择项有“光盘”、“光盘映像文件”和“稍后安装操作系统”。
451.5Linux系统安装4.选择安装在虚拟机上的操作系统类型客户机操作系统类型可选择项有“MicrosoftWindows”、“Linux”和“NovelNetWare”等,
461.5Linux系统安装5.命名虚拟机 为虚拟机设置名称,同时设置该虚拟机相关文件的保存路径。
471.5Linux系统安装6.处理器配置 为此虚拟机指定处理器数量,可配置处理器数量、每个处理器的核心数量。
481.5Linux系统安装7.虚拟机的内存配置 制定分配给此虚拟机的内容量,内容大小必须为4MB的倍数。示例中设置为2048MB,即2GB。
491.5Linux系统安装8.选择网络类型 为客户机操作系统提供网络连接,可选择项有“使用桥接网络”、“使用网络地址转换”、“使用仅主机模式网络”和“不适用网络连接”。501.5Linux系统安装选择“使用桥接网络”,则为客户机操作系统提供直接访问外部以太网络的权限,客户机在外部网络上必须由自己的IP地址若选择“使用网络地址转换”,则为客户机操作系统提供使用主机IP地址访问主机拨号连接或外部以太网网络连接的权限;若选择“使用仅主机模式网络”,则将客户机操作系统连接到主机上的专用虚拟网络。 511.5Linux系统安装9.选择I/O控制器类型 为虚拟机选择SCSI控制器,可选择项有“BusLogic”、“LSILogic”和“LSILogicSAS”。
521.5Linux系统安装10.选择磁盘类型 选择为虚拟机创建何种磁盘,即选择虚拟磁盘类型,可选择项有“IDE”、“SCSI”和“SATA”。
531.5Linux系统安装11.选择磁盘 选择使用哪个磁盘,可选择项有“创建新虚拟磁盘”、“使用现有虚拟磁盘”和“使用物理磁盘”。
541.5Linux系统安装选择“创建新虚拟磁盘”,则虚拟磁盘由主机文件系统上的一个或多个文件组成,客户机操作系统会将其视为单个硬盘,虚拟磁盘可在一台主机上或多台主机之间轻松复制或移动若选择“使用现有虚拟磁盘”,则将重新使用之前配置的磁盘若选择“使用物理磁盘”,则将为虚拟机提供直接访问本地硬盘的权限 551.5Linux系统安装12.指定磁盘容量 为虚拟机制定磁盘大小。根据前面的设置,虚拟机磁盘在计算机上是以文件的形式存储,此处可选择项有“将虚拟磁盘存储为单个文件”和“将虚拟磁盘拆分为多个文件”。
561.5Linux系统安装13.指定磁盘文件 设置存储磁盘文件的路径和文件名。示例中使用的是默认路径,文件名设置为:centos7-2.vmdk。
571.5Linux系统安装14.自定义硬件与配置系统ISO镜像文件到这里虚拟机的配置基本完成。
581.5Linux系统安装点击自定义硬件,把不需要的硬件移除,并配置好系统ISO映像文件的路径。完成自定义硬件的配置后,点击“关闭”按钮,则返回了配置完成界面,点击“完成”按钮,结束虚拟机的所有配置。
591.5Linux系统安装15.启动虚拟机 结束虚拟机的配置后,在库列表中会出现刚新建的虚拟机,鼠标单击选中该虚拟机,可对该虚拟机进行控制,点击“开启此虚拟机”。
601.5Linux系统安装16.设置语言、时区、分区和网络 启动虚拟机后,系统读取ISO映像文件,进行CentOS7.6的自动安装,当系统会加载到语言选择界面时,会停下由用户来选择语言,如图所示。左边语种分类选择“中文”,右边选择“简体中文(中国)”。
611.5Linux系统安装接下来就会进入一个安装信息摘要面板,如图所示,在里面可以调整时区、分区和网络配置等内容。
621.5Linux系统安装首先把时区调整为“中国上海”;然后请根据提示进行配置;示例中提示“INSTALLATIONDESTINATION”存在问题,所以要配置分区,选择自动分区即可,如图所示。最后根据实际情况配置网络和软件选择。
631.5Linux系统安装17.开始安装 当安装信息摘要面板的部分配置完成,点击右下角的“开始安装”按钮,开始安装CentOS7.6。执行安装过程中,可以配置root账户密码,示例中配置root密码为123456,不需要创建普通用户。 641.5Linux系统安装18.完成安装并重启 最后安装成功的界面如图所示。
点击“重启”后即可使用CentOS7.6了。651.5Linux系统安装第二章Linux常用命令1Shell与Shell命令Shell是Linux系统重要的组成部分。Shell是系统的用户界面,它提供了用户与内核进行交互的一种接口,Shell接受用户输入的命令,并对命令进行解释,最后送入内核执行。因此,Shell的实质是一个交互性命令解释器。Shell作为解释器,是linux系统提供给用户最为重要的命令解释程序。独立于操作系统,同时在不通阶段出现了多个不同版本。1Shell与Shell命令BourneShell在1970年作为首个重要的标准UNIXShell正式在系统引入,并以资助者的名字命名。20世纪80年代早期,在伯克利的加利福尼亚大学开发了Cshell,它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、作业控制等功能。KornShell是一个交互式的命令解释器和命令编程语言,它符合POSIX标准(PortableOperatingSystem,一个操作系统的国际标准),标准的目标在于方便应用程序的移植的标准,使得应用程序在源程序级别实现跨多种平台编译称为可能。1Shell与Shell命令BourneAgainShell(bash)是GNU计划的一部分,用于基于GNU的系统如Linux,大多数的Linux(RedHat,Ubuntu,Caldera)都以Bash作为缺省的shell,并且运行sh时,其实调用的是Bash。通常,通常Linux命令都对应一个可执行文件。一般就将其放置在/bin或/usr/sbin下(在PATH中)Bash命令的一般格式是:command-optionsarg1arg2……argn1Shell与Shell命令command-optionsarg1arg2……argn例如:cp–ifile1.cmyfile.c说明:在linux中,Bash的命令名是小写的英文字母,命令格式中由方括号括起来的部分是可选的,命令中选项以一般以“-”开始,多个选项可用“-”连起来。2简单命令who命令命令格式:who[-option][user]命令功能说明:显示系统中有那些使用者正在上面,显示的资料包含了使用者ID,使用的终端机,从哪边连上来的,上线时间,呆滞时间,CPU使用量,动作等等。不使用任何选项时,who命令将显示以下三项内容:loginname:登录用户名terminalline:使用终端设备logintime:登录到系统的时间2简单命令echo命令命令格式:echo[-option][参数]命令功能说明:将命令行中的参数显示到标准输出(即屏幕)上echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。echo命令在shell编程中极为常用,在终端下打印变量value的时候也是常常用到的参数选项:-e:激活转义字符。2简单命令echo命令echo"Thisisredtext"命令功能是在屏幕上显示字符串“Thisisredtext”echo-e"\e[1;31mThisisredtext\e[0m"Thisisredtext命令功能是在屏幕上显示字符串“Thisisredtext”,同时字符串的颜色是红色。其中,“\e[1;31m”将颜色设置为红色,“\e[0m”将颜色重新置回,对前景色和背景色设置颜色的方法可以仿照此方式完成。例如:2简单命令date命令命令格式:date[-option]命令功能说明:在屏幕上显示或设置系统的日期和时间需要显示不同格式的时间或日期时,可以用多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。参数选项:-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;-u:显示GMT;--version:显示版本信息;2简单命令date命令date命令中输入以“+”号开头的参数,可按照指定格式来输出系统的时间或日期,在日常工作时可以把备份数据的命令与指定格式输出的时间信息结合到一起。例如:date+"%Y-%m-%d"命令功能是按照“年-月-日”的格式显示当前系统时间2简单命令cal命令命令格式:cal[选项][参数]命令功能说明:显示公元1~9999年中任意一年或者任意一个月的日历参数选项:-l:显示单月输出;-n:显示临近n个月的日历;-s:将星期日作为月的第一天;-m:将星期一作为月的第一天;-y:显示当前年的日历。例如:cal2019命令功能是2019年的月份信息2简单命令clear命令命令格式:clear命令功能说明:清除屏幕上的信息3文件操作命令cat命令命令格式:cat[选项]文件命令功能说明:查看指定文件的内容,可以在cat命令后跟多个文件,命令会将多个文件的内容在标准输出上显示出来。选项:-n:由1开始对所有输出的行数编号-b:和-n相似,只不过对于空白行不编号-s:当遇到有连续两行以上的空白行,就代换为一行的空白行例如:$cattest.txt命令功能是使用cat命令查看文件内容。3文件操作命令cat命令在阅读文件的时候加上行号,可以使用-n参数例:$cat-ntest.txt命令执行后,会显示文件的内容,同时在每一行的前面有对应的行号作为提示。cat命令也接受通配符,可以使用cat命令一次查看多个文件例:$cattest.txttest2.txt功能是在标准输出(显示器)上显示文件test.txt、test2.txt的内容。例:$cat-ntest*功能是使用cat命令以及通配符*,一次查看多个文件名以test开头文件。还可以使用下面的方法来查看这两个文件:$cattest.txttest2.txt3文件操作命令cat命令把文件test.txt和文件test2.txt合并到另外一个叫test3.txt的文件中去,可以使用cat命令和重定向操作符(“>”)来合并文件例如:$cattest.txttest2.txt>test3.txt把test.txt和test2.txt文件合并,但是并不想再生成另外一个更大的文件的时候,可以考虑使用追加文件的方式。
首先需要决定是把test.txt的内容加到文件test2.txt中去,还是把test2.txt的内容加入test.txt中去。
使用命令:
#cattest.txt>>test2.txt把文件test.txt的内容添加到文件test2.txt的后面去了。3文件操作命令命令格式:more[选项]文件命令功能说明:该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今已显示的该文件的百分比:--More--(XX%)。命令常用选项:-num,这个选项指定一个整数,表示一屏显示多少行。-d,在每屏的底部显示以下更友好的提示信息:-c或-p,不滚屏,在显示下一屏之前先清屏。-s,将文件中连续的空白行压缩成一个空白行显示。+/,该选项后的模式(Pattern)指定显示每个文件之前进行搜索的字符串。+num,从行号num开始。more
命令3文件操作命令more命令以页为单位浏览文件,使用时,可看到屏幕下方有一个“--more--”。可按空格键显示下页,按回车键显示下一行。例如:$morelongfile.txt命令功能是分页显示longfile.txt文件内容。如果需要帮助,请按下“h”键,将看到一个帮助画面。less也是页命令,它提供了比more命令更全面的功能:可以使用光标键在文本文件中前后滚屏,可以用行号或百分比作为书签来浏览文件,可以实现在多个文件中进行复杂的检索、格式匹配、高亮度显示等操作。more
命令3文件操作命令命令格式:head[选项]文件命令功能说明:对指定的文件显示从文件头开始的一定数量的行的内容,一般默认是10行,也可以通过修改选项改变行数。例:$headf1功能是在标准输出(显示器)上显示f1文件前10行的内容。例:$head-4f1功能是在标准输出(显示器)上显示f1文件前4行的内容。tail命令和head命令的功能类似,tail命令显示文件从文件尾开始的一定行数的文件内容。head命令3文件操作命令touch命令命令格式:touch[选项]文件名…命令功能说明:touch命令将会修改指定文件的时间标签,把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来。如果该文件尚未存在,则建立一个空的新文件。选项:-a仅改变指定文件的存取时间。-c,--no-create不创建任何文件。-m仅改变指定文件的修改时间。-tSTAMP使用STAMP指定的时间标签,而不是系统当前的时间。3文件操作命令touch命令例如:$touchexample功能是在当前目录下,如果没有文件名为example的文件则新建此文件,如果此文件存在,则修改文件的时间标签为当前时间。3文件操作命令cp命令命令格式:cp[-option]源文件或目录目标文件或目录命令功能说明:复制指定文件选项:-b:若文件存在则做备份。-v:做移动时解释所做操作-f:若目标文件存在,就删除此文件,不问使用者是否要做移动。例如:cp/etc/passwd/home/test/test.pass功能是将/etc/passwd文件拷贝到/home/test目录下并命名为test.pass。3文件操作命令cp命令cp/etc/*.conf~/功能是将/etc/目录中的所有conf文件拷贝到用户主目录中。cp-R~/ok//tmp功能是将用户目录下的ok目录的全部内容整个拷贝到/tmp目录中。特别说明:使用命令:#cpfile1file2那么命令会把文件file1拷贝到文件file2,同时file1还依然存在。在使用cp命令的时候必须要注意,在把一个文件拷贝到另外一个文件上的时候,会有可能完全覆盖掉原来的文件。3文件操作命令cp命令为了避免覆盖文件这样的问题发生,可以像在copy命令中使用-i和-b参数,在命令执行前进行询问提示,示例如下:#cp–ifile1file2cp:overwrite'file2'?n#cp-bifile1file2cp:overwrite'file2'?y#lsfile*file1file2file2~file3请注意已经被覆盖的文件file2已经有了备份。3文件操作命令mv命令命令格式:mv[-option]源文件或目录目标文件或目录命令功能说明:文件更名或搬移。选项:-b:若文件存在则做备份。-v:做移动时解释所做操作-f:若目标文件存在,就删除此文件,不问使用者是否要做移动。3文件操作命令使用mv命令给文件改名是比较常规的方法例:#touchfile1#mvfile1file2上面的命令把文件file1改名为文件file2。除了更改文件名之外,mv命令还可以用来更改子目录名而不管这个子目录是空的还是存在文件。3文件操作命令使用mv命令搬移文件例如:$mv/usr/test/*.命令功能是将/usr/test中的所有文件移到当前目录(用“.”表示)中。注意:mv与cp的结果不同。mv好象文件“搬家”,文件个数并未增加,而cp对文件进行复制,文件个数增加了。mv命令最常用的两个选项:选项-b:在把某文件或子目录名字改为其他文件或子目录已使用过名字的时候,将会对原有文件或子目录进行备份例如:$touchtestdeuxa3文件操作命令使用mv命令搬移文件$lstestdeuxatestdeuxa$mvtestdeux$lstetsdeuxals:test:Nosuchfileordirectorydeuxa在没有使用-b选项时,mv命令不仅把文件test改名为deux,还在操作过程中删除了deux。如果在上面的实例中增加-b选项:$touchtestdeuxa3文件操作命令使用mv命令搬移文件$lstestdeuxatestdeuxa$mv–btestdeux$lsdeux*adeuxdeux~tres上例显示,虽然文件test已被改名并取代了文件deux,但已生成文件deux的一个备份,这个备份文件有一个缺省的波浪号(~)后缀。-i选项在目标文件存在时要求确认,如下所示:$touchfile2file3$mv–ifile2file33文件操作命令使用mv命令搬移文件mv:replace’file3’?y在上面的例子中,建立了两个文件,然后把文件file2改名为文件file3,并且这样做的结果就是删除了文件file3。使用了-i参数,mv命令就会询问是否真的想覆盖文件file3。如果没有发生覆盖,即使使用了-i参数mv命令也不会要求核实。可以把-i和-b参数一起使用,如下所示:#mv–bifile2file33文件操作命令使用rm命令删除文件命令格式:rm[-option]文件名命令功能说明:删除指定文件。使用rm命令时要注意,因为用rm命令删除了某文件的话,这个文件就不存在了。rm命令可以从命令行上一次删除一个或者几个文件。例如:#rmfile#rmfile1file2file3#rmfile*上面的第一个命令行删除了一个名称为file的文件,第二个命令行删除了三个文件,而第三个命令行则删除了当前子目录中文件名以字母file开头的所有文件。3文件操作命令使用rm命令删除文件使用rm命令比较安全的办法之一是使用它的-i交互操作参数,这样在操作过程中会被问到是否真的想删除某个文件,如下所示:#rm-inew*rm:remove'newfile'?yrm:remove'newfile2'?y还可以使用-f参数强行删除某个文件,如下所示:#rm-fnew*3文件操作命令使用rm命令删除文件以超级用户身份登录系统并使用rm命令可能造成灾难性后果,因为一个简单rm命令可能毁掉Linux系统,甚至毁掉包括DOS分区、活动硬盘等在内的任何已安装文件系统,这个命令就是:#rm–fr/*-r选项会从根目录(/)开始递归地删除所有的文件和子目录。如果真的想彻底无法恢复,可以使用命令:shred4目录及其操作命令cd命令命令格式:cd[-option]目录名命令功能说明:改变当前目录。当cd命令后跟一个路径名,可以将当前目录改为另外一个子目录。如:$cd/usr/bin在路径表示中“.”表示当前目录,“..”表示当前目录的上一层目录。假设当前目录是在/usr/bin子目录中,可以用如下命令进入/usr子目录,也可以用cd..进入上层目录/usr。当然,无论在哪个路径下,回到自己的缺省工作目录的方法是:$cd或者$cd~。4目录及其操作命令pwd命令命令格式:pwd[-option]命令功能说明:显示(打印)用户当前所处的目录。$cd/usr/bin$pwd/usr/bin4目录及其操作命令ls命令命令格式:ls[-option]Name命令功能说明:查看文件或目录信息。4目录及其操作命令ls–a:列出某目录下的全部文件(linux也有隐藏文件);ls–l:列举目录内容的细节,包括权限、所有者、建立日期、时间、大小。ls–F:在列出文件或目录项后加一个符号表示文件类型,如“/”表示显示项为一个目录,“*”表示显示项为一个可执行文件,“@”表示一个连接文件;ls–R:递归显示子目录内容;ls–S:按文件大小排序显示(由大到小)4目录及其操作命令常用参数:①使用ls命令列出子目录的内容清单,ls的基本格式列出当前子目录中的文件:$ls②使用ls命令列出用户子目录中的文件,也可以使用-m选项把文件用逗号分隔显示:$ls-m③用ls-l显示当前目录下的文件的详细信息:$ls-l命令功能是显示当前目录下所有文件的详细信息。④用ls–F列出文件类型:$ls-F如上所示,-F选项使ls命令在子目录名之后加上斜线(“/”)字符,在可执行文件search后加星号(“*”)字符。4目录及其操作命令mkdir命令命令格式:mkdir[-option]目录名命令功能说明:创建子目录。mkdir命令一次可以建立一个或者几个子目录。mkdir命令还可以只使用一个命令行一次就建立起包括全部的父目录和子目录在内的一个完整的子目录继承结构。目录名可以是绝对路径,也可以是相对路径。参数选项:-p:建立目录时,如果父目录不存在,则此时可以与子目录一起建立。例:#mkdirtemp功能是使用mkdir命令建立子目录4目录及其操作命令mkdir命令#mkdirtemp2temp3temp4命令功能是一次建立多个子目录当使用mkdir命令建立子目录时,如果mkdir命令会提示子目录不存在,表示在建立子目录时,路径中存在没有建立的目录。如果希望mkdir命令建立一系列完整的子目录结构,就必须使用它的-p参数,即父操作参数。例:mkdir–ptemp/parent/child假设这条命令执行之前没有建立temp目录、parent目录,那么mkdir命令不仅建立了子目录temp5,还在它的下一层建立了parent子目录,而子目录parent中又建立了一个child子目录。4目录及其操作命令rmdir命令命令格式:rmdir[-option]目录名命令功能说明:删除子目录。选项:-p:一起删除父目录时,父目录下应无其他目录。删除目录的例子如下:#rmdirtempdirectory命令功能是删除当前目录下的子目录tempdirectory。但是,这个子目录必须是空的。如果试图删除一个其中还有文件的子目录,就会得到出错信息。例:#rmdirtemp命令删除了temp/parent目录下的所有文件及目录:#rmdir–ptemp/parent/*5命令历史、名称补全history命令命令格式:history[option][arg…]命令功能说明:显示历史命令的清单。history命令如果不带任何参数,则history命令会显示历史命令的清单;如果给出一个正整数(如50),就只显示历史表中的最后50行命令;如果history后给出一个文件名,就把它作为历史文件名。选项有:-a在历史文件中添加“新”历史命令行。-n从历史文件中读取尚未读入的历史命令行,添加到当前历史清单中。-r读取历史文件的内容,并把它作为当前的历史命令。-w把当前的历史写到历史文件中,覆盖原有内容。5命令历史、名称补全配置历史命令环境在默认方式下,bash使用用户主目录下面的文件“.bash_history”来保存命令历史,改变存放历史命令的文件的方式是修改环境变量HISFILE的内容。历史文件中能够保留的命令个数,默认值为1000,修改环境变量HISTSIZE的值来重新设定能够保留的命令个数。可以输入目录名或文件名的开头部分,然后按Tab键,Linux根据输入的字母查找以这些字母开头的目录或文件,并自动补全剩余的部分。5命令历史、名称补全alias命令命令格式:alias[name[=value]]…命令功能说明:对命令、语句定义别名如果没有指定参数,将在标准输出(屏幕)上显示别名清单,定义别名时,往往用单引号将它代表的内容括起来,从而防止shell对其中的内容产生歧义,如对空格和特殊字符另作解释。例如:$aliasll=’ls-l’$aliash=’history’命令的功能是对ls-l,定义别名为ll。定义h表示命令history,此时赋值号两边不能有空格。定义后就可以将ll和作为命令来使用了。如果想取消先前定义的别名,则使用命令:例如:$unaliasll6联机帮助命令对于shell的实质是命令解释器,由shell将命令翻译成计算机可以识别的机器语言给计算机内核,再由计算机内核将结果返还给shell,shell翻译成用户熟悉的语言并将结果显示出来。在shell识别的命令中分为内建命令和外部命令。Linux操作系统的联机帮助对每个命令的准确语法都做了说明。6联机帮助命令内建命令:就是shell程序的一部分,包含的是一些比较简单的Linux系统命令,这些命令写在bash源码的builtins里面的,由shell程序识别并在shell程序内部完成运行,通常在Linux系统加载。执行内部命令的时候执行速度比较快。比如:history、cd、exit等等。外部命令:是Linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调入内存。命令执行过程是由shell程序控制的,外部命令是在Bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。使用时需要从硬盘读取入内存,所以相对来说速度就慢一点。6联机帮助命令help命令help命令只能用于内部命令例如:$helpcdman命令man工具是显示系统手册页中的内容,是一本电子版的字典,可以通过一些参数,快速查询linux帮助手册,并且格式化显示。参数选项:-a显示所有匹配项-d显示man查照手册文件时候,搜索路径信息,不显示手册页内容-D同-d,显示手册页内容-f同命令whatis,将在whatis数据库查找以关键字开同的帮助索引信息-h显示帮助信息6联机帮助命令info命令info命令得到的信息比man要丰富,info来自自由软件基金会的GNU项目,是GNU的超文本帮助系统,能够更完整的显示出GNU信息。例:$infols命令是查看ls命令的使用方法。man和info就像两个集合,它们有一个交集部分,但与man相比,info工具可显示更完整的GNU工具信息。第3章文件系统3.1文件和文件系统概述3.1.1文件的概念文件是指具有符号名和在逻辑上具有完整意义的信息集合。通常文件包含两个基本要素:符号名和信息,也可称为文件名和内容。3.1.2文件的类型Linux根文件系统只包含目录(在Linux中一切皆文件,目录也是文件的一种)和文件,对于文件的类型基本可以普通文件、目录、链接文件、套接字、命令管道、块设备文件、字符设备文件七种。1.普通文件(-)普通文件主要指的是字节序列,Linux中并没有对其内容规定任何的结构。其中文件可以是程序源代码(c、c++、python、perl等)、也可以是可执行文件(文件编辑器、数据库系统、出版工具、绘图工具)、图片、声音、图像等多媒体形式。在Linux环境下,系统不会区别对待这些普通文件,只有处理这些文件的应用程序才会对根据文件的内容赋予相应的含义。只要是可执行的文件并具有可执行属性就能执行2.目录(d)
目录文件是由一组目录项组成,目录项可以是对其他文件的指向也可以是其目录下的子目录指向。一个文件的名称是存储在他的父目录中的,而并非同文件内容本身存储在一起。3.符号链接(l)符号链接分为硬链接和软链接。硬链接文件实际上就是在某目录中创建目录项,从而使不止一个目录可以引用到同一个文件。软链接又称为符号链接,是指将一个文件指向另外一个文件的文件名。这种符号链接的关系由ln-s命令行来建立。链接的内容是名字指向的文件,是两个不同的文件,可以跨越分区。4.套接字(s)套接字(socket)允许运行在不同计算机上的两个进程之间进行相互通信。5.命名管道(p)命名管道(FIFO)文件允许运行在同一台计算机上的两个进程之间进行通信。管道文件就是从一头流入从另一头流出的文件。使用以下命令可以看到文件属性第一个字符是“p”,这就是管道文件。字符设备文件(c)和块设备文件(b)字符设备文件(c)和块设备文件(b)都属于设备文件,不存在用后缀来区分,和其他文件一样,都是用第一位的字母来区分文件类型。用户既可以用设备名来使用设备,也可以通过访问文件的形式来使用设备,所有的设备文件都会保存在/dev目录下,3.2文件系统类型文件系统是操作系统最重要的一部分,决定了磁盘上存储文件的方法和数据结构,其主要功能是存储文件的数据Linux文件类型和文件名所代表的意义是两个不同的概念,通过应用程序创建的类似于file.txt或者file.tar.gz这两种,虽然是通过不同的程序来打开,但都属于常规的文件。3.2.1常见的文件系统类型每种操作系统都有自己的文件系统,比如,常用的windows操作系统,所用的文件系统最主要是FAT16、FAT32、NTFS这几种,而Linux主要使用ext2/3/4,xfs等类型,只要在磁盘分区上创建文件系统后,就能在磁盘分区上储存于读取文件。3.3文件系统结构3.3.1系统目录结构Linux的文件结构是以根目录“/”倒置树的形式存在的,通过上下连接的分层目录文件结构来组织文件,每一个目录可能包含了文件和其他目录,子目录下可以有任意多个文件和子目录,用户可以用目录或者子目录形成的路径名对文件进行操作。3.3.2路径文件名由路径名给出,路径名唯一确定一个文件在整个文件系统中的位置。路径一般分为绝对路径和相对路径。绝对路径:一般以斜线开始,即“/”根目录开始,是文件的最起始端。相对路径:一般不以斜线开始而是从当前目录开始,指定文件相对于当前目录的位置,当前目录是指用户当前在目录树种所处的目录位置,也可以成为工作目录。3.4文件和目录权限管理文件和目录并不是每一个用户或者组都能访问,为了控制文件和目录的访问,可以设置文件和目录的访问权限,以这样的方法来决定谁能访问,谁能修改。通过权限的设置还可以修改文件和目录的所有者。3.4.1文件和目录权限在Linux系统中,用户对一个文件或者目录具有访问权限,这些访问权限决定了谁能访问以及怎么访问。通过设置权限可以实现以下三种用户的访问显示:文件的用户所有者、文件的组群所有者、其他用户。1.基本权限每一位用户对文件和目录有三种权限,读取、写入、可执行。第一组权限是所有者权限(user),控制访问自己的文件权限;第二组权限是所有组权限(group),控制用户组访问其中一个用户的文件权限;第三组权限是其他用户权限(other),控制其他所有用户访问一个用户的文件的权限。这三组权限赋予用户不同类型的读取、写入以及执行权限。2.设置方法(1)数字设定法文件和目录的权限表中只有r、w、x三个字符来为用户所有者、所有组群和其他用户设置权限。数字法中一共包含的数字是4,2,1,其中4表示读取权限,2表示写入权限,1表示可执行权限,如果没有任何权限,用0表示。需要得知权限是多少时,只需要进行上述数字相加求合即可。(2)文字设定法通过文字设定法更改权限需要使用chmod命令,在一个命令行中可以给出多个权限,中间用逗号隔开。3.4.3文件和目录的特殊权限文件和目录的特殊权限在linux系统中除了基本的读取、写入、可执行三个权限外,分别还有SUID、SGID、Sticky三个特殊权限。特殊权限的设置方法和和常规权限的设置方法一样,可以采用数字设定法和文字设定法。第4章Linux系统概述1234了解Linux中文本编辑器的种类掌握vim编辑器的基本使用理解vim在字符界面下的功能熟练运用vim编辑器的几种工作模式学习要求CONTENTSVim是VisualInterfaceImproved,是Vi的增强版。可以执行输出、删除、查找、替换、块操作等众多文本操作,全部由命令完成,使用非常方便,程序员可以方便地对其进行扩展设置以满足自己更多的需求。4.1Vi编辑器Vim编辑器的工作模式一般分为三种:插入模式、命令模式、末行模式。4.2vim编辑器的工作模式4.3.1Vim的进入与退出1.Vim的进入当进入Vim命令后,便出现全屏编辑环境,需要进入文档编辑,按“i”“N”等子母键即可。4.3Vim的基本操作在退出Vim之前,通常先按“ESC”键,确保当前状态为命令状态,然后需要进行何种保存依次选择:“w”“wq”“q”“q!”2.Vim的退出在shell提示符下输入“vi文件名”之后就进入了命令模式,在命令模式下是不能输入任何数据的,所以需要键入一些字母键来完成文档的编辑。4.3.2Vim的编辑在命令模式下,光标的移动命令非常多,熟练掌握下列命令,可以大大的提高用户的编辑效率。4.3.3Vim的光标移动复制和粘贴操作文本编辑最常用的操作之一在Vim中为用户提供了缓冲区,但用户需要选择内容进行复制命令的时候,选中的信息即被存入到缓冲区中,如果多次复制,缓冲区的内容会被刷新为最近一次复制的文本信息。4.3.4Vim的复制和粘贴利用Vim的删除命令,可以删除一个或者多个字符,也可以删除一行的部分或者全部内容。4.3.5Vim的删除和取消Windows环境中有“查找”、“替换”等功能,Vim中也提供了查找和替换的相关命令,但完成这些命令,是需要在末行模式下进行,用户只需要输入“/”或者“?”就能直接切换到末行模式,在这两个符号的后面添加需要查找的信息即可。4.3.6Vim的查找和替换在Vim中一般打开一个文档使用#Vimfile1如需要打开多个文档,则在#Vim后面添加file1,file2…filen;因工作需要,有时候需要在文档编辑与其他文档之间进行切换或者编辑等4.3.7Vim的多文件编辑第五章
Linuxshell程序设计1Shell概述1.1Shell模式类别在Linux系统下,每一个Shell程序被称为一个脚本。Shell能调用所有的Linux命令、公共程序。从执行的形式上Shell分成非交互式和交互式。非交互式Shell,不需要读取用户的输入,也不用向用户反馈某些信息。每次执行都是可预见的,因为它不读取用户输入,参数是固定的,可以在后台执行。交互式Shell,脚本可以读取用户的输入,实时向用户反馈信息(输出某些信息),这样的脚本更灵活,每次执行时的参数可由用户动态设定,用户界面更友好,但交互式不适用于自动化任务,例如执行cron任务就不适合使用交互式。1Shell概述1.2Shell脚本的特点脚本是一种高级程序设计语言,它有变量,关键字,有各种控制语句,如if、case、while、for等语句,支持函数模块,有自己的语法结构shell的具备自己的特点1Shell概述组合新命令提供了文件名扩展字符01直接使用shell的内置命令02灵活地使用数据流03结构化的程序模块04在后台执行命令05可配置的环境06高级的命令语言071Shell概述Shell脚本的建立Shell脚本是一个文本文件,其中包含将由Shell执行的一系列命令。当运行一个Shell脚本时,脚本文件中的每一条命令被传送给Shell执行。执行shell脚本的方式基本上有三种:
(1)输入定向到shell脚本
$bash<脚本名
(2)以脚本名作为参数其一般形式是:$bash脚本名[参数]
如果以目前shell(以·表示)执行一个shell脚本,则可以使用如下简便形式:
$·
脚本名[参数]
(3)将shell脚本的权限设置为可执行,然后在提示符下直接执行它。
$chmoda+xex2$PATH=$PATH:.$ex2注意,此时该脚本所在的目录应被包含在命令搜索路径(PATH)中2Shell的特殊字符在这个方式中,符号就表示bash命令。第三种是将shell脚本的权限设置为可执行,在提示符下直接执行它。执行的形式是:$chmoda+x脚本文件名//修改脚本的权限为可执行$•/脚本文件名//直接执行脚本,•/表示当前目录下2Shell的特殊字符在Linux中有部分符号具备特殊的含义,在shell脚本以及命令使用中要特别注意这些符号的使用方法,在介绍变量符号之前,先集中说明几类在Linux中使用较多的特殊字符。2Shell的特殊字符通配符*(星号)——表示匹配任意字符0次或多次?(问号)——表示匹配任意一个字符[](一对方括号)——其中有一个字符组。其作用是匹配该字符组所限定的任何一个字符!(惊叹号)——如果它紧跟在一对方括号的左方括号([)之后,则表示不在一对方括号中所列出的字符对于以上几个通配符号,分别说明一下,例如test*表示以test开头的所有字符串;test?表示以test开头,字符串长度为5的字符串;test[1-3]表示匹配test1、test2、test3三个串中的任意一个;test[!0-9]表示test后不接数字,同时字符串长度为5的字符串。2Shell的特殊字符引号①单引号(''):转义其中所有的变量为单纯的字符串。由双引号括起来的字符(除$、倒引号(`)和反斜线(\)外)均作为普通字符对待。例如:echo"hello"//在屏幕上显示字符串helloecho"hello`pwd`"//在屏幕上显示字符串hello`pwd`echo"hello\""//在屏幕上显示字符串hello\"②双引号(""):保留其中的变量属性,不进行转义处理。由双引号括起来的字符(除$、倒引号(`)和反斜线(\)外)均作为普通字符对待。例如:echo"hello"//在屏幕上显示字符串helloecho"hello`pwd`"//在屏幕上显示字符串hello以及执行命令pwd的结果echo"hello\""//在屏幕上显示字符串hello"2Shell的特殊字符引号③倒引号(``):把其中的命令执行后返回结果。倒引号括起来的字符串被shell解释为命令行,在执行时,shell会先执行该命令行,并以它的标准输出结果取代整个倒引号部分。例如:echo`date`//显示date命令执行的结果,即显示当前系统时间。说明:形式$(命令表)的功能与倒引号类似,都能实现将结果代换到当前命令行中的功能。例如:dd=`date+%Y:%m:%d`LL=$(ls-l)dir=$(pwd)2Shell的特殊字符引号echo$dd$LL$dir上面的例子中变量dd存放的是date命令执行后的结果,是当前系统时间按照“年:月:日”形式的字符串;变量LL中存放的是以长格式形式显示的当前目录下所有文件的信息;变量dir中存放的是命令pwd执行后显示当前路径的字符串。2Shell的特殊字符注释在脚本中以"#"开头的语句都是注释,在执行过程中不会解释执行。管道线管道符"|"就是把前面的命令运行的结果丢给后面的命令例如:ls-l$HOME|wc–l命令的功能是显示主目录下文件的个数2Shell的特殊字符后台命令后来命令的符号是&,功能是把暂停的任务放在后台跑起来,对应的命令就是bg命令。例如:$gccm1.c&功能是在后台执行gccm1。当然,利用bg命令可以使一个进程到后台运行,也可以使进程终止(按Ctrl+c组合键);同时,当运行一个进程时,可以使它暂停(按Ctrl+z),然后使用fg命令恢复这个进程。2Shell的特殊字符顺序执行(;)在执行时,若有多条命令一起,以分号隔开的各条命令从左到右依次顺序执行。例如:pwd;who|wc-l;cd/usr/bin逻辑与(&&)形式是:命令1&&命令2其功能是,先执行命令1,如果执行成功,才执行命令2;否则,若命令1执行不成功,则不执行命令2。2Shell的特殊字符{}形式以花括号括起来的全部命令可视为语法上的一条命令,出现在管道符的一边。例如:{echo"UserReportfor`date`.";who;}|pr使用花括号时在格式上应注意:左括号“{”后面应有一个空格;右括号“}”之前应有一个分号(;),否则会报错。2Shell的特殊字符()形式以括号中的命令将会新开一个子shell顺序执行。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。例:(echo"Currentdirectoryis`pwd`."cd/home/mengqc;ls-l;catem1)|pr圆括号中有多条语句,在一行的语句之间用分号隔开,执行圆括号中的命令时,会建立新的子进程执行。两个成组符号之间存在重要区别:用花括号括起来的成组命令只是在本shell内执行命令表,不产生新的进程;而用圆括号括起来的成组命令是在新的子shell内执行,要建立新的子进程。3Sh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024设备技术合同范文
- 2024中国农业发展银行抵押担保借款合同
- 2024施工图设计委托合同参考范文
- 2024工程机械租赁的合同书
- 沈阳理工大学《MATAB技术应用》2022-2023学年第一学期期末试卷
- 2024建筑钢材供应合同样本
- 2024学校与教师之间的劳动合同
- 深圳大学《中国社会史》2022-2023学年第一学期期末试卷
- 深圳大学《药学文献检索与利用》2021-2022学年第一学期期末试卷
- 集体土地房屋征收协议书(2篇)
- 天一大联考2025届物理高一上期中质量检测模拟试题含解析
- 心理健康教育教师自我分析及申请理由
- 中低产田类型划分及改良技术规范
- 朝鲜族介绍课件
- 2024-2030年再生医学市场发展行情监测及前景运营态势趋向研判研究报告
- 用户运营指南
- 2020年山东烟台中考满分作文《就这样被打动》9
- 国网员工合同模板
- 建设2台66000KVA全封闭低碳硅锰矿热炉项目竣工环保验收监测调查报告
- 期中核心素质卷(试题)-2024-2025学年数学六年级上册北师大版
- 《Photoshop图像处理》5.《滤镜特效技巧的学习》试卷
评论
0/150
提交评论