Quelle est la commande de l'alias ll?

28

Quelqu'un peut-il me dire à quelle commande de terminal l'alias llest destiné? Tout ce que je peux trouver en ligne, c'est que beaucoup de gens disent que c'est un alias pour ls -lou ls -laou ls -ltr. Mais c'est tout simplement faux. Le résultat est différent. Existe-t-il un moyen de localiser llet d'examiner sa syntaxe?

Socrate
la source

Réponses:

76

Vous pouvez utiliser les commandes aliasou typepour vérifier la signification d'un alias spécifique:

$ alias ll
alias ll='ls -alF'

$ type ll
ll is aliased to `ls -alF'

Notez cependant que les alias peuvent utiliser d'autres alias, vous devrez donc les vérifier récursivement, par exemple dans le cas de ll, vous devriez également vérifier la lscommande qu'il appelle:

$ alias ls
alias ls='ls --color=auto'

$ type ls
ls is aliased to `ls --color=auto'

Cela llsignifie donc:

ls --color=auto -alF
Byte Commander
la source
10
Notez que dans le cas général, une commande peut avoir plusieurs définitions simultanées. type -a commandnamerévélera tout - il vous dira si la commande est un ou plusieurs alias, fonctions, fonctions intégrées ou un ou plusieurs fichiers exécutables dans votre PATH, dans cet ordre de priorité. Cela permet de comprendre pourquoi, par exemple, le désaliasage d'une commande ne la renvoie pas entièrement au comportement attendu.
pause jusqu'à nouvel ordre.
Je recommanderais alias ll='ls -lh'. Vous pouvez exécuter ls -lsi vous voulez des tailles en octets au lieu de B / kiB / MiB / GiB convivial.
Peter Cordes
13

llest un alias défini dans votre ~/.bashrc, à condition que vous ne l'ayez pas modifié, c'est ls -alF:

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

Ces trois options sont:

  • -a, --all - n'ignore pas les entrées commençant par.
  • -l - utilise un format de liste longue
  • -F, --classify - ajoute un indicateur (l'un de * / => @ |) aux entrées

Comme

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

montre, lslui-même est à nouveau un alias pour ls --color=auto:

Avec --color=auto, lsn'émet des codes couleur que lorsque la sortie standard est connectée à une borne. La LS_COLORSvariable d'environnement peut modifier les paramètres. Utilisez la dircolors commande pour le définir.

dessert
la source
Pas nécessairement .bashrc. Si vous utilisez un autre shell, il sera défini dans le fichier .rc pour ce shell -, cshrc, .tchshc, etc.
jamesqf
@jamesqf Je pense que quelqu'un qui utilise un shell différent sait également quels alias sont prédéfinis - j'ai pris la question pour la configuration Ubuntu par défaut, où se bashtrouve le shell par défaut pour les utilisateurs et l'alias llest défini dans /etc/skel/.bashrclequel est copié dans chaque nouveau répertoire personnel de l'utilisateur. Bien sûr, vous pouvez utiliser n'importe quel fichier pour stocker vos propres alias - il vous suffit de le source.
dessert
2
Il n'est pas nécessaire de rediriger le fichier vers grep, il prendra le nom de fichier comme argument. Bien que les fichiers de démarrage soient utiles, vous pourrez trouver l'alias est (re) défini (notez qu'il peut se trouver dans un fichier dans /etc- sachant que cela vous évitera de vous gratter la tête si vous le supprimez du fichier de démarrage de l'utilisateur et qu'il persiste ou même persiste change son comportement), si vous voulez simplement savoir rapidement quelle est la définition, la commande alias , comme indiqué dans la réponse acceptée, fera le travail.
pause jusqu'à nouvel ordre.
@DennisWilliamson Il n'est pas nécessaire de laisser bashouvrir le fichier, mais c'est beaucoup mieux! La dernière phrase du post de question lit Y a-t-il un moyen de localiser llet de regarder sa syntaxe? , c'est ce que répond ma réponse.
dessert
3

Vous pouvez regarder dans votre ~ / .bashrc (ou un fichier où se trouvent vos alias) ou vous pouvez écrire certaines de ces commandes dans votre shell:

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

Mais pourquoi utiliser find sans -name ". *"? Parce que vous pouvez mettre cela dans votre .bashrc

source bash_hacks # where the file bash_hacks, in your home directory can 
                  # contain the alias ll='ls -la etc etc'.

Puisque "ll" est un alias, il n'est pas nécessaire d'avoir une seule signification (ll = 'ls -alF --color'), vous pouvez alias votre "ll" comme une autre commande comme, je ne sais pas, "rm" . Je pense que c'est plus une convention (produit d'usage courant).

Mais "ll" pourrait être un programme stocké dans n'importe quel dossier de votre PATH. Par exemple, si vous avez un dossier nommé "bin" dans votre maison, créez un script "ll" qui contient quelque chose comme

#!/bin/bash
ls -lhar

Mais que se passe-t-il si votre CHEMIN a été modifié pour ajouter un autre dossier contenant la nouvelle commande "ll"? Pour des informations plus intéressantes, vous pouvez consulter le lien suivant vers une question connexe.

Cuauhtli
la source
0

Il n'est pas nécessaire d'analyser ~ / .bashrc ou tout autre script. Vous pouvez vérifier vos valeurs actuelles de toutes les aliascommandes de saisie d'alias dans le terminal. Il apportera tous les alias définis avec leurs définitions sur votre écran.

Serg Stetsuk
la source
Bonjour et bienvenue sur askubuntu. Comment cette réponse ajoute-t-elle quelque chose à celle acceptée?
Bruni