Как увидеть команду, связанную с псевдонимом bash?

После многих поисков и попыток я наконец придумал решение!

Вот как сжечь ISO (ы) Windows PE от Gandalf с помощью Ubuntu.

Подготовить USB используя GParted: msdos - fat32 / ntfs - check (boot) в флагом раздела Установите ISO с помощью Unetbootin. Сделайте его загрузочным
sudo grub-install --target=i386-pc --boot-directory="/media/<username>/<drive_label>/boot" /dev/sdX
Замените: /media/<username>/<drive_label> на путь, на котором установлен USB-накопитель, /dev/sdX с USB-накопителем, а не на раздел (например, /dev/sdb not /dev/sdb1) Создайте файл с именем grub.cfg в USB-накопитель в папке /boot/grub: добавьте следующий текст в файл grub.cfg: -
default=1  
timeout=15
color_normal=light-cyan/dark-gray
menu_color_normal=black/light-cyan
menu_color_highlight=white/black

menuentry "Start Windows Installation" {
    insmod ntfs
    insmod search_label
    search --no-floppy --set=root --label <USB_drive_label> --hint hd0,msdos1
    ntldr /bootmgr
    boot
}

menuentry "Boot from the first hard drive" {
    insmod ntfs
    insmod chain
    insmod part_msdos
    insmod part_gpt
    set root=(hd1)
    chainloader +1
    boot
}

И все!

Загрузитесь с USB в старой загрузке, и вы загрузитесь из Windows в режиме реального времени, не устанавливая его.

262
задан 8 February 2012 в 05:59

5 ответов

Для этого полезно type встроенное. Он не только расскажет вам об псевдонимах, но также о функциях, встроенных функциях, ключевых словах и внешних командах.

$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep () 
{ 
    ps -ef | { 
        read -r;
        echo "$REPLY";
        grep --color=auto "$@"
    }
}
326
ответ дан 25 May 2018 в 14:30
  • 1
    что делать, если псевдоним содержит MORE aliases? – user251046 26 July 2014 в 15:34
  • 2
    @ user251046 продолжают использовать type, пока вы не нажмете что-то другое, кроме псевдонима ... – geirha 4 September 2014 в 00:03
  • 3
    Мне нравится этот ответ, потому что type будет анализировать / интерпретировать любые кавычки, чтобы вы могли убедиться, что кавычки правильные. – wisbucky 2 March 2018 в 08:21

Просто введите alias в командной строке. Он должен вывести список всех активных в настоящее время псевдонимов.

Или вы можете набрать alias [command], чтобы увидеть, что в качестве примера используется псевдоним aliased, если вы хотите узнать, что [ f3] псевдоним, вы можете сделать alias ls.

121
ответ дан 25 May 2018 в 14:30
  • 1
    Или введите alias ls, чтобы узнать, к чему конкретно относится ls. – poolie 7 February 2012 в 10:10
  • 2
    @poolie Действительно. Я думаю, что вопрос состоял в том, чтобы видеть все псевдонимы, хотя, поэтому я не уточнил далее команду alias. – Thomas Ward♦ 7 February 2012 в 10:52
  • 3
    в то время как это работает для псевдонимов, это не работает, если вы определили пользовательскую функцию оболочки. type однако работает в обоих случаях. – Sujay Phadke 24 September 2016 в 09:38

Мне действительно нравится Ctrl + Alt + E, как я узнал из этого ответа. Он «расширяет» введенную в настоящее время командную строку, что означает, что он выполняет расширение псевдонима (среди прочего).

Что это значит? Он превращает любой псевдоним, который в настоящее время записывается в командной строке, в то, что означает псевдоним.

Например, если я набираю:

$ ls

, а затем нажмите Ctrl + Alt + Alt , он превращается в

$ ls --time-style=locale --color=auto
51
ответ дан 25 May 2018 в 14:30
  • 1
    имеют ли это эквивалент на других дистрибутивах? – sepehr 3 July 2014 в 18:40
  • 2
    @sepehr Работает на Debian, я предполагаю, что это функция bash и должна работать над любым дистрибутивом. – Oliver Salzburg 3 July 2014 в 21:15
  • 3
    вы правы, это работает на bash, но у меня есть zsh, и это не работает, к сожалению. – sepehr 4 July 2014 в 17:46
  • 4
    был действительно полезен. У меня была другая цель - расширить одну из предыдущих команд bash, зарегистрированных в истории, с помощью, т. Е.! 394, чтобы я мог сначала ее отредактировать до выполнения – XXL 23 March 2016 в 16:42
  • 5
    Как это сделать на bash OSX? – Govind Rai 9 January 2017 в 08:31

Строго говоря, правильный ответ использует массив BASH_ALIASES, например :

$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
5
ответ дан 25 May 2018 в 14:30
  • 1
    Я нашел это полезным в ситуации, когда я хотел, чтобы программный доступ к фактическому утверждению был псевдонимом без полезного для человека материала. – M. Justin 7 March 2017 в 00:16
  • 2
    Очень полезно, спасибо! – Noldorin 14 October 2017 в 00:05
  • 3
    это не работает в zsh – ProGrammar 18 April 2018 в 16:22
  • 4
    @ProGrammar вопрос был о bash - для zsh вы должны посмотреть вопросы о zsh – noonex 18 April 2018 в 23:19

Вы можете использовать команду which.

Если вы установите псевдоним для ls как ls -al, а затем введите which ls, вы увидите:

ls: aliased to ls -al.

1
ответ дан 25 May 2018 в 14:30

Другие вопросы по тегам:

Похожие вопросы: