如何在 Unix/Linux 中创建自定义命令?

Qad*_*ain 63 linux shell bash command

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

小智 80

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

#!/bin/bash
Whatever combination of commands you want to run when you type this thing.
Run Code Online (Sandbox Code Playgroud)

它真的那么容易。

只需将 bash 脚本命名为您想要在终端中输入的内容,并使其可运行:chmod +x filename您就可以开始了!

  • @AndersMB,你需要**读一本书**。有很多好的,甚至是免费的。从 ["Linux 命令行"](http://linuxcommand.org/tlcl.php) 开始。 (7认同)
  • 使用 `./filename` 执行 (2认同)
  • /usr/bin 文件夹专供 Linux 发行商使用。~/bin 是放置个人资料的正确位置,而 /usr/local/bin 是供系统上每个人使用的自定义软件。人们希望对自己的文件保持一定程度的逻辑分离/轻松导航。 (2认同)

Gur*_*uru 55

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

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

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

    #!/bin/bash    
    echo My first program
    Run Code Online (Sandbox Code Playgroud)
  4. 重新加载.profile.bash_profle

    $ . ~/.bash_profile

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

    $ hello
    My first program
    Run Code Online (Sandbox Code Playgroud)

  • @ConstantFun 使用 `chmod +x hello` 为脚本添加“运行”权限。`chmod -x hello` 正好相反 - 删除“运行”权限。(注意答案和评论中的加号/减号差异。) (3认同)

spu*_*der 28

很简单,创建一个别名。

假设您想将一个命令写入 cd 到您的下载目录中。你想称它为cdd。

alias cdd='cd ~/Downloads' 
Run Code Online (Sandbox Code Playgroud)

您可以创建任何您想要的命令。

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

  • 但是,这不会在会话中持续存在。此命令有效,但不是永久性的。更持久的方法是修改您的 ~/.bash_aliases 文件并添加您在那里建议的行。 (6认同)
  • 也可以将其添加到您的 ~/.bashrc 文件中 (2认同)

Fad*_*ass 11

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

if [ -e ~/.bash_aliases ]
then
. ~/.bash_aliases
fi
Run Code Online (Sandbox Code Playgroud)

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

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

现在每次启动新终端时都会自动执行该文件。

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

echo "alias rm='\rm -i'" >> ~/.bash_aliases
Run Code Online (Sandbox Code Playgroud)

会告诉Bash您每次请求删除文件时,都会向您显示一条确认消息。当然,您可以做的还有很多——这只是基础。

如果您想学习如何使用一些基本命令(即cd, touch, rm, mkdir, pushd,popd等)和/或更复杂的命令,我建议您可以在书架上收藏一本非常好的书作为参考,称为

linux 命令编辑器和 shell 编程实用指南,作者:Mark G. Sobell。ISBN:978-0133085044

  • 为什么反斜杠? (2认同)