如何自动执行Linux启动脚本和命令

时间:2020-02-23 14:38:16  来源:igfitidea点击:

Linux系统的奇妙功能之一是能够调整并将其配置为喜好。
命令行实用程序通常称为终端,使用户能够将命令传递给内核并执行关键任务。
它是Linux和其他操作系统之间差异的众多功能之一。

在此帖子中,我们将利用Linux强大功能之一:能够在启动时自动执行脚本/命令和应用程序。
这个过程是为了实现几件事。
它可以从乐趣和直接的任务中的范围,例如将壁纸更改为复杂的东西,如备份数据或者加密文件。

在启动时执行Linux脚本

让我们开始吧,看看我们可以用来自动执行Linux启动脚本和命令的不同方法。

方法1:使用'启动应用程序'GUI应用程序

我们将查看的大多数方法都需要命令行。
但是,基于GNOME的分布可以使用简单的图形实用程序。
'启动应用程序。
'它是预装的,是一个不太喜欢在终端上肮脏的用户的可靠工具。

1.从应用程序菜单启动"启动应用程序"。

启动启动应用程序

2.在"启动应用程序"主窗口上,我们将在右侧看到三个选项; 添加删除编辑
要创建我们的第一个自动脚本,请单击"添加"按钮。

添加启动程序

3.弹出窗口将打开。
输入启动脚本或者程序的名称。
在"命令"部分中,输入要执行的命令"sudo mkdir/home/tuts /桌面/my-test-script"。
或者,我们可以在各种"BIN"目录中输入BASH脚本或者可执行系统命令的完整路径。

更新系统

上面的命令将始终在屏幕上给我一个通知,以在每次启动后更新我的系统。
这只是一个简单的例子。
我们可以编写高级Bash脚本以执行各种任务。
如果我们刚刚入门Bash-Scripting,请查看此处循环示例的一些Bash。

方法2:使用Cron

Cron是一个Linux守护程序,它执行用户编辑的用户编辑任务。
这些计划任务是在Crontab文件中写入的。
它告诉Cron在什么时间和哪些事件下运行哪个工作。

crontab文件的基本格式是:

[分钟] [小时] [dayofmonth] [wynofyear] [dayofweek] [你要执行的脚本]

但是,要在启动时执行脚本,我们将使用"@Reboot"参数。
如果所有这些对我们来说都有新的声音,请阅读我们的文章关于Linux的Crontab解释说明。

要开始,请添加新的Cron作业,在终端上运行以下命令。 $crontab -e如果我们之前从未完成此操作,则会看到选择默认编辑器的选项,如下所示。
我会推荐nano,因为它很简单和简单。
在我这里的情况下,我将进入'1.'

我们将编写一个简单的脚本,它将在启动时在桌面上创建一个新目录。

SHELL=/bin/bash
@reboot sleep 30 && DISPLAY=:0 My-Test-Directory

重新启动Cron工作

方法3:使用/rc.local

在启动时执行脚本和命令的另一种方法是使用/rc.local文件。
要开始,请在终端上运行以下命令。 sudo nano /etc/rc.local此命令将在Nano编辑器上打开RC.local文件。
如果它不存在,它将创建一个。
在#之间输入命令!/bin/bash和0行。
我们还可以在此处提供BASH脚本的完整路径。

#! /bin/bash
//path-to-your-bash-script
exit 0

现在,我们需要使/rc.local文件可执行文件。
在下面运行命令: sudo chmod +x /etc/rc.local

完成后,重新启动PC并查看更改生效。

方法4:系统

SystemD是一个软件套件,包含各种实用程序来管理系统服务和操作系统进程。
系统启动启动时的服务和进程。

我们可以使用systemd在启动时自动执行我们的脚本和命令。
让我们创建和自动化一个程序来通知我们使用Systemd更新系统。

要开始,让我们选择所需的文件夹和文件,我们将写入命令。
运行以下命令:

$mkdir -p ~/.config/systemd/user
$nano ~/.config/systemd/user/update-notifier.service

第二个命令后,nano编辑器将打开,粘贴下面的命令。

[unit]
Description=Reminder to Update System
PartOf=graphical-session-target
[Service]
ExecStart=bash -c 'sleep 10; notify-send "Please, Update your System Now"
Type=oneshot
[Install]
WantedBy=graphical-session.target

这些命令非常简单。
系统将在启动后加载图形会话后10秒钟发送"更新提醒"。

现在要确保脚本在每次启动后都加载,我们需要使其可执行。
运行下面的命令。

$chmod 644 ~/.config/systemd/user/update-notifier.service
$systemctl --user enable update-notifier.service
$systemctl --user daemon-reload
$reboot

这是一种简单的方法,了解如何在启动时使用systemd自动化脚本。
上述方法执行不需要root访问权限的脚本。
如果要创建需要root Access的脚本,请在"/etc/systemd/system"文件夹中创建一个系统服务而不是"~/.config/systemd /用户"目录。
此外,我们需要省略上面命令中包含的"用户"字样。