将命令快捷方式添加到 /bin

ale*_*067 9 command-line ubuntu docker

有没有办法将自定义命令添加到/bin

例如,我用docker container ls了很多,想把它变成一个快捷命令,比如dcls.

如果我在文件dcls/bin和文件内添加一个名为的文件,请指定确切的命令docker container ls,我认为这不起作用。

如果有的话,做这样的事情的正确方法是什么?

Fre*_*ddy 27

快捷方式的一个简单方法是定义一个 alias

alias dcls='docker container ls'
Run Code Online (Sandbox Code Playgroud)

这将docker container ls在您输入时执行,dcls并且该命令会alias列出您定义的别名。要删除此别名,请使用unalias dcls.

如果您使用 bash,您可以将别名保存在您的~/.bashrc~/.bash_aliases.

如果您~/.bash_aliases在启动时未阅读,您可以将此行添加到您的~/.bashrc

[ -f ~/.bash_aliases ] && . ~/.bash_aliases
Run Code Online (Sandbox Code Playgroud)

  • 你必须把它保存在你用户的 shell 启动文件 `~/.bashrc` 或 `~/.profile` 或 ... 如果你不保存别名,当你注销或关闭终端时它会丢失。 (2认同)

G-M*_*ca' 17

实际上,您所描述的会起作用,并附上一些注意事项:

  1. 您可以简单地放入docker container ls一个名为/bin/dcls. 但是它的行为可能有点复杂。以名为“shebang”的行开头文件更可靠一点,因此文件看起来像
    #!/bin/sh
    docker 容器 ls
    它指定该文件是一个 shell 脚本。
  2. 在运行命令之前,您必须使用如下命令使文件可执行
    chmod +x /bin/dcls
    您可能需要以 root 身份执行此操作(即,使用 运行它sudo)。
  3. 按照上述两个步骤,你就可以输入dcls ,它会做docker container ls。但是,如果您键入dcls -l foo,它仍然会执行docker container ls。如果你想这样做docker container ls -l foo,你应该改变脚本说

    #!/bin/sh
    码头集装箱ls“$@”
    它指定您在dcls命令行上键入的任何参数都应传递给docker container ls命令。

    当然,您可以使用命令行参数做更复杂的事情。

对于一个简单命令的映射?一个简单的命令,不需要与其他用户共享,定义别名(如 Freddy 建议的那样)或 shell 函数更简单。更复杂的函数通常写成脚本;即,包含命令的文本文件。但是,如果您不需要与其他用户共享它,则使用私有bin目录更为常见。

$ cd                                     # (到你的主目录) 
$ mkdir bin
然后复制dcls$HOME/bin,并添加
导出路径="$HOME/bin:$PATH"
到您的~/.bashrc.

此外,将个人脚本放入/usr/local/bin, 并保留/bin系统随附的程序也是很常见的。

  • +1 推荐“$HOME/bin”。你真的应该使用这个。这不仅是正确的范围,而且有助于您重新安装系统(并保留 ``HOME``)以免丢失自定义命令。 (5认同)