一、由linux控制的系统,在硬件上做出相应的相应,如采集温度,实现linux的socket通信,就需要由内核进行控制,而内核就是通过用户输入的命令来进行执行相应的动作,而shell就是将我们输入的命令与内核进行通信。
查看linux可以使用的shell,在/etc/shells这个文件中。
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
为什么我们系统上合法的shell要写入etc/shells,因为系统某些服务在运行的过程中,就会去检查用户能够使用的shell,而shell的查询就是通过etc/shells这个文件。
二、bash shell的功能
1、命令记忆功能
在命令行中按上下键就可以找到前后输入的命令。这些命令都存放在.bash_history中。需要注意的是,
~./bash_history 记录的是前一次登陆所执行的命令,而这一次所执行的命令都被存放在内存中,当成功注销掉系统后,该命令就会写入.bash_history.
2、命令与文件的补全功能
使用Tab键
3、命令别名的设置
像ls等都是系统定义的命令,我们也可以自己定义命令,通过使用alias即可。
4、通配符(Wildcard)
bash支持通配符来帮助用户进行查询和命令的执行。例如像知道/usr/bin下面有多少以l开头的文件,可以使用命令ls -l /usr/bin/l*
三、内置命令
内置 命令指命令内置在bash中。查看是否是内置命令可以使用type。当然查看文件的类型可以使用file命令。
四、变量
1、变量和变量的内容以"="进行连接
myname=rongdeguo
2、等号两边不能有空格符。
3、变量只能是英文字母与数字,但是开头不能是数字。
4、变量的内容若有空格,可以使用单引号或者双引号将变量的内容结合起来。但是双引号的特殊字符如$还保持原来的特性,单引号字符则是一般的字符(纯文本)
5、使用转义字符将特殊变量编程一般的字符。
五、export变量将自定义变量转换成环境变量
环境变量=全局变量
自定义变量=局部变量