Не так быстро, но в zsh (а может, в bash?) Есть эта функция под названием fc
, я не уверен, что она обозначает, но если вы ее наберете, она, похоже, откроет команду в каким бы ни был ваш $ EDITOR
.
Или, может быть, вы могли бы сделать историю | хвост -1 >> файл
.
С точки зрения выполнения heredoc в одну строку, это:
~$ echo -e "cat << EOF\nhello\n12345\nEOF\n" | sh
hello
12345
- самое близкое, что я могу придумать.
В CentOS 7 ядро по умолчанию находится в каталоге /boot. Это место будет указано в файле конфигурации загрузчика GRUB2. Расположение файла конфигурации GRUB2 — /etc/grub2.cfg
. Это символическая ссылка на фактический файл конфигурации, расположение которого зависит от используемой прошивки (BIOS/UEFI ).
В конфигурационном файле GRUB2 вы найдете раздел «меню» для каждого ядра, на загрузку которого настроена ваша система. Внутри каждой строфы найдите переменную root
. Пример из моей системы следующий:
set root='hd0,msdos1'
Приведенная выше переменная указывает первый раздел на первом диске с разделами MBR -. В моей системе это соответствует /dev/sda1, который монтируется как раздел /boot.
Продолжая работу в том же разделе меню, вы должны увидеть строку, начинающуюся с «linux16» или «linuxefi». Сразу за этим ключевым словом следует путь к ядру (относительно корневого каталога, указанного ранее ). Например:
linux16 /vmlinuz-3.10.0-693.el7.x86_64...
В вашей системе это будет один из файлов 'vmlinuz -*', которые вы видели в выводе ls /boot
. Это ядра, установленные в настоящее время в вашей системе.
vmunix
было/является традиционным именем файла ядра в нескольких операционных системах Unix.
В Linux это значение было изменено на vmlinux
, а затем на vmlinuz
, когда было добавлено сжатие файлов ядра.
Обычно файл ядра мог находиться в корневом каталоге, а в некоторых дистрибутивах Linux по-прежнему можно увидеть символическую ссылку /vmlinuz
и /vmlinuz.old
, указывающую на текущую и предыдущую версии ядра соответственно. Но современные загрузчики могут легко обрабатывать более двух версий ядра, и соглашение эволюционировало до использования /boot/vmlinuz-<kernel version number>
.
Когда размеры дисков увеличились и адресация логических блоков стала нормой для дисков IDE (в период с 1994 по 2003 год ), BIOS систем до -1994 года не всегда поддерживали LBA и поэтому могли получить доступ к только первые 528 МБ или около того, пока не запустится операционная система с поддержкой LBA -. В результате было важно иметь возможность размещать файлы, необходимые для самых ранних фаз загрузки -, вплоть до отдельного небольшого раздела, который мог бы гарантированно находиться в самом начале диска. В Linux это привело к соглашению о файловой системе /boot
.
В двух словах, у вас будет возможность создать /boot
как отдельную файловую систему, которая будет содержать только ядро и файлы initrd
/ initramfs
текущей и любых предыдущих резервных версий ядра, а также любые файлы самому загрузчику может понадобиться (чаще всего каталог /boot/grub
).
Хотя все современные системы понимают LBA как нечто само собой разумеющееся, /boot
соглашение о файловой системе живет,так как его также можно использовать для загрузки системы, даже если корневая файловая система принимает форму, совершенно не распознаваемую системной прошивкой, например:
Некоторые системные микропрограммы включают встроенную -проверку существования распознаваемого загрузочного раздела перед попыткой загрузки с жесткого диска, даже если фактический загрузчик может загружаться с другого -] традиционные схемы дисков.