如何在常规情况下以及在启动时运行 shell 命令

如何在常规情况下以及在启动时运行 shell 命令

Ubuntu 16.4 新手。我有两个命令需要在计算机启动时启动。
命令 1:java -jar ~/folder/abc.jar
命令 2:~/folder/q/l32/q -p 8712
这两个命令在终端中运行良好。均在主目录中。
我创建了 2 个 bash 文件,其中一个包含

#!/bin/sh
java -jar ~/folder/abc.jar

另一个

#!/bin/sh
~/folder/q/l32/q -p 8712
  1. 如何单独运行这些 bash 文件?双击无法运行它们。
  2. 如果我希望这两个脚本在启动时运行,我该怎么做?我修改了 rc.local 文件并添加了这两个 bash 文件的路径,但它不起作用。

答案1

好的,我终于做到了。让我解释一下步骤。

我的文件没有 root 访问权限。/etc/rc.local 尝试运行它但失败了。因为 rc.local 在 root 上下文中运行该文件。

因此我切换到 crontab,在那里我可以指定针对哪个用户运行的文件

crontab -e -u myusername

进入 crobtab 文件后,我使用

@reboot /home/username/pathToMyBashFile

有效。

答案2

buntu 系统上的所有用户都有一个特殊的启动脚本文件存储在他们的主目录中,每次他们使用所谓的非登录或交互式 shell 登录系统时都会读取该文件。其中列出的所有命令都像在命令提示符下直接输入一样运行。此文件称为.bashrc(狂欢代表bash shell这是所有 buntu 系统上使用的默认 shell,rc代表资源配置)使用 nano 文本编辑器打开该文件,如下所示:

$ nano ~/.bashrc

将光标移动到最底部并将命令放在那里(不太确​​定您使用它们来做什么):

java -jar abc.jar
q/l32/q -p 8712

然后按ctrl + O保存文件并ctrl + X退出。现在,下次启动计算机时,所有这些命令都将自动运行。

您的第一个问题:

How do I run these bash files individually?

您需要使它们可执行:

$ chmod a+x [FILE]

然后,只需指定它们的名称即可从命令中运行它们。例如,我有以下脚本(实际上,在命令行上运行可执行文件的方法有百万种):

echo "Hello World!"

现在,我需要使其可执行:

$ chmod a+x script.sh

现在我可以运行它了:

$ bash ./script.sh

答案3

拉出一个终端并编辑您的 bashrc 配置文件。

$ vim ~/.bashrc

将下面的行放在 bashrc 中。press esc, press shift+;, enter :wq以保存文件。

exec /path/to/file.sh && path/to/path/file2.sh

相关内容