Я нашел способ использовать сценарий оболочки здесь помещенный cat
как фоновый процесс и некоторое время цикл, которые читают ввод данных пользователем и echo
это к порту. Я изменил его, чтобы быть более общим, и это соответствовало моей цели отлично.
#!/bin/sh
# connect.sh
# Usage:
# $ connect.sh
# Example: connect.sh /dev/ttyS0 9600
# Set up device
stty -F $1 $2
# Let cat read the device $1 in the background
cat $1 &
# Capture PID of background process so it is possible to terminate it when done
bgPid=$!
# Read commands from user, send them to device $1
while read cmd
do
echo "$cmd"
done > $1
# Terminate background read process
kill $bgPid
История Вашей оболочки сохраняется в файле, обозначенном HISTFILE
переменная. Так:
unset HISTFILE
Это также относится к zsh, но не к ksh, который продолжает сохранять в файл, обозначенный $HISTFILE
когда оболочка запускается (и с другой стороны, Вы решаете сохранить свою историю в ksh, после того как Вы запустили оболочку).
Короткий ответ:
Введите это при подсказке:
$ kill -9 $$
Это уничтожит Вашу оболочку сразу же без способности оболочки сделать что-либо, такое как прерывание сигнал, сохранить историю, выполниться ~/.bash_logout
, предупредите об остановленных заданиях или любом том хорошем материале.
Длинный ответ:
Примечание: Эти опции не являются взаимоисключающими; они могут все использоваться сразу.
Опция 1:
Если Вы - перфекционист когда дело доходит до загромождения Вашего файла истории, то то, что можно сделать, изменяют HISTIGNORE
переменная для включения шариков команд Вы не хотите зарегистрированный. Например, если Вы добавляете HISTIGNORE='ls*:cd*'
к Вашему ~/.bashrc
затем любой экземпляр ls
и cd
не вставляются в Ваш файл истории.
Опция 2:
Если Вы хотите управлять на основе команды командой, какие команды упущены из Вашей истории, можно установить HISTCONTROL='ignorespace'
который опустит любые командные строки, запускающиеся с пространства. Используя ignoreboth
также опустит повторенные строки. Затем удар клавиши "Пробел" перед вводом команды, заставит ее не обнаруживаться в файле истории.
Опция 3:
Если Вы просто хотите сделать его поэтому при закрытии терминала, оболочка сразу выходит, Вы можете trap
сигнал терминальная программа отправляет оболочку (xterm
, например, отправляет SIGHUP
затем ожидает оболочки для выхода), и сделайте выход, не сохраняя историю, когда это получает этот сигнал. Добавьте это к Вашему ~/.bashrc
:
# don't record history when the window is closed
trap 'unset HISTFILE; exit' SIGHUP
kill -9
для чего-либо кроме страшных ситуаций, когда все остальное перестало работать.
– Christoffer Hammarström
21.11.2011, 18:51
Я удивлен видеть, что никто не предложил history -c
сразу до exit
. IINM (я не эксперт), который сделает приятно.
history -r
перечитает файл истории, таким образом сохранение становится нет.
– Simon Richter
21.11.2011, 11:47
Существует две переменные среды, которые колотят использование для определения файла истории и сколько строк для записи в него, когда оболочка выходит.
Можно выбросить историю сессии с любым из них (набор во время сессии, которую Вы хотите опустить из своего файла истории):
HISTFILE=/dev/null
или
HISTSIZE=0
Любой из них хорошо работает в Bash на Fedora
Не уверенный, почему Вы заботитесь о своей истории команд так. При необходимости в определенных командах часто Вы могли бы развлечься еще больше при определении псевдонимов для них так, можно вернуть их с двумя нажатиями клавиш вместо того, чтобы иметь необходимость искать их в истории.
Eli уже дал Вам корректный ответ для Bash, который должен установить HISTSIZE=0
.
Я просто добавил бы метод, чтобы сделать это для экрана GNU.Пресса Ctrl+A
(экранируйте escape-последовательность), сопровождаемый :scrollback 0
. Это удалит историю прокрутки назад. Теперь можно сразу сделать :scrollback 15000
сбрасывать размер буфера прокрутки назад.
scrollback=0
также.
– gsbabil
21.11.2011, 05:37
Ctrl+a H
ни Ctrl+a :clear
удалит историю. Вам нужно Ctrl+a :scrollback 0
. Можно протестировать его сами. Запустите новую экранную сессию. Теперь сделайте a cat /etc/passwd
. Теперь, сделайте любое вышеупомянутое - Ctrl+a H
или Ctrl+a :clear
. Теперь, попытайтесь копировать с экранного буфера путем выполнения a Ctrl+a [
сопровождаемый стрелкой вниз, чтобы повыситься и видеть, как далеко можно перейти к копии. Если Вы сделали a Ctrl+a :scrollback
сопровождаемый a clear
, Вы только пошли бы насколько Вы видите в текущем окне с тех пор там привычка быть любым буфером scrollback.
– gsbabil
21.11.2011, 14:15
set HISTFILE
в следующий раз я вхожу в систему? (просто скажите, корректно ли это или неправильно), – 21.11.2011, 02:51