aliasコマンドの例 | |
| 原作者 | ビル・ジョイ |
|---|---|
| 開発者 | さまざまなオープンソースおよび商用開発者 |
| オペレーティング·システム | Unix、Unix 風の、AmigaDOS、FreeDOS、Microsoft Windows、ReactOS、AROS、KolibriOS、IBM i |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
コンピューター科学において、エイリアスはさまざまなコマンドラインインタープリタ(シェル)のコマンドであり、単語を別の文字列に置き換えることができます。[1]主にシステムコマンドを省略したり、よく使用するコマンドにデフォルトの引数を追加したりするために使用されます。は、 Unixシェル、AmigaDOS、4DOS / 4NT、FreeDOS、KolibriOS、Windows PowerShell、ReactOS、およびEFIシェルで使用できます。[2] MS-DOSおよびMicrosoft Windowsオペレーティングシステムのエイリアス機能は、 DOSKeyコマンドラインユーティリティ
によって提供されます。alias
エイリアスは、シェル セッションの存続期間中有効です。定期的に使用されるエイリアスは、シェルのrc ファイル(など.bashrc) から設定できるため、対応するシェル セッションの開始時に使用できるようになります。エイリアス コマンドは、設定ファイルに直接書き込むことも、別のファイルから
取得することもできます。
歴史
Unix では、tcshやbashなどの後継シェルで生き残るために、 C シェルにエイリアスが導入されました。C シェルのエイリアスは 1 行に厳密に制限されていました。これは、単純なショートカット コマンドを作成するのに便利でしたが、より複雑な構造には役立ちませんでした。Bourneシェルの古いバージョンではエイリアスは提供されていませんでしたが、csh エイリアスの概念よりも強力な関数が提供されていました。csh のエイリアスの概念は、Bourne Again Shell (bash) とKorn Shell (ksh) にインポートされました。関数とエイリアスの両方をサポートしているが、パラメータ化されたインライン シェル スクリプトをサポートしていないシェルでは、可能な限り関数を使用することが推奨されます。エイリアスが必要なケースには、連鎖エイリアスが必要な場合が含まれます (bash および ksh)。aliasコマンドは、 IBM iオペレーティング システムにも移植されています。[3]
使用法
エイリアスの作成
一般的な Unix シェル
非永続的なエイリアスは、alias コマンドの引数として名前と値のペアを指定することで作成できます。Unixシェルでは、構文は次のようになります。
エイリアスgc = 'git commit'
Cシェル
C シェルまたはtcshシェル での対応する構文は次のとおりです。
エイリアスgc "git commit"
このエイリアスは、コマンドgcがシェルで読み取られるときに、 に置き換えられgit commit、代わりにそのコマンドが実行されることを意味します。
4DOS
4DOS/4NT シェルでは、次の構文を使用してcp4DOScopyコマンドのエイリアスを定義します。
エイリアス cp コピー
Windows PowerShell
Windows PowerShell で新しいエイリアスを作成するには、次new-aliasのコマンドレットを使用できます。
新しいエイリアス ci コピーアイテム
ciこれにより、実行時にコマンドレットに置き換えられる という新しいエイリアスが作成されますcopy-item。
PowerShell では、コマンドの既定の引数を指定するためにエイリアスを使用することはできません。代わりに、PowerShell の設定変数の 1 つであるコレクション $PSDefaultParameterValues に項目を追加してこれを行う必要があります。
現在定義されているエイリアスを表示する
定義されたエイリアスを表示するには、次のコマンドを使用できます。
alias # 引数なしで使用し、現在のすべてのエイリアスのリストを表示します。 alias -p # 出力をソースすることで再作成できる方法でエイリアスをリストします。4DOS/4NT および PowerShell では使用できません。alias myAlias # 定義されたエイリアスのコマンドを表示します。
エイリアスの上書き
Unix シェルでは、エイリアスを使用するときにエイリアス名内の任意の文字を引用符で囲むことでエイリアスを上書きできます。たとえば、次のエイリアス定義を考えてみましょう。
エイリアスls = 'ls -la'
このエイリアスを上書きして、lsコマンドを元の定義どおりに実行するには、次の構文を使用できます。
'ls'
または
\ls
4DOS/4NT シェルでは、エイリアスの前にアスタリスクを付けることでエイリアスを上書きすることができます。たとえば、次のエイリアス定義を考えてみましょう。
エイリアス dir = *dir /2/p
の 2 番目のインスタンスのアスタリスクdirにより、エイリアスなしdirが呼び出され、再帰的なエイリアスの展開が防止されます。また、ユーザーはdir同じ構文を使用して、コマンド ラインで のエイリアスなしの動作を取得することもできます。
*ディレクトリ
エイリアスの変更
Windows PowerShell では、set動詞をコマンドレットと共に使用してalias、既存のエイリアスを変更できます。
エイリアス設定 ci cls
エイリアスはコマンドciを指すようになりますcls。
4DOS/4NT シェルでは、esetコマンドは既存のエイリアスを編集するための対話型コマンド ラインを提供します。
eset /a cp
同じ名前の環境変数とは対照的に、エイリアスが編集され
ます/a。cp
エイリアスの削除
Unix シェルおよび 4DOS/4NT では、次のコマンドを実行してエイリアスを削除できますunalias。
unalias copy # コピーエイリアスを削除しますunalias -a # -a スイッチはすべてのエイリアスを削除します。4DOS/4NT では使用できませんunalias * # 4DOS/4NT の `unalias -a` と同等 - ワイルドカードがサポートされています
Windows PowerShell では、次のコマンドを使用して alias:\ ドライブからエイリアスを削除できますremove-item。
remove-item alias : ci # ci エイリアスを削除します
特徴
連鎖
エイリアスは通常、最初の単語のみを置き換えます。ただし、やなどの一部のシェルでは、bashシーケンスkshまたは単語を置き換えることができます。この特定の機能は、関数メカニズムを通じて利用できません。
通常の構文では、末尾にスペース文字を付けて最初のエイリアスを定義します。たとえば、次の 2 つのエイリアスを使用します。
alias list = 'ls ' # チェーンをトリガーするための末尾のスペースに注意してくださいalias long = '-Flas' # 長いリストを表示するための ls のオプション
許可:
list long myfile # 実行すると「ls -Flas myfile」になる
長いリストの場合、「long」もエイリアスとして評価されます。
コマンド引数
C シェルでは、文字列\!* を使用してコマンド内に引数を埋め込むことができます。たとえば、次のエイリアスを使用します。
エイリアスls-more 'ls \!* | more'
ls-more /etc /usrls /etc /usr | moreは、ディレクトリ /etc と /usr の内容を一覧表示し、1 画面ごとに一時停止します。 \!*がない場合、
エイリアスls-more 'ls | more'
代わりに に展開され、誤ってmorels | more /etc /usrのディレクトリを開こうとします。[4]
BashシェルとKorn シェルは代わりにシェル関数を使用します。以下の § 代替手段を参照してください。
代替案
エイリアスは通常、シンプルにしておく必要があります。シンプルにできない場合は、通常、次のいずれかを使用することをお勧めします。
- シェル スクリプトは、基本的に新しいシステム コマンドを作成するための完全な機能を提供します。
- ユーザーの 内のシンボリック リンク
PATH(など/bin)。このメソッドは、コマンドを呼び出す追加の方法を提供するのに役立ち、場合によっては、呼び出し名を使用して操作モードを選択する少数のコマンドに対して、埋め込まれたコマンド関数へのアクセスを許可することがあります。 - シェル関数は、特に、作成されるコマンドがシェル自体の内部実行時環境(環境変数など) を変更する必要がある場合、シェルの現在の作業ディレクトリを変更する必要がある場合、または対話型シェル(特に、、
rmの「より安全な」バージョンなど) 以外のコマンド検索パスに表示されるように実装する必要があります。cpmv
エイリアスの最も一般的な形式は、コマンドにいくつかのオプションを追加し、残りのコマンド ラインを含めるだけであり、次のパターンに従って簡単にシェル関数に変換できます。
alias ll = 'ls -Flas' # 長いリスト、 alias
ll () { ls -Flas " $@ " ; } # 長いリスト、 関数
関数が自分自身を再帰的に呼び出すのを防ぐには、次を使用しますcommand。
ls () {コマンドls --color = auto " $@ " ; }
古い Bourne シェルでは/bin/lsの代わりにを使用しますcommand ls。
参考文献
- ^ Rugheimer, Hannes (2020-06-10). AmigaDOS クイックリファレンス : Rügheimer, Hannes : 無料ダウンロード、借用、ストリーミング : インターネットアーカイブ。ISBN 97815575504912020年9月12日閲覧– Internet Archive経由。
- ^ 「EFI シェルとスクリプト」 。Intel 。2013年 9 月 25 日閲覧。
- ^ IBM . 「IBM System i バージョン 7.2 プログラミング Qshell」(PDF) . IBM . 2020 年 9 月 5 日閲覧。
- ^ 「コマンドエイリアスに与えられた引数を渡す例」UNIXhelp .エディンバラ大学. 2012-11-25 にオリジナルからアーカイブ。
さらに読む
外部リンク
- : エイリアスを定義または表示する – シェルおよびユーティリティ リファレンス、The Single UNIX 仕様、バージョン 4、The Open Group
- エイリアスの Bash マニュアルページ
- Linux Information Project (LINFO) による alias コマンド
