什么是Shell?
Shell相当于内核的外壳,相当于人与内核交互的程序接口
那么什么是内核呢?
内核是操作系统的内部核心程序,它向外部提供了对计算机设备的核心管理调用,Linux系统使用的是单一内核结构,虽然是单一内核体系但是它与传统的单一内核UNIX操作系统不同,在普通的单一内核系统中,所有的内核代码都是被静态编译联入的,而在Linux中.可以动态装入和卸载内核中的部分代码。Linux将这些代码段称为模块。(module),并对模块给与了强有力的支持.在Linux中,可以在需要时自动装入和卸载模块
Linux的内核是非抢占式的,即Linux不能通过改变优先权来影响内核当前的执行流程,因此,Linux在实现实时操作时就有问题。Linux并不是一个“硬”实时操作系统.在Linux内核中,包括进程管理、定时器、中断管理、内核管理
Shell的种类:可以通过 cat /etc/shells 查看shell种类
其中Linux默认的是/bin/bash类的Shell
/bin/bash的简介
1、命令记忆功能
登陆后,输入的命令暂时记录在内存中,当关机后,存储在当前用户主目录的 .bash_history中最多能记录1000条命令
2、命令和文件名补全功能
按tab键补全
3、命令别名设置功能
alias lm=“ls -la”
此时lm替代的就是“ls -la”命令,当再次启动或者打开新窗口时失效。
4、进行前后台切换
5、通配符功能
ls ~/ha*
6、编程语言功能
shell支持编程语言的功能.如变量,分支,循环,数组等编程语法
Shell中的变量
shell的变量与编程语言中的变量意义是一样的
1、变量的命名规则
(1)可以使用英文字母,数字,下划线,同样的数字不能开头
(2)变量名通常大写
(3)不能使用空格,其他符号
(4)不能使用bash中的关键字
2、使用规则
(1)没有类型区别,直接写变量名。
(2)使用“=”赋值,但是“=”前后不能有空格
(3)必须使用$连接变量名 $变量名 ${变量名}
只读变量和删除变量
readonly [变量名] :设置为只读变量后,变量不能够删除(使用超级管理员的身份可以)或者修改
使用Unset删除命令之后
,会提示Myname这个变量是只读变量不能进行删除
unset命令是用来删除变量的
首先定义一个Name变量,
直接在命令行上输入变量的名,然后使用echo命令进行查看,需要注意的是,当使用echo查看变量时,必须要在变量名前加 ***$***,不然无法进行查看变量
使用unset命令删除Name这个变量
使用unset命令删除变量时,不需要在变量名字前面 加 $字符.
env、export、set三个命令查看环境变量
env:显示当前用户的环境变量
set:显示当前Shell所有变量.包括其内建环境变量(与Shell外观等相关),用户自定义变量及导出的环境变量。
export:显示(设置)当前导出成环境变量的Shell变量(注意:export为bash或类bash私有的命令)
什么是环境变量呢?
环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息.通过使用环境变量,可以很容易的修改一个牵涉到一个或者多个应用程序的配置信息(Linux是一个多用户的操作系统,每个用户登录后,都会有一个专用的运行环境,通常每个用户默认的环境是相同的,这个默认环境实际上就是一组环境 变量的定义.用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量)