TGViewer
🐧 Linux Junior. Программирование под Linux. 🐧 Linux Junior. Программирование под Linux. @juniorlinux · 3.08K subscribers
Post #533 1.35K
🔥 Как сделать так, чтобы выполненные команды не записывались в историю

В Linux есть несколько способов не записывать команду в историю — в зависимости от того, нужно ли исключить одну конкретную команду, определённый тип команд или вообще ничего не сохранять в истории.

1️⃣ Пропустить конкретную команду

Самый простой и распространённый способ — поставить пробел в начале команды.

 ls -la # Перед ls стоит пробел


⚠️ Важно: это работает, если переменная HISTCONTROL содержит ignorespace.
Проверить можно так:

echo $HISTCONTROL


Если видите что-то вроде ignoredups:ignorespace или ignoreboth, значит всё ок. Если нет — можно добавить:

export HISTCONTROL=ignoredups:ignorespace


Теперь все команды, начинающиеся с пробела, не попадут в ~/.bash_history.

2️⃣ Не сохранять конкретную команду с помощью HISTIGNORE

Можно задать шаблоны, которые Bash не будет сохранять вовсе.

export HISTIGNORE="ls:pwd:exit"


Теперь указанные команды исчезнут из истории независимо от того, как их вызывать.

Шаблон может содержать *:

export HISTIGNORE="ls *:cd *"


Всё, что начинается с ls или cd, будет игнорироваться.

3️⃣ Удалить команду из истории

Если команда уже выполнена, можно стереть её "задним числом". Для этого можно сперва посмотреть ее номер в истории, а затем удалить, указав этот номер:

history
history -d <номер>


⚠️ При работе в Bash история выполненных команд хранится в двух местах:

🔴 В памяти — это текущая сессия (то, что вы видите, выполняя history)
🔴 В файле ~/.bash_history — это сохранённая история, которая перезаписывается при выходе из shell.

При удалении команды из истории с помощью history -d <номер> Bash удаляет запись с указанным номером только из памяти. Если на этом остановиться и просто выйти из терминала, старая история из файла может перезаписать изменения, и команда вернётся.

Чтобы принудительно обновить файл на диске после удаления команды из истории, используйте опцию -w (write):

history -w


Это гарантирует немедленное применение изменений, что особенно важно, если вы не планируете закрывать терминал в ближайшее время.

Чтобы избежать появления в истории самой команды history -d, можно объединить несколько команд в одну строку:

history -d $((HISTCMD-1)); history -w

Т.о., полностью удаление команды будет выглядеть так:

history  # Найти номер команды
history -d <номер> # Удалить команду по номеру
history -d $((HISTCMD-1)); history -w # Удалить из истории саму команду history -d и перезаписать файл истории


4️⃣ Отключить запись истории целиком

Если нужно поработать "в тени", можно временно отключить запись:

set +o history   # выключить запись в историю
set -o history # включить обратно
  • 🔥 6
  • 👍 2
  • ❤ 1
More from @juniorlinux
  1. Sep 28, 2026⚙️ Как устроена автоматизация задач через cron в Linux Если вам нужно регулярное выполнени…
  2. Sep 22, 2026По умолчанию rsync только добавляет и обновляет файлы, но не трогает то, что было удалено…
  3. Sep 22, 2026❓ Как удалить на приемнике файлы, которых больше нет в источнике, при синхронизации через…
  4. Sep 16, 2026Post #589
  5. Sep 10, 2026Как распаковать .tar.gz, .tar.bz2, .tar.xz и .tar.zst в Linux Для работы с архивами в Linu…
  6. Sep 4, 2026Посмотреть очередь задач, созданных через at, можно командой atq (или at -l). Она выведет…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →