引入PATH:

ls的完整文件名为/bin/ls。为什么在任何地方输入ls就一定可以显示信息而不是说找不到该/bin/ls命令?

==》环境变量PATH

执行一个命令时,系统会依照PATH定义的目录下找文件名为ls的可执行文件,如果在PATH定义的目录中含有多个文件名为PATH的可执行文件,那么先找到的同名命令被执行。 

查看定义的PATH变量:

[root@localhost ~]# echo $PATH
/home/redhat/.local/bin:
/home/redhat/bin:
/usr/local/bin:
/usr/local/sbin:
/usr/bin:/
usr/sbin:
/home/redhat/bin
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
[redhat@localhost program]$ echo $PATH
/home/redhat/.local/bin:
/home/redhat/bin:
/usr/local/bin:
/usr/local/sbin:
/usr/bin:
/usr/sbin:
/home/redhat/bin:
/home/redhat/program
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

echo:显示

$:跟变量

PATH这个变量的内容是由一堆目录组成

每个目录中间用:隔开

每个目录有顺序之分

不同用户默认的PATH可能不同 

在PATH变量中加入其他目录

[root@localhost ~]# PATH="${PATH}:/root"
  • 1.

注意:本目录最好不要放在PATH中。 

练习编写一个脚本,把脚本的目录加入PATH变量,执行脚本

vim /home/redhat/program/show_hostname.sh

#!/bin/bash
#program:print hello ,hostname
#history:2022-5-21 first-version 
#from rhcsa
echo Hello $(whoami)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

【linux】关于执行文件路径的变量:$PATH_linux

 在redhat任何目录下执行show_hostname.sh都会显示主机名。