问题描述
我有一个script.sh文件,这个文件的类型是shellscript文件。我想将这个文件作为应用程序/x-executable文件。我怎么做到的?
最佳解决方法
好吧,你可以通过做
chmod +x filename.sh
所以它会在您打电话时执行
./filename.sh
您也可以作为应用程序访问该脚本。
打开您的终端并从您的主目录中键入如下所示。
gedit .bashrc
然后在打开的文件中,在最后一行输入。
alias <Name_with which you wanna call it >='./filename.sh'
保存并关闭 。
然后在终端source ~/.bashrc
中输入以应用您所做的更改。那么只需输入别名后给予的名称即可访问您的脚本。
确保您已放置在主目录中。
其他
alias <Name_with which you wanna call it >='./<path to your script >.sh'
希望有所帮助。
次佳解决方法
有两种使文件可执行的方法:
GUI方法:
转到权限选项卡,然后勾选“执行:[]”允许执行文件作为程序。
终端/命令方法:
您可以使用:
cd /to/my/required/directory
然后运行
chmod +x filename.extension
或者只是运行:
chmod +x /path/to/your/filename.extension
chmod
也有一些更高级的选项:
这些空格表明它是分开的:- rwx --- ---
第一套---
是用户。第二个是Group,最后是Other(其他人)
r表示Read,w表示Write,x表示eXecute。
因此,为了让每个人都可以阅读它,但只有组执行和用户读取和写入(但由于某种原因不执行)将是:
-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 + 004
和010
和200
这加起来高达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
将所有权限从每个人都带走。
和:
chmod +300 /path/to/file.extension
为用户添加读取和写入,而不影响任何其他权限(例如,执行权限)。
This website有一个非常有用的小网格复选框的东西,你可以勾选你想要的选项,它给你的命令:
但是,并非所有可能的组合都合理使用;主要使用的是以下内容:
755 – Owner
拥有全部,并且Group
和Other
可以读取和执行
700 – Owner
拥有全部
644 – Owner
可以读写,而Group
和Other
可以读
600 – Owner
可以读写
而且,如果您使用non-trivial用户组:
775 – Owner
可以读取和写入,而Group
和Other
可以读取
770 – Owner
和Group
都有,而Other
可以读取和执行
750 – Owner
拥有全部,并且Group
可以读取和执行
664 – Owner
和Group
可以读写,而Other
可以只读
660 – Owner
和Group
可以读写
640 – Owner
可以读写,而Group
可以读
除了/tmp之外,很少使用777和666。
感谢Ilmari Karonen pointing out的常用用法!
第三种解决方法
跑:
chmod +x /path/to/file.sh
要使其成为un-executable,请运行:
chmod -x /path/to/file.sh
例如,我创建了.sh
文件:
vi tester12.sh
在vi编辑器上编写一些代码后,我将从vi编辑器中退出:
:wq!
chmod +x tester12.sh
./tester12.sh