linux中PATH变量-详细介绍

转自:https://blog.csdn.net/haozhepeng/article/details/100584451

转载者勘误

  • 原文最后提到的 echo 命令对于环境变量的修改无影响。这是肯定的,echo 命令相当于只是一个打印的函数(比如 Python 中的 print)。这里要修改环境变量应该是 export 命令。

文章目录

  • 说明
  • 查看、添加、修改PATH环境变量
    • 一. 添加环境变量
    • 二. 环境变量改名
    • 三.环境变量删除

说明

在讲环境变量之前,先介绍一下命令which,它用于查找某个命令的绝对路径,示例如下:
在这里插入图片描述
在上面的示例中,用which查到rm命令的绝对路径为/usr/bin/rm。

那么问题来了:为什么我们使用命令时,只是直接打出了命令,而没有使用这些命令的绝对路径呢?
答:环境变量PATH在起作用。

PATH环境变量存储的是路径,当我们在命令行下输入一个命令如ls时,linux就会PATH表示的路径中查找
变量写入到 .bash_profile 中,相当于每次我们打开一个终端都会执行一次环境变量。

可以输入echo $PATH查看当前环境变量,其中以分号隔开。
在这里插入图片描述

查看、添加、修改PATH环境变量

一. 添加环境变量

(Bash shell中用export,C shell中用setenv)

  • 1.直接在终端修改当前生效

export PATH=$PATH:.(其中export可不要,.是当前目录的意思,也可以自定义绝对路径)
配置完后可以通过echo $PATH查看配置结果。
生效方法:立即生效
有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置
用户局限:仅对当前用户
在这里插入图片描述

  • 2.对用户生效
    因为写入到 .bash_profile 中的,而.bash_profile中是调用/.profile,所以可以直接在/.profile中定义变量
    在这里插入图片描述
    在home/用户/.profile中修改调用文件:vi ~/.bashrc
    #在最后一行添上
    export PATH=路径:$PATH
    生效方法:(有以下两种)
    1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
    2、输入“source ~/.bashrc”命令,立即生效
    使用 echo $PATH 看不到定义变量
    有效期限:永久有效
    用户局限:仅对当前用户
    在这里插入图片描述

  • 3.修改系统级

vi /etc/profile/profile

export PATH=$PATH:路径

保存文件,重启即可(有的系统执行./profile即可,不需重启;有的系统必须重启)
重启后可查看PATH环境变量看是否更改:
echo $PATH
我在root用户下系统不允许我写入,没有深究,所以该条pass
在这里插入图片描述

  • 4.永久生效
    • 第一种方法
      通过修改profile文件:
      vi /etc/profile
      在最后一行添加
      export PATH=系统路径(echo $PATH 查看复制在这):新路径:$PATH
      echo $PATH 看得到定义环境
      生效方法:系统重启
      有效期限:永久有效
      用户局限:对所有用户
      注:下图中我忘记在路径后面加上:$PATH了,不过好像没报错,但还是建议加上!!!!
      在这里插入图片描述

    • 第二种方法
      通过修改environment文件:
      vi /etc/environment
      echo $PATH 看不到定义环境
      生效方法:系统重启
      有效期限:永久有效
      用户局限:对所有用户

      • 里面可能有:PATH="系统路径"
        如果有则PATH="系统路径:新路径"

      • 如果没有,则需要先echo $PATH查看自己当前的变量,然后复制进去,系统路径:新路径
        在这里插入图片描述

        • 如果不加系统路径,重启后就会只剩下 你定义的变量 其他的全部不在了,然鹅你的系统也没法正常使用了!!!(下翻有解决方法)
          在这里插入图片描述
        • 真发生了这种事后,解决方法,找一台正常的机器,echo $PATH ,然后复制,在问题服务器上临时定义一下:
          PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin 然后vi /etc/environment ,把刚才那段环境加进去, 如果vim /etc/profile(第一种方法) 里面也不是全路径,也需要修改为全路径(参考第一种方法) 然后 重启!!!搞定
          在这里插入图片描述

二. 环境变量改名

echo ${path/old_name/new_name} #变更一个目录名old_name
echo ${path//old_name/new_name} #变更所有目录名old_name
亲测无用,可能是我方法不对
在这里插入图片描述
如果要修改,建议用下面方法
单独用户:vi ~/.bashrc 在里面修改
全部用户:vi /etc/profile or vi /etc/environment 在哪配置了在哪修改

三.环境变量删除

echo ${path#/deletion_name:}
亲测 无用,可能是我方法不对
在这里插入图片描述
临时定义不用删除 重新打开窗口即消失
如果要删除永久的,建议用下面方法
单独用户:vi ~/.bashrc 在里面删除
全部用户:vi /etc/profile or vi /etc/environment 在哪配置了在哪删除

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

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

相关文章

php assert eval,代码执行函数之一句话木马

前言大家好,我是阿里斯,一名IT行业小白。非常抱歉,昨天的内容出现瑕疵比较多,今天重新整理后再次发出,修改并添加了细节,另增加了常见的命令执行函数如果哪里不足,还请各位表哥指出。eval和asse…

显卡、显卡驱动、CUDA、CUDA Toolkit、cuDNN 梳理

显卡、显卡驱动、CUDA、CUDA Toolkit、cuDNN 梳理 转自:https://www.cnblogs.com/marsggbo/p/11838823.html#nvccnvidia-smi GPU型号含义 显卡: 简单理解这个就是我们前面说的GPU,尤其指NVIDIA公司生产的GPU系列,因为后面介绍的…

VS Code的Error: Running the contributed command: ‘_workbench.downloadResource‘ failed解决

VS Code的Error: Running the contributed command: _workbench.downloadResource failed解决 转自:https://blog.csdn.net/ibless/article/details/118610776 1 问题描述 此前,本人参考网上教程在VS Code中配置了“Remote SSH”插件(比如这…

Oracle闪回报错,oracle 闪回区满了,ORA-19815

oracle 闪回区满了,查看日志报错:ORA-19815,命令行输入:sqlplus / as sysdbastartup mount //如果你的数据库出现了无法连接的情况时,可以加上这句select file_type, percent_space_used as used,percent_space_rec…

[2021-ICCV] MUSIQ Multi-scale Image Quality Transformer 论文简析

[2021-ICCV] MUSIQ: Multi-scale Image Quality Transformer 论文简析 论文:https://arxiv.org/abs/2108.05997 代码:https://github.com/google-research/google-research/tree/master/musiq 概述 当前SOTA的IQA(图像质量评估&#xff0…

安装oracle不动了,windows2008安装ORACLE到2%不动的问题 | 信春哥,系统稳,闭眼上线不回滚!...

最近又有网友遇到在windows2008服务器上安装ORACLE软件时到2%就卡住不动的问题,下面是该网友的描述:oralce 11g r2 windows server 2008 R2安装到最后一步复制数据文件时卡到2% 不走了内存一直飙升求解决这个问题前段时间也有人遇到过,但是他…

手把手教你入门Git --- Git使用指南(Linux)

手把手教你入门Git — Git使用指南(Linux) 系统:ubuntu 18.04 LTS 本文所有git命令操作实验具有连续性,git小白完全可以从头到尾跟着本文所有给出的命令走一遍,就会对git有一个初步的了解,应当能做到会用并…

php数据关系图,如何利用navicat查看数据表的ER关系图

文章背景:(相关推荐:navicat)由于工作需要,现在要分析一个数据库,然后查看各个表之间的关系,所以需要查看表与表之间的关系图,专业术语叫做ER关系图。默认情况下,Navicat显示的界面是这样的&…

Linux中g++与gcc的区别

转自:https://blog.csdn.net/bit_clearoff/article/details/53965514 Windows中我们常用vs来编译编写好的C和C代码;vs把编辑器,编译器和调试器等工具都集成在这一款工具中,在Linux下我们能用什么工具来编译所编写好的代码呢&#…

从C源代码到可执行文件的四个过程:预处理、编译、汇编、链接

从C源代码到可执行文件的四个过程:预处理、编译、汇编、链接 总览 我们将在Linux操作系统中,以C语言的Hello World程序为例,用gcc编译器分步执行这四个步骤。 我们有再熟悉不过的HelloWorld程序,hello.c: #include …

linux内核中cent文件夹,Centos 中如何快速定制二进制的内核 RPM 包

1、rpm 制作前的环境准备:yum install -y ncurses-devel qt-devel rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmlto audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel newt-devel python-devel zlib-devel bc2、准…

TabError- inconsistent use of tabs and spaces in indentation 查验及解决方法

TabError: inconsistent use of tabs and spaces in indentation 查验及解决方法 报错代码 def eccv16(pretrainedTrue):model ECCVGenerator()if(pretrained):import torch.utils.model_zoo as model_zoomodel.load_state_dict(torch.load(/home/ps/.cache/torch/hub/check…

linux用xshell编辑文件,Linux远程管理器xshell和xftp使用教程

Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xftp 是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。安装完毕后打开xshell设置网站帐号信息设置主机信息设置服务器帐号设置字符集编码设置好了…

FLOPs、FLOPS、Params的含义及PyTorch中的计算方法

FLOPs、FLOPS、Params的含义及PyTorch中的计算方法 含义解释 FLOPS:注意全大写,是floating point operations per second的缩写(这里的大S表示second秒),表示每秒浮点运算次数,理解为计算速度。是一个衡量…

科普 | 单精度、双精度、多精度和混合精度计算的区别是什么?

科普 | 单精度、双精度、多精度和混合精度计算的区别是什么? 转自:https://zhuanlan.zhihu.com/p/93812784 我们提到圆周率 π 的时候,它有很多种表达方式,既可以用数学常数3.14159表示,也可以用一长串1和0的二进制长串表示。 …

linux设备驱动之串口移植,Linux设备驱动之UART驱动结构

一、对于串口驱动Linux系统中UART驱动属于终端设备驱动,应该说是实现串口驱动和终端驱动来实现串口终端设备的驱动。要了解串口终端的驱动在Linux系统的结构就先要了解终端设备驱动在Linux系统中的结构体系,一方面自己了解的不够,另一发面关于…

NVIDIA英伟达的Multi-GPU多卡通信框架NCCL

NVIDIA英伟达的Multi-GPU多卡通信框架NCCL 笔者注:NCCL 开源项目地址:https://github.com/NVIDIA/nccl 转自:https://www.zhihu.com/question/63219175/answer/206697974 NCCL是Nvidia Collective multi-GPU Communication Library的简称&…

C语言n个坐标点间的最大距离,c语言已知两点坐标,求另一点到穿过这两点的直线最短距离。...

c语言已知两点坐标,求另一点到穿过这两点的直线最短距离。以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!c语言已知两点坐标,求另一点到穿过这两点的直线最短距离。#…

[分布式训练] 单机多卡的正确打开方式:理论基础

[分布式训练] 单机多卡的正确打开方式:理论基础 转自:https://fyubang.com/2019/07/08/distributed-training/ 瓦砾由于最近bert-large用的比较多,踩了很多分布式训练的坑,加上在TensorFlow和PyTorch之间更换,算是熟…

s3c2416开发板 linux,S3C2416移植内核Linux3.1的wm9713声卡过程

移植内核的声卡驱动。原因没有声卡驱动,WM9713声卡驱动移植(原来的内核有UDA1341声卡驱动,我们再次基础上直接修改)1、直接复制内核得到三个文件:s3c2416_wm9713.c , wm9713.c , s3c2416_ac97.c.linux-3.1\sound\soc\codecs\Wm9713.c---->wm9713.c;li…