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)
G-M*_*ca' 17
实际上,您所描述的会起作用,并附上一些注意事项:
docker container ls一个名为/bin/dcls. 但是它的行为可能有点复杂。以名为“shebang”的行开头文件更可靠一点,因此文件看起来像#!/bin/sh docker 容器 ls它指定该文件是一个 shell 脚本。
chmod +x /bin/dcls您可能需要以 root 身份执行此操作(即,使用 运行它
sudo)。按照上述两个步骤,你就可以输入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系统随附的程序也是很常见的。