LINUX.ORG.RU

Хочется странного

 ,


0

1

Имею несколько хотелок, которые не могу нагуглить. Может, кто чего подскажет?

1. Хочу из консоли запускать иксовую программу в фоне, так, чтобы её окна не было видно. Аналогично, например, `top &`, только с графическим приложением. Эта хотелка практическая - libreoffice запускается мгновенно, если хоть одно его окно уже открыто. Я постоянно его запускаю по учёбе, и было бы отлично, если бы он стартовал в фоне при логине в систему.
UPD. Решён частный случай: loffice --quickstart

2. Хочу иметь кнопку в строке заголовка у каждой иксовой программы, по нажатию на которую в том же окне открывалась бы консоль с ходом выполнения этой программы, как если бы её запускали из консоли, а не лаунчера DE. По повторному нажатию окно снова показывало бы программу. Хотелка, в принципе, не имеет практической надобности, но было бы неплохо.

3. Хочу шелл с pipe-двойником. Символ | пересылает данные дальше только в одном направлении. А я хочу их раздвоить и пересылать дальше параллельно по двум разным трубам. Например `ps aux | grep 15 > one |1 grep 16 > two`, где | - одно ответвление, |1 - второе. Хотелка чисто теоретическая, поэтому пример такой неубедительный, на практике нужды не возникало.

4. Хочу при использовании pipe в шелле выводить на экран промежуточные результаты. Т.е. что-то вроде tee, но она пишет в файл и шлёт данные дальше, а я хочу, чтобы вместо файла писалось на экран. Хотелка не то чтобы практическая, но один раз была нужна.
UPD. Решено: echo 'ee' | tee /dev/tty | foo
Ещё вариант: exec 3>&1 ; echo «ab» | tee >(cat >&3) | sed 's/ab/cd/'

Сильно не бейте, я новичок в линуксе :D

★★

Последнее исправление: meequz (всего исправлений: 2)

2. Хочу иметь кнопку в строке заголовка у каждой иксовой программы, по нажатию на которую в том же окне открывалась бы консоль с ходом выполнения этой программы, как если бы её запускали из консоли, а не лаунчера DE. По повторному нажатию окно снова показывало бы программу. Хотелка, в принципе, не имеет практической надобности, но было бы неплохо.

This! Я тоже такое хочу. ☺

f1xmAn ★★★★★
()

Хотелка, в принципе, не имеет практической надобности
Хотелка чисто теоретическая, поэтому пример такой неубедительный, на практике нужды не возникало.
Хотелка не то чтобы практическая, но один раз была нужна.

facepalm.torrent

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

1. Не работает, окно появляется. 4. Нет, перенаправить данные в пайпе, которые ещё не дошли до конца, на stdout.

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

1. Так тебе из консоли или из графического терминала? Из-под иксов можно просто soffice -minimized или что-то вроде.

2. echo 'ee' | tee /dev/tty | foo

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

1. Из графического, не так выразился. При soffice -minimized (и soffice --minimized) тоже появляется окно. 2. Работает! Довольно очевидно с /dev/tty, но сам не догадался. Спасибо!

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

Спасибо. Я почему-то думал, что быстрый старт остался в далёком прошлом в опенофисе.

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

man bash на предмет set -x и прочего.

anonymous
()

2 в gnome в свойствах кнопки запуска есть возможность задать тип «приложение» или «приложение в терминале», возможно такая же возможность есть и в вашем DE.

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

4.

abw@abw 7 ~ $ exec 3>&1 ; echo "ab" | tee >(cat >&3) | sed 's/ab/cd/'
cd
ab

или использовать &2, если тебе это только для просмотра в терминале.

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

Что значит не сразу, туда попадает весь вывод из sdterr и stdout.

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

Кстати, п. 3) можно так же организовать,
см. bash(1) /Process Substitution

ABW ★★★★★
()

3. Хочу шелл с pipe-двойником.

a)

$ man bash | tee >(head -1; cat >/dev/null) | egrep 'Process Substitution'
BASH(1)                            BASH(1)
   Process Substitution

b)

tpipe(1)

gv
()

1. Хочу из консоли запускать иксовую программу в фоне, так, чтобы её окна не было видно.

Возможно подойдет alltray.

gv
()

Из похожего на пункт 2 могу придумать только такое:

$ nohup SomeProgram &
...
$ konsole -e tail -f nohup.out
gv
()

Хочу иметь кнопку в строке заголовка у каждой иксовой программы, по нажатию на которую в том же окне открывалась бы консоль с ходом выполнения этой программы, как если бы её запускали из консоли, а не лаунчера DE. По повторному нажатию окно снова показывало бы программу. Хотелка, в принципе, не имеет практической надобности, но было бы неплохо.

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

Kindly_Cat
()

Может я не все понял, но:
1. Если ты хочешь, чтобы программы быстро запускались то вот варианты:
- Основное время на запуск программ - чтение с диска самой программы и ее библиотек. Посмотри в сторону preload и prelink. Если делается что-то другое (а это можно запросто проверить запустив программу дважды) - см. ниже.
- Можешь автозагружать программу на другой рабочий стол, а на активном сделать так, чтобы на таскбаре не отражались программы с другого десктопа
- То же, что и предыдущее, только сделать шорткат, поковырять dbus на предмет как перенести программу на текущий десктоп
- В конце концов можно запустить программу, чтобы она не показывалась в таскбаре, и/или в Alt+Tab и/или в трее (только что проверил, KDE).

2. Только что раскопал сам: reptyr - A utility to attach a running program to a new terminal - чтобы посмотреть что выводит уже запущенная программа. Не совсем по кнопке, но это наполовину решение тебе. Ну, или tee, но тогда выхлоп каждой программы нужно будет писать в файл, а потом его просматривать при надобности; много файлов.

3. Чем tee не подходит?

4. Тоже tee. Тебе уже подсказали.

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