エイリアスll
がどの端末コマンドに対応しているのか、誰か教えてもらえますか?私がオンラインで見つけることができるのは、それがls -l
またはls -la
またはls -ltr
のエイリアスであると言っている多くの人々です。しかし、それは単に間違っています。結果は異なって見えます。 ll
を見つけて構文を確認する方法はありますか?
alias
またはtype
コマンドを使用して、特定のエイリアスの意味を確認できます。
$ alias ll
alias ll='ls -alF'
$ type ll
ll is aliased to `ls -alF'
ただし、エイリアスでは他のエイリアスが使用される場合があるため、再帰的にチェックする必要がある場合があります。 ll
の場合、それが呼び出すls
コマンドも確認する必要があります。
$ alias ls
alias ls='ls --color=auto'
$ type ls
ls is aliased to `ls --color=auto'
したがって、ll
は実際には次のことを意味します。
ls --color=auto -alF
ll
は、~/.bashrc
で変更されていない限り、ls -alF
で定義されたエイリアスです。
$ grep ll= <~/.bashrc
alias ll='ls -alF'
これらの3つのオプションは次のとおりです。
なので
$ grep ls= <~/.bashrc
alias ls='ls --color=auto'
ls
自体がls --color=auto
のエイリアスであることを示しています。
--color=auto
を使用すると、ls
は、標準出力が端末に接続されている場合にのみカラーコードを出力します。LS_COLORS
環境変数は設定を変更できます。dircolors
コマンドを使用して設定します。
〜/ .bashrc(またはエイリアスがあるファイル)を調べるか、シェルでこれらのコマンドのいくつかを書くことができます:
command -v ll # "command" is a Shell built-in that display information about
# the command. Use the built-in "help command" to see the
# options.
type -p ll # "type" is another built-in that display information about how the
# command would be interpreted
grep -r "alias ll=" ~ # and don't worry about de .file that contains your
# alias. This command search recursively under each
# folder of your home. So it's something rude.
find ~ -maxdepth 1 -type f | xargs grep "alias ll" # Just look in
# the files (not folders) in your home folder
しかし、なぜ-name "。*"なしでfindを使用するのですか?あなたはこれをあなたの.bashrcに入れることができるので
source bash_hacks # where the file bash_hacks, in your home directory can
# contain the alias ll='ls -la etc etc'.
「ll」はエイリアスであるため、必要なのは1つだけの意味(ll = 'ls -alF --color')であるため、「ll」は別のコマンドのようにエイリアスできます。 。もっと慣習だと思います(一般的な用途の製品)。
ただし、「ll」は、PATHの任意のフォルダーに格納されているプログラムです。たとえば、自宅に「bin」という名前のフォルダがある場合、次のような内容を含む「ll」スクリプトを作成します
#!/bin/bash
ls -lhar
しかし、新しい「ll」コマンドを含む別のフォルダーを追加するためにPATHが変更された場合はどうなりますか?さらに興味深い情報については、関連する質問への次のリンクを参照してください。
〜/ .bashrcやその他のスクリプトを解析する必要はありません。ターミナルでalias
コマンドを入力すると、すべてのエイリアスの現在の値を確認できます。すべての定義済みエイリアスとその定義を画面に表示します。