任务:
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
通配符
通配符
*
?
[]
{}
输入输出重定向
>
>>
2>
2>>
&