8.1 shell介绍
shell是一个命令解释器,提供用户和机器之间的交互
支持特定语法,比如逻辑判断、循环
每个用户都可以有自己的特定的shell
Centos7的默认shell为bash(Bourne Agin Shell)
还有其他的shell,如zsh、ksh等
8.2 命令历史
方向键的上下键是可以一条一条的查看之前执行过的命令,这些命令存放在/root/.bash_history中
查看之前执行的程序
#history
最大存储默认为1000条 这个是由环境变量HISTSIZE设定的
#echo $HISTSIZE
修改HISTSIZE
#vi /etc/profile
要让修改生效,需要重新登录终端或者使用命令source
#source /etc/profile
#history -c 清空命令历史,但不会清除命令.bash_history中的内容
注意:当前登录输入的命令并不会立即存入.bash_history中,在退出终端之后才存入
修改命令历史的显示格式
#HISTTIME="%Y/%m/%d %H:%M:%S "
这个是临时修改只在当前终端生效,要想总是生效需要修改配置文件,并添加如下内容
#vi /etc/profie
#source /etc/profile
想让命令历史永久保存,只能追加内容
#chattr +a ~/.bash_history
重新执行上一条命令
#!!
执行之前执行过的第n条命令
#!28
执行最近执行以某些字符开头的命令 !word
#!vi
8.3 命令补全和别名
tab键,可以补全命令,也可以补全命令
只有一个候选时,直接补全,
多个候选时按两下tab列出所有候选
补全参数,默认不支持,需要安装一个包
# yum install -y bash-completion
重启生效
命令比较长,可以设置别名来提高效率
#alias restartnet="systemctl restart network.service"
取消用unalias
查看所有的别名
alias的存放位置
~/.bashrc
#vim ~/.bashrc
/etc/profile.d/
8.4 通配符
*表示统配
?表示一个任意的字符
[ ],表示选取满足方括号内项,是或的关系
同时也支持范围
[0-9]
{},选取满足花括号内的项,以逗号分隔,选项之间是或的关系
8.5 输入输出重定向
>:把前一个命令的输出,输入到下一个文件之中并替换原来的内容
# cat 1.txt > 2.txt
>>:把前一个命令的输出,追加到下一个文件之中
#cat 1.txt >> 2.txt
2>:把一个命令的错误信息输入到指定的文件(替换原内容)
# ls aa.txt 2> 2.txt
2>>:错误追加到指定的文件
# lkjlkj 2>> 1.txt
&>:把正确和错误的信息都输入到指定的文件
# ls [12].txt aa.txt &>3.txt
&>>:把正确和错误的信息追加到指定文件
也可以把正确和错误的信息分别重定向到两个文件中
<:输入重定向,把右边的内容输入到左边的命令