绝对路径
总是从根路径开始的路径 /....
家目录~也可以认为是绝对路径
|
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
