一、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脚本时,可以把错误和正确的分开,以检查脚本