一 认识bash这个shell
1 管理整个计算机硬件的其实就是操作系统的内核,这个内核是需要被保护的,所以我们一般用户就只能通过shell来跟内核通信,以让内核达到我们所想打到的工作。
2 只要能够操作应用程序的接口度能够称为shell
3 bash shell 的功能
命令记忆功能history
命令与文件补全功能
命令别名设置功能(alias)
作业控制,前台,后台控制
程序脚本
通配符
二 shell的变量功能
1 环境变量例如PATH,HOME,MAIL,SHELL等,为了区别与自定义变量的不同,环境变量通常以大写字符来表示
2 我们可以利用echo这个命令来显示变量,但是变量在被显示时,前面必须加上字符$才行
3 基本上,命令运行的顺序可以这样看
1 以相对/绝对路径执行命令
2 由alias找到该命令执行
3 由bash内置的命令来执行
4 通过$PATH这个变量的顺序找到一个命令来执行
4 bash默认的组合键
Ctrl+C 终止目前的命令
Ctrl+D 输入结束EOF
Ctrl+M 就是Enter
Ctrl+S 暂停屏幕的输出
Ctrl+Q 恢复屏幕的输出
Ctrl+U 在提示符下,将整行命令删除
Ctrl+Z 暂停目前的命令
5 通配符与特殊符号
* 代表0个到无穷多个任意字符
? 代表一定有一个任意字符
[] 同一代表一定有一个在中括号内的字符,例如[abcd]代表这四个中一个
[-] 例如[0-9]代表0-9之间的所有数字
[^] 例如[^abc]表示的是非abc的其它字符
三 数据流重定向
1 标准输出指的是命令执行所回传的正确的信息,而标准错误输出可理解为命令执行失败后,所回传的错误信息
2 标准输入stdin:代码为0,使用<或<<
标准输出stdout:代码为1,使用>或>>
标准错误输出stderr:代码为2,使用2>或2>>
3 1>:以覆盖的方法将正确的数据输出到指定的文件或设备上
1>>:以累加的方法将正确的数据输出到指定的文件或设备上
2>:以覆盖的方法将错误的数据输出到指定的文件或设备上
2>>:以累加的方法将错误的数据输出到指定的文件或设备上
4 && 和|| 的执行情况
cmd1 && cmd2 若cmd1执行完毕且正确执行,则开始执行cmd2;若cmd1执行完毕为错误,则cmd2是不执行
cmd1 || cmd2 若cmd1执行完毕且正确执行,则cmd2不执行;若cmd1执行完毕且为错误,则开始执行cmd2
四 管道命令
1 管道命令|仅能经由前面一个命令传来的正确的信息,也就是标准输出的信息,对于标准错误输出是没有处理能力
2 在每个管道后面接的第一个数据必定是命令,而且这个命令必须是能够接收标准输入的数据才行,这样的命令才可以是管道命令
3 一般来说,选取信息通常是针对“行”来分析的,并不是整篇信息分析的
4 cut命令可以将一段信息的一段切出来,处理的信息是以行为单位
5 grep是抓取我们所需要的信息
6 sort可以进行文本数据来排序
7 uniq是可以将重复的数据仅列出一个显示,但是要求必须先排好序
8 wc可以用来统计文件的行数和单词数
9 tee命令可以用来双向重定向,同时将数据流送与文件与屏幕