认识与学习bash
我们知道,管理整个计算机硬件的其实是操作系统的内核(kernel),而内核一般是需要保护的,因此我们一般用户只能通过shell来与内核通信,让内核完成我们想要完成的工作。那么系统有多少shell可用呢?为什么我们要用shell?—— 我们必须通过“shell”将我们输入的命令与内核通信,好让内核可以控制硬件来准确无误的工作。shell的功能只是提供给用户操作系统的一个接口,该接口可以调用其他软件。
使用shell的几个好处:
- 命令行界面的shell:大家都一样。几乎各家distribution使用的bash都是一样的。这样你可以随意转换不同的distribution。
- 远程管理:命令行较快。速度快而且不太会出现短线或者信息外流的问题。
目前已经有很多版本的shell可以使用,而bash是GNU计划中重要的计划之一,目前也是distributions的标准shell。bash的优点有:
- 命令记忆功能:(history)在命令行中使用上下箭头键就可以找到前/后一个输入的命令;
- 命令与文件补全功能:[Tab]键补全。[Tab]接在一串命令的第一个字后面,则为命令补全;[Tab]接在一串命令的第二个字以后时,为文件补齐。在bash shell下不妨多按几次[Tab]键。
- 命令别名设置。 alias lm = 'ls -al'
- 程序脚本
- 通配符 * 的使用.
shell的变量功能。
- echo ${PATH} / ${HOME}等就会显示当前的环境变量是什么。
- 等号前后不能有空格。
- ""仍然可以保有变量的内容,但是''单引号内的内容仅仅是当做一般字符串来看待。
- 变量设置的用途举例:若你有一个常去的工作目录名称为:"/cluster/server/work/xxx/001/",可以使用变量赋值达到简化目录的目的。
- work="/cluster/server/work/xxx/001/"
- cd $work
- 这样想进入工作目录时,直接使用cd $work即可。
环境变量的功能。
- 使用env查看环境变量与常见环境变量说明。
- HOME:代表用户的主文件夹。
- SHELL:告知我们目前环境使用的是哪个shell程序。Linux默认使用/bin/bash
- PATH: 执行文件查找的路径
路径与命令查找顺序。
- 以相对/绝对路径执行命令,例如”/bin/ls“或”./ls“;
- 由alias找到该命令来执行;
- 由bash内置的(builti)命令来执行;
- 用个$PATH这个变量的顺序找到第一个命令来执行
bash默认的组合键。
- Ctrl+C 终止目前的命令
- Ctril+D 输入结束(EOF),例如邮件结束的时候
- Ctrl+M 即Enter
- Ctrl+S 暂停屏幕的输出
- Ctril+Q 恢复屏幕的输出
- Ctrl+Z 暂停目前的命令
管道命令(pipe).
- bash命令执行的时候有输出的数据会出现。如果这群数据必须要经过几道手续之后才能得到我们所想要的格式,就需要用pipe管道命令了。
- 管道命令使用 | 作为界定符号。"|"仅能处理经由前面一个命令传来的正确信息,也就是standard out的信息,对于standard error并没有直接处理的能力。