Чи є якийсь спосіб видалити, ^Cколи ви потрапили CTRL+ Cу оболонку, включіть Red Red Hat Enterprise Linux 6 ("Сантьяго")? Я маю дозвіл редагувати свій власний .bash_profile.
Чи є якийсь спосіб видалити, ^Cколи ви потрапили CTRL+ Cу оболонку, включіть Red Red Hat Enterprise Linux 6 ("Сантьяго")? Я маю дозвіл редагувати свій власний .bash_profile.
Відповіді:
Відредагуйте (або створіть) свій ~/.inputrcфайл. Додайте рядковий вислів
set echo-control-characters Off
Це доручить бібліотеці ReadNline GNU (яку використовує Bash) не виводити (повторювати) жодних контрольних символів на екран. Налаштування буде активним у всіх нових сесіях Bash після цього (і в будь-якій іншій утиліті, яка використовує бібліотеку Readline).
Зауважте, що якщо ваша система Unix постачається з файлом конфігурації для всієї системи для бібліотеки Readline (як правило /etc/inputrc), то ваш особистий файл конфігурації повинен містити цей файл:
$include /etc/inputrc
set echo-control-characters Off
Іншою альтернативою є створення особистої копії загальносистемного файлу конфігурації та змінення цього.
sleep 180і натискаю CTRL + C
~/.inputrcцього ще немає, просто створення файлу може втратити деякі існуючі налаштування. У моєму випадку я вперше помітив, що ctrl + зліва і ctrl + справа перестали працювати. Виправлення було почати моєму ~/.inputrcз цього рядка $include /etc/inputrc. Можна також просто cp /etc/inputrc .inputrcі редагувати за бажанням.
Спробуйте наступне:
stty -echoctl
Для пояснення дивіться цей чудовий та докладний пост від Стефана Шазеласа, який також пояснює деякі інші sttyособливості .
Якщо ви хочете зробити цю зміну постійною (і ви використовуєте так, bashяк це передбачається у вашому запитанні), тоді краще розмістити їх у вашому коментарі, .bashrcяк це зазначає jlmg (так це стосується всіх інтерактивних оболонок).
.bash_profileоскільки цей файл аналізується лише оболонками входу. Його слід вставити .bashrcзамість цього, щоб його читали усі інтерактивні виклики.
^[[A
stty -echo. Це, звичайно, також запобігає відлунюванню всього іншого, що, ймовірно, робить цю відповідь недійсною, якщо все, що ви хотіли, було приховати ^C.
^Cзавжди було в кінці, я можу погодитися з вами. Але ^Cзаповіт буде надруковано там, де колись був курсор, який може перезаписати пару символів у будь-якому місці команди. Це означає, що якщо вам потрібно скопіювати і вставити частини цієї команди, ви можете отримати щось зіпсований. І ^Cне так легко розпізнати при перегляді терміналу, як це було б, якби він був у кінці команди.
Якщо ви намагаєтеся знайти конфігурацію, яка дозволить нормально відлунювати (в тому числі echoctl) і просто заглушити звучання сигналів, що генерують сигнал, і ви впевнені, що це повинно бути можливим, тому що ви бачили, що це працює так раніше ...
Ви, мабуть, бачили це саме так. Але це вже неможливо, через це зобов'язання :
фіксувати ec5b1157f8e819c72fc93aa6d2d5117c08cdc961
Увімкніть INTR / QUIT / SUSP, що лунає в рядковій дисципліні N_TTY (наприклад, ctrl-C з'явиться як "^ C", якщо встановлено stty echoctl, а ctrl-C встановлено як INTR).
Linux, здається, є єдиною unix-подібною ОС (нещодавно я перевірив це на Solaris, BSD та Mac OS X), який веде себе не так, і я дуже сумую за цим як хорошим візуальним підтвердженням переривання програми в консолі або xterm. Я це приємно пам’ятаю з багатьох Unix, якими я користувався також протягом багатьох років. Доведення цього до Linux також здається хорошим способом зробити його ще більш сумісним зі стандартною поведінкою, подібною до Unix.
Якщо ви приємно пам’ятаєте, як раніше Linux це не повторював ^C, єдиний спосіб повернути стару поведінку - це виправити ядро. В останніх версіях відлуння символів, що генерують сигнал, знаходиться у рядках 1215-1218 драйверів / tty / n_tty.c .
set echo-control-characters off