1 / 19

LINUX 服务器管理技术

LINUX 服务器管理技术. 田 钧. 第 6 章 S hell. 授课内容 Shell 简介 Shell 功能 Shell 变量、命令 Shell 编程简介 授课目标 学会使用 shell 的功能及变量的设置. Shell 简介. 什么是 Shell Shell 是一个独立于 OS 的应用程序,是一个具有交互性的命令行解释器。 S hell 的作用 解释键入的命令以及执行的一些特定的功能,并传到内核执行。. shell. shell 是计算机用来解释你输入的命令然后决定进行何种处理的程序。 shell 也可以在非交互模式下调用。

finn-bowman
Download Presentation

LINUX 服务器管理技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LINUX 服务器管理技术 田 钧

  2. 第6章 Shell • 授课内容 • Shell简介 • Shell功能 • Shell变量、命令 • Shell编程简介 • 授课目标 • 学会使用shell的功能及变量的设置 2

  3. Shell简介 • 什么是Shell Shell是一个独立于OS的应用程序,是一个具有交互性的命令行解释器。 • Shell的作用 解释键入的命令以及执行的一些特定的功能,并传到内核执行。 3

  4. shell • shell 是计算机用来解释你输入的命令然后决定进行何种处理的程序。shell 也可以在非交互模式下调用。 • 在Linux系统下有几个不同的shell: • bash "Bourne Again" shell • sh Bourne shell,在很多UNIX下是标准的shell • csh C shell,和C语言语法相近,大部分UNIX下有效 • pdksh public domain Korn shell • tcsh 微型C shell, 在小的系统里经常使用 • 一般的Linux系统都将bash作为默认的shell • 查看你自己的shell类型: • echo $SHELL 4

  5. Shell功能(一) • Shell功能: • shell程序的执行 首先给文件加执行权限(chmod +x filename) 1、用sh执行 (sh filename) 2、./ 执行 (./filename) • 变量的值的替换 可以用set命令查看和设置变量值 用unset命令去除变量值 • 命令的替换 可以用``反引号替换(echo `date`) 例: rm -i `find ./ -size 0` 5

  6. Shell功能(二) • Shell功能: • 自动补齐(按TAB键) • 通配符(?、*、{}) 6

  7. Shell功能(三) • I/O重定向和管道 输出重定向(>、>>、1>、2>、2&>1) eg: /usr/sbin/rndc stop >/dev/null 2>&1 输入重定向(<、<<) eg: makemap hash /etc/mail/access.db < /etc/mail/access.db 管道(|) eg:netstat -antp |more |grep http • 提供解释性的编程接口(包括测试、分支和循环) 7

  8. Shell功能(四) • 进程的前后台切换执行 ctrl+z:将进程调到后台执行 fg %n:将后台进程调到前台执行 bg %n:进程保持在后台执行 jobs:查看后台进程的个数 8

  9. Shell常用控制组合键 • Ctrl - C  中止目前的命令  • Ctrl - \  同上 • Ctrl - D  输入结束, 即 EOF 之意  • Ctrl - Z  暂停目前的命令 • Ctrl - M 相当按 Enter • Ctrl - S  暂停萤幕输出  • Ctrl - Q  恢复萤幕输出 • Ctrl - U  将命令列整列删除 • Ctrl - ?  删除最後一个字元, 相当於按 Del  9

  10. Shell编程简介 Shell除了是一个命令行解释器外,同时还是一个功能相当强大的编程语言,大多数Linux系统的启动文件(rc files)都是使用shell script • Shell 程序: • Shell程序是按照一定的规则包含UNIX系统命令的文件。 • 要执行Shell程序,文件的权限至少是r-x。 • 可以传递给程序的数据:环境变量,命令行变量和用户输入的变量(read命令)。 • 编程注意事项: • 建议加注释(#后面的内容为注释)。 • 不要生成文件名为test的Shell程序(test是Shell命令)。 • export命令的使用(本地变量-->环境变量)。 • 子程序不能修改它上一级进程的环境变量。即使它对这个环境变量再次赋值,但在它的上一级进程里将不会受到影响。 10

  11. shell程序设计(基础部分) • shell可以用来进行程序设计,它提供了定义变量和参数的手段以及丰富的程序控制结构。使用shell编程类似于DOS中的批处理文件,被称为shell script • shell基本语法 • shell程序的变量和参数 • shell程序的流程控制 • Shell程序调试方法 11

  12. shell基本语法 • 输入输出重定向 • “>”和“<” • “>>”和“<<” • 1>:正确重定向 • 2>:错误重定向 • 2>&1:正确和错误一起重定向 • Command > file • 管道pipe • command1| command2[| command3...] • 前台和后台 • “;”和“&” • 过滤grep • 在某个文件中找到你想要的内容 12

  13. shell变量与参数 • shell定义的环境变量 shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,这些变量用户还可以重新定义;用户可以用set、env命令查看 • $HOME 使用者自己的目录  • $PATH 执行命令时所搜寻的目录  • $TZ 时区  • $MAILCHECK 每隔多少秒检查是否有新的信件  • $PS1 在命令列时的提示号  • $PS2 当命令尚未打完时,Shell 要求再输入时的提示号  • $MANPATH man 指令的搜寻路径  13

  14. shell变量与参数 • 预定义变量 • 预定义变量和环境变量相类似,也是在shell一开始时就定义了的变量,所不同的是,用户只能根据shell的定义来使用这些变量,而不能重定义它。所有预定义变量都是由$符和另一个符号组成的 • $0 这个程序的执行名字  • $n 这个程序的第n个参数值,n=1..9  • $* 这个程序的所有参数的内容 • $# 这个程序的参数个数  • $$ 这个程序的PID  • $! 上一个后台程序的PID  • $? 上一个指令的返回值 14

  15. shell变量与参数 • 用户定义的变量 • 变量名=变量值 • kk=kiss • 查看变量值:echo “$kk” 15

  16. shell特殊符号使用 • shell使用两种引号和反斜线 • 双引号“”(让引号内的变量生效) • 单引号‘’(引号内的变量当作一个字符使用) • 反斜线\(禁用特殊字符功能\$) • 后引号``(让引号内的命令生效) • var=hello • echo “var is $var” • echo ‘var is $var’ • echo “var is \$var” • echo `ls` • var2=date; echo `$var2` 16

  17. shell编程的流程控制 • if条件语句 • case条件选择 • for循环 • while和until循环 • shift语句 • select语句 • goto跳转控制 • test测试命令 17

  18. shell 函数 • shell语言使用户能够定义自己的函数 • 同用户在C语言或其他编程语言中定义的函数一样工作 • bash和pdksh支持函数,tcsh不支持函数 • 以下是bash中一个函数的语法格式: fname (){ shell commands } • 定义函数后,程序中调用该函数的格式(bash中): fname [parm1 parm2 parm3…] 调用函数时,可以向函数传递任意多个参数,函数将这些参数看做是存放其命令行参数的位置变量。 18

  19. 练习 1、shell流程控制。 2、函数调用。 19

More Related