我如何运行.sh文件?
每当我打开.sh文件时,它都会在gedit而不是终端中打开它。 我找不到类似右键单击 → 打开方式 → 其他应用程序… → 终端的任何选项。
如何在终端中打开此文件?
为您的脚本授予执行权限:
chmod +x /path/to/yourscript.sh
并运行您的脚本:
/path/to/yourscript.sh
自从.
引用当前目录:如果yourscript.sh
在当前目录中,则可以将其简化为:
./yourscript.sh
您需要将shell脚本标记为可执行文件,以便从文件管理器运行它们:
-
右键单击
.sh
文件并选择Properties : -
在“ 权限”选项卡中,选中“ 允许将文件作为程序执行” :
-
关闭“ 属性”窗口,然后双击该文件。 将弹出一个对话框,为您提供在终端中运行脚本的选项:
条件
在运行.sh文件之前,需要使其可执行:
- 右键单击该文件
- 选择属性
- 选择权限
- 选择允许将文件作为程序执行
警告
确保您信任您从中获取文件的来源。 它可能是一种病毒 。
非常简单的方法
- 双击该文件
- 单击终端中的运行
这有问题。 终端将立即关闭,您将无法看到输出。
简单的方法
- 打开应用程序 – >附件 – >终端
- 将.sh文件拖放到终端中,然后按Enter键
专业人士的方式
- 打开应用程序 – >附件 – >终端
-
找到.sh文件的位置
- 使用
ls
和cd
命令 -
ls
将列出当前文件夹中的文件和文件夹 。 试一试:输入“ls”并按Enter键。 - 看到要进入的文件夹后,运行
cd
,后跟空格,后跟文件夹名称 - 如果您在进入不想要的文件夹时,请运行
cd ..
以升级一级
- 使用
-
运行.sh文件
-
一旦你看到例如
script1.sh
与ls
运行这个:./script.sh
-
为什么这么复杂?
终端具有丰富的强大工具,可通过键入命令进行访问。 专业人员通过键入ls
和cd
找到.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个主要步骤。
-
在终端中,使用gedit编写并将带有“.sh”扩展名的脚本保存到桌面。 (但可以使用任何文本编辑器)
-
打开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
。
-
右键单击
.sh
文件并使其可执行。 -
打开终端( Ctrl + Alt + T )。
-
将
.sh
文件拖到终端窗口并敬畏地观看。
有几种方法可以做到这一点。
选项1
-
在终端中,使用
cd
(更改目录)访问Bash文件所在的目录。防爆。
cd Downloads
-
运行
bash
.sh 这也适用于.run文件。 在此网页上有一个关于更新Rhythmbox的用法示例。
选项2
-
在终端中,导航到bash文件所在的目录。
-
运行
chmod +x
.sh -
在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打开。所以这就是我做的:
- 我导航到我想要执行的
.sh
文件的路径。 - 我打开了终端。
- 我只是将其拖放到终端窗口上,它会自动将该文件与路径一起作为输入。
- 点击Enter,你很高兴!
我在几个发行版上发现的问题是他们已经隐藏了Nautilus中的首选项选项,但要在Ubuntu中修复它并使用Gnome3的其他发行版是相同的(字面上刚刚完成Fedora版本并发布实际修复提醒我如何在未来)。
-
安装
dconf-editor
sudo apt-get install dconf-editor
-
使用您想要的用户帐户运行
dconf-editor
,即NOT rootdconf-editor
-
导航到以下架构:
org.gnome.nautilus.preferences
-
默认情况下,将默认选项更改为不打开:
查找
executable-text-activation
单击display
单词并更改为ask
这将为您提供编辑,查看或运行文件的选项
我是Linux中的菜鸟,我遇到了同样的问题。 如果一切都失败了:
- 打开终端
- 打开包含.sh文件的文件夹
- 将文件拖放到终端窗口中
- 文件的路径显示在终端中。 按Enter键 。
- Voila,你的.sh文件运行。
你也可以使用.
诀窍,提出其他答案的建议。
例如:
chmod +x filename.sh
,假设您已经转到文件路径,然后使用以下任一命令运行该文件:
sh filename.sh ./filename.sh . filename.sh