Archive for the ‘freebsd’ Category

Flack в mp3

Thursday, March 27th, 2008

Файл перевода, переводит в mp3 формат все файлы с расширением Flack

#!/bin/bash

for file in *.flac
do
	echo Converting $file
	flac123 -q --wav=- "$file" | lame - "$file".mp3
done

Post запрос через curl

Tuesday, February 12th, 2008

Используя аргумент -d можно создавать POST запрос

$ curl -d 'name=u00009_mymans&int=10' http:someurl/test.php

и если в test.php поставить строчку

print_r($_POST);

то ответ будет

Array
(
    [name] => u00009_mymans
    [int] => 10
)

xsltproc

Friday, February 1st, 2008

Трансформировать xml через xslt можно прямо в консоли используя команду

xsltproc file.xsl file.xml > file.html

Если в самом xml прописан стиль

<?xml-stylesheet type="text/xsl" href="test4.xsl"?>

то xslt файл вовсе не нужно указывать.

xsltproc file.xml > file.html

ps: по умолчанию xsltproc установлен в mac os x, во FreeBSD надо поднимать из портов.

sudo для AppleScript

Friday, January 18th, 2008

Как известно sudo предоставляет возможность пользователям выполнять команды от имени root.
Стоит ввести простую команду вставив впереди sudo как система запросит рутовый пароль.

$ sudo ls
WARNING: Im ....
Password:

Как же быть если команда выполняется через AppleScript?

do shell script "ls" password "pass" with administrator privileges

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

Удаляем файлы .DS_Store

Thursday, January 17th, 2008

DS_Store служебные файлы для Finder постоянно путатся под ногами на Юниксовых серверах, поэтому команда для их удаления.

$ find . -name *.DS_Store -type f -exec rm {} \;

Исправляем старый php с помощью perl

Friday, January 4th, 2008

Как известно, а если нет то огорчит, шестая версия php больше не будет поддерживать такой синтаксис как <? или <?=. И если в пятерке этот можно было поправить в php.ini файле и разрешить работу старых объявлений, теперь это будет не возможно. Что же делать? Горевать? Нет, использовать этот небольной код

find * -type f -exec perl -i -wpe 's/<\?[^(=|php)]/<\?php /g;
s/<\?=/<\?php echo /g;' {} \;

Итак, чем он занимается.

find * -type f - находим все файлы
-exec perl -i -wpе - натравливаем на них perl с его регуляркой
s/<\?[^(=|php)]/<\?php /g; - первая проверка, найти все s/<\?=/<\?php echo /g;’ - вторая проверка ловит старые коды <?= и меняет их на <\?php echo

в результате код

<?
	phpinfo();
?>
<?=$e?>
<?php $e++; ?>

выглядит так

<?php
	phpinfo();
?>
<?php echo $e?>
<?php $e++; ?>

PS: Вставляя в командную строку не забудьте соединить обе строки.
PS2: И сделать бакап ;)

Поиск библиотек

Saturday, December 29th, 2007

Бывает что при установке программе требуется та или иная библиотека, на разных *nix системах они могут быть не там где их ищет установочная configure. В таком случае лучше всего воспользоваться командой

ldconfig -r

или еще быстрым способом

ldconfig -r | grep NAME

Установка переменных среды в Bash

Saturday, December 29th, 2007

Некоторые программы требуют установить переменные среды перед тем как начать установку. Например Sablot-1.0.3 

$ ./configure --help
...
Some influential environment variables:
LDFLAGS     linker flags, e.g. -L<lib dir> if you have
            libraries in a nonstandard directory

мне нужно было установить переменной  LDFLAGS значение -L/usr/local/lib, для этого надо было сделать так:

LDFLAGS="-L/usr/local/lib";
export LDFLAGS

и проверить все ли верно.

echo $LDFLAGS
-L/usr/local/lib

Значит все верно.

Добавляем каталог в PATH

Friday, December 21st, 2007

С помошью этой команды можно добавить нужный каталог в конец

PATH=$PATH:/data/myscripts

или начало

PATH=/data/myscripts:$PATH

Файл без комментариев

Friday, December 21st, 2007

Ну просто клевый код для командной строки. Убирает из файла все строки которые закомментины по никсовски значком # в начале строки для просмотра,

$ sed -e '/^#/d' $1 | more

или в другой файл

$ sed -e '/^#/d' $1 > $1.nocomments

Удобен для файлов .conf.