Linux关于执行文件路径的变量:$PATH

news2024/9/20 7:49:31

目录

前言

环境变量PATH

问题思考

总结


前言

Linux目录的配置都是依据FHS,FHS的标准文件指出,它们的主要目的是希望让用户可以了解到已安装软件通常放置于哪个目录下。也就是说,FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据而已

经过FHS的说明后,我们可以知道查看文件属性命令ls完整文件名为:/bin/ls(绝对路径)

那为什么我们在任何目录下都可以使用ls这个命令?这是因为环境变量PATH

环境变量PATH

举例使用ls命令

当我们在执行命令时,系统会按照PATH的设置去每个PATH定义的目录下去查找文件名为ls的可执行文件,如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先查找到的同名命令先被执行

 我使用了root与redhat账号来查询PATH变量,我们可以看出PATH变量的内容实际上一堆目录组成,每个目录之间使用冒号(:)来隔开,但无论是root还是redhat都有/bin或/usr/bin这个目录,因此我们才能够无论在哪个目录中都能使用ls命令

问题思考

问题一:假如你是root,你将ls由/bin/ls移动成为/root/ls,并且你在/root目录下(1)您能不能直接输入ls来执行?(2)若不能,该如何执行ls命令?(3)若要直接输入ls即可执行,该如何?

(1)无论在哪个目录下都无法使用ls命令,因为/root这个目录不在PATH指定的目录中,所以我们即使在/root目录下也无法查找到ls这个命令

(2)我们可以使用绝对路径或是相对路径来直接指定这个执行文件。例如/root/ls或./ls

(3)我们可以把/root加入到PATH中来达到我们无论在哪个目录下都可以使用ls命令下。

PATH="${PATH}:/root"

问题二:为什么${PATH}查找的目录不加入本目录(.)?加入本目录的查找不是也不错?

答:在PATH中加入本目录后,我们确实能够在命令所在目录进行命令的执行,但由于我们的工作目录并不固定,因此执行的命令也可能会不同,这对于我们来说并非好事。另外,如果有个别有用心的用户在目录下做了一些窃取数据的命令,可能会导致我们在使用命令时造成数据的泄露

总结

  1. 不同身份用户默认的PATH不同,默认能够随意执行的命令也不同(如root与redhat)
  2. PATH是可以修改的
  3. 使用绝对路径或相对路径直接指定某个命令的文件名来执行,会比查找PATH来的正确
  4. 本目录(.)最好不要放到PATH

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker搭建私有仓库

搭建私有仓库 参考地址:搭建私有仓库 安装运行 docker-registry 查看docker存储路径与对应路径下的大小 docker info | grep Dir查看对应路径下的大小 du -sh /var/lib/docker如果大小没有问题的话就可以直接安装了 拉取registry镜像并运行 docker run -d \-…

数据库常用语句练习总结

show databases; 显示数据库 use student; 使用该数据库 3.show full columns from student; 展示数据库所有的字段 show columns from student; 展示数据库添加的字段 alter table student change column Sname Snames char(200); 添加 student表中的字段 alter tabl…

手写智能识别:SmartZoneOCR/SmartZoneICR Crack

Accusoft.SmartZoneOCR/Accusoft.SmartZoneICR 智能区 OCR/ICR 在您的应用程序中使用自动区域数据捕获技术消除手动数据输入。 概述 使用我们强大的 ICR 和 OCR SDK 改进字符识别。 SmartZone 先进的区域字符识别技术允许您从文档图像中的指定字段捕获打字 (OCR) 或手写 (ICR)…

24种设计模式之单例模式(饿汉式、懒汉式)

一、单例模式单例模式( Singleton Pattern )是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛,例如,总统,班主任等。J2EE标准中的ServletContext …

反对称矩阵乘任意矩阵满足交换性?

看论文的时候有疑惑 R˙R[ω]\dot{\mathbf{R}}\mathbf{R}[\omega]_{\times}R˙R[ω]​ R˙[ω]R\dot{\mathbf{R}}[\omega]_{\times}\mathbf{R}R˙[ω]​R 难道反对称矩阵乘任意矩阵满足交换性? 在maple里面验证一下吧: 很明显是不一样的,一…

字节二面:100Wqps短链系统,如何设计?

前段时间,社群小伙伴,在交流一个字节的二面真题: 100Wqps短链系统,怎么设计? 这道题,看上去业务简单,其实,覆盖的知识点非常多: 高并发、高性能分布式 IDRedis Bloom …

考虑电动汽车灵活性的微网多时间尺度协调调度研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【Qt】2.Qt坐标系、信号和槽、Lambda表达式

目录 Qt坐标系 信号和槽 需求 优点 自定义信号 自定义槽函数 触发自定义信号 代码 main.cpp widget.h widget.cpp teachar.h teachar.cpp student.h student.cpp 结果 重载 解决方法 信号和槽拓展 断开信号和槽 触发多个槽函数 Lambda表达式 [] () {}…

【数据结构与算法】DP路径问题

问题:最小路径和 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[1,3,1],[1,5,…

二叉树28:二叉搜索树的最近公共祖先

主要是我自己刷题的一些记录过程。如果有错可以指出哦,大家一起进步。 转载代码随想录 原文链接: 代码随想录 leetcode链接:235. 二叉搜索树的最近公共祖先 题目: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。…

对于Go 语言的进阶与依赖管理| 青训营笔记

一.Go 语言进阶与依赖管理 1.1并发和并行 Go可以充分发挥多核优势,高效运行。 多线程程序在单核心的 cpu 上运行,称为并发; 多线程程序在多核心的 cpu 上运行,称为并行。 并发与并行并不相同,并发主要由切换时间片…

2016年专业408算法题

文章目录0 结果1 题目2 思路2.1 思路1(较优解:排序)2.2 思路2(最优解:类快排思想排序)附录0 结果 较优解: 最优解: 1 题目 2 思路 为了使|n1−n2|&#…

1.2.3存储结构:主存编址计算、主存编址的过程、存储单元、编址内容、存储总容量

1.2.3存储结构:主存编址计算、主存编址的过程、存储单元、编址内容、存储总容量主存编址的过程存储单元主存编址存储单元编址内容存储总容量例题主存编址的过程 计算机是一个机器,它能够识别的是机器语言,电器信号。因此计算机当中所有的数据…

英语学习 2

1 词汇积累 1、imply and infer 暗示和推断 2、indicate 显示、指出 3、outgoing 外向的 4、sympathy 同情心 5、sympathetic 有同情心的 6、evolution 进化 8、agreement 一致 10、resourceful 足智多谋的 11、appear 似乎 12、manufacturers 厂家、制造商 13、toilet paper …

linux定时器crond使用方式简介

文章目录一、简介二、cron.d下文件示例三、被调用的脚本文件四、检查脚本是否执行五、遇到的脚本未执行的情况一、简介 一般来说在/etc目录下,有5个以cron开头的目录,分别是/etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly&a…

java泛型6

到底何时使用泛型方法?何时使用类型通配符呢?大多数时候都可以使用泛型方法来代替类型通配符。 这种场景下效果一样。 上面方法使用了泛型形式,这时定义泛型形参时设定上限(其中E是Collection接口里定义的泛型,在该接…

搭建企业知识库的意义

当客户跟你达成合作关系后,需要持续的关系维护,在一定的销售点,定期和客户沟通,据调查,赢得一个新客户的成本可能是保留一个现有客户的5到25倍,作为营销策略,客户服务支持必须满足他们的期望。建…

Java---微服务---Seata的部署和集成

Seata的部署和集成一、部署Seata的tc-server1.下载2.解压3.修改配置4.在nacos添加配置5.创建数据库表6.启动TC服务二、微服务集成seata1.引入依赖2.修改配置文件三、TC服务的高可用和异地容灾1.模拟异地容灾的TC集群2.将事务组映射配置到nacos3.微服务读取nacos配置一、部署Sea…

PEM格式RSA密钥解析(二)

PEM格式RSA密钥解析(二) RSA密钥参数解析 上一部分讲解了将Base64编码的密钥数据转换成hex格式数据,本章将介绍如何获从转码后的数据中获取RSA密钥的相关参数。 根据 RSA 密钥语法中的结构对私钥解析结果如下: 上一节转码后的私…

暗月ACK靶场 WP

环境搭建 https://mp.weixin.qq.com/s/VB4elHdrHNCmPDP_ktcLRg https://www.bilibili.com/video/BV1264y187St?spm_id_from333.1007.top_right_bar_window_history.content.click 按照文章拓扑根据实际情况搭建好,web2的其中一个网卡需要自己调一下ip 1、把 12s…