У яких ситуаціях користувач не дозволив оболонці записати свою команду в історію?


18

Якщо додати export HISTCONTROL=ignorespaceв .bashrc, баш НЕ буде записувати які - або команди , які мають прогалини перед ними в історію. Але я не розумію, в яких ситуаціях це буде корисно. Хтось може навести кілька прикладів?

Відповіді:


32

Якщо ваші команди містять паролі або іншу конфіденційну інформацію


4
@acgtyrant, ви ніколи не вводили команду з паролем. Ідея полягає в тому, що якщо ви вкажете пароль в командному рядку, просто поставте пробіл перед командою, і він не буде записаний доHISTFILE
Ульріх Дангел

3
Команди mysql можуть приймати пароль користувача, з яким ви підключаєтесь до бази даних, тут є занадто багато. Точка, яку зробив @Ulrich Dangel, знаходиться на місці. Якщо ви вводите команди паролями, не залишайте їх в історії.
slm

5
Я також додаю, що, коли ви та адміністратор, ви часто не хочете ввімкнути історію, тому що якщо зловмисник потрапляє в систему, ви залишаєте йому слід про те, де знаходяться справи і які типи команд зазвичай виконуються на коробці.
slm

1
Якщо у вас немає команд з конфіденційною інформацією, ви не є цільовою аудиторією для цієї функції. Не кожну функцію програми використовує кожен користувач. (Це одна з причин, чому програми мають "повзучість функцій": кожен використовує десяток функцій, але різний десяток, і дивується, для чого всі інші непотрібні суровини.)
Каз

1
Майте на увазі, що аргументи командного рядка часто видно в psабо переглядаючи /proc. Деякі системи роблять середовище видимим і для інших користувачів. У файлі режиму 0700 на tmpfs, OTOH, цих проблем немає.
дероберт

26

Ще одне використання - це команди, які ви не хочете випадково повторити, наприклад rm -rf *. Я широко використовую історію і час від часу потрапляю Enterвипадково, коли команда, яку я отримав з історії, не та, яку я шукав. Звичайно, справжнє рішення - це завжди уважно читати команди перед їх виконанням. Але, будучи трохи незграбним, я вважаю за краще також уникати особливо руйнівних команд поза своєю історією як додаткову обережність.


14
Я хотів би додати , що я знайшов , що це дуже зручно в подальшому ігнорувати деякі небезпечні команди , навіть якщо я забув включити пробіл: HISTIGNORE=" *:rm -f*:rm -r*:*--force*". Це запобігає rm -fі rm -rвід тих, що спасалися в історії, а також всі , що містяться --force.
Петро Пудлак

Це / справжнє рішення. Не залишайте ножів навколо, кажучи, що справжнє рішення - не тикати себе ними. Як свідчить стара прислів'я, "ти не можеш врізатися в річку" - це означає не чистити річку, а перестати скидати сміття в неї.
ctrl-alt-delor

6

Колишній мій колега робив це з більшістю cdі lsкомандами, щоб записувати лише "корисні" команди.


3
Я майже ніколи не запускаю nethack на роботі, не роблячи цього ... (або зверху, чи людину ...)
lotoffreetime

На насправді, хто - то може додати export HISTCONTROL=ingoredupsв .bashrcсказати баш не зберігати дублікати так історії зробити більш чіткими. Ви можете прочитати цю статтю
акгент

2

Конфіденційність даних. У момент, коли правоохоронці зламають ваші двері, ви, можливо, не захочете, щоб вони знайшли залишки

  • де ви wget останню прон ^ ^ Wwarez від
  • які фільми ви нещодавно зірвали та подавали на торрент
  • паролі, передані через аргументи програмам шифрування / дешифрування

Серйозно, це, мабуть, еквівалент суворому налаштуванню конфіденційності у вашому браузері, що не дозволяє йому записувати історію пошуку.


0

Якщо ви керуєте версією .bash_history, це корисний спосіб позначити певні команди як "спеціальні". У поєднанні з search-search- * це спосіб просто натиснути Space+ m+ Up+ Enterдля запуску make --directory ~/dev/tilde cleanта Space+ e+ Up+ Enterдля запуску editor ~/.bash_history, і те і інше я використовую для обслуговування файлу історії Bash.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.