Для якої команди використовується псевдонім ll?


28

Хтось може сказати мені, для чого призначений псевдонім командної терміналу ll? Все , що я можу знайти в Інтернеті є багато людей говорять , що це псевдонім ls -lабо ls -laабо ls -ltr. Але це просто неправильно. Результат виглядає інакше. Чи є спосіб знайти llта переглянути його синтаксис?

Відповіді:


76

За допомогою команд 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

10
Зауважте, що в загальному випадку команда може мати кілька одночасних визначень. type -a commandnameрозкриє все - він підкаже, чи є команда одним або декількома псевдонімом, функцією, вбудованим або одним або декількома виконуваними файлами у вашому PATH, у такому порядку пріоритетності. Це допомагає зрозуміти, чому, наприклад, скасування команди не повертає її повністю до очікуваної поведінки.
Призупинено до подальшого повідомлення.

Я б рекомендував alias ll='ls -lh'. Ви можете запустити, ls -lякщо вам потрібні розміри в байтах, а не B / kiB / MiB / GiB.
Пітер Кордес

13

llпсевдонім, визначений у вашому ~/.bashrc, якщо ви його не змінили, це ls -alF:

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

Ці три варіанти:

  • -a, --all - не ігноруйте записи, починаючи з.
  • -l - використовувати довгий формат лістингу
  • -F, --classify - індикатор додавання (один із * / => @ |) до записів

Як

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

показує, lsсама знову є псевдонімом для ls --color=auto:

З --color=auto, lsвидає кольорові коди лише тоді, коли стандартний вихід підключений до терміналу. LS_COLORSНазви змінних середовища змінити налаштування. Використовуйте dircolors команду, щоб встановити її.


Не обов’язково .bashrc. Якщо ви використовуєте іншу оболонку, вона буде визначена у файлі .rc для цієї оболонки -, cshrc, .tchshc тощо.
jamesqf

@jamesqf Я думаю, що хтось, хто використовує іншу оболонку, також знає, які псевдоніми визначені в ній - я взяв питання про налаштування Ubuntu за замовчуванням, де bashвикористовується оболонка за замовчуванням для користувачів і визначається псевдонім ll, /etc/skel/.bashrcякий копіюється в кожен новий домашній каталог користувача. Звичайно, ви можете використовувати будь-який файл для зберігання власних псевдонімів - все, що вам потрібно, це його джерело.
десерт

2
Не потрібно перенаправляти файл у grepнього, воно буде приймати ім'я файлу як аргумент. Хоча копіювання файлів запуску допоможе вам знайти, де псевдонім (пере) визначений (зауважте, що він може бути у файлі в /etc- знаючи, що це вбереже вам певну подряпину, якщо ви видалите його з файлу запуску користувача, і він все ще зберігається або навіть зберігається змінює свою поведінку), якщо ви просто хочете швидко дізнатися, що таке визначення, команда псевдонім , як зазначено у прийнятій відповіді, зробить роботу.
Призупинено до подальшого повідомлення.

@DennisWilliamson Не потрібно дозволяти bashвідкривати файл, але набагато краще! В останньому реченні у запитанні зазначається Чи є спосіб знайти llта переглянути його синтаксис? ось що відповідає моя відповідь.
десерт

3

Ви можете заглянути в ~ / .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

Але навіщо використовувати find без імені ". *"? Тому що ви можете помістити це у свій .bashrc

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

Оскільки "ll" - це псевдонім, це не обов'язково, що має лише одне значення (ll = 'ls -alF --color'), ви можете мати псевдонім "ll", як інший comand, як, я не знаю, "rm" . Я думаю, що це скоріше конвенція (продукт загального користування).

Але "ll" може бути програма, що зберігається в будь-якій папці вашої PATH. Наприклад, якщо у вас вдома є папка з назвою "bin", зробіть сценарій "ll", який містить щось на зразок

#!/bin/bash
ls -lhar

Але що робити, якщо ваш PATH було змінено, щоб додати ще одну папку, яка містить нову команду "ll"? Для отримання більш цікавої інформації ви можете ознайомитись із наступним посиланням на пов'язане питання.


0

Не потрібно розбирати ~ / .bashrc або будь-який інший скрипт. Ви можете перевірити свої поточні значення всіх aliasкоманд набору псевдонімів у терміналі. Він виведе на екран всі визначені псевдоніми з їх визначеннями.


Привіт і ласкаво просимо до askubuntu. Як ця відповідь додає щось до прийнятого?
Бруні

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.