/ binにコマンドショートカットを追加する

/ binにコマンドショートカットを追加する

カスタムコマンドを追加する方法はありますか/bin

docker container ls例えば、たくさん使うのにdcls

というファイルを追加して正しいコマンドを指定すると、dclsこれはうまくいきません。/bindocker container ls

それでは、このようなことを行う正しい方法は何ですか?

答え1

ショートカットを指定する簡単な方法はalias

alias dcls='docker container ls'

docker container lsこれは入力時に実行され、dclsコマンドは定義したエイリアスを一覧表示しますalias。このエイリアスを削除するにはを使用しますunalias dcls

~/.bashrcBashを使用している場合、またはにエイリアスを保存できます~/.bash_aliases

~/.bash_aliases起動時にコンテンツを読み取れない場合は、次の行を次の行に追加できます~/.bashrc

[ -f ~/.bash_aliases ] && . ~/.bash_aliases

答え2

実際に説明した内容は可能ですが、いくつかの注意事項があります。

  1. 単にdocker container ls/bin/dcls「shebang」という行でファイルを起動する方がより安定しているので、ファイルは次のようになります。
    #!/bin/sh
    ドッカーコンテナ
    ファイルがシェルスクリプトであることを指定します。
  2. このコマンドを実行する前に、次のコマンドを使用してファイルを実行可能にする必要があります。
    chmod +x /bin/dcls
    これを行うには(つまり、実行するには)root権限が必要な場合がありますsudo
  3. 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

  1. では確実に動作しますが/bin、特にソフトウェアが顧客サイトに展開される予定の場合は、標準に準拠することをお勧めします。
  2. スクリプトがオプションの場合/opt
  3. スクリプト自体は次のとおりです。

    #!/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
    

関連情報