哈喽哈喽,在经历了18章linux进阶命令的学习以后从这节开始我们就要开始学习linux的高级应用了,而这一章我们先来讲解shell编程的基础操作,因为shell内容比较多,所以我们分为几章进行讲解,好了让我开始学习吧。
目录
一.shell基础认知引入
网上经常流传着一个非常有趣的段子,叫本人熟练掌握各类编程语言的"hello word",这本就是一句对自身编程技术的调侃,可今天我们就要从这句话中引出我们的“主角”
不知道朋友你现在使用的是什么编程语言,像我专业是学习人工智能的,所以我接触到了编程语言是python。但不管学习的是什么语言,就算没学过语言也没事,因为我们今天将要接触的 linux 当中的 shell 语言会给你带来一个新的编程语言体验。
准备好了没?我们开始了!!!
1.#/bin/bash讲解
首先在 shell 脚本当中基本用到的命令都是我们前面学习过的,如果你还恰巧还会各种流程控制语句之类的编程基础,那么我们这章的shell 编程对你来说对非常非常的简单。
首先,我们是在文件里面编写 shell 脚本的,且shell脚本必须具有可执行权限在可以运行,所以大家可以在第一红括号当中看见我使用 chmod a+x wenjian 命令将 wenjian 文件设为了可执行文件。
然后看wenjian的内容,我们先来看第一个蓝色括号
#!/bin/bash
#! 表示这是个可解释性脚本
/bin/bash 是命令解释器
2.sh命令
而看蓝色下划线部分的命令 echo "hello word" 是这个 shell 脚本将要执行的命令。
看黄色括号,sh 命令就是负责执行 shell 脚本。
格式:sh 要执行的shell文件名
好了,到这里我想你应该对 shell 脚本有了一个初步的了解了。
下面我们将要开始讲解 关于 shell 脚本的知识点了
二.shell基础知识讲解
1.转义字符的艺术
首先我们先来认识三个转义字符(转义的意思就是不使用这个符号原本的作用,而是取它的字面意思)
\(反斜杠):对后面的一个字符进行转义
''(单引号):对单引号内的所有内容进行转义
""(双引号):对双引号内的所有内容进行转义,但不转义命令和变量的替换
在开始前朋友你需要知道 # 符号会将右边所有的内容注释掉,$(hostname)将会显示 hostname 这个命令的值
来看蓝色下划线: 我们发现 echo #hello #$(hostname),我们发现hello 和 ¥(hostname )两个部分都被 #注释掉了
来看绿色下划线: 我们发现这次我们在 #hello 前面加了个转义符号 \,最后我们的得到了#hello
看红色下划线:你可以发现这次我们对#hello #$(hostname) 整体使用了‘’单引号,最后得到了一个完成的字面值 #hello #$(hostname)
看黄色下划线:你可以发现这次我们对#hello #$(hostname) 整体使用了“”双引号,所以这次 $(hostname) 保留住了 命令执行获得到了主机名值,最终得到 #hello #coolbog
2.shell 变量介绍
Shell 环境变量分为: 环境变量,用户自定义变量,引用变量和预定义变量
环境变量
我们首先来讲解下两个比较重要的环境变量,HOME和PATH
HOME 非常的好理解,就是当前用户的家目录
而PATH 对于新手朋友来说可能有点重新,你会发现我的第二个绿色阔,有好多的目录,这些用冒号分隔的目录搜索路径,当shell 执行命令时,将在PATH变量中给出的顺序搜索这些目录,第一个找到的与命令一致的可执行文件将会被执行
你可以发现我在 /usr/local/sbin这个目录当中创建了 path文件,并且让它执行一个终端输入 I was in the path shell脚本,最后我给到 path 文件可执行权限,最终只是输入 path ,系统就自动帮我执行了/usr/local/sbin/path 的shell 脚本
用户自定义变量
顾名思义就是我们自己定义的变量,而引用变量就是我们使用 $变量,来引用系统变量或我们自己定义的变量
绿色括号的部分就是我自己定义的变量 friend=2,而第一个绿色下划线就是我通过 $friend 来引用的 friend 这个变量
而看红色的下划线就是我们通引用了¥HOME这个环境变量
预定义变量
和环境变量差不多,都是shell 启动就定义好的变量,与环境变量不同的是,用户无法修改预定义变量,只能引用。这里我就主要说一个我们后面经常会用到的 $? 预定义变量
$?:命令返回的状态,成功为0,非0都是不成功
我们先来看红色括号部分 我们这里 使用 ls -l > ll 命令将打开当前目录的内容送到 ll 文件当中去,而红色下划线的 echo $? 将会在终端上面显示 命令返回的状态。而通过黄色括号的 sh wenjian 执行,和返回的结果 0 我们可以确定 ls -l > ll 命令执行成功了。
最后我们 cat ll 查看了ll文件内容发现的确如此
3.输入输出的内部指令
输出指令我想大家应该已经知道是谁的吧,对输出就是我们的 echo 命令,而接受用户输入的命令叫read
我们先来看第一个红括号,这里我们使用 read 命令接收用户输入的字符串给到 name 这个变量,最后在第二个红括号上使用 echo $name 将name 的变量值显示在终端上。
最后看第三个红括号发现结果的确如此。
好了好了朋友们今天的内容到这就结束了,今天的内容稍微有点难,朋友你要多多看看,消化一下啊哦,如果有啥不会的,及时在论坛评论哈~
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈~嘿嘿嘿~我会定期更新文章的,谢谢朋友你的支持哈~