如何在Unix / Linux中创建自定义命令?[关闭]


55

谁能指导我在Unix / Linux中创建自定义命令。


2
为了将来参考,您应该查看事实页面。它解释了您应该在问题中提出的内容。(例如发布您已经研究和尝试过的东西)。这可能就是为什么有人对此问题投了反对票。
spuder

Answers:


68

在/ usr / bin文件夹中创建一个bash脚本,它应该看起来像这样

#!/bin/bash
Whatever combination of commands you want to run when you type this thing.

真的很容易。

只需将bash脚本命名为您要在终端中键入的名称,然后使其可执行即可:chmod +x filename您很高兴!


1
您能否将其修改为逐步指南,包括每个必要步骤?我仍然不确定如何制作自己的自定义命令。
尤达

5
@AndersMB,您需要阅读一本书。有很多好的,甚至是免费的。从“ Linux命令行”开始
通配符

嗯..他在开玩笑。他开玩笑吧?
Somenath Sinha

1
执行./filename
Squirrl '18

46
  1. 在主目录下创建一个目录,例如“ bin”。
  2. 更新您的路径变量以包含此bin目录。将其放入.profile.bash_profle归档以使其永久存在。

    export PATH=$PATH":$HOME/bin"

  3. 创建一个脚本,例如“ hello”,并将其保存在您的bin目录中。通过授予对hello脚本的执行权限$ chmod +x hello

    #!/bin/bash    
    echo My first program
  4. 重新加载.profile.bash_profle

    $ . ~/.bash_profile

  5. 在任何目录中,您只需键入:

    $ hello
    My first program

我知道这已经很老了,但是我已经bin在很多答案中看到了您建议创建文件夹的建议。如果.bin不是,有什么问题bin吗?我真的很挑剔我的home样子,我不想要一个额外的文件夹只是因为。
MO

我尝试使用此工具未成功,一阵子很沮丧,以为我的zsh安装有问题,或者$PATH最终导致该工具chmod -x hello不起作用,资金也没有-X。相反,我尝试了一下chmod 755 hello,虽然我不确定此命令的安全隐患,但实际上可以让我运行hello。有人对此有解释吗?我假设这是关于年龄的问题?
ConstantFun

1
@ConstantFun用于chmod +x hello向脚本添加“运行”特权。chmod -x hello完全相反-删除“运行”特权。(请注意答案和您的评论中的正负号差异。)
Filip Happy

25

轻松,创建一个别名。

假设您要编写命令以将cd插入您的下载目录。而您想称它为cdd。

alias cdd='cd ~/Downloads' 

您可以创建所需的任何命令。

这是更多信息:http :
//www.mediacollege.com/linux/command/alias.html


6
但是,这不会在会话之间持续。该命令有效,但不是永久的。一种更永久的方法是修改〜/ .bash_aliases文件并在其中建议您添加该行。
Jeff Grimes 2014年

2
另外的工作原理是将它添加到你的〜/ .bashrc文件
Delicia Brummitt

11

大多数(如果不是现在),Linux发行版在〜/ .bashrc中都有一个小脚本,看起来与此几乎相同:

if [ -e ~/.bash_aliases ]
then
. ~/.bash_aliases
fi

这仅表示您可以创建自己的命令(也称为“ aliases”,通常指的是现有命令,其中包含必须始终使用的某些参数,或者必须按顺序执行的命令列表)。

您的Linux发行版很可能不会在您的家庭中创建.bash_aliases文件,除非您已经手动完成该操作。因此,要创建文件,请键入以下命令:
touch ~/.bash_aliases

现在,该文件将在您每次启动新终端时自动执行。

您现在可以做的是创建别名列表,并将其添加到该文件中以备后用。例如,rm默认情况下,(删除)命令告诉您删除文件/目录时,它不会要求您确认请求。但是,有一个参数告诉rm您确认请求-i。因此,rm -i filePath将显示一条消息,询问您是否确定要删除指定的文件。现在,如果您不小心删除了一个文件,您很可能会忘记包括该-i选项,这将使an alias变得非常有益。键入以下命令

echo "alias rm='\rm -i'" >> ~/.bash_aliases

会告诉Bash您,每次您请求删除文件时,都会显示一条确认消息。当然,您还可以做更多的事情-这仅仅是基础。

如果您想了解如何使用一些基本的命令(即cdtouchrmmkdirpushdpopd,等)和/或更复杂的,我推荐一个很不错的书,你可以有你的书架上作为一个称为参考

的实用指南Linux命令编辑器和外壳编程,由马克·G·索贝尔。书号:978-0133085044


1
为什么反斜杠?
phil294
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.