Іноді виникає необхідність ввести команду в консолі так, щоб команда не потрапила в history.
Відразу обмовимося, що даний хинт не врятує вас від логгірованія всіх команд на рівні демона ssh або від включеного логування в / etc / profile
Перевіряв я це в sh, csh і bash. Після вживання даної фічі, команду не можна повторити, натиснувши стрілку вгору, і вона не з'являється в виведенні history.
Ідея дуже проста - перед командою потрібно поставити пробіл. Або це баг парсеру, або навмисна ф-ція. Але працює:
$ uname
Linux
inky @ laptop:
$ uptime
21:29:07 up 3:42, 8 users, load average: 1.08, 1.05, 1.05
# Перед цією командою - пробіл (парсер водпресса їх їсть):
inky @ laptop:
$ Cat / proc / cpuinfo | grep vendor
vendor_id. GenuineIntel
vendor_id. GenuineIntel
vendor_id. GenuineIntel
vendor_id. GenuineIntel
inky @ laptop:
$ History | tail -n 4
155 exit
156 uname
157 uptime
158 history | tail -n 4
Перед командою cat / proc / cpuinfo варто пробіл в даному випадку.
Секрет цього хинта розкритий. В
/.bashrc повинна бути рядок:
HISTCONTROL = ignoredups: ignorespace
В Убунту і дебіане по дефолту вона є. У дебіане в рутовий bashrc її немає. Алсо можна так:
export HISTCONTROL = ignoreboth
← «Аліаси» для ssh. використовуємо
/.ssh/config для спрощення свого життя.
[Іноді виникає необхідність ввести команду в консолі так, щоб команда не потрапила в history.]
От чесно, що це за необхідності такі? Я якось навіть таких ситуацій придумати не можу, де мені довелося б виконувати команду так, щоб вона не зберігалася в хісторі. Пару прикладів, можна? ;-)
Ну власне 2 глобальних випадку - коли треба, щоб ніхто потім цю команду не побачив (і ви впевнені, що логгірованія немає) і коли не хочеться спамити в history будь-якими командами. Якщо докладніше то:
1) вчимо саппортера. Навчальний сервер. Потрібно створити йому проблему на сервері, потім змусити полагодити. Вводимо ліві команди, потім з пропуском вводимо ті, які все поламають.
2) іноді доводиться кілька разів поспіль вводити будь-яку команду (ну ось звичка у мене при тюнінгу батарейки постійно Тиркало acpi, щоб подивитися заряд актуальний). Нафіга нам 100500 однакових команд. Переконфігурять history ліниво
3) робимо щось таке, що не потрібно показувати роботодавцю (професійні секрети або щось ганебне) на його сервері.
4) просто команда-спам. Ну на біса в хісторі тримати всякі rm / mv / cp. Або саму команду history)?
# uptime
23:03:54 up 23 days, 3:09, 1 user, load average: 0.69, 0.15, 0.05
два, ставимо пробіл перед командою:
gw
# History | tail -n 3
500 uptime
501 uname -a
502 history | tail
якщо вордпресс знову схвалює прогалини - то уточню, що в хісторі umame -a потрапив з пропуском. Дебіан 5.0
ЧЯДНТ?
вся справа і правда в export HISTCONTROL = ignoreboth.
у рута в дебіане і у всіх користувачів в Генті .bashrc мінімалістичний, а ось звичайним Дебіан-юзерам дістається купа всяких налаштувань.
Ця фіча є Багой bash`a і йому подібних, на тій же фр в csh цього не спостерігається.
Але якщо чесно, коли я бажав не паліться при хакинге чиїх то серверів / декстопов, то просто скриптом Грепан і чистив все Залогуватися про мене записи з усіх журналів і історій.
п.с. на майбутнє: Якщо ви раптом знайшли у кого то дірку або тріщину в безпеці, то велика просьба не замовчувати про це і тим більше не використовувати в злих цілях, а надходити благородно і попереджати хазяїна про проблему. Респект вам завжди повернеться, повірте ... ..