Shell 中的特殊字符
作者: zccst
Shell 除了作为命令解释程序以外,还是一种高级程序设计语言。利用 Shell 程序设计语言可以编写出功能很强、但代码简单的程序。
建立 Shell 过程的步骤同建立普通文本文件相同,利用编辑器(如 vi 或 gedit )进行程序录入和编辑加工。
执行 Shell 过程的方式主要有以下 3 种。
( 1 )输入定向到 Shell 过程
( 2 )以过程名作为参数
( 3 )将 Shell 过程改为可执行文件
Shell 中的特殊字符
1 ,通配符
通配符用于模式匹配,如文件名匹配、路径名搜索、字符串查找等。
2 ,引号
在 Shell 中引号分为 2 种:单引号、双引号。
( 1 )双引号
由双引号括起来的字符,除 $ 、倒引号和反斜线( / )仍保留其特殊功能外,其余字符通常作为普通字符对待。
( 2 )单引号
由单引号括起来的字符都作为普通字符出现。
3 .输入输出重定向符
执行一个 Shell 命令时通常会自动打开 3 个标准文件,这就是:标准输入文件( stdin ),通常对应终端的键盘;标准输出文件( stdout )和标准出错输出文件( stderr ),这两个文件都对应终端的屏幕。
在 Shell 中,这 3 个文件都可以通过重新定向符进行重新定向。
( 1 )输入重定向符
输入重定向符“ < ”的作用是把命令(或可执行程序)的标准输入重新定向到指定文件。
( 2 )输出重定向符
输出重定向符 “>” 的作用是把命令(或可执行程序)的标准输出重定向到指定文件。这样,该命令的输出就不在屏幕上显示,而是写入指定文件中。例如,
$who > abc
命令 who 的输出重新定向到 abc 文件中,在屏幕上看不到执行 who 的结果。
注:这个命令以前用过但不明白为什么这样用,现在明白了。
4 .注释、管道线和后台命令
( 1 )注释
如前所述, Shell 程序中以 # 开头的正文行表示注释。
( 2 )管道线
在 Linux 系统中管道线是由竖杠( | )隔开的若干个命令组成的序列,例如,
ls –l $HOME | wc−l
在管道线中,每个命令运行时都有一个独立的进程。前一个命令的输出正是下一个命令的输入。而管道线中有一类命令也称作“过滤器”,过滤器首先读取输入,然后将输入以某种简单方式进行变换(相当于过滤),再将处理结果输出,例如 grep 、 tail 、 sort 和 wc 等命令就称为过滤器。
一个管道线中可以包括多条命令,例如,
ls | grep m?.c | wc –l
打印出当前目录文件名是以 m 打头、后随一个字符的所有 C 文件的数目。
注: wc 命令功能是 统计指定文件中的字节数、字数、行数 , 并将统计结果显示输出( -c 统计字节数。 -l 统计行数。 -w 统计字数。)。
( 3 )后台命令
通常,在主提示符之后输入的命令都立即得到执行。在执行过程中,用户和系统可以发生交互作用 — 用户输入数据,系统进行处理,并输出运行结果。这种工作方式就是前台方式。
但是有些程序的运行要花费较长时间,如调用 C 编译对 C 程序进行编译。如果想在编译的同时做别的事情,那么就输入命令
$cc m1.c&
即在一条命令的最后输入 “&” 符号, Shell 就在后台启动该程序,并且马上显示主提示符,提醒输入新的命令。