1. 简介
2. 基本元素
2.1 命令与参数
$ cd word; ls -l whizprog.c
-rw-r--r--	1	tolstoy	devel	30252	Jul	9 22:52 whizprog.c
$ make
...
- 空白分割命令行中各个组成部分;
- 命令名称是命令行第一个项目,后面跟着选项;
- 选项开头使用-,不带参数的选项可以合并,如-l -t可以写为-lt;
- 分号;表示命令顺次执行,如果是$,则表示命令异步执行,前一条命令后台执行。
三种基本命令:
- 
内建命令:Shell本身所执行的命令,如 cd、read;
- 
Shell函数:功能健全的一系列程序代码,以Shell语言编写,可以像命令一样引用; 
- 
外部命令:Shell副本在新的进程中所执行的命令。如下图: 

2.2 变量
命名规则:
- 字母或下划线开头
- 后接字母、数字、下划线
长度无限制。
取出变量值使用$,而将几个变量值拼接起来,就需要使用双引号了:fullname="$first $middle $last"
2.3 终端打印
2.3.1 使用命令echo。
$ echo 'Hello Bash!'
Hello Bash!
echo后信息可:
| 格式 | 注意 | 
|---|---|
| 带单引号 | 不会对变量(如 $var)求值,而是直接显示 | 
| 带双引号 | 不能有字符 !,需要转义\! | 
| 不带引号 | 不能使用 ;,因为其被认为是命令定界符 | 
echo的转义序列
| 序列 | 说明 | 
|---|---|
| \a | 警示字符,通常是ASCII中的BEL字符 | 
| \b | 退格字符(Backspace) | 
| \c | 忽略最后的换行符的打印,且其后所有参数皆被忽略 | 
| \f | 清除屏幕(Formfeed) | 
| \n | 换行(Newline) | 
| \r | 回车(Carriage Return) | 
| \t | 水平制表符(Horizontal tab) | 
| \v | 垂直制表符(Vertical tab) | 
| \\ | 反斜杠字符 | 
| \0ddd | 将字符表示为1-3位的八进制数值 | 
2.3.2 printf
和C语言中一样,例如:
#!/bin/bash
# filename: printf.sh
printf "%-5s %-10s %-4s\n" No Name Mark
printf "%-5s %-10s %-4s\n" 1 Sarath 80.3456
# 运行结果
No	Name		Mark
1	Sarath		80.35
2.3.3 注意
echo和printf中的标志应该出现在命令行内任何字符串之前,否则Bash会将其视为另一个字符串。
2.4 特殊文件
- 
/dev/null
- 
/dev/tty










