Posts belonging to Category Памятки



VCSH — спасение настроек в $HOME

Как ни странно, я только недавно познакомился с VCHS — надстройкой над Git, призванной облегчить резервирование конфигурационных файлов, расположенных в домашней директории (Version control system for $HOME — один из вариантов расшифровки аббревиатуры). Очень жаль, что этого не произошло раньше, и бэкап конфигов делался нерегулярно, кое-как, с изобретением различных костылей. Но, всё это в прошлом! Итак, что же представляет собой VCSH и как ей пользоваться?
(далее…)

Небольшое ускорение Chromium

Для Chromium (ну и Chrome до кучи, и иные производные), оказывается, тоже работает метод небольшого ускорения путем очистки баз sqlite от данных, помеченных для удаления (но не удаленных), что и для Firefox (Firefox еще и настройками можно слегка оптимизировать). Всякие настройки, куки, история переходов и т.п. дребедень, что накапливается в процессе использования браузера.
Метод, в общем, тот же, что и для Firefox (и его производных) — пересобрать БД, используемые браузером, с действительным удалением ненужных данных, путем примения к ним команды sqlite3 файл_БД 'VACUUM'.
Применительно Chromium я сделал это следующим образом:

dimio@ibm $ ls -lh ~/.config/chromium/Default/
...
итого 17M
dimio@ibm $ find "/home/dimio/.config/chromium/Default/" -maxdepth 1 -type f -print -exec sqlite3 {} 'VACUUM' \;
...
dimio@ibm $ ls -lh ~/.config/chromium/Default/
...
итого 13M

Настройки Chrome обычно лежат в ~/.config/google-chrome/Default/.
На моем древнем Pentium M 1,2 ГГц с 1 Гб ОЗУ некоторое ускорения запуска браузера и уменьшение времени отклика стало заметно, а на более-менее современном железе подобная процедура, пожалуй, не будет имееть смысла.

Памятки по работе в Linux. Выпуск второй

В очередной раз набралось некоторое количество мелких рецептов по улучшению удобства работы в Linux. Первым выпуском памяток я периодически пользуюсь, так что подобный формат заметок видится мне достаточно полезным. Сегодня речь пойдёт о записи видео с экрана (подкаст), перекодировании этого видео, проверке работы микрофона в Linux, удобном способе ведения небольших записок в виде «липких бумажек», добавлении водяного знака к картинкам при помощи пакета ImageMagick и простом (но не слишком точном) способе измерения количества потребляемой программой оперативной памяти.
(далее…)

Памятки по работе в Linux

Накопилось несколько простых рецептов работы в Linux, которые в силу низкой частоты использования наизусть не помню. Пока лежали в черновиках — некоторые по несколько раз успел перечитать, чтобы вспомнить, как и что делать — польза налицо.
Со временем думаю публиковать мелкие записки по мере накопления: второй выпуск.

Порядок вывода аргументов в xargs

Как-то раз столкнулся с проблемой порядка подстановки аргументов в xargs. И man вроде почитал, и погуглил, и встретил нужный ключ -I, но ни из мана, ни из гугля не понять было точно, что он делает именно то, что надо. Итак, ключ -I задаёт нужный порядок вывода аргумента в xargs, используя подстановку.
xargs -I arg_name command arg1 arg_name arg3 — аргументы при вызове команды command будут выведены именно в таком порядке, тогда как в обычном случае arg_name будет подставлен в конец строки вызова команды.

Чтение N строк из начала файла

Совместно с предыдущим решением удобно использовать чтение из файла неких строк, которые затем и преобразовывать в набор аргументов. Банальный cat известен думаю всем. Обратный порядок — tac. Прочитать N строк с конца: tail -n N. Аналогично, но с начала файла: head -n N (возм. head отсутствует в BSD-системах). И прочтитать строки с X по Y: awk 'NR >=X && NR < =Y'
Или при помощи sed: sed -n 'X,Yp'
(далее…)

Низкоуровневое форматирование flash/sd/microsd под Linux

Несколько раз приходилось форматировать флешки (к которым относятся и различные SD и microSD карточки), а поскольку происходит это довольно редко — вынужден был лезть в гугл. Конспективная памятка по форматированию флешек под Linux:

Проверить подключение flash

fdisk -l
Выведет список подключенных дисков и их разделов. Обычно флешка — /dev/sdb, но нужно обязательно проверить, так ли это!

Проверить, примонтирована ли флешка

df -h
Если флешка примонтирована — покажет это и точку монтирования. Перед форматированием — отмонтировать: umount /dev/sdb.

Проверить защиту от записи и геометрию

При желании — можно проверить защиту от записи и геометрию (защита от записи в линуксе не важна):
hdparm /dev/sdb.

Если нужно низкоуровневое форматирование — забить нулями

dd if=/dev/zero of=/dev/sdb.
В выводе покажет объем флешки (должен соответствовать заявленному), скорость и время записи. Также покажет, сколько было записано байт на флешку, что полезно при проверке флешки на физические ошибки (см. ниже).

Проверить на физические ошибки

head -c N /dev/sdb | md5sum
head -c N /dev/zero | md5sum
где N равно числу байт, записанных на флешку при помощи dd. Если контрольные суммы не совпадают — флешка «битая» или были ошибки записи (в реальности сталкивался с форматированием microSD через плохой кард-ридер — даже когда не выскакивали ошибки ввода-вывода при операциях — контрольные суммы не совпадали, с заменой кард-ридера проблема ушла).
Пример:

dimio@ibm $ dd if=/dev/zero of=/dev/sdb
dd: запись в «/dev/sdb»: На устройстве кончилось место
3932161+0 записей считано
3932160+0 записей написано
 скопировано 2013265920 байт (2,0 GB), 1010,99 c, 2,0 MB/c
dimio@ibm $ head -c 2013265920 /dev/zero | md5sum
5d0fd6273bed1c500c6fc22d86a59630  -
dimio@ibm $ head -c 2013265920 /dev/sdb | md5sum
5d0fd6273bed1c500c6fc22d86a59630  -

Ну и для полного счастья при желании:

dimio@ibm $ perl -we '
> print "OK" if q{5d0fd6273bed1c500c6fc22d86a59630}
> eq q{5d0fd6273bed1c500c6fc22d86a59630};'
OK

Разбиваем на разделы при помощи fdisk

fdisk /dev/sdb
Опции: m — справка, d — удалить раздел, p — просмотреть список разделов, n — создать раздел, t — поменять тип раздела, w — сохранить изменения.

Последний шаг — создать файловые системы на разделах флешки

mkfs.ext{2,3,4} /dev/sdbX
где X — порядковый номер раздела, на котором нужно создать файловую систему.
Также полезны: mkfs.msdos, mkfs.vfat (создаёт «стандартную» файловую систему флешек — vfat).

Если что-то осталось непонятным или есть дополнения и замечания — добро пожаловать в комментарии! 🙂

каталог интернет магазинов Москвы

BASH [born again shell] — оболочка командной строки

Краткая история Bash

bash, bashrc, настройка bash linux

bash представляет собой модернизированную и усовершенствованную версию оболочки командной строки Bourne shell. В системах семейства *NIX bash на данный момент является одной из наиболее популярных и распространённых оболочек, на многих таких ОС (и например в эмуляторе unix-подобного окружения Cygwin) эта оболочка предустановлена.

Корнями bash уходит к оболочке sh за авторством Стивена Борна, разработанной им в 1978 г. и усовершенствованной в 1987 году Брайаном Фоксом. Дословно Bash можно расшифровать как Biurne-again-shell или «Ещё одна оболочка Борна». Также фамилия Борн созвучна со словом born (родившийся), что порождает альтернативное название: «вновь рождённая оболочка».

Порядок запуска Bash

При запуске bash во-первых считывает и исполняет команды из основного файла профиля /etc/profile (при условии существования такого файла). Затем происходит чтение файлов из домашней директории пользователя: $HOME/.bash_profile, $HOME/.bash_login, и $HOME/.profile и исполнение записанных в них команд. В момент завершения работы при выходе из оболочки вызываются команды из файла $HOME/.bash_logout.

Помимо перечисленных выше файлов, bash также распознаёт команды, описанные в так называемом дот-файле (или .rc-файле) $HOME/.bashrc (примеры — файлы .vimrc и .wgetrc) Обычно здесь содержатся пользовательские настройки внешнего вида оболочки, переопределения пользовательских команд и т.п. Пользовательские функции для bash в целях удобства восприятия полезно выносить в отдельный файл (например $HOME/.bash_function), который затем подключать из .bashrc командой source (source $HOME/.bash_function).

Примеры файлов настроек для bash

bashrc — основной файл настроек

Мой файл bashrc (открыть на новой странице) содержит основные настройки оболочки — алиасы, сохранение истории команд, вид приглашения командной строки, настройки вывода некоторых команд и т.п. Все пользовательские функции вынесены в отдельный файл .bash_functions, подгружаемый из .bashrc. Локальные настройки для разных машин (переменные окружения, цвета приглашения командной строки) также подгружаются из отдельных внешних файлов .bash_local.

bash_functions — функции оболочки

bash_functions (открыть на новой странице) — содержит определения пользовательских функций и подгружается по вызову изи .bashrc.

bash_usage — справка по использованию bash

А небольшая справка по использованию самописных функций и некоторых, не слишком часто нужных, программ, у меня вынесена в отдельный файл bash_usage, который также подгружается из .bashrc:
.bash_usage (открыть на новой странице) — содержит справку по пользовательским функцям и подгружается по вызову из .bashrc.

Остальные настройки оболочки, подключаемые в bashrc

Больше конфигов? Легко!

Примеры моих конфигурационных файлов для других программ можно найти на странице Конфиги / dotfiles