<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>З.П.И. &#187; bash</title>
	<atom:link href="http://wiki.dodex.org/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://wiki.dodex.org</link>
	<description>Что-то новое пришедшее в голову или интересное, найденное в интернете</description>
	<lastBuildDate>Tue, 08 Nov 2011 10:16:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Синхронизация DNS-зон c сервера с Plesk-панелью</title>
		<link>http://wiki.dodex.org/2010/12/17/dns-plesk/</link>
		<comments>http://wiki.dodex.org/2010/12/17/dns-plesk/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 15:01:06 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[plesk]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=723</guid>
		<description><![CDATA[Задача может возникнуть когда на сервере с Plesk-панелью имеется всего один IP-адрес. В данном случае, что-бы не заводить slave-зоны на другом сервере каждый раз вручную, можно в крон поставить скрипт, который и будет производить синхронизацию зон. Причем, не только добавлять новые зоны, но и удалять старые, а также не только основные домены,но и алиасы к [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-468" title="tux" src="http://wiki.dodex.org/wp-content/uploads/2008/12/tux.png" alt="" width="100" height="117" /> Задача может возникнуть когда на сервере с Plesk-панелью имеется всего один IP-адрес. В данном случае, что-бы не заводить slave-зоны на другом сервере каждый раз вручную, можно в крон поставить скрипт, который и будет производить синхронизацию зон. Причем, не только добавлять новые зоны, но и удалять старые, а также не только основные домены,но и алиасы к ним.</p>
<p>Для начала нам понадобиться создать юзера в mysql на сервере с Plesk-панелью, и дать ему права на чтение из нужных таблиц.<br />
<span id="more-723"></span></p>
<blockquote><p><code>grant select on psa.domains to dsnuser@'%' identified by 'You_paSSword';<br />
grant select on psa.domainaliases to dsnuser@'%' identified by 'You_paSSword';</code></p></blockquote>
<p>Можете вместо % использовать конкретный хост, так безопаснее, и так же не забудьте открыть для этого хоста mysql-порт(3306) на файрволе.<br />
Все остальные действия проводятся уже на сервере где должны быть slave-зоны.<br />
Далее создадим следующий скрипт, назовем его dnssync:<br />
<code> </code></p>
<blockquote><p><code><br />
#!/bin/bash</code></p>
<p><code>if [ -f /tmp/plesk-domains.txt ];then<br />
/bin/mv -f /tmp/plesk-domains.txt /tmp/plesk-domains.txt.old<br />
fi</p>
<p>/usr/bin/mysql -h plesk.server.name -u dssuser --password="You_paSSword"  -Bse "SELECT name from domains where status=0 UNION SELECT name from domainaliases where status=0 " psa &gt;/tmp/plesk-domains.txt<br />
OUT1=$?</p>
<p>if [ $OUT1 -eq 0 ];then</p>
<p>/usr/bin/diff -q /tmp/plesk-domains.txt /tmp/plesk-domains.txt.old &gt; /dev/null<br />
OUT2=$?<br />
if [ $OUT2 -ne 0 ];then<br />
echo "" &gt;/var/named/chroot/etc/plesk-zones.conf<br />
while read line<br />
do<br />
domain=$line<br />
echo "zone \"$domain\" { type slave; masters {ip_of_plesk_server;}; file \"/var/named/slaves/$domain.hosts\"; };" &gt;&gt;/var/named/chroot/etc/plesk-zones.conf<br />
done &lt; "/tmp/plesk-domains.txt"</p>
<p>echo "" &gt;&gt;/var/named/chroot/etc/plesk-zones.conf<br />
/etc/init.d/named restart &gt; /dev/null</p>
<p>fi<br />
else<br />
if [ -f /tmp/plesk-domains.txt.old ];then<br />
/bin/mv -f /tmp/plesk-domains.txt.old /tmp/plesk-domains.txt<br />
fi<br />
fi</p>
<p></code></p></blockquote>
<p><code> </code><br />
Обратите внимание на пути, в данном примере bind запущен в chroot окружении, на CentOS 5.5. У Вас пути могут отличатся, и Вам необходимо исправить их на свои. Также замените ip_of_plesk_server и plesk.server.name на IP сервера с Plesk-панелью.</p>
<p>Осталось добавить в named.conf</p>
<blockquote><p><code>include "/etc/plesk-zones.conf"; </code></p></blockquote>
<p>дать права на выполнение файлу dnssync,и поставить задание в cron, например, делать проверку каждый час:</p>
<blockquote><p><code>0 * * * * /path_to_script/dnssync </code></p></blockquote>
<p>запускаем один раз /path_to_script/dnssync<br />
рестартуем bind<br />
И все работает на ура.<br />
Больше лишних телодвижений не потребуется.<br />
Я всегда задумываюсь: все-таки именно лень заставляет нас что-то сделать, чтоб потом ничего не делать.</p>
<p>Удачи в настройках.<br />
<a href="http://twitter.com/shadow_alone">© shadow_alone</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2010/12/17/dns-plesk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как убрать комментарии из файла</title>
		<link>http://wiki.dodex.org/2008/12/12/%d0%ba%d0%b0%d0%ba-%d1%83%d0%b1%d1%80%d0%b0%d1%82%d1%8c-%d0%ba%d0%be%d0%bc%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%80%d0%b8%d0%b8-%d0%b8%d0%b7-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0/</link>
		<comments>http://wiki.dodex.org/2008/12/12/%d0%ba%d0%b0%d0%ba-%d1%83%d0%b1%d1%80%d0%b0%d1%82%d1%8c-%d0%ba%d0%be%d0%bc%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%80%d0%b8%d0%b8-%d0%b8%d0%b7-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 22:00:59 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Операционные системы]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[sed]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=465</guid>
		<description><![CDATA[Иногда бывает нудно просматривать конфигурационный файл из-за кучи коментариев, в таком случае, чтоб наглядно видеть конфиг можно сделать просто вот так: sed '/^#/d; /^$/d' real.conf &#62;new.conf здесь имеется ввиду что в новом файле new.conf будут все не пустые и незакомментированные строки из файла real.conf]]></description>
			<content:encoded><![CDATA[<p><a href="http://wiki.dodex.org/wp-content/uploads/2008/12/tux.png"><img class="alignleft size-medium wp-image-468" title="tux" src="http://wiki.dodex.org/wp-content/uploads/2008/12/tux.png" alt="" width="100" height="117" /></a> Иногда бывает нудно просматривать конфигурационный файл из-за кучи коментариев, в таком случае, чтоб наглядно видеть конфиг можно сделать просто вот так:</p>
<p><code>sed '/^#/d; /^$/d' real.conf &gt;new.conf</code></p>
<p>здесь имеется ввиду что в новом файле <em>new.conf</em> будут все не пустые и незакомментированные строки из файла <em>real.conf</em></p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2008/12/12/%d0%ba%d0%b0%d0%ba-%d1%83%d0%b1%d1%80%d0%b0%d1%82%d1%8c-%d0%ba%d0%be%d0%bc%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%80%d0%b8%d0%b8-%d0%b8%d0%b7-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Очень полезные команды Linux одним постом</title>
		<link>http://wiki.dodex.org/2008/11/26/%d0%be%d1%87%d0%b5%d0%bd%d1%8c-%d0%bf%d0%be%d0%bb%d0%b5%d0%b7%d0%bd%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-linux-%d0%be%d0%b4%d0%bd%d0%b8%d0%bc-%d0%bf%d0%be%d1%81%d1%82%d0%be%d0%bc/</link>
		<comments>http://wiki.dodex.org/2008/11/26/%d0%be%d1%87%d0%b5%d0%bd%d1%8c-%d0%bf%d0%be%d0%bb%d0%b5%d0%b7%d0%bd%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-linux-%d0%be%d0%b4%d0%bd%d0%b8%d0%bc-%d0%bf%d0%be%d1%81%d1%82%d0%be%d0%bc/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 13:29:07 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Операционные системы]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=316</guid>
		<description><![CDATA[Наиболее полезные команды Linux. Все не упомнить&#8230; значит надо записать :) uname -m uname -r     отобразить используемую версию ядра dmidecode -q     показать аппаратные системные компоненты &#8211; (SMBIOS / DMI) hdparm -i /dev/hda     вывести характеристики жесткого диска hdparm -tT /dev/sda     протестировать производительность чтения данных с жесткого диска cat /proc/cpuinfo     отобразить информацию о процессоре cat /proc/interrupts     показать [...]]]></description>
			<content:encoded><![CDATA[<p>Наиболее полезные команды Linux. Все не упомнить&#8230; значит надо записать :)</p>
<p><span id="more-316"></span><br />
uname -m<br />
uname -r     отобразить используемую версию ядра<br />
dmidecode -q     показать аппаратные системные компоненты &#8211; (SMBIOS / DMI)<br />
hdparm -i /dev/hda     вывести характеристики жесткого диска<br />
hdparm -tT /dev/sda     протестировать производительность чтения данных с жесткого диска<br />
cat /proc/cpuinfo     отобразить информацию о процессоре<br />
cat /proc/interrupts     показать прерывания<br />
cat /proc/meminfo     проверить использование памяти<br />
cat /proc/swaps     показать файл(ы) подкачки<br />
cat /proc/version     вывести версию ядра<br />
cat /proc/net/dev     показать сетевые интерфейсы и статистику по ним<br />
cat /proc/mounts     отобразить смонтированные файловые системы<br />
lspci -tv     показать в виде дерева PCI устройства<br />
lsusb -tv     показать в виде дерева USB устройства<br />
date     вывести системную дату<br />
cal 2007     вывести таблицу-календарь 2007-го года<br />
date 041217002007.00      установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)<br />
clock -w<br />
сохранить системное время в BIOS<br />
Остановка системы<br />
shutdown -h now     Остановить систему<br />
init 0<br />
telinit 0<br />
shutdown -h hours:minutes &amp;     запланировать остановку системы на указанное время<br />
shutdown -c     отменить запланированную по расписанию остановку системы<br />
shutdown -r now     перегрузить систему<br />
reboot<br />
logout     выйти из системы<br />
Файлы и директории<br />
cd /home     перейти в директорию &#8216;/home&#8217;<br />
cd ..     перейти в директорию уровнем выше<br />
cd ../..     перейти в директорию двумя уровнями выше<br />
cd     перейти в домашнюю директорию<br />
cd ~user     перейти в домашнюю директорию пользователя user<br />
cd -     перейти в директорию, в которой находились до перехода в текущую директорию<br />
pwd     показать текущюю директорию<br />
ls     отобразить содержимое текущей директории<br />
ls -F     отобразить содержимое текущей директории с добавлением к именам символов, храктеризующих тип<br />
ls -l     показать детализированое представление файлов и директорий в текущей директории<br />
ls -a     показать скрытые файлы и директории в текущей директории<br />
ls *[0-9]*     показать файлы и директории содержащие в имени цифры<br />
tree     показать дерево файлов и директорий, начиная от корня (/)<br />
lstree<br />
mkdir dir1     создать директорию с именем &#8216;dir1&#8242;<br />
mkdir dir1 dir2     создать две директории одновременно<br />
mkdir -p /tmp/dir1/dir2     создать дерево директорий<br />
rm -f file1     удалить файл с именем &#8216;file1&#8242;<br />
rmdir dir1     удалить директорию с именем &#8216;dir1&#8242;<br />
rm -rf dir1     удалить директорию с именем &#8216;dir1&#8242; и рекурсивно всё её содержимое<br />
rm -rf dir1 dir2     удалить две директории и рекурсивно их содержимое<br />
mv dir1 new_dir     переименовать или переместить файл или директорию<br />
cp file1 file2     сопировать файл file1 в файл file2<br />
cp dir/* .     копировать все файлы директории dir в текущую директорию<br />
cp -a /tmp/dir1 .     копировать директорию dir1 со всем содержимым в текущую директорию<br />
cp -a dir1 dir2     копировать директорию dir1 в директорию dir2<br />
ln -s file1 lnk1      создать символическую ссылку на файл или директорию<br />
ln file1 lnk1     создать &#8220;жёсткую&#8221; (физическую) ссылку на файл или директорию<br />
touch -t 0712250000 fileditest     модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm)<br />
Поиск файлов<br />
find / -name file1     найти файлы и директории с именем file1. Поиск начать с корня (/)<br />
find / -user user1     найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)<br />
find /home/user1 -name &#8220;*.bin&#8221;     Найти все файлы и директории, имена которых оканчиваются на &#8216;. bin&#8217;. Поиск начать с &#8216;/ home/user1&#8242;<br />
find /usr/bin -type f -atime +100     найти все файлы в &#8216;/usr/bin&#8217;, время последнего обращения к которым более 100 дней<br />
find /usr/bin -type f -mtime -10     найти все файлы в &#8216;/usr/bin&#8217;, созданные или изменённые в течении последних 10 дней<br />
find / -name *.rpm -exec chmod 755 &#8216;{}&#8217; \;     найти все фалы и директории, имена которых оканчиваются на &#8216;.rpm&#8217;, и изменить права доступа к ним<br />
find / -xdev -name &#8220;*.rpm&#8221;     найти все фалы и директории, имена которых оканчиваются на &#8216;.rpm&#8217;, игнорируя съёмные носители, такие как cdrom, floppy и т.п.<br />
locate &#8220;*.ps&#8221;     найти все файлы, сожержащие в имени &#8216;.ps&#8217;. Предварительно рекомендуется выполнить команду &#8216;updatedb&#8217;<br />
whereis halt     показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу &#8216;halt&#8217;<br />
which halt     отображает полный путь к файлу &#8216;halt&#8217;</p>
<p><strong>Монтирование файловых систем</strong><br />
mount /dev/hda2 /mnt/hda2     монтирует раздел &#8216;hda2&#8242; в точку монтирования &#8216;/mnt/hda2&#8242;. Убедитесь в наличии директории-точки монтирования &#8216;/mnt/hda2&#8242;<br />
umount /dev/hda2     размонтирует раздел &#8216;hda2&#8242;. Перед выполнением, покиньте &#8216;/mnt/hda2&#8242;<br />
fuser -km /mnt/hda2     принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем<br />
umount -n /mnt/hda2     выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты &#8220;только чтение&#8221; или недостаточно места на диске<br />
mount /dev/fd0 /mnt/floppy     монтировать флоппи-диск<br />
mount /dev/cdrom /mnt/cdrom     монтировать CD или DVD<br />
mount /dev/hdc /mnt/cdrecorder     монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-)<br />
mount -o loop file.iso /mnt/cdrom     смонтировать ISO-образ<br />
mount -t vfat /dev/hda5 /mnt/hda5     монтировать файловую систему Windows FAT32<br />
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share     монтировать сетевую файловую систему Windows (SMB/CIFS)<br />
mount -o bind /home/user/prg /var/ftp/user     &#8220;монтирует&#8221; директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в &#8220;песочнице&#8221; (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user</p>
<p><strong>Дисковое пространство</strong><br />
df -h     отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах)<br />
ls -lSr |more     выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр<br />
du -sh dir1     подсчитывает и выводит размер, занимаемый директорией &#8216;dir1&#8242; (Прим.переводчика. ключ -h работает не во всех *nix системах)<br />
du -sk * | sort -rn      отображает размер и имена файлов и директорий, с соритровкой по размеру<br />
rpm -q -a &#8211;qf &#8216;%10{SIZE}t%{NAME}n&#8217; | sort -k1,1n     показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.)<br />
dpkg-query -W -f=&#8217;${Installed-Size;10}t${Package}n&#8217; | sort -k1,1n     показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.)</p>
<p><strong>Пользователи и группы</strong><br />
groupadd group_name     создать новую группу с именем group_name<br />
groupdel group_name     удалить группу group_name<br />
groupmod -n new_group_name old_group_name     переименовать группу old_group_name в new_group_name<br />
useradd -c &#8220;Nome Cognome&#8221; -g admin -d /home/user1 -s /bin/bash user1     создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell&#8217;а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome<br />
useradd user1     создать пользователя user1<br />
userdel -r user1     удалить пользователя user1 и его домашний каталог<br />
usermod -c &#8220;User FTP&#8221; -g system -d /ftp/user1 -s /bin/nologin user1     изменить атрибуты пользователя<br />
passwd     сменить пароль<br />
passwd user1     сменить пароль пользователя user1 (только root)<br />
chage -E 2005-12-31 user1     установить дату окончания действия учётной записи пользователя user1<br />
pwck     проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow<br />
grpck     проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group<br />
newgrp [-] group_name     изменяет первичную группу текущего пользователя. Если указать &#8220;-&#8221;, ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd</p>
<p><strong>Выставление/изменение полномочий на файлы</strong><br />
ls -lh     просмотр полномочий на файлы и директории в текущей директории<br />
ls /tmp | pr -T5 -W$COLUMNS     вывести содержимое директории /tmp и разделить вывод на пять колонок<br />
chmod ugo+rwx directory1     добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) &#8211; всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1<br />
chmod go-rwx directory1     отобрать у группы и всех остальных все полномочия на директорию directory1.<br />
chown user1 file1     назначить владельцем файла file1 пользователя user1<br />
chown -R user1 directory1     назначить рекурсивно владельцем директории directory1 пользователя user1<br />
chgrp group1 file1     сменить группу-владельца файла file1 на group1<br />
chown user1:group1 file1     сменить владельца и группу владельца файла file1<br />
find / -perm -u+s     найти, начиная от корня, все файлы с выставленным SUID<br />
chmod u+s /bin/binary_file     назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла.<br />
chmod u-s /bin/binary_file     снять SUID-бит с файла /bin/binary_file.<br />
chmod g+s /home/public     назначить SGID-бит директории /home/public.<br />
chmod g-s /home/public     снять SGID-бит с директории /home/public.<br />
chmod o+t /home/public     назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам<br />
chmod o-t /home/public     снять STIKY-бит с директории /home/public</p>
<p><strong>Специальные атрибуты файлов</strong><br />
chattr +a file1     позволить открывать файл на запись только в режиме добавления<br />
chattr +c file1     позволяет ядру автоматически сжимать/разжимать содержимое файла.<br />
chattr +d file1     указавет утилите dump игнорировать данный файл во время выполнения backup&#8217;а<br />
chattr +i file1     делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.<br />
chattr +s file1     позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных.<br />
chattr +S file1     указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync<br />
chattr +u file1     данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить<br />
lsattr     показать атрибуты файлов</p>
<p><strong>Архивирование и сжатие файлов</strong><br />
bunzip2 file1.bz2     разжимает файл &#8216;file1.gz&#8217;<br />
gunzip file1.gz<br />
gzip file1     сжимает файл &#8216;file1&#8242;<br />
bzip2 file1<br />
gzip -9 file1     сжать файл file1 с максимальным сжатием<br />
rar a file1.rar test_file     создать rar-архив &#8216;file1.rar&#8217; и включить в него файл test_file<br />
rar a file1.rar file1 file2 dir1     создать rar-архив &#8216;file1.rar&#8217; и включить в него file1, file2 и dir1<br />
rar x file1.rar     распаковать rar-архив<br />
unrar x file1.rar<br />
tar -cvf archive.tar file1     создать tar-архив archive.tar, содержащий файл file1<br />
tar -cvf archive.tar file1 file2 dir1     создать tar-архив archive.tar, содержащий файл file1, file2 и dir1<br />
tar -tf archive.tar     показать содержимое архива<br />
tar -xvf archive.tar     распаковать архив<br />
tar -xvf archive.tar -C /tmp     распаковать архив в /tmp<br />
tar -cvfj archive.tar.bz2 dir1     создать архив и сжать его с помощью bzip2(Прим.переводчика. ключ -j работает не во всех *nix системах)<br />
tar -xvfj archive.tar.bz2     разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах)<br />
tar -cvfz archive.tar.gz dir1     создать архив и сжать его с помощью gzip<br />
tar -xvfz archive.tar.gz     разжать архив и распаковать его<br />
zip file1.zip file1     создать сжатый zip-архив<br />
zip -r file1.zip file1 file2 dir1     создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий<br />
unzip file1.zip     разжать и распаковать zip-архив</p>
<p><strong>RPM пакеты (Fedora, Red Hat и тому подобное)</strong><br />
rpm -ivh package.rpm     установить пакет с выводом сообщений и прогресс-бара<br />
rpm -ivh &#8211;nodeps package.rpm     установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей<br />
rpm -U package.rpm     обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен<br />
rpm -F package.rpm     обновить пакет только если он установлен<br />
rpm -e package_name.rpm     удалить пакет<br />
rpm -qa     отобразить список всех пакетов, установленных в системе<br />
rpm -qa | grep httpd     среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени &#8220;httpd&#8221;<br />
rpm -qi package_name     вывести информацию о конкрентном пакете<br />
rpm -qg &#8220;System Environment/Daemons&#8221;     отобразить пакеты входящие в группу пакетов<br />
rpm -ql package_name     вывести список файлов, входящих в пакет<br />
rpm -qc package_name     вывести список конфигурационных файлов, входящих в пакет<br />
rpm -q package_name &#8211;whatrequires     вывести список пакетов, необходимых для установки конкретного пакета по зависимостям<br />
rpm -q package_name &#8211;whatprovides     show capability provided by a rpm package<br />
rpm -q package_name &#8211;scripts     отобразит скрипты, запускаемые при установке/удалении пакета<br />
rpm -q package_name &#8211;changelog     вывести историю ревизий пакета<br />
rpm -qf /etc/httpd/conf/httpd.conf     проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла.<br />
rpm -qp package.rpm -l     отображает список файлов, входящих в пакет, но ещё не установленных в систему<br />
rpm &#8211;import /media/cdrom/RPM-GPG-KEY     ипортировать публичный ключ цифровой подписи<br />
rpm &#8211;checksig package.rpm     проверит подпись пакета<br />
rpm -qa gpg-pubkey     проверить целостность установленного содержимого пакета<br />
rpm -V package_name     проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменеия пакета<br />
rpm -Va     проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью!<br />
rpm -Vp package.rpm     проверить пакет, который ещё не установлен в систему<br />
rpm2cpio package.rpm | cpio &#8211;extract &#8211;make-directories *bin*     извлечь из пакета файлы содержащие в своём имени bin<br />
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm     установить пакет, собранный из исходных кодов<br />
rpmbuild &#8211;rebuild package_name.src.rpm     собрать пакет из исходных кодов</p>
<p><strong>YUM &#8211; средство обновления пакетов(Fedora, RedHat и тому подобное)</strong><br />
yum install package_name     закачать и установать пакет<br />
yum update     обновить все пакеты, установленные в систему<br />
yum update package_name     обновить пакет<br />
yum remove package_name     удалить пакет<br />
yum list     вывести список всех пакетов, установленных в систему<br />
yum search package_name     найти пакет в репозитории<br />
yum clean packages     очисть rpm-кэш, удалив закачанные пакеты<br />
yum clean headers     удалить все заголовки файлов, которые система использует для разрешения зависимостей<br />
yum clean all     очисть rpm-кэш, удалив закачанные пакеты и заголовки</p>
<p><strong>DEB пакеты (Debian, Ubuntu и тому подобное)</strong><br />
dpkg -i package.deb     установить / обновить пакет<br />
dpkg -r package_name     удалить пакет из системы<br />
dpkg -l     показать все пакеты, установленные в систему<br />
dpkg -l | grep httpd     среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени &#8220;httpd&#8221;<br />
dpkg -s package_name     отобразить инфрмацию о конкретном пакете<br />
dpkg -L package_name     вывести список файлов, входящих в пакет, установленный в систему<br />
dpkg &#8211;contents package.deb     отобразить список файлов, входящих в пакет, который ешё не установлен в систему<br />
dpkg -S /bin/ping     найти пакет, в который входит указанный файл.</p>
<p><strong>APT &#8211; средство управление пакетами (Debian, Ubuntu и тому подобное)</strong><br />
apt-get install package_name     установить / обновить пакет<br />
apt-cdrom install package_name     установить / обновить пакет с cdrom&#8217;а<br />
apt-get update     получить обновлённые списки пакетов<br />
apt-get upgrade     обновить пакеты, установленные в систему<br />
apt-get remove package_name     удалить пакет, установленный в систему с сохранением файлов конфигурации<br />
apt-get purge package_name     удалить пакет, установленный в систему с удалением файлов конфигурации<br />
apt-get check     проверить целостность зависимостей<br />
apt-get clean     удалить загруженные архивные файлы пакетов<br />
apt-get autoclean     удалить старые загруженные архивные файлы пакетов</p>
<p><strong>Просмотр содержимого файлов</strong><br />
cat file1     вывести содержимое файла file1 на стандартное устройсво вывода<br />
tac file1     вывести содержимое файла file1 на стандартное устройсво вывода в обратном порядке (последняя строка становиться первой и т.д.)<br />
more file1     постраничный вывод содержимого файла file1 на стандартное устройство вывода<br />
less file1     постраничный вывод содержимого файла file1 на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п.<br />
head -2 file1     вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк<br />
tail -2 file1     вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк<br />
tail -f /var/log/messages     выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста.</p>
<p><strong>Преобразование наборов символов и файловых форматов</strong><br />
dos2unix filedos.txt fileunix.txt     конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата коретки)<br />
unix2dos fileunix.txt filedos.txt     конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки)<br />
recode ..HTML &lt; page.txt &gt; page.html     конвертировать содержимое тестового файла page.txt в html-файл page.html<br />
recode -l | more     вывести список доступных форматов</p>
<p><strong>Анализ файловых систем</strong><br />
badblocks -v /dev/hda1     проверить раздел hda1 на наличие bad-блоков<br />
fsck /dev/hda1     проверить/восстановить целостность linux-файловой системы раздела hda1<br />
fsck.ext2 /dev/hda1     проверить/восстановить целостность файловой системы ext2 раздела hda1<br />
e2fsck /dev/hda1<br />
e2fsck -j /dev/hda1     проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же<br />
fsck.ext3 /dev/hda1     проверить/восстановить целостность файловой системы ext3 раздела hda1<br />
fsck.vfat /dev/hda1     проверить/восстановить целостность файловой системы fat раздела hda11<br />
fsck.msdos /dev/hda1<br />
dosfsck /dev/hda1</p>
<p><strong>Форматирование файловых систем</strong><br />
mkfs /dev/hda1     создать linux-файловую систему на разделе hda1<br />
mke2fs /dev/hda1     создать файловую систему ext2 на разделе hda1<br />
mke2fs -j /dev/hda1     создать журналирующую файловую систему ext3 на разделе hda1<br />
mkfs -t vfat 32 -F /dev/hda1     создать файловую систему FAT32 на разделе hda1<br />
fdformat -n /dev/fd0     форматирование флоппи-диска без проверки<br />
mkswap /dev/hda3     создание swap-пространства на разделе hda3<br />
swap-пространство<br />
mkswap /dev/hda3     создание swap-пространства на разделе hda3<br />
swapon /dev/hda3     активировать swap-пространство, расположенное на разделе hda3<br />
swapon /dev/hda2 /dev/hdb3     активировать swap-пространства, расположенные на разделах hda2 и hdb3</p>
<p><strong>Создание резервных копий (backup)</strong><br />
dump -0aj -f /tmp/home0.bak /home     создать полную резервную копию директории /home в файл /tmp/home0.bak<br />
dump -1aj -f /tmp/home0.bak /home      создать инкрементальную резервную копию директории /home в файл /tmp/home0.bak<br />
restore -if /tmp/home0.bak     восстановить из резервной копии /tmp/home0.bak<br />
rsync -rogpav &#8211;delete /home /tmp     синхронизировать /tmp с /home<br />
rsync -rogpav -e ssh &#8211;delete /home ip_address:/tmp      синхронизировать через SSH-туннель<br />
rsync -az -e ssh &#8211;delete ip_addr:/home/public /home/local     синхронизировать локальную директорию с удалённой директорией через ssh-туннель со сжатием<br />
rsync -az -e ssh &#8211;delete /home/local ip_addr:/home/public     синхронизировать удалённую директорию с локальной директорией через ssh-туннель со сжатием<br />
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr &#8216;dd of=hda.gz&#8217;     сделать &#8220;слепок&#8221; локального диска в файл на удалённом компьютере через ssh-туннель<br />
tar -Puf backup.tar /home/user     создать инкрементальную резервную копию директории &#8216;/home/user&#8217; в файл backup.tar с сохранением полномочий<br />
( cd /tmp/local/ &amp;&amp; tar c . ) | ssh -C user@ip_addr &#8216;cd /home/share/ &amp;&amp; tar x -p&#8217;     копирование содержимого /tmp/local на удалённый компьютер через ssh-туннель в /home/share/<br />
( tar c /home ) | ssh -C user@ip_addr &#8216;cd /home/backup-home &amp;&amp; tar x -p&#8217;      копирование содержимого /home на удалённый компьютер через ssh-туннель в /home/backup-home<br />
tar cf &#8211; . | (cd /tmp/backup ; tar xf &#8211; )     копирование одной директории в другую с сохранением полномочий и линков<br />
find /home/user1 -name &#8216;*.txt&#8217; | xargs cp -av &#8211;target-directory=/home/backup/ &#8211;parents     поиск в /home/user1 всех файлов, имена которых оканчиваются на &#8216;.txt&#8217;, и копирование их в другую директорию<br />
find /var/log -name &#8216;*.log&#8217; | tar cv &#8211;files-from=- | bzip2 &gt; log.tar.bz2     поиск в /var/log всех файлов, имена которых оканчиваются на &#8216;.log&#8217;, и создание bzip-архива из них<br />
dd if=/dev/hda of=/dev/fd0 bs=512 count=1     создать копию MBR (Master Boot Record) с /dev/hda на флоппи-диск<br />
dd if=/dev/fd0 of=/dev/hda bs=512 count=1     восстановить MBR с флоппи-диска на /dev/hda</p>
<p><strong>CDROM</strong><br />
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force     clean a rewritable cdrom<br />
mkisofs /dev/cdrom &gt; cd.iso     create an iso image of cdrom on disk<br />
mkisofs /dev/cdrom | gzip &gt; cd_iso.gz     create a compressed iso image of cdrom on disk<br />
mkisofs -J -allow-leading-dots -R -V &#8220;Label CD&#8221; -iso-level 4 -o ./cd.iso data_cd     create an iso image of a directory<br />
cdrecord -v dev=/dev/cdrom cd.iso     burn an ISO image<br />
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -     burn a compressed ISO image<br />
mount -o loop cd.iso /mnt/iso     mount an ISO image<br />
cd-paranoia -B     rip audio tracks from a CD to wav files<br />
cd-paranoia &#8212; &#8220;-3&#8243;     rip first three audio tracks from a CD to wav files<br />
cdrecord &#8211;scanbus     scan bus to identify the channel scsi</p>
<p><strong>Сеть (LAN и WiFi)</strong><br />
ifconfig eth0     показать конфигурацию сетевого интерфейса eth0<br />
ifup eth0     активировать (поднять) интерфейс eth0<br />
ifdown eth0     деактивировать (опустить) интерфейс eth0<br />
ifconfig eth0 192.168.1.1 netmask 255.255.255.0     выставить интерфейсу eth0 ip-адрес и маску подсети<br />
ifconfig eth0 promisc     перевести интерфейс eth0 в promiscuous-режим для &#8220;отлова&#8221; пакетов (sniffing)<br />
ifconfig eth0 -promisc     отключить promiscuous-режим на интерфейсе eth0<br />
dhclient eth0     активировать интерфейс eth0 в dhcp-режиме.<br />
route -n     вывести локальную таблицу маршрутизации<br />
netstat -rn<br />
route add -net 0/0 gw IP_Gateway     задать ip-адрес шлюза по умолчанию (default gateway)<br />
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1     добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1<br />
route del 0/0 gw IP_gateway     удалить ip-адрес шлюза по умолчанию (default gateway)<br />
echo &#8220;1&#8243; &gt; /proc/sys/net/ipv4/ip_forward     разрешить пересылку пакетов (forwarding)<br />
hostname     отобразить имя компьютера<br />
host www.linuxguide.it     разрешить имя www.linuxguide.it хоста в ip-адрес и наоборот<br />
host 62.149.140.85<br />
ip link show     отобразить состояние всех интерфейсов<br />
mii-tool eth0     отобразить статус и тип соединения для интерфейса eth0<br />
ethtool eth0     отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения<br />
netstat -tupn     отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID&#8217;ы и имена процессов, обеспечивающих эти соединения<br />
netstat -tupln     отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID&#8217;ы и имена процессов, слушающих порты<br />
tcpdump tcp port 80     отобразить весь трафик на TCP-порт 80 (обычно &#8211; HTTP)<br />
iwlist scan     просканировать эфир на предмет, доступности беспроводных точек доступа<br />
iwconfig eth1     показать конфигурацию беспроводного сетевого интерфейса eth1</p>
<p><strong>Microsoft Windows networks(SAMBA)</strong><br />
nbtscan ip_addr     разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.<br />
nmblookup -A ip_addr<br />
smbclient -L ip_addr/hostname     отобразить ресурсы, предоставленные в общий доступ на windows-машине<br />
smbget -Rr smb://ip_addr/share     подобно wget может получить файлы с windows-машин через smb-протокол<br />
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share     смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему</p>
<p><strong>IPTABLES (firewall)</strong><br />
iptables -t filter -nL     отобразить все цепочки правил<br />
iptables -nL<br />
iptables -t nat -L     отобразить все цепочки правил в NAT-таблице<br />
iptables -t filter -F     очистить все цепочки правил в filter-таблице<br />
iptables -F<br />
iptables -t nat -F     очистить все цепочки правил в NAT-таблице<br />
iptables -t filter -X     удалить все пользовательские цепочки правил в filter-таблице<br />
iptables -t filter -A INPUT -p tcp &#8211;dport telnet -j ACCEPT     позволить входящее подключение telnet&#8217;ом<br />
iptables -t filter -A OUTPUT -p tcp &#8211;dport http -j DROP     блокировать исходящие HTTP-соединения<br />
iptables -t filter -A FORWARD -p tcp &#8211;dport pop3 -j ACCEPT     позволить &#8220;прокидывать&#8221; (forward) POP3-соединения<br />
iptables -t filter -A INPUT -j LOG &#8211;log-prefix &#8220;DROP INPUT&#8221;     включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса &#8220;DROP INPUT&#8221;<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE     включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.<br />
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp &#8211;dport 22 -j DNAT &#8211;to-destination 10.0.0.2:22     перенаправление пакетов, адресованных одному хосту, на другой хост</p>
<p><strong>Мониторинг и отладка</strong><br />
top     отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)<br />
ps -eafw     отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)<br />
ps -e -o pid,args &#8211;forest     вывести PID&#8217;ы и процессы в виде дерева<br />
pstree     отобразить дерево процессов<br />
kill -9 98989     &#8220;убить&#8221; процесс с PID 98989 &#8220;на смерть&#8221; (без соблюдения целостности данных)<br />
kill -KILL 98989<br />
kill -TERM 98989     Корректно завершить процесс с PID 98989<br />
kill -1 98989     заставить процесс с PID 98989 перепрочитать файл конфигурации<br />
kill -HUP 98989<br />
lsof -p 98989     отобразить список файлов, открытых процессом с PID 98989<br />
lsof /home/user1     отобразить список открытых файлов из директории /home/user1<br />
strace -c ls &gt;/dev/null     вывести список системных вызовов, созданных и полученных процессом ls<br />
strace -f -e open ls &gt;/dev/null     вывести вызовы бибилотек<br />
watch -n1 &#8216;cat /proc/interrupts&#8217;     отображать прерывания в режиме реального времени<br />
last reboot     отобразить историю перезагрузок системы<br />
last user1     отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней<br />
lsmod     вывести загруженные модули ядра<br />
free -m     показать состояние оперативной памяти в мегабайтах<br />
smartctl -A /dev/hda     контроль состояния жёсткого диска /dev/hda через SMART<br />
smartctl -i /dev/hda     проверить доступность SMART на жёстком диске /dev/hda<br />
tail /var/log/dmesg     вывести десять последних записей из журнала загрузки ядра<br />
tail /var/log/messages     вывести десять последних записей из системного журнала<br />
Другие полезные команды<br />
apropos &#8230;keyword     выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду<br />
man ping     вызов руководства по работе с программой, в данном случае, &#8211; ping<br />
whatis &#8230;keyword     отображает описание действий указанной программы<br />
mkbootdisk &#8211;device /dev/fd0 `uname -r`     создаёт загрузочный флоппи-диск<br />
gpg -c file1     шифрует файл file1 с помощью GNU Privacy Guard<br />
gpg file1.gpg     дешифрует файл file1 с помощью GNU Privacy Guard<br />
wget -r www.example.com     загружает рекурсивно содержимое сайта www.example.com<br />
wget -c www.example.com/file.iso     загрузить файл www.example.com/file.iso с возможностью останова и продолжения в последствии<br />
echo &#8216;wget -c www.example.com/files.iso&#8217; | at 09:00     начать закачку в указанное время<br />
ldd /usr/bin/ssh     вывести список библиотек, необходимых для работы ssh<br />
alias hh=&#8217;history&#8217;     назначить алиас hh команде history</p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2008/11/26/%d0%be%d1%87%d0%b5%d0%bd%d1%8c-%d0%bf%d0%be%d0%bb%d0%b5%d0%b7%d0%bd%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-linux-%d0%be%d0%b4%d0%bd%d0%b8%d0%bc-%d0%bf%d0%be%d1%81%d1%82%d0%be%d0%bc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Манипуляции с текстом в коммандной строке</title>
		<link>http://wiki.dodex.org/2008/11/26/%d0%bc%d0%b0%d0%bd%d0%b8%d0%bf%d1%83%d0%bb%d1%8f%d1%86%d0%b8%d0%b8-%d1%81-%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%be%d0%bc-%d0%b2-%d0%ba%d0%be%d0%bc%d0%bc%d0%b0%d0%bd%d0%b4%d0%bd%d0%be%d0%b9-%d1%81%d1%82/</link>
		<comments>http://wiki.dodex.org/2008/11/26/%d0%bc%d0%b0%d0%bd%d0%b8%d0%bf%d1%83%d0%bb%d1%8f%d1%86%d0%b8%d0%b8-%d1%81-%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%be%d0%bc-%d0%b2-%d0%ba%d0%be%d0%bc%d0%bc%d0%b0%d0%bd%d0%b4%d0%bd%d0%be%d0%b9-%d1%81%d1%82/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 13:20:15 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Операционные системы]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=310</guid>
		<description><![CDATA[Для напоминания некоторых комманд по манипуляции с текстом: cat file_originale &#124; [operation: sed, grep, awk, grep и т.п.] &#62; result.txt общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый cat file_originale &#124; [operazione: sed, grep, awk, grepи т.п.] &#62;&#62; result.txt общий синтаксис выполнения действий по обработке содержимого файла и вывода результата [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Для напоминания некоторых комманд по манипуляции с текстом:</strong></p>
<p><em>cat file_originale | [operation: sed, grep, awk, grep и т.п.] &gt; result.txt</em><br />
общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый</p>
<p><span id="more-310"></span><em>cat file_originale | [operazione: sed, grep, awk, grepи т.п.] &gt;&gt; result.txt</em><br />
общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан</p>
<p><em>grep Aug /var/log/messages</em><br />
из файла &#8216;/var/log/messages&#8217; отобрать и вывести на стандартное устройство вывода строки, содержащие &#8220;Aug&#8221;</p>
<p><em>grep ^Aug /var/log/messages</em><br />
из файла &#8216;/var/log/messages&#8217; отобрать и вывести на стандартное устройство вывода строки, начинающиеся на &#8220;Aug&#8221;</p>
<p><em>grep [0-9] /var/log/messages</em><br />
из файла &#8216;/var/log/messages&#8217; отобрать и вывести на стандартное устройство вывода строки, содержащие цифры</p>
<p><em>grep Aug -R /var/log/*</em><br />
отобрать и вывести на стандартное устройство вывода строки, содержащие &#8220;Aug&#8221;, во всех файлах, находящихся в директории /var/log и ниже</p>
<p><em>sed &#8216;s/stringa1/stringa2/g&#8217; example.txt</em><br />
в файле example.txt заменить &#8220;string1&#8243; на &#8220;string2&#8243;, результат вывести на стандартное устройство вывода.</p>
<p><em>sed &#8216;/^$/d&#8217; example.txt</em><br />
удалить пустые строки из файла example.txt</p>
<p><em>sed &#8216;/ *#/d; /^$/d&#8217; example.txt</em><br />
удалить пустые строки и комментарии из файла example.txt</p>
<p><em>echo &#8216;esempio&#8217; | tr &#8216;[:lower:]&#8216; &#8216;[:upper:]&#8216;</em><br />
преобразовать символы из нижнего регистра в верхний<br />
<em><br />
sed -e &#8217;1d&#8217; result.txt</em><br />
удалить первую строку из файла example.txt</p>
<p><em>sed -n &#8216;/string1/p&#8217;</em><br />
отобразить только строки содержашие &#8220;string1&#8243;</p>
<p><em>sed -e &#8216;s/ *$//&#8217; example.txt</em><br />
удалить пустые символы в в конце каждой строки</p>
<p><em>sed -e &#8216;s/string1//g&#8217; example.txt</em><br />
удалить строку &#8220;string1&#8243; из текста не изменяя всего остального</p>
<p><em>sed -n &#8217;1,8p;5q&#8217; example.txt</em><br />
взять из файла с первой по восьмую строки и из них вывести первые пять</p>
<p><em>sed -n &#8217;5p;5q&#8217; example.txt</em><br />
вывести пятую строку</p>
<p><em>sed -e &#8216;s/0*/0/g&#8217; example.txt</em><br />
заменить последовательность из любого количества нулей одним нулём</p>
<p><em>cat -n file1</em><br />
пронумеровать строки при выводе содержимого файла</p>
<p><em>cat example.txt | awk &#8216;NR%2==1&#8242;</em><br />
при выводе содержимого файла, не выводить чётные строки файла</p>
<p><em>echo a b c | awk &#8216;{print $1}&#8217;</em><br />
вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции</p>
<p><em>echo a b c | awk &#8216;{print $1,$3}&#8217;</em><br />
вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции</p>
<p><em>paste file1 file2</em><br />
объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m</p>
<p><em>paste -d &#8216;+&#8217; file1 file2</em><br />
объединить содержимое file1 и file2 в виде таблицы с разделителем &#8220;+&#8221;</p>
<p><em>sort file1 file2</em><br />
отсортировать содержимое двух файлов</p>
<p><em>sort file1 file2 | uniq</em><br />
отсортировать содержимое двух файлов, не отображая повторов</p>
<p><em>sort file1 file2 | uniq -u</em><br />
отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)</p>
<p><em>sort file1 file2 | uniq -d</em><br />
отсортировать содержимое двух файлов, отображая только повторяющиеся строки</p>
<p><em>comm -1 file1 file2</em><br />
сравнить содержимое двух файлов, не отображая строки принадлежащие файлу &#8216;file1&#8242;</p>
<p><em>comm -2 file1 file2</em><br />
сравнить содержимое двух файлов, не отображая строки принадлежащие файлу &#8216;file2&#8242;</p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2008/11/26/%d0%bc%d0%b0%d0%bd%d0%b8%d0%bf%d1%83%d0%bb%d1%8f%d1%86%d0%b8%d0%b8-%d1%81-%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%be%d0%bc-%d0%b2-%d0%ba%d0%be%d0%bc%d0%bc%d0%b0%d0%bd%d0%b4%d0%bd%d0%be%d0%b9-%d1%81%d1%82/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Получение IP-адреса одной строкой из ifconfig</title>
		<link>http://wiki.dodex.org/2008/11/26/%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-ip-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d0%be%d0%b4%d0%bd%d0%be%d0%b9-%d1%81%d1%82%d1%80%d0%be%d0%ba%d0%be%d0%b9-%d0%b8%d0%b7-ifconfig/</link>
		<comments>http://wiki.dodex.org/2008/11/26/%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-ip-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d0%be%d0%b4%d0%bd%d0%be%d0%b9-%d1%81%d1%82%d1%80%d0%be%d0%ba%d0%be%d0%b9-%d0%b8%d0%b7-ifconfig/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 13:12:10 +0000</pubDate>
		<dc:creator>shad</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Операционные системы]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[ifconfig]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://wiki.dodex.org/?p=308</guid>
		<description><![CDATA[Иногда надо бывает в скриптах получить IP-адрес интерфейса. Так вот, это делается просто, одной строкой ifconfig eth0 &#124; awk /eth0/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}']]></description>
			<content:encoded><![CDATA[<p>Иногда надо бывает в скриптах получить IP-адрес интерфейса. Так вот, это делается просто, одной строкой<br />
<code>ifconfig eth0 | awk /eth0/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'</code></p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.dodex.org/2008/11/26/%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-ip-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d0%be%d0%b4%d0%bd%d0%be%d0%b9-%d1%81%d1%82%d1%80%d0%be%d0%ba%d0%be%d0%b9-%d0%b8%d0%b7-ifconfig/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

