如何创建自定义终端命令(以运行脚本)?


36

我是网络开发人员。当我想开始工作时,总是在终端上执行一些命令。例如:

sudo service apache2 start
sudo service mysql start
sublime

为了加快此过程,我创建了一个.sh包含以下命令的文件。

现在,当我想开始工作时,我只是在执行此.sh文件,然后启动所有服务(mysql,apache2等)。

是否可以为此创建自定义命令?例如,如果我键入sudo start-working终端,它将执行以下命令

Answers:


58

人们处理此问题的常用方法是bin在其主目录中建立目录:mkdir ~/bin

然后,您可以在其中放置自定义脚本: mv start-working ~/bin

确保您的脚本是可执行的: chmod +x ~/bin/start-working

将此添加到~/.bashrc文件的底部(如果您正在使用bash,则可能是这样):export PATH=$PATH:~/bin

现在重新登录并注销您的终端,您应该只需键入即可start-working执行脚本。

现在您的路径已经设置好,放到您~/bin自己的任何新脚本中,只需键入其名称即可。


13
+1,而不是注销和登录,您只需运行source ~/.bashrc. ~/.bashrc命令来应用更改。
Meysam's

Joe Oppegaard,我发现这是非常有用的信息,因为我有完整的脚本,并且希望以命令而不是脚本的形式运行。有没有一种方法可以将您在〜/ bin中创建的所有子目录都包括在内,从而不必在.bashrc中包含多个导出行?我尝试过,export PATH=$PATH:~/bin/*但是没有返回期望的结果。
凯文·怀曼

2
默认值~/.profile已添加~/bin到PATH,因此~/.bashrc另外添加它会毫无意义地将其添加两次或更多次。
盖尔哈

它的工作我不附加任何东西的.bashrc,那么你可以跳过,作为geriha说
亚伦·弗洛雷斯

以我的经验,当您添加新文件时,您必须重做chmod命令,否则该权限将被拒绝
Webwoman

15

我一直在寻找如何创建自定义命令的方法,但我发现了这个问题。我认为我一直在寻找别名,因此我将为您提供使用别名的方法。

在主文件夹上:

nano .bash_aliases

您可以在其中一行写下命令:

alias start-working='sudo service apache2 start; sudo service mysql start; sublime'

保存文件后,重新配置您的bashrc

. ~/.bashrc

并检查您的新别名是否已加载

alias

就是这样,您可以通过运行来立即开始工作

start-working
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.