Автодополнение имён хостов из LAN в консоли

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

В принципе, имена хостов часто несложно получить с помощью Avahi (avahi-browse). Странно — думал я, — почему до сих пор никто не догадался сделать это в bash_completion?

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

Это оказалось довольно легко исправить! В файле /usr/share/bash-completion/bash_completion надо раскомментировать часть функции _known_hosts_real(), отвечающую за Avahi (ищется текстовым редактором). Далее дописываем export COMP_KNOWN_HOSTS_WITH_AVAHI=1 в свой .bashrc и радуемся жизни. (Ах да, не забываем установить avahi-browse, который лежит в пакете avahi-utils в Debian).

Делайте бекапы

Пост из разряда типовых.

«Люди делятся на две группы — на тех, кто не делает бекапы, и на тех, кто теперь делает». И опять это работает не очень долго.

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

Моему SSD в ноуте идёт четвёртый год. По SMART он вроде бы ещё огурчик и ничего с ним не происходило. Однако, пару часов назад рабочая система на ноуте на минуту подвисла, после чего отрапортовала, что что-то пошло не так и корневой раздел перемонтирован в read-only. Я быстро загрузился с live-образа убунты и начал смотреть, что к чему, убедился, что что-то на харде действительно пошло не так, прогнал fsck, починил все косяки. Однако, паранойик во мне решил, что вот уж теперь точно настал момент сделать первый бекап всего. (Всего — это слишком круто. Для начала я решил слить всё жизненно важное — конфиги, документы, проекты и портфолио). mc говорит, что на копирование уйдёт ещё минут 40. Если брать вообще все файлы из хомяка — выйдет задачка часов на 30 при условии копирования на мой домашний сервер.

Сливаю важные данные, после чего пробую вернуться в рабочую систему. Может быть, это разовый косяк по совпадению неудачных факторов. Но новый SSD, кажется, уже пора подбирать.

UPD: Действительно, SSD всё-таки стареет. Параметр SSD_Life_Left сдвинулся на один пункт ближе к печальке. В результате сбоя немного пострадал initramfs-tools, но вроде сейчас всё в норме, конфигурационные файлы восстановил из репозитория.

rssh, или Как разрешить SCP, но запретить SSH

Вполне адекватная ситуация: у вас есть удалённая Linux-машина с доступом по SSH, и вам срочно нужно дать кому-то из знакомых возможность загрузить на эту машину файл. Разумеется, нам абсолютно лениво разворачивать ради этого FTP-сервер. Да и зачем, когда есть SCP?

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

Выход вроде как всплывает: надо заменить пользователю shell по умолчанию (/bin/sh) на что-нибудь другое. Вот только что?

Подробнееrssh, или Как разрешить SCP, но запретить SSH

Годный туториал по написанию ядерных модулей в Linux

Нашёл на просторах Интернета довольно хороший туториал по написанию модулей для Linux. Ясное дело, что по этому делу есть специально написанные мануалы (www.tldp.org/LDP/lkmpg/2.6/lkmpg.pdf), но в самом начале тернистого пути хочется почитать что-то более простое и наглядное. И вот, для тех, кому интересно написать свой ядерный модуль (причём пример сразу для встраиваемой машины):

 

Даёшь самосборные тулчейны!

Вот начинают подгорать мои любимые дедлайны. Один из текущих — подготовка к Робофесту.

Да, всё-таки мы решили поучаствовать в этом фестивале в лиге «Autonet-18+», где задачей для робота будет проезд по а-ля городской местности — ландшафту 10х10 метров с дорогами, домами, знаками и светофорами. В качестве шасси решили использовать нашего уже немного пошумевшего лайнтрейсера (вы напомните, я потом о нём ещё расскажу — было весело), только мозги решили проапгрейдить с простой Arduino до STM32F4Discovery. Сразу куча плюшек — и частота на порядок больше, и аппаратная плавающая точка, и ШИМ на ультразвуковой частоте — моторы не пищат на низкой мощности :)

Так вот. Прозаичная история о том, как я начал писать софт под эти «мозги», что такое тулчейн и с чем его положено подавать к столу.

ПодробнееДаёшь самосборные тулчейны!

Yakuake в KDE5

Есть у меня слабость к drop-down терминалам. Удобно же: не отвлекаясь от рабочего процесса, можно запустить фоном какую-нибудь задачку, которая не так важна, чтобы под неё ещё окошко выделять, и в то же время не так тривиальна, чтобы запускать её из лончера (например, посмотреть вывод htop или по-быстрому подключиться к хосту по ssh).

Так как я — ярый кедовод, то и терминал соответствующий — Yakuake. Проектик с некоторым наростом пыли, зато гармонично смотрится в KDE и вообще использует компонент нативного кедового Konsole. Назначил горячую клавишу — и терминал всегда под рукой.

Однако, кеды растут и расцветают. Вон уже какая-то пятая-разлохматая версия в Debian testing лежит (и на моём лаптопе, соответственно). Конечно же, обновления в какой-то момент затронули и Konsole. И в одно хмурое декабрьское утро я увидел вот это.

ПодробнееYakuake в KDE5