2018-4-20

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-4-20相关的知识,希望对你有一定的参考价值。

8.1 shell介绍

8.2 命令历史

8.3 命令补全和别名

8.4 通配符

8.5 输入输出重定向



8.1 shell介绍

技术分享图片


我们登陆的终端,输入root登陆密码其实就是一个shell。

还又zsh  ksh等shell,这里以bash为主。




8.2 命令历史

技术分享图片

之前使用过的命令 其实是有一个文件保存着的。

这些命令存再用户的加目录下。/root/.bash_history

cat一下这个配置文件,可以看到之前敲过的命令

技术分享图片

这个命令可以存多少命令可以用history命令查看。

技术分享图片

目前493条, 最多可以存100条。配置的环境变量HISTSIZE

技术分享图片

所以最大能保存1000条。


history -c 可以把当前命令里的内存给清空,但不会清空配置文件。

技术分享图片


当前使用的命令不会直接存到配置文件中 只会存在内存中。只有当退出终端的时候它才能够保存到配置文件里去。


HISTSIZE环境变量再 /etc/profile 里定义

技术分享图片

觉得 1000太少可以改成5000,保存退出


要想让这个history命令变5000生效的话要重启终端。或source /etc/profile 就生效了。

技术分享图片


目前history看到的只是排序和名称,如果想要看到时间的话。

技术分享图片


重新赋值变量

技术分享图片

技术分享图片

这仅仅在当前的终端里生效。系统默认这个环境是不存在的,需要每次都去定义


技术分享图片

这个时候history会记录日期和时间。

如果想让它永久生效 vim /etc/profile

技术分享图片

把它和修改过的变量放一起,保存退出 然后source !$就可以了

技术分享图片


如果想永久保存命令,不让被删除。可以添加一个权限(就算你总共1000条,就算到了1000条也不会被删除的)

chattr +a ~/.bash_history

技术分享图片

这个文件就只能追加 无法删除。


如果非正常退出,直接退出,命令会保存不全。 需要用命令正常退出。


!! 就是上一条命令,也就是最后一条命令


!n 想运行第几条命令。

技术分享图片


 !echo 会倒着网上找第一个echo命令(同样其他命令也适用 !ls !cat 都可以)


这些都是命令历史相关的特性





8.3 命令补全和别名

技术分享图片

tab已经用到多次了,可以补全命令和路径,只有一种可能按一下自动补全,多个可能按两下列出全出。


centos 7 支持参数的补全。比如systemctl restart network 是有多个参数的,也可以补全。

默认不支持,需要安装一个包然后重启系统就生效了,yum install  -y bash-completion,reboot重启。然后就可以补全参数了。


alias别名。比如命令比较长 平时常用到 那就可以起一个别名

以systemctl restart network为例 :alias restartnet="systemctl restart network" ,那别名就是restartnet了。

直接alias回车,可以把所有的别名都列出来

这些别名的文件在 用户的家目录下.bashrc(自定义的) 剩余的都在/etc/profile.d/下面。

技术分享图片

可以用vi修改这些配置文件。


取消自定义的别名unalias +别名 就可以了。





8.4 通配符

技术分享图片

*表示通配,不仅可以放到前面也可以放到后面,不分有几个字符。

?表示一个任意的字符(仅限一个字符)

ls [0-9]选择范围,可以把0-9任意一个都会满足这个条件,方括号里的字符只表示一个 也可以[23]就是或者的意思2或3都会

  被筛选出来。包括字母[0-9a-zA-Z]这样也可可以

ls{1,2}首先需要加括号,也是或者的意思满足其一就可以了






8.5 输入输出重定向

1技术分享图片

>把前面这个内容的输出,直接输入到后面这个文件里去(比如图片会把1的内容转移到2 并且删1)

>>对比上面 就是不会把1的内容删除(追加重定向)

2>它会把命令产生的错误信息给他指定输入到一个文件里去。(>正确的输出重定向,2>错误的输出重定向)

2>>错误追加重定向

&>(就是>1.txt 2>a.txt两个结合的,这么写也可以)结合正确和错误(同样支持追加)。

技术分享图片


<输入重定向 ,把右边的文件的内容输入到左边的一条命令里(左边必须是一条命令)

技术分享图片

这个几乎用不到,作为了解。







以上是关于2018-4-20的主要内容,如果未能解决你的问题,请参考以下文章

2018-4-20

2018.4.20 五周第三次课

2018-4-20 17周3次课 shell函数数组告警需求分析

2018-4-20 17周3次课 shell函数数组告警需求分析

2018.4.20 五周第三次课

2018.4.20 设计模式之组合模式