当用户登录linux操作系统时,就进入了当前用户的shell。shell是一个命令解释器,它提供了用户与机器之间的交互。它支持特定语法,比如逻辑判断、循环等。每个用户都可以有自己特定的shell。CentOS 7默认shell为bash。除了bash之外,还有zsh、ksh等shell类型。

    在shell中,用户输入命令控制操作系统。在所有可执行命令中,history和alias比较特殊。history命令是用来查看过往输入的命令历史。而alias命令是用来定义命令的别名的。这两者都是为了用户使用方便而存在的命令。


1、history

[root@server01 ~]# history                     ##查看内存中的命令历史
    1  logout
    2  mkdir /root/.ssh
    3  chmod 700 /root/.ssh
    ......
   84  yum list | grep 'dev' | more
   85  history
[root@server01 ~]# cat /root/.bash_history     ##查看文件中的命令历史
logout
mkdir /root/.ssh
chmod 700 /root/.ssh
......
yum list | grep 'dev' | more
[root@server01 ~]# echo $HISTSIZE              ##查看命令历史最大条目数
1000
[root@server01 ~]# cat /etc/profile | grep HISTSIZE=   ##配置文件中定义的最大条目数
HISTSIZE=1000
[root@server01 ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"  ##命令历史显示格式
[root@server01 ~]# history
    1  2017/06/27 04:46:01logout
    2  2017/06/27 04:46:01mkdir /root/.ssh
    3  2017/06/27 04:46:01chmod 700 /root/.ssh
    ......
   91  2017/06/27 04:51:54HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
   92  2017/06/27 04:52:02history
[root@server01 ~]# chattr +a ~/.bash_history           ##永久保存
[root@server01 ~]# !!                                  ##执行上一条命令
chattr +a ~/.bash_history
[root@server01 ~]# !90                                 ##执行第90条命令
cat /etc/profile | grep HISTSIZE=
HISTSIZE=1000
[root@server01 ~]# !cat                                ##执行最近一条cat命令
cat /etc/profile | grep HISTSIZE=
HISTSIZE=1000


2、alias

[root@server01 ~]# alias                          ##查看命令别名
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@server01 ~]# alias wv='w -V'                ##定义别名
[root@server01 ~]# wv
w from procps-ng 3.3.10
[root@server01 ~]# cat ~/.bashrc | grep alias     ##别名配置文件,自定义的alias需要放入
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
[root@server01 ~]# ls /etc/profile.d/             ##用户环境变量
256term.csh  colorgrep.csh  colorls.csh  lang.csh  less.csh  which2.csh
256term.sh   colorgrep.sh   colorls.sh   lang.sh   less.sh   which2.sh


    除此以外,利用tab键补全命令的方式在实际操作中也很常见。如果需要补全参数,需要安装bash-completion软件包。