Linux中sudo ./xxx.sh找不到命令的真正原因——文件执行权限

本文讲述了在执行脚本时遇到的权限问题,通过查看文件权限并使用chmod命令调整权限,确保其他用户可写。重点讲解了chmod命令参数及其在实践中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

执行脚本的时候报错:
在这里插入图片描述
经检查,sudo命令正常,该脚本文件的确存在于该目录下

遂使用 ls -l 命令查看下该文件的权限:
在这里插入图片描述
ps: - 代表没有权限,r为可读权限,w为可写权限,x为可执行权限
共9个基本权限位,其中每3个一组(r、w、x),
共分为3组,这3组分别为文件属主的权限、文件所属组的权限、其它用户的权限
举一个例子,
-rw-r-xr--
其意为 属主有读取、写入的权限,属主的同组人有读、执行权限,其他人只有读的权限

则上图中的权限位代表属主有读写权限,同组人和其他人有读的权限,所以需要修改权限,让其他人也有写的权限

使用chmod命令修改权限

在这里插入图片描述
其中,o代表其他用户(other)
x代表可执行权限

再次查看发现权限添加成功:
在这里插入图片描述
再次运行 sudo ./centos_autotools.sh脚本,执行成功
在这里插入图片描述

关于chmod命令参数的扩展:
chomod [ugoa][+-=][rwxugo]<文件名或目录名>
在这里插入图片描述

### 设置Java环境变量 在Linux系统上配置`JAVA_HOME`和`PATH`环境变量对于运行基于Java的应用程序至关重要。以下是具体操作方法: #### 方法一:临时设置(当前终端会话) 通过命令行直接输入以下指令可以实现仅对当前shell生效的环境变量设定。 ```bash export JAVA_HOME=/usr/local/java/latest export PATH=$JAVA_HOME/bin:$PATH ``` 这种方式只会在本次登录期间有效,在关闭终端之后就会失效[^1]。 #### 方法二:针对特定用户的永久性设置 编辑用户家目录下的`.bashrc`文件来达到每次启动Shell都自动加载的效果。 ```bash nano ~/.bashrc ``` 在打开的文件末尾追加如下两行内容: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # 或者其他版本路径 export PATH=$JAVA_HOME/bin:$PATH ``` 保存更改并使新配置立即生效可执行下面这条语句: ```bash source ~/.bashrc ``` 此法适用于希望不影响到其他账户的情况,并且修改后的设置将在重新开启新的shell窗口时继续存在[^2]。 #### 方法三:全局范围内的持久化变更 如果打算让所有用户都能访问相同的Java安装,则应该调整系统的默认环境变量定义位置&mdash;&mdash;通常是位于`/etc/profile`或创建一个新的profile.d脚本文件来进行集中管理。 ```bash sudo nano /etc/profile.d/java.sh ``` 向其中写入相应的`JAVA_HOME`与`PATH`声明: ```bash #!/bin/bash export JAVA_HOME=/opt/jdk1.8.0_XXX # 替换成实际解压出来的JDK根目录 export PATH=$JAVA_HOME/bin:$PATH ``` 赋予该脚本执行权限以便于后续调用: ```bash chmod +x /etc/profile.d/java.sh ``` 最后重启计算机或者再次导入配置使得改动即时可见: ```bash source /etc/profile ``` 上述三种方式均可完成Java环境变量的部署工作,选择哪一种取决于个人需求以及想要影响的对象范围大小[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值