linux课程课件.ppt

上传人:文库蛋蛋多 文档编号:2212378 上传时间:2023-01-31 格式:PPT 页数:428 大小:1.05MB
返回 下载 相关 举报
linux课程课件.ppt_第1页
第1页 / 共428页
linux课程课件.ppt_第2页
第2页 / 共428页
linux课程课件.ppt_第3页
第3页 / 共428页
linux课程课件.ppt_第4页
第4页 / 共428页
linux课程课件.ppt_第5页
第5页 / 共428页
点击查看更多>>
资源描述

《linux课程课件.ppt》由会员分享,可在线阅读,更多相关《linux课程课件.ppt(428页珍藏版)》请在三一办公上搜索。

1、1,Linux操作系统,吴翔虎,2,第一章 Linux概述,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。Linux最早由一位名叫Linus Torvalds的计算机爱好者开发,他的目的是设计一个代替Minix的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能。,3,Linux概貌,Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linu

2、x可在GNU(“不是UNIX”工程的缩写)公共许可权限下免费获得,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。,4,Linux概貌,Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无约束地继续传播。另一个原因是,它具有Unix的全部功能,

3、任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。,5,Linux的主要特点,开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。,6,Linux的主要特点,设备独立性:是指操作

4、系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力 提供了丰富的网络功能:完善的内置网络是Linux一大特点。可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上

5、运行。,7,Linux的组成,LINUX的内核:内核是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。LINUX SHELL:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。LINUX文件系统:Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前浒的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。LINUX应用系统:标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。,8,Linux的主要版本,红旗Linux

6、 冲浪Linux 中软Linux Red Hat Linux Mandrake Linux TurboLinux,9,Linux的系统结构,10,Linux文件系统,11,文件系统的特点,层次结构文件数据的一致对待建立、删除文件的能力文件的动态增长文件数据的保护把外围设备(如终端及磁盘等)作为文件看待,12,处理环境,1、程序与进程程序是一个可执行文件,进程是一个执行中的程序的实例;2、子进程与父进程 一个进程可通过系统调用fork创建一个新进程,称创建的进程为子进程,而创建它的进程称为父进程。3、系统调用的执行shell命令解释程序 shell允许三种类型的命令:可执行文件;包含一系列she

7、ll命令的可执行文件;一个内部shell命令。,13,Linux操作系统的服务,通过允许进程的创建、终止、挂起及通信来控制进程的执行 对进程在CPU上的执行进行公平调度对正在执行的进程分配主存为实现用户数据的有效存储和检索而分配二级存储允许进程对IO设备进行有控制的存取,14,Linux对硬件的要求,1、用户进程的执行状态:用户态和核心态2、中断与异常中断:允许IO外设或系统时钟异步终端CPU例外:指的是有一个进程引起的非期望事件,如:非法存储寻找,执行特权指令等3、存储管理核心永远驻留在主存中编译程序产生的是虚地址,核心与机器硬件一起协作,建立虚地址到物理地址的转换,15,第二章 Shell

8、及常用命令,shell是一种命令解释器,它提供了用户和操作系统之间的交互接口。shell是面向命令行的,而X Window 则是图形界面。你在命令行输入命令,shell进行解释,然后送往操作系统执行。shell可以执行Linux 的系统内部命令,也可以执行应用程序。你还可以利用外壳编程,执行复杂的命令程序。shell也可以说是一种程序设计语言。,16,Shell的类型,Linux 提供几种shell程序以供选择。常用的有Bourne shell(b s h)、C shell(c s h)和Korn shell(k s h)。各个shell都能提供基本的功能,又有其各自的特点。Bourne sh

9、ell是由Steven Bourne 编写的,是UNIX 的缺省shell。Bourne shell编程能力很强。但它不能处理命令的用户交互特征。bash 是Bourne 外壳的增强版。,17,Shell的类型,C shell是由加利福尼亚大学伯克利分校的Bill Joy编写的。它能提供Bourne shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。很多人认为,C shell的编程能力不如Bourne shell,但它的语法和C语言类似,所以C程序员将发现C shell很顺手。tcsh 是C shell的增强版本和C shell完全兼容。K o r n shell是由D

10、ave Korn 编写的。Korn shell融合了C shell和Bourne shell的优点,并和Bourne shell完全兼容。Korn shell的效率很高,其命令交互界面和编程交互界面都很不错。Public Domain Korn shell(p d k s h)是Korn shell的增强版。,18,bash shell,bash 是大多数L i n u x系统的缺省外壳。它克服了Bourne 外壳的缺点,又和Bourne 外壳完全兼容。ba s h有以下的特点:补全命令行。当你在bash 命令提示符下输入命令或程序名时,你不必输全命令或程序名,按Tab 键,b a s h将自

11、动补全命令或程序名。通配符。在b a s h下可以使用通配符*和?。*可以替代多个字符,而?则替代一个字符。,19,bash shell,历史命令。bash 能自动跟踪你每次输入的命令,并把输入的命令保存在历史列表缓冲区。缓冲区的大小由HISTSIZE 变量控制。当你每次登录后,home 目录下的.bash_history 文件将初始化你的历史列表缓冲区。你也能通过history 和fc 命令执行、编辑历史命令。别名。在b a s h下,可用alias 和unalias 命令给命令或可执行程序起别名和清除别名。这样你可以用自己习惯的方式输入命令。,20,bash shell,输入/输出重定向。

12、输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。输出重定向更为常用,它经常用于将命令的结果输入到文件中,而不是屏幕上。输入重定向的命令是。管道。管道用于将一系列的命令连接起来。也就是把前面的命令的输出作为后面的命令的输入。管道的命令是|。,21,bash shell,提示符。bash 有两级提示符。第一级提示符就是你登录外壳时见到的,缺省为$。你可以通过重新给p s 1变量赋值来改变第一级提示符。当b a s h需要进一步提示以便补全命令时,会显示第二级提示符。第二级提示符缺省为,你可以通过重新给p s 2变量赋值来改变第二级提示符。一些特殊意义的字符也可以加入提示符赋值中。作业控

13、制。作业控制是指在一个作业执行过程中,控制执行的状态。你可以挂起一个正在执行的进程,并在以后恢复该进程的执行。按下Ctrl+Z 挂起正在执行的进程,用b g命令使进程恢复在后台执行,用f g命令使进程恢复在前台执行。,22,登陆和退出,Linux 启动后,给出login 命令,等待用户登录。Login:Password:如果是正确的用户名和密码,那么你就会进入Linux 的shell,shell给出命令提示符,等待你输入命令(不要随意以r o o t身份登录,以避免对系统造成意外的破坏)。使用l o g o u t命令退出外壳。,23,更改账号密码,语法:p a s s w dOld pass

14、word:New password:Retype new password:,24,联机帮助,语法:man 命令例如:man ls,25,远程登录,语法:rlogin 主机名-1 用户名例如:rlogin doc 远程登录到工作站doc 中。rlogin doc-l user 使用user 帐号登录到工作站doc 中。语法:telnet 主机名或telnet IP地址例如:telnet doctelnet 140.109.20.251,26,文件或目录处理,列出文件或目录下的文件名。语法:ls-atFlgR namename:文件名或目录名。例如:ls 列出目前目录下的文件名。ls-a 列出包

15、括以开始的隐藏文件的所有文件名。ls-t 依照文件最后修改时间的顺序列出文件名。,27,文件或目录处理,ls-F 列出当前目录下的文件名及其类型。以/结尾 表示为目录名,以*结尾表示为可执行文件,以 结尾表示为符号连接。ls-l 列出目录下所有文件的权限、所有者、文件大 小、修改时间及名称。ls-lg 同上,并显示出文件的所有者工作组名。ls-R 显示出目录下以及其所有子目录的文件名。,28,改变工作目录,语法:cd namen a m e:目录名、路径或目录缩写。例如:cd 改变目录位置至用户登录时的工作目录。cd dir1 改变目录位置至d i r 1目录下。,29,改变工作目录,cd u

16、ser 改变目录位置至用户的工作目录。cd.改变目录位置至当前目录的父目录。cd./user 改变目录位置至相对路径user 的目录下。cd/./.改变目录位置至绝对路径的目录位置下。cd 改变目录位置至用户登录时的工作目录。,30,复制文件,语法:cp-r 源地址目的地址例如:cp file1 file2 将文件file1 复制成f i l e 2。cp file1 dir1 将文件file1 复制到目录dir1 下,文件名 仍为f i l e 1。,31,复制文件,cp/tmp/file1.将目录/tmp 下的文件file1 复制到当前 目录下,文件名仍为f i l e 1。cp/tmp/

17、file1 file2 将目录/tmp 下的文件file1 复制到 当前目录下,文件名为f i l e 2。cp-r dir1 dir2 复制整个目录。,32,移动或更改文件、目录名称,语法:mv 源地址目的地址例如:mv file1 file2 将文件f i l e 1更名为f i l e 2。mv file1 dir1 将文件f i l e 1移到目录dir1 下,文件名 仍为f i l e 1。mv dir1 dir2 将目录dir1 更改为目录d i r 2。,33,建立新目录,语法:mkdir 目录名例如:mkdir dir1 建立一新目录d i r 1。,34,删除目录,语法:rm

18、dir 目录名或rm 目录名例如:rmdir dir1 删除目录d i r 1,但dir1 下必须没有文件 存在,否则无法删除。rm-r dir1 删除目录d i r 1及其子目录下所有文件。,35,删除文件,语法:rm 文件名例如:rm file1 删除文件名为file1 的文件。rm file?删除文件名中有五个字符且前四个字符为 file 的所有文件。rm f*删除文件名中以f 为字首的所有文件。,36,列出当前目录,语法:p w d,37,查看文件内容,语法:cat 文件名例如:cat file1 以连续显示方式,查看文件名file1 的内容。,38,分页查看文件内容,语法:more

19、文件名或cat 文件名|more例如:more file1 以分页方式查看文件名file1 的内容。cat file1|more 以分页方式查看文件名file1 的内容。,39,查看目录所占磁盘容量,语法:du-s 目录例如:du dir1 显示目录dir1 的总容量及其子目录的容量(以KB 为单位)。du-s dir1 显示目录dir1 的总容量。,40,文件传输,1.拷贝文件或目录至远程工作站语法:rcp-r 源地址主机名:目的地址例如:rcp file1 doc:/home/user 将文件f i l e 1拷贝到工作站doc 路径/home/user 下。rcp-r dir1 doc:

20、/home/user 将目录d i r 1拷贝到工作站doc 路径/home/user 下。,41,文件传输,2.自远程工作站,拷贝文件或目录语法:rcp-r 主机名:源地址目的地址例如:rcp doc:/home/user/file1 file2 将工作站d o c路径/home/user 下的文件file 1,拷贝到当前工作站的目录下,文件名为file 2。rcp-r doc:/home/user/dir1.将工作站doc 路径/home/user 下的目录d i r 1,拷贝到当前工作站的目录下,目录名仍为d i r 1。,42,文件传输,3.本地工作站与远程工作站之间的文件传输必须拥有

21、远程工作站的帐号及密码,才可进行传输工作。语法:ftp 主机名或ftp ip地址例如:ftp doc 与远程工作站doc 之间进行文件传输。Name(doc:user-name):Password(doc:user-password):ftp help 列出ftp 文件传输时可使用的命令。ftp!ls 列出本地工作站当前目录下的所有文件名。ftp!pwd 列出本地工作站当前所在的目录位置。ftp ls 列出远程工作站当前目录下的所有文件名。,43,文件传输,ftp dir 列出远程工作站当前目录下的所有文件名。ftp dir.|more 分页列出远程工作站当前目录下的所有文件 名。ftp pw

22、d 列出远程工作站当前所在的目录位置。ftp cd dir1 更改远程工作站的工作目录位置至dir1 之下。ftp get file1 将远程工作站的文件f i l e 1拷贝到本地工作站 中。ftp put file2 将本地工作站的文件f i l e 2拷贝到远程工作站 中。ftp mget*.c 将远程工作站中扩展文件名为c 的所有文件拷 贝到本地工作站中。,44,文件传输,ftp mput*.txt 将本地工作站中扩展文件名为txt 的所有文件 拷贝到远程工作站中。ftp prompt 切换交互式指令(使用mput/mget 时不是每个文 件皆询问y e s/n o)。ftp quit

23、 结束ftp 工作。ftp bye 结束ftp 工作。注意从PC与工作站间的文件传输也可透过在PC端的FTP指令进行文件传输,指令用法与上述指令大致相同。,45,文件权限设定,1.改变文件或目录的读、写、执行权限语法:chmod-R mode namen a m e:文件名或目录名。mode:3个8位数字或r w x的组合。r-r e a d(读),w-w r i t e(写)x-e x e c u t e(执行)u-u s e r(当前用户),g-g r o u p(组)o-o t h e r(其他用户)。,46,文件权限设定,chmod 755 dir1 对于目录d i r 1,设定成任何

24、使用者皆有读取及执行的权利,但只有所有者可做修改。chmod 700 file1 对于文件f i l e 1,设定只有所有者可以读、写和执行的权利。chmod u+x file2 对于文件f i l e 2,增加当前用户可以执行的权利。chmod g+x file3 对于文件f i l e 3,增加工作组使用者可执行的权利。chmod o-r file4 对于文件f i l e 4,删除其他使用者可读取的权利。,47,文件权限设定,2改变文件或目录的所有权语法:chown-R 用户名 namen a m e:文件名或目录名。例如:chown user file1 将文件file1 改为用户us

25、er 所有。chown-R user dir1 将目录d i r 1及其子目录下面的所有文件改为用户user 所有。,48,检查自己所属的工作组,语法:g r o u p s,49,改变文件或目录工作组所有权,语法:chgrp-R 工作组名 name n a m e:文件名或目录名例如:chgrp vlsi file1 将文件file1 的工作组所有权改为vlsi 工作组所有。chgrp-R image dir1 将目录d i r 1及其子目录下面的所有文件,改为image 工作组所有。,50,改变文件或目录最后修改时间,语法:touch namen a m e:文件名或目录名。,51,文件的

26、链接,同一文件,可拥有一个以上的名称,也就是把一个文件进行链接。语法:ln 老文件名 新文件名例如:ln file1 file2 将文件f i l e 2链接至文件f i l e 1。,52,文件中字符串查寻,语法:grep string file例如:grep abc file1 寻找文件f i l e 1中包含字符串abc 所在行的文本内容。,53,寻找文件或命令的路径,语法:whereis command 显示命令的路径。语法:which command 显示命令的路径,及使用者 所定义的别名。语法:whatis command 显示命令功能的摘要。语法:find search-path

27、-name filename-print 搜寻 指定路径下某文件的路径。例如:find/-name file1-print 自根目录下寻找文件file1 的路径。,54,比较文件或目录的内容,语法:d i ff-r name1 name2name1 name2:可同时为文件名或目录名。例如:d i ff file1 file2 比较文件file1 与file2 内各行的不同之处。d i ff-r dir1 dir2 比较目录dir1 与dir2 内各文件的不同之处。,55,文件打印输出,用户可用 set 命令来设定打印机名。例如:set-a PRINTER=sp 设定自sp 打印机打印资料。语

28、法:lpr-P打印机名 文件名例如:lpr file1 或lpr-Psp file1 自s p打印机打印文件f i l e 1。,56,文件打印输出,语法:enscript-P打印机名 文件名例如:enscript file3 或enscript-Psp file3 自s p打印机打印文件f i l e 3。,57,打印机控制命令,1检查打印机状态、打印作业顺序号和用户名语法:lpq-P 打印机名例如:lpq 或lpq-Psp 检查sp 打印机的状态。,58,打印机控制命令,2.删除打印机内的打印作业(用户仅可删除自己的 打印作业)语法:lprm-P打印机名 用户名或作业编号例如:lprm u

29、ser或lprm-Psp user 删除s p打印机中用户user 的打印作业,此时用户名必须为u s e r。lprm-Psp 456 删除sp 打印机上编号为456 的打印作业。,59,进程控制命令,1查看系统中的进程语法:ps-aux例如:p s或ps-x 查看系统中,属于自己的进程。ps-au 查看系统中,所有用户的进程。ps-aux 查看系统中,包含系统内部的及所有用户的进程。,60,进程控制命令,2.结束或终止进程语法:kill-9 PIDP I D:利用ps 命令所查出的进程号。例如:kill 456或kill-9 456 终止进程号为456 的进程。,61,进程控制命令,3.在

30、后台执行进程的方式语法:命令&例如:cc file1.c&将编译file1.c 文件的工作置于后台行。,62,进程控制命令,语法:按下C o n t r o l+Z键,暂停正在执行的进 程。键入b g命令,将暂停的进程置于后台继 续执行。例如:cc file2.c ZS t o p p e db g,63,进程控制命令,4.查看正在后台中执行的进程语法:j o b s,64,进程控制命令,5.结束或终止后台中的进程语法:kill%nn:利用j o b s命令查看出的后台作业号例如:kill%终止在后台中的第一个进程。kill%2 终止在后台中的第二个进程。,65,shell变量,1.查看外壳变

31、量的设定值语法:set 查看所有外壳变量的设定值。语法:echo$变量名显示指定的外壳变量的设定值。,66,shell变量,2.设定外壳变量语法:set var=value例如:set term=vt100 设定外壳变量t e r m为VT100 型终端。,67,shell变量,3.删除外壳变量语法:unset var例如:unset PRINTER 删除外壳变量PRINTER 的设定值。,68,环境变量,1.查看环境变量的设定值语法:s e t 查看所有环境变量的设定值。语法:echo$NAME 显示指定的环境变量N A M E 的设定值。例如:echo$PRINTER 显示环境变量PRIN

32、TER 的设定值。,69,环境变量,2.设定环境变量语法:set a NAME=word例如:set-a PRINTER=sp 设定环境变量PRINTER 为sp。,70,环境变量,3.删除环境变量语法:unset NAME例如:unset PRINTER 删除环境变量P R I N T E R的设定值。,71,别名,1.查看所定义的命令的别名语法:a l i a s 查看自己目前定义的所有命令,及 所对应的别名。语法:alias name 查看指定的name 命令的别名。例如:alias dir 查看别名dir 所定义的命令。ls-atl,72,别名,2.定义命令的别名语法:alias na

33、mecommand line例如:alias dir ls-l 将命令ls-l 定义别名为d i r。,73,别名,3.删除所定义的别名语法:unalias name例如:unalias dir 删除别名dir 的定义。unalias*删除所有别名的设定。,74,历史命令,1.设定命令记录表的长度语法:set history=n例如:set history=40 设定命令记录表的长度为40(可记录执行过的前面40 个命令)。,75,历史命令,2.查看命令记录表的内容语法:h i s t o r y,76,历史命令,3.使用命令记录表语法:!重复执行前一个命令。语法:!n,77,文件压缩,1.压

34、缩文件语法:compress 文件名 压缩文件语法:compressdir 目录名 压缩目录2.解压缩文件语法:uncompress 文件名 解压缩文件语法:uncompressdir 目录名 解压缩目录,78,重定向,1.标准输入的控制语法:命令 文件将文件做为命令的输入。例如:mail-s“mail test”file1 将文件file1 当做信件的内容,主题名称为mail test,送给收信人。,79,重定向,2.标准输出的控制语法:命令 文件将命令的执行结果送至指定的文 件中。例如:ls-l list 将执行“ls-l”命令的结果写入文件list 中。,80,重定向,语法:命令!文件将

35、命令的执行结果送至指定的文 件中,若文件已经存在,则覆盖。例如:ls-lg!list 将执行“ls-lg”命令的结果覆盖写入文件list 中。,81,重定向,语法:命令&文件将命令执行时屏幕上所产生的 任何信息写入指定的文件中。例如:cc file1.c&error 将编译file1.c 文件时所产生的任何信息写入文件error 中。,82,重定向,语法:命令 文件将命令执行的结果附加到指定的文件 中。例如:ls-lag list 将执行“ls-lag”命令的结果附加到文件list 中。语法:命令&文件将命令执行时屏幕上所产生的任何信息 附加到指定的文件中。例如:cc file2.c&erro

36、r 将编译file2.c 文件时屏幕所产生的任何信息附加到文件error 中。,83,管道命令,语法:命令1|命令2 将命令1的执行结果送到命令 2,做为命令2的输入。例如:ls-Rl|more 以分页方式列出当前目录及其子目录下 所有文件的名称。cat file1|more 以分页方式列出文件file1 的内容。,84,重定向和管道命令,ps|sort|moreps|sort|more output1.txtkill 1 1234 output1.txt 2&1kill 1 1234/dev/null 2&1,85,第三章 shell程序设计,交互式程序。顺序地敲入一系列命令,让shell交

37、互地执行它们。脚本程序(shell script)编写shell脚本文件,并执行。,86,交互式程序,$for file in*do if grep l POSIX$file then more$file fi done,87,关于通配符,*可以替代多个字符,而?则替代一个字符。set匹配方括号中任何一个单个的字符。如:ls l Yy*列出当前目录下所有以y和Y开头的文件。匹配花括号中的任何一个字符串。如:ls my_finger toes 列出my_fingers和my_toes两个文件。,88,脚本程序,#!/bin/sh#first.sh#This file looks through

38、all the files in the current#directory for the string POSIX,and then displays those#files to the standard output.,89,脚本程序,For file in*do if grep q POSIX$file then more$file fiDoneexit 0,90,运行脚本程序,chmod+x first.sh 给所有用户添加执行权限./first.sh,91,shell程序设计的语法,变量:字符串、数字、环境和参数条件:shell中的布尔值程序控制:if、elif、for、whil

39、e、until、case等命令表函数内建在shell中的命令获取某个命令的执行结果即时文档(here文档),92,变量,在shell里,使用变量之前不需要事先对它做出声明。变量是在第一次用到的时候被创建的。在默认情况下,所有变量的值被认为是字符串。需要用工具程序将“数值”型字符串转换为正确的数值并操作。shell的变量名是大小写敏感的。在变量名前加上一个“$”字符可以获得变量的内容。,93,变量,$salutation=Hello$echo$salutation Hello$salutation=“Yes Dear”$echo$salutation Yes Dear$salutation=7+

40、5$echo$salutation 7+5,94,引号的用法,一般情况下,参数之间是用空白字符分隔的,如一个空格、制表符或换行符等。如想在一个参数里包含一个或多个这样的空白字符,就需要给参数加上引号。带有“$”字符的变量表达式放在双引号里,表达式会替换为它的值。如放在单引号里,则不替换。在“$”字符前面加一个“”字符取消它的特殊意义。,95,引号的用法,#!/bin/shmyvar=“Hi there”echo$myvarecho“$myvar”echo$myvarecho$myvar,96,引号的用法,echo Enter some textread myvarecho$myvar now

41、equals$myvarexit 0,97,引号的用法,程序输出结果如下:Hi thereHi there$myvar$myvarEnter some textHello World$myvar mow equals Hello World,98,环境变量,环境变量是shell预先初始化的一些变量,环境变量可被子进程继承。环境变量通常使用大写字母作名字。具体有哪些环境变量取决于个人配置。$HOME 当前用户的登陆子目录$PATH 以冒号分隔的用来搜索命令的子目录清单$PS1 命令行提示符$PS2 辅助提示符,用来提示后续输入,99,环境变量,$IFS 输入区的分隔符。shell读取输入数据时会

42、将一组字符视为单词之间的分隔字符,他们通常是空格、制表符和换行符$0 shell脚本程序的名字$#传递到脚本程序的参数个数$该shell脚本程序的进程ID,100,参数变量,shell脚本程序在调用时还带有参数,会产生参数变量。$1,$2,脚本程序的第一个参数、第二个参数、$*全体参数组成的清单,各参数之间用环境变量IFS中的第一个字符分隔开$全体参数组成的清单,不使用IFS分隔符,101,$*与$的区别,$IFS=$set foo bar bam$echo“$”foo bar bam$echo“$*”foobarbam$unset IFS$echo“$*”foo bar bam,102,参数

43、和环境变量的例子,#!/bin/shsalutation=“hello”echo$salutationecho“The program$0 is now running”echo“The second parameter was$2”echo“The first parameter was$1”echo“The parameter list was$*”echo“The users home directory is$HOME”,103,参数和环境变量的例子,echo“Please enter a new greeting”read salutationecho$salutationecho“

44、The script is now complete”exit 0,104,参数和环境变量的例子输出,$./try_variables foo bar bazHelloThe program./try_variables is now runningThe second parameter was barThe first parameter was fooThe parameter list was foo bar bazThe users home directory is/home/rickPlease enter a new greetingSireSireThe script is

45、now complete$,105,条件测试,shell的条件测试命令可以对命令的退出码、字符串比较、算术比较、文件属性进行测试。shell的条件测试命令(布尔判断命令)有test和。例如,检查一个文件是否存在代码如下:if test f fred.c then fi,106,条件测试,或者:if-f fred.c then fi,107,条件测试-字符串比较,string1=string2 如果两个字符串相同则结果 为真string1!=string2 如果两个字符串不同则结果 为真-n string 如果字符串不是空则结果为 真-z string 如果字符串是空则结果为真,108,条件测试

46、-算术比较,expression1 eq expression2 如果两个表达式相等则结果为真expression1 ne expression2 如果两个表达式不等则结果为真expression1 gt expression2 如果前一个表达式大于后一个表达式则结果为真expression1 ge expression2 如果前一个表达式大于或等于后一个表达式则结果为真,109,条件测试-算术比较,expression1 lt expression2 如果前一个表达式小于后一个表达式则结果为真expression1 le expression2 如果前一个表达式小于或等于后一个表达式则结果为

47、真!expression1 如果表达式为假则结果为真,表达式结果为真则结果为假,110,条件测试-文件测试,-d file 如果文件是一个子目录则结果为真-e file 如果文件存在则结果为真-f file 如果文件是一个普通文件则结果为真-g file 如果文件的set-group-id位被设置则结果 为真,111,条件测试-文件测试,-r file 如果文件可读则结果为真-s file 如果文件长度不为0则结果为真-u file 如果文件的set-user-id位被设置则结果 为真-w file 如果文件可写则结果为真-x file 如果文件可执行则结果为真,112,控制结构-if语句,i

48、f conditionthen statementselse statementsfi,113,控制结构-if语句例子,#!/bin/shecho“Is it morning?Please answer yes or no”read timeofdayif$timeofday=“yes”;then echo“Good morning”,114,控制结构-if语句例子,else echo“Good afternoon”fiexit 0如果直接输入回车键会怎样?,115,控制结构-elif语句,#!/bin/shecho“Is it morning?Please answer yes or no”

49、read timeofdayif“$timeofday”=“yes”;then echo“Good morning”,116,控制结构-elif语句,elif“$timeofday”=“no”;then echo“Good afternoon”else echo“Sorry,$timeofday not recognized.Enter yes or no”exit 1fiexit 0,117,控制结构-for语句,for variable in valuesdo statementsdone,118,控制结构-for语句,例子:for foo in bar fud 43do echo$foo

50、doneexit 0,119,控制结构-for语句,结果:barfud43,120,控制结构-for语句,例子:#!/bin/shfor file in$(ls f*.sh)do lpr$filedoneexit 0,121,控制结构-while语句,while conditiondo statementsdone,122,控制结构-while语句,例子:口令字检查程序#!/bin/shecho“enter password”read trythiswhile“$trythis”!=“secret”;do echo“Sorry,try again”read trythisdoneexit 0,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号