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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二十shell介绍命令历史命令补全和别名通配符输入输出重定向相关的知识,希望对你有一定的参考价值。

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

一、shell介绍

shell是系统跟计算机硬件交互使用的中间介质,它只是系统的一个工具。shell和计算机硬件之间还有一层东西——系统内核。若把计算机硬件比作人的躯体,那系统内核就是大脑,shell就是五官。用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。

shell是一个命令解释器,提供用户和机器之间的交互。

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

centos7默认的shell为bash(Bourne Agin Shell)

系统里还有zsh、ksh的shell,有细节差异。

shell还有自己特定的语法,比如逻辑判断、循环。

二、命令历史

history命令        查看命令历史

/root/.bash_history          所在路径

可以使用该命令查看存了多少条,该文件最大存一千条。

该命令由一个环境变量给它配置:HISTSIZE。可以echo $HISTSIZE查看到为1000,代表最大存1000条命令,这是系统内置的环境变量。出来的第1000条以后的命令,没有存入命令历史,暂时存在了内存中。

# history -c          把内存里命令历史清空,不能把配置文件给清空

只有退出当前终端的时候,命令才会存到配置文件里面去,在终端里的时候就是存在了内存的命令历史里。

定义环境变量HISTSIZE的配置文件:/etc/profile

进入后可以直接查找HISTSIZE即可,将数据可以更改为自己想定义的量。

更改保存后,必须执行# source /etc/profile命令,否则该变量不会生效,或者重新进终端也行。

# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "    使命令历史有时间显示。只在当前终端生效。Y:年份;m:月份;d:日期;H:小时;M:分钟;S:秒钟。

若想永久生效,将它写入到配置文件/etc/profile中,放到HISTSIZE=1000下面一行。写到配置文件后,保存退出,再重新进终端就可以验证命令历史是不是有时间显示。

# chattr +a ~/.bash_history

永久保存,使命令历史的配置文件直接追加不能删除。若不正常退出,那命令就不会正常的保存到命令历史里面。

# !!命令历史里的最后一条命令

# !n    n后跟数字,可以再执行一遍命令历史里的第n条命令。

# !echo     从后往前在命令历史里找以echo开头的命令再执行一次,如!tree,等。

三、命令补全和别名

命令补全         tab键,敲一下补全,敲两下搜索出以该命令开头的2个以上的选项。可以补全命令和文件路径。

命令参数补全:centos7支持,需要# yum install -y bash-completion。安装这个包。centos6仅仅支持命令本身的补全,安装完后还需要重启系统才行。

命令参数如systemctl restart network.service。

# alias restartnet="systemctl restart network.service"

将这条长命令做一个别名。再使用时敲别名即可。

unalias解除别名。

别名位置:用户家目录下的.bashrc下和/etc/profile.d/下。自定义的别名在.bashrc下。

四、通配符

*  表示通配,不分字符,不分几个

? 表示匹配一个字符,如ls ?.txt,会将.txt的文件全部列出来。

[  ]  示例:ls [0-3].txt或ls [123456].txt。写一个范围。

{  }  和[  ]类似,但是这个{  }里要加逗号,如{1,2,3,4}

五、输入输出重定向

>  输出重定向

> 把前面命令的输出输入到后面的文件里面去。一个大于号会把后面的文件删除掉将前面的输出覆盖后面的文件。所以一般用两个>>,追加的意思,不会把原来的文件删除。

2>,把命令产生的错误信息指定的输入到一个文件去。2>>,错误信息追加重定向。

>+2>=&>,将正确和错误的信息输出到后面的文件里去。用&>表示即可。

<  输入重定向,>的反向用法。左边必须是命令,不能是文件反向输入到文件。


以上是关于二十shell介绍命令历史命令补全和别名通配符输入输出重定向的主要内容,如果未能解决你的问题,请参考以下文章

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重

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

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

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

8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重

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