8.1 shell介绍
Shell是系统的,提供了用户与进行交互操作的一种。它接收用户输入的命令并把它送入内核去执行。
实际上Shell是一个命令,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
Linux提供了像那样的可视的命令输入界面--的()。它提供了很多系统,其操作就像Windows一样,有窗口、图标和菜单,所有的管理都是通过鼠标控制。。
每个系统的用户可以拥有他自己的或Shell,用以满足他们自己专门的Shell需要。
Linux发布版本(Red Hat/CentOs)默认安装是shell版本是bash(即Bourne Again Shell),它是sh(即Bourne Shell)的增强版本。Bourne Shell是最早流行起来的一个shell版本。其创始人是Steven Bourne,为了纪念他而命名为Bourn Shell,简称sh。说白了,shell脚本就是一些命令的集合。
8.2 命令历史
我们执行过的命令Linux都会记录,预设可以记录1000条历史命令。这些命令保存在用户的家目录的.bash_history文件中。但需要注意的是,只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中。
!是与命令历史有关的特殊字符,常用的有以下3个。
- !!:连续两个!表示执行上一条指令。
- !n :这里的n是数字,表示执行命令历史中的第n条指令。
- !字符串 (字符串大于等于1):例如!pw表示执行命令历史中最近一次以pw开头的命令。
8.3 命令补全和别名
命令补全:按tab键可以补全一个命令,一个路径或者一个文件名。连续按2次tab键,系统会把所有的命令或者文件名都列出来。
别名:
可以自定义命令的别名,格式为alias【命令别名】=【‘具体的命令’】
也可以unalias命令解除别名。
8.4 通配符
在bash下,可以使用*来匹配零个或多个字符,用?匹配一个字符。
8.5 输入输出重定向
输入重定向用于命令的输入,输出重定向用于改变命令的输出(较为常用)。