我知道如何在bash中配置别名,但是有没有办法为一系列命令配置别名?
也就是说,我希望一个命令更改为特定目录,然后运行另一个命令。
另外,是否可以设置运行“ sudo mycommand”的命令,然后输入密码?在MS-DOS时代,我会寻找一个.bat文件,但是我不确定Linux(或Mac OSX)是否等效。
您提到了BAT文件,所以也许您想要的是编写Shell脚本。如果是这样,则只需将要逐行输入的命令输入到文件中,如下所示:
command1 command2
并要求bash执行文件:
bash myscript.sh
如果您希望无需输入“ bash”就可以直接调用脚本,则将以下行添加为文件 的第一行 :
#! /bin/bash command1 command2
然后将文件标记为可执行文件:
chmod 755 myscript.sh
现在,您可以像运行其他可执行文件一样运行它:
./myscript.sh
请注意,unix并不真正在乎文件扩展名。您可以根据需要简单地将文件命名为“ myscript”,而不以“ .sh”扩展名。重要的是特殊的第一行。例如,如果要使用Perl编程语言而不是bash编写脚本,则第一行应为:
#! /usr/bin/perl
第一行告诉您的shell调用哪个解释程序来执行脚本。
另外,如果您现在将脚本复制到$ PATH环境变量中列出的目录之一,则可以在任何地方通过简单地键入其文件名来调用它:
myscript.sh
甚至制表符完成也可以。这就是为什么我通常在$ PATH中包含〜/ bin目录,以便可以轻松安装个人脚本。最重要的是,一旦您习惯了一堆个人脚本,就可以通过复制个人〜/ bin目录轻松地将它们移植到任何新的Unix机器上。