shell介绍 、命令历史、命令补全和别名 、通配符 、输入输出重定向

8.1 shell介绍
shell是一个命令解释器,提供用户和机器之间的交互 
支持特定语法,比如逻辑判断、循环 
每个用户都可以有自己特定的shell 
CentOS7默认shell为bash(Bourne Agin Shell) 还有zsh、ksh等
shell介绍 、命令历史、命令补全和别名 、通配符 、输入输出重定向
8.2 命令历史
history命令    //查看之前的命令
.bash_history   //cat /root/.bash_history  该文件存储之前敲过的命令
 最大1000条   //查看大于1000是因为没有真正写入内存文件,存在内存中,只有退出终端时,才会写入文件中。
 变量HISTSIZE   //$HISTSIZE  =1000,最大保存1000
history -c    //清除内存中的命令历史,不能清除配置文件的命令历史
 /etc/profile中修改   //可以修改HISTSIZE变量的值
shell介绍 、命令历史、命令补全和别名 、通配符 、输入输出重定向
 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "     //指定变量的格式,如要使所有终端生效,需要修改配置文件内容
shell介绍 、命令历史、命令补全和别名 、通配符 、输入输出重定向
 永久保存 chattr +a ~/.bash_history     //不正常退出终端,命令保存不全
 !!   //表示执行最后一条命令
 !n   //运行第n条命令
 !word   //执行在命令历史里面倒着找word开头的命令

8.3 命令补全和别名
tab键,敲一下,敲两下   //补全命令,文件路径
参数补全,安装bash-completion   //重启
alias别名给命令重新起个名字     
shell介绍 、命令历史、命令补全和别名 、通配符 、输入输出重定向
各用户都有自己配置别名的文件 ~/.bashrc    //该文件配置几个alias
ls /etc/profile.d/    
自定义的alias放到~/.bashrc

8.4 通配符
ls *.txt    //列出包含.txt文件
ls ?.txt     //列出1个任意字符的文件
ls [0-9].txt   //列出0.1.2....9中任意一个字符的文件
ls [123].txt   //列出包含1、2、3任意一个字符的文件
ls [0-9a-zA-Z].txt   //同上
ls {1,2}.txt    //同上

8.5 输入输出重定向
cat 1.txt >2.txt    //把1.txt的内容输出,重定向到2.txt文件里面
cat 1.txt >> 2.txt    //追加原内容不会被删除
ls aaa.txt 2>err   //命令产生的错误信息,指定输出到某一文件
shell介绍 、命令历史、命令补全和别名 、通配符 、输入输出重定向
ls aaa.txt 2>>err   //错误追加重定向
wc -l < 1.txt    //输入重定向
command >1.txt 2>&1