五周第三次课 2017.11.15 shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向
来源:互联网 发布:js字符串获取指定下标 编辑:程序博客网 时间:2024/05/16 05:35
8.1 shell介绍
shell是一个命令解释器,提供用户和机器之间的交互
支持特定的语法,如逻辑判断、循环
每个用户都有自己特定的shell,centos7默认shell是bash,
出了bash,系统中还有zsh、ksh两种shell。
8.2 命令历史
命令历史存在用户家目录下的.bash_history,如root用户就是/root/.bash_history
history可以查看命令历史,.bash_history文件了里最多可以存1000条,它是由环境变量HISTSIZE决定的,不过history有时候也会查看到超过1000条的命令历史,不过那是没有写进文件里的,还存在于内存中。
history -c可以把当前内存里的命令历史清空,但是并不会删除.bash_history文件里存的命令历史。
当你退出终端的时候系统会把内存里的命令历史存到.bash_history文件里。
当然我们可以更改.bash_history文件的1000条数限制,只需要编辑/etc/profile,把里面HISTSIZE这一行后的1000改一下,然后source /etc/profile刷新一下,或者重新进一下终端即可生效。
我们也可以让history出来的历史命令显示时间,使用如下命令,定义HISTTIMEFORMAT变量为后面的格式,不过它只在当前窗口当前终端里生效。
如果想要让它在其他窗口并且一直生效,可以编辑/etc/profile文件,这行命令放到HISTSIZE这一行下面,之后source /etc/profile刷新一下,或者重新进一下终端即可生效。
如果想要永久保存你的命令历史,不想别人删除,可以给它加一个特殊权限a,即使有最大1000条的限制,也是可以保存超过1000条的。
不过如果你不是正常退出终端,你敲过的命令历史就会保存的不全。
想要使用命令历史的最后一条命令,也就是你使用的上一条命令可以用!!
想要使用命令历史的多少行命令,那就可以使用!加行数
想要使用命令历史里最后一个以xx开头的命令可以使用!加xx
8.3 命令补全和别名
在打命令的时候按tab键可以自动补全,可以补全文件,也可以补全命令,如你打了文件名的一半然后按一下tab键系统可以自动帮你补全剩下的一半。
不过有一种情款就是有两个及以上的文件都是以你打出来的部分文件名开头的,这时候按一下tab就没有用了,这时候我们可以按两下,系统会显示出所有以你打出来的部分文件名开头的文件。
然后你可以找到你要打的文件名,继续输入,直到没有其他以你输出的部分文件名开头的文件,再按一下tab就可补全了。
在centos7里tab还可以补全命令的参数,不过需要安装一个bash-completion包,然后重启系统才能生效。
我们还可以给较长的命令设置别名,使用alias命令,如我们把systemctl restart network.service别名设置成restartnet,之后我们就可以使用restartnet命令代替了。
直接运行alias可以查看系统中所有的别名。这些别名存在于用户家目录下的.bashrc文件(自定义的alias)以及/etc/profile.d/目录下的文件里。
取消别名使用unalias加别名
8.4 通配符
*用法
表示查看当前目录下名字中以.txt结尾的所有文件或目录。
表示查看当前目录下名字中含有txt的文件或目录。
表示查看当前目录下名字以1开头的文件或目录。
?用法
查看当前目录下文件名是一个字符加.txt的文件(?只代表一个字符)
[数字-数字]用法
查看当前目录下设定数字范围内的所有以.txt结尾的文件(同时也支持字母如a-z或A-Z)
查看当前目录下以1、2、3开头的,然后以.txt结尾的文件
{字符、字符、字符}
类似于[123],字符之间是或者的关系,
8.5 输入输出重定向
>把前面的命令的输出输入到后面的文件里面去,下图就是把1.txt里的内容覆盖到2.txt里。(会把原本2.txt里的内容删掉)
>>把前面的命令的输出追加到后面的文件里面去,下图就是把1.txt里的内容追加到2.txt里(不会把原本2.txt里的内容删掉)
2>把前面的命令产生的错误信息输入到后面的文件里去。
2>>把前面的命令产生的错误信息追加到后面的文件里去。
&>把前面的命令产生的正确信息以及错误信息都输入到后面的文件里去。(同样也支持追加,使用&>>)
把前面的命令产生的正确信息以及错误信息分别输入到后面的两个文件里去可以使用
<把右边文件的内容输入到左边的命令里去,如下我们查看1.txt内容的行数。(<的左侧必须要是命令)
- 五周第三次课 2017.11.15 shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向
- shell介绍、命令历史、命令补全和别名、通配符和输入输出重定向
- linux学习第二十三篇:shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向
- shell基础,命令历史,别名,通配符,输入输出重定向
- shell命令历史 & 命令补全+别名
- Linux曲径通幽:Shell编程(别名、历史、输入输出重定向、多命令顺序执行、管道符、通配符)
- Linux学习----Shell基础(环境变量,命令别名与快捷键、历史命令、输出重定向、管道符、通配符)
- shell基础-输入输出以及重定向/多命令顺序执行与管道符/通配符与特殊符号
- Shell输入输出重定向命令-53
- 命令补全和别名alias
- 【Linux基础学习之三】Bash的一些基础知识总结(通配符、重定向、管道、命令补全)
- 命令别名和历史命令
- Shell基础-Bash基本功能-历史命令与补全
- shell基础-bash基本功能-历史命令与补全
- bash基础功能之历史命令和命令补全
- Linux 命令输入输出重定向。。。
- linux输入输出重定向命令
- 设置KSH的自动补全和历史命令功能
- Windows Office Excel 数据字典的批量替换代码
- 为何优秀的程序员会不断离去
- 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
- Android前端 Java后端 集成支付宝支付
- AndroidStudio常见问题
- 五周第三次课 2017.11.15 shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向
- 40个DBA日常维护的SQL脚本
- Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyExc
- 【python serial虚拟串口通信】发送端python代码实现--接收端C代码验证
- 启动tomcat闪退,查看错误信息
- Redis监控调研
- Vmware+Centos7搭建Openstack环境(网络配置)
- 12.1、拦截器——HelloWorld
- javascript语法总结归纳(二)