一,硬件,内核,与shell
? ? ? ?有操作系统就会离不开shell这个东西,操作系统实际上是一组软件,由于这组软件在控制整个硬件与管理系统的活动检测,如果能被随意操作那就乱套了,所以不能被非管理员用户所随意使用。但是对于用户来说也是需要体验的,用户可以通过应用程序来指挥内核,让内核完成所需要的硬件任务,如说明,应用程序在最外层,像鸡蛋壳一样所以被称为壳程序 也就是shell。
二,命令行的shell
? ? ? ? Linux多家百花齐放,也有窗口可供设置主机,但是对于所有的Linux都一样,shell的bash是通用的。学会命令行才可谓掌握着Linux的命脉。而且命令行指令相比窗口要快得多,能用窗口解决的一定可以使用命令行,但是命令行解决的窗口并不一定会解决。所以命令行真的是万金油。
三,关于shell? bash
? ? ? ? shell是一个程序,可以称之为壳程序,用于用户与操作系统进行交互。用来区别与核,相当于是一个命令解析器,Shell有很多中,这里列出其中几种 - Bourne SHell(sh) - Bourne Again SHell(bash) - C SHell(csh) - KornSHell(ksh) - zsh
各个shell的功能都差不太多,在某些语法的下达下面有些区别,Linux预设就是bash。这里主要记录bash
bash命令是sh命令的超集大多数sh脚本都可以在bash下运行,bash主要有如下这些功能
- 记录历史命令:bash可以记录曾经的命令,保持在~/.bash_history文件中,只保存上次注销登录之后的命令
- tab键自动补全:使用tab见可以自动不全命令或者目录
- alias命令别名:可以使用
alias ll='ls -al' 来设置命令的别名 - 工作控制:可以将某些任务放在后台去运行(任务管理,前台。后台控制)
- 程序脚本:可以执行shell脚本文件
- 通配符:在查找相关文件或者执行相关命令时,可以使用通配符
* - 内建命令type:可以使用
type 命令 来查看某个命令是否为内建在bash当中的命令
bash中变量有两种,分别是环境变量和自定义变量,可以理解为全局变量和局部变量,在理解他们的区别前,需要知道副程序和子程序,举个例子,当前的bash我们称之为父程序,而在这个bash下执行的任何程序,都称之为子程序。那全局变量和局部变量的区别就是,全局变量在子程序中仍然有效,局部变量只在当前程序中生效。(注意,一旦退出父程序这个bash的话,无论是全局变量还是局部变量都失效了,再次打开bash时,该变量是不存在的)?
变量的设定有几个规则 - 设定变量通过=来链接,例如name=sujinzhou,两边不能有空格,如果有空格的话,需要用引号 - 变量名只能是英文名和数字,只能是英文开头 - 如果变量内容被引号扩起来的话,双引号和单引号是有区别的 - 双引号里面的特殊字符,会保持原有的特性。 - 单引号里面的特殊字符,只会是字符 - 使用\将特殊字符转换为一般字符 - 使用“这个符号扩起来的命令会先计算这个命令里面的内容,这个指令等价于$() - 给原有的变量添加值时,使用变量,"变量,"变量”再加具体的内容
|