1 марта в России отмечается День кошек. В связи с этим хочу рассказать о настоящей хозяйке квартиры, в которой живу я и моя семья.
Владеет всем кошка Ли́са, впервые соизволившая посетить квартиру в 2013 году. Родители её, место и дата рождения не известны, есть только догадки, а в качестве наставницы выступила дворовая кошка Машка (в девичестве Мари́), которая взяла на воспитание эту особу. Обитали они в подвале нашей многоэтажки, благо летняя погода позволяла не заботиться о холоде, да и пищевое «изобилие» разнообразнее.
Сначала кошка (тогда ещё безымянный котёнок) всё время ходила за Машкой, которая повадилась приходить к нам под окна обедать. Мамашку мы домой не пускали, а мелкую иногда приглашали в её будущую квартиру.
BASH (bourne again shell) — командная среда, используемая по умолчанию во многих современных Linux-дистрибутивах. Если используется ОС из семейства Linux, то, скорее всего, используется и bash. Ниже приведены команды, опции настройки и разные трюки, придающие пользователю терминала более комфортную среду для работы (в BASH).
Показать
Настройка автодополнения и поиска в ~/.inputrc
Для одинарного нажатия Tab при автодополнении в ~/.inputrc (или в /etc/inputrc для всех пользователей)
set show-all-if-ambiguous On
Вывод по клавишам ↑ и ↓ из истории только тех команд, которые начинаются с уже набранных букв
Список исключений — через двоеточие, можно использовать шаблоны.
Эвристическое исправление ошибок а именах директорий
shopt -s cdspell
Звуковой сигнал при запуске оболочки
export PROMPT_COMMAND="echo -ne '\a'"
можно использовать по разнному, например — включить мигание окна KiTTY.
Для того, чтобы не разрывать многострочные команды, используется
shopt -s cmdhist
Если вписать
export HISTTIMEFORMAT='%d %h %Y %H:%M:%S '
то в истории будут записаны дата и время выполнения команды.
Использование регистронезависимых масок файлов
shopt -s nocaseglob
Тогда, к примеру
ls *.jpg
выведет не только *.jpg, но и *.JPG.
Хитрости BASH
Возврат в предыдущую директорию
cd -
При нажатии ESC и сразу за этим . (в терминологии *nix — Meta.) в строку подставится последний использованный объект. Например, если первой строкой набрано
ls /home/smbdy/logs
во второй наберите
rm ESC .
получите
rm /home/smbdy/logs
Реализация ввода пользовательского пароля с проверкой:
переименует ’file-with-long-name-typed-with-tab-completion.txt’ в файл с именем ’old-file-with-long-name-typed-with-tab-completion.txt’.
Функция быстрого переименования расширений
renamer() {
local fn
for fn in *."$1"; do
mv "$fn" "${fn%.*}"."$2"
done
}
Пример: renamer doc txt — переименует все доки в txt’шники в текущем каталоге.
Если определить функцию command_not_found_handle (), то можно обрабатывать ситуацию «команда не найдена». До выдачи сообщения о не обнаруженной команде bash поместит в $1 введенную строку и выполнит код этой функции. При этом, если функция возвращает код завершения 127, то сообщение о ненайденной команде будет выведено на экран.
Для добавления алиаса с автоприменением определяем новый алиас в ~/.bash_aliases
alias editalias=’edit ~/.bash_aliases && source ~/.bash_aliases’
Имейте в виду, что для работы алиасов из этого файла он должен быть явно включён в вашем ~/.bashrc:
Дистрибутив Linux’а от дистроделов из Новой Зеландии — ArchLabs Linux 2018.02, основанный на минимальной сборке Arch Linux с оконным менеджером Openbox.
В начале 2000-х годов Филипп ’corenominal’ Ньюборо поставил цель создать простой но мощный Linux-дистрибутив, жрущий мало ресурсов и подходящий для работы на слабых компьютерах. Он создал CrunchBang Linux, достаточно легковесный, использующий оконный менеджер Openbox. После завершения разработки и поддержки проекта в начале 2015 года ряд пользователей Crunchbang довольно быстро «запилили» несколько проектов, среди которых были, например — BunsenLabs Linux и #!++ CrunchbangPlusPlus. Ещё одна группа неустановленных лиц (последовалелей Crunchbang — разработчиков) вместо использования продолжительного цикла Debian взяли за основу менее тухлые более современные пакеты Arch Linux. Так появился ArchLabs — сборка для тех, кто не осилил Арч пример, как можно настроить минимальное ДЕ из г0вна и палок. В начале команда ArchLabs подражала внешнему виду BunsenLabs, но затем дистрибутив сумел развить своё собственные оформление и стиль.
Иногда требуется записать все, что вы вводите в терминале, для того чтобы самому запомнить, что и как делали или передать кому-то другому для анализа или обучения, или просто записать терминальную сессию вместо записи видео с захватом экрана. Все привыкли пользоватся скриншотами и записью видео с экрана. Есть даже мануалы, как делать скрины в голой консоли.
Однако существует интересный способ, как делать «видеозапись команд» в консоли без лишних телодвижений (я не говорю обо всяких доставляемых ttyrec, termrec & ipbt). Выполните в терминале, к примеру, следующие команды:
Показать
script -t 2> timing -a ttyoutput
pwd
cd /
pwd
cd -
pwd
exit
После команды exit запись с терминала прервётся и с помощью команды
scriptreplay timing ttyoutput
можно воспроизвести записанные действия и ответы системы. Для выхода можно использовать комбинацию клавиш Ctrl + D в обычном шеле или набрать exit или logout в csh (если переменная ignoreeof не задана — то Ctrl + D тоже сработает).
Для вывода списка вводимых команд без проигрывания всех действий с установленными временными интервалами достаточно ввести команду
awk '/@/' ttyoutput
А чтобы получить полный список вводимых команд и ответы интерпретатора:
awk '/./' ttyoutput
Можно даже интерактивно передавать вводмые команды, например — с помощью ключа
‒f (‒‒flush)
один пользователь вводит команды в терминал
mkfifo ttyoutput2; script -f ttyoutput2
другой — наблюдает за операциями в реальном времени с помощью
cat ttyoutput2
Сетевой обмен между удалёнными машинами можно организовать с помощью утилиты netcat.
P. S. Команды script и scriptreplay входят в пакет util-linux, поставляемый вместе с операционной системой (по крайней мере в Linux, хотя впервые утилита script появилась в системе 3.0BSD), поэтому они доступны сразу после установки системы.
P. P. S. Альтернативы — уже упоминавшиеся termrec, ipbt, ttyrec/ttyplay — имеет сходный функционал, есть утилита ttycast, осуществляющая широковещательную передачу команд терминального сеанса в реальном времени.
Также существуют такие утилиты: TermRecord@github — пишет в html и воспроизводит в браузере.
Cвободная операционная система для мобильных устройств — CyanogenMod 13.0 RC1. Сначала операционку (или прошивку), предназначенную для замены проприетарных предустановленных версий Android, пилила команда Cyanogen Team, затем разработку коммерциализировали, создав контору Cyanogen Inc., закрывшуюся 31 декабря 2016 года (вероятно — поглощённую конкурентом-гигантом). Но разрабы продолжили развивать проект под новым именем LineageOS.
Основаная на CyanogenMod ось для смартфонов и планшетов — LineageOS 13.0 (на базе CyanogenMod 13, основанного на ведроиде 6.0.1 Marshmallow). LineageOS Android Distribution разрабатывается после форка от CyanogenMod на основе его исходного кода.
Только что полез на сайт 4pda.ru, срочно нужно было посмотреть характеристики моего рутера (DIR-300A/C1), хочу узнать, есть ли у него возможность настроить мультиван.
Захожу на первую выданную гугелем страницу, открываю спойлер «Общие инструкции, Полезное, Разное», кликаю в «Характеристики аппаратных ревизий DIR-300» и... вижу страницу своего сайта про роутеры, который я активно вёл на предыдущей работе, у городского интернет-провайдера.... Оппа, вот это поворот 4PDA — приятно, что сайтик полезен!
P. S. Как ни печально, на моём сайте нет необходимой мне информации, придётся ждать ответа от спецов из D-Link’а, тем более, что у меня установлена древняя прошивка с пометкой в описании «Тестовая версия. Не для распространения. Без поддержки конечных пользователей.»
P. P. S. Ради интереса — поискал упоминание о роутерном сайте в гугле — нашёл только у iXBT, хотя дальше четвёртой страницы гугла не листал. Ну и в СевенДэйз в старой резюмехе моей есть.
Для тестовых задач создал две виртуалки в Виртуалбоксе — сервер и клиент. Обе виртуалки ставил с образа диска Debian 9.3.0 Netinst CD с архитектурой amd64). Виртуальная машина ’server’ выступает в роли DHCP-, DNS- и прокси-сервера, а также шлюза для машины ’client’. Выкладываю тут последовательность действий, чтобы потом не забыть и использовать в дальнейшем. Действия рутинные, доступны в любом мануале, но для быстроты воспроизведения собрал их здесь вместе.
Делаю автовход в любой консоли (по аналогии с сервером), для этого прописываю автологинящегося пользователя в файле /lib/systemd/system/getty@.service:
ExecStart=-/sbin/agetty --noclear -a <юзер> %I $TERM