Linux 添加环境变量的两种方法 exprot 临时法 vi /etc/profile永久法

news2024/11/26 16:51:56

        编写一个shell脚本之后,怎么可在任意目录运行改脚本呢?为什么别人写的脚本可以直接运行,自己写的脚本就会出现 -bash: XXXXX.sh: command not found 这样的错误呢?

1、举例验证,先新建一个HelloWorld的shell脚本,修改权限为755,最小权限修改为500,脚本才可用执行,脚本里面任意写一句输出的话。echo "第一个程序"

 2、直接在命令行输入HelloWorld.sh,回车之后,这里可以发现命令报错了,

原因:系统中确实已经有了HelloWorld这个程序,可为什么还是说不存在这个命令呢?这就不得不说到系统变量PATH了,它被称作为Linux系统的“环境变量”

 3、使用 echo $PATH 查看环境变量中都有哪些目录,这里发现没有HelloWorld.sh脚本所在的目录。

当输入一个命令时,系统会到PATH所定义的路径中去寻找该命令,找到后就会执行该命令。寻找先后顺序:/usr/local/mongo/bin-->/usr/local/sbin,一个冒号就是一个分隔符,就代表一个目录。

 4、解决方法:

1、可以使用目录的方法./:./HelloWorld.sh,或者时候全路径/root/HelloWorld,这样子是可以的但是太麻烦了,因为每次都要输入全路径或者要先cd到脚本目录才能执行。

[root@YJW ~]# ll HelloWorld.sh 
-r-x------ 1 root root 35 Dec 12 16:33 HelloWorld.sh
[root@YJW ~]# pwd
/root
[root@YJW ~]# ./HelloWorld.sh 
第一个程序

 2、复制脚本到有环境变量的目录当中,使用echo $PATH查看环境变量,cp HelloWorld.sh /usr/local/bin,输入He 使用Tab按键可以直接补全,回车之后 OK,脚本可以正常运行。

[root@YJW ~]# cp HelloWorld.sh /usr/local/bin
[root@YJW ~]# ll /usr/local/bin/HelloWorld.sh 
-r-x------ 1 root root 35 Dec 12 17:00 /usr/local/bin/HelloWorld.sh
[root@YJW ~]# HelloWorld.sh 
第一个程序
[root@YJW ~]#

3、临时方法:使用export方法将脚本所在的目录追加到环境变量中先删除原先复制的文件。export PATH=$PATH:/root,这一输入He,使用Tab按键也是可以直接补全。回车也是OK的脚本可以正常使用。

[root@YJW ~]# export PATH=$PATH:/root
[root@YJW ~]# pwd
/root
[root@YJW ~]# ll HelloWorld.sh 
-rwxr-xr-x 1 root root 36 Dec 12 17:05 HelloWorld.sh
[root@YJW ~]# HelloWorld.sh 
第一个程序
[root@YJW ~]# 

 4、永久方法:永久保存变量PATH的值,修改/etc/profile文件vi /etc/profile --> 将PATH=$PATH:/root 新增到# /etc/profile下边。然后source /etc/profile 刷新一下环境变量执行脚本也是OK sourc /etc/profile 每执行一次都会新增一个重复的环境变量。

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

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

相关文章

Alibaba 工具型技术系列,实战技术针对于项目中常用的 Excel 操作指南

ExcelIgnoreUnannotated 默认不加 ExcelProperty 的注解的都会参与读写,加了不会参与 通用参数 ReadWorkbook,ReadSheet 都会有的参数,如果为空,默认使用上级。 converter 转换器,默认加载了很多转换器。也可以自定义。 rea…

emlog模板开发基础2022最新指南

emlog模板的开发基础指南,如果想要开发emlog的模板,你必须知道那些开发内容呢?下面将介绍分析emlog5下的模板基本结构以及基本变量、函数的作用。 首先我们用该知道emlog的模板是位于根目录content\templates\文件夹下,每个模板都是一个单独的文件夹,文件夹以模板名…

[附源码]JAVA毕业设计-英杰学堂网上教学平台-(系统+LW)

[附源码]JAVA毕业设计-英杰学堂网上教学平台-(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项…

一道关于Vue的数据绑定和依赖收集的面试题

概要 分享一道Vue的面试题,该题涉及Vue的响应式数据绑定和依赖收集,希望可以加深大家对Vue原理的理解。 题面 有如下html和JS,要求使用Vue的响应式数据原理和依赖收集原理,实现createApps和ref方法。只能使用原生JS&#xff0c…

教育的本质——采用不同学习方式,学习者在两周后还能记住的内容有多少

目录 一、学习金字塔模型 二、学习曲线 三、左右脑交替学习法 一、学习金字塔模型 “学习金字塔模型”,人们学习的效率一共分为七个层次: 第一层 ~ 第四层:这是我们最熟悉不过的形式,在学生时代,老师在上面讲课、…

【Leetcode】225. 用队列实现栈、232. 用栈实现队列

作者:一个喜欢猫咪的的程序员 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 目录 225. 用队列实现栈 232. 用栈实现队列 225. 用队列实现栈 225. 用队…

91-143-Scala-集合模式泛型等

91-Scala-集合模式泛型等: Scala 的集合有三大类:序列 Seq、集 Set、映射 Map,所有的集合都扩展自 Iterable特质。 2)对于几乎所有的集合类,Scala 都同时提供了可变和不可变的版本,分别位于以下两个包 不…

人工智能(AI)背后人工的力量——数据标注

尽管随着AI的普及,我们在生活中越来越依赖于人工智能,但“人工智障”的相关调侃也从来没有消失过。 相信大家都知道,如果我们想要让AI准确识别出图中的鸟,我们需要在数据集中手动将这些照片标记为鸟,然后让算法和图像…

c3p0数据库连接池的使用

c3p0数据库连接池的使用 c3p0的官网:c3p0 - JDBC3 c3p0数据库连接池有两种方法 导入jar包 首先两种方法都需要导入jar包 图中打钩的,第一个是c3p0的包,第二个是连接数据库的 在WEB-INF下新建lib包,将所需要的jar导入 右键添加…

【Java技术专题】「OpenJDK专题」想不想编译属于你自己的JDK呢?(Windows环境)

Win10下编译OpenJDK8 编译环境 Windows10专业版64位; 编译前准备 Tip: 以下软件的安装和解压目录尽量不要包含中文或空格,不然可能会出现问题 安装 Visual Studio 2010 Professional 在windows下编译JDK需要使用Visual Studio 2010 Profes…

反抗与反噬:亚马逊被迫结束封号神秘主义,不再粗暴关店

“每一天醒来,都要看一眼自己的店铺是否还在。”、“账号被封之后,自己也曾第一时间向平台申诉,经历过一次、两次甚至是多次申诉无果后,才意识到账号是真的回不来了。”、“过去传言大卖有保护伞,这一回才发现做亚马逊…

B站有哪些值得Java初学者看的视频,Java学习路线

我的读者中有很大一部分学生读者,以前也分享过一些Java学习路线,但是我收到的反馈并不好,因为学习路线包含的内容太多了,对于初学者来说难度太大,时间也不够用,根本学不完。今天我将结合B站优秀视频整理一期…

英特尔着眼系统工艺协同优化理念,推进摩尔定律新浪潮

Ann Kelleher介绍了晶体管诞生75年之后的新进展 在IEDM 2022(2022 IEEE国际电子器件会议)全体会议上发表演讲之前,英特尔副总裁兼技术开发总经理Ann Kelleher接受了《IEEE Spectrum》的采访,她表示,摩尔定律的下一波浪…

Tcp/Udp(网络套接字,服务器) -- Linux/Windows

目录 网络传输本质 认识端口号 认识协议 认识TCP协议 认识UDP协议 网络字节序 socket编程接口 socket 常见API sockaddr结构 sockaddr 结构 sockaddr_in 结构 in_addr结构 编写代码前的小tip(重点) UDP套接字(网络通信&#xf…

算法竞赛入门【码蹄集进阶塔335题】(MT2101-2125)

算法竞赛入门【码蹄集进阶塔335题】(MT2201-2225) 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2201-2225)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件?目录1. MT2101 竹鼠发瓜子2. MT2102 竹鼠发瓜子(二…

Raft协议

Raft协议先行了解 总体过程速览 假设我们只使用一个节点,可以很容易的达成协议或者共识。 但是现在我们思考,假如有多个节点呢? 多个节点之间达成协议或者共识就叫做分布式共识。 而Raft就是一个实现分布式共识的协议。 一个节点可以有3…

数字化转型的十大好处

前言: 在过去的几年中,“适者生存”对企业来说是至关重要的。不能适应环境变化的企业,也将会加速被淘汰的进程。只有从数字化转型中受益的企业才能更好的参与管理和快速调整,这样一来,员工便能够在更高效、更安全的状…

黑盒测试用例设计 - 判定表法

什么是判定表? 判定表法也叫判定驱动法,是分析和表达多逻辑条件下执行不同操作的情况的工作。 应用场合:只要适用于多条件的内容组合与结果分析 它由以下几个内容组成: 条件桩(condition stub)&#xff1…

LwIP带操作系统的移植

目录 LwIP移植前期准备 LwIP移植流程 修改lwipopts.h 修改lwip_comm.c文件 修改ethernetif.c/h文件 修改ethernetif_input函数 修改ethernet.c文件 添加应用程序 LwIP是支持操作系统的,在操作系统的支持下我们可以使用LwIP提供的另外两种API编程接口编程。没…

使用动态代理+Netty+Zookeeper+Protobuff手撸一个RPC框架

RPC是什么 RPC(Remote Procedure Call)远程过程调用,一种计算机之间的远程调用技术,客户端能够在不知道服务器底层的通信架构的情况下调用服务器端的方法,就像调用自身的方法一样。 举个例子: 老婆自己去…