Кратки съвети
Тук може да намерите полезни съвети и примери за много ситуации.
apache
bash
cmd
database
java
javascript
linux
mod_rewrite
mssql
mysql
oracle
os
perl
php
regex
rsync
ssh
svn
unix
web_design
windows
Тире в регулярен израз
Има една особеност при използване на тире при ereg(). Например ако искаме един низ да е само от букви, цифри, точки и тирета, трябва да се постави тирето накрая на списъка. За разлика от точката, не слагайте обратна наклонка преди него:ereg('^[a-zA-Z0-9\.-]+$', $string)
Копиране на Volume serial number на дискета
Когате правите копие с Copy Disk на дадена дискета, полученото копие е напълно идентично с оригинала, освен една малка подробност: Volume serial number.
Поради това някои производители използват това като защита срещу копиране. Ето как да се промени този номер в Linux:
С mdir от пакета mtools може да видите серийния номер на оригинала, например 173c-10db
Слагате копието във флопито и изпълнявате следната команда, която запазва неговия сериен номер във файла floppy.vsn
dd if=/dev/floppy bs=1 count=4 skip=39 > floppy.vsn
С произволен hex редактор, например hexedit редактирате файла, така че да съдържа новия номер. Тук има една особеност - байтовете са подредени наобратно. Така че ако се стремите да постигнете номер 173c-10db, трябва да запишете във файла db 10 3c 17
Записвате новия номер върху копието:
dd of=/dev/floppy bs=1 count=4 skip=39 < floppy.vsn
Търсене и замяна на низ в Bash
За да замените всички срещания на 'yy' с 'zz' в променливата X, използвайте следния израз:${X//yy/zz}
Един пример:
ORIG="foo to the bar"
REPLACED=${ORIG//bar/baz}
echo $REPLACED
Резултатът е:
foo to the baz
Argument list too long или използване на xargs
Да предположим, че искате да изтриете всички jpeg картинки от няколко директории. Пишете:rm -f `find . -name *.jpg -type f`но получавате само "Argument list too long" ("Твърде дълъг списък с аргументи"). За да се справите с този проблем използвайте xargs, който ще раздели автоматично списъка на няколко по-малки и ще ги подаде на rm:
find . -name *.jpg -type f | xargs rm -fПо този начин командата rm се изпълнява няколко пъти и резултата е на лице - файловете са изтрити.
Стартиране на няколко X сървъра
За да стартирате няколко X сървъра, ползвайте следната команда:startx -- :1където :1 трябва да е уникално за всеки един отделен, тоест вторият е :2 и т.н. За превключване между различните се ползва Ctrl + Alt + F7, F8 и т.н.
Създаване на файлове с определена големина чрез dd
За да създадете файл с произволно съдържание и точно определена дължина, бързо удобно е да се използва dd. Ето няколко примера.Файл test1.bin, с големина 10k и съдържание от нулеви байтове:
dd bs=1024 count=10 if=/dev/zero of=test1.bin
Файл test2.bin, с големина 100k и случайно съдържание:
dd bs=1024 count=100 if=/dev/random of=test2.bin
Горният пример е доста бавен, особено за големи файлове, затова ето един начин за бързо генериране на относително случайни данни:
dd bs=1024 count=100 if=/dev/hda of=test2.bin skip=1000
Тази команда взима 100k данни от твъдият диск като започва от 1М след началото.
Последната дума от низ в bash
Последната дума може да се вземе с командата awk '{print $NF}':echo "one two three" | awk '{print $NF}'
връща
three