Skip to content

Linux之Shell基础

· 8 min · Linux / Shell / 环境变量 / 学习笔记

一、Shell是什么#

​ 我们现在的使用的操作系统都是带有图形界面的,早期的操作系统是使用命令行的。操作系统本身只是一些内核代码,图形化界面让我们可以简单的使用操作系统,命令行也是让我们能够对操作系统进行输入和输出。但是真正能够控制操作系统硬件的只有内核,不管是图形化界面还是命令行,他们都是帮助用户使用操作系统内核的工具,是用户和内核的桥梁。

​ 对用户来说,他们不能也没有必要直接接触内核,这时候就需要有一个程序来帮助用户能够操作内核,这个程序就是Shell。Shell和其他的应用程序一样,不同的是,要使用Linux系统必须使用Shell。

现在的Linux发行版都有自带的图形化界面,使用图形化界面也可以

二、Shell的工作原理#

​ Shell本身使用内核提供的接口进行工作,调用这些接口来实现对硬件的控制。

​ Shell自带的命令叫做内置命令,也可以使用其他应用程序叫做外部命令。

​ Shell通过调用其他的程序,并且将不同的程序通过数据的传递联系起来,也就是将一个程序的输出作为另一个程序的输入,就具备了非常强大的功能。

​ 在Shell中键入一个命令,Shell会识别这是否是一个内部命令,如果不是则作为外部命令来执行,但是能够执行的外部命令必须存在于环境变量的路径中。

三、Shell的使用#

​ 在没有图形化界面的系统中,只能使用Shell来控制系统。

​

(1 控制台#

​ 在Linux中也可以从图形界面直接进入Linux控制台(Console),使用快捷键键 Ctrl + Alt + Fn(n=2,3,4,5,6) 。

​ 在控制台中,用户登录后就进入了Shell。

(2 终端#

​ 在Windows系统或者Linux桌面环境中,可以利用**终端(Terminal)**来使用Shell,其实终端本质上是一个终端模拟器,帮助用户在桌面环境下也可以使用Shell。

四、Bash介绍#

​ Bash是大多数Linux系统的默认Shell,具有许多现代化的强大功能。

五、环境变量#

环境变量有很多种。常见的如下。

环境变量的名称一般是大写的

运行Shell时,会同时存在三种环境变量

shell变量移步下一部分#

PATH环境变量

使用printenv打印环境变量

Shell执行命令时,也可以调用其他程序。一般来说可以使用绝对路径、相对路径或者环境变量启动应用程序。这里的环境变量就是一个可执行文件所在的路径。

六、Shell脚本编程#

创建文件和执行#

vim test.sh创建shell脚本文件并进行编辑。

第一行用于指定脚本的执行shell,后面定义了一个name变量,然后打印出这个变量。

#!/bin/zsh
name="Liuheng"
echo ${name}

使用chmod +x test.sh命令给脚本执行权限。

然后./test.sh执行脚本,就打印出了变量。

脚本执行方式

如果是直接绝对路径加文件名进行执行,首先会根据指定的执行shell进行运行,如果没有指定那么就直接使用当前的shell的子shell。

shell变量#

变量在shell中是这样被定义的name="tanghuan",定义变量时,变量名不加美元符号$.

变量的命名规则如下:

单引号字符串的限制:

${NAME} 中的$后面带上一个花括号可以帮助确定变量范围,是良好的编码习惯。

Terminal window
name="Liuheng"
x='x,'${name}''
y='y,${name}'
echo ${name}
echo ${x}
echo ${y}

执行结果如下

双引号的优点:

Terminal window
name="Liuheng"
x="x,"${name}""
y="y,${name}"
z="z,\"${name}\""
echo ${name}
echo ${x}
echo ${y}
echo ${z}

执行结果如下

其他操作和命令