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

  • Post author:
  • Post category:其他


1,shell介绍。

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

支持特定语法,比如逻辑判断循环。if,else,while,for….

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

Centos7默认的shell是bash(Bourne Again Shell)  。

还有zsh、ksh等。

2,命令历史。

我们执行过的命令linux都会记录,预设可以记录1000条历史记录,按向上的方向键可以查看之前的命令。可以用命令history查看之前保存的命令。这些命令保存在用户家目录的.bash_history文件中。需要注意的是,只有当用户正常退出当前shell时,在当前shell中的命令才会保存至.bah_history文件中。history -c:清除当前内存里面的命令历史记录清空,但是不能清除配置文件里面的历史记录。

1000条历史记录是由系统内置的环境变量$HISTSIZE配置的,可以在/etc/profile中修改它的值。将HISTZISE改5000。


source之后变量才会生效。


修改命令历史格式的参数,HISTTIMEFORMAT=”%Y%m%d %H:%M:%S ”


在/etc/profile中保存。


永久保存:chattr +a ~/.bash_history


!!:表示上一条指令。

!n:这里的n是数字,表示执行命令历史中的第n条指令。

!字符串:执行命令历史中最近一次以该字符串开头的命令。


3,命令补全和别名。

按tab键就可以帮我们补全一个指令、一个路径、或一个文件名。连续两次按tab键,系统就会把所有的命令或者文件名都列出来。

参数补全需要安装包bash-completion然后reboot。

别名,alias,它也是bash所特有的功能之一。我们可以通过alias把一个常用的并且很长的指令另取名为一个简单易记得指令。如果不想用了,还可以使用unalias命令解除别名功能。

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


自定义命令的别名。格式为alias 命令别名=’具体的命令’。


各用户家目录下面都有自己配置别名的文件~/.bashrc。自定义的alias放在这个文件里面。还有一些在/etc/profile.d/下面。

4,通配符。

在bash下,可以用*来匹配零个或多个字符,用?匹配一个字符,[ ]来范围匹配,{a,b,c}取abc其中之一。


5,输入输出重定向。

输入重定向用来改变命令的出入,输出重定向用来改变命令的输出。输出重定向更为常用,它经常用于将命令的结果输入到文件中而不是屏幕上。输入重定向的命令是<,输出重定向的命令是>。另外还有错误重定向命令2>,追加重定向命令>>。

输出重定向会>删除目标文件的内容,追加重定位>>不会删除目标文件的内容而是添加上去。


错误重定向2>会把一个命令参数的错误信息指定输入到指定文件中。错误追加重定向2>>同理不会删除原文件中的内容。


&>=> + 2>,错误和正确的输出信息全部输入到指定文件中去,还支持重定向&>>。


还可以加正确的和错误的输出内容分开来。


输入重定向<,将目标文件的内容输出到左边的命令中。




版权声明:本文为wanli245原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。