• 1. Linux Shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器) 它接收用户输入的命令并把它送入内核去执行。 目前主要有下列版本的Shell有: Bourne Shell:是贝尔实验室开发的。 BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell。 Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。 C Shell:是SUN公司Shell的BSD版本。
  • 2. 流行Shell介绍Ash 由Kenneth Almquist编写,是Linux中最小的shell,只包含24个内部命令。 Bash 是Linux默认的Shell,由Brian Fox和Chet Ramey共同完成,是Bourne Again Shell的缩写。内部命令一共有40个。 Ksh 是Korn Shell的缩写,由Eric Gisin编写,共有42条内部命令。 Csh 是Linux比较大的Shell,由William Joy为代表的47位作者编成,共有52个内部命令。又叫tcsh Zsh 是Linux中最大的Shell之一,由Paul Falstad完成,共有84个内部命令。
  • 3. 切换ShellEcho $SHELL Which tcsh Chsh Chsh –s path
  • 4. Shell的重要功能 命令行解释 交互模式(interactive) 后台运行(run commands in the background) 命令的多种执行顺序 命令替换 (` `) I/O重定向(Input/output redirection) 管道(pipes) | 通配符(wild-card characters) 系统环境维护 Shell Script
  • 5. 命令解释过程是内置命令用户输入命令提交给Shell内核中的系统功能调用在系统中查找该命令的文件并调入内存执行是否为内置命令是外部命令或实用程序
  • 6. 命令规则、路径和文件 命令规则 命令动词 [参数] [操作对象] 路径 绝对路径 相对路径 文件 命名规则
  • 7. 命令解释过程是内置命令用户输入命令提交给Shell内核中的系统功能调用在系统中查找该命令的文件并调入内存执行是否为内置命令是外部命令或实用程序
  • 8. 命令规则、路径和文件 命令规则 命令动词 [参数] [操作对象] 路径 绝对路径 相对路径 文件 命名规则
  • 9. 提高工作效率 自动补全 命令别名 命令历史 复制和粘贴
  • 10. 命令别名(alias)的使用命令别名(alias)的使用 作用:设置命令别名 范例 alias mybin=“cd /usr/bin” alias  显示系统中现有的别名 unalias mybin  删除系统中的别名 \rm test  暂时取消别名
  • 11. 命令历史 !:回忆Shell的历史记录 ! 2 第2条命令 !! 上次执行的命令 history :查看命令的历史记录 $ history $ history –w my_old_cmd $ history –a my_old_cmd $ history –n my_old_cmd $ history -c
  • 12. Shell的高级使用 重定向 管道 命令替换 命令执行顺序
  • 13. 重定向Stdin Stdout Stderr > 、>> 2> 、&> < 、<
  • 14. 管道管道:将一个命令的输出传送给另一个命令, 作为另一个命令的输入 使用方法:命令1|命令2|命令3……|命令n 使用举例: $ ls –Rl /etc |more $ cat /etc/passwd | wc $ cat /etc/passwd | grep root
  • 15. 命令的多种执行顺序命令间隔符说明 ; 用;间隔的各命令按顺序依次执行 && 前后命令的执行存在“逻辑与”关系,只有&&前面的命令执行成功后,它后面的命令才被执行 || 前后命令的执行存在“逻辑或”关系,只有||前面的命令执行失败后,它后面的命令才被执行
  • 16. 命令的多种执行顺序(续)几个命令间隔符同时出现在同一个命令行上时,其 优先级为: ;的优先级最低 ||和&&具有相同的优先级 同优先级,按从左到右的结合原则执行命令行 使用()可以组合命令行中的命令,改变执行顺序
  • 17. 命令的多种执行顺序举例$ date ;pwd 顺序执行date和pwd命令。 $ mail jjh < message && rm message 若文件message被mail发送出去,就把它删除,否则不删除。 $ write jjh < report || mail jjh < report 若对方拒绝对话,就将信息发送到他的信箱里。 $ date ; cat file |wc 只有cat命令的信息通过管道送给wc命令。 $ (date; cat file) |wc date和cat命令的信息都通过管道送给wc命令。
  • 18. 命令替换`cmd` 或 $(cmd) 例如: $wall `date` $cd `pwd`
  • 19. 思考题执行以下的命令后的显示结果为: $ var=NCIE $ touch myfile $ echo $var `ls` $(ls)    A.$var `ls` $(ls)  B.NCIE myfile myfile  C.NCIE `ls` myfile  D.$var myfile myfile