• Linux下查看和添加环境变量


    环境变量,简要的说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。设置变量对于一般人最实用的功能就是:不用拷贝某些dll文件到系统目录中了,而path这一系统变量就是系统搜索dll文件的一系列路径。

    在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量 PATH 的设置问题,而 PATH的设置也是在linux下定制环境变量的一个组成部分。linux 查看环境变量与设置环境变量在使用过程中很常见,本文整理了一些常用的与环境变量相关的命令。

    $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。

      编辑你的 PATH 声明,其格式为:

      PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:…:<PATH N>

      你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$ source .bash_profile

      需要注意的是,最好不要把当前路径 “./” 放到 PATH 里,这样可能会受到意想不到的攻击。完成后,可以通过 $ echo $PATH 查看当前的搜索路径。这样定制后,就可以避免频繁的启动位于 shell 搜索的路径之外的程序了。

    一、查看环境变量

    (1)用 export 命令查看PATH值

     1 bogon:~ a1$ export
     2 declare -x HOME="/Users/a1"
     3 declare -x LOGNAME="a1"
     4 declare -x MAIL="/var/mail/a1"
     5 declare -x OBJC_DISABLE_INITIALIZE_FORK_SAFETY="YES"
     6 declare -x OLDPWD
     7 declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/mysql/bin"
     8 declare -x PWD="/Users/a1"
     9 declare -x SHELL="/bin/bash"
    10 declare -x SHLVL="1"
    11 declare -x SSH_CLIENT="10.144.33.72 60090 22"
    12 declare -x SSH_CONNECTION="10.144.33.72 60090 10.144.24.130 22"
    13 declare -x SSH_TTY="/dev/ttys001"
    14 declare -x TERM="xterm"
    15 declare -x TMPDIR="/var/folders/ny/n3gm1zvn43q_6cc900xdc59c0000gn/T/"
    16 declare -x USER="a1"

    (2)单独查看PATH环境变量,可用echo $PATH

    1 bogon:~ a1$ echo $PATH
    2 /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/mysql/bin

    (3)用env命令显示所有的环境变量

     1 bogon:~ a1$ env
     2 TERM=xterm
     3 SHELL=/bin/bash
     4 TMPDIR=/var/folders/ny/n3gm1zvn43q_6cc900xdc59c0000gn/T/
     5 SSH_CLIENT=10.144.33.72 60090 22
     6 SSH_TTY=/dev/ttys001
     7 OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
     8 USER=a1
     9 MAIL=/var/mail/a1
    10 PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/mysql/bin
    11 PWD=/Users/a1
    12 SHLVL=1
    13 HOME=/Users/a1
    14 LOGNAME=a1
    15 SSH_CONNECTION=10.144.33.72 60090 10.144.24.130 22
    16 _=/usr/bin/env

    (4)用set命令显示所有本地定义的Shell变量

     1 bogon:~ a1$ set
     2 BASH=/bin/bash
     3 BASH_ARGC=()
     4 BASH_ARGV=()
     5 BASH_LINENO=()
     6 BASH_SOURCE=()
     7 BASH_VERSINFO=([0]="3" [1]="2" [2]="57" [3]="1" [4]="release" [5]="x86_64-apple-darwin17")
     8 BASH_VERSION='3.2.57(1)-release'
     9 COLUMNS=236
    10 DIRSTACK=()
    11 EUID=501
    12 GROUPS=()
    13 HISTFILE=/Users/a1/.bash_history
    14 HISTFILESIZE=500
    15 HISTSIZE=500
    16 HOME=/Users/a1
    17 HOSTNAME=bogon
    18 HOSTTYPE=x86_64
    19 IFS=$' 	
    '
    20 LINES=56
    21 LOGNAME=a1
    22 MACHTYPE=x86_64-apple-darwin17
    23 MAIL=/var/mail/a1
    24 MAILCHECK=60
    25 OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
    26 OPTERR=1
    27 OPTIND=1
    28 OSTYPE=darwin17
    29 PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/mysql/bin
    30 PIPESTATUS=([0]="0")
    31 PPID=40148
    32 PS1='h:W u$ '
    33 PS2='> '
    34 PS4='+ '
    35 PWD=/Users/a1
    36 SHELL=/bin/bash
    37 SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
    38 SHLVL=1
    39 SSH_CLIENT='10.144.33.72 60090 22'
    40 SSH_CONNECTION='10.144.33.72 60090 10.144.24.130 22'
    41 SSH_TTY=/dev/ttys001
    42 TERM=xterm
    43 TMPDIR=/var/folders/ny/n3gm1zvn43q_6cc900xdc59c0000gn/T/
    44 UID=501
    45 USER=a1
    46 _=env

    二、设置环境变量

    (1)添加PATH环境变量(临时有效),在终端直接运行export命令定义变量

    在shell的命令行下直接使用如下格式[export 变量名=变量值] 定义变量

    1 [root@localhost u-boot-sh4]#export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH
    2 
    3 再次查看:
    4 
    5 [root@localhost u-boot-sh4]# echo $PATH
    6 /opt/STM/STLinux-2.3/devkit/sh4/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    说明添加PATH成功。

    上述方法的PATH 在终端关闭 后就会消失。

    (2)在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】 

    用vi在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。 这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了。通常.bash_profile和.bashrc认为效果一样,也就是此处在.bashrc中增加环境变量也行。

    例如:编辑guok用户目录(/home/guok)下的.bash_profile 

    1 $ vi  /home/guok/.bash.profile 
    2 添加如下内容: 
    3 export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"

    或者
    #vim ~/.bashrc
     export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"

    注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。 

    (3)在/etc/profile文件中添加变量【对所有用户生效(永久的)】 

    用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。 
    例如:编辑/etc/profile文件,添加CLASSPATH变量 

    1 $ vi  /etc/profile 
    2 export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 

    注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。 

    三、系统启动读取顺序

    /etc/profile,/etc/bashrc 是系统全局环境变量设定 
    ~/.profile,~/.bashrc 用户家目录下的私有环境变量设定 
    当登入系统时候获得一个shell进程时,其读取环境设定档有三步 :
    1)、首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc 。
    2)、然后根据不同使用者帐号,去其根目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取 ~/.profile,这三个文档设定基本上是一样的,读取有优先关系 。其中,Unbutu默认没有~/.bash_profile文件,可新建。
    3)、最后在根据用户帐号读取~/.bashrc 。

  • 相关阅读:
    《MIT 6.828 Lab 1 Exercise 8》实验报告
    《MIT 6.828 Lab 1 Exercise 7》实验报告
    《MIT 6.828 Lab 1 Exercise 4》实验报告
    《MIT 6.828 Lab 1 Exercise 3》实验报告
    《MIT 6.828 Lab 1 Exercise 2》实验报告
    《Brennan's Guide to Inline Assembly》学习笔记
    《PC Assembly Language》读书笔记
    《MIT 6.828 Lab1: Booting a PC》实验报告
    MIT 6.828 课程介绍
    《Data Structures and Algorithm Analysis in C》学习与刷题笔记
  • 原文地址:https://www.cnblogs.com/muchengnanfeng/p/9523637.html
Copyright © 2020-2023  润新知