1 / 41

Shell 的使用

第五章. Shell 的使用. 内容回顾. Linux 命令的使用方法 Linux 文件和目录的操作管理命令 Linux 用户和组管理命令 Linux 打印系统管理. 本章目标. 了解 shell 的产生与发展的过程 掌握 shell 环境变量的设置和使用 掌握 bash 的基本操作方式 掌握 shell 的输入输出 掌握简单的 shell 脚本编辑方法. Shell 环境. Shell 的产生与发展 Linux Shell Shell 变量 Shell 环境配置文件. 用户. 命令. 结果. Shell. 操作系统.

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. 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. 第五章 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

More Related