случайно объединить большой файл в удаленной системе

336
Jarvin

Время от времени на компьютере, на котором я работаю с ssh'd, я случайно набираю "cat largefile.txt", и мой экран начинает заполняться текстом в течение следующих 10 минут. Я всегда работаю в сеансе экрана, поэтому мое текущее решение состоит в том, чтобы просто выйти из системы, а затем снова войти в нее, и, поскольку при выходе из системы она может работать в 100 раз быстрее, она завершится за короткое время введите мой пароль еще раз.

Есть ли способ лучше? Или с участием того факта, что я нахожусь в сеансе экрана? Или способ сделать это в SSH?

Что не работает:

  • отсоединение от сеанса экрана (не отвечает до тех пор, пока не будет завершен вывод файла)
  • попытка команды перейти в другое окно в сеансе экрана (также не отвечает)
  • набрав ctrl + C, чтобы убить команду cat (также не отвечает, вероятно, потому что команда выполнена и буферы просто должны догнать)
1

3 ответа на вопрос

7
Evan Carroll

Очевидно, что простым решением было бы не использовать cat. Ваша оболочка не является средством просмотра текста. Используйте lessкоторый предназначен для этого.

Ну, у моей системы нет меньше, но у нее есть больше, которую я использую все время, когда осознаю, что имею дело с большим файлом "cat file.txt | more" ... думаю, мне следует просто потренироваться использовать "more file.txt" во всех ситуациях. Нет реальной причины использовать cat, когда терминал является выходным. Jarvin 14 лет назад 0
1
Dennis Williamson

Если вы используете Bash, попробуйте Ctrl-z kill % Enter

Какую оболочку вы используете?

( Ctrl- cу меня работает, кстати.)

Я использую Bash. Ctrl + C работает, если вы можете отключить его до завершения обработки cat, но к тому времени, когда я понимаю, что он очень длинный, cat больше не работает, и это только мой дисплей, который должен наверстать упущенное. Так что я не должен ничего убивать, потому что кошка уже не работает. Ctrl-Z ничего не делает, пока файл выводится. Jarvin 14 лет назад 0
0
intuited

Если вы запустите новое screenокно через ^A ^C, вы, я думаю, сможете "увернуться" от входящего буфера без выхода из системы и повторного входа. Кажется, что узким местом является передача буферных символов на ваш локальный терминал; переключение на другое окно должно уменьшить необходимость в этих усилиях. Не совсем чудодейственное лекарство, но оно может сэкономить вам время.

К сожалению, это не работает. Как и все другие методы, это помогает, только если кошка еще не закончила выполнять. Как только он завершится и останется только буфер, чтобы его догнать, я нашел единственный выход - просто выйти из системы. Кошка обычно заканчивается через секунду или две, поэтому я набираю это почти мгновенно, чтобы это имело какой-либо эффект. Jarvin 14 лет назад 0
Это интересно. Вы пробовали фоновое соединение SSH? Это кажется маловероятным, так как кажется, что вам нужно отключить сеанс экрана ... но, вероятно, вы бы попытались просто отключиться от сеанса экрана с помощью `^ A d`. Как вы выходите из системы? В любом случае нажатие клавиши [[ENTER] `` ~ `` ^ Z` вызовет фоновую сессию SSH. intuited 14 лет назад 0

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