Возможно, ты когда-нибудь замечал, что при вводе команды history иногда рядом с командой отображается какая-то звёздочка. Выглядит это примерно так:
1990 htop
1991* ls -la
1992 uptime
Смущает? Неа! Но доебаться стоит: откуда она вообще взялась и что она означает? Не просто же так она там появилась.
Вводим в терминале:
gavno
free
bashdays
history
Видим такое:
1997 gavno
1998 free
1999 bashdays
2000 history
Делаем финт ушами:
- Жмём в консоли
Ctrl+R. - Вводим команду
bashdays. - Нажимаем стрелку вверх.
- Отображается предыдущая команда
free. - Удаляем через Backspace команду
free. - Нажимаем стрелку вниз.
- Видим: появилась строка
bashdays. - Выполняем
history.
1997 gavno
1998*
1999 bashdays
2000 history
Видим, что команда free пропала и вместо неё появилась какая-то всратая звёздочка. Это всё потому, что мы отредактировали команду free через Backspace.
Если Backspace заменить и не стирать free, а добавить несколько букв — freezer, то выхлоп будет таким:
1997 gavno
1998* freezer
1999 bashdays
2000 history
Тут нагляднее получилось, видно, что реально было редактирование команды free.
Хуй знает, как это можно применить, тут больше интерес к этой звёздочке: что это такое и при каком кейсе она появляется в history.
А ещё есть хак. Если нажать Ctrl+R, ввести команду, которая помечена звёздочкой, а затем нажать Ctrl+Shift+-, то редактирование откатится и звёздочка пропадёт.
Ещё есть легенда, что звёздочка может появляться при запуске команд из другого сеанса. То есть если открыть 2 терминала и в одном вводить команды, то в другом терминале в history эти команды будут со звёздочками.
В официальной документации по Bash по этому поводу есть лишь такое упоминание: Lines prefixed with a * have been modified. Скудненько.
Такие дела.








Комментарии