学习主题:shellscript编程(类似与javascript:解释器是:浏览器)
首先说一下什么是Kernel:
Kernel(内核),内核就是Linux的核心,用户的所有操作,都是由Kernel来完成的,但是用户却又不是直接对 Kernel做所有的操作,为什么呢?因为用户与Kernel之间,并不能直接的沟通,用户不可以直接的发送指令给Kernel ,这个时候就需要Shell了,Shell把你给他的指令翻译成Kernel能懂的命令,然后要Kernel来操作。
明白了吧?不懂,那好,给你举个例子吧
你们家新买房子了,这房子就相当于是一台新买的什么都没有装的计算机,买了怎么办?你要个工人帮你打扫、管理,于是,你上批发市场了,打算去买了一个外国的奴隶来给你整理房子,市场里的奴隶还挺多,有的叫windows,有的叫linux,你就买了一只叫linux的欧洲奴隶回来,因为他免费,就是长得丑点,脾气稍微有点大,不过驯服了确实干活麻利,windows这奴隶长得是漂亮,而且开始还比较听话,就是时间长了就不好好干活,把你家整的乱七八糟的。这里说的奴隶就是咱们要的Kernel,你用Kernel来管理一个新的计算机,就像你买了个奴隶管理你的房子。奴隶买回来了,你得要他开始干活了,结果他听不懂你这世界上最帅的汉语,叫他拖地,他以为叫他洗碗,怎么办?请个翻译吧,你把洗碗的指令给翻译,翻译把指令告诉奴隶,这奴隶就开始乖乖干活了。这里说的翻译就是Shell,Shell把你的指令翻译成Kernel能明白的指令,然后由Kernel来执行了。这下大家明白了吧,不明白回头再想想。
而这翻译的种类也有很多了,有男的有女的,一般的就有叫Bash、Ksh、Csh等等的,都是市场里卖得比较多的翻译了,也都还比较好用,各有特色
Shell的介绍
shell是一个程序,可以称之为壳程序,用于用户与操作系统进行交互。用来区别与核,相当于是一个命令解析器,Shell有很多种,这里主要介绍bash,Linux预设就是bash。
bash
是 Linux 使用频度最高,最为广泛的 shell。shell 是内核与用户交互的接口,接受,解析,执行用户命令,完成请求。
bash命令是sh命令的超集大多数sh脚本都可以在bash下运行,bash主要有如下这些功能
bash功能
记录历史命令:bash可以记录曾经的命令,保持在~/.bash_history文件中,只保存上次注销登录之后的命令
tab键自动补全:使用tab键可以自动补全命令或者目录i
alias命令别名:可以使用alias ll='ls -al’来设置命令的别名
工作控制:可以将某些任务放在后台去运行,这里不多介绍
程序脚本:可以执行shell脚本文件
通配符:在查找相关文件或者执行相关命令时,可以使用通配符*
内建命令type:可以使用type 命令来查看某个命令是否为内建在bash当中的命令「
bash变量
bash中变量有两种,分别是环境变量和自定义变量,可以理解为全局变量和局部变量,在理解他们的区别前,需要知道父程序和子程序,举个例子,当前的bash我们称之为父程序,而在这个bash下执行的任何程序,都称之为子程序。那全局变量和局部变量的区别就是,全局变量在子程序中仍然有效,局部变量只在当前程序中生效。(注意,一旦退出父程序这个bash的话,无论是全局变量还是局部变量都失效了,再次打开bash时,该变量是不存在的)
变量范围
变量的设定
变量的设定有几个规则,这里列举如下:
- 设定变量通过=来链接,例如name=sujinzhou,两边不能有空格,如果有空格的话,需要用引号
- 变量名只能是英文名和数字,只能是英文开头
- 如果变量内容被引号扩起来的话,双引号和单引号是有区别的
- 双引号里面的特殊字符,会保持原有的特性。
- 单引号里面的特殊字符,只会是字符
- 使用\将特殊字符转换为一般字符
- 使用“这个符号扩起来的命令会先计算这个命令里面的内容,这个指令等价于$()
- 给原有的变量添加值时,使用变量,"变量,"变量”再加具体的内容
shell中的变量
-
本地变量:作用在当前shellscript中
-
环境变量:作用在当前的shell(bash)及其子shell(bash)
-
局部变量
-
特殊变量 :KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲,?,位置变量:$1,$2,$3…
linux的chown命令
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。
1.命令格式:
chown [选项]… [所有者][:[组]] 文件…
2.命令功能:
通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
3.命令参数:
必要参数:
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身