码迷,mamicode.com
首页 > 系统相关 > 详细

26期20180628 shell 命令操作 通配符 输出输入重定向

时间:2018-06-28 12:08:50      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:自己   history   ace   roc   mat   输出重定向   lis   $?   修改环境变量   

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的内容重定向查看行数

技术分享图片


但是不能把右边文本内容输出到左边文件中,左边必须是命令


26期20180628 shell 命令操作 通配符 输出输入重定向

标签:自己   history   ace   roc   mat   输出重定向   lis   $?   修改环境变量   

原文地址:http://blog.51cto.com/13691454/2133567

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!