0
点赞
收藏
分享

微信扫一扫

百战RHCE(第二十二战:linux高级应用-shell编程极简应用1)

小黑Neo 2022-04-30 阅读 49

 

哈喽哈喽,在经历了18章linux进阶命令的学习以后从这节开始我们就要开始学习linux的高级应用了,而这一章我们先来讲解shell编程的基础操作,因为shell内容比较多,所以我们分为几章进行讲解,好了让我开始学习吧。

目录

一.shell基础认知引入

1.#/bin/bash讲解

2.sh命令

二.shell基础知识讲解

1.转义字符的艺术

2.shell 变量介绍

环境变量

用户自定义变量

预定义变量

3.输入输出的内部指令


一.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 的变量值显示在终端上。

最后看第三个红括号发现结果的确如此。


好了好了朋友们今天的内容到这就结束了,今天的内容稍微有点难,朋友你要多多看看,消化一下啊哦,如果有啥不会的,及时在论坛评论哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈~嘿嘿嘿~我会定期更新文章的,谢谢朋友你的支持哈~

 

举报

相关推荐

0 条评论