カスタムコマンドを追加する方法はありますか/bin
?
docker container ls
例えば、たくさん使うのにdcls
。
というファイルを追加して正しいコマンドを指定すると、dcls
これはうまくいきません。/bin
docker container ls
それでは、このようなことを行う正しい方法は何ですか?
答え1
ショートカットを指定する簡単な方法はalias
alias dcls='docker container ls'
docker container ls
これは入力時に実行され、dcls
コマンドは定義したエイリアスを一覧表示しますalias
。このエイリアスを削除するにはを使用しますunalias dcls
。
~/.bashrc
Bashを使用している場合、またはにエイリアスを保存できます~/.bash_aliases
。
~/.bash_aliases
起動時にコンテンツを読み取れない場合は、次の行を次の行に追加できます~/.bashrc
。
[ -f ~/.bash_aliases ] && . ~/.bash_aliases
答え2
実際に説明した内容は可能ですが、いくつかの注意事項があります。
- 単に
docker container ls
。/bin/dcls
「shebang」という行でファイルを起動する方がより安定しているので、ファイルは次のようになります。#!/bin/sh ドッカーコンテナ
ファイルがシェルスクリプトであることを指定します。 - このコマンドを実行する前に、次のコマンドを使用してファイルを実行可能にする必要があります。
chmod +x /bin/dcls
これを行うには(つまり、実行するには)root権限が必要な場合がありますsudo
。 dcls
上記の2つのステップを実行するとdocker container ls
。ただし、と入力してもdcls -l foo
機能しますdocker container ls
。これを行うには、docker container ls -l foo
スクリプトを次に変更する必要があります。#!/bin/sh ドッカーコンテナ ls "$@"
これは、コマンドラインに入力したすべての引数がコマンドdcls
に渡されることを指定します。docker container ls
もちろん、コマンドライン引数を使用してより複雑な操作を実行することもできます。
単純なコマンド→他のユーザーと共有する必要がない単純なコマンドマッピングの場合は、エイリアス(フレディが提案したとおり)またはシェル機能。より複雑な機能は通常、スクリプト、つまりコマンドを含むテキストファイルで作成されます。ただし、他のユーザーと共有する必要がない場合は、個人bin
ディレクトリを使用する方が一般的です。
$CD #(ホームディレクトリへ) $mkdir 空
dcls
次に、にコピーし$HOME/bin
て追加します。エクスポート PATH="$HOME/bin:$PATH"あなたのための
~/.bashrc
。
また、プライベートスクリプトを入れてシステムに付属のプログラム/usr/local/bin
に任せることも一般的です。/bin
答え3
あなただけのためならエイリアスも大丈夫だろうが、Linuxファイルシステム階層標準/usr/local/bin/
代わりに、ローカルシステム全体のスクリプトが入ります/bin
。
- では確実に動作しますが
/bin
、特にソフトウェアが顧客サイトに展開される予定の場合は、標準に準拠することをお勧めします。 - スクリプトがオプションの場合
/opt
スクリプト自体は次のとおりです。
#!/bin/bash # # Version 1.0 DD 2019-05-04 # dcls = docker container ls docker container ls "@0" if [[ $? -eq 0 ]]; then echo -e "Errors encountered..." exit 1 fi