[TOC]
一、shell介绍
shell是一个命令解释器,提供用户和机器之间的交互
支持特定语法,比如逻辑判断,循环
每个用户都可以有自己特定的shell
centos7默认shell为bash(bourne agin shell)
还有zsh,ksh,csh等
查看支持的shell:cat /etc/shells
|
|
二、命令历史
我们每次输入的命令都是会保存在一个文件中,使用方向键可以查看我们输入过的命令。
1、查看命令历史的命令:history
history命令查看的是缓存中的命令历史
|
|
选项:
- -c:清空缓存中的命令历史
- -w:将缓存中的命令历史写入保存文件~/.bash_history
2、存放历史命令配置文件
用户家目录下:~/.bash_history
~/.bash_history只保存正确退出的命令,默认最大保存1000条。
history命令显示的命令历史与~/.bash_history一般不会同步,可以使用history -w强制保存
3、如何修改命令历史保存数量
(1)修改配置文件/etc/profile
将HISTSIZE=1000修改为你想保存的数量
(2)保存后,重新进入终端或者source一下/etc/profile
|
|
环境变量HISTSIZE的值为命令历史保存数量,临时修改可以修改该变量的值。
4、如何给命令历史添加时间格式
现在的需求时运行history命令时,同时显示历史命令是什么时候运行的。
(1)修改配置文件/etc/profile
添加内容:HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%S”
(2)保存后,重新进入终端或者source下/et/profile
|
|
环境变量HISTTIMEFORMAT的值就是该时间格式,临时显示可以直接修改该变量的值。
5、如何永久保存命令历史
增加隐藏权限a,chattr +a ~/.bash_history
6、快速定位历史命令
- !!:执行上一条命令
|
|
- !n:n为数字,运行第n条命令
|
|
- !字符串:执行最后一条以“字符串”结尾的命令
|
|
三、命令补全及其别名
1、命令补全
使用tab,可以补全命令,也可以补全路径
(1)补全命令和路径
敲两下:当遇到开头一样的多个命令时,需要敲两下显示全部列表以供选择
|
|
敲一下:当命令开头唯一时,敲一下即可补全命令。
|
|
以上面lsa开头为例,敲一下tab键,就能将命令补全为lsattr
路径的补全方式与命令一致
(2)centos7补全命令参数
- 需要安装bash-completion
- 重新启动系统
|
|
2、命令别名
(1)显示所有命令别名
alias:显示系统中的所有命令别名
(2)设置命令别名
alias 命令别名=’命令内容’
(3)设置别名的配置文件
~/.bashrc 、/etc/profile.d/*.sh、/etc.profile
(4)设置其他终端或用户可用的别名
使用alias命令设置别名后,在其他终端或用户是无法使用的。
如果要使用需要进行以下操作:
- 编辑配置文件/etc/profile,添加设置别名的命令
- 保存后,source一下/etc/profile
|
|
(5)设置只有特定用户才能使用该别名
编辑用户家目录下的配置文件~/.bashrc,添加设置别名的命令
- 保存后,source一下~/.bashrc
|
|
四、特殊符号之通配符
(1)*:表示多个任意字符
|
|
(2)?:一个任意字符
|
|
(3)[]:代表范围中的一个字符,有“-”连接,或者字符全部都写
|
|
(4){}:代表范围中的一个字符,可用”,”分隔
|
|
利用{}快速备份文件:
|
|
五、特殊符号之输入输出重定向
(1)标准输出重定向
使用”>”符号,将命令执行的标准输出内容重定向到指定文件,覆盖原文件内容
|
|
使用”>>”符号,将命令执行的标准输出内容追加到指定文件,不会覆盖原文件内容
(2)标准错误输出重定向
使用”2>”符号,将命令执行的标准错误输出的内容重定向到指定文件,覆盖原文件内容
|
|
使用“2>>”符号,将命令执行的标准错误输出的内容追加到指定文件,不覆盖原文件内容
(3)全部标准输出重定向
使用“&>” ,将命令执行的正确和错误输出重定向到同一指定文件,覆盖原文件内容
|
|
使用“&>>” ,将命令执行的正确和错误输出追加到同一指定文件,不覆盖原文件内容
分开重定向使用:>正确文件,2>错误文件
|
|
快捷用法:“>filename”可以快速清空文件内容
(4)输入重定向
将文件的内容作为命令的输入,用法command <file,例如wc -l < 1.txt