с++, хранилище для raw-данных.
Мне нужно хранить записи вида int tag; float vec[n] причём n может быть любым, но константным для всего хранилища.
Соответственно, есть функции для чтения и записи сигнатурой: read/write(int index, int n, int& tag, float*vec): index — номер элемента, n — размер хранимых векторов. Хранилище может быть настроено или в row-major или в column-major order, т.е. данные хранятся или как «tag1, vec1[..n], tag2, vec2[..n], . tagN, vecN[..n]» или как «tag1, tag2, . tagN, vec1[..n], vec2[..n], . vecN[..n]»
Т.е. при наивной имплементации, я бы вроде как мог хранить всё это в std::byte*, вызывать reinterpret_cast и высчитывать нужные смещения через sizeof элементов, но что-то мне подсказывает что тут можно легко нарушить strict aliasing rule и получить UB. Как такие вещи полагается делать кошерно и переносимо?
Помогите сздать alias
Всем привет, у меня есть куча каталогов с именами day 1, day 2,…day 360. Как прописать alias так что бы в терминале я вводил только число а мне открывался файловый менеджер с соответствующим каталогом?
Переопределение alias'oв в меню
Пытаюсь сделать меню и не совсем понимаю как использовать правильно алиасы. Должен оставаться доступ к вводу! 1 2 должны отражать следующие уровни меню и менять значение алиасов 1 и 2 на другие значения. В голову приходит такой костыль:
ipfw и natd
Добрый день всем. прошу вашего совета и помощи. есть сервер с FreeBSD 9.3-RELEASE-p42 на нем есть em0 локальная сеть А.А.А.А em1 интернет (с алиасами inet X.X.X.X, inet Y.Y.Y.Y, inet Z.Z.Z.Z)
инет работает по этим же сетям работает управление оборудованием у связистов встал вопрос о том чтобы все запросы на адрес Y.Y.Y.Y на порт 7654 перенаправлялись на их маршрутизатор.
есть правила nat=«/sbin/natd -f /etc/natd.conf»
$nat -a $extIP2 -p 8666 log -redirect_port tcp $ipsvyaz:7654 7654
$fwcmd 1746 divert 8666 log tcp from any to $extIP2 7654 in via em1
$fwcmd 1746 divert 8666 log tcp from $ipsvyaz 7654 to any out via em1
и множество других правил. запрос на этот порт перенаправляется и приходит. но приходит с интернетовским адреосм. связистам же необходимо чтобы происходила nat и на их оборудование запрос приходил бы только с внутреннего адреса А.А.А.А
как это осуществить? пробовал менять в правиле NAT extIP2 на intIP1 совсем ничего не приходит. а как сделать подмену никак не соображу. помогите кто может.
Создание Alias с переменной
Хочу создать алиас «cd ‘a’ && ls» для того чтоб не писать постоянно ls, бо постоянно при перемещении по директориам по две команды ввожу, но столкнулся с проблемой что название деректории получается внутри команды. Допустим алиас inst=«sudo apt install» работает как «inst python» и начинает установку пакета, а вот как вместо ‘а’ подставлять адрес деректории? Была идея через переменную, и указывать её после алиаса, в нем просто её открытой делать (cls=cd ‘a’ && ls ; a=) чтоб при вводе деректории сразу видеть содержимое. Я понимаю что это не такой глобальный вопрос, но все же интересно можно ли такое сделать.
Zimbra переименование домена
Исходные данные, есть почтовый домен с 3 псевдонимами, что-то вроде:
- домен - основной
- домен2 - псевдоним
- домен3 - псевдоним
- домен4 - псевдоним
В связи с переходом на основной домен2 (и необходимостью чтобы в LDAP пользователи отображались как user@domain2, а не user@domain) в настройках изменили имя домена, т.е. стало так:
- домен - псевдоним
- домен2 - основной
- домен3 - псевдоним
- домен4 - псевдоним
Изменение имени домена
Всё прошло успешно, письма доставляются, но при отправке писем на домен (псевдоним) приходит отчёт о доставке:
Your message WAS SUCCESSFULLY RELAYED to: <пользователь@домен>
The message WAS NOT relayed to: <«»@домен2>: [[127.0.0.1]:10025] sai 501 5.1.3 - rejected by next-hop mta on relaying, from mta(smtp127.0.0.1]:10025): 501 5.1.3 bad recipient address syntax
Такие отчёты приходят как при отправке внутренней почты, так и внешней. Откуда берётся пересылка на <«»@домен2> непонятно, ящика с пустым именем нет, да и создать его не получится. И главное почему эти отчёты приходят? И как можно их отключить?
hostname alias для домашнего роутера
Доброго времени суток. Такой вопрос возник, захотелось мне написать alias для айпишника роутера его ip условно следующий
в /etc/hosts прописал:
Так вот, если я ввожу ip в браузер(без указания чего-либо, даже протокл не пишу), то попадаю в админку моего роутера, но если пишу просто router, то мне выбрасывается ошибка nginx 502 bad gateway.
С чем такая проблема может быть связана и что можно почитать, чтобы понять в чем суть? Потому что ping по этому hostname добивает, значит мой «alias» засетился. Как я понимаю, браузер должен пойти в /etc/hosts/ увидеть, что там router - ip 191.160.40.1 и подставить его вместо router. Он вроде это и делает, только почему-то, как будто, браузер когда обычный ip получает, понимает, куда нужно к роутеру подключиться, а когда такой вот hostname, он просто в тупую заменяет на ip и попадает не туда
Вот даже через curl попробовал, все заменяется вроде, но почему-то ответы разные совсем приходят. Единственное отличие - заголов host. В одном случае там ip стоит, а в другом мой прописанный Hostname
Если эта инфа как-то нужна, то
- Роутер - Xiaomi
- ОС - arch
DNS и почта на разных доменах
Есть ли почтовый сервер с интеграцией с DNS или все надо руками прописывать записи (mx,sfp,dkim)? Для одного не особо сложно, но если я хочу насоздавать доменов/поддоменов для пользователей и псевдонимов, да и сами пользователи себе. И какой сервер удобно сконфигурирует DNS записи и смаршрутизирует письма в обе стороны по псевдонимам?
Глупый и банальный вопрос Часть 2
Это снова я. Хотел прописать в alias такую команду:
Это команда из статьи по alias-у, на которую меня сослали. Используя echo alias myip=команда и >>
/.bashrc я решил засунуть алиас в /.bashrc, чтобы при включении myip сразу становился вот той верхней стеной текста. Сначала меня просто молча послали: консолька перестала быть от имени меня, отказывалась выполнять команды. Но я помню, что это лечится перезапуском самой консольки. Тогда я решил между .com/; grep поставить «|», чтобы получилось .com/; | grep , поскольку я помню, что как-то где-то прописывались две команды в одну строчку через |. Но нет, мне сказали, что это синтаксическая ошибка. Мне именно это не совсем нужно, мне нужно чисто понимать для общего развития как поступать с подобными командами. Теперь вопросы: как это правильно оформить? Есть ли в линуксе какой-нибудь отдельный файл, который хранит все alias-ы?(в гугле не нашёл инфы) Пытался изменять .bashrc: mousepad /.bashrc , но мне сказали «вы работаете с Рута, можете повредить систему, идите куда подальше». Обхода в гугле не нашёл.
Добавить keyboard aliases для Up/Down/Left/Right/Enter/etc. в Xorg
Я в Visual Studio Code давно привык к таким keyboard shortcuts:
Alt+H: Left (<- on keyboard) Alt+L: Right (-> on keyboard) Alt+J: Down (down arrow key on keyboard) Alt+K: Up (up arrow key on keyboard)
Alt+A: Home (go to line start) Alt+;: End (go to line end)
Ctrl+U: Shift+Home (select to line start)
и некоторые другие.
Считаю очень удобным т.к. не нужно переносить правую руку на часть клавиатуры со стрелками.
Возможно ли как то внести это всё в конфиг Xorg'а что бы они работали повсеместно, в том числе к примеру в браузере потому что пока я вводил это сообщение несколько раз нажал на автомате Ctrl+J.
Хотелось бы что бы Xorg перехватывал эти комбинации и посылал активному окну уже как бы ввод со специальной кнопки как если бы она была нажата (Left/Right/Home/Enter/etc.). Таким образом не пришлось бы это настраивать по отдельности во всех приложениях учитывая что некоторые из них не позволяют легко это сделать либо я не знаю как либо надо долго разбираться.
Как вызвать команду в bash, если она заалиасена?
Здравствуйте. Я хочу сделать скриптик rtfm в своем debian 10 примерно такого содержания и заалиасить его как man :
И как вы видите, вызывается команда man, которая есть алиас rtfm.
А я хочу без заалиасивания-разалиасивания быстро вызвать эту команду в скрипте. В fish, я знаю, есть способ вызвать такую команду вот так: `command. Есть ли что-то подобное в bash?
Алиасы для Debian (несерьезно)
Здравствуйте, сделал список алиасов, которые упростили мне жизнь, может быть, и вам упростят.
Подготавливаем всё, выполняем команды и доустанавливаем нужные пакеты:
(соглашаетесь на установку thefuck)
(добавляете строку: имя-пользователя ALL=(ALL:ALL) ALL или имя-пользователя ALL=(ALL:ALL) NOPASSWD:ALL , чтобы получить беспарольный sudo, нажимаете Ctrl-o, Ret, Ctrl-x)
(так повторяете у всех пользователей, два раза fuck)
После этого редактируете конфиг шелла у рута, добавляете
Все, копируете этот файл другим пользователям, алиасы готовы.
Команда работает, алиас нет
Проблема в том, что команда работает, а вот если ее сделать алиасом, уже нет.
nginx proxy_alias
Встретил упоминание, что Андрей Сысоев собирался (2007) добавить директиву proxy_alias для Nginx: http://www.lexa.ru/nginx-ru/msg14950.html
«В общем, я планирую сделать proxy_alias, которая всегда будет работать как alias. proxy_pass со значением http://host будет работать как root. proxy_pass со значением http://host/uri/ будет использовать значение как полный URL, если значение было задано переменной, или же выдавать предупреждение с предложением заменить на proxy_alias. А со временем предупреждение будет заменено на ошибку.»
Удалось ли это ему? Директива proxy_alias не гуглится, в документации нет: https://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_pass
Подстановка алиаса через переменную в BASH
Помогите разобраться. Пишу скриптик, столкнулся с проблемкой. Скрипт в работе использует алисы доступные пользователю из
/.bash_aliases. Если имя алиаса явно указать в скрипте, то он срабатывает, если попытаться подставить с помощью переменной - не работает. В скрипте необходимо имено через переменную. Вот пример кода, с сутью проблемы: