Ubuntu 14.04: как автоматически запустить скрипт после запуска ssh

В Ubuntu 14.04 по умолчанию в качестве менеджера загрузки системы используется upstart. Он отвечает в том числе за загрузку сервисов во время загрузки системы и еще он event-based. Поэтому, чтобы заставить свой скрипт выполняться, например, сразу после загрузки ssh, нужно создать такой файл конфигурации для upstart:
description ""
author ""

start on started JOB=ssh
script
    exec /full/path/to/script &
end script
и поместить его в каталог  /etc/init с расширением .conf (например, start_my_script.conf).
Полное описание возможностей upstart можно найти здесь.

Ubuntu 14.04: разрешить сохранение core-файла

В Ubuntu 14.04 по умолчанию при падении приложения все сведения о нем перенаправляются в Apport (правила перенаправления находятся в этом файле: /proc/sys/kernel/core_pattern), которая собирает информацию о системе и генерирует отчет. Крэши пользовательских приложений она пропускает дальше в систему, но по умолчанию генерация core-файлов в системе запрещена. Включить ее можно выполнив команду:
ulimit -c 10000
где 10000 - это размер core-файла в блоках по 1кб. По умолчанию это число выставлено в 0. За сессию его можно изменить один раз, если нужно поменять еще раз - придется логиниться заново. Ну и логи Apport находятся по адресу: /var/log/apport.log. Там, например, будет сообщение об ошибке, если core-файл оказался большего размера, чем разрешено в ulimit -c. Если же значение ulimit -c не превышено, core-файл будет сгенерирован в той же директории, в которой находится упавшее приложение.

Linux: stress - утилита для организации нагрузки на систему

Stress - полезная утилита для Linux, которая позволяет организовать различные типы нагрузок на систему.
Пример использования:
stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

Ubuntu 14.04: Невозможно подключиться к WiFi после пробуждения из спящего режима

Иногда после пробуждения из спящего режима Ubuntu 14.04 не может подключиться к известной WiFi сети. Проблема лечится следующим образом: надо создать исполняемый файл в каталоге /etc/pm/sleep.d/
sudo touch /etc/pm/sleep.d/wakenet.sh
sudo chmod +x /etc/pm/sleep.d/wakenet.sh
и поместить в него следующее содержимое:
#!/bin/bash
case "$1" in
thaw|resume)
sudo nmcli nm sleep false
sudo pkill -f wpa_supplicant
;;
*)
;;
esac exit $?
В некоторых случаях проблема остается и после этого, тогда можно пробовать после пробуждения выполнить:
sudo service network-manager restart
Решение взято с askubuntu.

Vim: убрать лишние пробелы в конце всех строк

Чтобы в Vim убрать лишние пробелы в конце всех строк, можно воспользоваться командой:
:%s/\s\+$//
команда %s аналогична команде s в sed, о которую я упоминал в одном из предыдущих постов. Точно так же сначала следует регулярное выражение, которое определяет, что нужно найти, затем - то, на что найденные символы заменить. Части команды разделены символом /.
В данном случае регулярное выражение "\s\+$" описывает пробелы, в количестве один или больше, расположенные в конце строки. Вторая часть команды пустая, поэтому найденные пробелы будут просто удалены. Так же пустую часть команды можно опустить:
:%s/\s\+$
Ну и можно отредактировать vimrc так, чтобы эта замена происходила по нажатию на кнопку F5, если добавить в него строчку:
nnoremap <silent> <F5> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar>:nohl<CR>

Vim в качестве HEX-редактора

Отобразить файл в HEX в Vim можно командой:
:%!xxd
Чтобы вернуться обратно:
:%!xxd -r
Надо отметить, что в Vim нет HEX-режима, а эти команды на самом деле просто прогоняют данные из Vim через утилиту xxd.

Перенаправить вывод tail -f через grep в файл

Команда
tail -f log.txt | grep "expression"
позволяет, например, фильтровать лог выполняющейся программы. Однако, чтобы перенаправить ее вывод в файл, нужно вызывать grep с флагом --line-buffered. В этом случае grep будет писать в файл не при заполнении буфера, а при получении символа новой строки.
В итоге команда должна выглядеть так:
tail -f log.txt | grep --line-buffered "expression" >> file.txt