如何使文件(例如.sh脚本)可执行,以便可以从终端运行

我有一个script.sh 此文件的文件和类型是shellscript文件。 我想将此文件作为application/x-executable文件。 我怎样才能做到呢?

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

chmod +x filename.sh

然后可以这样执行:

./filename.sh

如果你想使用不同的命令来启动它,你可以添加一个别名:

gedit ~/.bashrc

在文件末尾添加这个:

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

打开新的终端会话或类型 source ~/.bashrc 在你的终端申请。然后只需使用新名称即可启动脚本。

有两种方法可以使文件可执行:

GUI方法:

右键单击该文件并选择属性。转到权限选项卡,然后勾选框 Execute: [ ] Allow executing file as program 或在鹦鹉螺 Program: [ ] Allow this file to run as a program 在图纳尔。

终端/命令方法:

您可以使用:

cd /to/my/required/directory

然后运行

chmod +x filename.extension

或者只是跑:

chmod +x /path/to/your/filename.extension

chmod 也有一些更高级的选项:

空格是为了显示它是分开的: - rwx --- ---

第一套 --- 是用户。 第二个是组,最后一个是其他(任何其他人)

r代表读,w代表写,x代表执行。

因此,要让每个人都读它,但只有组执行和用户读取和写入它(但由于某种原因不执行)将是:

-rw- rx- r-- 但这将被添加到命令中:

chmod +rw-rx-r-- /path/to/file.extension

chmod 也可以在数字上做到这一点。 它是基于二进制(我认为,因为它是1,2和4)

所以有这些数字:

由用户执行是 100.按组执行是 010.由其他is执行 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

把所有的权限都拿走。

和:

chmod +300 /path/to/file.extension

为用户添加读取和写入,而不影响任何其他权限(例如执行权限)。

本网站 有一个非常有用的小网格复选框的东西,借此你可以勾选你想要的选项,它给你的命令:

enter image description here

但是,并非所有可能的组合都是明智的使用;使用的主要组合如下:

755 - Owner 拥有一切, GroupOther 可以读取和执行

700 - Owner 拥有一切

644 - Owner 可以读写,并且 GroupOther 可以阅读

600 - Owner 可以读写

而且,如果您使用的是非平凡的用户组:

775 - Owner 可以读写,并且 GroupOther 可以阅读

770 - OwnerGroup 拥有一切, Other 可以读取和执行

750 - Owner 拥有一切, Group 可以读取和执行

664 - OwnerGroup 可以读写,并且 Other 只会阅读

660 - OwnerGroup 可以读写

640 - Owner 可以读写,并且 Group 可以阅读

777和666很少使用,除了in/tmp。

多謝。 伊尔马里*卡罗宁指出 常用的!

跑:

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

让所有用户运行您的脚本

如上所述,您可以设置文件的执行位以使其可执行 chmod +x. 但你也可以使用 chmod a+x:

$ ll file_command.txt-rw-rw-r-- 1 rick rick 17 Sep 19 08:55 file_command.txt$ chmod a+x file_command.txt$ ll file_command.txt-rwxrwxr-x 1 rick rick 17 Sep 19 08:55 file_command.txt*

注意事项:

  • 脚本不必以 .sh 它可以结束在 .txt 如图所示,或者没有任何扩展。
  • 而不仅仅是 +x (只有你可以执行脚本),使用 a+x 所以所有用户都可以执行脚本。
  • 文件名有一个 * 附加到它以指示它是可执行的。 此外,文件名在大多数系统上将颜色更改为绿色。

make script executable


运行脚本而不使其可执行

您仍然可以运行bash脚本而不使其可执行。 例如:

$ echo "echo Hello World" > file_command.txt$ cat file_command.txtecho Hello World$ bash file_command.txtHello World

注意事项:

  • 首先我们创建一个包含 echo Hello World.
  • 然后我们确认调用的脚本 file_command.txt 是正确的。
  • 最后,我们通过调用来运行脚本 bash 并传递脚本名称。 该 bash命令实际上存储为 /bin/bash 它是所有Ubuntu系统上的可执行文件。
  • 创建一个命令文件可以节省您添加 谢邦 #!/bin/bash 作为脚本中的第一行。
  • 创建一个命令文件可以节省您使其可执行 chmod +xchmod a+x.

与[如何在终端中运行.sh文件?](command line - How do I run .sh scripts? - Ask Ubuntu

可能重复的[如何运行.sh文件?](command line - How do I run .sh scripts? - Ask Ubuntu

它不是重复的,因为我已经特别询问了如何使它成为应用程序/x-可执行文件。 另一个问题只是要求在终端中打开sh文件。