一、shell与shell基本操作
1.1、shell基本功能与概念
shell是用户和Linux内核之间的接口程序,作为人机交互的桥梁。
功能有6方面:命令解释执行,文件名及各种替换、I/O重定向、通信管道建立、系统环境设置和shell编程。
shell的另一个重要特性就是它自身就是一个解释型的程序设计语言。
1.2、字符与保留字
1.2.1、字符
白空格:在Unix/Linux系统中,空格和Tab键称为白空格,主要用于命令行中命令名、参数以及选项的分隔。在特殊情况下,白空格中也可包含回车字符。
通配符
模式串 | 意义 |
* | 当前目录下所有文件名 , 但不包含以“.”开头的文件。eg: abc是,但.abc 不是 |
*Text* | 当前目录下所有文件名中包含有Text的文件,但不包括“.”开头的文件。 |
[ab-fm]* | 当前目录下所有以a,b,c,d,e,f和m开头的文件 |
[ab-fm]? | 当前目录下所有以a,b,c,d,e,f和m开头且后面只跟一个字符的文件名。 |
[!ab-fm]?或[^ab-fm]? | 当前目录下所有不以a,b,c,d,e,f和m开头且后面只跟一个字符的文件名。 |
/dev/sd? | 目录/dev下所有以sd开头且只有三个字符的文件名。 |
注释符与注释
在所有编程语言中都有注释,以增加程序的可读性。在shell命令或shell编程中,规定从字符“#”开始以后到末行的部分作为注释,因此以“#”开头的行是注释行。(特例:$#表示命令行参数的个数,而${#name}表示变量name的值作为字符串的长度。)
若在行中需要使用“#”引导注释,则“#”前至少要有一个空白格。
转义字符
字符 | 意义 |
\a | 响铃符 |
\b | 退格符 |
\f | 换页 |
\n | 换行 |
\x?? | 十六进制表示 |
\0??? | 八进制表示 |
\t | Tab键 |
\v | 垂直进制符 |
\\ | \ |
\' | ' |
\” | " |
\e | ESC |
1.2.2、特殊键
Linux系统部分特殊键
特殊键 | 意义 |
Ctrl+D | 结束当前程序输入或结束当前程序,或从系统中注销 |
Ctrl+C | 终止当前程序的执行 |
Ctrl+\ | 终止当前程序的执行(系统内部处理时不同于Ctrl+C),可能产生内存映像文件 |
Ctrl+Z | 挂起当前程序执行 |
Ctrl+S/Ctrl+Q | 暂停/继续屏幕的输出滚动,必须配合使用 |
ScrolLock | 暂停/继续屏幕的输出滚动,开关键 |
Ctrl+Alt+Del | 默认动作为重启系统 |
Alt+F# | 字符终端切换,如Alt+F2将终端切换至F2 |
Ctrl+Alt+F# | 从图形界面切换终端到字符终端,如Ctrl+Alt+F1从图形界面切换至F1 |
1.2.3、保留字
任何编程语言或系统都有一定数量的保留字,bash的部分保留字如下。
!、[, ]、(, )、{, }、break、continue、cd、echo、eval、exec、exit、export、funtion、getopts、hash、pwd、read、readonly、return、select、set、shift、test、time、trap、type、ulimit、unset、unmask、wait、for、do、done、case、in、esac、if、else、elif、fi、while、until... ...