test.sh 脚本文件的执行及文件权限 chmod 的使用

本文详细介绍了在Linux环境下执行.sh文件的三种常见方法,并深入解析了当遇到'permission denied'错误时,如何通过修改文件权限解决。文章还讲解了文件权限的含义及其数值表示方法,包括所有者、同组用户和其他用户的读、写、执行权限。

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

执行 .sh 文件(以test.sh为例)的三种方式:

test.sh中的命令脚本是:echo "Hello, shell script"

以下三种方式任意一种皆可执行.sh 文件:

1、前往.sh 文件的目录,在bash(终端)中使用  ./test.sh 命令执行;

2、使用     绝对路径/test.sh        的方式执行;

3、使用   sh test.sh   命令执行。

 

但是,,有人可能就会遇到“permission denied”的权限不允许的情况,,这时候就要修改一下文件的所属用户权限了。

一个文件的使用者分为三种:所有者(一般也就是创建者)、所有者的同组用户、其他用户

- rw- rw- r-- :第一个小横杠“-”表示这是一个普通文件如.sh文件或者.py文件等,如果是一个目录而不是文件则横线变成“d”;

后面的部分是每三个一组,分别表示所有者、所有者的同组用户、其他用户对这个文件的权限

r:表示拥有 读 权限 ,权限代表数值为 4

w: 表示拥有 写 权限, 权限代表数值为 2

x: 表示拥有 可执行 权限,权限代表数值为 1

所以,读写权限可以表示为6(4+2=6),读写可执行所有权限表示为7(4+2+1=7),等等,想给哪个用户什么样的权限一个数值就能搞定。

如 chmod 764 test.sh 表示分别给所有者、同组用户、其他用户分别以 7 、6 、4 的权限,即三种用户对test.sh 文件分别拥有读写可执行、读写、读 权限。

u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

配合 “+” “-” 和“r,w,x”来标定相应的用户权限。

如 chmod u+x test.sh 表示给目录的当前用户(所有者)赋予可执行的权限。

一下两种命令等价:

1、chmod 751 file  

说明: 给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

2、chmod u=rwx,g=rx,o=x  file

说明:同上

 

参考:http://www.cnblogs.com/peida/archive/2012/11/29/2794010.html

Shell是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。为了更好地学习shell编程,您需要对linux 系统命令有一定的了解,熟悉常用的命令,如:vim、echo、chmod等。 shell 语言编写的程序通常都非常轻巧,比如我想编写一个在屏幕上显示Hello World !程序: #!/bin/bash echo "Hello World !" 说明:#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 shell。echo 命令用于向窗口输出文本内容。 Shell 脚本的运行通常有两种方法: 1、作为可执行程序运行 chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本 注意:一定要写成 ./test.sh,而不是 test.sh./的作用其实就是告诉系统就在当前目录查找,否则系统会去PATH路径中查找有没有test.sh文件,而系统默认情况下只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 中,很难找到。 2、作为解释器参数运行,这种运行方式是直接运行解释器,其参数就是 shell 脚本文件名,如: /bin/sh test.sh 这种方式运行的脚本,不需要在第一行指定解释器信息。 编程要求 请按照要求,完成以下实践内容。 1、在/opt/目录下创建第一个shell脚本 文件命名为 test.sh; 2、编写test.sh脚本,让其输出Hello EduCoder(通过 vim 编辑器编辑); 3、给/opt/test.sh赋予执行权限; 4、运行test.sh文件。 #####请按照要求,完成以下实践内容##### 打开右边的命令行,进入命令行 按以下要求编写第一个脚本/opt/test.sh: 1.在/opt/目录下创建第一个shell脚本 文件命名为 test.sh; 2.编写test.sh脚本,让其输出Hello EduCoder(通过vim编辑器编辑); 3.给/opt/test.sh赋予执行权限; 4.点击“评测”按钮; (点击“评测”按钮 执行的操作相当于执行了 cd /opt/; ./test.sh)
06-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值