任务:

  • shell介绍

  • 命令历史

  • 命令补全和别名

  • 通配符

  • 输入输出重定向

shell介绍

  • shell是一个命令解释器,提供用户和机器之间的交互

  • 作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令

  • 支持特定的语法,比如逻辑判断,循环等

  • 每个用户都可以有自己的特定shell

  • centos7默认shell为bash(bourne agin shell)

  • 还有zsh、ksh等

命令历史

history:

作用:显示历史执行过的命令

[root@tk ~]# history 

 1    history 

 2    ls

.bash_history

作用:历史命令存放在这个配置文件里,可以通过cat或vim .bash_history来查看 

[root@tk ~]# vim .bash_history 

cd phpwind/

ls

cd ..

HISTSIZE

作用:内置的环境变量,默认历史命令最大存1000条,可以通过修改环境变量来修改存历史命令的条数,在/etc/profile里面修改,如下:

[root@tk ~]# echo $HISTSIZE # 通过这个命令可以看到最多存1000条

    1000

[root@tk ~]# vim /etc/profile #找到HISTSIZE,把后面的数字修改成想要改的数就可以

HOSTNAME=`/usr/bin/hostname 2>/dev/null'

HISTSIZE=1000 #1000改成想要的就可以我这里改成2000改完后要退出终端或者执行这个文件才生效,如下

[root@tk ~]# source /etc/profile

[root@tk ~]# echo $HISTSIZE

    2000

HISTTIMEFORMAT

作用:让历史命令显示的时候有完整的时间格式

问题history这个命令在看历史记录的时候只显条数,能不能让其在显示的时候把命令操作时间也显示上,答案是可以的

在/etc/profile配置文件里把HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"添加到HISISIZE=1000下面就可以 :如下

[root@tk ~]# history  #没有改变变量时如下显示

     1    history 

     2    ls

[root@tk ~]# vim /etc/profile  #在HISTSIZE=1000下面添加HISTTIMEFORMAT="%Y-%m-%d %H:%m:%S "

HISTSIZE=1000

HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " #注意,分号(%S”)后面有一个空格,作用是格式更好看,如果不加空格会感觉很紧俏

[root@tk ~]# source /etc/profile

[root@tk ~]# history #完整的时间格式

    1  2019-11-14 15:11:30 exit

    2  2019-11-14 15:12:35 cat /var/log/

    3  2019-11-14 15:13:36 which log

history -c

作用:清除当前终端的历史命令,但是不会清除配置文件下保存的命令

[root@tk ~]# history 

    1  2019-11-15 12:11:35 history 

    2  2019-11-15 13:11:11 vim .bash_history 

    3  2019-11-15 14:11:55 history

    4  2019-11-15 14:11:19 vim /etc/profile

    5  2019-11-15 14:11:50 vim .bash_history 

    6  2019-11-15 14:11:51 history 

[root@tk ~]# history -c #清除当前终端历史命令

[root@tk ~]# history  #查看的时候发现只有刚刚执行过的命令

    1  2019-11-15 14:11:04 history 

[root@tk ~]# vim .bash_history  #查看配置文件,里面的命令并没有被清除了

ll

service mysqld restart

service phpd restart

ls

cd sh

chattr +a .bash_history

作用:锁定文件,历史命令永久保存,只会追加不会覆盖

[root@tk ~]# chattr +a .bash_history

命令补全和别名

tab键

作用:补全命令或者文件,注centos7 可以补全命令参数但是需要安装bash_completion,安装完后需要重启系统才生效

[root@tk ~]# ser #如果输入ser按一下tab键就会出来service,作用补全单个没有与之前缀相同的命令

[root@tk ~]# service 

[root@tk ~]# se#如果输入se按两下会出现与之前缀相同的命令,作用是在不知道具体命令怎么拼写的时候可以用

[root@tk ~]# se

secon                    selinux_restorecon     setfiles

sed                        semodule                   setfont

alias

作用:把复杂的命令用一个简单命令来命名,让其书写记忆方便


命令补全和别名

命令补全 tab键


别名alias


通配符

  1. 通配符

  *

  ?

  []

  {}

  

  1. 输入输出重定向


    >

    >>

    2>

    2>>

    &