我的Linux学习(9.23)

一. Shell编程:

       1.

         是什么:Shell脚本是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作。被当成是一种脚本语言来设计,其运作方式与直译语言相当,由Unix shell扮演命令行解释器的角色,在读取shell script之后,依序运行其中的shell命令,之后输出结果。利用Shell script可以进行系统管理,文件操作等。说白了,就是通过Shell这个命令解释器来完成对硬件的控制。   

        环境:shell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

        Linux默认安装就带了shell解释器。

        shell只定义了一个非常简单的编程语言,所以,如果你的脚本程序复杂度较高,或者要操作的数据结构比较复杂,那么还是应该使用Python、Perl这样的脚本语言,或者是你本来就已经很擅长的高级语言。

        2.

        #!:指定解释器。解释器有哪些? 比如: /bin/bash  /bin/python

        sh

即Bourne shell,POSIX(Portable Operating System Interface)标准的shell解释器,它的二进制文件路径通常是/bin/sh,由Bell Labs开发。

        bash

Bash是Bourne shell的替代品,属GNU Project,二进制文件路径通常是/bin/bash。业界通常混用bash、sh、和shell,比如你会经常在招聘运维工程师的文案中见到:熟悉Linux Bash编程,精通Shell编程。

        理论上讲,只要一门语言提供了解释器(而不仅是编译器),这门语言就可以胜任脚本编程,常见的解释型语言都是可以用作脚本编程的,如:Perl、Tcl、Python、PHP、Ruby。Perl是最老牌的脚本编程语言了,Python这些年也成了一些linux发行版的预置解释器。

        shell脚本保存后不能执行,需要root用户赋予权限: chmod 744 xxx.sh

        如何执行shell脚本?相对路径执行绝对路径执行

相对路径执行:./myshell.sh

绝对路径执行: /root/shell/Myshell.sh

3.shell变量:

        定义变量时,变量名不加美元符号($), 但在执行定义后的变量就需要添加。如:

your_name="qinjx"
echo $your_name
echo ${your_name}

        只读变量:

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。如:

#!/bin/bash
myUrl="https://www.google.com"
readonly myUrl
myUrl="https://www.runoob.com"

        变量类型:运行shell时,会同时存在三种变量:

1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。                                                             

        字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。

字符串拼接:

your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1

# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2  $greeting_3

单引号:单引号字符串中的变量是无效的;而双引号字符串中的变量是有效的。

获取字符串长度:

string="abcd"
echo ${#string}   # 输出 4

将值返回给变量:result=$(xxx)

有点多,我把链接放在这里:Shell 变量 | 菜鸟教程 (runoob.com)

注意事项:

等号两侧不能有空格!!!

在编写配置文件时,常常忘记切换到root用户,导致文件编辑完毕,敲入:wq 退出保存时,出现 E212:无法打开并写入文件 的错误提示。这是由于在该目录下当前用户没有写权限导致。

环境变量:分为系统环境变量用户自定义环境变量

可以理解为一种全局变量,为所有进程可见。

如何声明?在shell脚本中(终端命令行也是):export xxx

        1.  添加路径至PATH环境变量:PATH是一种重要的系统环境变量,包含的是系统会默认查找的路径。你可以将一些常用的重要文件的路径添加至PATH中。语法如下:

export PATH=$PATH:你要添加的路径 

        2.  如果想要自定义环境变量:

首先在 vim /etc/profile 编辑

添加:自定义环境变量名=xxx路径

 export 自定义环境变量名

但在这两步之后,在终端命令行echo依然看不见自定义的环境变量,为什么呢?

我们要刷新配置文件!

终端命令行 source /etc/profile 

就可以了。

然后这个自定义的环境变量所有的shell脚本对所有用户都可见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值