lect04LinuxShell介绍

举报
资源描述
Linux 操作系统Linux Shell 介绍介绍2021/4/81主要内容和学习要求主要内容和学习要求q 知道什么是 shell 和一些常见的 shellq 掌握 bash 的基本功能(通配符、别名等)q 了解 bash 的启动脚本q 了解 shell 变量,学会查看和修改变量的值q 理解如何定制 bash2021/4/82q shell 是系统的用户界面,它提供了用户和 Linux(内核)之间进行交互操作的一种接口。用户在命令行中输入的每个命令都由 shell 先解释,然后传给Linux 内核去执行。q 如果把 Linux 内核想象成一个球体的中心,shell 就是围绕内核的外层,从 shell 向 Linux 操作系统传递命令时,内核就会做出相应的反应。Shell 简介简介2021/4/83q shell 的另一个重要特性是它自身就是一个解释型的程序设计语言,shell 程序设计语言支持在高级语言里所能见到的绝大多数程序控制结构,比如循环,函数,变量和数组等。shell 编程语言简单易学,一旦掌握后它将成为你的得力工具。任何在命令行中能键入的命令也能放到一个可执行的 shell 程序里。q shell 是一个命令语言解释器,拥有自己内建的 shell 命令集。此外,shell 也能被系统中其他应用程序所调用。Shell 简介简介2021/4/84q 常用的 shell 有 Bourne shell,C shell,和 Korn shell。常用的常用的 Shell 作者是 Steven Bourne,它是 UNIX 最初使用的 shell 并且在每种 UNIX 上都可以使用。Bourne shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面不如其他几种 shell。q Bourne shell(sh)q 三种 shell 都有它们的优点和缺点。不同 shell 之间的转换非常方便。2021/4/85C shell 由 Bill Joy 所写,它更多的考虑了用户界面的友好性。它支持象命令补齐等一些 Bourne shell 所不支持的特性。因为 C shell 的语法和 C 语言的很相似,C shell 被很多 C 程序员使用,这也是 C shell 名称的由来。q C shell (csh)常用的常用的 Shell (续续)由 Dave Korn 所写。它集合了 C shell 和 Bourne shell 的优点并且和 Bourne shell 完全兼容。q Korn shell (ksh)2021/4/86许多其它的 shell 基本上都是吸收了这些 shell 的优点扩展而成的 shell。常见的有 tcsh(csh 的扩展),Bourne Again shell(bash,sh 的扩展),和 Public Domain Korn shell(pdksh,ksh 的扩展)。bash 与 Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很多 csh 和 ksh 里的优点。bash 有很灵活和强大的编程接口,同时又有很友好的用户界面。q bash 是现在大多数 Linux 系统的缺省 shell常用的常用的 Shell (续续)q 其它 shell2021/4/87当用户打开一个(虚拟)终端时,可以看到一个 shell 提示符,标识了命令行的开始。用户可以在提示符后面输入任何命令例:ls l/home/jypan/linux/注意:命令行中选项先于参数输入command 选项 参数q 命令行Bash 的功能的功能2021/4/88q 如果一个命令太长,无法在一行中显示,可以使用反斜杠 来续行,在多个命令行上输入一个命令或多个命令。例如:ls-F;cp-i mydata newdata大多数 shell 在达到命令行行尾时都会自动断开长命令q 在一个命令行中可以输入多个命令,用分号将各个命令隔开。例如:ls-F;cp-i mydata newdata命令行特征命令行特征2021/4/89命令行实际上是可以编辑的一个文本缓冲区,在按回车之前,可以对输入的命令进行编辑。如用 BACKSPACE 键可以删除刚键入的字符,也可以进行整行删除,还可以插入字符等。命令行特征命令行特征(续续)q 命令行编辑2021/4/810stty a 可以看到更多的快捷键。常用的快捷键和组合键常用的快捷键和组合键2021/4/811u bash 提供许多功能用来帮助用户节省输入命令的时间,其中最常用的一种方法就是使用通配符。u 通配符就是一些特殊的字符,可以用来在引用文件名时简化命令的书写。用户在使用时可以用通配符来指定一种模式,即所谓的“模式串”(pattern),然后 shell 将把那些与这种模式能够匹配的文件作为输入文件。u 在 bash 中可以使用三种通配符:*、?、。q 通配符通通 配配 符符2021/4/812通配符的含义通配符的含义2021/4/813u 通配符“*”的常用方法就是查找具有相同扩展名的文件ls *.tar.gz通配符“*”有时可以将几百的命令缩短成一个命令。假设当前目录下有许多文件,现在要删除扩展名为“.old”的文件,如果有几百个这样的文件,逐个删除显然很麻烦,这时可以使用通配符:rm *.old通配符举例通配符举例u 问号通配符“?”必须匹配一个且只能匹配一个字符,通常用来查找比*更为精确的匹配。ls *.?2021/4/814u 方括号通配符使用括号内的字符作为被匹配的字符,且只能匹配其中的一个字符。如列出以 a、b、c 开头,且以.dat 为扩展名的所有文件:ls abc*.dat可以在方括号中使用连字符-来指定一个范围,如列出以字母开头,数字结尾的所有文件:ls a-zA-Z*0-9方括号通配符举例方括号通配符举例2021/4/815u 文件名最前面的圆点“.”和路经名中的斜杠“/”必须显式匹配。例如“*”不能匹配“.bashrc”,而 “.*”才可以匹配“.bashrc”。u 连字符-仅在方括号内有效,表示字符范围。如果在方括号外面就成为普通字符了。而*和?在方括号外面是通配符,若出现在方括号之内,它们也失去通配符的能力,成为普通字符了。通配符使用注意事项通配符使用注意事项ls*ls mem*ls*xls*lax*ls.*ls mem?ls mem?t ls mem1-9ls mem*1-92021/4/816q 别名是 bash 中用来节省时间的另一项重要功能,它允许用户按照自己喜欢的方式对命令进行自定义。q 别名的创建:创建别名的命令是 alias,例:alias lf=ls-F注:等号两边不能有空格!q 别名的取消:所设置的别名在当前 shell 中一直有效,直到退出当前 shell 或用 unalias 取消别名,例:unalias lf别名别名2021/4/817u 如果需要一直使用某些别名,可以在 bash 启动脚本中添加设置别名的命令,这样每次打开一个(虚拟)终端时,系统就会自动设置别名。有关 bash 的启动脚本,我们将在后面讨论。aliasu 查看已创建的别名:输入alias直接回车即可。别名别名(续续)2021/4/818u 该功能的核心思想是:bash 根据用户已输入的信息来查找以这些信息开头的命令,从而试图完成当前命令的输入工作。用来执行这项功能的键是 Tab 键,按下一次 Tab 键后,bash 就试图完成整个命令的输入,如果不成功,可以再按一次 Tab 键,这时 bash 将列出所有能够与当前输入字符相匹配的命令列表。u 通常用户在 bash 下输入命令时不必把命令输全,shell 就能判断出你所要输入的命令。q 命令行自动补齐功能命令行自动补齐功能命令行自动补齐功能2021/4/819his例:查看用户的命令历史cd/esyscne-例:要进入目录:/etc/sysconfig/network-scripts/u 这项功能同样适用于文件名的自动补齐命令行自动补齐功能命令行自动补齐功能2021/4/820u UNIX 系统的一个基本哲学是:一连串的小命令能够解决大问题。其中每个小命令都能够很好地完成一项单一的工作。现在需要有一些东西能够将这些简单的命令连接起来,这样管道就应运而生。u 管道“|”的基本含义是:将前一个命令的输出作为后一个命令的输入。如:ls/local|du sh*u 利用管道可以实现一些很强的功能。q 管道管道管道2021/4/821一个较复杂的例子:输出系统中用户名的一个排序列表。这里需要用到三个命令:cat、awk、sort,其中 cat用来显示文件/etc/passwd 的内容,awk 用来提取用户名,sort 用来排序。cat/etc/passwd|awk F:print$1|sort管道举例管道举例2021/4/822u 标准输入通常来自键盘,标准输出是命令的结果,通常定向到显示器,标准错误是错误信息,通常也定向到显示器。命令标准输入标准输出标准错误u Linux 中的数据流有三种:标准输入(STDIN)、标准输出(STDOUT)和标准错误(STDERR)。q 数据流重定向重定向2021/4/823u 输入重定向:“”允许将命令的输出结果保存到一个文件中。ls listsort sort_list重定向重定向q 输入输出重定向2021/4/824u 在使用输出重定向时,如果输出文件已经存在,则原文件中的内容将被删除。重定向重定向q 输入输出重定向ls/listls/home/listu 如果希望保留原文件的内容,可以使用“”代替“”,这样重定向输出的内容将添加到原文件的后面。2021/4/825q shell 中进程处理文件时会建立一个文件描述符,标准文件描述符有三个:0、1、2,分别对应于标准输入、标准输出和标准错误。cat x y 1out1 2out2cat x y 1out1 2&1重定向标准输出重定向标准错误标准输出的一个副本文件描述符文件描述符2021/4/826q 在命令行中输入的每个命令都被保存到一个称为 history(命令历史记录)的地方,在 bash 中,变量 HISTSIZE 用来指定存储在命令历史记录中的命令的最多个数。q 查看命令历史记录:historyhistoryhistory 30 命令历史记录命令历史记录表示查看最近 30 个命令历史记录2021/4/827q上下箭头键:除查看命令历史记录外,还可以利用上下箭头键在命令历史记录中移动。此外,还可以对所选的命令进行编辑。命令历史记录命令历史记录!:执行最近一次使用的命令;!n:其中 n 为一个具体的数字,表示执行在命令历史 记录中的第 n 个命令;!s:其中 s 为一个字符串,表示执行命令历史记录中 以该字符串开头的最近的一个命令。q 感叹号的用法:fc l 30 50列出命令历史记录中第30到第50之间的命令q fc 命令:2021/4/828u 在 bash 中,有些字符具有特殊含义,如果需要忽略这些字符的特殊含义,就必须使用引用技术。u 引用可以通过下面三种方式实现:使用转义字符:使用单引号:使用双引号:”u 转义字符的引用方法就是直接在字符前加反斜杠例:例:$,“,!引用引用q 引用2021/4/829u 单引号对中的字符都将作为普通字符,但不允许出现另外的单引号。u 双引号对中的部分字符仍保留特殊含义,如:$、“、及换行符等。u 单引号是强引用,而双引号是弱引用。引用引用2021/4/830u 在 bash 中,有些字符具有特殊含义,通常称为特殊字符。Shell 中的特殊字符中的特殊字符2021/4/831u 内部变量:由系统提供,用户不能修改。u 用户变量:由用户建立和修改,在 shell 脚本编写中会经常用到。u 环境变量:这些变量决定了用户工作的环境,它们不需要用户去定义,可以直接在 shell 中使用,其中某些变量用户可以修改。q she
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 高等教育 > 教育学


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号