The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

TermKit - новый подход к построению терминалов для работы в режиме командной строки

18.05.2011 20:56

В рамках проекта TermKit развивается платформа для создания терминалов нового поколения, отличающихся учетом контекста выполняемых команд и использованием элементов современных пользовательских интерфейсов. TermKit построен с использованием серверной JavaScript-платформы node.js и web-движка WebKit, тем не менее, терминал является полноценным десктоп-приложением, выполняемым обособленно от браузера. В настоящее время поддерживается только работа в ОС Mac OS X.

В процессе интерактивной работы пользователя в командной строке TermKit анализирует mime-типы файлов и обрабатывает выводимый на экран контент. Например, если выполнить "cat изображение.jpg", то на экране будет показано изображение, а не бинарное содержимое файла. При выводе содержимого файлов с кодом или структурированных данных, терминал автоматически выполняет подсветку синтаксиса. При выводе списков файлов для каждого элемента выводится характеризующая содержимое пиктограмма. Длительно выполняемые операции, такие как копирование большого набора данных, могут выполняться асинхронно - управление сразу возвращается в терминал, отдельно отображается статус выполнения операции. Для действий с использованием неименованных каналов может отображаться прогресс совершения операции.



  1. Главная ссылка к новости (http://acko.net/blog/on-termki...)
  2. OpenNews: Представлен проект Pash, - открытая многоплатформенная реализация MS PowerShell
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/30597-terminal
Ключевые слова: terminal, termkit
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (94) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Мужик32 (ok), 21:26, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +33 +/
    > если выполнить "cat изображение.jpg", то на экране будет показано изображение

    Закапывайте.

     
     
  • 2.2, Аноним (-), 21:34, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Я вот тоже думаю, что что-то здесь не то! Такое чувство, что идеологию Unix ломают
     
     
  • 3.3, ascrzy (?), 21:53, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для макоси же. Вы же понимаете что среднестатистическому пользователю макоси вообще похер что там у системы с юниквейностью. Думаю со временем в убунте внедрят и будут правы. Это дистрибутивы нецеленые не на юниксвей, потому что юниксвей не сильно-то привлекает среднестатистического пользователя коспьютера. Эти дистрибутивы/ОСи нацелены на простоту и удобство самого простого пользователя которые сайчас сидит на венде и тыкает в пуск.
    Или вы всё ещё не понимаете всего этого?
     
     
  • 4.12, Аноним (-), 22:26, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Причем тут Mac OS X? Ах разработчик Взял WebKit, node.js, jQuery и что-то собрал и запустил на OS X и теперь вы преплятаете среднестатистических пользователей системы к TermKit и строите аргументацию.
    ОК.
     
     
  • 5.19, fcuku (ok), 23:36, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Причем тут Mac OS X -  там так принято
     
  • 5.24, ascrzy (?), 00:09, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Притом что эта штука ориентирована не на троллей которые плачут о не юниквейности на форумах подоных этому, а на тех пользователей которые просто пользуются чем-то потому что это удобно, и вроде как мак славиться именно своим удобством.
    А что по поводу webkit, node.js и jquery, то причёт тут это вообще, вы по технологиям определяете ЦА? поделитесь секретом как вы это делаете?
     
     
  • 6.46, ПолныйАнонимус (?), 07:25, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +14 +/
    > Притом что эта штука ориентирована не на троллей которые плачут о не юниквейности на форумах подоных этому,

    Понимаешь ли, мужики интересуются: если при cat facepalm.jpg будет выведена на экран терминала картинка, то что же будет выводиться при cat facepalm.jpg | grep "Пальмы" или при cat facepalm.jpg > newfacepalm.jpg ? Мы что-то тут не видим стройной концепции, в которую впишется эта программа-терминал. Получается, что это вовсе не терминал, а обычный файловый менеджер типа наутилуса, но только с извращенной формой UI - консолью вместо GUI. Т.е. получается, что это будет очередная поделка для людей, которые хотят поиграть в "крутых админов, работающих в терминале".

     
     
  • 7.55, rshadow (ok), 11:04, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен. Непонятно именно ЦА данного продукта. Пользователи в консоль все равно не полезут, хоть убей. Профи на такие "фичи" тока плеваться будут. Остается только прослойка "продвинутых пользователей" которые трюки в консоле умеют и перделкам радуются.

    Ну а про "cat facepalm.jpg". Если система считает себя умнее пользователя то это не сюда ... это идеология винды. Нам с ними не по пути.

     
     
  • 8.91, fcuku (ok), 21:18, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Одно время мечталось просмотреть в ТЕКСТОВОЙ , не иксовой консоли какой-либо и... текст свёрнут, показать
     
  • 7.77, stimpack (?), 15:42, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дорогой, если ты плюешь бинарь на консоль - она вправе показать тебе его так, как она сможет. Эта - может и обработчики применить на основе mime-заголовка. остальные - просто покажут бинарные символы в текущей локали.

    Если ты будешь его в файл писать или грепом парсить - консоли до этого какое дело? не путай шелл и терминал - это теплое и мягкое.

     
  • 7.92, СуперАноним (?), 21:20, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >что же будет выводиться при cat facepalm.jpg | grep "Пальмы" или при cat facepalm.jpg > newfacepalm.jpg ?

    Объектной ориентированностью это называется. "cat" и "|" в данном подходе можно считать операторами, facepalm.jpg - объектом некоторого типа/класса.
    И вот одной из возможностей ОО подхода является перегрузка операторов. Т.е. для типа JPEG будет вызван свой оператор cat, для текстового файла - свой, и т.д.
    Операторы с одинаковым именем могут выбираться по типу принимаемого и типу возвращаемого аргумента. Поэтому "cat facepalm.jpg | grep "Пальмы" будет делать именно то, что вы от неё ждёте, т.е. unix way поведения.
    Как-то так.

     
     
  • 8.94, Олег Б. (?), 01:08, 20/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    вы смешиваете терминальные функции и функции shell не unix way ... текст свёрнут, показать
     
  • 8.99, Аноним (-), 13:48, 20/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Хоть жопой с ручкой Технически, возможно 2 разных действия 1 Разобрать это ка... текст свёрнут, показать
     
  • 6.59, anonymous (??), 11:51, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > и вроде как мак славиться именно своим удобством.

    ключевые слова тут — «вроде как».

     
  • 4.44, ПолныйАнонимус (?), 07:19, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Эти дистрибутивы/ОСи нацелены на простоту и удобство самого простого пользователя которые сайчас сидит на венде и тыкает в пуск.

    А зачем этим людям терминал?

     
  • 4.45, killer1804 (??), 07:23, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Для макоси же. Вы же понимаете что среднестатистическому пользователю макоси вообще похер
    > что там у системы с юниквейностью.

    Уже представил как пользователь, поигравшись с "этим" попробует сделать в линухе "cat image.jpg" и увидев тонны кракозябр в консоле скажет "линукс - калл".

     
     
  • 5.62, anonymous (??), 12:00, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Уже представил как пользователь, поигравшись с "этим" попробует сделать в линухе "cat
    > image.jpg" и увидев тонны кракозябр в консоле скажет "линукс - калл".

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

     
  • 4.50, qetu (?), 07:53, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Понимаем :)
     
  • 4.51, Игорь (??), 08:04, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    "среднестатистическому пользователю" cat не нужен. "Среднестатистический" администратор windows, например, не знает что такое dir.
     
     
  • 5.78, stimpack (?), 15:48, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    вы не поверите, как задалбывает искать конкретную консольную команду для просмот... большой текст свёрнут, показать
     
     
  • 6.88, Гентушник (ok), 18:29, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Открой для себя xdg-open

    >вот лежит на серваке бинарь, видео, например. какая у вас процедура? подрубиться по sshfs, начать смотреть плейером. это надо отдельную консоль запустить, команду выполнить, заново добраться до директории и потом уже запустить. а тут банальный cat - и смотришь файло.

    Далеко не факт что это будет работать удалённо

     
     
  • 7.90, stimpack (?), 20:48, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    аха. беру первый попавшийся случайный линукс (с иксами, замечу)
    zsh: command not found: xdg-open

    чяднт? вот об этом я и говорю - везде все по-разному, кроме базовых gnu-утилит, да и они от юникса к юниксу разнятся!

    > Далеко не факт что это будет работать удалённо

    в таком случае, навороченный cat нам тоже не поможет. надеюсь, речь идет об узости канала?

    или отключенном sftp в конфиге ssh? (что нетипично)

     
     
  • 8.93, Гентушник (ok), 22:04, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Установи xdg-utils Думаешь эта поделка магическим образом появится во всех линук... большой текст свёрнут, показать
     
     
  • 9.107, stimpack (?), 11:44, 22/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не совсем пойму, зачем модифицировать тот же cat, чтобы вытащить mime-тип переда... текст свёрнут, показать
     
     
  • 10.108, Гентушник (ok), 12:06, 22/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    mime-тип вставляет в поток отправляющая сторона К тому же делает она это на те... текст свёрнут, показать
     
  • 3.5, Vitto74 (ok), 22:01, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не согласен. Я думаю что, mime входящего потока тоже учитывается и команда
    cat img.jpg | gzip -f
    спросит куда сжатый файл выводить или выведет в консоль (скорее второе). Не вижу особого нарушения unix-way.
     
     
  • 4.16, anonymous (??), 23:09, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > cat img.jpg | gzip -f
    > спросит куда сжатый файл выводить или выведет в консоль (скорее второе). Не
    > вижу особого нарушения unix-way.

    а потом чувак перепишет весь bash и половину юзерленда, чтобы этот монстр хоть иногда мог делать что-то сложнее cat.

     
  • 4.31, Аноним (-), 01:44, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > cat img.jpg | gzip -f

    Дефективность подхода уже в этом действе.

    Если cat imag.jpg - вывод на экран как картинки, то почему тогда перенаправление в другую программу вдруг внезапно оказывается созданием архива? Две похожие команды делают нечто совершенно разное. Замечательно. А cat img.jpg | gzip -f | gzip -x я что примерно должен получить? По логике вещей?

     
     
  • 5.34, ELF (ok), 01:59, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    что ты хочешь от дизайнеров-стилистов
     
     
  • 6.100, Аноним (-), 13:49, 20/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > что ты хочешь от дизайнеров-стилистов

    Наличия мозга, желательно чуть побольше чем у обезьяны.

     
  • 5.53, Missing (?), 10:09, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Есть мнение что это не специфика там реализованной команды cat, а анализ выводимого на консоль файла. Собственно, при таком подходе логика не нарушена - иначе также можно бить ногами авторов gzip которые сделали ограничение вывода на терминал по умолчанию -)
     
  • 5.56, Vitto74 (ok), 11:05, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Допустим
    cat img.jpg на выходе может иметь как бинарный вид, так и вид изображение.
    gzip может иметь на входе только бинарные данные
    Т.е. если cat используется как источник для gzip, то на вход gzip будет подан именно бинарный поток.
     
  • 3.54, Аааа (?), 10:30, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Юниксу капец? Ничего, что его "идеологию" сломали уже много-много раз? Ничего, что идеологией занимаются идейные, а простые люди просто работают? С тем что удобно им.
     
     
  • 4.63, anonymous (??), 12:02, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Юниксу капец? Ничего, что его "идеологию" сломали уже много-много раз? Ничего, что
    > идеологией занимаются идейные, а простые люди просто работают? С тем что
    > удобно им.

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

     
  • 3.109, анон (?), 00:44, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Идеология линукс заключается в том, что ты можешь делать со своим компьютером все что захочешь. Хочешь сиди в серой консоли без иксор, а хочешь работай в одном из демятка ДЕ и не ДЕ или в этом чуде.
    По мне дак очень удобно. Давно надо было прокачать терминал =) Даешь компиз для терминала. Колышущиеся буковки ;)
    Главное чтобы улучшили автодополнение (контекстное меню), сделали, наконец, удобную работу мышью с текстом.
     
     
  • 4.110, anonymous (??), 05:15, 24/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > сделали, наконец, удобную работу мышью с текстом.

    для удобной работы мышью с чем угодно надо:
    * купить мышь нормальной формы;
    * научиться правильно держать на ней руку;
    * повозить мышью по столу;
    * выкинуть мышь и использовать нормальные методы и нормальные программы.

     
  • 2.98, ram_scan (?), 13:03, 20/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Закапывайте.

    У вас кто-то xterm что-ли отнимает ? Пусть будет.

     

  • 1.4, Аноним (-), 21:56, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    А мышкой там можно команды набирать?
     
  • 1.6, Аноним (-), 22:01, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хотелось бы посмотреть на этого самого простого пользователя, который полезет в командную строку.
     
  • 1.7, Аноним (-), 22:04, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Небось оверхед огого. А так наглядно, можно опционально реализовать или на чем-то быстрее javascript-a.
    Например смотреть pdf в консоли через "less". ls на директорию и там файлы с иконками или миникартинки
     
  • 1.8, Coder (?), 22:21, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А если я напишу cat изображение.jpg > изображение.ai? Он мне еще и экспорт в Adobe Illustrator выполнит??? o_O
     
  • 1.9, EuPhobos (ok), 22:22, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    То есть теперь можно писать cat music.ogg вместо mplayer music.ogg ?
    Ндааа..)
     
     
  • 2.29, Arcturus (ok), 01:10, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зато, можно и так:
    cat my-song.mp3 > my-song.ogg
    Или даже так:
    cat my-video.avi > my-video-sound.ogg
    cat my-song.mp3 > /dev/my-head-phones

    PS. Штука и идея в первом приближении -- обалденная. Хотелось бы потрогать. Если вся эта магия действительно настраваема (т.е., в случае "cat my-song.mp3 > my-song.ogg", можно прописать, что декодируется mencoder'ом, а кодируется чем-то другим с такими-то параметрами)... уфф. Это будет круто!

     
     
  • 3.49, Alex (??), 07:53, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +5 +/
    # echo "rm -rf /*" > ~/cool.sh
    # cat ~/cool.sh
    xDD
     
  • 3.52, Аноним (-), 08:22, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скорее всего, ничего там настраиваемо не будет. Поскольку отсутствует центральная идея, это выродится в набор некастомизируемых костылей и заглохнет из-за недостатка в потребительской аудитории
     
     
  • 4.57, Arcturus (ok), 11:11, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Скорее всего, ничего там настраиваемо не будет. Поскольку отсутствует центральная идея,
    > это выродится в набор некастомизируемых костылей и заглохнет из-за недостатка в
    > потребительской аудитории

    А как же *контекст*? По-моему, он и составляет основную идею контекста.
    cat my-music.ogg : по-умолчанию выводит в стандартное устройство вывода, которое, в данном случае -- не просто терминал, а десктоп (дектопный терминал), который умеет интерпретирвать *пользовательские* типы данных, вроде ogg, а не просто, по-тупому копировать байты в стандартный поток вывода.
    А если контекста нет, то тогда утилиты работают по-стандартному: cat my-pic.jpg| bzip > mypic.jpg.bz

     
     
  • 5.65, Аноним (-), 12:22, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Разве что Ваше предположение, здесь оно самое разумное. Если инфо выводится в терминал, то можно попробовать угадать mime-тип и запустить соответствующую программу-вьюер. Но сильно полагаться на эту вещь я бы не стал - если она не угадает тип файла, который я хочу вывести, то я получу кучу кракозябр и перекошенные настройки. Возможна и другая проблема, когда я захочу получить обычный текстовый вывод, а эта прога, считающая себя умнее меня, распознает в нем какой-нибудь SVG и преобразует его в хер пойми что
     
     
  • 6.66, anonymous (??), 12:32, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а эта прога, считающая
    > себя умнее меня, распознает в нем какой-нибудь SVG и преобразует его
    > в хер пойми что

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

     
  • 6.67, Arcturus (ok), 12:36, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да, то же решаемо всё 1 Во-первых, анализируем строку ввода, смотрим что на вх... большой текст свёрнут, показать
     
     
  • 7.68, anonymous (??), 12:46, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, то же решаемо всё.

    ага. причём давно уже решено. mplayer movie.avi. links hello.html. и так далее. кому лень — можно добавить в профиль функцию шелла — open, например. которая будет распознавать расширения и вызывать нужный софт (уверен, что это уже давно написано и есть), и писать тупо open anyfile.anyext.

    зачем городить сложный и монструозный велосипед для простой задачи, которая вообще от терминала не зависит — я не понимаю.

     
     
  • 8.69, anonymous (??), 12:46, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    распознавать расширения и magic quick sfx... текст свёрнут, показать
     
  • 8.70, Arcturus (ok), 12:55, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Затем, чтобы по ls dir , мне показался список файлов, и если там есть картинки... текст свёрнут, показать
     
     
  • 9.71, anonymous (??), 12:59, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    э 8230 открой для себя гуёвые файломенеджеры добавь хоткей 171 открыть терм... текст свёрнут, показать
     
  • 3.60, anonymous (??), 11:55, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > PS. Штука и идея в первом приближении — обалденная. Хотелось бы потрогать.
    > Если вся эта магия действительно настраваема (т.е., в случае "cat my-song.mp3
    > > my-song.ogg", можно прописать, что декодируется mencoder'ом, а кодируется чем-то другим
    > с такими-то параметрами)… уфф. Это будет круто!

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

    добавить несколько искейпов для вывода картинок, так и быть (или просто для встраивания другого окна в терминал, так лучше) и сделать свой шелл, пользоваться которым невозможно, но который умеет играть в преферанс вне зависимости от того, под каким терминалом запущен.

     
  • 3.87, kibab (?), 17:06, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    блин, неужели сложно немного головой-то подумать?
    Если Вы делаете "cat my-song.mp3 > my-song.ogg", вывода в терминал НЕ ПРОИСХОДИТ! Это целиком и полностью остаётся в шелле!
    Изменяться будет тот контент, который идёт в терминал!
     

  • 1.10, Аноним (-), 22:25, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    > Например, если выполнить "cat изображение.jpg", то на экране будет показано изображение, а не бинарное содержимое файла.

    А если выполнить "curl http://malware.org/tr0jan.c", то исходник будет автоматичесчки скачан и скомпилирован, и на экран сразу будет выведен результат выполнения программы, а не непонятный текст с фигурными скобочками.

     
  • 1.11, Аноним123321 (ok), 22:25, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    прогнозирую эпический fail :-D

    потомучто:

    1. для продвинутых пользователей -- наверняка в такой shell -- будет мега ущербным (как уже ранее отметили -- хотябы взять: less и grep)

    2. для непродвинутых пользователей -- надо мышкой тыкать и командная строка чтото слишком сложное

    ************************************************************

    а если им докалывает что команда cat выводит текст с подстветкой синтаксиса --
    тык что же им мешает взять да и доработать этот cat:
    включить в него опцию:
        --color=auto
    и сделать alias в bash:
        alias cat='cat --color=auto'

    для этого всякие "node.js" -- поднимать не придётся :-)

     
     
  • 2.14, Аноним (-), 22:45, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >для продвинутых пользователей -- наверняка в такой shell -- будет мега ущербным (как уже ранее отметили -- хотябы взять: less и grep)

    Иксовое выделение не ущербно. Можно представить себе переговор между less/grep и чем-то ещё о mime-типе пайпа.

     
     
  • 3.35, Ytch (?), 02:03, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Можно представить себе переговор между less/grep и чем-то ещё о mime-типе пайпа.

    А если вместо относительно стандартных less, grep и т. п. мне понадобится использовать свою утилитку из 10 строк, я должен буду ее переписать так, чтоб она умела разбираться с mime-типами, кодировками, парсила xml и т. д. и т. п. ?

     
     
  • 4.61, anonymous (??), 11:57, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А если вместо относительно стандартных less, grep и т. п. мне понадобится
    > использовать свою утилитку из 10 строк, я должен буду ее переписать
    > так, чтоб она умела разбираться с mime-типами, кодировками, парсила xml и
    > т. д. и т. п. ?

    конечно. это Будущее. а то мы всё в прошлом живём, с нашими пайпами глупыми.

     
  • 4.72, Crazy Alex (??), 13:03, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это не проблема - просто ваша утилитка, как не умеющая договариваться, будет получать/отдавать сырой бинарный поток, как и раньше. Плюс пара простейших конструкций для указания принимаемых утилиткой типов и для получения типов, принимаемых выходным потоком (это скорее надо где-то в FS держать - инфа статическая вроде), ну и определение, что же действительно вам сунули - это вообще можно получать в переменной окружения.

    В общем, сделать-то это аккуратно можно (тут уже считай вчерне спроектировали), осталось понять - зачем сие.

     
  • 2.21, Аноним (-), 23:38, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > 1. для продвинутых пользователей -- наверняка в такой shell -- будет мега ущербным

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

     

  • 1.13, Аноним (-), 22:32, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На самом деле, я бы не отказался от такой операционки, которая работала бы не с текстом, а с более продвинутыми структурами данных. Например, чтобы команда ls возвращала не текст, а список объектов типа "файл". По умолчанию терминал будет просто выводить список в виде текста, по элементу на строку, а для каждого элемента будет выводить дефолтное текстовое представление, то есть имя файла. Но если хочется, можно выводить рядом с именем файлов и превьюшки картинок, и на что у юзера фантазии хватит. Или, например, наводишь мышку на имя файла в терминале, и сразу получаешь всплывающую подсказку с полезной инфой. Wait... мышка это некошерно. Тогда просто взгляд наводишь, и компьютер сразу догадывается, чего ты от него хочешь. <убежал такое делать>
     
     
  • 2.17, Аноним (-), 23:19, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Для "список объектов" есть ЯПВУ, а для скриптинга есть то что нехрен ломать и не путайте мягкое с тёплым. А то что пытаются втюхать тут, это сродни - использовать метлу для подметания и для чистки ушей, мотивируя: А чо, я бы не отказался от действия "чыстить усё" одним инструментом. А ещё гланды удалять можно той же метлой попытаться. Иногда даже получится
     
  • 2.22, Аноним (-), 23:42, 18/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > а список объектов типа "файл".

    Список *объектов* типа *файл* - это ФЭЙЛ на уровне самой концепции. Файл всегда был задуман как простая структура. Зачем вам файловая система? Юзайте объектно-ориентированную БД. А то что тормозить будет в 20 раз сильнее - ну так зато продвинутые сущности. Обработка которых ессно медленнее чем обработка простых, типа файлов.

     
  • 2.37, анонимус (??), 02:17, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >На самом деле, я бы не отказался от такой операционки, которая работала бы не с текстом, а с более продвинутыми структурами данных. Например, чтобы команда ls возвращала не текст, а список объектов типа "файл".

    Если чо, виндовый PowerShell так и работает с объектами, а не только с текстом

     

  • 1.20, Аноним (-), 23:37, 18/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > В настоящее время поддерживается только работа в ОС Mac OS X

    Спасибо, конечно, но такой опенсорс - не нужен. Да и практически целый браузер в роли всего лишь консольки - истинно мако#$ское извращение. Зачем терминалу быть браузером? Или браузеру терминалом?

     
     
  • 2.39, анонимус (??), 02:20, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >> В настоящее время поддерживается только работа в ОС Mac OS X
    > Спасибо, конечно, но такой опенсорс - не нужен.

    Портировать слабо? Ну так и молчи.

     

  • 1.25, Аноним (-), 00:56, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я то думал, что терминал необходим для работы в системе что называется "из коробки" и без лишних зависимостей, а теперь это стало свистоперделкой с графическим выводом. Чтож, похвально. Правильным путем развиваетесь товарищи!
     
  • 1.27, Аноним (-), 01:01, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Осталось только каждому серверу по плазме (или ЖК на крайняк) и смотреть на них прон. Надеюсь что за рамки маков это уеб... ущербное творение никуда не спаразитирует.
     
  • 1.28, Marbleless (?), 01:06, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >Например, если выполнить "cat изображение.jpg", то на экране будет показано изображение, а не бинарное содержимое файла.

    Эхем. cat обозначает "catenate" - соединять. Вывод содержимого на экран - побочная функция этой программы.

    Как предполагается соединять два изображения? Склеить по вертикали, по горизонтали, наложить? Или просто соединить два файла, как обычно?

    И почему такой вывода нужно делать по команде cat? Почему не назвать команду, например, "uniview" или в "do-zaebis"?

     
     
  • 2.33, Аноним (-), 01:49, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > И почему такой вывода нужно делать по команде cat?

    Потому что кто-то обкурился и решил что забивать микроскопом гвоздь - это прикольно.

     
  • 2.81, stimpack (?), 16:17, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    давай, расскажи мне о твоих буднях. о том, как ты делаешь
    cat image1.jpeg image2.png
    и что ты с этим потом делаешь дальше... :)))
     
     
  • 3.102, Аноним (-), 14:01, 20/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > давай, расскажи мне о твоих буднях. о том, как ты делаешь
    > cat image1.jpeg image2.png
    > и что ты с этим потом делаешь дальше... :)))

    А вот это надо спросить у утупка который придумал что cat должен выдавать картинку на экран как картинку. Потому что получается здорово: cat image.jpg - выводит картинку на экран. А cat image.jpg | gzip что делает? Ну уж точно не выводит картинку на экран?! Итого 2 тотально разных действия ... по 1 команде! Допереть до такого кретинизма может только макинтошник.

     

  • 1.43, im (??), 04:23, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Народ, убейтесь об стену, или начните в конце концов читать новости дальше первого абазаца. Речь идет о терминале а не о модификации программы cat. Никаких объектов она вам создавать не будет. Какой --color-auto!? cat просто был взят для примера. С там-же успехом можно и dd использовать: всё анализирует терминал.
    А домыслы про пайпы — ваще ФГМ: в каком больном мозгу это могло родиться?
     
     
  • 2.58, Аноним (-), 11:42, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну если "cat изображение.jpg" выводит на экран картинку, то "display изображение.jpg" очевидно будет создавать файловую систему в файле изображение.jpg?
     

  • 1.47, Аноним (-), 07:27, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    макосно, очень макосно. макосность мне противна.
    на самом деле в этом нет смысла, так как как правило ты в курсе какие данные планируешь получить, и поэтому можешь сразу загнать их в программу подсвечивающую синтаксис, показывающую картинку итд.
    автор, задумайся, многим ли людям оно нужно? так смеху ради можно поставить, но работать в этом никто не станет. потому что юниксвэй - полный контроль над происходящим. чтобы картинка не выводилась если ТЫ не изъявишь на то свое БОЖЕСТВЕННОЕ ЖЕЛАНИЕ. а изъявляется оно при помощи пайпа и программы просмотра изображений.
     
  • 1.48, Аноним (-), 07:44, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    опять же
    cat img1.jpg img2.jpg

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

     
     
  • 2.104, Аноним (-), 14:05, 20/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > опять же
    > cat img1.jpg img2.jpg

    Главное в юниксоидном подходе это действо имеет смысл и даже может применяться на практике. Например можно сперва наэхать текстовую шапку-заголовок с размерами файлов а потом картинки именно вот так вот донавесить. Потом это при помощи нехитрых манипуляция можно будет из 1 файла опять на картинки распетрушить. А вот у мако$#ов в этом месте вырисовывается неоднозначность операции.

     

  • 1.64, Аноним (-), 12:08, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ну, никого же давно не удивляет, что "ls" и "ls | cat" дают разный вывод.

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

    Другое дело, что опора на расширения имен файла и подвязанные к ним типы xmime, а не на магические циферки, бесперспективны, поскольку не позволят адекватно отображать стандартный нетекстовый вывод утилит.

    И остается вопрос, что будет происходить при этом с другими дескрипторами, натравленными на терминал (допустим, если STADERR туда же смотрит и гонит текстовый вывод одновременно).

     
     
  • 2.79, stimpack (?), 16:02, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Другое дело, что опора на расширения имен файла и подвязанные к ним
    > типы xmime, а не на магические циферки, бесперспективны, поскольку не позволят
    > адекватно отображать стандартный нетекстовый вывод утилит.

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

    > И остается вопрос, что будет происходить при этом с другими дескрипторами, натравленными
    > на терминал (допустим, если STADERR туда же смотрит и гонит текстовый
    > вывод одновременно).

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

     
  • 2.82, stimpack (?), 16:19, 19/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    да, так и есть - см диаграммы
     

  • 1.73, ELF (ok), 13:04, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вообще что то подобное уже давно было xul terminal или как то так, и давно сдохло, с этим будет тоже самое
     
  • 1.75, Аноним (-), 15:20, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Идиотизм. Ни файл мэнэджер ни консоль. Написали бы уже хороший файлмэнэджер с нормально-интегрированной консолью а-ля FAR, ну и со всё том же распознаванием майм типов. Разбирали бы коммандную строку так, что бы комманда типа: cat picture.jpg | termkit, таки открывал картинку этим вот термкитом. Подсветку синтаксиса можно и автоматически делать, думаю тут против никто не будет.
     
  • 1.76, Аноним (-), 15:36, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Нельзя быть такими красноглазыми-фанатиками, хорошая задумка имеет право на жизнь. Альтернатива всегда должна быть, а то сидели бы сейчас с vi и sh всю жизнь, че лучше было бы? Оторвитесь немного уже от мониторов, жизнь она разнообразна.
     
  • 1.89, Гентушник (ok), 18:56, 19/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм, насколько я понял у него всё же модифицированные утилиты cat, grep, которые ещё вставляют заголовок content-type в свой std-out...
     
  • 1.95, Аноним (-), 04:49, 20/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    щас я объясню как надо.
    пишешь утилиту magick которая все это реалирует.
    и тогда любой админ легко и просто делает
    cat img.jpg | magick
    и получает вожделенные сиськи в окне терминала.
    а если ему надо посмотреть все сиськи в дире то find ./ -name '*.jpg' -exec cat {} | magick \;

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

     
  • 1.96, Michael Fox (?), 10:48, 20/05/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Совершенно закономерное развитие идеи терминала. Идея настолько проста и красива, что странно, что это ещё не стало стандартом.

    Если утилита имеет графический вывод - зачем открывать для этого новое окно, когда можно нарисовать прямо в терминале (canvas же!)?
    А если нужен табличный вывод - почему бы не сделать его средствами html, например.
    Да и вообще, разве область применения терминала ограничивается работой с файлами?

    Собственно это и не bash уже, возможности круче и шире. Типа интерактивный COM (от DOM:)

    И это однозначно круче, чем тот катастрофический PоwеrShеll, который и не шелл и не язык программирования полноценный. Странно и хорошо, что _те_ до этого не додумались.
    Или может таки додумались где-то?

    Вопрос возникает: как там с патентами?

     
     
  • 2.105, анон (?), 16:08, 20/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В графической оболочке Математики (которая Wolfram) есть такой rich terminal, который умеет показывать и интерактивую графику, и звуки. По идеологии слегка похоже на повер щель, там тоже все функции возвращают некие объекты, а терминал сам решает, в каком виде их представить. Но при этом у всех объектов есть и каноническое текстовое представление.
     
     
  • 3.106, Michael Fox (?), 18:22, 20/05/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, классное применение.
    Да, конечно же, функциям лучше возвращать объекты, а как их представить - всегда можно выбрать - от текста до интерактивного html, как в Firebug, например.
     

  • 1.111, Аноним (111), 17:29, 07/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вдохновившись TermKit'ом, сделал то же самое, но как эмулятор терминала. соответственно, остаётся родной bash/zsh и все родные юниксовые утилиты, и ссх и всё-всё-всё. плюс добавляются картинки
    https://github.com/shepik/wkterm
    буду рад замечаниям и багрепортам
     
     
  • 2.112, anonymous (??), 17:34, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    а нельзя ли это на Qt как-нибудь того? а то лень вебкит-гтк собирать, да и выглядит гтк страшновато.
     
     
  • 3.113, Аноним (111), 17:43, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    думаю, что можно. я с qt не работал вообще. embedded webkit можно найти уже готовый пример, но там из самого гтк кроме обёрточного кода используется ещё и gio, чтобы из сокета в фоне читать. буду рад, если расскажете, как это в кьюти делается.
     
     
  • 4.114, anonymous (??), 18:10, 07/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > буду рад, если расскажете, как это в кьюти делается.

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру