绝对路径
总是从根路径开始的路径 /....
家目录~也可以认为是绝对路径
| 1 2 3 4 5 6 7 | # 举例 我想执行kafka的安装目录下bin目录里面的kafka-server-start.sh [hadoop@hadoop000 kafka_2.12-2.5.0]$ /home/hadoop/app/kafka_2.12-2.5.0/bin/kafka-server-start.sh USAGE: /home/hadoop/app/kafka_2.12-2.5.0/bin/kafka-server-start.sh [-daemon] server.properties [--override property=value]* [hadoop@hadoop000 kafka_2.12-2.5.0]$ ~/app/kafka_2.12-2.5.0/bin/kafka-server-start.sh USAGE: /home/hadoop/app/kafka_2.12-2.5.0/bin/kafka-server-start.sh [-daemon] server.properties [--override property=value]* | 
缺点: 有时候会写很长
优点: 不受当前位置显示, 可以在任何位置使用相同的绝对路径找到相同的文件.
| 1 2 3 4 5 6 | [hadoop@hadoop000 kafka_2.12-2.5.0]$ cd / [hadoop@hadoop000 /]$ /home/hadoop/app/kafka_2.12-2.5.0/bin/kafka-server-start.sh USAGE: /home/hadoop/app/kafka_2.12-2.5.0/bin/kafka-server-start.sh [-daemon] server.properties [--override property=value]* [hadoop@hadoop000 /]$ | 
相对路径
基于当前位置:
以./或者../开始的路径(其中./可以省略)
. 表示当前目录
.. 表示上级目录
| 1 2 3 4 5 6 | [hadoop@hadoop000 kafka_2.12-2.5.0]$ ls -alh 总用量 64K drwxr-xr-x   7 hadoop hadoop  101 9月   6 15:51 . drwxrwxr-x. 16 hadoop hadoop 4.0K 9月   7 08:26 .. | 
使用相对路径好处是, 当我们当前位置和目标路径近时,可以大大简化路径书写
| 1 2 3 4 5 | [hadoop@hadoop000 kafka_2.12-2.5.0]$ ./bin/kafka-server-start.sh USAGE: ./bin/kafka-server-start.sh [-daemon] server.properties [--override property=value]* [hadoop@hadoop000 kafka_2.12-2.5.0]$ bin/kafka-server-start.sh USAGE: bin/kafka-server-start.sh [-daemon] server.properties [--override property=value]* | 
坏处就是: 相对路径是基于当前位置和目标路径的相对位置的, 如果相对位置发生变化则路径会失效.
| 1 2 3 | [hadoop@hadoop000 kafka_2.12-2.5.0]$ cd / [hadoop@hadoop000 /]$ bin/ka-server-start.sh -bash: bin/ka-server-start.sh: 没有那个文件或目录 | 
环境变量
在Linux中$PATH变量是由:分割的多个路径, 将PATH通过export到当前执行环境中, 称为环境变量, 下面通过echo命令打印变量PATH的值如下:
| 1 2 3 | [hadoop@hadoop000 /]$ echo $PATH /home/hadoop/app/apache-maven-3.6.3/bin:/home/hadoop/app/kafka_2.12-2.5.0/bin:/home/hadoop/app/storm-2.1.0/bin:/home/hadoop/app/zookeeper-3.4.11/bin:/home/hadoop/app/hive-1.2.2/bin:/home/hadoop/app/hbase-1.2.4/bin:/home/hadoop/app/hadoop-2.7.3/bin:/home/hadoop/app/hadoop-2.7.3/sbin:/home/hadoop/app/jdk1.8.0_211/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/hadoop/.local/bin:/home/hadoop/bin | 
命令查找
当你输入一个控制台命令的时候.
- 首先从当前目录找
- 如果没找到, 就从$PATH里找
因此, 如果$PATH配置错误, 可能导致很多命令无法执行
比如:
vi ~/.bash_profile
| 1 2 | # 在Linux里错把冒号打成分号 export PATH=$M2_HOME;$PATH | 
经过source之后发现很多命令无法使用了,如
| 1 2 3 | [hadoop@hadoop000 /]$ source ~/.bash_profile [hadoop@hadoop000 /]$ ls /bin -bash: ls: 未找到命令 | 
解决: 将常用命令的所在目录加入到PATH中, 并使用export导出到当前执行环境中即可:
| 1 2 3 4 5 6 7 8 | [hadoop@hadoop000 /]$ export PATH=/bin:/sbin:/usr/bin:/usr/sbin [hadoop@hadoop000 /]$ ls bin   data  etc   lib    media  opt   root  sbin  sys  usr boot  dev   home  lib64  mnt    proc  run   srv   tmp  var [hadoop@hadoop000 /]$ vi ~/.bash_profile          #修改正确 [hadoop@hadoop000 /]$ source ~/.bash_profile | 
Views: 144

