管道 | 特殊的重定向
前一个命令的输出作为后一个命令的输入;
管道连接的命令数没有限制;
who|wc−l统计用户数 ps |sort|more 按序显示当前进程名
字符:具有特定作用的特殊字符
,<,>>,<< 重定向
| 符号 | 功能 |
|---|---|
| > | 输出重定向 |
> |
输出重定向并追加到文件; |
| < | 输入重定向; |
| << | 输入重定向并追加到文件; |
” 字符串定界符
字符串一般放在一对双引号中间,防止变量
被空格分开,同时又允许$扩展
通配符
| 符号 | 功能 |
|---|---|
| * | 匹配零个或多个字符 |
| ? | 匹配任意单个字符 |
| […] | 匹配方括号内包含任何一个字符 |
| [^…] | 匹配不包含在方括号内的任何一个字符 |
| {s1,s2,…,sn } | 匹配集合中任意一个字符串 |
命令替换
command , $(command):替换为command的输出
$echo the date is `date`
the date is 2017年 12月 13日 星期三 21:26:35 CST
$echo there are$(who|wc -l)users on the system
there are1users on the system
命令序列和组合命令
| 符号 | 功能 |
|---|---|
| ; | 组成命令序列 |
| (…..) | 组合命令 |
$date;pwd;ls
$date>date.txt;ls;pwd>pwd.txt
(date;ls;pwd)>out.txt
条件执行序列
| 符号 | 功能 |
|---|---|
| 或 | 如果前一个命令执行失败,执行下一个命令 |
| && | 如果前一个命令执行成功,执行下一个命令 |
(或代表 ||)
& 后台运行
| 符号 | 功能 |
|---|---|
| command & | 后台运行,你关掉终端会停止运行 |
| nohup command & | 后台运行,你关掉终端也会继续运行 |
shell脚本
一个shell脚本可以包含:
(1)命令
(2)位置参数
(3)变量及表达式
(4)结构控制语句
(5)函数
(6)其他shell脚本
Shell脚本常用命令
| 符号 | 功能 |
|---|---|
| break | 跳出一层循环 |
| : | 空命令 |
| continue | 跳出一次循环 |
| . | 在当前shell中执行命令 |
| echo | 输出字符串(带换行符) |
| eval | 对参数求值 |
| exit n | 以退出码结束脚本运行(0表示运行成功) |
| export | 声明环境变量 |
| printf | 输出字符串(可指定格式) |
| $((…)) | 表达式求值 |
| return | 函数返回(默认返回最后一条命令的退出码) |
| set | 为shell设置参数变量 |
| shift | 除了$0的所有参数变量左移一位 |
| find | 搜索文件 |
| grep | 过滤字符串 |
正则表达式
如何