LINUX.ORG.RU
ФорумTalks

Не сломалось — не чини. Очередное свидетельство неадекватности многих линукс-админов.

 , ,


1

1

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

Ок, посмотрел как это делается. И как мне теперь это развидеть? Вот тривиальный пример:

$ export PS1="\e[0;31m[\u@\h \W]\$ \e[m "

Почему это уродство вообще существует? Почему никто не возражает? Не сломалось ещё? А мне кажется сломалось. Мозги у админов сломались. Такой формат конфига просто не имеет права на существование. Это дно. Абсолютное.


Ответ на: комментарий от gremlin_the_red

сломает совместимость

ТС вместо того чтобы стонать мог бы запилить интерпретатор чего-то такого в последовательности терминала. На базе termcap, например.

И сделать

PS1 = `supercoolterm "..."`
no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от TolkoSprosit

Ты зря смеёшься: во времена CRT мониторов жёлтые литеры на синем фоне были весьма распространены. Это весьма контрастное и не выедающее глаза сочетание цветов.

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

PS1="{BACKGROUND_COLOR:BLACK}{FOREGROUND_COLOR:GREEN}{USER}@{HOSTNAME} …

Вообще-то в Bash-е есть такая штука как переменные. И им можно присваивать всякие значения - например, в /etc/profile или в ~/.profile. Так что, не никакой необходимости придумывать всякие плейсхолдеры. Если кому нужна наглядность, могут сами себе добавить, что нужно.

vinvlad ★★
()

Логичный и понятный формат. В любом случае, вы, сударь, вольны сделать свой и представить на рассмотрение сообществу.

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

usb-кассы

Потому что до этого были кассы работающие по RS232, и софт видимо остался в наследство от них.

Meyer ★★★★★
()

Что именно ты собрался развиживать ?

Естественно что для того чтобы изменить цвет - нужно получить тег. Терминал - это не программа konsole. Терминал - это метод. Подключаться к нему ты можешь не только запустив эмулятор терминала и баш (либо ssh и баш), а еще и подключившись по трем проводам через com-порт к железки (и с железки тоже), у которой даже видеокарты нет.

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

Никогда не пробовал передать в скайпе (как минимум раньше) какой-нибудь пароль, например 126:D17 ? Сильно понравится когда твой клиент получит «126».«ржущий смайлик».«17» ?

Вот и мне как админу не понравилось бы редактировать текст, половина которого цветом форграунда, а вторая половина зеленая, потому что в тексте попалось шота типа [green]

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

А ты не хочешь отойти вообще от концепции телетайпа? Ну там коды управления и настройки передавать отдельными пакетами?

Терминал - это метод.

?

Usruser
() автор топика
Ответ на: комментарий от goingUp
# Это прячем где-нибудь в ~/etc/profile.d, чтобы ТС не видел
green="\[\033[0;32m\]"
blue="\[\033[1;34m\]"
magenta="\[\033[0;35m\]"
cyan="\[\033[0;36m\]"
bold="\[\033[0;01m\]"
normal="\[\033[00;00;00m\]"
red="\[\033[0;31;01m\]"
user="\[\u\]"
host="\[\h\]"
path="\[\w\]"

begin() {
  echo -n "┌┤"
}
 
minus(){
  echo -n "├"
  MINNUMB=$[$COLUMNS-${#DIRSTACK}-${#USER}-${#HOSTNAME}-8]
  for i in `seq $MINNUMB`
        do echo -n "─"
  done
  echo -n "┤"
}
 
end() {
  echo "├─"
  echo -n "└─> "
}
 
if [ $UID == 0 ]
  then ucolor=$red
  else ucolor=$blue
fi

# Это оставляем ТСу.
PS1="$cyan\$(begin)$green$path$cyan\$(minus)$ucolor$user@$host$cyan\$(end)$normal"
#=================
shell-script ★★★★★
()
Ответ на: комментарий от shell-script

«Не фонтан», но намного лучше. Такие мелочи важны. Уже можно что-то настраивать не боясь всё расхреначить незаметной опечаткой.

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

А ты не хочешь отойти вообще от концепции телетайпа? Ну там коды управления и настройки передавать отдельными пакетами?

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

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

«Не фонтан», но намного лучше. Такие мелочи важны. Уже можно что-то настраивать не боясь всё расхреначить незаметной опечаткой.

То есть ты ниасилил АЛИАСЫ ?)

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

У тебя последовательное соединение

По которому ты можешь передавать что хочешь и как хочешь. В том числе и пакетами. То, что для электроники 60-70х было проще передавать один байт и сразу принимать по нему какое-то решение не значит что сайчас нужно делать так же.

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

Да, но это же надо переменным присвоить значения. А ты видишь, как полыхает нижняя часть топикстартера от одного вида этих значений?

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

PS1="{BACKGROUND_COLOR:BLACK}{FOREGROUND_COLOR:GREEN}{USER}@{HOSTNAME} {FOREGROUND_COLOR:BLUE}{WORKING_DIRECTORY_WITH_TILDE} {ROOT_FLAG}"

Неплохо. Ещё бы в xml обернуть и в отдельный файл.

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

Хорошо, ты жалуешься что «такой формат конфига не имеет права на существование». Можешь написать, как в твоем представлении должен выглядить идеальный конфиг для изменения цвета PS1?

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

прячем где-нибудь в ~/etc/profile.d

Да! Всего полсотни строк для настройки промпта. Ещё темы надо прикрутить.

bread
()

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

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

По которому ты можешь передавать что хочешь и как хочешь. В том числе и пакетами. То, что для электроники 60-70х было проще передавать один байт и сразу принимать по нему какое-то решение не значит что сайчас нужно делать так же.

Передавать ты можешь что угодно, но каждый принятый байт будет выводиться на консоль по мере его получения, сдвигая курсор вперед, или вниз. В этом и суть ТЕРМИНАЛА.

В свою очередь, если система станет работать так как хочешь ты, пакетами - это поломает сам принцип работы Linux, скрипты, программы stdin\stdout и прочая. Ты не сможешь к примеру сделать tail -f /dev/ttyUSB0, потому что твой tail в душе не гребет, КОГДА конец пакета и пора выводить данные на экран.

Ты не сможешь подключиться к удаленным серверам через KVM, iLO, потому что они будут к примеру ожидать твой пароль «123» в текстовом виде, а получат «[packet_start color=red mode=plain_text text_begin 123 text_end packet_end]»

Проблема цвета в терминале не настолько критична, чтобы ради нее уронить весь Линукс =)

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

Плохо то, что некоторые хватаются за это неидеальное решение, объявляют его идеальным и ничего не хотят менять. Десятилетиями.

Ты ещё к ширине железнодорожной колеи домотайся.

imul ★★★★★
()

Это всё делалось в 70-х годах, вполне нормально. А то что 50 лет прошло - ну кушайте что дают, оно там всё такое, до PowerShell как раком до Китая.

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

Добро пожаловать в реальный мир. Для того, чтобы ты прочитал моё сообщение здесь на лоре нужны тысячи строк. А для того, чтобы ответ жабаскриптом отобразился, нужен ещё и spidermonkey, который в зависимостях при компиляции пару ЯП тянет.

Каждая кнопка «Сделать круто!» тянет за собой кучу абстракций.

shell-script ★★★★★
()
NORMAL="$(echo -e '\033[0;39m')"
BLUE="$(echo -e '\033[1;34m')"
CYAN="$(echo -e '\033[1;36m')"
GREEN="$(echo -e '\033[1;32m')"
MAGENTA="$(echo -e '\033[1;35m')"
RED="$(echo -e '\033[1;31m')"
YELLOW="$(echo -e '\033[1;33m')"
echo "this text is ${BLUE}red${NORMAL}"
PerdunJamesBond
()
Ответ на: комментарий от shalom_

И как же задаются цвета в PowerShell? Я задавал через те же последовательности.

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

он как раз мне накаксал в комментах, что всех, кто следует принципу «не сломалось - не чини», нужно гнать из профессии

Странно, а со мной он постоянно исходил на г-но спорил с совершенно противоположной точки зрения.

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

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

Ну вот нет. Мне кажется потоковость в рамках ssh уже несколько устарела. Мы так или иначе пользуемся mc/vim/less и подобными историями, которы это мешает. Не даром появился mosh, который по сути дифы экрана гоняет.

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

я видел очень интересный ролик, где бралось ретро оборудование из 80х и подключалось через lpt (?) к современному оборудованию. деталей не помню (надо было сохранить!). но на что я обратил внимание: поскольку скорость передачи была очень низкая (байты в секунду, даже не сравнить с задержками wifi), то все проблемы современных cli приложений вылезли на примере tmux. курсор двигался очень неэффективно перерисовывая пустые части экрана по минуте.

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

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

Админы-то тут причём? Это какерствующие диды-юниксодевелоперы высрали ещё в прошлом тысячелетии.

Вот все те, кто боготворит Shell, SysVInit, X11, make, autotools и прочий хлам состоящий из подобных mindfuck’ов и ответственны за распротранение подобного дерьма в современном ПО. Только в последние годы это стали хоть как-то разгребать, приводить в порядок и чистить. Как в Linux’ах, так и в macOS, кстати.

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

и приводить в порядок.

это типа как VAX привели в порядок и получился NT, а затем windows vista, vindows 8, windows 11... ну че... впереди у тебя светлое будущее.

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

Во-первых, очевидный факт, который ты как-то упустил: потоковость устареть не могла, потому что сетевое соединение само потоковое. Всё, что гоняется по сети, так или иначе потоковое. И твои диффы из mosh тоже.

Только вот насчёт mosh и диффов ты опять упустил но уже более тонкие детали. Во-первых, mc и без mosh-а гоняет диффы свом tui-движком (ncurses наверно но я не уверен). Во-вторых, mosh на мой взгляд неудобный, вот почему (не говоря уже о сомнительном транспортном решении но это другая тема): в то время как обычно диффы делаются синхронно и приложение само знает где что можно (например пропустить пачку быстрых изменений статуса текущего копирования, если они не лезут в выводной буфер) а где нет, в mosh они асинхронные и теряют полезные данные (самое очевидное - историю вывода какой-нить простыни в консоль). Ну и в-третьих, less работает намного эффективнее чем диффы, у него есть нативная vt100 команда скролла экрана (и вверх и вниз) - перерисовываются только строки, которые новые вылезли в зону видимости.

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

это типа как VAX привели в порядок и получился NT, а затем windows vista, vindows 8, windows 11… ну че… впереди у тебя светлое будущее.

Именно так, VAX/VMS привели в порядок и получился вполне себе неплохой NT Kernel, который распространился по всему миру (PC, XBox, смартфоны, сервера и пр.) гораздо больше чем сам VAX/VMS.

Есть распространение == есть жизнь (Windows).
Нет распространения == смерть (OpenVMS).

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

да, я помню, что ты «оборотень в погонах»=) т.е. линукс программер, но обожающий другие ос, как поттеринг.:) и вопрос не в том, что юниксы устарели или они не нуждаются в развитии. проблема в том развитии, которые вы предлагаете. вы как тот завод, который умел выпускать только жигули. зачем вы все хотите свести к одним и тем же принципам? не нужно «все приводить в порядок» таким образом. есть другие пути развития. и сегмент массовых ОС - это не единственный путь. многие революционные идеи родились именно в особых случаях, типа план9.

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

Вот все те, кто боготворит Shell, SysVInit, X11, make, autotools и прочий хлам состоящий из подобных mindfuck’ов и ответственны за распротранение подобного дерьма в современном ПО.

Нет. За распространение ответственны быдлокодеры которые могут вывод текста на экран сделать через system("echo 123");, они при этом ничего не боготворят а просто делают как умеют. И не надо в один список кидать разные вещи. autotools очевидная помойка, make некрасивый но сойдёт (сам не пользуюсь, но подумываю), shell и x11 сами по себе вообще нормальные штуки, sysvinit устарел концептуально но предлагаемые так называемые альтернативы в виде systemd хуже него, поэтому лучше уж молиться на sysvinit.

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

в добавок к предыдущему, я посмотрел презентацию mosh. выглядит сложнее, чем то, что есть, но решает ряд проблем и я не вижу конфликта с UNIX way. т.е. выглядит приятно. хотя судя по последним новостям в 2017 это так и осталось невостребованным, потому что это нельзя прозрачно внедрить (ssh не поддерживает из коробки).

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

Вот все те, кто боготворит Shell, … и ответственны за распротранение подобного дерьма в современном ПО

Вы по своему менталитету чем-то напоминаете тех жителей Нью-Йорка, которые тоннами выбрасывают в мусорные баки абсолютно нормальные продукты питания, просто потому-что они денек пролежали на прилавке. Это всё от зажратости… Каждому такому транжире траффика надо раз в сто поднять плату за интернет - и чтоб никакого безлимита ) И за электроэнергию тоже.

Вот мне иногда приходится админить удаленные сервера на 56-ти килобитах. И я очень даже доволен всем тем, что вы все так ненавидите. Причем, вам всем - придуркам - это ведь ну абсолютно не мешает! Тоже мне, млин, революционеры… Вот вам сейчас резанут траффик, посмотрим как вы визжать будете.

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

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

Ну это слишком категоричное утверждение. mc сделан как не потоковая, а оконная среда, где нужна либо перерисовка по кадрам, либо векторность (PostStrypt), либо дифы. Аналогично тмух, вим и все остальное.

Но если пользоваться теми же тулзами, что во времена телетайпов, т.е. ls, cat, ed, то все застегивается.

Т.е. проблема не в говнокоде, а в процессе взаимодействия с терминалом.

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

Т.е. проблема не в говнокоде, а в процессе взаимодействия с терминалом.

в случае с tmux я видел последовательное движение курсора, скажем, с позиции n до n+80. при том, что под ним ничего не менялось. разве мы не можем сразу вывести курсор в позицию n+80?

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

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

crypt ★★★★★
()

<спецсимволы начала форматирования (\e[)><цвет текста/фона/жирное/нормальное начертания и тп>какой-то текст<сбросить форматирование>

tz4678 ★★
()

Почему это уродство вообще существует? Почему никто не возражает?

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

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

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

Обязательно с домино и куртизанками.

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

Ну сделай идеально. Или не мужик?

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

Разработай формат, предложи патчи для популярных эмуляторов терминалов что-бы они помимо стандартного подхода ещё могли бы парсить по твоему, удобному и хорошему. Да так что-бы не сломалось ничего ни у кого. Если у людей от этого будет больше пользы чем проблем то это станет популярно и спустя век стандартом де факто как стандартом стало то что сейчас есть. Пока не выйдет кто-то и снова скажет «Почему это уродство вообще существует? Почему никто не возражает?» предложив своё решение или хотя бы его набросок. Возмущать волны можно сколько угодно, а уточка как плавала так и плавает =)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от bread

Ещё бы в xml обернуть и в отдельный бинарный файл.

Стоп. Кажется такое уже где-то было.

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

Плохо то, что некоторые хватаются за это неидеальное решение, объявляют его идеальным и ничего не хотят менять. Десятилетиями.

Ты ещё к ширине железнодорожной колеи домотайся.

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

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