一、shell 基础
shell是个命令解释器,提供用户和机器之间的交互
每个用户都可以拥有自己特定的shell
centos7默认Shell为bash(Bourne Agin shell)
除了bash,还有zsh.ksh等
二、命令历史
敲过的命令在/root/.bash_history里储存着,最多可以储存1000条。
可以用history命令查看
history -c 可以清除内存里,history里的命令历史,但是不能清除配置文件/root/.bash_history里的命令
echo $HISTSIZE 查看环境变量,查看最多可以储存多少命令。
/etc/profile 里面可以改变环境变量
source /etc/profile 刷新profile文件,使环境变量立即生效
HISTTIMEFORMAT="%Y%m%d %H:%M:%S" 使history临时显示历史命令的输入时间
若想一直生效,在/etc/profile中加入 HISTTIMEFORMAT="%Y%m%d %H:%M:%S"一行
source /etc/profile 刷新一个profile文件即可
永久保存/root/.bash_history 不想被别人破坏或删除
chattr + a /root/.bash_history 给这个用户加入a权限
如果不正常退出,用exit或者logout。则历史命令保存的不全
!! 执行最后一条命令
!n n表示数字。执行哪一条历史命令
!命令 执行最后一次输入的指定命令
三、命令补全即别名
tab键,如果只有一个开头,按一下自动补全。如果是两个以上,按两下则自动补全
yum install -y bash-completion 下载一个自动补齐参数的包(需要从新启动生效)
alisa别名
alisa 查看系统内所有的alisa命令
alisa+别名='命令' 创建alisa别名
unalisa+别名 取消自己创建的alisa别名
四、通配符
* 不分字符和个数
? 一个任意的字符
[] 里面可以写一个范围。例如0-3或者123,13只显示1和3.
{} 相当于方括号的13,但是中间要加 ,
五、输入输出重定向
> 把前面命令的输出直接出入到后面的文件中,覆盖后面文件原有的内容
cat 1.txt > 2.txt
>> 把前面命令的输出追加到后面的文件中
cat 1.txt >> 2.txt
2> 错误重定向
2>> 错误追加重定向
&> = > 和 2>
&>> = >> 和 2>>
写shell脚本时,可以把错误和正确的分开,以检查脚本