Продвинутым


Текст в картинку (делаем скриншот консоли)

Учитываются системные шрифты, а вот цветовые схемы консоли не работают

$ ifconfig | convert label:@- ip.png
$ ping -c 5 ya.ru | convert label:@- ya.png
$ echo "Hello World" | convert label:@- hello.png
5
Ваша оценка: Ничего Рейтинг: 5 (2 голоса)

Активация странных кнопок ноутбука

Совсем странные кнопки (например, на ноутбуке) не видны в XOrg до тех пор, пока возвращают совсем странные keycode. Утилита setkeycodes позволяет исправить ситуацию, а xbindkeys в сочетании с xte из пакета xautomation — превратить нажатие клавиши в нажатие кнопки мыши.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

Статическая линковка в cmake

Указываем через флаг "DCMAKE_EXE_LINKER_FLAGS":

# cmake -DCMAKE_EXE_LINKER_FLAGS=-static -DCMAKE_INSTALL_PREFIX=/usr  ./
0
Ваша оценка: Ничего

Colorfly PocketHiFi и другие нестандартные устройства хранения в Linux

Linux можно заставить работать с нестандартными устройствами, которые видны как USB-флешки, но не распознаются. На помощь приходит параметр quirks модуля usb-storage.

0
Ваша оценка: Ничего

Оживление запоротого насмерть BIOS

Рассказ о том, как я восстановил свой BIOS после неудачной прошивки coreboot. Примеры прошивки под DOS и Linux, немного фотографий и рассказ об одном из самых брутальных способов оживления мертвой материнки.

http://blindage.org/?p=3827

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

Замена песочным часам в терминале

Иногда в окне терминала требуется функциональность песочных часов. Предлагается решение:

4
Ваша оценка: Ничего Рейтинг: 4 (3 голоса)

Вывод сообщений статуса в bash скрипте

При написании shell скриптов часто возникает необходимость отображать действия скрипта и информацию о то выполнилось действие или нет, чтобы примерно выглядело как выполнение init.d скриптов при загрузке системы.

Примерно вот так:

 * Производится действие 1          [DONE]
 * Производится действие 2          [FAIL]
это ошибка действия 2
4.5
Ваша оценка: Ничего Рейтинг: 4.5 (2 голоса)
i-sat аватар

Мультибут разных LiveCD ISO

Порой возникает желание или необходимость посмотреть на что способен тот или иной дистрибутив Linux без его установки на HDD.

Сейчас это не так сложно, многие дистрибутивы сейчас выкладывают свои LiveCD, однако, каждый раз ждать пока запишется CD или тем более DVD диск, а кроме того каждый раз тратить болванку на каждую Альфу и Бэту очень грустно.

Если у Вас уже установлен Linux и grub, то можно существенно облегчить себе жизнь...

0
Ваша оценка: Ничего

Как скопировать файлы из другой ветки репозитория git

Что же делать, если нужно скопировать файлик из одной ветки git в другую? Браться за голову и делать это руками? Совсем нет. :)

Достаточно сделать в нашей ветке, где файла нет вот такое действие:

$ git checkout другая_ветка путь_к_файлу

и файл магически скопируется из другая_ветка. Останется добавить его и закоммитить.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

Узнать время в другом часовом поясе

Иногда нам хочется узнать время в другом часовом поясе. Иногда (но еще реже) нам нужно, чтобы таймзона нашего пользователя была не такой, как системная. Для этого существует переменная окружения TZ, в которую можно записать значение и получить нужный эффект.

$ date
Fri Feb 18 10:22:53 EET 2011
 
$ TZ="America/Chicago" date
Fri Feb 18 02:22:53 CST 2011

Узнать название зоны поточнее всегда можно в каталоге /usr/share/zoneinfo.

0
Ваша оценка: Ничего
bliznezz аватар

автоматическое создание временных каталогов при переходе в них

Часто бывает, что хочешь зайти в /tmp/somedir и натворить там гадостей. А оказывается, что /tmp/somedir уже нету. Или не было никогда и надо её сначала создать. Тогда приходится поступать так:

$ cd /tmp/somedir 
cd: no such file or directory: /tmp/somedir
$ mkdir -p $_ && cd $_

Но надоело!
Хочу, чтобы если я пытаюсь перейти в несуществующий подкаталог в /tmp, оболочка автоматически создавала этот подкаталог и переходила в него.
Вот этот алиас, в виде bash-функции, для добавления в ~/.bashrc

function cd_alias ()
{
    targetdir=$(readlink -m "$@")
    [[ ${targetdir:1:5} == "/tmp/" ]] &&  [[ ! ( -d "${targetdir}" ) ]] && mkdir -p "${targetdir}"
    cd ${targetdir}
}
alias cd="cd_alias "

под катом объяснение как это работает.

0
Ваша оценка: Ничего

KVM: добавление паравиртуального диска в ВМ без перезагрузки

В KVM паравиртуальный диск добавлятся как обычный SCSI (?) диск, но подключенный к отдельному SCSI-контроллеру, подключенному к шине PCI, а шина PCI в KVM поддерживает hotplug :) Т.е. со стороны ВМ потребуется пересканировать не SCSI, а PCI шину.

Итак

  • Добавляем диск со стороны KVM. Проще всего сделать это через virt-manager, но я пример будет консольного virsh.

    virsh -c qemu:///system attach-disk vm_test /dev/mapper/vgpool-lvtest--ch vdb

    Название добавляемого диска должно быть вида vd*. Если указать sd*, добавлен будет полностью виртуализуемый scsi-диск.
  • Со стороны ВМ пересканируем PCI шину:
    # echo '1' > /sys/bus/pci/rescan
    # dmesg | tail 
     
    [ 4080.181985] virtio-pci 0000:00:06.0: irq 30 for MSI/MSI-X 
    [ 4080.183123]  vdb: vdb1
0
Ваша оценка: Ничего

Удалённо задействовать magic keys (SysRq)

Оказывается, SysRq ( http://ru.wikipedia.org/wiki/SysRq ) ключи можно использовать и удалённо, через /proc/sysrq-trigger

Например, перезагрузка

# echo b > /proc/sysrq-trigger

Понадобится может редко, зато спасёт в сложной ситуации

0
Ваша оценка: Ничего

Руководство по запуску игры StarCraft II: Wings of Liberty

Игра существует в вариантах для Windows и MAC OS X. Завайте запустим Windows-версию с помощью Wine!
Лично я использовал версию Wine 1.2. Ваша версия Wine может отличаться. Я буду рассматривать особенности именно версии 1.2 (или примерно такой).
Вставляем установочный компакт-диск и видим, что почти всех установочных файлов на диске нет! В чём дело?! Лично я не знаю, знаю только, что нужно поключать DVD-диск с опцией unhide.

1). Подключение DVD-диска.

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

# mount -o ro,unhide,uid=1000 /dev/cdrom /mnt/cdrom

1
Ваша оценка: Ничего Рейтинг: 1 (2 голоса)

Сборка VirtualBox с интерфейсом Qt 3

Не любитель KDE4. Поэтому во всех популярных дистрибутивах, которые я установил на свой жёсткий диск, у меня графический рабочий стол KDE 3. Никаких проблем нет: ни с новым компилятором GCC 4.4, ни с ядром 2.6.34, ни с X-Server 1.8 - всё работает отлично! Программа Opera и менеджер печати у драйвера hplip тоже имеют Qt3-интерфейс, который прекрасно работает!
Захотел я сделать себе VirtulBox с Qt3, за компанию. Поискал, в какой версии этот интерфейс исключили из программы - выяснилось, что из 2.2. Но я могу и ошибаться: это нигде не указано явно. Какая версия последняя перед 2.2? 2.1.4. Компилируем её!

2
Ваша оценка: Ничего Рейтинг: 2 (1 vote)

когда лень читать много букав

...Можно выделить текст, кликнуть мышкой на нужную иконку тут где-нибудь на панели, и прослушать. Но сперва...

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
Vaulter аватар

Conky network widget

Даже не знаю как начать :) Ибо для тех кто в теме, могу сразу дать скрины и конфигу :)

Для не знающих conky - это
Потом читаем сначала ;)

ps: я знаю, что conky бесконечен, и мой виджет далеко не идеал! :) И мне есть куда стремиться, но сами знаете... ;)

Спасибо, жду ОЦУ и идей

0
Ваша оценка: Ничего

Листинг без ls

Случилось поковыряться в ADSL-модеме (конкретно, в D-Link DSL-2500U). Оказалось, что Busybox там без поддержки ls и еще нескольких нужных команд. Но выкрутиться можно.
К примеру, просмотреть директорию можно однострочником:

$ for i in * ; do echo $i ; done

либо указывая конкретную директорию:

$ for i in /usr/bin/* ; do echo $i ; done

Для большего комфорта можно зарядить это в скриптик:

$ echo -e '#!/bin/sh\ntest !$1 && p=`pwd`\ntest $1 && p=$1\nfor i in $p/* ; do echo $i ; done' >/var/ls
$ chmod +x /var/ls
$ export PATH=PATH:/var/
4.5
Ваша оценка: Ничего Рейтинг: 4.5 (2 голоса)
ramok аватар

Пример замены n-го появления строки в файле

Задача была озвучена так:

Цитата:

20:19 < todd_dsm> hey all, I have 1 file to modify (httpd.conf) I need to change the 2nd of for occurrences of "AllowOverride None". Is there a way do change the 2nd occurrence and leave 1,3, and 4 untouched?

Примерный перевод

Цитата:

У меня есть httpd.conf. Мне надо заменить второе появление в файле "AllowOverride None". Есть возможность заменить второе появление, не тронув первое, третье и четвертое?

Ответ:
Пример заменяет второе появление "AllowOverride None" на "replace".

$ printf "AllowOverride None\nAllowOverride None\nAllowOverride None\nAllowOverride None\n" |
    awk '/AllowOverride None/ && (++i == 2) {print "replace";next}{print}'

На sed

$ printf "AllowOverride None\nAllowOverride None\nAllowOverride None\nAllowOverride None\n" |
       sed -e '/AllowOverride None/{x;/^1$/{x;s/.*/replace/;x};s/$/1/;x}'
0
Ваша оценка: Ничего
ramok аватар

Потоковое редактирование на месте с помощью ed

Для того что бы заменить строчку в файле часто используется sed с ключиком -i.
Но не все знают что sed на самом деле создает копию файла и заменяет его на оригинал (не лишнее будет прочитать в man sed что на самом деле обозначает -i).
Проверить это можно так:

$ echo 1 > z.txt && ls -li z.txt && sed -i 'i1' z.txt && ls -li z.txt && rm z.txt
5290353 -rw-rw-r-- 1 ramok ramok 2 Апр  7 13:00 z.txt
5290354 -rw-rw-r-- 1 ramok ramok 4 Апр  7 13:00 z.txt

Здесь создается пустой текстовый файл, выводится номер его inode, затем с помощью sed добавляется '1', и снова выводится inode файла.
Видно что inode изменился.
При этом копия файла создается в текущей директории. Увидеть это можно так:

$ echo 1 > z.txt && ls -li z.txt && strace sed -i 'i1' z.txt 2>&1 | grep open && ls -li z.txt && rm z.txt
879149 -rw-rw-r-- 1 komar komar 2 Апр  7 13:06 z.txt
open("/etc/ld.so.cache", O_RDONLY)      = 3
4.75
Ваша оценка: Ничего Рейтинг: 4.8 (4 голоса)