повторение символов в терминале/ударе

Это не может быть лучшим решением, но если Вы будете использовать прокси затем, то это будет иметь определенное host:port так netcat решение со все еще работают, хотя необходимо будет выбрать независимо метаданные прокси для понимания его.

Самый легкий способ сделать это могло бы быть должно использовать любой случайный прокси anonymization там и просто канал весь трафик через netcat. (Т.е. набор Ваш браузер проксирует к localhost:port и затем передайте данные к реальному прокси.)

Если Вы хотите иметь локальный прокси затем, SOCKS5 проксирует с ssh -D <port> localhost вероятно, Ваша самая легкая опция. Очевидно, необходимо сказать браузеру использовать прокси "носков", а не прокси "http".

Так, что-то вроде этого (принятие Вашей локальной машины принимает входящие соединения SSH):

ssh -fN -D 8000 localhost
nc -l 8080 | tee capturefile | nc localhost 8000

Естественно, это будет только работать на одну попытку подключения браузера и затем выходить, и я не попытался передать данные возврата к браузеру, таким образом, Вам будет нужно Ваше полное netcat решение.

4
28.05.2013, 01:50
4 ответа

! символ называют "ударом" и bash использование это для того, чтобы вспомнить историю команд. Можно использовать его четыре пути:

!<firstFewCharsOfPreviousCommand> 

пример:

!rm

Это перейдет к последней команде, которую Вы выполнили, который начался с "комнаты", и выполните все это. Будьте осторожны при повторении потенциально разрушительных команд как комната, поскольку можно неумышленно выполнить другой, чем Вы думали, что будете. Выше иллюстрация только, с помощью удара CTRL-R обратная поисковая функция является намного более безопасной альтернативой.

!<indexInCommandHistory>

пример:

!433

Индекс является числом, которое появляется рядом с командой, когда Вы работаете history команда.

!!

Никакой пример, необходимый как вот и все. Это повторно выполняет сразу предыдущую команду (то же как стрелка вверх на большинстве дистрибутивов Linux).

!$

Пример:

# ls -lh /etc/fstab
# vi !$

Другой литерал, когда удар выполняет это, !$ заменяется последним словом (строка символов без пробела)

Как Вы видите с последним, можно даже использовать его в качестве части большей или другой команды. Другой пример этого с !!:

[root@hypervisor libsceptre]# echo hey
hey
[root@hypervisor libsceptre]# echo !!
echo echo hey    <-- printed to stderr so you know what !! was expanded to 
echo hey
[root@hypervisor libsceptre]#

Если Вы хотите удар к, по любой причине, просматриваете символ как литерал и не пытаетесь интерпретировать его, Вы помещаете текст в одинарные кавычки:

[root@hypervisor libsceptre]# echo -e "Hello\nWorld!"
-bash: !": event not found
[root@hypervisor libsceptre]# echo -e 'Hello\nWorld!'
Hello
World!
[root@hypervisor libsceptre]#

Причина Ваша команда не работает, состоит в том, потому что она пытается найти последнюю команду, Вы записали, что это началось с двойной кавычки (функциональность, описанная в моем первом примере), и не может найти его.

9
27.01.2020, 20:47
  • 1
    Спасибо за ответ на такой глупый вопрос Joel Davis! Аплодисменты –  Brandon D. 28.05.2013, 00:54
  • 2
    +1 для большого ответа. Я добавил объяснение двух выводов строки echo !!. Это взяло меня некоторое время для понимания этого так, я думал, что укажу на это. Надежда Вы не возражаете. –  terdon♦ 28.05.2013, 01:28
  • 3
    Не проблема, ясность является ключевой. –  Bratchley 28.05.2013, 01:32

Если Вы не используете расширение истории (и Вы, очевидно, не делаете), затем, необходимо скорее отключить его, чем изучить странное заключение в кавычки и правила ингибирования.

set +H или set +o histexpand получает Вас избавленный от него. Можно проверить, активно ли это echo $- ("H" показывает его являющийся активным), или set -o (histexpand).

2
27.01.2020, 20:47
  • 1
    я надеялся бы, что корреспондент воспользуется этой возможностью для понимания с расширением истории, так как это действительно довольно полезно.. –  evilsoup 28.05.2013, 07:22

Необходимо выйти из удара:

echo -e "Hello\nWorld"\!
Примечание: Наличие удара за пределами кавычек является намеренным. Иначе \! echod.

1
27.01.2020, 20:47
  • 1
    Что происходит, если Вы удаляете обратную косую черту...? –  Hauke Laging 28.05.2013, 00:49

Особое значение ! все еще активные внутренние двойные кавычки. ! ключевое слово оболочки, которое, например, берет целое число n в качестве аргумента и выполняет команду n'th в Вашей истории оболочки. Используйте одинарные кавычки или выйдите из символа для предотвращения беспорядка.

Можно читать больше о расширении команды истории в man history.

1
27.01.2020, 20:47
  • 1
    Цените быструю обратную связь сэр! –  Brandon D. 28.05.2013, 00:54
  • 2
    : ! ключевое слово - что-то еще: это - ключевое слово POSIX, используемое для отрицания конвейерного статуса выхода. man history вряд ли зарегистрирует bashили любая команда истории оболочки или механизм (хотя в некоторой системе, это может зарегистрировать readlineAPI libhistory, который подобен bashс тех пор bash использует измененную версию readline). Обратитесь к bash руководство вместо этого. –  Stéphane Chazelas 05.06.2013, 16:26

Теги

Похожие вопросы