shell n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Shell 的使用 PowerPoint Presentation
Download Presentation
Shell 的使用

Loading in 2 Seconds...

  share
play fullscreen
1 / 41
leilani-davidson

Shell 的使用 - PowerPoint PPT Presentation

252 Views
Download Presentation
Shell 的使用
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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. 第五章 Shell的使用 Version 1.0

  2. 内容回顾 • Linux命令的使用方法 • Linux文件和目录的操作管理命令 • Linux用户和组管理命令 • Linux打印系统管理 2/41

  3. 本章目标 • 了解shell的产生与发展的过程 • 掌握shell环境变量的设置和使用 • 掌握bash的基本操作方式 • 掌握shell的输入输出 • 掌握简单的shell脚本编辑方法 3/41

  4. Shell环境 • Shell的产生与发展 • Linux Shell • Shell 变量 • Shell 环境配置文件 4/41

  5. 用户 命令 结果 Shell 操作系统 Shell的产生与发展 • Shell的作用 • 操作系统与用户进行交互操作的界面 • 提供脚本语言编程环境,方便用户自动批量处理大量的工作任务 5/41

  6. Shell的产生与发展(Cont.) • Shell的种类 • Bourne shell( Stephen Bourne,1979年) • C shell (BillJoy ,70年代末期) • Korn shell (DavidKorn,80年代中期 ) 6/41

  7. Linux Shell • 支持Bourne shell、C shell和Korn shell • 标准shell为bash(GNU Bourne-Again Shell) • Bourne shell向下兼容 • 作业控制(job control) • 别名功能(aliases) • 命令历史(command history) • 命令行编辑功能 • 提供更丰富的变量类型、命令与控制结构 7/41

  8. Shell 变量 • 语法 • 变量名由下划线(_)、字母、数字组成,但变量名不能以数字开头,大小写敏感 • 变量值为一个字符串 • 使用“$”符号获得变量的值 • 类型 • 本地变量 • 环境变量 • 位置参数变量 • 预定义变量 8/41

  9. 本地变量 • 设置变量: • 引用变量: • 清除变量: • 查看变量: • 变量值置换 变量名=变量值 $变量名 unset 变量名 set 变量=${参数变量:-word} 变量=${参数变量:=word} 变量=${参数变量:?word} 变量=${参数变量:+word} 9/41

  10. 环境变量 • 设置环境变量: • 引用环境变量 : • 常用环境变量 • HOME • PATH • TERM • UID • PWD • PS1 export 变量名=变量值 $变量名 10/41

  11. 位置参数变量 • 由Shell在程序运行时设置 • 共10个变量,从程序名开始依次为0-9 • shift命令递归访问参数 $0 $1 $2 $3 … 11/41

  12. 预定义变量 12/41

  13. 用户1 ~/.bash_profile ~/.bashrc 用户2 ~/.bash_profile ~/.bashrc 用户3 ~/.bash_profile ~/.bashrc Shell 环境配置文件 • /etc/profile、/etc/profile.d/* • ~/.bash_profile、~/.bashrc、 /etc/bashrc /etc/profile、/etc/profile.d/* LINUX系统 … 13/41

  14. bash常用功能 • 通配符 • 命令自动展开 • 命令历史与命令重复 14/41

  15. 通配符 • * 通配符:匹配任意多个任意字符 • ?通配符:匹配任意一个字符 判断下列使用了通配符的字符串的能否 匹配“reportfiles”字符串? √ * r*f* *report*files *report\*files [opq]*report* ╳ ? r?f? ?eportfiles ?eport*? [opq]?report* √ ╳ √ √ ╳ √ √ ╳ 15/41

  16. 命令自动展开 • <Tab>键 • PATH环境变量 • 目录路径展开 16/41

  17. 命令历史与命令重复 • history • 光标上下移动键 • !! 重复执行前一个命令 • !n 执行第n条命令 • !string 执行最后一个以string开头的命令 • !!:p 显示前一个命令的内容 • !$ 重复前一个命令的最后的参数 17/41

  18. 管道与重定向 • 标准输入/输出 • 重定向 • 管道 18/41

  19. 标准输入/输出 • 每个Linux进程都会打开3个文件用来处理程序的输入输出工作 19/41

  20. 重定向 • < 输入重定向 • 语法: • 示例: • > 输出重定向 • 语法: • 示例: • 2> 错误输出重定向 • 语法: • 示例: 命令 < 输入文件 [root@pc root]# cat < inputfile 命令 > 输出文件 [root@pc root]# ls > outputfile 命令 2>errorfile [root@pc root]# ls 2 > inputfile 20/41

  21. 重定向(Cont.) • 常用文件重定向命令 21/41

  22. ls ls命令的输出 grep *.txt 管道 • | 管道操作符 • 语法 • 示例 command1 | command2 [root@pc root]# ls | grep *.txt 管道 22/41

  23. Shell脚本 • 脚本概念 • 脚本运行 • 基本脚本编程 23/41

  24. 脚本概念 • 无需编译,解释执行 • 文本文件形式存在 • 强大的正则表达式操作 • 运行速度慢 • 数据类型支持少 • 用于系统管理和文件操作 24/41

  25. 脚本运行 • 编写脚本程序 • 改变脚本程序文件的权限为可执行 • 运行脚本程序 • # ./脚本程序 • # bash 脚本程序 • # . ./脚本程序 • # exec 脚本程序 25/41

  26. 基本脚本编程 • 变量类型(Shell 变量一节) • 条件测试 • 流程控制 • 函数 26/41

  27. 条件测试 • 使用test命令 • 语法: • 使用括号[ ] • 语法: • 条件表达式的值为真返回零,为假时返回非零值 test 条件表达式 [ 条件表达式 ] 27/41

  28. 流程控制 • if then else语句 • 语法 if [ 条件语句1 ] then 命令 elif [ 条件语句2 ] then 命令 else 命令 fi 条件1为真 条件1为假 条件2为真 条件2为假 28/41

  29. 流程控制(Cont.) • for循环 • 语法 for 变量名 in 列表 do 命令 done 29/41

  30. 流程控制(Cont.) • until循环 • 语法 until 条件 do 命令 done 30/41

  31. 流程控制(Cont.) • while循环 • 语法 while 条件 do 命令 done 31/41

  32. 流程控制(Cont.) • case语句 • 语法 case 值 in 模式1) 命令1;; 模式2) 命令2;; 模式3) 命令3;; esac 32/41

  33. 函数 • 函数定义 • 函数调用 • 函数导出 • 函数名( ) • { • 命令 • } 33/41

  34. 本章总结 • shell是Linux系统与用户之间的交互界面,用户向shell提交任务,shell向系统内核转交任务,并管理相关工作,执行完成后shell取回工作结果,通过界面返回给用户。shell还提供编程语言,接受用户关于批处理任务的提交 • 第一个重要的shell是Stephen Bourneshell于1979年底提出的Bourne shell,另外两个重要的shell是Kron shell 和 C shell。Linux支持3种类型的shell,默认的为Bourne shell的变体版本GNU bash • shell支持4种类型的变量(本地变量、环境变量、参数变量及预定义变量) 34/41

  35. 本章总结(Cont.) • shell的通配符包括“*”和“? ”,分别匹配任意多的字符和一个任意字符。bash提供了命令行自动展开和历史命令管理操作的功能 • shell打开0、1、2号文件描述符文件,并对应为键盘和屏幕,构成shell的标准输入输出,大多数命令的输入输出通过标准输入输出进行。shell提供了输入输出重定向和管道,把标准的输入输出方向改变为其它的文件或命令 • shell提供了数据变量、参数传递、条件测试、流程控制、数据输入和输出、函数等丰富的程序控制功能,用户可以通过shell语言编码实现系统管理任务的批处理和环境设置 35/41

  36. 实验目标 • 掌握Linux shell的操作方法 • 掌握环境变量的设置方法 • 掌握shell的重定向使用 • 学会编写简单的shell脚本 36/41

  37. 实验完成标准 • 实验完成,删除实验中设置的环境变量 37/41

  38. 实验完成标准(Cont.) • 重复使用前一个命令的参数 38/41

  39. 实验完成标准(Cont.) • 定义自己的命令提示符 39/41

  40. 实验完成标准(Cont.) • 显示重定向输出的文件内容 40/41

  41. 实验完成标准(Cont.) • 运行用户编写的脚本程序信息 41/41