set命令会显示为某个特定进程设置的所有环境变量,但不包括一些没有设置值的默认环境变量

可以通过等号来给环境变量赋值,值可以是数值或字符串

如果要给变量赋一个含有空格的字符串值,必需用单引号来界定字符串的开始和末尾

没有单引号的话,bash shell会以为下个字符串是另一个要执行的命令。

(赋值表达式中不要放等号)

创建全局环境变量的方法是先创建一个局部环境变量,然后再把它导出到全局环境中

export命令

unset命令

删除环境变量

PASH 冒号分隔的shell查找命令的目录列表

Linux系统用环境变量来在程序和脚本中标识自己。

在用户登录Linux系统启动一个bash shell时,默认情况下,bash在几个文件中查找命令。这些启动文件取决于你启动bash shell的方式。

方式一  登录shell

/etc/profile

是系统上默认的bash shell的主启动文件,系统上每个用户登录的时候(哪怕不开启bash shell)都会执行这个启动文件。

这个文件export了PATH  USER LOGNAME  MAIL  HOSTNAME  HISTSIZE  HISTCONTROL几个全局变量

逐一访问位于/etc/profile.d目录下的每一个文件,这个目录为Linux系统提供了一个集中存放用户登录时要执行的应用(vim,color,ssh,lang,less,which等)专属的启动文件的地方。

$HOME(当前用户的主目录)目录下的启动文件($HOME/.bash_profile;$HOME/.bash_login;$HOME/.profile)

这三个启动文件起着同一个作用:提供一个用户专属的启动文件来定义用户专有的环境变量

$HOME/.bash_profile启动文件会先去检查HOME目录中是不是还有另一个叫.bashrc的启动文件(这个文件有两个作用:一是查看/etc目录下的公用bashrc文件 ,二是为用户提供一个定制自己的命令别名和私有脚本函数的地方)。如果有的话,启动文件会先去执行它里面的命令。下一步,启动文件将一个目录加到了PATH环境变量,在HOME目录下提供了一个放置可执行文件的通用位置。(PATH=$PATH:$HOME/bin,启动/etc/profile文件的时候,提供了PATH的全局变量,可以在HOME/bin下放置一些可执行文件,则登录之后可以在用户主目录下的任何位置执行这些可执行文件)

用户在这几个文件中定制自己想要的环境变量和启动脚本。

方式二  交互式shell

不是登录系统时启动的bash shell称为交互式shell。

交互式shell不会去访问/etc/profile文件,而会去用户的HOME目录检查.bashrc是否存在。

这个文件有两个作用:一是查看/etc目录下的公用bashrc文件 ,二是为用户提供一个定制自己的命令别名和私有脚本函数的地方。

通用的/etc/bashrc启动文件会被系统上每个启动交互式shell会话的用户执行,该文件也会执行位于/etc/profile.d目录下的那些应用专属的启动文件。

方式三  非交互式shell

系统执行shell脚本时用的就是这种shell。

可变数组

值放在括号里,值与值之间用空格分隔

使用命令别名

命令别名允许为通用命令(和它们的参数一起)创建一个别名

alias -p

查看已有的别名列表

bash shell在启动交互式shell时总会读取位于$HOME/.bashrc的启动文件。那里是创建命令别名的好地方。

Linux 学习笔记 Linux环境变量初稿的更多相关文章

  1. linux —— 学习笔记(环境变量的设置)

    目录 环境变量概要 与环境变量相关的文件 设置环境变量 注意以及相关 1.环境变量概要 环境变量,简单来说,是储存了环境信息的变量.它可以让你在不指明全部路径的情况下执行某脚本或某应用程序,比如在 l ...

  2. Linux学习笔记 1 环境变量 2 vi命令

    1 环境变量篇 1.1  修改 查看 生效 系统环境变量 1 涉及系统环境变量的文件   -->  .bash_profile --> /etc/profile 2 该文件位置 /root ...

  3. Linux学习笔记-Linux系统简介

    Linux学习笔记-Linux系统简介 UNIX与Linux发展史 UNIX是父亲,Linux是儿子. UNIX发行版本 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP P ...

  4. Linux学习,path,环境变量的配置

    方法一: 1.查看当前环境变量配置的所与信息 echo $PATH 注意: echo是输出的意思 加$表示它是一个变量 2.配置环境命令 PATH="$PATH":comdir 注 ...

  5. LINUX学习笔记——LINUX下EXP命令全库备份数据库文件

    LINUX下EXP命令全库备份数据库文件 1)建立备份目录,目录操作权限授权给Oracle用户 mkdir /backup  --创建backup文件夹 cd  /   --进入cd语句 ls  -l ...

  6. #Linux学习笔记# Linux文件的属性以及权限说明

    1. Linux文件的属性 关于Linux文件的属性的说明和设置请参考鸟哥Linux私房菜:Linux 的文件权限与目录配置 2. 目录和文件的权限意义 在Linux系统中,每个文件都有三种身份的权限 ...

  7. #Linux学习笔记# Linux文件的所有者、群组和其他人

    1.关于所有者.群组和其他人 在Linux系统中,每个文件都具有User.Group和Others三种身份的权限配置.那这三种身份分别表示什么意思呢?配置这三种身份的权限有啥意义呢? (1)文件所有者 ...

  8. #Linux学习笔记# Linux在线帮助文档man page

    man是manual的简称,表示手册页.Linux系统的帮助手册页是按照章节(SECTION)来存储了.man手册页分为下面几个章节. 1 普通命令 2 内核提供的系统调用 3 库调用(C库函数) 4 ...

  9. linux 学习笔记 Linux内核的四大功能简介

    一 内存管理 默认情况下,运行在Linux系统上的每个进程都有各自的内存页面:进程不能访问其他进程正在使用的内存页面. 内核维护着自己的内存区域 用户进程不能访问内核进程的内存 可以创建一些共享内存页 ...

随机推荐

  1. 【跟我一起学Python吧】python学习摘要

    开始靖,怒推一篇文章:码农平时应该注意的办公室礼节 学习一门脚本语言是很有必要的,当我们在开发一些简单,快速程序时,脚本语言便有了用武之地,而且还很給力.根据python的介绍,python是一门很简 ...

  2. <Stackoverflow> 声望和节制

    什么是声望(reputation)?我是怎样获得(或失去)它的? 声望是一种粗略的测量,用来表示社区对你的信任度.通过让别人相信你知道自己正在讨论什么来获得.对网站的基本使用,包括问一个问题,回答,建 ...

  3. Codeforces Round #364 (Div.2) D:As Fast As Possible(模拟+推公式)

    题目链接:http://codeforces.com/contest/701/problem/D 题意: 给出n个学生和能载k个学生的车,速度分别为v1,v2,需要走一段旅程长为l,每个学生只能搭一次 ...

  4. Junit3.8 私有方法测试

    1. 测试类的私有方法时可以采取两种方式:1) 修改方法的访问修饰符,将private修改为default或public(但不推荐采取这种方式).2) 使用反射在测试类中调用目标类的私有方法(推荐). ...

  5. 报表服务框架:WEB前端UI

    1.Highcharts 2.ECharts 3.ichartjs 参考: http://v1.hcharts.cn/index.php http://echarts.baidu.com/ http: ...

  6. Android问题-DelphiXE8新建AVD出现“no system images installed for this target”

    相关资料: 1.http://www.cnblogs.com/yc-755909659/p/4080645.html 问题现象:创建Android模拟器提不”no system images inst ...

  7. Linux下的JDK安装rpm命令详解

    1. 安装程序 #rpm -ivh jdk-7u79-linux-x64.rpm 出现安装协议等,按接受即可. 2.设置环境变量. #vi /etc/profile JAVA_HOME=/usr/ja ...

  8. InnoDB与MyISAM的区别

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  9. opencv 模板匹配与滑动窗口(单匹配) (多匹配)

    1单匹配: 测试图片:   code: #include <opencv\cv.h> #include <opencv\highgui.h> #include <open ...

  10. 在VB中利用Nuget包使用SQLite数据库和Linq to SQLite

    上午解决了在C#中利用Nuget包使用SQLite数据库和Linq to SQLite,但是最后生成的是C#的cs类文件,对于我这熟悉VB而对C#白痴的来说怎么能行呢? 于是下午接着研究,既然生成的是 ...