Для какой команды используется псевдоним 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
Byte Commander
источник
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 без -name ". *"? Потому что вы можете поместить это в свой .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" как другую команду, например, я не знаю, "rm" , Я думаю, что это скорее соглашение (продукт общего пользования).

Но «ll» может быть программой, хранящейся в любой папке вашего PATH. Например, если у вас дома есть папка с именем «bin», создайте скрипт «ll», который содержит что-то вроде

#!/bin/bash
ls -lhar

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

Cuauhtli
источник
0

Нет необходимости анализировать ~ / .bashrc или любой другой скрипт. Вы можете проверить текущие значения всех aliasкоманд ввода псевдонимов в терминале. Он выведет все определенные псевдонимы с их определениями на ваш экран.

Серж Стецук
источник
Здравствуйте и добро пожаловать в Askubuntu. Как этот ответ добавляет что-то к принятому?
Бруни