ShER424

Главная | Шпоры | Гостевая

Просто сохранил шпаргалки для себя.

Красотой листингов кода пришлось пожертвовать ради желаемой ширины - они переносятся по символам. На копирование не влияет. Но в старых браузерах страница наверняка всё равно расползётся : (

Linux
GrUB
fstab
Всякое полезное
VGA
Сети
Мультимедиа
постУстановочный синдром
Справочное руководство Mandrakelinux 10.1
Windows
Постустановочный синдром
Web
Выдача страницы в иной кодировке
Обработка данных в иной кодировке
Подсветка синтаксиса для PHP - GeSHi
Архив учебника по HTML, знаменитой странички "Postroika.ru"
Скачать "Postroika.ru" в ZIP (291 кБ)
Шузы
Инструкция к продукции Camelot, формат HTML.
Инструкция к продукции Camelot, формат TIFF, в ZIP-архиве, 3,8 Мб.

http://bash.org.ru/quote/407820

С форума:
xxx:
это нормально - когда в линуксе что то через жопу приходится делать - то линуксоидам это не нужно
yyy:
Еще раз объясняю принципы СПО.
Видишь голую жопу - сшей трусы и отдай владельцу жопы.
Не умеешь шить - сообщи владельцу жопы, где трусы можно купить.
Не знаешь где купить - просто скажи владельцу жопы "А у вас жопа голая!".
Не хочешь делать ничего из предложенного - заткнись, не твое дело.

Linux

GrUB

GRUB2 - загрузка последней выбранной ОС:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Разрешение GRUB2 и консоли:

/etc/default/grub:
GRUB_GFXMODE=1920x1080x32
GRUB_GFXPAYLOAD_LINUX=keep

# update-grub

dd и MBR:

http://www.youisbee.ru/index.php/documents/25-linux/62-dd.html

Команда, которая скопирует нам MBR в файл backup.mbr выглядит так:

# dd if=/dev/hda of=backup.mbr bs=512 count=1

1+0 записей считано
1+0 записей написано
скопировано 512 байт (512 B), 0,000358146 секунд, 1,4 MB/s
Резервная копия создана, теперь главное не забыть, где она лежит. И если какой-нибудь вредный дистрибутив криво установит нам загрузчик Grub, то мы спокойно проделаем обратную операцию:
# dd if=backup.mbr of=/dev/hda bs=512 count=1

Настройка Grub для второго HDD:

http://jedi-linux.blogspot.com/2008/04/grub-hdd.html

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

Предистория.
В моей системе используется один жесткий диск (sda1), который полностью отдан во владение Kubuntu 7.10. И вот на днях, возникла необходимость установить Windows-XP на отдельный жесткий диск.

Отключив свой жесткий диск с Kubuntu, и подключив диск для Windows как второй SATA была произведена установка системы, после чего первый винт был возвращен на свое место. Но при загрузке второй операционки, возникли реальные трудности.

Теперь задача - добиться загрузки обоих систем выбором соответствующего пункта из загрузчика.

Параметры Grub.
Основные параметры загрузчика задаются в файлах menu.lst и device.map, которые находятся в директори /boot/grub/.

В Kubuntu, по-умолчанию, файл device.map выглядит так:

(hd0) /dev/sda
а строки загрузки в menu.lst - вот так (с сокращенной строкой root=UUID):
title  Ubuntu 7.10, kernel 2.6.22-14-generic
root  (hd0,0)
kernel  /boot/vmlinuz-2.6.22-14-generic root=UUID=... ro quiet splash locale=ru_RU
initrd  /boot/initrd.img-2.6.22-14-generic
quiet

title  Ubuntu 7.10, kernel 2.6.22-14-generic (recovery mode)
root  (hd0,0)
kernel  /boot/vmlinuz-2.6.22-14-generic root=UUID=... ro single
initrd  /boot/initrd.img-2.6.22-14-generic

title  Ubuntu 7.10, memtest86+
root  (hd0,0)
kernel  /boot/memtest86+.bin
quiet
Ну а теперь о тех изменения, которые пришлось внести в конфигурационные файлы загрузчика Grub.

Шаг 1.
Создаем, а точнее добавляем появившийся диск в "карту" загрузчика. Для этого в файле /boot/grub/device.map добавляем строку того устройства, который подключили. В моем случае выглядит так:

(hd0) /dev/sda
(hd1) /dev/sdb
Как я понимаю, цифра после слова hd показывает порядковое состояние винта по контроллерам. Т.е. получается что для SATA-дисков будет такая нумерация:
* (hd0) = /dev/sda
* (hd1) = /dev/sdb
* (hd2) = /dev/sdc
* (hd3) = /dev/sdd

Ну а для IDE-дисков соответственно:

* (hd0) = /dev/hda
* (hd1) = /dev/hdb
* (hd2) = /dev/hdc
* (hd3) = /dev/hdd

и так далее...

Шаг 2.
Тут необходимо учитывать, что Windows "желает" грузиться только с первого диска. А так как он реально находится на втором HDD, то его необходимо "обмануть". Делается это командой map. С ее помощью можно отобразить hd0 как hd1 и hd1 как hd0 - иначе, можно виртуально переставлять жесткие диски.

В итоге, добавленные строки дополнительного пункта меню для загрузки еще одной операционки в файл /boot/grub/menu.lst выглядят так:

title  Windows-XP
rootnoverify (hd1,0)
map (hd0) (hd1)
map (hd1) (hd0)
makeactive
chainloader +1
Вот и все! Все грузится, все работает.
:-)
^наверх

fstab

fdisk:

Просмотреть список разделов:
fdisk -l

ntfs:

/dev/sdaN /media/win ntfs-3g auto,user,locale=ru_RU.UTF-8 0 0
# /dev/sdaN
UUID=6E6448086447D18F /mnt/win_d ntfs-3g auto,user,locale=ru_RU.UTF-8 0 0

bind:

mount -o bind /home/user/что /home/user/куда
/home/user/что      /home/user/куда    none      bind     0      0
^наверх

Всякое полезное

Поворот дисплея

$ xrandr -o left
	    right
	    inverted
	    normal

Пакетное перекодирование

user@user-pc:~$ recode CP1251..UTF8 file.txt'

Пакетная замена текста

user@user-pc:~$ rpl 'windows-1251' 'UTF-8' *

Удаление метаданных изображений, в том числе и пакетное

user@user-pc:~$ mogrify -strip *.jpg
(в составе ImageMagick)
^наверх

VGA

Modeline

user@comp:~$ gtf 1600 1200 60

  # 1600x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 160.96 MHz
  Modeline "1600x1200_60.00"  160.96  1600 1704 1880 2160  1200 1201 1204 1242  -HSync +Vsync

Настройка xorg.conf для GeForce FX 5700VE (драйвер 173.14.XX)
при подключении монитора к DVI:

Section "Device"
	Identifier	"nVidia Corporation NV36.4 [GeForce FX 5700VE]"
	Driver		"nvidia"
	BusID		"PCI:1:0:0"
	Option		"RenderAccel" "1"
	Option		"UseDisplayDevice" "CRT-1"
	#Или:
	#Option		"ConnectedMonitor" "CRT-1"
EndSection
^наверх

Сети

net send через smbclient

user@comp:~$ echo "сообщение" | smbclient -M имя_машины -I ip-адрес

Узнать динамический IP сервера (cron+wget+сайт на PHP)

PHP-скрипт (ip.php, например)
<?php
# Записываем IP в переменную $ip
   $ip = $_SERVER["REMOTE_ADDR"];
# Записываем дату в переменную $day
   $day = date("Y-m-d");
# Записываем время в переменную $tim
   $tim = date("H:i:s");
# Запись в лог-файл, лежащий в папке log (для истории))
   $log = fopen("/home/u/user.hosting.ru/WWW/ip/log/".$day.".log", "a");
	fputs($log,$tim." - ".$ip."\n");
	fclose($log);
# Запись в файл, предназначенный для просмотра браузером
   $one = fopen("ip.htm", "w");
	fputs($one,$ip." - ".$day."/".$tim);
	fclose($one);
# Выводим сообщение для забредших случайно
   echo "All good!";
?>
Редактируем crontab от имени user
$ crontab -u user -e
добавляем задание
*/30 * * * * wget -q --spider http://user.hosting.ru/ip/ip.php
В данном случае wget запускается каждые 30 минут. С ключем --spider ничего не качает, просто обращается к скрипту. -q не даёт засорять системную почту ненужными сообщениями от wget.
На выходе имеем:
http://user.hosting.ru/ip/ip.htm
87.250.251.3 - 2012-12-24/16:58:16
http://user.hosting.ru/ip/log/2012-12-21.log (на каждый день - свой)
14:58:17 - 93.158.134.11
15:28:16 - 93.158.134.11
15:58:17 - 87.250.251.3
16:28:17 - 87.250.251.3
16:58:16 - 87.250.251.3
Помогли материалы: fopen, cron, man wget. Подсветка синтаксиса - GeSHi
^наверх

Мультимедиа

Стирание CD в Linux:

cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force

Monkey's audio в Ubuntu:

http://www.kubuntu.ru/node/278#comment-1280
В адепте в управлении репами, на второй вкладке делаеш эдд вот этот адрес:
deb http://morgoth.free.fr/ubuntu feisty-backports main

После этого вколачиваешь в поиск audacious и ставишь его, плагины, экстра плагиныи и audacious-mac. После этого у меня все сразу стало воркать.

Конвертилка есть не скриптовая а с гуём, зовут soundkonverter, именно так, а не через С, к ней тоже можно понаставить плагинов. Конвертит в фоне с низким приоритетом. Хотя теперь для меня вопрос с музыкой закрыт, у меня вся музыка в обезьяне, музепаке и мптришках, только залетное в других форматах, но, пока, все проигрывалось без затыков.
...
Сергей.

^наверх

постУстановочный синдром

Пользователя в sudoers:

# usermod -aG sudo USERNAME

Разрешить пользователю играться со своим beep`ером:

# usermod -aG input USERNAME
После - перезагрузить.
Или так(?): Debian 11, beep для пользователя
Нужно добавить пользователя в группу beep:
# usermod USERNAME -a -G beep

Debian: время по localtime [>>]

Почитай внимательно man hwclock.

В твоей ситуации следует удалить /etc/adjtime, поправить время и скинуть его в железное (--systohc). Последняя операция должна делаться автоматически при опускании системы.

Время в linux. UTC или localtime? (localtime, конечно!) [>>]

В файле /etc/adjtime хранится величина отклонения аппаратных часов и какое время они показывают, локальное или UTC.
hwclock --systohc --localtime

How to fix bluetooth receive file failure in Linux Debian 13 [>>]

There is an issue in Debian 13 Linux where bluetooth file transfers between devices fail. Moreover, the phone receives files sent from the computer alright, but the computer does not receive any files and file transfer fails repeatedly.
To overcome this problem, go to Settings -> Startup Applications -> Blueman Applet. Click on the pen icon below the list to Edit the entry. Set the Startup delay to 2 instead of 0.
Reboot and see if it works.

5кн. мышь (Ubuntu) [>>]

user@comp:~$ sudo apt-get install xvkbd xbindkeys
Откройте конфиг окружения:
user@comp:~$ sudoedit /etc/environment
И добавьте в PATH путь /usr/X11R6/bin, чтобы в результате получилось примерно следующее:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/X11R6/bin/"
Перезагрузить.
Создайте конфиг XBindKeys - ~/.xbindkeysrc :
"xvkbd -xsendevent -text "\[Alt_L]\[Left]""
  m:0x0 + b:6
"xvkbd -xsendevent -text "\[Alt_L]\[Right]""
  m:0x0 + b:7
Xorg.conf
Section "InputDevice"
	Identifier	"Configured Mouse"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"	"/dev/input/mice"
	Option		"Protocol" "ExplorerPS/2"
	Option		"Buttons" "7"
	Option		"ZAxisMapping"	"4 5"
	Option		"ButtonMapping" "1 2 3 6 7"
	Option		"Emulate3Buttons"	"true"
EndSection

Настройка правильной русской раскладки, если начали глючить ,. (было такое в Мандриве)

Section "InputDevice"
	Identifier	"Generic Keyboard"
	Driver		"kbd"
	Option		"CoreKeyboard"
	Option		"XkbRules"	"xorg"
	Option		"XkbModel"	"pc105"
	Option		"XkbLayout"	"us,ru"
	Option		"XkbVariant"	",winkeys"
	Option		"XkbOptions"	"grp:alt_shift_toggle,grp_led:none"
EndSection

Проблемы с Google Earth в Debian Lenny x64:

https://mmarkov.org/wiki/tiki-read_article.php?articleId=7&show_comzone=y
Mike

Проблемы при отображении русских (кириллических) шрифтов в Google Earth 5
Данную проблему достаточно легко устранить (рецепт для i386):
$cd ~/bin/google-earth$
$ mv libQtCore.so.4 libQtCore.so.4.dist
$ mv libQtGui.so.4 libQtGui.so.4.dist
$ mv libQtNetwork.so.4 libQtNetwork.so.4.dist
$ mv libQtSql.so.4 libQtSql.so.4.dist
$ mv libQtWebKit.so.4 libQtWebKit.so.4.dist
$ mv libQtXml.so.4 libQtXml.so.4.dist
как правило все нужные библиотеки уже находятся в системе, однако бывает что искомых библиотек нет. В таком случае просто установим нужные нам пакеты:
$sudo apt-get install libqtcore4 libqtgui4 libqt4-network
libqt4-sql libqt4-webkit libqt4-xml
P.S. чуть позднее всплыл еще один баг, а именно:
googleearth-bin: relocation error: /usr/lib/i686/cmov/libssl.so.0.9.8:
symbol BIO_test_flags, version OPENSSL_0.9.8 not defined in file
libcrypto.so.0.9.8 with link time reference
решение таково:
$mv libcrypto.so.0.9.8 libcrypto.so.0.9.8.dist
Хотя что-то мне подсказывает что это не последняя проблема :(
http://linuxforum.ru/index.php?showtopic=87938&view=findpost&p=819592

Lennox

Цитата
>>Там нужно в паре мест подставить ключи "force".

не пашет, проверено

Итак господа - Я покорил земной шар! Бу-го-га!
Звучит пафосно но в данном случае уместно =)

1.

su
apt-get install ia32-libs ia32-libs-gtk ia32-apt-get lib32nss-mdns

2.

wget http://dl.google.com/earth/client/current/...eEarthLinux.bin
su
chmod +x GoogleEarthLinux.bin
./GoogleEarthLinux.bin

3. переименовываем или удаляем /opt/google-earth/libcrypto.so.0.9.8 (/usr/lib/googleearth/libcrypto.so.0.9.8)

4. для запуска без su удаляем или переименовываем ./config/Google и ./googleearth

Voila!

Перенос пользовательских настроек (не всех ;)

...С программами покончено, теперь вы вероятно хотите перенести на liveCD свои пользовательские настройки. Это можно сделать, скопировав файлы и папки вида '.имяфайла' из вашего домашнего каталога в домашний каталог пользователя ubuntu на liveCD. Но последний нужно сначала создать:
sudo mkdir ~/tmp/remaster-root/home/ubuntu
Для копирования файлов в liveCD вам потребуются права суперпользователя. Запустите файловый менеджер nautilus следующим образом:
sudo nautilus ~/tmp/remaster-root/home/ubuntu
(если вы используете KDE, замените nautilus на konqueror) Вот некоторые папки и файлы, представляющие для нас интерес: .kde, .qt, .local – настройки всех программ графической среды KDE .config, .gconf, .gnome, .gnome_private, .gnome2, .gnome2_private, .gstreamer-*, .icons, .themes, .evolution, .metacity, .nautilus, .gtk-bookmarks, .gtkrc-1.2-gnome2, и другие .gtkrc* – настройки программ, составляющих среду Gnome .gaim – настройки интернет-пейджера Gaim (включая все учётные записи и пароли) .gimp-* - настройки редактора изображений GIMP .mozilla – настройки браузера Firefox .openoffice.org2 – настройки офисных программ из OpenOffice.org Desktop – рабочий стол ;-) .dmrc – какая графическая среда запускается по умолчанию .fontconfig, .fonts, .fonts.conf – шрифты и их настройки После копирования файлов необходимо присвоить их пользователю ubuntu, который используется по умолчанию в liveCD
sudo chown -R 999:999 ~/tmp/remaster-root/home/ubuntu
Источник
Я бы сюда добавил .cache, .config (выборочно).

.bashrc [>>]

Последние строчки позволяют сохранять историю хоть в 100, одновременно открытых терминалах.
 #Чтобы одинаковые команды не сохранялись в истории, добавьте строчку:
 HISTCONTROL=ignoredups
 #Не добавлять запись в историю команд, если команда начинается с пробела:
 HISTCONTROL=ignorespace
 # стираются все повторения, в том числе идущие
   не подряд,  но в  разной последовательности. 
  (например, после cd..ls..cd..ls останется cd и ls)
 HISTCONTROL=erasedups
 # Чтобы история команд сохранялась сразу после ввода
  (а не во время закрытия терминала)
 shopt -s histappend
 PROMPT_COMMAND='history -a'

Любимые шрифты в MATE

(а то в новых версиях debian умолчальные шрифты ударились в бубунтоподобие какое-то).
^наверх

Windows

Постустановочный синдром

Удаление MSN Messenger .BAT

@echo off
echo Removing Microsoft Messenger...
rundll32 advpack.dll,LaunchINFSection %WinDir%\inf\msmsgs.inf,BLC.Remove
 
echo Disabling it from running in the future...
echo REGEDIT4>%temp%\nomsngr.reg
echo
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Messenger\Client]>>%temp%\nomsngr.reg
echo "PreventRun"=dword:00000001>>%temp%\nomsngr.reg
echo "PreventAutoRun"=dword:00000001>>%temp%\nomsngr.reg
echo "PreventAutoUpdate"=dword:00000001>>%temp%\nomsngr.reg
echo "PreventBackgroundDownload"=dword:00000001>>%temp%\nomsngr.reg
echo "Disabled"=dword:00000001>>%temp%\nomsngr.reg
regedit /s %temp%\nomsngr.reg
Подсветка синтаксиса - GeSHi
^наверх

Web

Выдача страницы в иной кодировке

<?php
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE") !== false) {
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "CP1251");
ob_start("ob_iconv_handler");
$char="Windows-1251";
}
else {
$char="UTF-8";
}
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html> 
<head> 
<meta http-equiv=Content-Type content="text/html; charset=<?php print($char);?>">

Обработка данных в иной кодировке

// перекодирование_cp1251-utf8
if (strpos($_SERVER["HTTP_USER_AGENT"], "MSIE") !== false) {
foreach ($_POST as $key => $string) {
  $_POST[$key] = iconv("CP1251", "UTF-8", $string);
}
}
// end_of_перекодирование

Подсветка синтаксиса - GeSHi

^наверх

цОПЫРИГХТ сХер424