shell介绍、命令历史、命令补全和别名、通配符和输入输出重定向
一、什么是shell
1、shell是一个命令解释器,提供用户和机器之间的交互
2、支持特定语法,比如逻辑判断、循环
3、每个用户都可以有自己特定的shell
4、CentOS7默认shell为bash(Bourne Agin Shell)
bash它是sh(Bourne Shell)的增强版本,Bourn Shell 是最早行起来的一个shell,创始人叫Steven Bourne,为了纪念他所以叫做Bourn Shell,检称sh
二、命令历史
1、history命令
我们敲过的命令,linux是会有记录的,预设可以记录1000条历史命令,这些命令保存在用户的家目录中的.bash_history文件中。只有正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中。
(使用命令history -c 命令可以清空内存中的命令,文件.bash_history里的不会清空)
2、修改记录的历史数,可以使用命令:
vim /etc/profile 中修改变量HISTSIZE:
修改后使用命令 :source /etc/profile 让它生效,然后再用命令:echo $HISTSIZE 来查看修改结果:
3、记录命令的使用时间,可以输入以下变量即可(只限当前窗口的shell):
HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%S ”
如果要在其他的窗口shell中也生效,可以进入 /etc/profile 中添加一行即可(保存退出后source /etc/profile一下生效):
4、永久保存不让别人删除的话,可使用命令: chattr +a ~/.bash_history
5、 !! 表示执行上一条指令
!n 表示执行命令历史中第n条指令,如!20条命令
!echo 表示执行命令历史中最近一次以 ‘echo’ 为开头的命令
三、命令补全及别名
1、命令补全:
按tab键,它可以帮你补全一个命令,也可以帮你补全一个路径或者一个文件名。
连续按两次tab键,系统则会把所有的指令或者文件名都列出来
参数补全,安装bash-completion
2、alias别名
通过alias把一个常用的并且很长的指令别名一个简洁易记的指令。如果不想用了,还可以用unalias解除别名功能。直接敲alias会看到目前系统预设的alias.
系统预设的alias指令也就这几个而已,你也可以自定义你想要的指令别名。alias语法:alias [命令别名]=[‘具体的命令’]
CenOS7 版本默认可以自动补全参数
CenOS6 版本要安装 yum install -y bash-completion
.bashrc 和 /etc/profile.d/ 是定义别名的文件
自定义的alias放到~/.bashrc
四、通配符、输入输出重定向
1、在bash下,可以使用 * 来匹配零个或多个字符,而用 ? 匹配一个字符
2、也可以使用[0-9a-zA-Z]范围来匹配,如 : ls [0-3].txt
3、输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。输出重定向更为常用,它经常用于将命令的结果输入到文件中,而不是屏幕上。
输入重定向的命令是<,输出重定向的命令是> ,追加重定向 >> ,2>是错误重定向,2>>错误追加重定向
(>+2> 等于 &>)