Какой файл ищет CTRL + R в Debian?

2

С помощью CTRL + R мы можем искать в предыдущих командах (в терминале Debian). Я всегда предполагал, что он искал мою .bash_history, но, похоже, это не так - сейчас моя .bash_history полностью отключена, но ctrl + r все еще работает нормально. Это поиск файла где-то, что я не рассмотрел, или откуда он получает данные?

some1
источник

Ответы:

0

Согласно ответу на мой вопрос здесь , система хранит эту информацию в безымянном файле. Файлы открываются, затем удаляются немедленно, но, по-видимому, их можно искать, пока они остаются открытыми.

terdon
источник
Другой ответ верен, когда речь идет о прокрутке терминала , но он не имеет отношения к поиску, выполняемому Ctrl + R в вашей оболочке .
grawity
@ Гравити, а? В самом деле? Я бы подумал, что то, что «хранит в памяти» оболочка, будет сохранено с аналогичным механизмом. Это неправильно? Ctrl + R просматривает мою историю bash, она работает, даже если я открываю новый терминал, поэтому я предполагаю, что он должен храниться где-то, вероятно, как безымянный файл.
Terdon
Когда вы открываете bash , он загружает историю ~/.bash_historyи сохраняет ее снова, когда оболочка закрыта. Но в то же время история просто хранится в массиве где-то в оперативной памяти. Подумайте об установке переменных на любом языке программирования - они не затрагивают файловую систему, реальную или виртуальную.
grawity
Это относится даже к терминалу прокрутки. Терминалы, основанные на libVTE, записывают свои прокрутки в файлы (если вы включили «бесконечную прокрутку»), чтобы упростить некоторые вещи, но большинство других терминалов (таких как Xterm) просто хранят все содержимое прокрутки в переменной массива.
grawity
1

Ctrl + R не ищет файл. Он ищет историю, хранящуюся в памяти вашей текущей оболочки.

grawity
источник
Странно, я думал, что "все в Linux - это файл". Курсы Unix в колледже настолько бесполезны ..
some1
@ some1: Это верно только для некоторых значений «всего» и для некоторых значений «файла». Например, Linux предоставляет много переменных и информацию через /dev, /procи /sysфайловые системы. Существуют функции, которые позволяют считывать сигналы или другие события через дескриптор открытого файла, как если бы он читал файл. (Linux получил вдохновение для / proc из Plan9, производного Unix, который поднял это на гораздо более высокий уровень.) Но в целом, «все это файл» слишком широк; например, вы не можете получить доступ к DBus или TCP как к файлам; вы даже не можете открывать сокеты Unix, используя файловые функции.
grawity