如何编写和使用文本批处理命令文件

Jua*_*uan 3 command-line apt scripts

我如何编写和使用典型的文本批处理命令文件?

我说的是一个具有以下命令的文件:

sudo -i
sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get check
exit
Run Code Online (Sandbox Code Playgroud)

我想我可以用 Leafpad 写它,但是......

  1. 我必须在哪里保存它?

  2. 哪种格式?哪个名称和扩展名?

  3. 在那之后,我如何在 LXTerminal 会话中使用它,只有一个订单(理想情况下,如果有一种方法可以在每次系统启动时自动使用它)?

非常感谢您的时间!

Edu*_*ola 10

在类 Unix 世界中没有“批处理”文件。我们使用包含“she-bangs”的脚本。要制作这样的脚本,请打开一个文本编辑器(如 Leafpad)并从如下一行开始:

#!/path/to/interpreter
Run Code Online (Sandbox Code Playgroud)

在哪里 /path/to/interpreter用于解释脚本的二进制文件的位置。在 Linux 中,我们通常使用“bash”(Bourne Again SHell),这是好的 ol' Bourne Shell 的“演变”。bash 所做的基本上是从 PATH 环境变量中包含的路径(通常包括 /bin、/sbin、/usr/bin、/usr/sbin 等)运行脚本中指定的参数的二进制文件。

但是,除了大量选项之外,您还可以使用其他解释器,例如 Python、Perl、Ruby、sh、csh、zsh、dash、ksh。

在she-bang下面是你的脚本。在您的特定情况下,要运行指定的命令,我们可以在如下脚本中使用 bash:

#!/path/to/interpreter
Run Code Online (Sandbox Code Playgroud)

现在保存您的文件。不需要扩展名,但出于符号原因,使用 .sh 扩展名命名。我们将以超级用户身份运行脚本,因此无需更改文件权限。

打开终端并 cd 到您保存脚本的路径。假设您将它保存为 script.sh。运行以下命令:

chmod +x script.sh
Run Code Online (Sandbox Code Playgroud)

chmod表示“更改模式”,用于更改谁可以对您的脚本执行什么操作。+x为所有用户添加执行权限,这允许任何人像运行任何其他程序一样运行脚本。我不会详细列出所有不同权限的含义,但这个问题很好地总结了它们。之后,您可以键入:

sudo ./script.sh
Run Code Online (Sandbox Code Playgroud)

不要忘记 ./ 部分,并且不要在 .、/ 和 s 之间留下任何空格。该sudo命令将以./script.shroot 权限运行,因此需要您的密码(当然,您必须是系统管理员)。