通配符
当需要用命令处理一组文件,例如file1.txt、file2.txt、file3.txt……,用 户不必一一输入文件名,可以使用Shell通配符。Shell命令的通配符含义如下表
引号
在 Shell 中引号分为 2 种:单引号、双引号。
( 1 )双引号
由双引号括起来的字符,除 $ 、倒引号和反斜线( \ )仍保留其特殊功能外,其余字符通常作为普通字符对待。
( 2 )单引号
由单引号括起来的字符都作为普通字符出现。
管道
管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成了一个管道。
$ ls /usr/bin |wc–w
1249
ls命令用于查看/usr/bin目录下的文件,“wc–w”命令用于统计指定文件的单词数。以上操作中,借助管道“|”,将ls的输出直接作为wc命令的输入。使用管道可以巧妙的将一些命令联合使用,得到单个命令所无法实现的效果。例如使用以上的命令组合,得到的是/usr/bin目录 下文件的个数。
输入/输出重定向
输入/输出重定向是改变Shell命令或程序默认的标准输入/输出目标,重 新定向到新的目标。
Linux中默认的标准输入定义为键盘,标准输出定义为终端窗口。
用户可以为当前操作改变输入或输出,迫使某个特定命令的输入或输 出来源为外部文件。
后台命令
通常,在主提示符之后输入的命令都立即得到执行。在执行过程中,用户和系统可以发生交互作用 — 用户输入数据,系统进行处理,并输出运行结果。这种工作方式就是前台方式。但是有些程序的运行要花费较长时间,如调用 C 编译对 C 程序进行编译。如果想在编译的同时做别的事情,那么就输入命令
$cc m1.c &
即在一条命令的最后输入 “&” 符号, Shell 就在后台启动该程序,并且马上显示主提示符,提醒输入新的命令。
由后台程序转移到前台运行
使用命令fg完成。一般先是使用ps -a 查看命令是否存在,如果存在,就可以使用fg命令了。
一般使用方法是“fg 程序名”
cat命令
功能为在标准输出上显示文件。
$ cat #使用标准输入/出设备
have a good day! #用户使用标准输入设备——键盘,键入字符串,并按Enter键
have a good day! #系统在标准输出——显示器上,显示用户刚刚输入的字符串
$ cat > file1.txt #输出重定向,将输出定向到文件file1.txt
have a good day! #用户使用标准输入设备——键盘,键入字符串,并按Enter键
#用户输入的字符串被保存在file1.txt文件中
$ cat < file1.txt #输入重定向,将cat命令的输入指定为 file1.txt文件
have a good day! #系统在标准输出显示器上,显示cat命令从文件中读出的字符串
命令替换
是将一个命令的输出作为另一个命令的参数。命令格式如下所示。
command1 `command2`
其中,命令command2的输出将作为命令command1的参数。 需要注意,命令置换的单引号为ESC键下方的“`”键
pwd命令用于显示当前目录的绝对路径。在上面的命令行 中,使用命令置换符,将pwd的运行结果作为ls命令的参数。 最终,命令执行结果是显示当前目录的文件内容。
$ ls `pwd`
Desktop Downloads
Shell 中引用符号的名称及意义
符号 | 名称 | 意义 |
“ ” | 双引号 | 引用处美元符号($)、反引号(`)、和反斜线(\)之外的所有符号 |
‘ ’ | 单引号 | 引用所有符号 |
` ` | 反引号 | Shell将反引号中的内容解释为系统命令 |
\ | 反斜线 | 转义符,屏蔽下一个字符的特殊意义 |
Shell中的特殊字符及其意义
特殊符号 | 意义 |
& | 传递到脚本的参数数量 |
* | 0个或多个在*字符之间的那个普通字符起 |
+ | 匹配1个或多个在其以前的那个普通字符3 |
^ | 匹配行首,或后面字符的非 |
$ | 命令的退出状态,0代表正确,1代表错误 |
` | 反引号,Shell的引用符号 |
“” | 双引号,Shell的引用符号 |
| | 管道符号或表示“或”的意思 |
? | 匹配0个或1个在其以前的那个普通字符 |
\ | 转义符 |