常见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的用法。

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



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

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

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

时间: 2024-12-07 19:53:11

常见linux命令释义(第六天)——shell环境变量的相关文章

常见linux命令释义(第八天)—— Bash Shell 的操作环境

换了新公司,公司的领导很不错.自己感受比较多的地方是,自己的工作效率明显比以前高了.以前会对频繁变动的需求十分不耐烦,现在接到需求后会仔细的思考,进行整体构建.即使以后需求有变动,也能够比较轻易的在原有的基础上改动.以前总是跟着别人说频繁变动需求的项目经理都是傻逼,其实我们都掉进了一个认为自己是一个程序员的局里.自认为自己是一名程序员,只关心自己编辑器里那点一亩三分代码的人,是永远也成长不了项目经理乃至于CTO的.至于有人说我就喜欢写代码,那么我只想说不想当将军的士兵不是好士兵.代码只是实现需求

Linux编程 12 (默认shell环境变量, PATH变量重要讲解)

一 .概述 默认情况下, bash shell会用一些特定的环境变量来定义系统的环境.这些默认环境变量可以理解是上篇所讲的系统全局环境变量. 1.1 bash  shell支持的Bourne变量 Bourne shell 是 UNIX 最初使用的 shell.下面例举几个常用的变量名. 变量名 描述 HOME 当前用户的主目录 PATH Shell查找命令的目录列表,由冒号分隔 PS1 Shell命令行界面的主提示符 PS2 Shell命令行界面的次提示符 如下图所示:使用echo 输出该变量名

常见linux命令释义(第五天)——shell变量学习

由于时间有限,我写这篇博客的时间上限为30分钟.仅作为学习笔记而用,内容会尽量的讲清楚.如果讲的不清楚,你来打我啊! 玩笑开过,正式开始今天的学习. linux系统的中一些命令是在/bin下,这个是一般用户能够用的.还有一些是超级用户才能用的,这个命令放在/sbin下. 但还有一部分的命令就直接内置在bash内,随系统的启动直接读进内存的.这样能够最大的减少文件的索引时间,提高系统的效率. 可以通过 type 的命令来查看.type的意思是类型.可以形象的理解为照妖镜,看看你的本质来源到底是什么

常见linux命令释义(第一天)

快到中午吃饭了,然后忽然想起来samba里面没有添加用户.于是乎,就玩弄起了samba. Samba三下五除二就安装好了,想想window里面不断的点击下一步,还要小心提防各种隐藏再角落里的绑定软件.Linux安装软件实在是太省事了,一条yum命令,就安装好了.因此我认为,linux恰恰是给懒人的福利,不用担心系统里会无故的出现乱七八糟的东西,对于有轻微强迫症的我来说,是再好不过的系统了. 近日闲暇开始折腾linux,觉得挺好玩的,面对黑黑的窗口敲命令,逼格甚高.然而linux是老外写的,历史也

常见linux命令释义(第四天)——bash部分

学linux的时候,我跳过了一些很重要的东西.比如分区.还有vim的深入学习.分区没有学习是因为我装的是虚拟机,不知道是什么原因,格式化分区不能正常显示.至于vim,简单的增删改查我已经了解了.能够顺利在linux下,进行文件的编辑.我追求不高,不想在这个上面去深究.等我把这本<鸟哥的私房菜>都啃一遍下来的时候,我再回过头去看这些问题,也许就会简单许多. 想到这里,我又想到放的这几天假.我几乎没有雷打不动的去学习.我并不像我规划的那样励志,那样用自己的苦行,去扮作一个励志的对象,去感动自己与别

Linux入门培训教程 常见linux命令释义

快到中午吃饭了,然后忽然想起来samba里面没有添加用户.于是乎,就玩弄起了samba. Samba三下五除二就安装好了,想想window里面不断的点击下一步,还要小心提防各种隐藏再角落里的绑定软件.Linux安装软件实在是太省事了,一条yum命令,就安装好了.因此我认为,linux恰恰是给懒人的福利,不用担心系统里会无故的出现乱七八糟的东西,对于有轻微强迫症的我来说,是再好不过的系统了. 近日闲暇开始折腾linux,觉得挺好玩的,面对黑黑的窗口敲命令,逼格甚高.然而linux是老外写的,历史也

常见linux命令释义(第七天)——ulimit 与变量内容的删除替代与替换。

linux是一个多用户多任务的系统,不同于windows的单人多任务操作系统.再linux上,在同一个时间点上,可以有多个人同时执行多个任务. 那么假若有10个用户,同时打开了100个100M的文件.你觉得你的linux能够吃的消吗.你能任由其他的用户肆意的占用你的linux运行内存吗?如果你能忍受,现在你的机子估计已经宕机了.接下来我们来看看如何来限制用户的某些系统资源,包括可以打开的文件数量.可以使用的CPU时间,可以使用的内存总数量,如何设置呢? 试试ulimit吧.这ulimit命令也十

常见linux命令释义(第三天)

今天晚上看鸟哥的私房菜,边学边写笔记. 在linux中压缩大多是.tar, .tar.gz , .tgz, /gz, .bz2等. .gz 是通过gzip压缩的文件. .bz2 是通过bzip2压缩的文件 .tar tar程序打包的软件,并没有对压缩过. .tar.gz  tar程序压缩文件,经过gzip压缩. .tar.bz2  tar程序压缩的文件,经过bzip压缩. gzip是压缩的工具. 下面是gzip常用选项的语法,以及中文的释义,帮助理解记忆.再也不要让小小的笨脑袋里面装那么多,自己

常见linux命令释义(第二天)

查看磁盘与目录的容量. df 与du df  是英语Disk Free的意思.磁盘空余. df -h  -h中h指的是一human(人类)的角度,即用GB,MB的格式显示.这个比较常用,还有其他的选项.要用到的时候可以使用man df来查看,不必死记硬背. du 是英语Disk usage  usage的意思是使用度的意思. du -sh 查看当前文件夹的文件容量.s的英语意思是summarize(概述)的意思.h还是human的意思. du与df不一样的是,du这个命令其实回直接到文件系统里,