Использование Bash vi или emacs

Выход из всего ввода данных пользователем достаточно для большинства сайтов. Также удостоверьтесь, что идентификаторы сессии не заканчиваются в URL, таким образом, они не могут быть украдены от эти Referer ссылка на другой сайт. Кроме того, если Вы позволяете Вашим пользователям отправлять ссылки, не удостоверьтесь никакой javascript:, ссылки протокола позволяются; они выполнили бы сценарий, как только пользователь нажимает на ссылку.

6
задан Recursion 8 April 2010 в 20:06
поделиться

4 ответа

Bash все еще использует строку чтения. Readline использует режим emacs или vi, и установка режима переключает между различными режимами редактора. Вы можете проверить папку lib / readline в базовом исходном коде, чтобы увидеть различные привязки клавиш.

6
ответ дан 10 December 2019 в 02:49
поделиться

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

Readline - это средство, которое предоставляет эту функцию для Bash и других программ.

Из man bash :

READLINE
       This is the library that handles reading input when using  an  interac‐
       tive shell, unless the --noediting option is given at shell invocation.
       Line editing is also used when using the -e option to the read builtin.
       By default, the line editing commands are similar to those of emacs.  A
       vi-style line editing interface is also available.  Line editing can be
       enabled  at  any  time  using  the -o emacs or -o vi options to the set
       builtin (see SHELL BUILTIN COMMANDS below).  To turn off  line  editing
       after  the  shell  is running, use the +o emacs or +o vi options to the
       set builtin.
1
ответ дан 10 December 2019 в 02:49
поделиться

Согласно странице руководства BASH_BUILTINS (1) (в Fedora 8):

   set [--abefhkmnptuvxBCHP] [-o option] [arg ...]

... (пропуск всех однобуквенных параметров)

         -o option-name
            The option-name can be one of the following:

...

            emacs   Use  an  emacs-style  command  line  editing interface.  This is
                    enabled by default when the shell  is  interactive,  unless  the
                    shell is started with the --noediting option.
...
            vi      Use a vi-style command line editing interface.
Я интерпретирую это как то, что bash напрямую интерпретирует команды для редактирования строки. Эта опция просто устанавливает, какой набор команд использовать. См. Страницу руководства для readline (3).
1
ответ дан 10 December 2019 в 02:49
поделиться

Насколько я знаю, readline - это то, что обеспечивает функциональность редактирования строк для bash.

One Оговорка: когда вы нажимаете v в командном режиме vi, вы получаете полноценный редактор vi для редактирования вашей командной строки.

Из man bash :

РЕДАКЦИЯ
This is the library that handles reading input when using an interactive shell, unless the --noediting option is given at shell invocation. By default, the line editing commands are similar to those of emacs. A vi-style line editing interface is also available. To turn off line editing after the shell is running, use the +o emacs or +o vi options to the set builtin.

When the shell presents you with a prompt (unless you're in non-editing mode), you're already using readline. You'll either be in emacs mode or vi insert mode (which is why you can just use ESC to get back to vi command mode).

1
ответ дан 10 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

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