8.1 shell介绍

shell 是一个命令解释器,提供用户和机器之间的交互
支持特定语法,比如逻辑判断、循环
每个用户都可以有自己特定的shell
CentOS7默认shell为bash(Bourne Agin Shell)

还有zsh、ksh等

8.2 命令历史

history
.bash_history
默认1000条
变量HISTSIZE
/etc/profile 中修改
HISTTIMEFORMAT="%Y%m%d %H:%M:%S "   指定历史记录的格式
永久保存 chattr +a ~/.bash_history
!!       //上次执行的命令
!n       //执行第几条命令
!word    //word 最近执行命令的前几个字符

    [root@aming-01 ~]# echo $HISTSIZE
    1000
    [root@aming-01 ~]# vim /etc/profile    //更改HISTSIZE=2000
    [root@aming-01 ~]# echo $HISTSIZE
    1000
    [root@aming-01 ~]# source /etc/profile
    [root@aming-01 ~]# echo $HISTSIZE
    2000

history -c  清空内存中的命令记录

    [root@aming-01 ~]# vim /etc/profile
            HISTSIZE=2000
            HISTTIMEFORMAT="%Y%m%d %H:%M:%S "   //添加的
    [root@aming-01 ~]# source /etc/profile
    [root@aming-01 ~]# history

8.3 命令补全和别名

    [root@aming-01 d6z]# rpm -q bash-completion
    bash-completion-2.1-6.el7.noarch
    [root@aming-01 d6z]# yum install -y bash-completion
    安装完成后需要重启才能支持

tab键,敲一下,敲两下
参数补全,安装 bash-completion
alias 别名给命令重新起个名字
各用户都有自己配置别名的文件 ~/.bashrc
ls /etc/profile.d/
自定义的 alias 放到 ~/.bashrc

8.4 通配符

ls *.txt
ls ?.txt
ls [0-9].txt
ls {1,2}.txt
cat 1.txt > 2.txt
cat 1.txt >> 2.txt
ls aaa.txt 2> err
ls aaa.txt 2>> err
wc -l < 1.txt
command > 1.txt 2> &1

*    任意字符
?   一个任意字符
[]   方括号中的字符任选一个
{}   花括号中的字符任选一个

8.5 输入输出重定向

>   输出
>>  追加
2>  错误输出
2>> 错误输出追加
<   输入

    [root@aming-01 ~]# ls > 1.txt
    [root@aming-01 ~]# w >> 1.txt
    [root@aming-01 ~]# lsaa 2>> 1.txt
    [root@aming-01 ~]# cat 1.txt
    1.txt
    anaconda-ks.cfg
     23:08:03 up  1:04,  1 user,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.104.1    22:04    3.00s  0.18s  0.01s w
    -bash: lsaa: 未找到命令

    [root@aming-01 ~]# wc -l < 1.txt
    6