На остановке Симоняка. Автобус, ждет, когда леди лет 55 добежит до автобуса, та на бегу докуривает цигарку (другим словом просто не описать), успевает бросить окурок в урну, забежать в закрывающиеся двери, приложить карточку к валидатору и с раскрытым смартфоном плюхается на первое свободное место. (С)
Сервер Windows и Linux по количеству инструментов администрирования
У меня с товарищем вечный спор между консолью и окошками.
Но я не привык писать голословные статьи без объяснения происходящего и не подкрепляя сказанное в статье картинками или кодовым выводом. Поэтому данное сочинение является предварительным обобщением на тему разницы в подходе к администрированию серверов.
Сразу оговорюсь, что для меня это мой личный блог, который вы читаете прямо сейчас. Он работает на сервере, который играет роль подопытного кролика. Я на нём реализовываю свои проекты и отрабатываю навыки работы с Linux. Он для меня удобен, потому что где бы я ни был, я могу к нему подключиться и проверить работу своих идей на живой машине с любого устройства.
Всю свою сознательную жизнь я учился создавать всего лишь веб-сервера для того, чтобы отрабатывать какие-то лично мне необходимые навыки в php, js и html. Но попутно я научился тому, что я могу создать сервер для организации личных сервисов, доступных, как через браузер, так и из мультимедиа-программ, и, что очень важно, к серверу документов. И я могу работать со своими проектами точно также, как с документами гугла, с той лишь разницей, что у меня всё это хранится у меня дома, или на моём VPS где-то в дата-центре.
Общее впечатление таково. Используя всего один инструмент в Linux мы можем настроить всё что нам нужно так, как нам нужно. И у нас существует всего два стандарта управления: стандарт RedHat и Debian.
Windows server предлагает нам для каждого сервиса свой инструмент. Реализация этих инструментов зачастую разная.
А пост-фактум таков. Зная серверный Linux ты знаешь и владеешь информацией о протоколах, системе, сервисах, имея только командную строку и текстовый редактор.
Зная серверный Windows ты знаешь кучу инструментов, но ничего не понимаешь ни в стандартах, ни в протоколах, ни о системе.
Вот и весь сказ.
Метро для данных
Я уже создавал пример туннелирования данных для XRDP. Настало время упростить способ подключения и выполнять его нужно из операционной системы windows 10. Для Linux я напишу отдельную статью, потому что принцип схожий, но всё равно там это делается иначе.
Вызывать cmd и писать команду, имея возможность создания скриптов, или в терминологии windows — пакетных файлов и не пользоваться ими это знак дурного тона, потому что мы ориентируемся на низшую форму существования пользователя — который хочет тыкать кнопки и ничего больше не уметь.
На самом деле незнание или нежелание знать не является причиной невежества. Кому интересно всё равно изучит, кому нет, всё равно придётся, в крайнем случае заплатить миллион за копеечную работу мозгом.
Поэтому откроем любой текстовый редактор (например geany) и запишем следующие строки:
start %windir%\system32\mstsc.exe -- запускает клиент RDP на локальном компьютере
@ssh -L PORT_LOC:192.168.55.1:PORT_REM_NAT -p PORT_SSH username@rem_hostname -N -- запускает соединение по ssh и пробрасывает туннель от удаленного ПК на локальный порт.

Далее будет достаточно ввести адрес localhost:PORT, где PORT=PORT_LOC.
PORT_REM_NAT — порт, на котором RDP слушает за NAT в удаленной сети.
Таким образом не требуется пробрасывать дополнительный порт, чтобы установить соединение по RDP, достаточно будет подключения по SSH на порт PORT_SSH, если он был изменён.
Параметр -N используется для того, чтобы ssh сессия работала в фоне.
Окно CMD можно будет свернуть.
Всё.
Решение с XRDP
В предыдущей статье мне пришлось прикрыть небезопасные порты. Но дело в том, что RDP мне регулярно нужен, особенно при работе с фотками, когда гонять трафик и так через не очень жирный канал то ещё удовольствие.
Искал аккуратное и лаконичное решение. И в итоге я его нашёл.
Для начала как обычно, пришлось убрать доступ к RDP за NAT.
Открываем файл /etc/xrdp/xrdp.ini
и прописываем директиву port=tcp://locIP:PORT
например port=tcp://192.168.55.1:6458
С этого момента xrdp будет работать только в локальную сеть. Проброс портов через NAT не даст возможности подключиться к ПК по RDP, зато можно физически связать удаленную машину с локальной используя туннель SSH:
мне нужно было подключиться из Windows, поэтому в качестве клиента можно использовать putty, правда туннель придется настраивать каждый раз заново, однако в конце статьи я привел решение, которое позволит создавать туннель не прибегая к putty:

после запуска и установки соединения, нужно будет настроить RDP на подключение по адресу localhost:12345, где localhost это компьютер, с которого мы подключаемся, а 12345 это порт, на который мы это будем делать:

Если всё верно настроено, то после нажатия «Подключить» откроется окно логина в XRDP (в моём случае подключение идёт к ПК на Debian 12):

Потребуется ввести логин и пароль, после этого откроется рабочий стол выбранного пользователя.
Чтобы не использовать Putty, можно использовать команду для CMD/PowerShell, поскольку ssh сейчас можно доустановить в Windows не прибегая к сложным манипуляциям.
Синтаксис команды будет таким:
ssh -L 12345:192.168.55.1:4556 -p PORT usver@remotehostname
где PORT это номер порта, на котором слушает удаленный ssh сервер, если он перенастроен на альтернативный.
Ах да, очень важно знать имя хоста, либо IP адрес, находящийся за NAT.
К слову, в моём случае это костыль, так как комп, имея две сетевые карты, в моем случае сам выполняет роль маршрутизатора, одной дыркой подключенный в LAN, а другой в WAN, поэтому всё так сложно. Из-за проблем с роутером и отсутствием возможности пока что купить хороший роутер, приходится применять такие дикие решения, однако они, как ни странно, работают.
Один день сервера в сети
Регулярно просматриваю логи сервера и по большей мере они содержат информацию о работе брандмауэра и некоторых служб, которые «смотрят» в сеть.
Нынче любой открытый и проброшенный извне порт является потенциальной дыркой в безопасности системы. И как показывает практика, в сети далеко не шутки распространяют, что с той стороны все открытые адреса и домены прощупываются с целью поиска уязвимых мест.
Так, в один прекрасный день я стал наблюдать, что нагрузка на сеть возросла. Я сразу полез в журнал и увидел, что мой DNS сервер стал сходить с ума. У меня был включен кэш для того, чтобы использовать свой DNS извне в качестве альтернативного и я считал, что иметь такую штуку полезно. Однако, я ошибался. Когда bind стал ругаться, что кэш ограничен 100 записями типа TXT на одно доменное имя, я понял, что на мой адрес пошла «атака усиления» DNS. Подробнее об этом можно прочитать здесь и здесь.
Проблема бинтов (bind)
Однажды в логах я увидел это:
database: error: error adding ‘shine-prices.ru/TXT’ in ‘./IN’ (cache): too many records (must not exceed 100)
Это немного отличается от описанного на страницах, ссылки на которые я привёл выше. Но суть похожая. Bind отказывается кешировать указанные записи (и это правильно) и помимо этого генерирует повышенный трафик, что было заметно в программе сетевого мониторинга iptraf.
Решением было отключить кеширование и резолв любых доменных доменных имен, кроме своего собственного.
Однако, эта операция потребовала создания списка доверенных клиентов, которыми не являются внешние адреса, а также выходящие за пределы локальной сети.
Это выглядит примерно (потому что на самом деле сильно иначе) так:
$bind$/named.conf.options
options {
****************
recursion yes;
allow-recursion {192.168.x.0/24;};
allow-query {any;}
allow-query-cahe {разрешено;};
};
После этого логи очистились и DNS снизил нагрузку на сеть.
Проблема c webmin
Хорошая админка, но сразу после установки дырявая и требует входа через открытый порт. Если раньше такое поведение админа было нормальным, когда он выводит сетевые службы на альтернативные порты, то сейчас это перестало быть преградой. Сетевые сканеры очень хорошо находят всё что открыто, даже если оно не мелькает, и проверяют возможность подключения через любую открытую «дырку».
Так, на веб-сервере наибольшую опасность представляет служба администрирования баз данных. С ней работают и CMS, и некоторые локальные службы, для которых база данных является наиболее предпочтительным посредником. По факту для подключения требуется лишь физический канал, а если что-то открыто, значит уже «провода» соединены правильно.
Ну, это было мне пинком, чтобы убрать админку за NAT и проксировать запросы. Плюс, ужесточил требования по аутентификации.
XRDP. Новая цель — служба удаленного рабочего стола.
Sep 03 08:19:23 xrdp[348554]: [WARN ] Cannot accept TLS connections because certificate or private key file is not readable. certificate file: [/etc/xrdp/cert.pem], private key file: [/etc/xrdp/key.pem]
Sep 03 08:19:23 xrdp[348554]: [ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied
Sep 03 08:19:23 xrdp[348554]: [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
Sep 03 08:19:23 xrdp[348554]: [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
Sep 03 08:19:20 xrdp[348536]: [ERROR] xrdp_iso_send: trans_write_copy_s failed
Sep 03 08:19:20 xrdp[348536]: [ERROR] xrdp_process_main_loop: libxrdp_process_incoming failed
Sep 03 08:19:20 xrdp[348536]: [ERROR] xrdp_rdp_incoming: xrdp_sec_incoming failed
Sep 03 08:19:20 xrdp[348536]: [ERROR] xrdp_sec_incoming: xrdp_mcs_incoming failed
Sep 03 08:19:20 xrdp[348536]: [ERROR] libxrdp_force_read: header read error
Как видно, какая-то тварь пыталась долбиться на сервер xrdp причем в логе есть строчка:
Sep ***** xrdp[*****]: [INFO ] Socket 12: AF_INET6 connection received from ::ffff:194.180.49.104 port 49591
То-есть попытка законнектиться через INET6. Пока не понимаю, как это возможно, потому что у меня отключена адресация IPV6, но видимо это возможно. Поэтому временно отключил службу и закрыл открытый порт. Но картинка не радужная вот в каком смысле. Когда у тебя обычный роутер, он может не вести журнал на достаточном уровне. Когда у тебя шлюз, то логирование позволяет увидеть, насколько бурная в сети «жизнь».
Сварочное дело, мысли.
Очень странное ощущение, когда реальность оказывается совсем не такой, какой я её представлял. Итак, сварка. Обычная электродуговая, ручная. Я думал, что присадочная роль электрода вторична. Оказалось, что методики и ГОСТы ставят присадочную роль на второе место.
Я раньше думал, что сварка это диффузионное соединение двух металлических деталей и что дуга является лишь элементом прогрева стыкуемых деталей. Как же я ошибался, однако. Диффузия в сварке здесь вторична. Здесь основной упор делается на качество сварочного шва.
Сталь, если брать потребительскую чернягу, которая используется везде, начиная с заборов и заканчивая автожестью, после сварки становится «не очень». Сам сварочный шов намного твёрже и толще основного металла, он довольно трудно обрабатывается, особенно для получения эстетического эффекта. Поэтому я считаю, что при сварке внахлёст необходимо поступать не совсем так, как показано в многочисленных инструкциях. Для меня здесь важно не только соединение деталей между собой, но и принцип, по которому детали соединены.
В производстве автомобилей применяется точечная контактная сварка. Она надёжно соединяет детали кузова, за счёт сплавления деталей, как на рисунке ниже:

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

На рисунке выше я показал, почему я не люблю сварку внахлёст с обваркой по кромке. Да всё очень просто. Получается силовое плечо и точка напряжения, в которой усиливается жёсткость конструкции и снижается устойчивость к ударам.
Предпосылки строительства поездов
Внимание! Первая публикация здесь. Дальнейшие только автором и с указанием авторства.
Автор статьи: Харькин А. В. Год публикации: 2025.
Уже несколько лет я занимаюсь испытаниями компонентов тягового подвижного состава в одной из компаний, компетенцией которой является преобразовательная техника, но не только она. Мне удалось прикоснуться к тяговым инверторам, которые ныне работают в «Иволгах», тяговым накопителям, которыми оборудуют новые поезда московского метрополитена, а также к некоторым экспериментальным устройствам, призванным сделать воздух в пассажирских терминалах чище и свежее.
Я наверное неправильно выразился, когда написал, что «не только она», у нас любая техника преобразует энергию в энергию. То-есть электрическую энергию в механическую, механическую в электрическую, электрическую в энергию химических связей и обратно. Даже реле это своего рода преобразователь. Поэтому я уточню, что у нас очень широкие компетенции.
Кто я такой?
Являясь инженером путей сообщения в области локомотивного хозяйства, я имею представление о том — зачем, почему и как происходит внедрение нового ТПС.
Здесь мне хочется сделать ремарку.
Что такое «новый подвижной состав»? У многих обывателей представление о поездах держится на уровне понимания «паровоз-вагон, расписание-вокзал»
Конец ремарки.
Однако, современные требования к качеству, скорости и объему перевозок (и грузовых, и пассажирских) приводят к научно-техническим изысканиям и попыткам сдвинуть неповоротливую систему эксплуатации подвижного состава, а также создание условий, которые уменьшили бы необходимость применения тепловозов на пассажирских станциях для проведения маневров.
От тепловозов в принципе нельзя отказаться, потому что это гарантия отказоустойчивости инфраструктуры, а также культура эксплуатации, закрепленная в принципах, о которых не напишут в популярной литературе.
Столица России — город Москва, включила в свою транспортную сеть участки, находящиеся в ведомстве РЖД. Это потребовало создания электропоездов с асинхронными тяговыми двигателями, которые были бы лишены недостатков, присущих двигателям постоянного тока, уменьшили бы количество коммутационной аппаратуры, а также сократили бы потребность в её обслуживании с целью уменьшения количества разбираемых для ревизии и ремонта узлов, поагрегатный ремонт, или ремонт с использованием подменного фонда агрегатов.
В то время, как на сеть РЖД в разных регионах России стали поступать электропоезда ЭС1, ЭС2, ЭС2Г, именуемые «Ласточками», государству необходим был собственный, независимый от иностранных разработок проект. Таким образом Москва разместила заказ на электропоезда «ИВолга» — ЭГ2Тв, которые впредь стал строить Тверской вагоностроительный завод, а конструкцию разработал ТМХ. Это был важный этап успешного внедрения собственных разработок, которая позволила создать десятки тысяч рабочих мест, не только на самом ТВЗ, но и в связанных с ним компаний-производств компонентов. А помимо этого мы получили гигантский опыт в разработке тяговых инверторов и других, не связанных с ними компонентов.

Сама по себе идея применения асинхронных тяговых двигателей не нова, исследования в этой области активно велись в прошлом, ведутся и в настоящем. И даже были созданы серийные типы ПС с асинхронным приводом, например электропоезда серии 81-720 — «Яуза», часть которых была с тиристорно-импульсным управлением ДПТ, часть с асинхронным приводом и даже были попытки создать электропоезда с вентильными двигателями постоянного тока, но достоверной информации по этим разработкам на данный момент у Автора нет, поэтому ограничусь только тем, что это всё слухи.
Что происходит сейчас
Если в простом случае классическая схема является «натуральной» и подчиняется линейному закону регулирования, основанного на законе Ома, где тяговые двигатели управляются путем изменения напряжения на щётках ДПТ, то плавное управление АТД происходит путём изменения частоты переменного напряжения и это накладывает серьёзные трудности при разработке таких систем. А под понятием «всё работает» сотни часов исследований, мелких и крупных неудач.
Асинхронный привод для тягового подвижного состава это полностью синтезированная система. Здесь тяговый инвертор и двигатель это единая система, как патрон и винтовка.
В начале 21 века Торжокский завод построил прототип современной «Иволги» — ЭТ2А, которая регулярно виднелась на деповских путях Санкт-Петербурга-Балтийского (ТЧ-15), но дальше испытаний дело не дошло, прототипы часто не доходят дальше опытной эксплуатации ввиду слабой надёжности и первоначальной сложности оборудования, к тому же подвижной состав железных дорог требует сертификации, а когда строишь неизвестно что, то и сертифицировать его вряд ли удастся без значительных изменений в конструкцию.
Сейчас на дворе 2025 год и у нас есть «Сапсаны» и «Ласточки» от Сименса, «Финисты» — наследие Сименса от УрВЗ, «Иволги» от ТВЗ и ЭТ4А от Торжокского завода. И самое приятное, что асинхронные электрички работают не только на столичных и курортных узлах, но и практически на всей сети железных дорог России, медленно, но верно вытесняя коллекторные «жужжалки». А метрополитены Москвы, Санкт-Петербурга и Казани уже более 10 лет успешно эксплуатируют поезда метро с АТД. И на очереди Новосибирский метрополитен. Это приятно, потому что попробуйте прокатиться в этих электричках. Скорость 160 км/ч, а ты и не чувствуешь. Не трясёт, не бросает. Однако это всё цель. А средство нужно создать. И нужно учитывать, что чем лучше конструкция, тем она дороже и тем хуже поддается ремонту.
Но что стоит за предпосылкой строительства и эксплуатации такого ПС? Сразу ответ.
Потребность в транспорте. Это экономический показатель, без которого в нынешних реалиях ничего нельзя построить, который разбит на множество других показателей, например потребность в подвижном составе для предприятий транспорта, потребность в эксплуатационном и ремонтном персонале.
В простом виде у нас частное лицо покупает несколько автобусов, нанимает водителей, которые за плату развозят людей куда им необходимо в рамках действующего маршрута. Когда у нас достаточно большой город и много предприятий, требуется больше подвижного состава.
На железных дорогах есть несколько видов пассажирских перевозок:
- Поезда дальнего следования: это междугородние и международные поезда;
- Пригородное сообщение.
- Городское сообщение.
Потребность в перевозках это ещё и отражение ресурсов местности. Один город населением сто тысяч имеет потребность в транспорте по нескольким пунктам, например:
- Трудовые обязанности. Требуют мобильности сотрудников предприятий и не только в часы начал и окончаний смен.
- Культурный фонд города. Это массовая культура и спорт.
- Статус транзитного пункта. Порождает спрос на транспорт для смены направлений. Смена вокзала, аэропорта, смена вида транспорта. Санкт-Петербург, Москва являются транзитными городами, поскольку здесь есть необходимость в подвязках между видами транспорта.
- Туристический интерес.
Все эти пункты могут пересекаться так или иначе, но на этих «столпах» формируется потребность в массовых перевозках. Не все 100 тысяч населения будут пользоваться общественным транспортом, имея автомобили и другие средства мобильности, или не имея потребности в транспорте вовсе.
И самое главное — мы должны определить потребность в транспорте не столько в средстве для извлечения прибыли, сколько для обеспечения потребности населения в транспорте. Сам по себе пассажирский транспорт вероятно будет убыточным, потому что есть факторы, такие как неизбежное старение, износ и подчиненность закону жизненного цикла изделия. Затраты на разработку, сертификацию, ремонт, меры по обеспечению безопасности технической, безопасности пассажиров, они могут превышать эксплуатационные затраты и не покрываться выручкой за один статический учётный период. Даже во время поездки любой поезд обслуживается как минимум одной (чаще несколькими) локомотивной бригадой, диспетчерами разных назначений, дежурными по станциям, путейцами, которые ремонтируют пути.
Потребность это патрон, и вокруг неё мы должны строить любую систему. Нет потребности — нет системы.
Продолжение следует…
Обработка фотографий
Обработка пейзажа
В наше время хорошие фотографии можно сделать обычным смартфоном. Они дают резкие и красочные изображения типографского качества. От фотографа требуется лишь выбрать хороший ракурс и немного позаботиться о светотеневом рисунке. Всё остальное камера смартфона сделает самостоятельно.
Есть конечно и режим продвинутой съемки, в котором фотограф может управлять выдержкой, диафрагмой и чувствительностью матрицы, выставлять баланс белого вручную. Фотографию можно кадрировать прямо в смартфоне и даже отредактировать. И всё это будет выглядеть очень хорошо, достаточно посмотреть на левое фото, представленное в блоке ниже.
Оно очень сочное и красочное, зритель чувствует, будто бы он находится непосредственно на месте фотографа и чувствует тоже самое, что и он, во время съемки, разве что только комары не кусают.


Но взглянем на ту фотографию, что размещена в том же блоке только справа. Она уже отредактирована. Здесь цвета менее насыщенные, но в тот же момент зелень теперь стала больше похожей на северную таёжную, цвет неба практически не изменился, но у фотографии справа появилось что-то, что делает её более воздушной и оно вызывает некоторую грусть и одновременно желание оказаться в этом месте, вдохнуть лесного воздуха, ополоснуть руки в ледяной таёжной речке.
Обработка даёт нам возможность передать реальные ощущения, вызвать настоящие чувства у зрителя.
Но это обработка пейзажных фотографий. Сам по себе пейзаж это очень компромиссный жанр. Есть классические требования к ракурсу, свету и тени, но крайне редко можно из пейзажа сделать фото, которое будет претендовать на звание шедевра, хотя к этому необходимо стремиться. В фотографии используются те же приёмы, что и в живописи, только в живописи можно повлиять на каждую деталь, сделав её в правильных тонах. В фотографии это намного сложнее. Здесь фотограф всегда получает «холст» с изображением. И оно может быть изначально абсолютно обычным, невзрачным, не вызывающим скрытые чувства зрителя, как левое фото в блоке ниже.


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


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


Один единственный кадр способен передать сюжет как одного объекта, так и нескольких. Кажется девушка заметила, что её снимают, это чувствуется в отраженном взгляде.
Таких фотографий на просторах интернета бесконечное множество и каждая вызывает разные чувства. От восторга до отвращения.
Искусство фотографии, как и живописи, как и литературы в том, что ощущения субъективны. Они порождаются внутренним миром зрителя и поэтому фотограф может чувствовать одно во время съемки, а зритель будет видеть фотографию иначе. Тоже самое относится и к другим видам искусства.
Болтология
О ГНУплоте
GNUPlot это профессиональная система подготовки научной графики, способная если не на всё в мире, то на многое. А самое главное, это просто и даже почти не нужно ей обучаться. Почти, потому что всё-таки пользователю необходимо уметь хотя бы кнопки мышки нажимать.

На рисунке 1 показано классическое поле для построения графиков функции. Чтобы не мучиться и не генерировать пустое поле, вы можете скачать заготовку. Для тех, кому интересно рисовать с помощью гнуплота следует читать статью без пролистывания.
Я не буду учить установке гнуплота и написанию скриптов, «гуглим» gnuplot и качаем для своей системы, если вы новичок в линуксе, но хотите установить гнуплот из «сырцов», то вам на сайт разработчика. Это осознается лишь тогда, когда есть необходимость что-то дописать или изменить. Я себе гнуплот «собирал» вручную.#
Сценарий 1
#!/bin/gnuplot -persist
set terminal svg size 1024, 1024
set output "graph.svg"
set grid
unset border
set xzeroaxis
set xlabel "x" offset 23, 11
set yzeroaxis
set label "y" offset 2, 10.5
set label "0" offset 1,1
set xtics left axis
set ytics right axis
set tics
set key left bottomunset y2zeroxais
set size square
set title "График линейной функции y=x+1"
set xrange [-2:2]
set yrange [-2:2]
set parametric
const = 1
plot '1.csv' using 1:2:3:4 with vectors notitle,
Вообще-то спасибо ему Но я тоже потихоньку становлюсь гиком-дебианщиком.
Я не буду отходить от традиций безопасности и не буду выкладывать готовый файл сценария для GNUplot. Если вам нужно, то открываете текстовый редактор и копируете листинг сценария, затем сохраняете в файл с расширением «gpl».
Два условия: расширение «gpl» заголовок #!/bin/gnuplot -persist
позволяют запускать ваш сценарий двойным кликом мышки. Мне кажется, что проще некуда.
Возвращаемся к нашему сценарию, который написан выше.
Эти две строчки устанавливают программный фильтр и формат файла, в который будет сохраняться изображение:set terminal svg size 1024, 1024 устанавливаем терминал svg с разрешением 1024 на 1024 пикселя
set output "graph.svg" устанавливаем имя файла в котором будем сохранять наш график
Последняя строчка содержит команду plot, которая отдаёт приказ гнуплоту создать наш график.plot '1.csv' using 1:2:3:4 with vectors notitle
Здесь ‘1.csv’ является указанием, где гнуплот возьмет файл данных (об этом чуть ниже), using 1:2:3:4 указывает программе, что она должна брать данные из столбцов 1,2,3,4; with vectors означает, что содержимое файла данных будет изображено в виде векторов (просто линия со стрелочкой), notitle означает, что мы отключим «легенду» графика. Вот и всё. Теперь поговорим о файле данных.
В общем виде файл данных это таблица, в которой по умолчанию первый столбец используется, как данные оси x, второй как y, а третий, как z, если график нам требуется трёхмерный.
Для некоторых случаев существует параметрический режим, например для того чтобы построить окружность (об этом я тоже напишу обязательно) не применяя программирование для создания файла данных.
В принципе, для создания пустого графика с осями со стрелочками можно во внешнем редакторе их добавить, но мы будем его использовать лишь для чистовой «отделки»
Я ссылался на файл 1.csv. Если кому-то непонятно, расширение csv применяется для того, чтобы внешне выделить текстовый файл в качестве таблицы данных. В принципе, никто не запрещает создать таблицу данных в файле с произвольным расширением или без него вовсе. Лишь бы вы сами не запутались. Я предпочитаю использовать то что принято как стандарт.
Приведу листинг файла данных и попонтуюсь, что я это делаю через ssh:

Поскольку это файл данных, содержащий вектора, то формат будет таким:
x0 y0 dx xy
Каждая строка будет описанием вектора где x0, y0 это точка начало вектора, в dx, dy это отклонение вектора по осям абсцисс и ординат.
Первая строка описывает вектор, который будет изображать ось x, вторая строка описывает вектор, который будет изображать ось y соответственно.
Это знание будет удобным, если вам вдруг потребуется создать смещенную ось.
Между столбцами в качестве разделителя применяется либо пробел, либо символ табуляции (что такое служебные символы можно «нагуглить»).
В общем-то база у нас создана, только в результате картинку придётся всё равно доработать в inkscape (на самом деле график можно полностью сгенерировать в GNUPlot, но для этого необходимо доработать сценарий).

Как видно из рисунка 2, я сделал некоторые надписи крупнее и убрал «лишние» нули. Тут дело всё в том, что GNUPlot имеет «широкие» возможности и его лучше использовать в каких-то более конкретных проектах. Однако, знание команд и их синтаксиса со временем сделает пользование программой более эффективным, нежели использование графических надстроек.
Гнуплот, как и Linux позволяет не думать о том, где взять среду для разработки и выполнения, поскольку сами являются таковыми.
Статья начинает затягиваться, поэтому давайте используем нашу заготовку для того, чтобы построить какой-нибудь график.
Мы построим график линейной функции, квадратичную, кубическую, гиперболическую, а также такой случай линейной функции, когда y принимает все значения от -∞ до +∞ ну или x=-(0y+c)/a:

Началась алгебра? Скучно? Не совсем. Есть определённая проблема, так как GNUPlot сам по себе является программой для работы с дискретными данными и это прямо указано в документации, то построение графиков функций, заданных уравнениями доступно в двумерном режиме и изначально только относительно оси абсцисс. Но параметрический режим позволяет добавить к оси y альтернативную ось аргументов. Для этого включают параметрический режим.
set parametric. И здесь опять появляется проблема. После включения параметрического режима невозможно отобразить на графике другие функции, если это необходимо. Так что же делать?
Создаём несложный файл данных для того чтобы построить функцию без использования параметрического режима, для того, чтобы создать файл данных функции x(y)=const мне достаточно поместить следующие данные в таблицу:
x y
1 -2
1 2
И сохраним под именем 2.csv
Теперь модифицируем код сценария:plot '1.csv' using 1:2:3:4 with vectors notitle, '2.csv' with lines title "x(y)", 1.234 title "y(x)"

И получаем сразу два случая линейной функции.
Вот и всё… очень просто.
Ошибка unable to resolve host
У пользователей Linux в терминале часто появляется сообщение об ошибке unable to resolve host. Если вы обычный пользователь, то ничего страшного в этом нет и оно не будет вам мешать работать.
Проблемы возникают при использовании серверной части Linux. Данное сообщение является предупреждением о том, что имя хоста не совпадает с доменным именем и оно не может быть разрешено (resolve). Чем это грозит?. По-сути мешает только сообщением. Работать системе не мешает абсолютно.
Чтобы устранить ошибку необходимо сделать следующее.
В первую очередь обратиться к файлу /etc/hostname. Этот файл может быть либо пустым, либо содержать всего одну строку с именем компьютера.
Теперь обратимся к файлу ./etc/hosts он должен выглядеть примерно так
127.0.0.1 localhost
127.0.1.1 hostname hostname1 hostname2 hostnameN у компьютера может быть бесконечное множество имён.
The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
Очевидно, что данный файл по-сути является таблицей. Это первый источник информации программ — на какие адреса «стучаться» при обращении к ним. Эдакий локальный ДНС с статическим «резолвингом» доменных имён.
Поэтому мы обязаны указать в данной таблице что 127.0.0.1 это localhost, А 127.0.1.1 это команда системе, чтобы по имени hostname компьютер обращался только сам на себя.
Всё.