LINUX.ORG.RU

Многие любят ругать cmd.exe, но…

 , , , ,


1

1

У него есть киллер-фича, которая лежит буквально на самой поверхности!

https://pic4a.ru/110/T42.png

Которые из линуксовых эмуляторов терминала такое умеют: выводить выполняющуюся сейчас команду в заголовок? Мы встречали от силы, как такое костылями прикрутить ко внутренней переключалке окон tmux. Может, так умеет ZSH? https://github.com/trystan2k/zsh-tab-title — повод перейти наконец на него с Bash, хехе.

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

И заодно — есть под онтопик максимально совместимый аналог dfhl.exe? (А то гонять для этого машину с оффтопиком как-то некузяво, хоть и нагружать основную тоже.) Чтобы автоматически находил дубликаты и сливал их в хардлинки к одному файлу. Желательно даже, чтобы умел сравнивать не все файлы со всеми подряд, что долго и Нам не нужно — а просто zip-ать попарно дерево директорий с деревом директорий, они в целом одинаковые. Проще самим написать, по ходу.



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

кроме бесполезных свистоперделок

Смешно видеть подобное утверждение в треде о свистоперделках от самого же топикстартера. ☺

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

Кстати, в xfce, в настройках терминала, есть опция «Автоматически копировать выделение в буфер обмена».

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

Шелл удобен.

Расписываете, как шелл неудобен, а потом перечёркиваете и без аргументов пишете, что удобен. Браво.

стандартизированный выхлоп чего-то вроде myprogram –help=machine-readable

Это да. Когда продумывали, как бы сделать визуальный шелл — пришли к выводу, что надо как-то все возможные аргументы узнавать в машинночитаемом формате.

Загвоздка-то в том, что это традиционно не нужно: для машин делаются API на вызовах функций и методов, а аргументы командной строки — для людей.

А надо новый язык с нуля придумать

xkcd_про_стандарты.жпг

не вызываешь grep, чтобы профильтровать. Ты пишешь что-то вроде stream.filter(x =~ /str/)

Два варианта того же самого. Что Вы хотите-то? Хотите начхать на юниксвей и запихать все эти функции в шелл? Мало жирного Bash, надо ещё более огромного монстра выродить? Но ведь PowerShell уже есть.

perl умер

4.2.

Более того, у него настолько шустрый интерпретатор с мизерным временем холодного старта, что его и в шелл-пайплайнах вполне используют, когда не хватает возможностей простых инструментов, самого шелла и даже AWK. В отличие от тех же Ruby/Python/Node.JS.

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

Действительно.

hardlink traverses one or more directories

Мы-то думали, Вы об ln.

Но вышеупомянутый fdupes всё равно круче :P

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

Примерно такая же «народная» сборочка Emacs, в которой всё наглухо переопределено и стопицот плагинов на каждый чих. У хипстеров с макпуками не тормозит, зато им удобно и RSI не развивается.

Или ещё можно сравнить с «народными» модами на S.T.A.L.K.E.R. гигов на 20. Впрочем, S.T.A.L.K.E.R. 2 наверняка в разы жирнее будет.

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

нету

Под иксами испокон веков для такого случая работало зажатие ЛКМ+ПКМ одновременно.

mertvoprog
() автор топика

Перешёл на Мак ос - там дефолтный эмулятор терминала даёт фору всем перечисленным

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

О чём и речь. Это ж совсем недавно запилили, майки недавно бравировали: вот, теперь у нас можно запускать линуксовый софт, линуксоиды, вернитесь, позязя! :3

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

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

Скорее всего данную подсистему пора менять. Функциональные возможности терминалов двадцатилетней давности и ныне, сильно разнятся …

В старых терминалах действительно была необходимость в эмуляции нажатие клавиши или нескольких клавиш.
Ныне разве такие терминалы кто-либо использует?

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

А iTerm2 тогда вообще превышает четвёртую космическую?

Или он уже сдох? 6 лет вживую макось не видели.

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

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

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

Могут. Мы и сами так делаем, назначая разным вкладкам эмулятора терминала заголовки вручную:

root@localhost:~# cat /usr/bin/title
#!/bin/sh
echo -ne "\e]2;$1\a"

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

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

теряешься в чужой логике настроек

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

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

портянку из десятка bash · bash · bash · bash · bash · bash · bash · bash · bash · bash

У тебя была здравая мысль в ОП, но ты ей почему-то не воспользовался. ^_~

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

Представь что будет с заголовком, если несколько команд выполняются в цикле! :)

Могут. Мы и сами так делаем, назначая разным вкладкам эмулятора терминала заголовки вручную:

Прекрасно.

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

Расписываете, как шелл неудобен, а потом перечёркиваете и без аргументов пишете, что удобен. Браво.

Удобна концепция shell-а, как REPL-а. Поэтому отказываться от него я не хочу.

Два варианта того же самого. Что Вы хотите-то? Хотите начхать на юниксвей и запихать все эти функции в шелл? Мало жирного Bash, надо ещё более огромного монстра выродить? Но ведь PowerShell уже есть.

Для работы со строками не нужен монстр. Монстр это когда для простейших строковых операций приходится запускать доп-процессы.

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

Ну кагбэ чтобы отслеживать это — в принципе нужны бьющие по производительности костыли. Тупо по таймеру отслеживать дерево дочерних процессов шелла, например. Эмулятор терминала же с шеллом глубоко не взаимодействует, как он должен знать, когда шелл что запускает?

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

как REPL-а

Ну так и пользуйте REPL. У него свои задачи. Явно не портянки-однострочники писать.

Монстр это когда для простейших строковых операций

Вы зажрались просто, и уже кажется, что они «простейшие».

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

«Простейшие» в Bash и так уже есть, ${parameter##word} и иже с ними. Но даже это дохреновато.

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

Так выше уже расписали, что с Bash так можно тоже.

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

Как вариант, да, на одну (длинную) команду, включая возможные циклы, одну смену заголовка.

При этом может получиться фигня, скажем со "sleep 1; программа".

alfix
()
Последнее исправление: alfix (всего исправлений: 2)
Ответ на: комментарий от mertvoprog

Вот поэтому и не озолотились, ибо костыли.

На git'е пустой Issues, не нашлось желающих даже попробовать — мало кому нужно.

прочие красивые статусные строки

Это что, тоже есть в cmd.exe?

Или вывести широкий символ, что разные терминалы обрабатывают по-разному:

При чём тут разные терминалы? Речь шла конкретно про xterm. Вы же не привели кучу разных терминалов под винду, чтобы требовать этого от кучи разных терминалов под X-ами.

TUI-приложение перехватывает клики

Именно, что TUI-приложение, там особо и не надо копипастить. А командная строка для вызова скриптов/команд и копипасты их выхлопа.

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

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

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

Самый бесполезный лоровец

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

мало кому нужно

Или просто пиар-компании толковой не было?

Это что, тоже есть в cmd.exe?

Это есть в TUI-приложениях, которые под ним запускаются. При чём здесь cmd.exe-то?

Речь шла конкретно про xterm

И что, шеллы прибиты гвоздями к xterm?

Вы же не привели кучу разных терминалов под винду

Так их и не было, пока в дриснятку не завезли Terminal. Васянские использовали лютые хаки, выводя в штатном где-то далеко в отрицательных координатах за пределами экрана.

там особо и не надо копипастить

Надо. Вот например, адрес страницы из elinks скопировать.

Какой сакральный смысл постоянно набирать портянки такой длины, а не создавать файлы?

В том, что она одноразовая.

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

там особо и не надо копипастить

Надо.

Shift-select во всех терминалах работает. Ты, похоже, вообще линукс никогда не использовал? Зато сколько срача нагородил!

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

Просто выжил из них только линукс и всё это унаследовал.

Вопрос, нахрена эту ахинею с конфликтующими шорткатами запихали в чисто Linux’овые KDE и GNOME, в которых удобные Ctrl+C/Ctrl+V скопировали из Windows. Нужно было либо «крестик» – сделать Ctrl+Shift+C/Ctrl+Shift+V и для буфера обмена тоже, либо «трусы» – сделать в терминалах удобное копирование текста стандартными хоткеями, как в той же macOS или Haiku сделано, а для legacy-наследия UNIX использовать что-то другое.

и всё это унаследовал.

А должно это было помереть вместе с «едиными» X11 десктопами, как тот же CDE. Разработчики дистрибутивов Linux решили затянуть корпоративную каку выкинутую на помойку себе в систему и последствия их решения до сих пор разгребают.

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

Или просто пиар-компании толковой не было?

Не было, даже желающих пиарить (бегать с issue по разным репозиториям) не нашлось.

И что, шеллы прибиты гвоздями к xterm?

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

Tested on xterm and: alacritty, kitty, gnome-terminal

слушать рассуждения, что в эмуляторе терминала XYZ что-то работает криво мне не интерестно.

Надо. Вот например, адрес страницы из elinks скопировать.

Слово «особо», как понимаю, специально пропущено. Я утверждал, что из всяких TUI копипасть приходится меньше, чем из терминала, поэтому для TUI приемлемо зажимать shift, а для терминала нет. Иногда приходится работать тачпадом, там в целом неудобно, а с зажатым shift ещё напряжнее.

В том, что она одноразовая.

Одноразовая команда набирается при HISTCONTROL=ignorespace и начинается с пробела. Поэтому в историю не попадает и проблем с редактированием нет :)

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

mky ★★★★★
()

Чтобы автоматически находил дубликаты и сливал их в хардлинки к одному файлу

rdfind -makehardlinks true .
i-rinat ★★★★★
()
Ответ на: комментарий от mertvoprog

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

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

Shift-select во всех терминалах работает

Действительно, работает, хехе.

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

из Windows

Из IBM CUA.

а для legacy-наследия UNIX использовать что-то другое

Что?

Разработчики дистрибутивов Linux решили затянуть корпоративную каку

Типа линукс — не корпоративная кака, ага. И каковы варианты-то были?

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

Не было

Тогда и претензии неуместны. Вот Мы только от Вас и узнали. С чем бегать-то? :P

корректно поддерживает мышь

Либо предсказуемо отдаёт координаты для широких символов.

xterm в них тупо не умеет, посему и претензия нерелевантна, ага.

Одноразовая команда набирается при HISTCONTROL=ignorespace и начинается с пробела. Поэтому в историю не попадает и проблем с редактированием нет :)

А для остальных, что ли, допустимо плодить кучу файликов с небольшими изменениями относительно друг друга?

mertvoprog
() автор топика

Шелл ничего не должен делать, кроме интерпретирования выражений и конструкций своего языка (при наличии), command.com очень примитивный шелл и далеко не все однострочники с пайпами бы во первых влезли или отобразились верно в заголовке cmd.exe, во вторых, до отправки ньюлайном строки в шелл о ней знает лишь интерпретатор – а хороший шелл не должен знать о средствах ввода вывода и где он используется: в виртуальном терминале, настоящем телетайпе, эмуляторе или где-либо еще, по очевидным причинам, в первую очередь переносимость и скрытые специфичными настройками окружения ошибки. В третьих, практически во всех эмуляторах, которыми доводилось пользоваться, включая сигвиновский mintty есть возможность задать формат строки для вывода заголовка окна эмулятора терминала – обычно это имя программы (%n в Konsole). В четвертых, я устал ждать повод получить третью звезду, так что поздравляю себя.

mazdai ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.