我有一个script.sh文件,此文件的类型是shellscript文件。我想将此文件制作为application / x-executable文件。我该怎么做?

评论

与如何在Terminal中运行.sh文件有关?

如何运行.sh文件的可能重复项?

它不是重复的,因为我曾特别询问过使其可以使用application / x-executable。另一个问题只是要求在终端中打开sh文件。

#1 楼

您可以将文件标记为可执行文件:

chmod +x filename.sh


然后可以像这样执行它:

./filename.sh


如果要使用其他命令来启动它,则可以添加别名:

gedit ~/.bashrc


在文件末尾添加此别名:

alias <new name>='/home/<full path to script>/filename.sh'


打开一个新的终端会话或在终端中键入source ~/.bashrc进行申请。
然后只需使用新名称即可启动脚本。

评论


在以如下方式输入命令后,您知道如何使用sudo命令:“ alias command1 ='/home/user_name/dir/script.sh'。在我的系统中,它不使用sudo,但不能使用。

– Aditya
16-10-25在9:05



您需要在编辑.bashrc运行后重新启动bash:exec bash以重新启动bash。

– Sampath Perera
17年8月31日在10:09

为什么可执行文件是./filename.sh而不是filename.sh?

–user1993
17年3月3日在18:48

@ user1993是的,我也在寻找一种使其仅通过文件名而不是./filename可执行的方法。

– MycrofD
17年11月27日在14:02



@ user1993通常,使用./filename.sh指定当前目录中的文件,使用filename.sh指定当前目录或PATH任何目录中的文件。第一次使用消除了有关访问哪个文件的任何不确定性。在这种情况下,您仅通过输入文件名就尝试使用bash或其他解释器执行脚本(由于假定脚本中的第一行是#!/ bin / bash)。此用法要求指定目录。或者,您可以尝试使用bash filename.sh,该文件似乎可以用于未指定的目录。

–a505999
18-2-10在21:45



#2 楼

使文件可执行的方法有两种:
GUI方法:
右键单击该文件,然后选择“属性”。
转到权限选项卡,然后在Execute: [ ] Allow executing file as program框或Nautilus Program: [ ] Allow this file to run as a program中打勾Thunar。

您可以使用:
cd /to/my/required/directory
然后运行
chmod +x filename.extension
或直接运行:
chmod +x /path/to/your/filename.extension
chmod确实还有一些更高级的选项:
空格用来表明它被分割了:- rwx --- ---
---的第一组是User。第二个是Group,最后一个是Other(其他人)
r代表Read,w代表Write,x代表eXecute。
因此,每个人都可以读取它,但只有Group可以执行,User可以读取和写入(但由于某种原因无法执行)将是:
-rw- rx- r--但这将被添加到命令中,如下所示:
chmod +rw-rx-r-- /path/to/file.extension
chmod也可以用数字实现。它基于二进制(我认为是1,2和4)。
有以下数字:
用户执行的是100
按组执行的是010
/>其他执行是001
用户写入是200
组写入是020
其他用户写入是002
用户读取是400
/>按组读取是040
按组读取是004
然后将它们加在一起即可得到所需的组合。
因此,每个人都可以读取它,但只有组才能执行而用户编写它(但由于某种原因无法执行)将是:
400 + 040 + 004010200
总计为600 + 050 + 004 =654。
然后可以运行命令。
chmod +654 /path/to/file.extension进行设置。
并设置所有权限,您可以键入:
chmod +rwxrwxrwx /path/to/file.extension
或者(这写起来有点容易,但每个人都很难记住) :
chmod +777 /path/to/file.extension
最后,您可以执行以下操作:
chmod -777 /path/to/file.extension
从eve撤走所有权限ryone。
和:
chmod +300 /path/to/file.extension
在不影响任何其他权限(例如执行权限)的情况下为用户添加读写功能。
此网站上有一个非常有用的网格小复选框,您可以在其中勾选所需的选项,并为您提供以下命令: br />
但是,并非所有可能的组合都适合使用。使用的主要参数如下:
755-Owner拥有全部,并且GroupOther可以读取和执行
700-Owner拥有全部
644-Owner可以读取和写入,并且GroupOther可以读取
600-Owner可以读取和写入
并且,如果您使用的是普通用户组:
775-Owner可以读取和写入,而GroupOther可以读取和写入读取Owner和Group可以读取并执行
750-Other可以读取和执行
Owner和Group可以读取和执行Owner只能读取Group和Other可以读取和写入Owner可以读取和写入,而Group可以读取
777和666除了/ tmp以外很少使用。
感谢Ilmari Karonen指出了常用的内容!

评论


它不是基于八进制(8基)而不是二进制(基于2基)吗?在二进制中只能有0和1,而在八进制中只能有0、1 ... 6,7

– Justinas
18年1月2日在15:06

@Justinas二进制文件,其中7 = 4 + 2 + 1-111表示读取和写入以及执行。

– Tim
18年1月2日在15:08

我一直在寻找chmod +101样式权限修改。谢谢你

–JasonS
20年7月28日在20:12

#3 楼

运行:

chmod +x /path/to/file.sh


要使其无法执行,请运行:

chmod -x /path/to/file.sh


例如,我创建了.sh文件:

vi tester12.sh


在vi编辑器上编写一些代码后,我将从vi编辑器退出:

:wq!
chmod +x tester12.sh
./tester12.sh