一 .概述

  默认情况下, bash shell会用一些特定的环境变量来定义系统的环境。这些默认环境变量可以理解是上篇所讲的系统全局环境变量。

  1.1 bash  shell支持的Bourne变量

    Bourne shell 是 UNIX 最初使用的 shell。下面例举几个常用的变量名。

变量名

描述

HOME

当前用户的主目录

PATH

Shell查找命令的目录列表,由冒号分隔

PS1

Shell命令行界面的主提示符

PS2

Shell命令行界面的次提示符

    如下图所示:使用echo 输出该变量名$PATH的值。值给出了shell查找命令会去的6个目录。优先最高的是/usr/local/bin 目录下。

      

    下面是主提示符与次提示符:

      

  1.2 bash shell 环境变量

    下面只是随意列出了几个变量名。像BASH_SUBSHELL在介绍子shell中有讲过。

变量名

描述

BASH_SUBSHELL

当前子shell环境的嵌套级别。

BASH_VERSION

当前运行的bash shell 版本号。

HOSTNAME

当前主机名称

PWD

当前工作目录,对应内部命令小写pwd

    下面随变演示一个,查看bash shell版本号:
      

  1.3   PATH环境变量

    上面讲到了PATH变量,它的作用是:当你在shell命令行中输入一个外部命令时。Shell必须搜索系统来找到对应的程序。 PATH环境变量定义了用于进行命令和程序查找的目录。上面列出了要查找的6个目录。如果命令或者程序的位置没有包括在PATH变量中,那就必须使用绝对路径来查找,否则shell是无法找到的。找不到,它会产生一个错误信息。

    如下图所示:mysqld服务之所以能找到,是因为它存在于/usr/sbin目录下。Mysql的mssqldump工具包之所以能找到,是因为它存在于/usr/bin目录下。这二个目录都是存在于PATH全局变量中。而nginx服务命令却未找到。
      
    在重新加载nginx配置文件时,会提示未找到命令
      

    下图来查找下nginx 服务是存放于哪个目录下。通过下图知道,nginx服务存在于/usr/local/nginx/sbin 目录下。而PATH环境变量中没有该路径。所示“提示未找到命令…“。
      

    如果想在虚拟目录任意位置操作nginx服务,又不想每次都用cd绝对路径定位。有二种方法:1是前面章节所学的软链接,把nginx的绝对路径能过软链接指定到PATH环境下的一个目录下。2是将nginx绝对路径添加到PATH目录中。

  1.4  添加PATH环境变量

    上面讲到了nginx服务, 下面演示将nginx服务的绝对路径,添加到PATH环境变量中。如下图所示:已将nginxx服务路径添加到了PATH环境变量中。
      

    下面来试试,在任意的虚拟目录下,执行nginx服务。下面是随意在虚拟目录的根目录下查看nginx服务, 重新加载nginx服务,该命令也找到了,下图的错误是nginx进程没有启动,与要介绍的PATH没有关系。
      

   总结: 当初学linux的时候,每当安装了一个服务时,在终端敲 bash执行该命令,经常提示未找到该命令。但有些服务又可以直接找到。现在明白了, shell查找命令会去指定的PATH环境目录下查找。当有些服务安装后,该服务的bin目录并没有在PATH环境目录中。

  注意:对于PATH变量的修改,当退出终端(exit)或重启系统时会失效。后面介绍如何永久保持环境变量的修改效果。

    

Linux编程 12 (默认shell环境变量, PATH变量重要讲解)的更多相关文章

  1. 【目录】linux 编程

    随笔分类 - linux 编程 Linux编程 24 shell编程(结构化 if [ condition ] 数值比较,字符串比较) 摘要: 一.概述 接着上篇讲的结构化命令,最后讲到了test命令 ...

  2. Linux编程之变量

    Bash变量与变量分类 变量命名规则 变量名必须以字母或下划线打头,名字中间只能由字母.数字和下划线组成 变量名的长度不得超过255个字符 变量名在有效的范围内必须是唯一的 在Bash中,变量的默认类 ...

  3. Linux系列之管理用户环境变量

    前言 环境变量控制你在Linux工作环境中的外观.行为和感觉.一共有两种类型的变量: 环境变量:这些是内置于系统中的进程范围的变量,控制着系统的外观和行为.因为是进程范围的,所以它们被任何子shell ...

  4. shell编程之BASH变量(2)

    变量命名规范 在bash中,变量的默认类型都是字符串型,定义 name = 'kk' 变量分类 用户自定义变量.变量自定义的 环境变量:这种变量中主要保存的是和系统操作环境相关的数据.变量可以自定义, ...

  5. LINUX中查看、添加、删除PATH以及永久添加PATH

    1.查看PATH变量 echo $PATH 会出现: 路径1:路径2:路径3 2.添加PATH变量 export PATH=$PATH:新添加的路径 用此方法添加的PATH,在关闭或者重启LINUX后 ...

  6. Linux编程简介

    Linux编程可以分为Shell(如BASH.TCSH.GAWK.Perl.Tcl和Tk等)编程和高级语言(C语言,C++语言,java语言等)编程,Linux程序需要首先转化为低级机器语言即所谓的二 ...

  7. 《Linux命令行与shell脚本编程大全》 第六章环境变量

    很多程序和脚本都通过环境变量来获取系统信息.存储临时数据和配置信息. 6.1 什么是环境变量: bash shell用一个叫环境变量(environment variable)的特性来存储有关shel ...

  8. Linux编程 21 shell编程(环境变量,用户变量,命令替换)

    一.概述 这篇介绍shell的变量使用,跟其实语言一样,都有声明变量,使用变量,在shell中变量允许你临时地将信息存储中shell脚本中,以便和脚本的其他命令一起使用. 1.1 环境变量 在前面章节 ...

  9. Linux编程 11(shell全局环境变量与局变环境变量)

    一.概述 在linux中,很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息.环境变量是指用来存储有关shell会话和工作环境信息,允许你在内存中存储数据,以便程序或shell中运行的 ...

随机推荐

  1. Spring Ioc 常用注解

    在开发中spring ioc的配置方式有多种方式,常用的一般都是byName.byType .以及其自动装配可以查看http://www.cnblogs.com/gubai/p/9140840.htm ...

  2. eclipse中修改maven本地仓库方式

    1.安装maven,教程可参考:https://jingyan.baidu.com/article/4f7d5712a1306c1a21192746.html 2.安装成功后,可以打开eclipse新 ...

  3. fiddler不能抓某些的包的原因

    用fiddler抓某app的包时,死活抓不到,确定自己设置的没有错,并且让小A同事也看了一遍我的设置,确认没错后,又在小A同事那儿试了下还是抓不到 后来在网上找了很多资料,才发现是因为一些app使用了 ...

  4. RPA答疑

    变量:部分主要对于工程中的变量进行管理和设置,支持手动拖拉至右侧画布 1全局变量:全局变量可以在整个工程中传递,被不同的子流程或函数进行调用,全局可见可调用 2 流程参数:只对子流程设置传入参数,供子 ...

  5. 今天我给你们推荐一本书《Linux就该这么学》!!!

    本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值 ...

  6. 《Linux就该这么学》第十天课程

    使用RAID与LVM磁盘阵列技术 有RAID 0,RAID 1,,RAID 5,RAID 1 0等,下面列举RAID的各个概况 1. RAID 0 RAID 0技术把多块物理硬盘设备(至少两块)通过硬 ...

  7. VS2017离线安装入门与出家

    重做系统,并且VS2017也发布有一段时间了,可以试试了. 于是网上搜了下,离线安装要下载他的安装工具. https://www.visualstudio.com/zh-hans/downloads/ ...

  8. Catalog

      Java SE EE| Hibernate | Struts2Spring/SpringMVC | MyBatis C# Python PHP C/C++ | STL 汇编语言           ...

  9. JMS Cluster modules

    是GeoServer实现集群还是在数据库实现集群? Hadoop.Spark.HBase与Redis的适用性见解:https://blog.csdn.net/cuiyaonan2000/article ...

  10. Cookie的几点忠告

    1.不要在COOKIE中保存明文的敏感信息 2.不要在COOKIE中保存永久的敏感信息,即每个COOKIE 都需要有时效性,过期则失效. 参考 XSS跨站攻击相关资料 http://www.cnblo ...