• 常见linux命令释义(第六天)——shell环境变量


    太懒了,这几天好像得了懒癌,一点都不想写博客。后来想想,知识嘛,还是分享出来的好。第一治自己的懒癌;第二顺便巩固下自己的知识。


    Linux的变量分为两种,一种是系统变量,是系统一经启动,就写进内存中的变量。在各个进程、以及子进程中都可以调用得到。

    一种是自己设置的变量,关机后再开机就挂了,或者切去下个进程,就找不到变量了。这个是局部变量。

    以上两种变量,第五天的时候有详细的讲述过,这里就不赘述了。

    查看环境变量有个命令:env   env是environment【环境】 的意思。

    这个里面有一些我们常用的常量,比如HOME 、SHELL、HISTSIZE 、MAIL、PATH、LANG 、RANDOM等。这些单词都很好认识,顾明就思意了。因此不再继续解释。

    查看当前系统常量与自己设置的所有变量。可以用set这个命令查看。

    下来我们来继续谈一谈env的环境变量和set的自定义变量之间差异有那些:(引用鸟哥linux私房菜第11章)两者的差异就在于该变量是否会被子进程所继续引用,那么什么事父进程、什么是子进程。当登陆linux后,并取得了一个bash,你的bash就是一个独立的进程,被成为pid的就是。接下来你在这个bash下面所执行的任何命令都是由这个bash所衍生出来的,那些被执行的命令就成为子进程。(大赞鸟哥,写的真好。)

    第五天的笔记中,我提了一个问题,如何将自己设置的变量设置为环境变量呢。现在我们可以用export命令。export的英文意思是输出;出口;带走,运走;

    意思就是将自己设置的变量变成环境变量。

    如图所示:

    global variable (全局变量)= 环境变量

    local variable   (局部变量)   =  局部变量

    为什么环境变量的数据可以被子进程引用呢?这是因为内存配置的关系。理论上是这样的:

    1、当启动一个shell,操作系统会分配一个专属的区域给shell使用。此内存里的变量可以让子进程调用,

    2、若在父进程利用export功能,可以让自定义的变量加载给上述的记忆块中。

    3、当加载另一个shell时,即启动子进程。离开原来的父进程。子shell,可以讲父shell的环境变量所在的记忆块导入到自己的环境变量块中.

    前面的变量还是有点意思的。下来我们继续看下更有意思的东西。竟然有点if 和else判断。

    我记得在前面安装一键lamp安装包的时候,会让我选择使用那个版本的mysql以及那个版本的php,以及制定安装路径、默认密码等等。当时就好奇,这样一步步的引导是怎么写出来了。就是用我们接下来要看到read命令。

    命令的语法是这样的。read [-pt] variable    

    这个-p的命令指的是print。可以通过man read命令详细的查看。

    这个-t指的是后面接允许用户等待的最大秒数。 来吧。我们来看下具体怎么用。

    我后面跟的那个select 变量,就可以获取用于在键盘上输入的事yes还是no。

    下面来说道说道一个声明变量的方法。declare 是声明宣布的意思。

    declare   -a   是 声明数组的意思。 a代表的事数组(array)类型.

    declare   -i   是声明整型的意思,i代表是整型(integer)

    declare  -x   可以将后面的变量变成环境变量。 x代表的事export ,可能读音上有点是x开头,所以就以x命名了.

    declare  -r   是可以将变量(variable)设置为只读类型。r代表的是readonly.

    declare  如果不声名类型,的默认类型为字符串。

    bash环境中的数值预算,默认最多仅能达到整数类型。

    下面我们通过一个小栗子来练习以上上面提到的知识点。

    再下面看看declare -x 的用法。

    再来看看declare -r的用法。

    这几个选项可以组合使用。


    这篇博客实际上本周周一或者周二就写好了。但是这周的身体状态和精神状态都不是很佳。因此,博客都没有持续更新。

    虽然知道博客园里面大牛云集,对于我这点分享根本不屑一顾。但还是要继续下去。

    顺便聊聊自己的感悟:时间真的会让一个人发生桑海桑田般的巨大变化的。有一些朋友只适合回忆,有一些人只适合铭记。我们都随着时间的滚滚浪潮,被冲刷的再也不像曾经。也许变得更加善良,也许变得更加的敏感、也许变得更加的乐观。总之都不再是过去的人了,放在好友列表里面,夜深人静失眠的时候看一看,有哪些朋友是曾经的驴友。这也就仅仅够了,如果还能长久的保持联系,那一定要珍惜,这真是上天赐予的缘分。

  • 相关阅读:
    高精度乘法
    使用BFG清除git仓库中的隐私文件或大文件
    java运行的问题
    eclipse编写的java程序在dos环境下运行的写法
    win32汇编实现阶乘和斐波那契数列
    十个数字不同,实现加减乘。暴力枚举法
    实现一个类模板
    循环队列类模板和函数模板c++实例
    C++析构函数为什么要为虚函数
    1012-Joseph 约瑟夫问题
  • 原文地址:https://www.cnblogs.com/roverliang/p/4796292.html
Copyright © 2020-2023  润新知