Як скопіювати весь вихід на xfce-terminal gnome-terminal?


3

Як назва. Я хочу скопіювати весь вихід, який зараз знаходиться в сеансі xfce або gnome, і зберегти у файл для подальшого аналізу.


Ви маєте на увазі "скопіювати та вставити весь вихід у вікно xfce-терміналу чи gnome-термінала та вставити його у файл" чи перенаправити команду за раз (як думав Джон Т)? Боюся, я не можу порадити використання цих терміналів (я використовую KDE), але я подумав, що ви маєте на увазі скопіювати та вставити, а не перенаправляти.
pavium

Під "збереженням" я припускав, що він має на увазі файл. Може бути, або я думаю.
Джон Т

Так, я маю на увазі скопіювати весь вихід на термінал і зберегти його у файлі журналу.
Сем Ляо

Якщо ви заздалегідь знаєте, що хочете зберегти свій результат, запустіть сценарій.
Даррен Хол

Я хотів би, щоб на це була ще одна відповідь, яка охоплювала отримання поточного тексту команди, яка вже виконується. Зазвичай, коли, скажімо, я неправильно набрав розташування файлу log4j.xml, змушуючи мій файл java друкувати не в журнал, а на екран, для команди, яку я не можу повторити, я хотів би зробити це.
Аарон Р.

Відповіді:


2

На жаль, я думаю, що єдиним дійсно ефективним / надійним рішенням було б виправити псевдо-термінальний код для цього. Я шукав спосіб зробити це в xfce деякий час, і найчистіша відповідь, яку я маю на даний момент, полягає в тому, що: використовуйте мишу, щоб скопіювати весь буфер зверху вниз, а потім запустіть це:

$ xclip -selection c -o> ~ / вихід-псевдотерміналу

Те, що я дійсно хочу, - це те, що ЗАВЖДИ реєструє ВСІ мої вихідні термінали. Для мене оперативна пам’ять та дисковий простір дешеві, і реально, навіть коли я випадково потрапив на всі ті дурні команди, які заливають екран, цілий рік моєї роботи над терміналом все ще є простими мегабайтими, а переваг реєстрації всього цього багато в порівнянні з як банально це було б.

Крім того, хоча я вважаю, що патч для автоматичного збереження виходу є ідеальним, можливо, простішим обхідним патчем може бути команда для автоматичного "вибору всього" тексту та його копіювання - таким чином він міг би принаймні поєднуватися з xclip та cron-скриптом тощо. . і не змушуйте нас бути незграбними мишею :)


2

Замість того, щоб перетягувати мишкою, щоб вибрати весь текст, я отримав справний спосіб, хоча мені це не так подобається.

  1. потрійне клацання останнього рядка поточного терміналу (не відпускайте мишку).
  2. натисніть клавішу SHIFT + HOME, що приведе нас до першого рядка.
  3. перетягніть мишу до першого рядка.
  4. клацніть правою кнопкою миші, редагувати-> копіювати.

1

Перенаправити його на файл:

$ example-command> ~ / output.txt

Де example-command - це команда, яка виробляє вихід, який ви хочете зберегти. Тильда ( ~) позначає вашу домашню директорію, тому файл output.txt буде знаходитися під домашньою папкою, що містить вихід команди.

Якщо ви хочете, щоб усі результати, включаючи помилки:

$ example-command> ~ / output.txt 2> & 1

Якщо вам це подобається у вашому буфері обміну, у вас є кілька варіантів:

Якщо результатів не так багато, ви можете виділити результат і клацніть правою кнопкою миші, щоб зберегти його у буфер обміну. Якщо забагато для виділення, передайте його в xclip (можливо, вам доведеться встановити його залежно від вашого дистрибутива):

$ example-command | xclip

xclip дозволяє взаємодія командного рядка з буфером обміну сервера X.



1

pbcopy працює досить добре :)

додайте це у свій .bashrc або .zshrc

копія {$ 1 | pbcopy}

Це скопіює вихід команди в буфер.

Використовуйте Ctrl + V або pbpaste, щоб показати вихід.

Наприклад:

Копія команди pwd

Виведе поточний каталог до буфера


0

Відкрийте gEditвікно viабо ваш улюблений текстовий редактор, скопіюйте, вставте та збережіть.


Проблема полягає в тому, як скопіювати занадто багато рядків. перетягнути мишу - це не дуже гарна ідея.
Сем Ляо

чому перетягування миші погана ідея? ми говоримо десятки рядків, сотень чи тисяч?
шарлатаний кіхот
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.