是的。一旦您了解它,您就会发现与 Windows 相比,Linux 中的脚本编写是一种乐趣。想象一下(可怕的)命令提示符和(不那么可怕的)PowerShell 之间的差异,然后将该差异乘以 10,这就是在 Linux 中编写脚本要好得多。
术语是“shell 脚本”,因为命令处理器(相当于 Windows 命令提示符)称为“shell”。只是为了让生活更充实一点,Linux 有各种可用的 shell。最常见的是sh 的变体,例如bash 和ash。不过,有些疯狂的人使用csh 或tcsh 或其他人,它们的语法截然不同。
创建脚本
要创建一个“shell 脚本”,即一个批处理文件,只需在顶部创建一个文本文件:
#!/bin/bash
(或任何你的 shell 的名称)。通常,文件名可能以.sh 结尾,或者根本没有特殊的文件结尾。
在文件的其余行中,只列出您想要运行的命令,就像您在普通 Linux 终端上输入它们一样。
然后为该文件分配“执行”权限。在命令行中,您将使用chmod u+x filename.sh。这意味着为当前用户添加执行权限。
当您开始学习可以在 shell 中做的所有不同事情时,真正的乐趣就来了。例如有这样的巧妙技巧:
my-first-command && my-second-command # only runs my-second-command if my-first-command succeeded
或者这个:
my-background-command & # runs my-background-command in the background, so that you can get on with other things
还有很多很棒的 Linux/UNIX 小程序可以很容易地将其他程序连接在一起 - 例如grep、uniq、xargs。
你的具体例子
虽然已经解释了这一切有多棒,但我认为这实际上并不是您需要做的。
您示例的 shell 脚本部分归结为:
rm /logs/hr/DV/appserv/JEN*; ls /logs/hr/DV/appserv
我觉得您想从 Windows 自动登录以运行这些命令。
我相信在 PuTTY 中,如果它通过 SSH 连接,你可以给它一个运行命令。所以这就是我要做的。
- 使用 PuTTY 在您的 Windows 机器上生成 ssh 密钥。 (我不记得怎么做 - 我认为有 PuTTYGen 或类似的)。
- 将生成的 public 密钥复制到
.ssh 用户的 .ssh 目录中名为 authorized_keys 的文件中。您可以从字面上复制和粘贴它;这可能比做任何花哨的事情要容易。请注意,此目录和/或文件可能不存在,在这种情况下,您需要创建它们;如果文件存在已经,那么请确保将新密钥附加到文件末尾而不是覆盖它。
- 现在尝试使用 PuTTY 和 ssh 再次连接。它应该会自动以
psoftXXX 用户身份登录。
-
最后,在 PuTTY 设置中,您可能可以指定上面给出的命令行。您可能需要像这样指定它:
/bin/bash -c "rm /logs/hr/DV/appserv/JEN*; ls /logs/hr/DV/appserv"
请注意,我没有自动化一个阶段,即在菜单上按 1。那是因为我怀疑这个菜单是通过给你一个特殊的默认登录 shell 来实现的,它不是/bin/bash,而是/something/somewhere/which/shows/a/menu。我希望如果您在 PuTTY 中指定替代命令,该设置将被完全忽略,而是让您的脚本运行。
您可能需要玩一会儿。祝你好运!