LINUX.ORG.RU
Ответ на: комментарий от Black_Roland

Виталик, тебе терминал с прокруткой не завезли?

если надо посмотреть только начало вывода команды. с прокруткой надо докрутить до начала, а так сразу посмотрел наччало вывода нажал «q» и всё.

v4567 ★★
() автор топика
Ответ на: комментарий от v4567

Может, ты хочешь more?

uname -a | more

cat /proc/cpuinfo | more

я имел ввиду что бы автоматом подставлялось если вывод выходит за рамки экрана и не подставлялось если полность помещается в экран.

v4567 ★★
() автор топика
Ответ на: комментарий от v4567

Если я верно понимаю суть, такое не реализовать без твиков терминала, т.к. при запуске команды невозможно предсказать, поместится ли ее вывод в экран или нет, а когда она уже запущена, захватывать и перенаправлять вывод средствами баша (что и делается при вызовах вида ls | less) невозможно. Поэтому такое поведение не реализовать без саморучного написания и накладывания патчей, которые будут реализовывать желаемое тобой поведение.

Единственное, что может тебе помочь, быстро жать <C-s> если вывода много, чтобы приостановить его, а возобновлять по нажатию <C-q>. Но это, очевидно, не то, что ты хочешь.

Plcmn
()
Ответ на: комментарий от Plcmn

да это так

я так понимаю надо сделать следующее: вывод запоминается в некотором буфере, потом проводится анализ поместится вывод полностью на экран - анализируется разрешение экрана, размер шрифта и т.д. после этого когда становится ясно поместится он или нет предпринимается соответствующее действие. Если поместится то просто из буфера выводится на экран, а если нет то перенаправляется например в команду less. Естественно что для этого надо менять и дописывать исходники bash, но может кто то уже это сделал и есть соответствующие патчи. Если кто знает дайте пожалуйста ссылку на них.

v4567 ★★
() автор топика

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

может кто то уже это сделал.......?

v4567 ★★
() автор топика
Ответ на: комментарий от shell-script

tmux не умеет прокрутку? А мне говорили, что он более фичастый чем screen.

Похоже я ерунду сказал.

Просто для прокрутки я раньше включал/выключал поддержку мыши. А с включенной мышью нереально выделить текст и скопировать его в буфер обмена (тупит как-то и соскакивает). Если прокручивать по Ctrl+B PgUp/PgDn, то копирование нормально работает. Ввел в заблуждение народ.

Black_Roland ★★★★
()
Ответ на: комментарий от v4567

если надо посмотреть только начало вывода команды.

Приведи конкретный кейс когда это нужно?

Мне такое нужно было только в одном случае: когда команду нужно было запускать периодически и там правда нужно было только начало. Ну так watch в помощь:

$ watch ls -1 /bin

Про less -F тебе уже сказали.

Еще есть такой функционал как ScrollLock - блокирует прокрутку. Нажимаешь второй раз - переходит вконец. Но там нужно жать кнопку, я так понял ты хочешь от этого избавится.

Короче, повторю вопрос: назови конкретный кейс; уверен, что нужный инструментарий найдется.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

в общем маны читаю не до конца. да less -F подходит, теперь осталось прибумать как сделать что бы к любой команде дописывалось | less -F

v4567 ★★
() автор топика
Ответ на: комментарий от KRoN73

Странно, но при коротком выводе вообще ничего на экран не выводит, сжирает вывод.

у меня нормально, всё выводит и как написано в мане возвращает командную строку. Версия:

less -V
less 429
Copyright (C) 1984-2008 Mark Nudelman

less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less

v4567 ★★
() автор топика
Ответ на: комментарий от KRoN73

ls / -l | less -F

у меня работает, правда я запускал из под рута

v4567 ★★
() автор топика
Ответ на: комментарий от KRoN73

Странно, но при коротком выводе вообще ничего на экран не выводит, сжирает вывод.

+1
Баг?

$ ls | less -F
$ less -V
less 475 (PCRE regular expressions)
Copyright (C) 1984-2014  Mark Nudelman

less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less
Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от KRoN73

Баг в less, у меня из-под Putty на некоторых старых AIX-ах такое тоже бывает. Сильно зависит от терминала и/или termcap, я так и не определил.

E ★★★
()
Ответ на: комментарий от v4567

к любой команде дописывалось | less -F

Уж тогда 2>&1 | less -F, а то stderr потеряте. И к любой особо не допишешь, есть ведь ″mc″, ″make menuconfig″ и пр.

mky ★★★★★
()
Ответ на: комментарий от Eddy_Em

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

поставь себе нормальный терминал, xfce4-terminal к примеру. Ну или konsole, если кедераст.

emulek
()
Ответ на: комментарий от emulek

xfce4-terminal

Он и стоит, но в настройках я 1000 строк сделал, чтобы не засирать сильно память.

А теперь представь выхлоп больше 1000 строк...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

Это ж тормоза жуткие! 12309 еще никто не отменял.

Кстати, насчет 12309: пока у меня на буке SSD стояла, я и думать забыл об этом баге (даже решил, что с железом на буке этого нет), но только лишь сгорел SSD и я воткнул туда винт, как пошло-поехало. Теперь загрузка не 8 секунд, а 30 (и то, это я еще proftpd, апач и кое-какие другие велосипеды не поднял); а уж как запущу emerge-webrsync, так вообще труба — как в том анекдоте про Билли и дискетку.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

ну или отлаживай ядро, как посаны

anonymous
()
Ответ на: комментарий от IPR

Только что глянул на рабочем сервере — там нет, даже в разных местах находятся (/bin/more и /usr/bin/less). Дома ещё гляну, там система посвежее.

Deleted
()
Ответ на: комментарий от Deleted

Можешь не смотреть - это совершенно разные утилиты.

Собственно в man'ах можно всё почитать. more - совместимый ещё со старыми BSD'шными, less - отдельная, значительно более функциональная утилита.

Да это как бы и в использовании очевидно.

shell-script ★★★★★
()

1. Читать ABS до посинения
2. screen C-a Esc
3. настроить количество строк буфера твоего эмулятора терминала

darkenshvein ★★★★★
()
Ответ на: комментарий от anonymous

2. screen C-a Esc

C-a [
C-a C-[
C-a esc     (copy)        Перейти в режим копирования/прокрутки.

Это не то.

«\C-m»: «|less\C-m» >> ~/.inputrc

Может я ошибаюсь но на сколько я понял по нажатию на Ctrl+m вставится | less - это то же не то.

v4567 ★★
() автор топика
Последнее исправление: v4567 (всего исправлений: 1)
Ответ на: комментарий от v4567

Как сказал mky здесь действительно не всё так просто. Мало того что не понятно как подкинуть | less -F к каждой вводимой в bash команде, так ещё и подкидывать этот less надо не ко всем командам - то есть надо ещё как то определить к каким командам подкидывать, а к каким нет. По моему в zsh в алиасах можно назначить глобальный алиас и при помощи него подкинуть к каждой команде, но из-за того что надо ещё определять к какой надо подкидывать, а какой не надо, то этот вариант не подходит.

v4567 ★★
() автор топика
Ответ на: комментарий от v4567

как определить?
если перед выполнением команды посчитать размера терминала с помощью легких наркотиков

xwininfo -id $(printf 0x%x $(xdotool getactivewindow)) | grep -oP '(?<=geometry )\w+' | awk -F'x' '{print $1*$2}'
а потом посчитать кол-во символов в выводе и принять решение если оно больше

system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)
Ответ на: комментарий от system-root

В этом нет смысла. Всё решается проще при помощи less -F проблема в другом, как это подкинуть к командам и при этом ещё не подкидывать к командам которые не выводят ничего или выводят (скажем так специфическую информацию) например mc. Наверное это не решить стандартными средствами, скорее всего придётся править исходники bash. Если править исходники bash можно сделать ещё лучше, например если вывод не вмещается, то показать его начало и всё то что вместилось, вывести приглашение командной строки, но при этом (что бы не нажимать например «q» для возврата командной строки) стрелками и PageUp PageDown можно было бы пролистывать вывод.

v4567 ★★
() автор топика
Последнее исправление: v4567 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.