shell介绍、命令历史、补全、别名、通配符、输入/输出重定向

坚强是说给别人听的谎言 提交于 2020-03-16 00:03:10

shell介绍

    shell是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。

    用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。 

    每个用户都可以有自己特定的shell。

    centos7默认的shell版本是bash,它是sh的增强版本。还有其他的版本,比如;zsh、ksh等。

命令历史

    我们执行过的命令linux都会有记录,预设可以记录1000条历史命令执行命令history就可以查看

    history -c 清空内存里的命令历史

    这些历史命令会保存在用户家目录的 .bash_history文件中

    命令历史是由环境变量HISTSIZE配置的,

    我们可以在配置文件 /etc/profile修改命令历史保存记录

   执行命令 source /etc/profile 使它生效,

    查看命令历史时加上运行命令的时间: HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"

    也可以在配置文件/etc/profile 中增加这一行在HISTSIZE=5000下面

  

    增加权限,永久保存 chattr +a ~/.bash_history

    !是与命令历史有关的一个特殊字符,这个字符常用的应用有3个:

!!:执行上一条命令

!n:n是一个数字,这样表示执行命令历史中的第n条命令

!字符串:例如输入 !ca 就会执行以ca开头的最近一次执行的命令

命令补全和别名

    tab键敲一下可以伴我们补全命令、一个文件名或一个路径 敲两下可以把所有文件名和命令都列出来

    参数补全狐妖安装bash-completion 重启系统生效

    alias 命令可以给一条命令做别名,这样可以把一条很长的、不好记的命令做一个比较短,好记的别名代替

    用户家目录的 .bashrc文件中存放了一些有别名的命令

    还有其他的一些在/etc/profile.d/目录下

    直接执行alias命令可以查看目前系统预设的别名

    给命令设置别名的命令格式为:alias 命令别名='具体命令'

    unalias命令 取消自定义别名

通配符

    在bash下,可以使用*来匹配零个或多个字符 ls *.txt

    ?来匹配一个字符 ls ?.txt 

    用中括号[ ]确定范围  可以使用[0-9] 或[123]/[a-zA-Z]

输入输出重定向

    输出重定向: 经常用于把命令输出的结果输入到文件里面,而不是屏幕上   

  例:cat 1.txt > 2.txt  把前面命令 cat 1.txt输出的内容输入到2.txt文件里,原来2.txt里的内容会删除

    追加重定向 >>  例:cat 1.txt >> 2.txt  它不会删除2.txt里原来的内容,而是把 cat 1.txt输出的内容添加上2.txt

    错误重定向 2> 会把一个命令参数的错误信息输入到指定的文件里去 ,同时删除指定文件原来的内容。

    错误追加重定向 2>> 同样不会删除源文件的内容

    &> 把正确和错误的信息都输入到这顶的文件里面 相当于重定向和错误重定向集合

    输入重定向用于改变命令的输入,不常使用

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!