6月28日任务
8.1 shell介绍
8.2 命令历史
8.3 命令补全和别名
8.4 通配符
8.5 输入输出重定向
shell介绍
Shell脚本只是一个表现,所谓的shell是一个命令解释器,用户和机器的一个交互
Shell我们主要使用的是bash shell 另外还有zsh ksh等
yum list |grep zsh
yum list |grep ksh
history查看历史命令
-c 是清空内存的命令历史
其实所有的历史命令都存在一个文件里
/root/.bash_histroy这个文件里
默认的存放条数是1000,可以修改,如果只是修改环境变量的话 $HISTSIZE =10000,但是最终还是要到环境变量的文件中去进行修改
这个文件是 /etc/profile
这里面可以修改存储的个数,比如$HISTSIZE=10000改成10000条
也可以增加记录中使用命令的时间 比如$HISTTIMEFORMAT
HISTTIMEFORMAT="%Y/%m/%d %H:%M:$s |" (注意在文件里写的时候就不要加$了)
这样就定义了显示的时间格式
但是修改完之后要么是退出当前用户,要么是需要source 这个文件才可以生效
可以使用echo $HISTSIZE $HISTTIMEFORMAT显示定义的值
如果不想丢失历史记录怎么办呢?
有办法。
现在已经定义了可以存放的历史命令的个数,如果超了就会覆盖,那我们直接可以追加模式 echo$?可以看到上一步运行的是否有错误
history显示历史命令之后
有一些命令可以快速使用之前的命令
!! 上一条命令
!数字 运行第X条命令
!word 倒着往上找第一个以word开头的命令
命令补全和别名
tab键 一个的话敲一下补全 两个以及以上就会显示出来
centos 支持命令参数补全 默认还是不支持的 需要安装一个包 bash-completion 后重启系统
alias别名 给命令重新起名字
如果有的命令比较长 可以把命令做别名
alias 别名=‘原来的命令’
直接alias可以看到系统里所有的别名,也包括自己的定义的
这些别名的定义在什么地方呢?
用户家目录下的.bashrc中
目录 etc/profile.d下的几个文件中
如何取消自定义的别名?
unalias 别名
通配符
*
?
[0-2] =[012]
[0-3a-zA-Z] 中间不用加任何的标点符号
{1,2,3,} =[1-3]区别是有逗号
输入输出重定向
> 前面的输出作为后面的输入 覆盖 前面文件内容不会受影响
>> 前面的输出作为后面的输入 追加 前面的文件内容不会受到影响
2>是将前面命令的错误信息保存到后面的文件中 当然了2>>是追加
如果前面的是正确的会把后面的文件内容覆盖
>+2 == &> 覆盖 >>追加
还可以分开把正确的和错误的写入文件 > 2>
<叫做输入重定向 很少用到
是把右边内容重定向到左边命令
比如 wc word count -l line 查看行数
把1.txt的内容重定向查看行数
但是不能把右边文本内容输出到左边文件中,左边必须是命令
原文地址:http://blog.51cto.com/13691454/2133570