Полезные советы. Перенаправление stdout.

Команды запускаются из shell интерактивно. Такой процесс имеет два стандартных вывода информации: stdout для нормальной работы и stderr для вывода ошибок. В следующем примере /tmpp не найдено и вывод идет в stderr, а /tmp найдено и поэтому вывод идет в stdout:

$ ls /tmp /tmpp

По умолчанию оба потока выводятся на экран. При использовании знак (>) можно перенаправить вывод в файл. Для перенаправления стандартного потока используется (>), а для потока ошибок используется (2>) в файл. Либо их комбинация:

$ ls /tmp /tmpp > out.txt
$ ls /tmp /tmpp 2 > outerrors.txt
$ ls /tmp /tmpp 2 > outerrors.txt > out.txt
$ ls /tmp /tmpp > all.txt 2>&1

Для того чтобы добавить информацию в файл, а не перезаписывать нужно использовать >>.

$ ls /tmp >> out.txt

Если не нужно видеть выходной поток, то можно перенаправить вывод в специальное устройство /dev/null:

$ ls /tmp 2> /dev/null

Похожие записи:

  1. Полезные советы. Перенаправление stdin.


Полезные советы. Использование bash history.

Bash используется в большинстве современных Linux систем по умолчанию и в некоторых других (например, Mac OS x). Использование истории команд позволяет просматривать, изменять и повторно использовать команды, которые вы запускали раньше. Очень помогает при повторном использовании длинных команд.

Как только bash запускается, то файл ~/.bash_history загружается в память. Имя файла установлено в переменной $HISTFILE.

Во время сеанса работы команды добавляются в историю в памяти. При выходе из bash история записывается обратно в файл .bash_history. Количество команд, записываемых в файл истории, находится в переменной $HISTSIZE. Текущее количество команд записано в переменной $HISTFILESIZE.

$ echo $HISTFILE $HISTSIZE $HISTFILESIZE

Посмотреть список команд, наберите history. чтобы просмотреть определенное количество команд, нужно запустить с нужным числом:

$ history 5

Для перемещения между предыдущими командами используйте клавиши вверх, вниз. Для редактирования нужной команды используйте стрелку влево, стрелку вправо, Del, Backspace. В качестве альтернативы можно использовать: !! (запустить предыдущую команду), !998 (запустить 998 команду из истории), !998 *doc (добавить *doc в конец команды 998), !?CF? (запустить предыдущую команду содержащую CF), !ls (запустить предыдущую команду ls), !ls:s/CF/l (запустить предыдущую команду при этом заменив CF на l).

Альтернативный способ редактирования команды истории это использование fc команды.

$ fc

По умолчанию это редактор vi. Можно заменить редактор через переменную FCEDIT или напрямую из командной строки.

$ fc -e /usr/bin/nano 989

Для поиска строки в истории нужно использовать Ctrl+r. При нахождении строки в истории можно нажать Ctrl+r, чтобы найти еще одно предыдущее вхождение найденной строки.


Полезные советы. Создание deb пакетов.

Перестройка .deb пакета может понадобиться для лучшего использования, например добавить md5sum файлы Для начала необходимо распаковать из .deb пакета необходимые файлы, которые вы хотите изменить.

Для примера вы можете скачать и распаковать rsync пакет и управляющие файлы в текущую директорию, набрав команду:

$ aptitude download rsync

Далее распаковываем файлы из пакета и управляющие файлы.

$ sudo dpkg -x rsync_2.6.9-3ubuntu1.1_i386.deb /tmp/rsync_$RANDOM
$ sudo dpkg -e rsync_2.6.9-3ubuntu1.1_i386.deb /tmp/rsync_17197

Теперь перейдите в директорию пакета, куда вы распаковали файлы из .deb и посмотрите структуру директории:

$ cd /tmp/rsync_17197
$ ls -lart

Теперь необходимо создать специальную поддиректорию rsync_2.6.9-3cn1.1/DEBIAN (для соответствия формату dpkg, который необходим для создания .deb файла). Далее переместить в нее управляющие файлы:

$ sudo mkdir -p rsync_2.6.9-3cn1.1/DEBIAN
$ sudo mv control conffiles prerm postrm postinst rsync_2.6.9-3cn1.1/DEBIAN

Также необходимо скопировать /etc и /usr директории в rsync_2.6.9-3cn1.1:

$ sudo mv etc usr rsync_2.6.9-3cn1.1/DEBIAN

Теперь переместите md5sums файлы, созданные ранее, в поддиректорию DEBIAN и переименуйте в md5sums:

$ sudo mv /var/lib/dpkg/info/rsync.md5sums rsync_2.6.9-3cn1.1/DEBIAN/md5sums

Далее нужно открыть управляющий файл и изменить версию (Version) на rsync_2.6.9-3cn1.1, например с помощью vi:

$ sudo vi rsync_2.6.9-3cn1.1/DEBIAN/control

Также можно изменить Description. Дописать дату и причину изменения.

Теперь можно сделать пакет используя dpkg -b. на основе созданных директорий и управляющих файлов. Будет предупреждение о Original-Maintainer, можно проигнорировать данное сообщение.

$ sudo dpkg -b rsync_2.6.9-3cn1.1

У вас теперь есть .deb пакет, по которому dpkg может показать информацию с помощью опции -I:

$ dpkg -I rsync_2.6.9-3cn1.1.deb

И можно устанавливать получившийся пакет:

$ sudo dpkg -i rsync_2.6.9-3cn1.1.deb

ПАМЯТКА Для более подробной информации по построению пакета .deb воспользуйтесь howto, man и info страницами по dpkg-deb.


© 2001-2015 NLG