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

查看系统shell包

二 命令历史
所有使用过的命令会由一个文件保存,文件路径为/root/.bash_history 可以使用向上的方向键查看

1.历史命令存放位置
# /root/.bash_history //存放在用户家目录下的.bash_history文件内

这个文件内默认最大可以存1000条命令,可以使用命令# echo $HISTSIZE查看

2.清空内存中的历史命令
# history -c //只能清空内存中历史命令,但不能清空/root/.bash_history文件内的命令历史

同时需要注意的是,登录后所有使用过的命令是保存在内存中的,只有登出终端后才会将这些命令写入到.bash_history文件内
3.定义环境变量HISTSIZE
修改环境变量HISTSIZE需要在/etc/profile文件中修改

修改为5000后,不会立即生效

要想生效,需要先执行命令# source /etc/profile或者重新登入终端

4. 记录命令使用时间
设置环境变量 # HISTTIMEFORMAT="%Y/%m%d %H:%M:%S" //临时生效,

打开新的终端后,环境变量HISTTIMEFORMAT为空

若要永久生效,需要编辑/etc/profile文件配置环境变量,加入以下一行

保存文件后,再# source /etc/profile使配置永久生效

5.让命令历史永久保存
# chattr +a ~/.bash_history //给记录文件加上只能追加内容不能删除内容的a权限
6.执行上一条最近使用过的命令
# !!

7.重复执行指定条数的命令
# !n

8.执行倒数第一个使用过的命令
#![命令]

三 命令补全和别名

1.tab键
可以补全命令和路径,若开头一样的命令或路径只有一个,则按一下tab键就自动补全,若有多个,则需按两下tab键提示所有开头一样的命令
2.参数补全
CentOS7支持命令的参数补全,但需要安装一个包 bash-completion并重启
3.别名
适用于命令比较长

从上图中可以看到系统默认的别名
4.别名配置文件
# ~/.bashrc //自定义的别名放在这个文件内

其他别名放在/etc/profile.d/文件夹下面的文件内

5.取消别名
# unalias [别名]
四 通配符

1.通配符*
*可以适用各种场景

2.通配符?
适用于通配一个任意的字符,不论数字或字母

3.通配范围[ - ]

从上图可以看出,只要满足方括号[1-9]中1到9的任意一个数字,就算满足条件,且只取一位数


4.通配符{ , , }
括号内字符间的关系为或,只要满足其中一个条件就行

五 输入输出重定向

1.重定向>
将前面文件的输出内容输入到后面命令中
例如 # cat 1.txt >2.txt 会将2.txt清空后再将1.txt的内容写入到2.txt中
2.追加重定向>>
例如# cat 1.txt>>2.txt 会将1.txt的内容追加到2.txt中,2.txt原来的内容不变
3.错误信息输出 2>
例如 # ls aaa.txt 2> err 会将前面的命令ls aaa.txt产生的错误信息写入到err文件中

4.错误追加重定向2>>

5.正确+错误重定向
1)将正确和错误信息写到同一个文件

2)将正确和错误信息分开写到两个文件中

6.正确+错误追加重定向

7.输入重定向<
输入重定向只能输入到一个命令中,不能输入到文件中
