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>> 同样不会删除源文件的内容
&> 把正确和错误的信息都输入到这顶的文件里面 相当于重定向和错误重定向集合
输入重定向用于改变命令的输入,不常使用
来源:oschina
链接:https://my.oschina.net/u/3867258/blog/1837372