变量,环境变量,PATH变量

时间:2022-12-12 21:23:41

变量

# star=liudehua 定义变量star赋值为liudehua
# echo $star $符号接变量名就是引用这个变量的值
liudehua

PATH变量

变量的类型:

  • 环境变量
  • 局部变量
  • 全局变量

定义变量:
variable
为什么要使用变量?
答:方面使用,方便修改值

PATH 是linux系统里的一个环境变量,系统已经定义好了,我们不需要再定义。

作用:
是linux里使用的命令都存在在PATH变量后面指定的目录下,我们使用命令的时候,bash会主动的到PATH变量的值对应的目录下查找,如果第1个目录里没有找到,就到第2个目录里找,如果都没有找到就报错,提醒用户没有这个命令,如果找到了,就执行这个命令。

# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

环境变量

如何理解环境变量?
将linux系统比喻成一个社会,里面的一些公共资源,例如空气、水、公交车、地铁、美食等都是变量,大家都使用。

环境变量也全局变量,所有的程序都可以调用。
系统里已经定义了,我们不需要自定义。

  • env 查看系统里的环境变量

  • set 查看系统里的变量(环境变量和自定义变量)

    自己定义的变量一般都是局部变量,其他shell里的程序不能调用,有范围的限制。

alias
unalias
unset 取消变量
# unset star 取消变量star
set
env --->environment

有那些环境变量:

# echo $PS1 定义了我们的提示符号的变量
[\u@\h \W]\$
用户名、主机名、PS1、SHELL、PATH
\u user
\h hostname
\W working directory
   su - lifeng  --》完全切换到新用户
su lifeng --》会保留一些上次使用时的环境变量

区别:如果不接 - 号,系统会使用上一个用户的环境变量,如果接-号,相当于使用后面的用户的环境变量

$ env    -----》查看有哪些环境变量
HOSTNAME=teacher.sxkeji.com
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
PT5HOME=/usr/local/PacketTracer5
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
USER=lifeng
MAIL=/var/spool/mail/lifeng
PATH=/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/lifeng/bin
PWD=/home/lifeng
LANG=en_US.UTF-8
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/lifeng
LOGNAME=lifeng
QTLIB=/usr/lib/qt-3.3/lib
CVS_RSH=ssh
LESSOPEN=|/usr/bin/lesspipe.sh %s
DISPLAY=:6.0
G_BROKEN_FILENAMES=1
_=/bin/env

验证:查找命令的时候是否真的到PATH变量指定的目录下去查找?

1.新建hello.sh脚本文件
# vim hello.sh
#!/bin/bash
echo "hello,world"

# chmod +x hello.sh 授予hello.sh可执行权限 (execute)
# ll hello.sh
-rwxr-xr-x 1 root root 32 125 09:36 hello.sh
方法一:
2.复制hello.sh到PATH变量指定的某个目录下
# cp hello.sh   /usr/local/sbin/   复制到此目录下
# which hello.sh           可以查找到
/usr/local/sbin/hello.sh

# hello.sh 直接执行
hello,world
方法二:
此方式修改的PATH变量,临时有效,重启系统后失效。
修改PATH变量的值,添加/lianxi路径

修改PATH变量的值,让系统到我添加的目录下查找,就可以了
# PATH=$PATH:/lianxi
# echo $PATH
# ll hello.sh
-rwxr-xr-x 1 root root 32 125 09:36 hello.sh

# chmod +x hello.sh 授予可执行权限
# chmod -x hello.sh 取消可执行权限

两种方法小结

  1. 自己创建的脚本文件,放到PATH变量指定的路径里,并且授予其可执行权限,就可以执行运行;
  2. 修改PATH变量的值,添加相关的目录,但是脚本还是要具有可执行权限。

永久修改PATH变量的值

# vim /root/.bash_profile
PATH=$PATH:$HOME/bin:/lianxi  --->添加:/lianxi
export PATH ----》输出PATH变量为全局变量(环境变量)
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
直接定义PATH变量的值