我如何运行.sh文件?

每当我打开.sh文件时,它都会在gedit而不是终端中打开它。 我找不到类似右键单击打开方式其他应用程序…终端的任何选项。

如何在终端中打开此文件?

为您的脚本授予执行权限:

 chmod +x /path/to/yourscript.sh 

并运行您的脚本:

 /path/to/yourscript.sh 

自从. 引用当前目录:如果yourscript.sh在当前目录中,则可以将其简化为:

 ./yourscript.sh 

您需要将shell脚本标记为可执行文件,以便从文件管理器运行它们:

  1. 右键单击.sh文件并选择Properties

    在此处输入图像描述

  2. 在“ 权限”选项卡中,选中“ 允许将文件作为程序执行”

    在此处输入图像描述

  3. 关闭“ 属性”窗口,然后双击该文件。 将弹出一个对话框,为您提供在终端中运行脚本的选项:

    在此处输入图像描述

条件

在运行.sh文件之前,需要使其可执行:

  1. 右键单击该文件
  2. 选择属性
  3. 选择权限
  4. 选择允许将文件作为程序执行

警告

确保您信任您从中获取文件的来源。 它可能是一种病毒

非常简单的方法

  1. 双击该文件
  2. 单击终端中的运行

这有问题。 终端将立即关闭,您将无法看到输出。

简单的方法

  1. 打开应用程序 – >附件 – >终端
  2. 将.sh文件拖放到终端中,然后按Enter键

专业人士的方式

  1. 打开应用程序 – >附件 – >终端
  2. 找到.sh文件的位置

    • 使用lscd命令
    • ls将列出当前文件夹中的文件和文件 。 试一试:输入“ls”并按Enter键。
    • 看到要进入的文件夹后,运行cd ,后跟空格,后跟文件夹名称
    • 如果您在进入不想要的文件夹时,请运行cd ..以升级一级
  3. 运行.sh文件

    • 一旦你看到例如script1.shls运行这个:

      ./script.sh

为什么这么复杂?

终端具有丰富的强大工具,可通过键入命令进行访问。 专业人员通过键入lscd找到.sh文件。 进入正确的当前文件夹后,您可以像这样运行脚本:

 ./script1.sh 

或者您可以运行并将输出重定向到文件:

 ./script1.sh > out.txt 

或者您可以过滤关键字的输出(例如“苹果”)然后重定向到文件:

 ./script1.sh | grep apples > ./only-apples 

只需输入几个命令,就可以对该文件进行数千种操作。

另一个,您可以通过一个简单的命令从Internet下载文件:

 wget www.google.com/images/logos/ps_logo2.png 

然后像这样打开文件:

 shotwell ps_logo2.png 

打开终端并导航到.sh文件所在的文件夹。 然后输入:

 sh .sh 

在Ubuntu 13.04上,Nautilus中打开的可执行文件现在默认在gedit中打开,而不是提示用户执行它们。 要启用经典行为,您需要调整首选项:

Nautilus→编辑菜单→首选项→行为选项卡→单击每次询问附近的单选按钮。

使用cd转到.sh文件所在的目录。 在这个例子中,我将sh文件存储为~/Desktop/shell_practice/test.sh

首先做pwd以确定你在哪里,如果它返回/home/username (其中username是你的真实用户名),你可以运行

 cd Desktop/shell/practice 

如果您似乎在其他地方,则可以使用绝对路径

 cd ~/Desktop/shell/practice 

要么

 cd $HOME/Desktop/shell/practice 

甚至

 cd /home/$USER/Desktop/shell/practice 

这些都是描述同一个地方的方式。 一旦你进入脚本的位置,输入

 ls 

如果您可以在输出中看到sh文件,则可以使用chmod使其可执行。 在我的情况下,请记住,文件名是test.sh ,所以我会运行

 chmod u+x test.sh 

现在我们与脚本位于同一目录中,我们必须通过给出位置./ (当前目录后跟路径分隔符,以区别于文件名)来指定我们要执行文件的shell。 要运行我的文件,我会输入:

 ./test.sh 

如果您的脚本编写正确,它将运行没有错误…

这是一个实例: 这是现场的例子

2个主要步骤。

  1. 在终端中,使用gedit编写并将带有“.sh”扩展名的脚本保存到桌面。 (但可以使用任何文本编辑器)

  2. 打开Nautilus并右键单击script.sh文件。

    • 在属性下,选中“允许执行文件…”复选框

    • 在Nautilus菜单中,单击文件,然后单击首选项,然后单击行为

    • 检查“打开时运行可执行文本文件”。

现在,当您双击桌面上的文件时,它应该执行。 没必要../

在Ubuntu 16.04中,这是如何在终端中打开它:

转到File Manager > Edit > Preferences > Behavior Executable Text Files File Manager > Edit > Preferences > Behavior ,然后选择Ask each time

问题是它在默认情况下设置为View Executable Files when they are opened

  1. 右键单击.sh文件并使其可执行。

  2. 打开终端( Ctrl + Alt + T )。

  3. .sh文件拖到终端窗口并敬畏地观看。

有几种方法可以做到这一点。

选项1

  1. 在终端中,使用cd (更改目录)访问Bash文件所在的目录。

    防爆。 cd Downloads

  2. 运行bash .sh

    这也适用于.run文件。 在此网页上有一个关于更新Rhythmbox的用法示例。

选项2

  1. 在终端中,导航到bash文件所在的目录。

  2. 运行chmod +x .sh

  3. 在Nautilus中,打开文件。

如果您放置在/ usr / local / bin中创建的shell脚本或其他可执行文件,则无需在命令行中提供文件夹路径或向名称添加./,即可找到并执行它。 例如,我创建了以下简单的3行bash脚本来显示磁盘UUID:

 #!/bin/bash echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst" sudo blkid 

我调用了文件uuid并将其放在/ usr / local / bin中。 我需要在命令行输入的是:

 uuid 

对于Ubuntu 18.04 ,有一点修改,因为你没有弹出对话框。

所以你需要做的是:

右键单击文件,选择首选项>选择行为选项卡>在可执行文本文件下标记’询问做什么’选项。

现在,当您双击任何.sh文件时,您将看到一个弹出窗口,您可以选择“在终端中运行”选项来运行.sh文件。

在此处输入图像描述

好吧,我也遇到了同样的问题。 我想执行.sh文件并在CentOS 7上用Gedit打开。所以这就是我做的:

  1. 我导航到我想要执行的.sh文件的路径。
  2. 我打开了终端。
  3. 我只是将其拖放到终端窗口上,它会自动将该文件与路径一起作为输入。
  4. 点击Enter,你很高兴!

我在几个发行版上发现的问题是他们已经隐藏了Nautilus中的首选项选项,但要在Ubuntu中修复它并使用Gnome3的其他发行版是相同的(字面上刚刚完成Fedora版本并发布实际修复提醒我如何在未来)。

  1. 安装dconf-editor

     sudo apt-get install dconf-editor 
  2. 使用您想要的用户帐户运行dconf-editor ,即NOT root

     dconf-editor 
  3. 导航到以下架构:

    org.gnome.nautilus.preferences

  4. 默认情况下,将默认选项更改为不打开:

    查找executable-text-activation单击display单词并更改为ask

这将为您提供编辑,查看或运行文件的选项

我是Linux中的菜鸟,我遇到了同样的问题。 如果一切都失败了:

  1. 打开终端
  2. 打开包含.sh文件的文件夹
  3. 将文件拖放到终端窗口中
  4. 文件的路径显示在终端中。 按Enter键
  5. Voila,你的.sh文件运行。

你也可以使用. 诀窍,提出其他答案的建议。

例如:

chmod +x filename.sh ,假设您已经转到文件路径,然后使用以下任一命令运行该文件:

 sh filename.sh ./filename.sh . filename.sh