Ясный / стирают введенный с опечаткой невидимый пароль на оболочке / терминал в Linux

По существу то, что Вы делаете здесь, регистрируется, таким образом, Вы могли бы предпочесть использовать удаленного демона входа как rsyslogd, чтобы сделать Ваш вход вместо того, чтобы взломать файл в доле самбы.

С учетом вышесказанного, удаление файла является изменением каталога, содержащего файл, не файла. Так, при удалении полномочий записи для пользователей на каталоге файл не может быть удален. Конечно, этим можно все еще управлять или случайно усеченное.

77
11.10.2012, 02:37
2 ответа

Просто необходимо ввести ctrl+u.

Наслаждаться =)

73
27.01.2020, 19:31
  • 1
    Никогда не знал об этом. Обычно я был бы просто ctrl+C из нежелательной команды середина ввода. –  Spidey 10.10.2012, 20:30
  • 2
    Посмотрите мое объяснение в другом ответе, если Вы хотите знать то, что продолжается. –  Jim Paris 10.10.2012, 22:47
  • 3
    я использую Ctrl+W и симпатичный OK с ним. –  shabunc 11.10.2012, 22:38

Я знаю, что этому уже ответили, но ответ не объясняет, что продолжается.

Символы как Ctrl+L обрабатываются приложением. В случае ввода входа в оболочку, как bash, это очищает экран. Некоторые приложения, как emacs, используйте его, чтобы перерисовать экран и/или повторно центрировать курсор.

Символы как Ctrl+U при подсказке пароля обрабатываются протоколом работы линии TTY. Они будут работать любое время, входной терминал находится в "каноническом" режиме редактирования строки, который является тем, какой режим Ваши программы находятся в том, в то время как Вы вводите пароль. В этом режиме это - само ядро Linux, которое интерпретирует эти символы. Вы видите то, из чего функции присвоены который ключи в выводе stty -a:

speed 38400 baud; rows 45; columns 128; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

Здесь, Вы видите, что Ctrl+U связывается с kill, который (согласно stty странице справочника) "сотрет текущую строку". Вы могли также использовать stty изменить это отображение:

stty kill ^E   # make ctrl-e erase the line

Эта страница имеет большую большую информацию об уровне TTY, если Вам интересно.


Если вещи не путали достаточно: когда при подсказке интерактивного bash, Вы находитесь на самом деле не в "каноническом" режиме редактирования строки. Вместо этого bash получает каждый символ непосредственно, поскольку Вы вводите его, и интерпретация управляющих последовательностей сама, через readline библиотеку. Эта библиотека будет соблюдать отображения, которые Вы установили на своем оконечном устройстве, тем не менее, таким образом, можно все еще использовать stty изменить их. Или, можно настроить их независимо внутри bash и другие находящиеся в readline программы путем установки unix-line-discard свойство в Вашем ~/.inputrc файл. См. страницу справочника удара для большего количества информации.

Когда Вы запускаете программу, bash повторно включает канонический режим редактирования строки (stty icanon) если это было включено прежде и затем отключает его снова, когда программа заканчивается (stty -icanon).

110
27.01.2020, 19:31

Теги

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