web-dev-qa-db-ja.com

エイリアスllは何のコマンドですか?

エイリアスllがどの端末コマンドに対応しているのか、誰か教えてもらえますか?私がオンラインで見つけることができるのは、それがls -lまたはls -laまたはls -ltrのエイリアスであると言っている多くの人々です。しかし、それは単に間違っています。結果は異なって見えます。 llを見つけて構文を確認する方法はありますか?

25
Socrates

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
72
Byte Commander

llは、~/.bashrcで変更されていない限り、ls -alFで定義されたエイリアスです。

$ grep ll= <~/.bashrc
alias ll='ls -alF'

これらの3つのオプションは次のとおりです。

  • -a、-all –で始まるエントリを無視しません。
  • -l –長いリスト形式を使用します
  • -F、-classify –インジケータ(*/=> @ |のいずれか)をエントリに追加します

なので

$ grep ls= <~/.bashrc
alias ls='ls --color=auto'

ls自体がls --color=autoのエイリアスであることを示しています。

--color=autoを使用すると、lsは、標準出力が端末に接続されている場合にのみカラーコードを出力します。 LS_COLORS環境変数は設定を変更できます。 dircolorsコマンドを使用して設定します。

13
dessert

〜/ .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が変更された場合はどうなりますか?さらに興味深い情報については、関連する質問への次のリンクを参照してください。

3
Cuauhtli

〜/ .bashrcやその他のスクリプトを解析する必要はありません。ターミナルでaliasコマンドを入力すると、すべてのエイリアスの現在の値を確認できます。すべての定義済みエイリアスとその定義を画面に表示します。

0
Serg Stetsuk