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