linux环境变量 shell变量 command not found解决方法

【shell编程】报错信息:Command Not Found(包含6种解决方法) Shell运行脚本时报告“Command Not Found”问题,是指命令没有找到。以下是可能的原因和详细解决方法:(可以按照以下步骤一一进行排除) 阅读详情

在Ubuntu中有如下几个文件可以设置环境变量
1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。
3、~/.bash_profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该 文件仅仅执行一次!默认情况下,他设置一些环境变游戏量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
4、~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

 


几个环境变量的优先级

1>2>3


设置永久环境变量

1.环境变量配置中,要先删除.bash_profile中的三行关于.bashrc的定义,然后把环境变量配置在.bashrc中
2.选择要使用的java环境:update-alternatives –config java
3.要使得刚修改的环境变量生效:source .bashrc
4.查看环境变量:env

可以放到/etc/bash/bashrc,这样就是系统级的

 

1、在用LINUX命令时为什么别人的计算机能用自己的不能用呢,其实是自己的系统环境变量没有添加,最笨的方法就是进入到相应的文件夹下在执行这个命令,这样命令就起效了

例如fdisk命令就需要在相应文件夹/sbin/下输入指令 ./fdisk   就出现你要看的东西了

再如ifconfig命令需要在文件夹/sbin/下指执行./ifconfig就出现你要看的东西了

./bin: 

bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。 

/usr/bin: 
主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。 


/sbin: 
主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。 



/usr/sbin: 
放置一些网路管理的必备程式例如:dhcpd、htpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。 


可以在家目录下查看.bash_profile里的PATH。如果是:PATH=$PATH:$HOME/bin则需要添加成如下: 

PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin 

[注]本人又添加了一条命令才能执行,不同情况不同分析哈: 
export PATH=$PATH:/sbin


2、常在/etc/profile文件中修改环境变量,在这里修改的内容是对所有用户起作用的。 

  以下主要操作将在该文件中进行。

 3、如何添加环境变量。 

  例如添加“NAME=liheng” 。 

  在profile文件的最后添加如下内容export NAME=liheng 

  变量值liheng可以加引号也可以不加,效果一样。 

  4、在profile文件添加或修改的内容需要注销系统才能生效。 

  5、重复定义变量怎样理解。 

  经常出现的是对PATH变量的定义。 

  例如:在peofile文件默认对PATH变量都有设置PATH=¥¥¥¥¥¥¥,在以后可能在对PATH设置,一般都加在profile文件的最后PATH=······(打个比方)。而系统之中认定的PATH=·······¥¥¥¥¥¥¥¥¥,也就是说相同名字的环境变量,后写入的先起作用。大家一定要注意。 

  6、特殊字符介绍。 

  例如在profile中有如下内容,通过以下内容说明特殊符号的用法。 

  export A=/q/jing:aaa/cc/ld 

  export B=.:/liheng/wang 

  export A=/cd/cdr:$A 

  大家注意红色的符号: 

  : 表示并列含义,例如A变量值有多个,用:符号进行分离。 

  . 表示你操作的当前目录。例如pap命令会查找B环境变量。 

  在/home键入pap命令,系统首先在/home目录下(即当前路径)查找关于 B 的内容,如果没有在/liheng/wang目录下查找关于B的内容。 

  $ 表示该变量本次定义之前的值,例如$A代表/q/jing:aaa/cc/ld。也就是说 

  A=/cd/cdr:/q/jing:aaa/cc/ld 
  7、使用env命令显示所有的环境变量 。在命令提示符下键入env就行了。 

  set命令显示所有本地定义的Shell变量。 

  8、常见的环境变量 

  PATH:决定了shell将到哪些目录中寻找命令或程序 

  HOME:当前用户主目录 

  MAIL:是指当前用户的邮件存放目录。 

  SHELL:是指当前用户用的是哪种Shell。 

  HISTSIZE:是指保存历史命令记录的条数 

  LOGNAME:是指当前用户的登录名。 

  HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。 

  LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。 

  PS1:是基本提示符,对于root用户是#,对于普通用户是$。 

  PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。 

  # PS1=" Hello,My NewPrompt :) " 

  9、使用修改.bashrc文件进行环境变量的编辑,只对当前用户有用。 

  使用修改 /etc/profile 文件进行环境变量的编辑,是对所有用户有用。大家一定要注意区别。 

  10、profile文件在系统启动时将被运行。大家可以在里面加入其他命令,但是一定要加正确,不然的话系统会启动不起来的。

环境变量是和 Shell 紧密相关的,用户登录系统后就启动了一个 Shell 。对于 Linux 来说一般是 bash ,但也可以重新设定或切换到其它的 Shell 。根据发行版本的情况, bash 有两个基本的系统级配置文件: /etc/bashrc 和 /etc/profile 。这些配置文件包含两组不同的变量: shell 变量和环境变量。前者只是在特定的 shell 中固定(如 bash ),后者在不同 shell 中固定。很明显, shell变量是局部的,而环境变量是全局的。环境变量是通过 Shell 命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于 bash 这个 Shell 程序来说,可以通过变量名来访问相应的环境变量,通过 export 来设置环境变量。下面通过几个实例来说明。

3.1 使用命令echo 显示环境变量

 

 

#本例使用echo显示常见的变量HOME

$ echo $HOME  

/home/lqm

 

 

3.2 设置一个新的环境变量

 

$ export HELLO=”Hello!”

$ echo $HELLO

Hello!

 

 

3.3 使用 env 命令显示所有的环境变量

 

 

$ env

SSH_AGENT_PID=1875

HOSTNAME=lqm

SHELL=/bin/bash

TERM=xterm

HISTSIZE=1000

……

 

 

3.4 使用 set 命令显示所有本地定义的 Shell 变量

 

 

$ set

BASH=/bin/bash

……

 

 

3.5 使用 unset 命令来清除环境变量

 

 

$ export TEST=”test”     # 增加一个环境变量 TEST

$ env | grep TEST          # 此命令有输出,证明环境变量 TEST 已经存在了

TEST=test

$ unset $TEST                # 删除环境变量 TEST

$ env | grep TEST           # 此命令无输出,证明环境变量 TEST 已经存在了

 

 

3.6 使用 readonly 命令设置只读变量

如果使用了 readonly 命令的话,变量就不可以被修改或清除了。示例如下:

 

 

$ export TEST="Test..."                                        # 增加一个环境变量 TEST

$ readonly TEST                                                   # 将环境变量 TEST 设为只读

$ unset TEST                                                         # 会发现此变量不能被删除

-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New"                                                    # 会发现此变量不能被修改

-bash: TEST: readonly variable

 

 

3.7 用 C 程序来访问和设置环境变量

对于 C 程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。

getenv() 访问一个环境变量。输入参数是需要访问的变量名字,返回值是一个字符串。如果所访问的环境变量不存在,则会返回 NULL 。

setenv() 在程序里面设置某个环境变量的函数。

unsetenv() 清除某个特定的环境变量的函数。

另外,还有一个指针变量 environ ,它指向的是包含所有的环境变量的一个列表。下面的程序可以打印出当前运行环境里面的所有环境变量:

 

 

#include

extern char**environ;

int main ()

{

char**var;

for (var =environ;*var !=NULL;++var)

printf ("%s /n ",*var);

return 0;

}

 

 

3.8       通过修改环境变量定义文件来修改环境变量。

需要注意的是,一般情况下,这仅仅对于普通用户适用,避免修改根用户的环境定义文件,因为那样可能会造成潜在的危险。

 

 

$cd                                   # 到用户根目录下

$ls -a                                  # 查看所有文件,包含隐藏的文件

$vi .bash_profile                   # 修改环境变量定义文件

 

 

然后编辑你的 PATH 声明,其格式为:

PATH=$PATH: : : :------:

你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$ source .bash_profile

需要注意的是,最好不要把当前路径 ”./” 放到 PATH 里,这样可能会受到意想不到的攻击。完成后,可以通过 $ echo $PATH 查看当前的搜索路径。这样定制后,就可以避免频繁的启动位于 shell 搜索的路径之外的程序了。

4 总结

    通过以上的设置,你可以有一个比较方便有效的环境来提高你的工作效率了。

Android 9.0 延时开机动画解决首次开机黑屏和去掉android正在启动的提示框 在9.0的系统产品rom定制化开发中,在一些产品中会出现在首次开机的时候,由于在开机动画播放完以后会出现几秒短暂的黑屏情况,然后进入默认Launcher,这在产品体验上 也是感觉到有点差,所以会要求在去掉这个首次开机黑屏的效果,和在启动过程中的 android is starting这个提示框的这些效果优化,接下来就分析下相关功能, 然后实现这个功能的开发 阅读详情

相关推荐

避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测)

本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。

melon的博客 675

(非)首次出现bash:command not found情况详解

1.检查该命令工具是否安装 (适用于 第一次出现not found的情况) 2.检查各个bin文件夹的内容是否非空 (适用于 输入类似ls、tty这种常见指令以前可用但最近出现not found的情况) 3.检查是否是$PATH设置是否正确 (通用情况)

luemeon的博客 5404

Debian 11 之使用hostapd与dnsmasq进行AP设置

本文介绍debian 11 系统下,使用hostapd 和 dnsmasq配置无线热点的方法。

xinghaitao2005的博客 1695

-bash: gcc: command not found

gcc

little_programmer_的博客 2589

【R】R画图不显示中文问题

系统mac os 11 RstutioVersion1.2.1335 RVersion3.6.2 画图里的中文一直显示成方框。 ggplot()+geom_point(aes(x=ta1$X2011年,y=ta1$X2012))+ xlab("2011年")+ylab("2021年") 解决方案: 使用showtext。 install.packages("showtext", repos = "https://mirrors.ustc.edu.cn/CRAN/") in...

weixin_41772125的博客 1万+

Python爬虫实战:利用Playwright与反反爬技术抓取Crunchbase企业数据

在当今数据驱动的商业环境中,获取准确的企业信息对于市场分析、竞争情报和投资决策至关重要。Crunchbase作为全球领先的企业信息平台,包含了数百万家公司、投资者和关键人员的详细数据。本文将深入探讨如何使用Python最新爬虫技术Playwright,结合多种反反爬策略,高效抓取Crunchbase企业数据。我们将从爬虫基础概念讲起,逐步深入到高级技巧,并提供完整的代码实现,帮助读者掌握现代网络数据采集的核心技术。网络爬虫技术自互联网诞生以来经历了显著演变。

2201_76125261的博客 1832

Linux报错”-bash: gcc: command not found"

错误 运行C语言程序在Linux系统中报错: 解决 首先使用如下命令:whereis gcc。查看gcc是否安装好。 如果显示如下,则表示没有安装: 如果是Centos系统下载安装gcc的命令是:yum install gcc 等待安装成功后再次输入:whereis gcc 再次运行C语言程序就可以了。 ...

二木成林 3万+

乐鑫科技 EchoEar 喵伴修改自定义唤醒词的方法 EchoEar喵伴、唤醒词修改、ESP32、AI萌宠、智能音箱、开发者指南

标签:乐鑫科技、EchoEar喵伴、唤醒词修改、ESP32、AI萌宠、智能音箱、开发者指南大家好,我是一名前端开发工程师,最近在玩乐鑫科技推出的时,发现它不仅萌趣十足,还能进行全双工语音交互、多模态识别,甚至能识别你的情绪和与你互动。EchoEar 喵伴是由乐鑫科技和火山引擎扣子大模型团队合作开发的,它使用乐鑫的芯片方案(ESP32 系列)+ 火山引擎扣子大模型,支持 WiFi 连接和本地处理,长记忆能力可以让它记住用户的偏好与习惯。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1878

linux的环境变量命令fsinit,linux环境变量 shell变量 command not found解决方法

1、在用LINUX命令时为什么别人的计算机能用自己的不能用呢,其实是自己的系统环境变量没有添加,最笨的方法就是进入到相应的文件夹下在执行这个命令,这样命令就起效了例如fdisk命令就需要在相应文件夹/sbin/下输入指令 ./fdisk 就出现你要看的东西了再如ifconfig命令需要在文件夹/sbin/下指执行./ifconfig就出现你要看的东西了./bin:bin为binary的简写主要...

weixin_39949413的博客 1076

32、高光谱遥感技术在军事领域的应用解析

高光谱遥感技术凭借其高分辨率和精细光谱分析能力,在军事领域广泛应用于战场详细侦察、伪装目标识别及目标实际温度与发射率的检测,显著提升了目标识别精度和作战支持能力。同时,该技术在内陆水体成分反演、海洋环境监测和农业管理等领域也展现出巨大潜力。尽管面临数据量大、处理复杂、技术融合不足和仪器性能限制等挑战,未来通过人工智能融合、高效算法研发和先进仪器开发,高光谱遥感技术将在多领域实现更深入应用与发展。

blue的专栏 229

基于STM32的设计智慧超市管理系统(带收银系统+物联网环境监测)_167

本系统主要由超市环境监测部分和商品管理部分组成。环境监测部分主控芯片采用STM32F103C8T6,主要包括温湿度传感器、烟雾传感器和空调制热开关、空调制冷开关,采集的数据通过ESP8266模块+MQTT协议上传至OneNet云平台,在OneNet云平台设计手机和电脑版本可视化页面,能够在页面上查看超市的环境信息,还能在页面上手动打开空调制热开关和空调制冷开关。商品管理部分主要由RC522-RFID读卡器、上位机组成,实现商品选购、结算、顾客的VIP会员卡注册管理等功能。

6067

HoRain云--解决Linux中“command not found”错误的终极指南:

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!

sinat_57153473的博客 1128

RK3568平台(网络篇)添加网络交换芯片RTL8306M

该交换芯片支持I2C、SPI、mdio通信,但是看ast1520的uboot代码采用的是mdio去通信phy芯片的,所以暂时也先采用mdio的方式,需要配置相应的引脚才可以配置成mdio通信模式,具体的配置硬件工程师解决。RTL8306M芯片上可能没有提供MDC/MDIO接口,可以通过GPIO(General Purpose Input/Output)来模拟,GPIO可实现串行输入输出,且一般CPU上会提供很多GPIO接口供用户自定义使用。

weixin_49303682的博客 3933

Linux下Miniconda环境变量永久配置方法

在Linux系统中正确配置Miniconda的环境变量是使用Conda的前提。通过修改~/.bashrc或使用conda init命令,可实现终端启动时自动加载Conda,避免command not found错误,并确保Python和包管理的隔离性与一致性。

weixin_42668301的博客 1084

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jenkins执行shell命令,有时会提示“Command not found”----处理方案

1、如果登录linux,shell命令不可以执行,同样提示“Command not found”,则是环境变量设置失败,需要配置环境变量、/etc/profile 2、如果登录linux,shell命令可以执行,则是jenkins没有加载/etc/profile导致,需要在jenkins调用shell脚本的最前面加一行脚本,#!/bin/bash -ilex,可以通过-i参数和-l参数让bash...

. 5135

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

-bash: htop: command not found的庖丁解牛

临时生效# 永久生效(写入 ~/.bashrc)错误本质:Shell 在PATH中找不到htop可执行文件。最可能原因未安装(非系统自带)。正确操作用包管理器安装等)。工程习惯:在脚本中使用判断是否存在,避免硬编码依赖。💡一句话= 软件未装 或 路径未配,先查是否安装,再查 PATH。

长风破浪会有时的博客 1101

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jenkins执行shell命令,有时会提示“Command not found”----解决方案

jenkins执行shell命令,有时会提示“Command not found”----处理方案 1、如果登录linux,shell命令不可以执行,同样提示“Command not found”,则是环境变量设置失败,需要配置环境变量:/etc/profile 2、如果登录linux,shell命令可以执行,则是jenkins没有加载/etc/profile导致,需要在jenkin...

2092

XXX : command not found问题

*背景:**当Linux某个组的成员使用账号时,可能会遇到没有安装的命令的问题。错误通常是由于命令未安装、路径配置不正确或权限不足导致的。检查这些文件是否包含错误的PATH设置或命令别名。如果问题仍然存在,可能是系统环境配置异常,建议联系系统管理员检查全局配置。super user给子账户安装命令的时候少安装了。环境变量包含的目录中才能被找到。子账户可能没有安装所需的软件。在Linux子账户(非root账户)中遇到。需要在Linux分配的子系统中预先安装。子账户的shell配置(如。

WSSWWWSSW的博客 705

shell cat EOF 变量自动解析问题

使用如下shell安装node时,一直提示 command not found wget https://mirrors.huaweicloud.com/nodejs/latest-v8.x/node-v8.16.0-linux-x64.tar.gz tar zxvf node-v8.16.0.tar.gz -C /usr/local cd /usr/local/ mv node* node ca...

weixin_30352645的博客 1038

Linux 环境变量讲解:PATH、export、source到底是什么?

Linux 中很多开发环境问题,本质都是环境变量问题。命令安装了却提示;配置了 Java,但java找不到;修改.bashrc后没有立即生效;脚本里设置变量,退出脚本后变量没了;export和普通变量分不清;source不知道什么时候用。

weixin_61411335的博客 185

linux下su 与su -的区别

Linux下su与su -命令的区别在启动服务器ntpd服务时遇到一个问题 使用 su root 切换到root用户后,不可以使用service命令; 使用 su - 后,就可以使用service命令了。 原因: su命令和su -命令区别就是: su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root身份了。只有切换了Shell...

weixin_34301307的博客 113
上一篇: unix下的jni使用指南(2)--如何使用GetFieldID和GetMethodID
下一篇: --vi 查找命令的使用
ShenRui
博客等级 码龄20年 63粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值