Кратки съвети

Тук може да намерите полезни съвети и примери за много ситуации.

 

1 2 3 4 5 6

Тире в регулярен израз

Има една особеност при използване на тире при ereg(). Например ако искаме един низ да е само от букви, цифри, точки и тирета, трябва да се постави тирето накрая на списъка. За разлика от точката, не слагайте обратна наклонка преди него:
ereg('^[a-zA-Z0-9\.-]+$', $string)

Копиране на Volume serial number на дискета

Когате правите копие с Copy Disk на дадена дискета, полученото копие е напълно идентично с оригинала, освен една малка подробност: Volume serial number.

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

1 2 3 4 5 6