1,什么是shell?

系统跟计算机硬件交互时使用的中间介质,他只是系统的一个工具。

用户→shell→内核→硬件

2,特点

a,记录敲过的命令

这些命令保存在/home中的.bash_history文件中。** 用户正常退出shell时,shell中运行的命令才能保存至.bash_history文件中。

使用bash命令即可再打开一个shell,此时先前设置的myname变量已经不存在了,退出当前shell回到原来的shellmyname变量还在那要想设置的变量一直生效怎么办?有两种情况:

1 要想系统内所有用户登录后都能使用该变量

需要在/etc/profile文件最末行加入 “export  myname=Aming” 然后运行”source /etc/profile”就可以生效了此时你再运行bash命令或者直接su - test账户看看

)只想让当前用户使用该变量

需要在用户主目录下的.bashrc文件最后一行加入“export  myname=Aming” 然后运行”source .bashrc”就可以生效了这时候再登录test账户,myname变量则不会生效了上面用的source命令的作用是,讲目前设定的配置刷新,即不用注销再登录也能生效

笔者在上例中使用”myname=Aming”来设置变量myname,那么在linux下设置自定义变量有哪些规则呢?

a. 设定变量的格式为”a=b”,其中a为变量名,b为变量的内容,等号两边不能有空格;

b. 变量名只能由英数字以及下划线组成,而且不能以数字开头;

c. 当变量内容带有特殊字符(如空格)时,需要加上单引号;

变量内容中本身带有单引号,这就需要用到双引号了

d. 如果变量内容中需要用到其他命令运行结果则可以使用反引号;

e. 变量内容可以累加其他变量的内容,需要加双引号;

想取消某个变量怎么办?只要输入”unset  变量名即可

* :代表零个或多个字符或数字

 ? :只代表一个任意的字符

 # :这个符号在linux中表示注释说明的意思,即”#”后面的内容linux忽略掉

\ :脱意字符,将后面的特殊符号(例如”*” )还原为普通字符

 | :管道符,将符号前面命令的结果丢给符号后面的命令

 $ :除了用于变量前面的标识符外,还有一个妙用,就是和’!’结合起来使用