shell介绍

一、什么是shell

1.是命令解释器

2.支持特定的语法(逻辑判断、循环)

3.每个用户可以有自己特定的shell

4.CentOS7默认shell为bash(Bourne Agin Shell)

5.其他的shell :zsh、ksh

二、命令历史

1.按向上方向键查看历史命令

2.历史命令文件存在于用户家目录下的.bash_history文件夹下(root用户存放路径:/root/.bash_history)

3. history命令可以查看历史命令;-c 清空历史命令(内存中),但是删除不了文件中的历史命令记录

4.$HISTSIZE变量用于设置历史命令保留数量

5.只有退出终端时,历史命令会由内存写入文件

6.$HISTSIZE环境变量在/etc/profile文件下修改(source 后配置方能生效)

7.通过更改HISTTIMEFORMAT变量可以更改history显示的格式(HISTTIMEFORMAT="%Y/%M/%D %H:%M:%S")

8.永久更改history的方式:修改/etc/profile文件,在$HISTSIZE下面添加HISTTIMEFORMAT="%Y/%M/%D %H:%M:%S"(年月日时分秒),然后source一下。

9.永久保存历史命令chattr +a ~/.bash_history

10.!n(n为历史命令的序号)可以运行指定的历史命令

11.!echo 倒序查以echo开头的历史命令

三、命令补全

1.tab键,按一下会自动补全命令,如果有多条以该字母开头的命令按两下会将其全部显示出来

2.参数补全。linux默认不支持,需要安装bash-completion包后重启系统

3.别名  alias 别名=‘实际命令’    直接输入alias会显示系统中所有别名

4.alias的配置文件存在于家目录的bashrc和/etc/profile.d中,如果想要永久生效需要在这些文件中修改,修改了家目录的bashrc文件只对当前用户有用,修改了/etc/profile.d文件则全局生效。unalias 别名 可以删除别名

四、通配符

1.* 表示通配

2.? 表示一个任意的字符

3.[0-9] 表示一个范围0到9 或者a到z

4.{1,2} 表示数组,需要加逗号,或的意思

五、输入输出重定向

1. > 正确内容重定向(覆盖)

2. >>正确内容重定向(追加)

3. 2>错误内容重定向(覆盖)

4. 2>>错误内容重定向(追加)

5. &>所有内容重定向(覆盖)

6. <  输入重定向  输入的对象必须是命令