<?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; ОС Linux</title>
	<atom:link href="http://www.studcode.ru/archiv/category/konspekty/os-linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.studcode.ru</link>
	<description>Конспекты лекций, самостоятельные работы по  delphi, с++, php. Курсовые проекты. Все что мы сделали вы можете скачать без проблем!</description>
	<lastBuildDate>Wed, 27 Oct 2010 15:15:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Сокращения и команды в Linux</title>
		<link>http://www.studcode.ru/archiv/sokrashheniya-i-komandy-v-linux/</link>
		<comments>http://www.studcode.ru/archiv/sokrashheniya-i-komandy-v-linux/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 18:27:37 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=882</guid>
		<description><![CDATA[Содержание:
5.11 Управление процессами
5.12 Основные команды администрирования
5.13 Дисковые утилиты
5.14 Управление учетными записями пользователей и доступом  к файлам
5.15 Установка программ
5.16 Обращение к дискам/разделам
5.17 Инструменты сетевого администрирования
5.18 Команды, связанные со звуком
5.19 Команды, связанные с графикой
5.20 Маленькие игры

5.12 Некоторые команды администрирования
cat /var/log/httpd/access_log
Показывает все подключения к серверу HTTP(apache) с момента последней  &#8220;ротации&#8221; (обычно раз в день, при выполнении [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="text-decoration: underline;">Содержание:</span></strong></p>
<p>5.11 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#process_control#process_control">Управление процессами</a></p>
<p>5.12 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#Admin_commands#Admin_commands">Основные команды администрирования</a></p>
<p>5.13 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#disk_utils#disk_utils">Дисковые утилиты</a></p>
<p>5.14 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#user_admin#user_admin">Управление учетными записями пользователей и доступом  к файлам</a></p>
<p>5.15 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#program_installation#program_installation">Установка программ</a></p>
<p>5.16 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#accessing_drives#accessing_drives">Обращение к дискам/разделам</a></p>
<p>5.17 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#Net_tools#Net_tools">Инструменты сетевого администрирования</a></p>
<p>5.18 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#music_commands#music_commands">Команды, связанные со звуком</a></p>
<p>5.19 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#graphics_commands#graphics_commands">Команды, связанные с графикой</a></p>
<p>5.20 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-2.shtml.htm#s_games#s_games">Маленькие игры</a></p>
<p><span id="more-882"></span></p>
<h2><a id="process_control" name="process_control"></a><a id="Admin_commands" name="Admin_commands"></a>5.12 Некоторые команды администрирования</h2>
<p>cat /var/log/httpd/access_log</p>
<p>Показывает все подключения к серверу HTTP(apache) с момента последней  &#8220;ротации&#8221; (обычно раз в день, при выполнении cron). Предыдущий файл  переносится в access_log.1,  тот, который был перед ним &#8211; в access_log.2,  и т.д.</p>
<p>cat /var/log/secure</p>
<p>(как &#8220;root&#8221;) Просмотр весьма важного системного журнала. Это неплохая  идея &#8211; просматривать его время от времени, если вы используете доступ к  Internet.</p>
<p>ftpwho</p>
<p>(как &#8220;root&#8221;) Определяет, кто в данный момент подключен к серверу ftp.</p>
<p>printtool</p>
<p>(как &#8220;root&#8221; в X-терминале) Программа конфигурирования принтеров.  Установки заносятся в файл /etc/printcap  и (странно) /var/spool/lpd.</p>
<p>setup</p>
<p>(как &#8220;root&#8221;) Конфигурируем мышь, звуковую карту, клавиатуру,  X-windows, и системные службы. Есть множество конфигурационных программ,  зависящих от дистрибутива setup  используется в RedHat. Mandrake предоставляет весьма симпатичный конфигуратор DrakConf .</p>
<p>linuxconf</p>
<p>(как &#8220;root&#8221;, как в текстовом режиме так и в X-терминале). Вы можете  обратиться ко многим настройкам. Очень мощно &#8212; не изменяйте слишком много за  раз, и поосторожнее с тем, чего не понимаете. Утилита сетевого конфигурирования  RedHat netconf  &#8211; это подмножество linuxconf,  попроще и полегче в использовании.</p>
<p>mouseconf</p>
<p>(как &#8220;root&#8221;). Простая программа конфигурирования мыши (после  начальной инсталляции). Mandrake, кроме того, включает альтернативу mousedrake.</p>
<p>kudzu</p>
<p>(как &#8220;root&#8221;). Автоматически распознает и конфигурирует оборудование.  Если с вашей мышью (или другими устройствами) творится что-то странное,  попробуйте отключить kudzu, чтобы он не работал при старте системы. Вы можете  выполнять его вручную по мере необходимости.</p>
<p>timeconfig</p>
<p>(как &#8220;root&#8221;) Устанавливает часовой пояс для системы. Мои аппаратные  часы (BIOS setup) работают с временем UTC (Coordinated Universal  Time(Универсальное Время), так же именуемое GMT или Greenwich Mean Time(Время  по Гринвичу)). Таким образом, я избегаю возможных проблем с переключением  часовых поясов, передачей файлов по сети по всему земному шару, или физических  путешествиях. Использование на серверах времени в формате UTC позволяет  избежать &#8220;обратного хода времени&#8221; (что может создать проблемы). Вреня  создания и изменения на файлах положено ставить в UTC и отображать в локальном  времени, используя информацию о часовом поясе. Например, многие приложения  (например, компиляторы, базы данных) отличают более свежие версии файлов от  более старых по их времени создания и изменения. Поэтому важно правильно  указать часовой пояс. Единственной причиной для использования в BIOS локального  времени могут быть проблемы с тем, что другие системы, загружаемые с того же  компьютера (MS Windows?) не умеют правильно использовать UTC. Поэтому я  позволил моему серверу Linux использовать GMT, отметив флажком &#8220;Hardware  clock set to GMT&#8221;, чтобы Linux мог пересчитать UTC, когда это необходимо.</p>
<p>setclock</p>
<p>(как &#8220;root&#8221;). Устанавливает аппаратные часы по системному времени  Linux. Используйте команду &#8220;date&#8221; для установки системного времени  Linux. Например, я могу установить дату и время 2000-12-31 23:57 используя  команду:</p>
<p>date 123123572000</p>
<p>после чего записать это время в BIOS:</p>
<p>setclock</p>
<p>dateconfig&amp;</p>
<p>(в X-терминале, как root (иначе у вас спросят пароль &#8220;root&#8221;).  Прекрасная программа с графическим интерфейсом для того, чтобы установить время  системы и аппаратное время, часовой пояс, и заодно установить для BIOS хранение  времени в UTC, не пользуясь двумя предыдущими командами.</p>
<p>xvidtune</p>
<p>(в X-терминале). Приведение в порядок настроек вашего дисплея для удаления  черных полос, сдвига изображения вправо/влево/вверх/вниз, и т.д. Сначала  используйте ручки на вашем мониторе, чтобы текстовый режим работал корректно, а  потом используйте xvidtune для подгонки частоты регенерации изображения для  каждого разрешения, чтобы она соответствовала вашему экрану наилучшим образом.  Для сохранения изменений выведите частоты на экран и запишите их в  конфигурационный файл /etc/X11/XF86Config.  На более новых мониторах вы сможете настроить изображение средствами самого  монитора &#8212; xvidtune предназначен для более старых моделей, не обеспечивающих  хранение настроек.</p>
<p>kvideogen</p>
<p>(в X-терминале). Генерирует &#8220;modelines&#8221; для настроенных разрешений  экрана. После того, как вы сгенерируете текст (&#8221;modelines&#8221;), вы  можете скопировать его в файл установок X-windows &#8211; /etc/X11/XF86Config (или  /etc/X11/XF86Config-4, если вы используете X-server версии 4.xx). Кроме того,  смотрите &lt;Ctrl&gt;&lt;Alt&gt;&lt;+&gt;</p>
<p>SVGATextMode 80&#215;25x9</p>
<p>SVGATextMode 80&#215;29x9</p>
<p>(как &#8220;root&#8221;) Сменить текстовое разрешение текстового терминала. В  приведенных выше строках примера (вторая строка) я меняю разрешение текстового  экран на 80 колонок и 29 строк с высотой символа 9 пиксел. Первая строка  обозначает разрешение, которое всегда работает, так что, если вторая команда не  работает в моей системе, я смогу дважды нажать &lt;СтрелкаВверх&gt; и  &lt;Enter&gt; чтобы восстановить управление экраном. Разрешенные режимы зависят  от характеристик видеокарты &#8212; требуется редактирование (как &#8220;root&#8221;)  файла /etc/TextConfig  для (раз)комментирования строк, соответствующих режимам, поддерживаемым моей  системой и программой SVGATextMode.</p>
<p>SuperProbe</p>
<p>(как &#8220;root&#8221;). Программа, определяющая тип видеокарты и количество  видеопамяти.</p>
<p>cat /var/log/XFree86.0.log</p>
<p>Log-файл X, полезный для определения ошибок в установках X. Цифра &#8220;0&#8243;  в имени файла соответствует &#8220;дисплею 0&#8243;&#8211;для других дисплеев нужно  поставить цифры &#8220;1&#8243;, &#8220;2&#8243;, и т.д.</p>
<p>lspci</p>
<p>Показывает информацию о материнской плате и слотах расширения pci. Мой старый  компьютер не имеет слотов pci &#8211; только слоты ISA (и EISA).</p>
<p>lsdev</p>
<p>выводит информацию об устройствах (DMA, IRQ, IO ports).</p>
<p>lsof|more</p>
<p>Список файлов, открытых в вашей системе.</p>
<p>kernelcfg</p>
<p>(как &#8220;root&#8221; в X-терминале). Программа с графическим интерфейсом для  добавления/удаления модулей ядра. Модули напоминают драйвера устройств &#8212; части  ядра Linux, который поддерживает часть аппаратуры или выполняет другие функции.  Вы можете сделать то же самое из командной строки, используя insmod.</p>
<p>lsmod</p>
<p>(= list modules(список модулей)). Список модулей ядра, загруженных в  текущий момент.</p>
<p>modprobe -l |more</p>
<p>Список всех модулей, доступных в вашей файловой системе. Список доступных  модулей зависит от того, как ваше ядро Linux было скомпилировано. Большинство  существующих модулей/возможностей может быть скомпилировано в Linux, как  &#8220;жестко связанные(hard wired)&#8221; (возможно, чуть более быстрые, но  невыгружаемые), как &#8220;модули(modules)&#8221; (чуть более медленные, но  загружаемые/выгружаемые по запросу), или как &#8220;нет&#8221; (не поддерживать  этот модуль/эту возможность). Модули поддерживаемые вашим ядром (с которыми  ваше ядро было откомпилировано) представлены файлами в директории /lib/modules (и ее  поддиректориях), так что их просмотр может дать вам ключ к решению некоторых  проблем . Если ваше ядро не поддерживает необходимый вам модуль, вам может  потребоваться перекомпилировать ядро с разрешением этого модуля (это редкость,  поскольку &#8220;основные(stock)&#8221; ядра RedHat или Mandrake Linux идут с  предварительной установкой всех замеченных неэкспериментальных модулей. Но всё  же, если у вас есть не очень распространённые или очень новые устройства, то  эта возможность вам потребуется).</p>
<p>modprobe sb</p>
<p>Подгружает модуль звуковой карты soundblaster (sb). Используйте предыдущую  команду для того, чтобы выяснить, какие еще модули можно подгрузить.</p>
<p>insmod parport</p>
<p>insmod ppa</p>
<p>(как &#8220;root&#8221;) Добавляет модули в ядро (модуль в чем-то эквивалентен  драйверу устройства в DOS). Обычно я использую &#8220;modprobe&#8221; (см.  предыдущую команду) для добавления модулей. Этот пример показывает, как  подгрузить модули для поддержки внешнего 100-MB zip-накопителя. Для 250-MB  внешнего zip я использую модуль imm  вместо ppa.</p>
<p>rmmod <em>имя_модуля</em></p>
<p>(как &#8220;root&#8221;, не существенно). Удаляет модуль <em>имя_модуля</em> из ядра.</p>
<p>depmod -a</p>
<p>(как &#8220;root&#8221;) Составляет таблицу зависимости модулей ядра.  Несущественно, если вы не изменяли /etc/modules, не требует перезагрузки.</p>
<p>setserial /dev/cua0 port 0&#215;03f8 irq 4</p>
<p>(как &#8220;root&#8221;) Установить нестандартные параметры для последовательного  порта. В приведенном здесь примере устанавливаются стандартные параметры для  первого последовательного порта (cua0 or ttyS0). Стандартные установки второго  последовательного порта персонального компьютера (cua1or ttyS1): адрес порта  ввода/вывода(port) 0&#215;02f8, номер прерывания(irq) 3. Третий последовательный  порт (cua2 или ttyS2): 0&#215;03e8, irq 4. Четвертый последовательный порт (cua3 or  ttyS3): 0&#215;02e8, irq 3. Добавьте свои установки в /etc/rc.d/rc.local если вы  хотите, чтобы эти установки применялись при каждом запуске системы. См. man  setserial для дополнительной информации.</p>
<p>tunelp</p>
<p>(как &#8220;root&#8221;, редко используемое) Настроить параллельный порт.</p>
<p>/sbin/chkconfig &#8211;level 123456 kudzu off</p>
<p>(как &#8220;root&#8221;) Программа для проверки/разрешения/запрещения системных  служб, которые автоматически запускаются на разных уровнях выполнения. Обычно,  я использую программу RedHat ntsysv  если хочу разрешить/запретить службу текущего уровня выполнения, но chkconfig дает мне  дополнительную гибкость. Альтернативная программа называется tksysv (X-Windows).  Вышеприведенный пример отключает службу kudzu так, чтобы она не запускалась ни  на одном уровне выполнения (только так я могу заставить работать мышь на моем  компьютере). Для того, чтобы получить список запущенных/остановленных служб на  всех уровнях выполнения, я использую:</p>
<p>chkconfig &#8211;list | more</p>
<p>Для проверки текущего состояния служб, можно использовать:</p>
<p>service &#8211;status-all</p>
<p>Для немедленного запуска службы, я использую нечто вроде (запуск сервера ftp):</p>
<p>service wu-ftpd start</p>
<p>Для перезапуска сервиса samba (например, после изменения настроек), можно  использовать:</p>
<p>service smb restart</p>
<p>symlinks -r -cds /</p>
<p>(как &#8220;root&#8221;) Проверить и исправить символические ссылки в моей  системе. Запуск из корневой директории &#8220;/&#8221; и обработка всех  поддиректорий (параметр -r=&#8221;recurse&#8221;) и заменяет абсолютные/грязные  ссылки на относительные, удаляет ссылки на несуществующие файлы, и укорачивает  длинные ссылки (параметр -cds). Если моя файловая система распространена на  несколько разделов жесткого диска, мне придется запустить его для каждого из  них (например, symlinks -r -cds /usr).</p>
<p>cd /usr/src/linux-2.4.7-10</p>
<p>mknod /dev/fd0 b 2 0</p>
<p>(как &#8220;root&#8221;) Вручную создать файл устройства. Этот пример показывает,  как создать файл устройства, связанный с вашим первым дисководом для гибких  дисков. Может быть полезен, если вы случайно сотрете этот файл. Существуют  следующие параметры: b=устройства с блок-ориентированным вводом/выводом,  c=устройства с байт-ориентированным вводом/выводом, p=устройства FIFO(каналы,  очереди), u=небуфферизованные устройства с байт-ориентированным вводом/выводом.  Два целых числа означают старший и младший номера устройства. Обычно я не знаю  параметров, необходимых для mknod.  Так что при создании устройства я, для начала, читаю man MAKEDEV для того, чтобы  выяснить имя устройства, после чего выполняю скрипт /dev/MAKEDEV который выдает  характеристики устройств Linux по их именам &#8212; см. следующую команду. Если  указанная справочная страница не поможет, можно обратиться к полной  документации:</p>
<p>less  /usr/src/linux/Documentation/devices.txt</p>
<p>cd /dev</p>
<p>./MAKEDEV  audio</p>
<p>(как &#8220;root&#8221;). Переустановить звуковое устройство,  которое только что было испорчено. См. также предыдущую команду.</p>
<p><a id="disk_utils" name="disk_utils"></a><a id="user_admin" name="user_admin"></a><a id="program_installation" name="program_installation"></a><a id="accessing_drives" name="accessing_drives"></a><a id="Net_tools" name="Net_tools"></a></p>
<p>5.17 Инструменты сетевого администрирования</p>
<p>netconf</p>
<p>(как &#8220;root&#8221;) Очень хорошая основанная на меню программа настройки  параметров сети.</p>
<p>ping <em>имя_машины</em></p>
<p>проверка связи с другой машиной (необходимо имя машины или номер IP), нажмите  &lt;Ctrl&gt;C для окончания работы с программой (без &lt;Ctrl&gt;c, программа  будет работать дальше). Как и все команды Linux, ping имеет множество  параметров, включая атаку &#8220;ping of death&#8221; &#8211; это значит, что вы можете  запинговать некоторые серверы до зависания (попробуйте параметры -f и -s).</p>
<p>route -n</p>
<p>Показывает таблицу роутинга ядра (kernel routing table).</p>
<p>host <em>Имя_машины_для  поиска</em></p>
<p>nslookup <em>Имя_машины_для поиска</em></p>
<p>dig<em> ip_адрес_машины_для поиска</em></p>
<p>(Три команды, используйте любую.) Запрос к вашему серверу имен доменов (DNS),  используемому по умолчанию по Internet-имени (или IP-номеру) <em>Имя_машины_для поиска</em>. Так можно  проверить работу вашего DNS. Вы также можете определить имя машины по  IP-номеру.</p>
<p>traceroute <em>машина</em></p>
<p>Показывает, как ваше сообщение достигает машины <em>машина</em> (которая задается Internet-именем машины или IP-номером).</p>
<p>mtr <em>машина</em></p>
<p>(как &#8220;root&#8221;) Мощная и красивая программа, объединяющая  функциональность ping и traceroute (RH7.0).</p>
<p>nmblookup -A <em>ip_address</em></p>
<p>Статус сетевой MS Windows-машины (по имени NetBIOS). Эта команда эквивалентна  команде Windows nbtstat.</p>
<p>ipfwadm -F -p m</p>
<p>(для RH5.2, для RH6.0 смотрите следующую команду) Включение маскарадинга. (Не  очень безопасно, но просто). Цель: все машины вашей домашней сети будут  представлены в Internet как одна, но очень занятая. Например, вы сможете  работать в Internet со всех компьютеров вашей домашней сети, как с одного.</p>
<p>echo 1 &gt; /proc/sys/net/ipv4/ip_forward</p>
<p>ipfwadm-wrapper -F -p deny</p>
<p>ipfwadm-wrapper -F -a m -S  xxx.xxx.xxx.0/24 -D 0.0.0.0/0</p>
<p>(Три команды, RH6.0). Делают то же, что и предыдущая команда. Замените  &#8220;x&#8221; цифрами вашего IP-адреса класса &#8220;C&#8221;, назначенного для  вашей домашней сети. Смотрите <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/faq.htm#masquerading">здесь</a> для подробной информации.</p>
<p>ipchains -P forward DENY</p>
<p>ipchains -A forward -s  xxx.xxx.xxx.0/24 -d 0.0.0.0/0 -j MASQ</p>
<p>(две команды, RH7.0). То же, что и предыдущие команды, но работают с RH7.0.</p>
<p>ipchains -L</p>
<p>Показывает все правила firewall. Используйте для проверки настроек firewall.</p>
<p>iptables -L</p>
<p>Ядро Linux 2.4.x использует новую программу &#8220;iptables&#8221; для firewall.  Приведенный выше пример показывает список правил firewall.</p>
<p>firewall-config</p>
<p>(как &#8220;root&#8221;, в X-терминале). Графическая оболочка для настройки Firewall.</p>
<p>ifconfig</p>
<p>(как &#8220;root&#8221;) Дает информацию о сетевых интерфейсах, <span style="text-decoration: underline;">активных в  текущий момент</span> (ethernet, ppp, и т.д.). Ваша первая карта ethernet будет  называться eth0, вторая-eth1, и т.д., первый ppp через модем &#8211; ppp0, второй &#8211;  ppp1, и т.д. &#8220;lo&#8221; &#8211; интерфейс &#8220;loopback only (только сам с  собой)&#8221;всегда активен. Используйте параметры (см. ifconfig &#8211;help) для  конфигурирования интерфейсов.</p>
<p>ifup <em>имя_интерфейса</em></p>
<p>(/sbin/ifup  для запуска как пользователь) Запускает сетевой интерфейс. Например:</p>
<p>ifup eth0</p>
<p>ifup ppp0</p>
<p>ifup ppp1</p>
<p>Пользователь может запускать интерфейс ppp, только если это разрешено  настройками ppp (используем netconf  ). Для запуска интерфейса ppp (dial-up подключение) я обычно использую kppp из  KDE (или набираю kppp  в X-терминале).</p>
<p>/etc/rc.d/init.d/network restart</p>
<p>Перезапуск сети с использованием нормальных инициализационных скриптов (тех что  используются при загрузке системы). Полезно при изменении конфигурации вручную.  Любые службы, перечисленные в init.d могут быть остановлены, запущены, или перезапущены  (выполните скрипт с параметрами stop,  start  или restart).</p>
<p>ifdown <em>имя_интерфейса</em></p>
<p>(/sbin/ifdown  для запуска в режиме пользователя). Выключает сетевой интерфейс. Например: ifdown ppp0 Кроме того,  смотрите предыдущую команду.</p>
<p>netstat | more</p>
<p>выводит большую часть (не слишком ли много?) информации о вашей сети.</p>
<p>/usr/sbin/mtr &#8211;gtk</p>
<p>(как &#8220;root&#8221;, в X-windows, если вам нравится графический интерфейс).  Инструмент сетевой диагностики, объединяющий возможности ping и traceroute.  Поставляется с RH7.0.</p>
<p>nmap <em>ip_номер</em></p>
<p>Показывает карту портов машины с IP-номером <em>ip_номер</em>.  Действительно полезно для проверки безопасности вашей сети &#8211; иметь информацию  об открытых портах. nmap  включен в RH7.0 &#8220;Linux PowerTools&#8221; CD, как и удобная графическая  оболочка &#8220;nmapfe&#8221;. nmap может определять операционную систему с  помощью &#8220;fingerprinting&#8221;. Обычно людям (и их интернет-провайдерам) не  нравится то, что их порты могут быть просканированы (такие действия обычно  совершаются хакерами перед атакой), поэтому они могут быть возмущены, обнаружив  это &#8212; поэтому лучше всего учиться использовать nmap на ваших компьютерах, или  к вам придет жалоба от вашего Internet-провайдера (все претензии будут  предъявляться к нему).</p>
<p>ethereal</p>
<p>(как &#8220;root&#8221;, в X-терминале) Анализатор сети &#8212; просмотр сетевого  траффика, идущего через ваш компьютер. Включен в RH7.0 &#8220;Linux  PowerTools&#8221; CD. Использование ethereal может оказаться неэтичным, и  неавторизированное использование на рабочем месте может быть причиной серьезных  скандалов.</p>
<p>tcpdump -i ppp0 -a -x</p>
<p>(как &#8220;root&#8221;) Печать всего сетевого траффика, идущего через первый  модемный интерфейс (ppp0) в символьном и шестнадцатиричном виде. Наверное,  слишком много информации. tcpdump  &#8211; это слегка сырой инструмент и он может быть полезен только в составе других,  более &#8220;настроенных&#8221; инструментов для журналирования необходимой вам  информации.</p>
<h2><a id="music_commands" name="music_commands"></a>5.18  Команды, связанные со звуком</h2>
<p>cdplay play 1</p>
<p>Проиграть первую дорожку со звукового CD. Используйте cdplay  без параметров для прослушивания всего CD. Используйте cdplay stop,  когда дослушаете.</p>
<p>eject</p>
<p>выдвинуть подставку для кофе <img src='http://www.studcode.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )). (выдвигает трэй CD ROM). Эта команда обычно  ассоциируется с cdrom, но может быть использована для других сменных носителей  &#8211; указанием точки монтирования. Например, я могу выдвинуть zip-диск из внешнего  (на параллельном порте) zip-дисковода (как &#8220;root&#8221;) используя: eject /dev/sda4</p>
<p>play <em>my_file.wav</em></p>
<p>Проиграть звуковой файл .wav.</p>
<p>rec <em>my_file.wav</em></p>
<p>Записать звуковой файл с микрофона.</p>
<p>mpg123 <em>my_file.mp3</em></p>
<p>Проиграть звуковой файл mp3.</p>
<p>mpg123 -w <em>my_file.wav  my_file.mp3</em></p>
<p>Создать звуковой файл .wav из звукового файла mp3. Полезно для записи обычных  звуковых CD из коллекции mp3 &#8212; для начала вам придется конвертировать свои mp3  в формат *.wav. Не удивляйтесь невысокой скорости процесса &#8212; декомпрессия mp3  интенсивно загружает процессор.</p>
<p>xmms</p>
<p>(в X-терминале) Симпатичный проигрыватель mp3 с графическим интерфейсом.</p>
<p>freeamp</p>
<p>(в X-терминале) Еще один проигрыватель mp3 с графическим интерфейсом.</p>
<p>lame <em>исходный_файл</em> <em>файл_результат</em></p>
<p>Конвертер в MP3.</p>
<p>knapster</p>
<p>(в X-терминале) Эапускает программы для скачивания файлов mp3, предоставленных  другими пользователями napster. Вы тоже можете поделиться своими файлами.  Действительно здорово, пока это продолжается. Gnutella и FreeNet скоро заменят  его -&gt; и станет еще лучше.</p>
<p>cdparanoia -B &#8220;1-&#8221;</p>
<p>(CD ripper) Читает содержимое звукового CD и сохраняет звуковые файлы в текущей  директории, одна дорожка &#8211; один файл *.wav. Выражение &#8220;1-&#8221; значит  &#8220;с 1 -вой дорожки до последней&#8221;. -B заставляет помещать каждую  дорожку в отдельный файл.</p>
<p>playmidi <em>my_file.mid</em></p>
<p>Проигрывает файл midi. playmidi -r <em>my_file.mid</em> будет показывать различные эффекты в текстовом режиме.</p>
<p>sox <em>звуковой_файл  Звуковой_файл_в_другом_формате</em></p>
<p>(=&#8221;SOund eXchange&#8221;) Конвертирует большинство звуковых форматов в  другие (но не mp3). Список форматов можно получить при помощи man sox (их много). sox позволяет  добавлять некоторые дополнительные эффекты к вашим звуковым файлам.</p>
<p>kscd</p>
<p>(в X-терминале) CD-проигрыватель.</p>
<p>kmidi</p>
<p>(в X-терминале) MIDI-проигрыватель.</p>
<p>kmid</p>
<p>(в X-терминале) MIDI/караоке-проигрыватель.</p>
<p>kmix</p>
<p>(в X-терминале) Звуковой микшер.</p>
<p>studio</p>
<p>(in Xterminal) Звуковая студия &#8212; редактирование звуковых файлов, добавление  эффектов, и т.д. Есть на PowerTools CD, RH7.x.</p>
<p>extace</p>
<p>(в X-терминале) Программа визуализации звука.</p>
<p>festival &#8211;tts <em>my_file.txt</em></p>
<p>Проговаривает содержимое файла my_file.txt (текст  ascii). &#8220;festival&#8221; &#8211; это речевой синтезатор с диска RedHat 7.0  &#8220;Linux PowerTools&#8221;. Чтобы сказать что-нибудь из командной строки,  необходимо запустить &#8220;festival&#8221; и тогда, на приглашение  &#8220;festival&gt;&#8221;, введите соответствующую команду (нечто похожее на  интерпретатор), например (<strong>Жирный текст</strong> &#8211; это вывод компьютера):</p>
<p>festival</p>
<p><strong>festival&gt;</strong>(SayText &#8220;good dog, really good dog&#8221;)</p>
<p><strong>festival&gt;</strong> (quit)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/sokrashheniya-i-komandy-v-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Команды и сокращения Linux</title>
		<link>http://www.studcode.ru/archiv/komandy-i-sokrashheniya-linux/</link>
		<comments>http://www.studcode.ru/archiv/komandy-i-sokrashheniya-linux/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 18:19:30 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=879</guid>
		<description><![CDATA[Содержание:
5.1 Избранные горячие клавиши и команды Linux
5.2 Команды Справки
5.3 Информация о системе
5.4 Основные операции
5.5 Управление файлами
5.6 Просмотр и редактирование файлов
5.7 Поиск файлов
5.8 Основы X-windows
5.9 Сетевые приложения
5.10 (Раз)архивирование файлов

Intro. Это &#8211; практическая подборка  программ, которые мы используем наиболее часто, считаем полезными, и которые  присутствуют в наших дистрибутивах Linux (RedHat или Mandrake). Нажмите &#60;Tab&#62;  [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="text-decoration: underline;">Содержание:</span></strong></p>
<p>5.1 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#shortcuts#shortcuts">Избранные горячие клавиши и команды Linux</a></p>
<p>5.2 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#help#help">Команды Справки</a></p>
<p>5.3 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#sys_info_commands#sys_info_commands">Информация о системе</a></p>
<p>5.4 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#Basic_operations#Basic_operations">Основные операции</a></p>
<p>5.5 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#file_management#file_management">Управление файлами</a></p>
<p>5.6 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#view_files#view_files">Просмотр и редактирование файлов</a></p>
<p>5.7 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#find_files#find_files">Поиск файлов</a></p>
<p>5.8 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#X_win_basics#X_win_basics">Основы X-windows</a></p>
<p>5.9 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#Network_apps#Network_apps">Сетевые приложения</a></p>
<p>5.10 <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/5-1.shtml.htm#file_compression#file_compression">(Раз)архивирование файлов</a></p>
<p><img src="file:///D|/Documents and Settings/Alexey/Application Data/Adobe/Dreamweaver CS4/en_US/OfficeImageTemp/clip_image001_0001.gif" border="0" alt="" width="624" height="2" /></p>
<p><strong>Intro.</strong> Это &#8211; практическая подборка  программ, которые мы используем наиболее часто, считаем полезными, и которые  присутствуют в наших дистрибутивах Linux (RedHat или Mandrake). Нажмите &lt;Tab&gt;  в пустой командной строке, и вы увидите список всех возможных команд  (присутствуюших в вашем PATH). В моей маленькой домашней системе это даст 3786  исполняемых файлов в моём PATH. Многие из этих &#8220;команд&#8221; могут быть  доступны из вашей любимой графической оболочки (наверное, KDE или Gnome)  щелчком мыши по меню или кнопке. Все они могут быть выполнены из командной  строки (если вы не забыли установить соответствующий пакет, по крайней мере,  все они есть на ваших CD). Программы, требующие графической оболочки должны  выполняться из нее, например из терминала, открытого в kde или gnome (к примеру,  xterm). Несколько более продвинутых (и,  возможно, менее полезных для новичков) программ рассматриваются в главе &#8220;<a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/7.shtml">Продолжаем изучение Linux</a>&#8220;.<br />
<span id="more-879"></span><br />
<strong>Замечание для LINUX-новичков:</strong></p>
<p>1. Linux чувствителен к регистру символов. Например: Mozilla, MOZILLA, mOzilla, и mozilla будут РАЗНЫМИ  командами (но только mozilla  доступен в моей системе). А так же my_filE,  my_file  и my_FILE  &#8211; это три РАЗНЫХ файла. Ваши имя пользователя и пароль так же чувствительны к  регистру. (Это пришло из традиционного LINUX и языка программирования C.)</p>
<p>2. Имена файлов имеют длину до 256 символов и могут содержать буквы, цифры,  &#8220;.&#8221; (точки), &#8220;_&#8221; (подчеркивания), &#8220;-&#8221; (тире),  плюс несколько нерекомендованных символов.</p>
<p>3. Файлы с именами, начинающимися с символа &#8220;.&#8221; (они же &#8211; dotfiles)  обычно не показываются командами ls  и dir.  Считайте все такие файлы &#8220;скрытыми&#8221;. Используйте ls -a (Список всех  файлов), чтобы увидеть эти файлы.</p>
<p>4. &#8220;/&#8221; &#8211; это эквивалент DOS-овского &#8220;\&#8221; (Корневая  директория, являющаяся родительской для всех остальных, или разделитель между  именем диркетории и субдиректории или файла). Например, попробуйте cd /usr/doc.</p>
<p>5. Под Linux, все директории объединены в одно дерево директорий (здесь нет  DOS-образных букв дисков). Все директории, диски, и устройства помещаются в  одно дерево директорий.</p>
<p>6. В конфигурационных файлах строки, начинающиеся с &#8220;#&#8221;, являются  комментариями. При изменении конфигурационных файлов лучше не удаляйте старые  настройки, а просто добавьте # в начало строки. Всегда вставляйте краткое  описание ваших действий (для себя же!).</p>
<p>7. Linux &#8211; многопользовательская система. Ваши персональные настройки (и все другие  персональные файлы) располагаются в вашей домашней (home) директории /home/ваше_имя_пользователя.  Большинство настроек сохраняется в файлах с именами, начинающимися с точки.  Чтобы убрать их с глаз долой, см. пункт 3 выше.</p>
<p>8. Общесистемные настройки хранятся в директории /etc .</p>
<p>9. Под Linux, как в любой другой многопользовательской операционной системе,  все директории и файлы имеют владельца и права доступа. Обычному пользователю в  обычном случае разрешена запись только в свою домашнюю директорию -/home/ваше_имя_пользователя.  Научитесь пользоваться правами доступа, иначе многие вещи в Linux будут для вас  непонятны.</p>
<p>10. Параметры команд начинаются с &#8220;-&#8221;, если далее следует одна буква,  или с &#8220;&#8211;&#8221;, когда далее следует более одной буквы. Символ  &#8220;-&#8221; является эквивалентом DOS-овского ключа &#8220;/&#8221;. Например,  попробуйте rm &#8211;help.</p>
<p>11. Наберите &#8220;command&amp;&#8221;  (имя команды с последующим символом &#8220;&amp;&#8221;) для запуска команды в  фоновом режиме. Это предпочтительный способ для запуска программ из терминала  X-window.</p>
<h2><a id="shortcuts" name="shortcuts"></a>5.1 Избранные горячие клавиши Linux и  разумные команды</h2>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;F1&gt;</p>
<p>Переключиться на первый текстовый терминал. Под Linux вы получаете несколько (6  &#8211; стандартное количество) одновременно открытых терминалов. Это &#8211; клавиатурная  комбинация, которая значит: &#8220;нажмите вместе клавиши &lt;ctrl&gt; и  &lt;alt&gt; и держите их. Потом нажмите &lt;F1&gt;. И после этого отпустите все  клавиши.&#8221;</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;Fn&gt;  (n=1..6)</p>
<p>Переключение на текстовый терминал с номером n. (Nого же можно добиться  использованием команды chvt n.  &#8220;chvt&#8221; &#8211; значит &#8220;сменить виртуальный терминал (change virtual  terminal)&#8221;). В текстовом терминале (не в X-терминале) вы можете так же  использовать &lt;Alt&gt;&lt;Fn&gt;  (Клавиша &lt;Ctrl&gt;  здесь не нужна).</p>
<p>tty</p>
<p>Даст вам имя того терминала, в котором вы напечатаете эту команду. Если же вы предпочитаете  получить номер терминала вместо его имени, вы можете использовать fgconsole (=&#8221;активная  консоль(foreground console)&#8221;).</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;F7&gt;</p>
<p>Переключиться на первый графический терминал (точнее, на седьмой терминал, где  он обычно находится)</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;Fn&gt;  (n=7..12)</p>
<p>Переключиться на графический терминал Nn (если графический терминал выполняется  в позиции n-1). По умолчанию, первый X-сервер выполняется на терминале под  номером 7. По умолчанию, ничто не выполняется на терминалах с 8 по 12&#8211;вы можете  использовать их как X-терминалы.</p>
<p>&lt;Tab&gt;</p>
<p>(В текстовом или X-терминале) Автозавершение команд, если есть только одна  возможность, иначе &#8211; показывает все существующие возможности. В более новых  системах может потребоваться нажать &lt;Tab&gt;&lt;Tab&gt;.  ЭТО ВЕЛИКОЛЕПНАЯ КОМБИНАЦИЯ, она сохранит вам массу времени.</p>
<p>&lt;ArrowUp&gt;</p>
<p>(В текстовом или X-терминале) просмотр и редактирование истории команд. Нажмите  &lt;Enter&gt;  для выполнения команды из истории. Используйте &lt;ArrowDown&gt; для  обратного просмотра.</p>
<p>&lt;Shift&gt;&lt;PgUp&gt;</p>
<p>Просмотр истории вывода на терминал. Это работает даже в строке  &#8220;login&#8221;, так что вы сможете посмотреть сообщения загрузки.  Величина/использование вашей видеопамяти определяет то, насколько глубоко вы  можете просмотреть историю. &lt;Shift&gt;&lt;PgDown&gt;  Просмотр в обратном направлении.</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;+&gt;</p>
<p>(в X-windows) Сменить разрешение X-сервера на следующее (если вы установили  X-сервер более чем на одно разрешение). Для нескольких разрешений для своей  стандартной SVGA карты, я использую следующие строки в файле /etc/X11/XF86Config: (Первое  разрешение устанавливается по умолчанию, наибольшее определяет размер  &#8220;виртуального экрана&#8221;):</p>
<p>Modes &#8220;1024&#215;768&#8243;  &#8220;800&#215;600&#8243; &#8220;640&#215;480&#8243; &#8220;512&#215;384&#8243; &#8220;480&#215;300&#8243;  &#8220;400&#215;300&#8243; &#8220;1152&#215;864&#8243;Z</p>
<p>Конечно же, сначала я сконфигурировал X-сервер, используя Xconfigurator,  xf86config, или вручную &#8211; редактированием файла /etc/X11/XF86Config, и теперь  он поддерживает такие значения разрешения (в основном &#8211; благодаря  раскомментированию строк, относящихся к моей видеокарте, и определению частот  синхронизации для поддержки моего монитора). XFdrake (конфигурационная утилита Mandrake)  выполняется из графической оболочки. Так же смотрите команды xvidtune и xvidgen.</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;-&gt;</p>
<p>(в X-windows) выбрать предыдущее разрешение X-сервера.</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;Esc&gt;</p>
<p>(в X-windows, KDE) Закрыть окно, по которому будет произведен щелчок мыши  (указатель мыши превращается в символ смерти). Обычно результат сравним с  командой xkill, набранной в X-терминале. Полезно, когда программа в X-window не  хочет закрываться сама (зависла, что ли?).</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;BkSpc&gt;</p>
<p>(in X-windows) Закрыть текущий сервер X-windows. Используйте, когда сервер  X-windows не хочет закрываться по-хорошему.</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;Del&gt;</p>
<p>(в текстовом терминале) Закрыть систему и перезагрузиться. Это нормальная  команда завершения работы системы из текстового режима. Руки прочь от кнопки  &#8220;reset&#8221;!</p>
<p>&lt;Ctrl&gt;c</p>
<p>Убивает текущий процесс (работает в маленьких программах текстового режима).</p>
<p>&lt;Ctrl&gt;d</p>
<p>(Нажимается в начале пустой строки в режиме ввода команд) выход из текущего  терминала. См. так же следующие команды.</p>
<p>&lt;Ctrl&gt;d</p>
<p>Послать [Конец файла(End-Of-File)] текущему процессу. Не нажимайте дважды! (см.  предыдущюю команду).</p>
<p>&lt;Ctrl&gt;s</p>
<p>Приостановить поток вывода терминала.</p>
<p>&lt;Ctrl&gt;q</p>
<p>Возобновить поток вывода терминала. Попробуйте, если ваш терминал мистическим  образом перестал отвечать. См. предыдущую команду.</p>
<p>&lt;Ctrl&gt;z</p>
<p>Послать текущий процесс в фоновый режим.</p>
<p>exit</p>
<p>выход из системы. Команда logout  дает тот же эффект. (Если вы запустили вторую оболочку командной строки,  например, используя bash,  эта команда даст вам возможность покинуть ее, не выходя из первой. В этом  случае, второе использование exit  будет означать выход из системы.)</p>
<p>reset</p>
<p>Восстанавливает перекошенный терминал (терминал показывает забавные символы) в  состояние по умолчанию. Используйте, если случайно посмотрели двоичный файл  командой &#8220;cat&#8221;. Вы можете не увидеть этой команды, но она все равно  сработает.</p>
<p>&lt;Средняя кнопка мыши&gt;</p>
<p>Вставляет текст, выделенный в данный момент в другом месте. Это &#8211; обыкновенный  способ выполнения операции &#8220;копировать-вставить (copy-paste)&#8221; в  Linux. Такая же, как операция &#8220;копировать-вставить&#8221; в системе меню.  (Это может не сработать в некоторых старых приложениях. Это работает в  текстовом терминале, если вы разрешили сервис &#8220;gpm&#8221; в программе  установки. Кроме того, это работает в большинстве диалоговых окон, и т.п. &#8212;  это действительно удобно!) Лучше всего выполнять эту операцию с 3-кнопочной  мышью, приспособленной для Linux (Logitech или похожей), или используя  &#8220;эмуляцию 3-х кнопочной мыши (3-mouse button emulation)&#8221;.  &lt;СредняяКнопкаМыши&gt; нормально эмулируется на 2-х кнопочной мыши  одновременным нажатием обоих клавиш.</p>
<p>~</p>
<p>(знак &#8220;тильда&#8221;) Моя домашняя директория (/home/мое_имя_пользователя).  Например, команда cd ~/<em>my_dir</em> сменит мою рабочую директорию на субдиректорию &#8220;<em>my_dir</em>&#8221; в моей рабочей директории. Набрать &#8220;cd&#8221; без  параметров &#8211; это то же самое, что набрать &#8220;cd ~&#8221;. Я держу все мои  файлы в моей домашней директории.</p>
<p>.</p>
<p>(точка) текущая директория. К примеру, ./my_program  попробует выполнить программу &#8220;my_program&#8221; в вашей текущей  директории.</p>
<p>..</p>
<p>(Две точки) Директория, родительская для текущей. Например, команда cd .. переместит мою  текущую директорию на один уровень вверх.</p>
<p><span style="text-decoration: underline;">Несколько  дополнительных горячих клавиш для KDE или подобной графической среды</span> (полезных, но необязательных)</p>
<p>&lt;Alt&gt;&lt;Tab&gt;  Прогулка по окнам. Для прогулки в обратную сторону: &lt;Alt&gt;&lt;Shift&gt;&lt;Tab&gt;</p>
<p>&lt;Ctrl&gt;&lt;Tab&gt;  Прогулка по рабочим столам. В обратном направлении: &lt;Ctrl&gt;&lt;Shift&gt;&lt;Tab&gt;</p>
<p>&lt;Ctrl&gt;&lt;Esc&gt; Показать  таблицу активных процессов. Позволяет убить запущенный процесс, или послать ему  другой сигнал.</p>
<p>&lt;Alt&gt;&lt;F1&gt;  вызвать K-menu (&#8221;Эквивалент меню &#8220;Пуск(Start)&#8221; MS Windows).</p>
<p>&lt;Alt&gt;&lt;F12&gt;  Эмулировать мышь &#8220;стрелками&#8221; клавиатуры.</p>
<p>&lt;Alt&gt;&lt;LeftMouseButton&gt;  Перенести окно. Обычно окно передвигают, перетаскивая его заголовок. С помощью  этого сочетания клавиш можно передвигать окно за любую его часть.</p>
<p>&lt;Alt&gt;&lt;PrintScreen&gt;  Сделать снимок текущего окна в буфер обмена.</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;PrintScreen&gt;  Сделать снимок текущего рабочего стола в буфер обмена.</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;l&gt;  Запереть рабочий стол.</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;d&gt;  Спрятать/показать рабочий стол (неплохо для того, чтобы убрать пасьянс, когда  входит начальник).</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;Командная_клавиша&gt;</p>
<p>(Необязательные.) Это &#8211; ключевые комбинации, относящиеся к уровню ядра Linux  (низший уровнь). Это значит, что шансы использовать эти комбинации  представляются в любое время. Эти комбинации используются в отладочных целях и  только в случае необходимости, так что для начала можно попробовать другие,  более безопасные средства. Клавиша &lt;SysRq&gt; так же известна, как  &lt;PrintScreen&gt;. Комбинации могут быть разрешены/запрещены установкой  соответствуюшего параметра ядра в &#8220;1&#8243; или &#8220;0&#8243;, например : echo &#8220;1&#8243; &gt; /proc/sys/kernel/sysrq</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;k&gt;  Убить все процессы (включая X), которые выполняются на текущей виртуальной консоли.  Эта комбинация известна как &#8220;надежная клавиша доступа (secure access key,  SAK)&#8221;.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;e&gt;  Послать сигнал TERM всем процессам, кроме init, что должно привести к их  завершению.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;i&gt;  Послать сигнал KILL всем исполняемым процессам, кроме init. Эта комбинация  может преуспеть в уничтожении всех процессов более, чем предыдущая, но многие  из процессов могут закончиться ненормально.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;l&gt;  Послать сигнал KILL всем процессам, включая init. Система перестанет  функционировать.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;s&gt;  выполнить аварийную синхронизацию (запись кэша на диск) для всех смонтированных  файловых систем. Это может предотвратить потерю данных.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;u&gt;  Перемонтировать все файловые системы в режиме &#8220;только для чтения&#8221;.  Эта комбинация действует так же, как предыдущая, с одной важной особенностью:  если операция пройдет успешно, fsck не будет проверять все файловые системы при  следующей перезагрузке системы.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;r&gt;  Отключить режим непосредственной передачи данных (raw mode) с клавиатуры. Это  может пригодиться, если ваша сессия X-Windows зависнет. После ввода этой  команды вам, возможно, удастся нажать &lt;CTRL&gt;&lt;ALT&gt;&lt;DEL&gt;.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;b&gt;  Перезагрузиться немедленно, без синхронизации и демонтирования дисков. Это  чревато ошибками файловой системы.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;o&gt;  выключает систему (Если сконфигурировано и поддерживается).</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;p&gt;  выдает на консоль дамп содержимого текущих регистров и флагов.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;t&gt;  выдает на консоль список текущих задач и их информацию.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;m&gt;  выдает на консоль информацию о памяти.</p>
<p>&lt;Alt&gt;SysRq&gt;&lt;цифра&gt;  Цифра от &#8216;0&#8242; до &#8216;9&#8242;. Устанавливает уровень протокола(log) консоли, указывающий,  какие сообщения ядра будут печататься на вашей консоли. Например, &#8216;0&#8242; позволяет  выводить только сообщения об опасности, такие как PANIC или OOPS.</p>
<p>&lt;Alt&gt;&lt;SysRq&gt;&lt;h&gt;  выводит справку. Кроме того, любая другая комбинация  &lt;Alt&gt;&lt;SysRq&gt;&lt;клавиша&gt; выведет ту же справку.</p>
<h2><a id="help" name="help"></a>5.2 Команды помощи</h2>
<p><em>какая-то_команда</em> &#8211;help |more</p>
<p>выдаёт на дисплей краткую справку по команде (работает с большинством команд).  Например, попробуйте &#8220;cp &#8211;help |more&#8221;.  Ключ &#8220;&#8211;help&#8221; работает так же, как DOS-овский ключ &#8220;/h&#8221;.  Канал(pipe) к команде &#8220;more&#8221; нужен, когда вывод занимает больше, чем  один экран.</p>
<p>man <em>тема</em></p>
<p>выводит содержимое страниц системного руководства (справки) по указанной теме.  Нажмите &#8220;q&#8221; для прекращения просмотра. Попробуйте man man, если вам нужны  более продвинутые возможности. Команда info <em>тема</em> работает так же, как и man <em>тема</em>, но может  содержать более новую информацию. Man-страницы &#8211; нелегкое чтение для  пользователя, потому что они написаны для программистов LINUX. Попробуйте <em>какая-то_команда </em>&#8211;help,  чтобы получить краткую и простую справку по команде. Некоторые команды  поставляются с README или другими файлами справки &#8212; посмотрите в директории /usr/share/doc. Для вывода  информации из определенной секции системного руководства, можно попробовать: man 3 exit (Это выводит  информацию о команде exit  из секции 3 системного руководства) или man  -a exit (это покажет страницы руководства о exit из всех секций).  Секции man  содержат: 1-Команды пользователя, 2-Системные вызовы, 3-Подпрограммы,  4-Устройства, 5-Форматы файлов, 6-Игры, 7-Разное, 8-Системное  администрирование, Остальные секции &#8211; новое. Для печати страницы систеного  руководства, можно использовать: man  тема | col -b | lpr (параметр col -b удаляет  специфичные для man символы, затрудняющие печать).</p>
<p>info <em>тема</em></p>
<p>выводит сообщение по указанной теме. info  является заменой для man  и содержит более свежую информацию. Используйте &lt;Space&gt; и &lt;BkSpace&gt;  для перемещения, а &#8220;q&#8221; &#8211; для выхода. Заменой для этой несколько  странной системы просмотра справок может послужить pinfo &#8211; используйте  его, если решите, что он чем-то лучше.</p>
<p>apropos <em>тема</em></p>
<p>Даст мне список команд, которые смогут что-либо сделать с моей темой.</p>
<p>whatis <em>тема</em></p>
<p>даст мне краткий список команд соотносящихся с указанной темой. whatis похож на apropos (см. Выше)&#8211;он,  в основном, пользуется теми же данными. Но whatis ищет ключевые слова, тогда как apropos смотрит так же и  описания ключевых слов.</p>
<p>help <em>команда</em></p>
<p>выдает краткую информацию о встроенных командах bash (оболочка). Использование help без указания <em>команды</em> печатает список встроенных  команд оболочки. Краткий список встроенных команд bash включает: alias, bg, cd, echo, exit, export, fg, help, history,  jobs, kill, logout, pwd, set, source, ulimit, umask, unalias, unset.</p>
<p>kdehelp</p>
<p>kdehelpcenter</p>
<p>(в X-терминале, две команды, используйте ту, которая сработает в вашей  системе). Просмотр полного списка команд в графической среде навигатора  справочной информации KDE. Обычно справка KDE активизируется при выборе  картинки на панели KDE. gnome-help-browser  &#8211; эквивалент в среде GNOME.</p>
<h2><a id="sys_info_commands" name="sys_info_commands"></a><a id="X_win_basics" name="X_win_basics"></a>5.8 Основы X-windows</h2>
<p>xinit &amp;</p>
<p>Запускает сервер X-windows (без менеджера окон). Символ &#8220;&amp;&#8221;  отправляет команду в фоновый режим.</p>
<p>startx &amp;</p>
<p>Запускает сервер X-windows и менеджер окон. Почти как &#8220;win&#8221; в DOS с  Win3.1.</p>
<p>startx &#8212; :1 &amp;</p>
<p>Запускает другую сессию X-windows на дисплее 1 (по умолчанию используется  дисплей 0). Вы можете использовать несколько графических терминалов  одновременно. Переключайтесь между ними &lt;Ctrl&gt;&lt;Alt&gt;&lt;F7&gt;,  &lt;Ctrl&gt;&lt;Alt&gt;&lt;F8&gt;, etc.</p>
<p>xterm</p>
<p>(в X-терминале) выполнить простой терминал X-windows. Напечатайте exit, чтобы закрыть  его. Вот другие, более продвинутые &#8220;виртуальные&#8221; терминалы для  Xwindows. Мне нравятся следующие: konsole  и kvt  (поставляется kde)и gnome-terminal  (поставляется с gnome). Если вам требуется нечто более красивое, попробуйте Eterm. Более быстрый -rxvt.</p>
<p>startkde</p>
<p>gnome-session</p>
<p>xfce</p>
<p>afterstep</p>
<p>AnotherLevel</p>
<p>fvwm2</p>
<p>fvwm</p>
<p>(в X терминале, 7 различных команд, используйте одну из них для запуска вашего  любимого оконного менеджера) Запуск оконного менеджера в голом X-сервере.</p>
<h2><a id="Network_apps" name="Network_apps"></a>5.9  Сетевые приложения</h2>
<p>mozilla &amp;</p>
<p>(в X-терминале) Запустить web-браузер Mozilla. Текущая версия &#8211; Mozilla 1.0.1  (Октябрь 2002), и она очень хороша. Mozilla &#8211; это современная замена Mozilla  (mozilla был в старых дистрибутивах). Неплохие альтернативы &#8211; это konqueror и  galeon (наберите konqueror&amp; или galeon&amp; в вашем X-терминале).</p>
<p>mozilla  -display host:0.0 &amp;</p>
<p>(в X-терминале) Запустить Mozilla на текущей машине, перенаправив вывод на  машину под названием &#8220;host&#8221;, дисплей 0, экран 0. Ваша машина должна  иметь соответствующее разрешение на &#8220;host&#8221; (обычно выдается при  помощи команды &#8220;xhost имя_вашей_машины&#8221; в x-терминале на машине  &#8220;host&#8221;. Другие программы X-windows могут быть выполнены удаленно тем  же образом.</p>
<p>lynx <em>file.html</em></p>
<p>Просмотр файла html или просмотр сети в текстовом режиме. Конечно, внешний вид  и удобство использования lynx несравнимо хуже, чем у рассмотренных ранее  браузеров, но он легок, надежен и не нуждается в конфигурировании, пока ваша  сеть работоспособна.</p>
<p>konqueror &amp;</p>
<p>(в X-терминале) Менеджер файлов и браузер. Хорош, и по многим параметрам &#8211;  лучше, чем mozilla. Поставляется с KDE.</p>
<p>pine</p>
<p>Хорошая консольная программа чтения почты. Другой хорошей и стандартной  программой является elm.  Mozilla Mail читает почту из почтового ящика, расположенного в Интернете. pine позволяет вам  читать &#8220;локальную&#8221; почту, например, письмо от сына или от процесса  &#8220;cron&#8221; посланные с одного из компьютеров вашей домашней сети. Команда  mail  также может быть использована для чтения/составления почты, но это было бы  неудобно &#8212; ее следует использовать в скриптах, для автоматизации некоторых  процессов.</p>
<p>mutt</p>
<p>Действительно базовая, но весьма шустрая и удобная программа чтения почты.</p>
<p>mail</p>
<p>Базовая программа операционной системы для работы с электронной почтой.  Предыдущие команды гораздо более пригодны для чтения почты. mail хорош, если вы  хотите автоматизировать работу с почтой при помощи командных файлов.</p>
<p>kmail &amp;</p>
<p>(в X-терминале) Симпатичная почтовая программа с графической оболочкой. Я  использую kmail, он гораздо лучше, чем mozilla mail. У меня может быть много  учетных записей и доставка почты как с smtp сервера (локально) и с pop3  серверов (через интернет-провайдера) в один почтовый ящик. Просто и элегантно.  Поддерживает цифровые подписи.</p>
<p>licq &amp;</p>
<p>(в X терминале) Клиент icq. Другой хороший вариант &#8211; kxicq. В старых  дистрибутивах клиенты icq отсутствуют, и может потребоваться скачать его и  установить самостоятельно.</p>
<p>knode &amp;</p>
<p>(в X-терминале) Запустить программу чтения групп новостей (usenet reader).  Гораздо лучше, чем встроенный в mozilla.</p>
<p>talk <em>username1</em></p>
<p>Поговорить с пользователем, зарегистрированным в настояшее время на локальной  машине (или используйте &#8220;talk <em>username1</em>@<em>machinename</em>&#8221; для разговора с пользователем  на другой машине). Чтобы принять приглашение на разговор, наберите команду  &#8220;talk <em>username2</em>&#8220;. Если кто-то слишком  навязчиво пытается с вами поговорить, мешая вам работать, наберите &#8220;mesg n&#8221; чтобы  запретить прием сообщений. Вы можете использовать команды &#8220;who&#8221; или &#8220;rwho&#8221;, чтобы  получить список пользователей, работающих в настоящий момент в системе. talk &#8211; это одна из  старомодных &#8220;стандартных&#8221; программ LINUX, но она ничуть не утратила  своей актуальности.</p>
<p>telnet <em>server</em></p>
<p>Соединиться с другой машиной по протоколу TELNET. Используйте имя или IP-адрес  другой машины. У вас спросят имя пользователя(login) и пароль(password) &#8212; вы  должны быть зарегистрированы на этой машине. Telnet подсоединяет вас к  удаленной машине и позволяет вам работать с ней так, как если бы вы сидели за  ее клавиатурой (почти). Telnet не слишком безопасен &#8212; все что вы печатаете  идет в сеть в прямом виде (без шифрования), даже ваш пароль! Компетентный  системный администратор на одной из машин, &#8220;стоящих на пути&#8221;, сможет  прочитать все, что вы напечатали. Используйте ssh (требует  настройки) &#8211; более мощный аналог telnet с зашифрованной передачей данных.</p>
<p>rlogin <em>server</em></p>
<p>(=remote login(удаленный вход)) Вход на другую машину. Используются имя  пользователя и пароль текущей сессии; Если не удастся, то у вас спросят пароль.</p>
<p>rsh <em>server</em></p>
<p>(=remote shell(удаленная оболочка)) Другой способ присоединения к текущей  машине. Используются имя пользователя/пароль, используемые в текущей сессии;  Если не удастся, то у вас спросят пароль.</p>
<p>ssh <em>servername  -l username</em></p>
<p>(=secure shell(безопасная оболочка)) Присоединение к серверу, используя  безопасное соединение. ssh  безопасен, поскольку все данные, идущие через сеть, шифруются парой RSA  &#8220;открытый-закрытый&#8221; ключ. Если вы не определите имя пользователя,  будет использоваться текущее имя.</p>
<p>Сервис  ssh должен быть запущен и на клиенте и сервере. Обычно он доступен в новых  дистрибутивах Linux (например, RH7.0). Перед использованием ssh, необходимо  сделать некоторые установки. Пользователь создает свою пару ключей RSA (для  шифрования), используя команду ssh-keygen. Она сохраняет закрытый ключ в  директории $HOME/.ssh/identity и публичный ключ $HOME/.ssh/identity.pub в  директории пользователя. Для разрешения автоматического входа, пользователь  должен скопировать identity.pub из директории $HOME/.ssh/authorized_keys в свою  домашнюю директорию на удаленной машине, и после этого пользователь может  входить без ввода пароля. Более удобным является использование  RSA-аутентификации при использовании агента аутентификации. Смотрите man  1 ssh-agent для  дополнительной информации. Если автоматическая аутентентификация не удастся,  ssh запросит пароль пользователя. Пароль будет передан на удаленный компьютер  для проверки, однако, поскольку весь обмен данными зашифрован, пароль не может  быть подсмотрен кем-либо в сети.</p>
<p>From: Benjamin  Smith &lt;bens@benjamindsmith.com&gt; (сокращено):</p>
<p>В  последнее время я использую openssh 2.9.2p1 с безпарольным входом. Это  потребовало некоторых действий, не описанных ни в одном howto: Ключи SSH2 и  DSA, которые вы генерируете с помощью &#8217;ssh-keygen -d&#8217;, помещаются в  ~/.ssh/id_dsa.pub. Нужно скопировать их на директорию удаленного компьютера:  .ssh/authorized_keys2 и использовать их вместо &#8220;authorized_keys&#8221;,  указанных в howto. Это действительно работает.</p>
<p>ftp <em>server</em></p>
<p>Вход по протоколу FTP на другую машину. (Есть еще ncftp,  обладающая дополнительными возможностями и gftp  для работы в графической оболочке .) FTP удобен для копирования файлов с  удаленной машины (или на нее). Попробуйте пользователя &#8220;anonymous&#8221;,  если у вас нет пользовательской записи на удаленной машине. После соединения,  используйте &#8220;?&#8221; для просмотра списка доступных вам команд ftp.  Избранные команды ftp: ls (просмотр файлов  в удаленной системе), ASCII, binary  (устанавливает текстовый или двоичный режим передачи данных, важно выбрать  правильно), get (Скопировать файл из удаленной  системы в локальную), mget (то же, но  несколько файлов за раз), put (скопировать  файлы из локальной системы в удаленную), mput  (то же, но несколько файлов за раз), bye (закрытие  соединения). Для использования в командных файлах, вам может пригодиться ncftpput  и ncftpget, например:</p>
<p>ncftpput -u имя_пользователя -p пароль -a удаленный_сервер.домен  удаленная_директория *local.html</p>
<p>&#8220;ncftp&#8221; может иметь проблемы, если ваш компьютер снабжен средством  безопасности firewall &#8212; вам потребуется конфигурировать файл  /home/usr_name/.ncftp/firewall. Так же в этом случае вы можете использовать  &#8220;lftp&#8221;, например:</p>
<p>lftp -e &#8220;mput -a *local.html&#8221; -u мое_имя_пользователя,мой_пароль  ftp://remote.host.domain</p>
<p>Для создания &#8220;зеркала&#8221; директории ftp можно использовать fmirror.</p>
<p>wget -m &#8211;no-parent http://sunsite.dk/linux-newbie</p>
<p>Копировать файлы с Web-сайта. Пример содержит параметры -m (=mirror(зеркало))  для того, чтобы перенести все файлы с основного сайта этого руководства.  Параметр &#8220;&#8211;no-parent&#8221; ограничивает список переносимых файлов  указанной директорией и её субдиректориями.</p>
<p>minicom</p>
<p>Программа Minicom предназнасена для эмуляции терминала на последовательном  порте. Выглядит и работает, как &#8220;Procomm&#8221; или &#8220;Telix&#8221;.  Полезна для тестирования и отладки соединения через ваш последовательный порт.</p>
<p>rx</p>
<p>Забрать файл через соединение по протоколу Zmodem, Ymodem, или Xmodem. Xmodem  требует имени файла. Используйте rx  &#8211;help для дополнительной информации. Интересно,  кто до сих пор использует эти протоколы?</p>
<p>&#8220;Я  использую Zmodem регулярно. У меня два компьютера с установленным (SuSE) Linux,  переносной и настольный. Настольный компьютер не имеет подключения к Internet.  Так что для того, чтобы перебросить файл с одного компьютера на другой, я  пересылаю его по нуль-модемному кабелю, используя протоколы Minicom и Zmodem.  Таким образом я могу даже подключиться с переносного компьютера под управлением  Win2000 к моей linux-машине, используя Reflexion (программу эмуляции терминала  для win32)&#8221; (from Berry Vos, B.Vos@getronics.com, 2001 08 28).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/komandy-i-sokrashheniya-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Базовые механизмы сетевых взаимодействий</title>
		<link>http://www.studcode.ru/archiv/bazovye-mexanizmy-setevyx-vzaimodejstvij/</link>
		<comments>http://www.studcode.ru/archiv/bazovye-mexanizmy-setevyx-vzaimodejstvij/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 17:55:34 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=875</guid>
		<description><![CDATA[Операционная  система LINUX с самого своего возникновения была по своей сути сетевой  операционной системой. Однако по причине одновременного наличия нескольких  вариантов ОС (см. раздел 1) образовалось несколько альтернативных механизмов,  каждый из которых обладал собственными преимуществами и недостатками. В  наиболее унифицированном и стандартизированном варианте LINUX System V среди  этих механизмов [...]]]></description>
			<content:encoded><![CDATA[<p>Операционная  система LINUX с самого своего возникновения была по своей сути сетевой  операционной системой. Однако по причине одновременного наличия нескольких  вариантов ОС (см. раздел 1) образовалось несколько альтернативных механизмов,  каждый из которых обладал собственными преимуществами и недостатками. В  наиболее унифицированном и стандартизированном варианте LINUX System V среди  этих механизмов был наведен некоторый порядок, и в этом разделе мы приведем  сравнительно краткий обзор современного положения дел.</p>
<h4><a id="_2_7_2" name="_2_7_2">Стек протоколов  TCP/IP</a></h4>
<p>TCP/IP  (Transmission Control Protocol/Internet Protocol) представляет собой семейство  протоколов, основным назначением которых является обеспечение возможности  полезного сосуществования компьютерных сетей, основанных на разных технологиях.  В 1969 году Агентство перспективных исследовательских проектов министерства  обороны США (DARPA &#8211; Department of Defense Advanced Research Project Agency)  поддержало и финансировало проект, посвященный поиску общей основы связи сетей  с разной технологией. В результате выполнения этого проекта была образована  единая виртуальная сеть, получившая название Internet. В Internet для связи  независимых сетей, или доменов используется набор шлюзов. Каждый индивидуальный  узел сети (Host) идентифицируется уникальным адресом, называемым адресом в  Internet.<br />
<span id="more-875"></span><br />
Для разрешения  проблемы различий в форматах кадров, используемых в разных сетях, был определен  универсальный формат пакета данных, называемого IP-датаграммой (Internet  Protocol Datagram), состоящего из заголовка и порции данных и поэтому похожего  на обычный сетевой кадр. Однако порция данных IP-датаграммы сама содержится  внутри сетевого кадра, т.е. IP-датаграмма погружается в сетевой кадр  конкретного формата и поэтому может передаваться в разных сетях, входящих в  Internet. Все узлы, шлюзы и сети Internet должны быть в состоянии понимать  IP-датаграммы.</p>
<p>Узлы,  взаимодействующие в Internet, не устанавливают между собой физические  соединения для целей индивидуального взаимодействия. Поэтому датаграммы не  обрабатываются в каком-либо конкретном порядке. Напротив, каждая датаграмма  обрабатывается независимо от других, что позволяет эффективно разделять ресурсы  для всего множества (логически) связанных узлов. Но это, к сожалению, означает,  что сервис, предоставляемый Internet, не является надежным, поскольку не  гарантирует доставку пакетов в нужном порядке, отсутствие потерь датаграмм или  отсутствие их дублирования.</p>
<p>Эту проблему решает  протокол TCP (Transmission Control Protocol), обеспечивающий надежную доставку  сообщений за счет подтверждений доставки датаграмм и их повторной передачи в  случае надобности. Если узел, посылающий датаграмму, не получает подтверждение  о ее доставке в течение установленного промежутка времени, то считается, что  датаграмма не доставлена, и она посылается повторно.</p>
<p>Полное семейство  протоколов, основанных на использовании IP-датаграмм, называется TCP/IP.  Наиболее важными и базисными протоколами этого семейства (или стека, как его  часто называют) являются кратко описанные выше протоколы IP и TCP. Мы не будем  описывать остальные протоколы семейства TCP/IP. Для определенности все они  перечислены в таблице 2.2. Большая часть коммуникационных средств ОС LINUX  основывается на использовании протоколов стека TCP/IP.</p>
<p><strong>Таблица 2.2.</strong></p>
<p>Семейство протоколов TCP/IP</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="85">
<strong>Название</p>
<p>протокола</strong></td>
<td width="545">
<p align="center"><strong>Описание    протокола </strong></p>
</td>
</tr>
<tr>
<td width="85">
<p align="center">TCP</p>
</td>
<td width="545">Протокол    управления передачей (Transmission Control Protocol)</td>
</tr>
<tr>
<td width="85">
<p align="center"><strong>UDP</strong></p>
</td>
<td width="545">Протокол    пользовательских датаграмм (User Datagram Protocol)</td>
</tr>
<tr>
<td width="85">
<p align="center"><strong>ARP</strong></p>
</td>
<td width="545">Протокол    разрешения адресов (Address Resolution Protocol)</td>
</tr>
<tr>
<td width="85">
<p align="center"><strong>RARP</strong></p>
</td>
<td width="545">Протокол    обратного разрешения адресов (Reverse Address Resolution Protocol)</td>
</tr>
<tr>
<td width="85">
<p align="center"><strong>IP</strong></p>
</td>
<td width="545">Протокол    Internet (Internet Protocol)</td>
</tr>
<tr>
<td width="85">
<p align="center"><strong>ICMP</strong></p>
</td>
<td width="545">Протокол управляющих сообщений Internet    (Internet Control Message Protocol)</td>
</tr>
<tr>
<td width="85">
<p align="center"><strong>FTP</strong></p>
</td>
<td width="545">Протокол пересылки файлов (File    Transfer Protocol)</td>
</tr>
<tr>
<td width="85">
<p align="center"><strong>TFTP</strong></p>
</td>
<td width="545">Простой    протокол пересылки файлов (Trivial File Transfer Protocol)</td>
</tr>
</tbody>
</table>
<p>В LINUX System V  Release 4 протокол TCP/IP реализован как набор потоковых модулей плюс  дополнительный компонент TLI (Transport Level Interface &#8211; Интерфейс  транспортного уровня). TLI является интерфейсом между прикладной программой и  транспортным механизмом. Приложение, пользующееся интерфейсом TLI, получает  возможность использовать TCP/IP.</p>
<p>Интерфейс TLI  основан на использовании классической семиуровневой модели ISO/OSI, которая  разделяет сетевые функции на семь областей, или уровней. Цель модели в  обеспечении стандарта сетевой связи компьютеров независимо от производителя  аппаратуры компьютеров и/или сети. Семь уровней модели можно кратко описать  следующим образом.</p>
<p><strong>Уровень 1:</strong> Физический уровень (Physical Level) &#8211;  среда передачи (например, Ethernet). Уровень отвечает за передачу  неструктурированных данных по сети.</p>
<p><strong>Уровень 2:</strong> Канальный уровень (Data Link Layer) &#8211;  уровень драйвера устройства, называемый также уровнем ARP/RARP в TCP/IP. Этот  уровень, в частности, отвечает за преобразование данных при исправлении ошибок,  происходящих на физическом уровне.</p>
<p><strong>Уровень 3:</strong> Сетевой уровень (Network Level) &#8211; отвечает  за выполнение промежуточных сетевых функций, таких как поиск коммуникационного  маршрута при отсутствии возможности прямой связи между узлом-отправителем и  узлом-получателем. В TCP/IP этот уровень соответствует протоколам IP и ICMP.</p>
<p><strong>Уровень 4:</strong> Транспортный уровень (Transport Level) &#8211;  уровень протоколов TCP/IP или UDP/IP семейства протоколов TCP/IP. Уровень  отвечает за разборку сообщения на фрагменты (пакеты) при передаче и за сборку  полного сообщения из пакетов при приеме таким образом, что на более старших  уровнях модели эти процедуры вообще незаметны. Кроме того, на этом уровне  выполняется посылка и обработка подтверждений и, при необходимости, повторная  передача.</p>
<p><strong>Уровень 5:</strong> Уровень сессий (Session Layer) &#8211; отвечает  за управление переговорами взаимодействующих транспортных уровней. В NFS  (Network File System &#8211; Сетевая файловая система, см. п. 2.8.1) этот уровень  используется для реализации механизма вызовов удаленных процедур (RPC &#8211; Remote  Procedure Calls, см. п. 2.7.4).</p>
<p><strong>Уровень 6:</strong> Уровень представлений (Presentation Layer)  &#8211; отвечает за управление представлением информации. В NFS на этом уровне  реализуется механизм внешнего представления данных (XDR &#8211; External Data  Representation), машинно-независимого представления, понятного для всех  компьютеров, входящих в сеть.</p>
<p><strong>Уровень 7:</strong> Уровень приложений &#8211; интерфейс с такими  сетевыми приложениями, как telnet, rlogin, mail и т.д.</p>
<p>Интерфейс TLI  соответствует трем старшим уровням этой модели (с пятого по седьмой) и  позволяет прикладному процессу пользоваться сервисами сети (без необходимости  знать о деталях транспортного и более низких уровней). В System V Release 4 TLI  реализован на основе механизма потоков. Для доступа используются не специальные  системные вызовы, а функции библиотеки /usr/lib/libnsl_s.a.</p>
<h4><a id="_2_7_3" name="_2_7_3">Программные  гнезда (Sockets)</a></h4>
<p>Механизм  программных гнезд (Sockets) впервые был реализован в 1982 году в LINUX BSD 4.1  в качестве развитого средства межпроцессных взаимодействий. Это средство,  вообще говоря, позволяет любому процессу обмениваться сообщениями с любым  другим процессом, независимо от того, выполняются они на одном компьютере или  на разных, соединенных сетью. Функционально механизм программных гнезд близок к  возможностям TLI (пятого уровня в соответствии с моделью ISO/OSI).</p>
<p>Программные гнезда  входят в число обязательных компонентов стандартной среды ОС LINUX, однако реализуются  в разных системах по-разному. В BSD-ориентированных системах Sockets  исторически реализуются в ядре ОС, и пользователям предоставляются пять  специальных системных вызовов: socket, bind, listen, connect и accept (подробнее о  функциях этих системных вызовов см. п. 3.4.5).</p>
<p>В LINUX System V  Release 4 тоже поддерживается механизм программных гнезд, однако он реализован  не внутри ядра системы, а в виде набора библиотечных функций (библиотеки /usr/lib/libsocket.a), которые написаны  с использованием механизма TLI. Заметим, что это в очередной раз демонстрирует  преимущества подхода открытых систем, который всегда поддерживался в мире ОС  LINUX: при наличии четко определенных интерфейсов и развитых базовых средств  прикладной программист и разработанные им программы не должны зависеть от  конкретной реализации.</p>
<p>Тем не менее,  разработчики и поставщики System V призывают не использовать механизм Sockets в  новых программах, а опираться непосредственно на возможности TLI. По нашему  мнению, это дело вкуса, поскольку существует так много давно написанных  программ, использующих программные гнезда, что ни один поставщик ОС LINUX  никогда не решится перестать поддерживать Sockets.</p>
<h4><a id="_2_7_4" name="_2_7_4">Вызовы удаленных  процедур (RPC)</a></h4>
<p>Основными идеями  механизма вызова удаленных процедур (RPC &#8211; Remote Procedure Calls) являются  следующие:</p>
<p>(а) Во многих  случаях взаимодействие процессов носит ярко выраженный асимметричный характер.  Один из процессов (&#8221;клиент&#8221;) запрашивает у другого процесса  (&#8221;сервера&#8221;) некоторую услугу (сервис) и не продолжает свое выполнение  до тех пор, пока эта услуга не будет выполнена (и пока процесс-клиент не  получит соответствующие результаты). Видно, что семантически такой режим  взаимодействия эквивалентен вызову процедуры, и естественно желание оформить  его должным образом синтаксически.</p>
<p>(б) Как уже  отмечалось, ОС LINUX по своей идеологии с самого начала была по-настоящему  сетевой операционной системой. Свойства переносимости позволяют, в частности,  предельно просто создавать &#8220;операционно однородные&#8221; сети, включающие  разнородные компьютеры. Однако, остается проблема разного представления данных  в компьютерах разной архитектуры (часто по-разному представляются числа с  плавающей точкой, используется разный порядок размещения байтов в машинном  слове и т.д.). Плохо, когда решение проблемы разных представлений данных  возлагается на пользователей. Поэтому второй идеей RPC (многие считают, что это  основная идея) является автоматическое обеспечение преобразования форматов  данных при взаимодействии процессов, выполняющихся на разнородных компьютерах.</p>
<p>Впервые пакет RPC  был реализован компанией Sun Microsystems в 1984 году в рамках ее продукта NFS  (Network File System &#8211; сетевая файловая система, см. п. 2.8.1). Пакет был  тщательно специфицирован с тем, чтобы пользовательский интерфейс и его функции  не были зависимыми от применяемого транспортного механизма. Заметим, что в  настоящее время Sun распространяет два варианта пакета &#8211; бесплатный (Public  Domain), основанный на использовании программных гнезд, и коммерческий,  базирующийся на механизме потоков (на самом деле, на интерфейсе TLI). В обоих  случаях пакет реализуется как набор библиотечных функций. Например, в случае  использования коммерческого варианта RPC в среде System V программы должны  компоноваться с библиотекой /usr/lib/librpcsvc.a. Специальные  системные вызовы для реализации RPC не поддерживаются.</p>
<p>Независимость от  конкретного машинного представления данных обеспечивается отдельно  специфицированным протоколом XDR (EXternal Data Representation &#8211; внешнее  представление данных). Этот протокол определяет стандартный способ  представления данных, скрывающий такие машинно-зависимые свойства, как порядок  байтов в слове, требования к выравниванию начального адреса структуры,  представление стандартных типов данных и т.д. По существу, XDR реализуется как  независимый пакет, который используется не только в RPC, но и других продуктах  (например, в NFS).</p>
<h3><a id="_2_8" name="_2_8">Распределенные файловые системы</a></h3>
<p>Основная идея  распределенной файловой системы состоит в том, чтобы обеспечить совместный  доступ к файлам локальной файловой системы для процессов, которые, вообще  говоря, выполняются на других компьютерах. Эта идея может быть реализована  многими разными способами, однако в среде ОС LINUX все известные подходы  основываются на монтировании удаленной файловой системы к одному из каталогов  локальной файловой системы. После выполнения этой процедуры файлы, хранимые в  удаленной файловой системе, доступны процессам локального компьютера точно  таким же образом, как если бы они хранились на локальном дисковом устройстве.</p>
<p>На рисунке 2.5  приведен пример, в котором два подкаталога удаленной файловой системы-сервера  (share и X11) монтируются к двум (пустым) каталогам файловой системы-клиента.</p>
<p><img class="aligncenter size-full wp-image-876" title="clip_image001_0000" src="http://www.studcode.ru/wp-content/uploads/2009/12/clip_image001_0000.gif" alt="clip_image001_0000" width="359" height="293" /></p>
<p>Рис.  2.5. Схема монтирования удаленной файловой системы</p>
<p>В принципе, такая  схема обладает и достоинствами, и недостатками. К достоинствам, конечно,  относится то, что при работе в сети можно экономить дисковое пространство,  поддерживая совместно используемые информационные ресурсы только в одном  экземпляре. Но, с другой стороны, пользователи удаленной файловой системы  неизбежно будут работать с удаленными файлами существенно более медленно, чем с  локальными. Кроме того, реальная возможность доступа к удаленному файлу  критически зависит от работоспособности сервера и сети. Заметим, что  распространенные в мире LINUX сетевые файловые системы NFS (Network File System  &#8211; сетевая файловая система) и RFS (Remote File Sharing &#8211; совместное  использование удаленных файлов) являются достаточно тщательно спроектированными  и разработанными продуктами, во многом сглаживающими отмеченные недостатки.</p>
<h4><a id="_2_8_1" name="_2_8_1">Сетевая файловая  система (NFS)</a></h4>
<p>Система NFS была  разработана компанией Sun Microsystems как часть ее сетевого продукта ONC (Open  Network Computing &#8211; открытая сетевая вычислительная обработка). В настоящее  время NFS является официальным компонентом LINUX System V Release 4.</p>
<p>NFS разрабатывалась  как система, пригодная к использованию не только на разных аппаратных, но и на  разных операционных платформах. В настоящее время продукт NFS в соответствии со  спецификациями и на основе программного кода Sun Microsystems выпускает более  200 производителей. Отметим, в частности, наличие популярного в России продукта  PC-NFS, обеспечивающего клиентскую часть системы в среде MS-DOS. Кроме того,  заметим, что имеются и свободно доступные (public domain), и коммерческие  варианты NFS.</p>
<p>Первоначально NFS  разрабатывалась в среде LINUX BSD 4.2, и для реализации системы потребовалось  существенно переделать код системных вызовов файловой системы. При внедрении  NFS в среду System V понадобилась значительная переделка ядра ОС. Отмечается,  что большая часть изменений в ядре System V Release 4 была связана именно с  NFS.</p>
<p>В архитектурном  отношении в NFS выделяются три основные части: протокол, серверная часть и  клиентская часть. Протокол NFS опирается на примитивы RPC, которые, в свою  очередь, построены над протоколом XDR (см. п. 2.7.4). Клиентская часть NFS  взаимодействует с серверной частью системы на основе механизма RPC.</p>
<p>Основным  достоинством NFS является возможность использования в среде разных операционных  систем. Возможным недостатком является то, что независимость от транспортных  средств ограничена уровнем такой независимости, присущей RPC. В настоящее время  де-факто это означает, что NFS можно использовать только в  TCP/IP-ориентированных сетях. (Это еще вопрос &#8211; плохо ли это, поскольку  стимулирует использование единообразных сетевых механизмов.)</p>
<h4><a id="_2_8_2" name="_2_8_2">Совместное  использование удаленных файлов (RFS)</a></h4>
<p>Сетевая файловая  система RFS была реализована компанией AT&amp;T в рамках ее продукта LINUX  System V Release 3. Функционально она выглядит подобно NFS, т.е. обеспечивает  прозрачный доступ к удаленным файлам. Однако реализация системы абсолютно  отлична. Основным недостатком RFS является то, что система реализуема только на  компьютерах, работающих под управлением ОС LINUX (причем именно LINUX System V  с номером выпуска не меньше, чем 3). Но с другой стороны, это решение позволило  сохранить для пользователей RFS всю семантику файлов ОС LINUX. В частности (в  отличие от NFS), в удаленной файловой системе могут находиться не только  обычные файлы и каталоги, но и специальные файлы и именованные программные  каналы. Более того, на удаленные файлы распространяются возможности блокировки  файлов и/или диапазонов адресов внутри файлов.</p>
<p>Если NFS опирается  на протокол RPC, то в RFS используется родной для AT&amp;T протокол обмена  сообщениями на основе потоков (другими словами, реализация RFS основана на  использовании интерфейса TLI). (Кстати, в этом имеется большой смысл, поскольку  механизм RPC во многих случаях является слишком ограничительным.)</p>
<p>Другим  преимуществом RPC (тоже связанным с использованием TLI) является независимость  системы от используемого транспортного механизма (если, конечно, этот механизм  поддерживает спецификации семиуровневой модели ISO/OSI). Поэтому эту систему  можно использовать в среде операционных систем, основывающихся на различных  сетевых протоколах (ISO/OSI уважают практически все).</p>
<p>В этой вводной части курса  мы (возможно, слишком поверхностно) рассмотрели наиболее важные особенности ОС  LINUX. В следующих частях будут детально обсуждаться более технические и/или  частные вопросы.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/bazovye-mexanizmy-setevyx-vzaimodejstvij/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Простой Web-сервер (используем Apache)</title>
		<link>http://www.studcode.ru/archiv/prostoj-web-server-ispolzuem-apache/</link>
		<comments>http://www.studcode.ru/archiv/prostoj-web-server-ispolzuem-apache/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 17:52:45 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=873</guid>
		<description><![CDATA[Установить простой web-сервер apache на RedHat 6.0 необычайно просто. Во-первых, я убедился в том, что apache rpm-пакет был установлен в процессе установки RedHat. Если нет &#8211; поместите RH CD в ваш CDROM, смонтируйте его, и установите пакет apache-*.rpm (вместо &#8220;*&#8221; имя содержит номер версии и платформу). Если я знаю, что я хочу установить, то сделать [...]]]></description>
			<content:encoded><![CDATA[<p>Установить простой web-сервер apache на RedHat 6.0 необычайно просто. Во-первых, я убедился в том, что apache rpm-пакет был установлен в процессе установки RedHat. Если нет &#8211; поместите RH CD в ваш CDROM, смонтируйте его, и установите пакет apache-*.rpm (вместо &#8220;*&#8221; имя содержит номер версии и платформу). Если я знаю, что я хочу установить, то сделать это &#8211; просто (как &#8220;root&#8221;):<br />
cd /mnt/cdrom/RedHat/RPMS<br />
rpm -ivh apache*.rpm<br />
Потом, я запускаю &#8220;setup&#8221; (как &#8220;root&#8221;) и убеждаюсь, что демон(daemon) httpd (в &#8220;системных сервисах(system services)&#8221;) размещен. [Демон (daemon) это программа, которая "сидит" в фоновом режиме и пробуждается, когда это необходимо. В случае с httpd, он проснется, когда кто-нибудь будет обращаться к вашему http-серверу.]<br />
Теперь httpd будет запускаться автоматически каждый раз, когда я запускаю компьютер. Кроме того, я могу запускать его вручную (как &#8220;root&#8221;):<br />
/etc/rc.d/init.d/httpd start<br />
и отключать, используя:<br />
/etc/rc.d/init.d/httpd stop</p>
<p><span id="more-873"></span><br />
Я проверил бы наличие директории /home/httpd (при отсутствии создал бы), и внутри нее поддиректории html&#8211;это &#8220;корневая директория (root directory)&#8221; для людей, обращающихся к моему компьютеру через Web (&#8221;их корневая директория&#8221; значит, что у них не будет возможности обратиться к директориям выше /home/httpd/html/ в вашей системе). По умолчанию, эта директория содержит несколько файлов html и руководство, которые программа установки apache размещает там. Так что теперь я мог бы обратиться к моему WEB-серверу из домашней сети. Например, я мог бы ввести в строку &#8220;Location&#8221; программы Mozilla:<br />
http://my_http_server_name<br />
и прочитать руководство к Apache.<br />
Для того, чтобы наполнить мой сервер содержимым, я перемещаю файлы примеров от Apache куда-нибудь еще, и копирую мои html-файлы (которые я желаю опубликовать) в директорию /home/httpd/html/ (не забудьте включить файл index.html, он будет открыт первым, когда кто-нибудь обратится к вашему серверу).<br />
Конфигурационные файлы apache и журнал(log)-файлы располагаются в директории /etc/html/ ,где вы сможете просмотреть/настроить их. Журнал(log)-файлы могут быть просмотрены в &#8220;реальном времени&#8221;, используя эту простую команду (как &#8220;root&#8221;):<br />
tail -f /etc/httpd/logs/access_log<br />
[Команда tail обычно выдает на экран конец ("хвост(tail)") текстового файла. С флагом "-f", "tail" сохраняет на экране хвост журнал-файла с учетом его роста -- очень удобно для просмотра того, кто в данный момент входит на ваш сервер.]<br />
Для графической установки сервера Apache, попробуйте (в X-терминале, как &#8220;root&#8221;, если вы установили &#8220;Comanche&#8221; с вашего RedHat CD):<br />
comanche</p>
<p><strong>Простой ftp-сервер</strong><br />
С моими более старыми дистрибутивами RedHat Linux (RH&lt;7.1), установка ftp-сервера не могла быть проще &#8212; он просто работал по умолчанию. Это потому, что ftp-сервис разрешен по умолчанию как один из стандартных сервисов (так же как и telnet или gopher), в файле /etc/inetd.conf. Здесь наиболее значимая часть моего файла /etc/inted.conf: ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a  telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd  gopher stream tcp nowait root /usr/sbin/tcpd gn Вторая часть моих настроек ftp-сервера находится в файле /etc/passwd который определяет псевдо-пользователя ftp: ftp:*:14:50:FTP User:/home/ftp: Двоеточие &#8220;:&#8221; это разделитель полей. Первое поле &#8211; имя псевдопользователя &#8220;ftp&#8221;, Звездочка &#8220;*&#8221; &#8211; второе поле &#8211; объявляет, что пароль отключен (никто не сможет войти с именем пользователя &#8220;ftp&#8221;), пользовательский идентификатор 14, идентификатор группы 50, &#8220;FTP User&#8221; это коментарий, домашняя директория /home/ftp, последнее поле осталось пустым (для &#8220;нормального&#8221; пользователя, это означает имя оболочки, назначенной по умолчанию). Поскольку эти установки уже произведены в моей системе для меня моим RedHat, кто-нибудь может войти через ftp на мой компьютер либо как пользователь (с вводом пароля и переходом в его домашнюю директорию), либо как &#8220;безымянный(anonymous)&#8221; с использованием электронного почтового адреса в качестве пароля. Любой пользователь в строке &#8220;location&#8221; своего Mozilla может ввести что-то вроде: ftp://my_computer_name и автоматически подключиться (Mozilla позаботится о вводе имени пользователя &#8220;anonymous&#8221; и адреса электронной почты как пароля). Анонимные пользователи ftp направляются в директорию /home/ftp , которая становится для них корневой (они не смогут работать с вышерасположенными директориями). Я располагаю файлы, которые я собираюсь предоставить пользователям в директории /home/ftp/pub . Директория /home/ftp/bin содержит команды, предназначенные для исполнения пользователями ftp. В моей системе это: compress, cpio, gzip, ls, sh, tar, zcat; все с правами &#8220;только для выполнения&#8221; (111). Директория /home/ftp/etc содержат файлы установок для обеспечения доступа (редактированные passwd, group, ld.so.cache). Директория /home/ftp/lib содержит библиотеки (Я думаю, эти библиотеки используются программами, к которым разрешен доступ анонимных пользователей).  Red Hat 7.1 использует xinetd вместо старого inetd, и большинство сетевых сервисов по умолчанию отключены. Если вы не можете использовать вход через telnet даже на собственную машину или не можете пользоваться другими сервисами, вы должны осмотреть файлы в директории /etc/xinetd.d, и редактировать файл с именем сервиса, так чтобы он содержал: &#8220;disable = no&#8221; . Это сделано из соображений безопасности &#8212; вы должны выбрать необходимые сервисы и разрешить только их. Не включайте ftp, если он вам не нужен &#8212; могут возникнуть некоторые проблемы с безопасностью. Если вы разрешили сетевые службы, убедитесь, что вы предусмотрительно настроили файлы /etc/hosts.allow и /etc/host.deny для безопасности.  Файл примера /etc/xinetd.d/tpfp показывает, что сервис отключен:  service tftp  {  disable = yes  socket_type = dgram  protocol = udp  wait = yes  user = root  server = /usr/sbin/in.tftpd  server_args = -s /tftpboot  }  Если у вас нет этих файлов, выполните cat чтобы увидеть какие сервисы установлены в вашей системе. Демоны большинства сервисов будут запускаться автоматически при старте системы, если это разрешено с помощью программы setup (как &#8220;root&#8221;). 4.5.9 Как получить доступ к моему компьютеру извне, когда я подключаюсь к сети через телефон?? Довольно трудно, поскольку ваш IP-адрес выдается динамически вашим провайдером из его пула IP-адресов, и, следовательно, ваш IP-адрес каждый раз разный. (Если, конечно, вы не заключили отдельного соглашения с вашим провайдером). Для telnet, ftp или http из внешнего мира необходимо знать ваш текущий IP-адрес. Чтобы найти мой IP-адрес, я использую команду &#8220;interface configuration&#8221; которая, при выполнении без параметров, отображает информацию о всех активных сетевых интерфейсах, представленных на моей машине: /sbin/ifconfig На моей машине три параграфа информации : eth0 (Первый сетевой ethernet-интерфейс к компьютерам моей домашней сети), lo (интерфейс только-к-себе(loopback-only), с IP-адресом 127.0.0.1 должен быть представлен на каждой машине) и ppp0 (первый интефейс точка-к-точке(point-to-point protocol)). Мой текущий IP-адрес, назначенный мне моим провайдером, отображается поз заголовком ppp0. (ваша Linux-машина может иметь несколько IP адресов в один момент времени, так если у вас &#8220;статический&#8221; IP-адрес который вы используете в домашней сети, это совершенно верно, но видно лишь в вашей домашней сети.) Раз я знаю IP-адрес, я могу послать его через ICQ или e-mail друзьям, которые могут в этом случае, например, получить вход через telnet или ftp на мой компьютер (если у них есть учетная запись на моей машине) и выполнить программу на моей linux-машине, или ввести http://my_ip_address в строку &#8220;location&#8221; своего браузера, чтобы мосмотреть мои домашние странички, и т.д. Если у моих друзей есть Xwindows на их локальной машине, они могут так же исполнять графические программы на моем сервере, направив вывод на свой компьютер.  Кроме того, можно написать короткий командный файл, который будет уведомлять моих друзей о моем входе в Интернет и ввести имя командного файла в kppp-setup-account-edit-dial-&#8221;выполнить программу после соединения(execute program upon connect)&#8221;. Здесь, например, короткий скрипт сообщающий мне на работу, когда кто-то у меня дома входит в сеть. (Этот текст был введен в файл, который я сделал выполняемым с помощью chmod o+x file_name) :  #!/bin/bash  sleep 15  /sbin/ifconfig | mail -s notification my_email_address Первая строка сообщает моему компьютреру, что этот командный файл надо интерпретировать как файл скрипта оболочки bash. Вторая строка заставляет компьютер ждать 15 секунд (просто чтобы убедиться, что электронная почта не будет послана до тех пор, пока соединение не будет установлено). Третья строка выполняет команду ifconfig и передает ее вывод на вход программы mail, которая посылает его на my_email_address c темой сообщения &#8220;предупреждение(notification)&#8221;. Более гибкий путь состоит в том, чтобы сконфигурировать его как dial-up-ppp-сервер (в противоположность dial-in-клиенту, который вы используете для подключения к вашему провайдеру). Если у вас есть простой способ для того, чтобы сделать это &#8211; пожалуйста, напишите.  В общем, в отличие от MS Windows 3.x/95/98, которые серьезно ограничивают траффик в вашей сети, Linux ориентирован на работу в сети и позволяет осуществлять все виды соединений как С так и НА ваш Linux-компьютер. Мощные сетевые возможности &#8211; сила Linux, но для настоящего новичка они могут стать проблемой (см. следующий вопрос).  4.5.10 Может ли мой домашний компьютер быть взломан? К сожалению, это весьма возможно и весьма просто. Каждый раз, когда вы присоединяетесь к провайдеру, вы рискуете. В предыдующем вопросе вы можете узнать, как это происходит. Естественно, риск выше, если соединение постоянное (например кабельный модем), и ниже, когда соединения кратковременны (как обычно происходит при соединении через модем). Реальную опасность представляет непрошенный гость, если он сможет войти в систему, используя любую учетную запись, которую сможет подобрать (или выведать) &#8211; и получить права &#8220;root&#8221;. Обычно это возможно, если вы действительно администратор &#8211; новичок и/или ваша машина не ориентирована на настоящую безопасность (вы же дома, не так ли &#8212; зачем думать о безопасности!). Чтобы защитить себя, вы не должны позволить посторонним вломиться на ваш компьютер. Используйте длинные и сложные пароли для ВСЕХ учетных записей на вашем компьютере. Меняйте пароли регулярно. Для того чтобы навязать всем пользователям вашего компьютера правильную политику в отношении паролей, выполните (как &#8220;root&#8221;, например в RH6.0) linuxconf и под &#8220;политики паролей и учетных записей(password and account policies)&#8221; измените минимальную длину пароля на 6 или более знаков, минимальное количество не-буквенных знаков на 1 или 2, количество дней, после которых пароль должен быть сменен, на что-то вроде 90 или менее, и установите предупреждение об устарении пароля на 7 дней перед устарением. Остальную информацию о паролях смотрите здесь (FAQ2.htm#pass_security). Абсолютно НИКОГДА не создавайте учетных записей без пароля или со слабыми паролями. Не работайте на своем компьютере, как &#8220;root&#8221; &#8212; если вы выполняете программу с &#8220;дырами в безопасности&#8221; как &#8220;root&#8221;, кто-то может найти возможность взломать ваш компьютер. Старые Linux-дистрибутивы имели известные дыры в безопасности, так что используйте более новые версии, особенно если вашим компьютером могут воспользоваться ненадежные люди, или если ваш компьютер выполняет серверные функции (например, ftp или http сервер). Кроме того, совсем неплохая идея &#8211; регулярно просматривать все файлы, в которых фиксируются все входы пользователей в систему: /var/log/secure (самый последний log) /var/log/secure.1 (более старый) /var/log/secure.2 (еще более старый), и т.д. Кроме того, полезны log-файлы в директории /var/log. Проверяйте их время от времени. Наиболее распространенные &#8220;предупреждения(warning)&#8221; относятся к сканированию портов вашего компьютера &#8211; повторяющиеся попытки входа с какого-то IP-адреса на ваш telnet, ftp, finger или другой порт. Это значит, что кто-то хочет узнать больше о вашем компьютере. Если вы не используете удаленного соединения с вашей машиной, есть прекрасная идея ограничить права на использование сетевых сервисов &#8220;со стороны сервера&#8221; (все сетевые сервисы перечислены в файле /etc/inetd.conf) машинами вашей домашней сети. Доступ контролируется двумя файлами: /etc/hosts.allow и /etc/hosts.deny. Эти файлы контроля за доступом работают следующим образом. Когда кто-то извне запрашивает соединение, файл /etc/host.allow сканируется первым и если одно из имен, содержащихся в нем и имя компьютера, запрашивающего соединение совпадают, доступ разрешен (независимо от содержимого файла /etc/host.deny ). Иначе, сканируется файл /etc/host.deny, и если имя машины, с которой запрашивается соединение совпадает с одним из имен в файле, соединение закрывается. Если совпадения не найдены, разрешение предоставляется. B. Staehle (Гуру в Linux-модемах) дал мне совет не устанавливать сетевые службы вообще. &#8220;Если ваши сетевые службы не установлены правильно, ваш компьютер может быть захвачен любым скриптописателем. Новичкам _НЕ_СТОИТ_ разрешать сервисы (ftp, telnet, www) во внешний мир. Если вы &#8220;должны&#8221; устанавливать их, убедитесь в том, что вы разрешили доступ только с тех машин, которые можете контролировать. Файл /etc/hosts.deny должен содержать ALL: ALL  а /etc/hosts.allow должен содержать  ALL: 127.0.0.1  для разрешения входа только с этого компьютера. Не используйте имен (только IP-адреса)!&#8221;.  Действительно, мой /etc/host.deny, как и было посоветовано, содержит (ALL: ALL), но мой /etc/hosts.allow содержит еще два компьютера, имеющих полный доступ, и еще один для входа через telent и ftp: (IP-адреса вымышлены):  ALL: 127.0.0.1, 100.200.0.255, 100.200.69.1  in.telnetd, in.ftpd: 100.200.0.2  В вышеуказанных примерах &#8220;ALL: ALL&#8221; означает &#8220;ВСЕ(ALL) службы, ВСЕ(ALL) компьютеры&#8221;, то есть &#8220;соединение со всех компьютеров ко всем сетевым службам&#8221; идущих с &#8220;любого компьютера&#8221;.  Для большей информации, смотрите превосходное &#8220;Руководство сетевого администратора Linux (Network Administrator Guide)&#8221; которое, разумеется, есть в вашем дистрибутиве. Я, например, даже распечатал эту книгу.  Чтобы проверить, какие сетевые службы вашего компьютера доступны из внешнего мира, вы можете воспользоваться специальными WEB-инструментами. Зайдите на: http://scan.sygatetech.com/ и щелкните &#8220;scan now&#8221;.  Здесь другие места в которых могут вас просканировать: http://crypto.yashy.com/ http://davidovv2.homestead.com/freetoolsservices.html http://privacy.net/ http://scan.sygatetech.com/ http://security1.norton.com/us/intro.asp http://suicide.netfarmers.net/ http://trojanscanner.com/cgi-bin/nph-portscanner http://www.doshelp.com/dostest.htm http://www.dslreports.com/secureme/ http://www.dslreports.com http://www.earthlink.net/freescan/ http://www.grc.com http://www.hackerwhacker.com/ http://www.nessus.org http://www.netcop.com/newscan/fullscan.html http://www.privacyscan.org http://www.sdesign.com/cgi-bin/fwtest.cgi http://www.sdesign.com/securitytest/index.htmll http://www.securityspace.com/ http://www.vulnerabilities.org/nmapemail.html http://grc.com http://www.dslreports.com/scan http://www.dslreports.com/security/sec025.htm Из соображений безопасности, неплохо бы не афишировать операционную систему и ее версию, которые вы используете. Я сменил содержимое файла /etc/issue и /etc/issue.net, которые на моем компьютере выглядели так:  Red Hat Linux release 6.2 (Zoot)  Kernel 2.2.14-5.0 on an i586  на что-то вроде:  WARNING: THIS IS A PRIVATE NETWORK  UNAUTHORIZED USE IS PROHIBITED AND ALL ACTIVITIES ARE LOGGED  IBM S/390 LINUX  Эта шуточка может слегка (чуть-чуть) увеличить (я надеюсь) безопасность моей системы.  Содержимое файлов /etc/issue и /etc/issue.net я изменяю при каждой загрузке (когда выполняется /etc/rc.local). Чтобы сделать изменения постоянными, я могу сделать эти файлы доступными только для чтения для всех пользователей, выполнив (как &#8220;root&#8221;):  chmod a=r /etc/issue*  Вместо последней команды я мог бы отредактировать (как &#8220;root&#8221;), командный файл /etc/rc.d/rc.local и закоментировать 5 строк, используя ### таким образом, чтобы его значимая часть содержала:  # Здесь перезаписывается /etc/issue при каждой загрузке. Делаем несколько изменений  # необходимых, чтобы не потерять /etc/issue при перезагрузке  ### echo &#8220;&#8221; &gt; /etc/issue<br />
### echo &#8220;$R&#8221; &gt;&gt; /etc/issue<br />
### echo &#8220;Kernel $(uname -r) on $a $SMP$(uname -m)&#8221; &gt;&gt; /etc/issue<br />
### cp -f /etc/issue /etc/issue.net<br />
### echo &gt;&gt; /etc/issue<br />
Другая хорошая мера безопасности &#8211; выключить ping. Ping &#8211; это система, отвечающая на запрос, посланный с другого компьютера. Она весьма полезна при установке и отладке сетевых соединений, чтобы проверить, что ваша машина доступна по сети. Она может так же быть использована при прощупывании и/или атаке ее перегружающими ping-запросами (&#8221;ping of death&#8221;). Для запрета ping-запросов из сети я использую IP-маскарадинг. Я взял, слегка изменив, следующие команды, вместе с пояснениями с http://www.securityfocus.com/focus/linux/articles/linux-securing2.html:<br />
ipchains -A input -p icmp &#8211;icmp-type echo-request -i ppp0 -j REJECT -l<br />
(1) (2) (3) (4) (5) (6) (7)<br />
Разяснение флагов ipchains:<br />
1. Добавим новое правило.<br />
2. Указать сферу применения правила, в этом случае правило будет применено ко входящим пакетам.<br />
3. Протокол, к которому будет применяться правило. В этом случае &#8211; icmp.<br />
4. ICMP тип, в этом случае icmp эхо-ответ на запрос будет блокирован. &#8220;Эхо-ответ (ICMP echo)&#8221; значит ping.<br />
5. Имя интерфейса. В этом случае это первое телефонное соединение, ppp0.<br />
6. Цель,что мы будем делать с пакетами запроса.<br />
7. Отмечать все пакеты по некоторому критерию в системном журнал-файле.<br />
IP-маскарад более детально описан в главе &#8220;Маскарадинг&#8221; этого руководства.<br />
Другие меры предосторожности. Я время от времени посматриваю, чтоба кто-то не установил &#8220;root kit&#8221; на моей системе. Я использую &#8220;chkrootkit&#8221; (очень маленькую, 25k, скачанную с http://www.chkrootkit.org/). После скачивания:<br />
su [provide password]<br />
cd /usr/local<br />
tar xvzf /home/my_name/chkrootkit.tar.gz<br />
cd /usr/local/chkro<br />
make<br />
./chrootkit<br />
Последняя команда предназначена для поиска &#8220;root kit&#8221; в моей системе. &#8220;Rootkit&#8221; &#8211; это программы, оставляющие черный ход каждому, однажды получившему права &#8220;root&#8221;, устанавливаемые в целях прослушивания, просматривания, защиты своего доступа, и т.д.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/prostoj-web-server-ispolzuem-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как использовать Samba?</title>
		<link>http://www.studcode.ru/archiv/kak-ispolzovat-samba/</link>
		<comments>http://www.studcode.ru/archiv/kak-ispolzovat-samba/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 17:49:40 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=870</guid>
		<description><![CDATA[Samba (smb)  предназначена для сетевого обмена Linux-MS Windows. Эта программа маскирует  компьютеры Linux под MS Windows NT server, что позволяет компьютерам с MS  Windows 3.1/95/98 присоединяться к сети. Samba не просто заменяет WinNT &#8212; она  делает работу лучше, чем WinNT!
Одна из машин  моей домашней сети может быть загружена как в [...]]]></description>
			<content:encoded><![CDATA[<p>Samba (smb)  предназначена для сетевого обмена Linux-MS Windows. Эта программа маскирует  компьютеры Linux под MS Windows NT server, что позволяет компьютерам с MS  Windows 3.1/95/98 присоединяться к сети. Samba не просто заменяет WinNT &#8212; она  делает работу лучше, чем WinNT!</p>
<p>Одна из машин  моей домашней сети может быть загружена как в Linux, так и в Win95. Я  сконфигурировал мою сеть так, что если я загружаю Win95, другая Linux машина  действует как Samba-server. Таким образом, машины с Win95 могут работать с  сетевым принтером и разделяемыми директориями Linux, могут использовать telnet,  смотреть Internet через модем Linux-машины, etc. Кроме того, есть возможность  просмотра файлов на машине Win95 с компьютеров Linux.<br />
<span id="more-870"></span><br />
Необходимо  сконфигурировать Samba только на одной Linux-машине.</p>
<p>Во-первых, я  запустил setup как &#8220;root&#8221;, выбрал  &#8220;System Services&#8221; (RH6.0) или &#8220;ntsysv&#8221; (RH5.2) из меню, и  убедился, что сервис &#8220;smb&#8221; разрешен. (Программа setup  даст подсказку, если нажать F1. В случае, если вам захочется узнать для чего  нужны остальные сервисы.) Если smb здесь не указан, то, может быть, вы не  указали его при установке RedHat? Тогда вставьте RedHat CD в CDROM, смонтируйте  CD, запустите установочную утилиту glint (RH5.2) или gnorpm (RH6.0) (как  &#8220;root&#8221;) и добавьте Samba в вашу систему.</p>
<p>Во-вторых,  конфигурируем Samba. Это сравнительно просто, поскольку конфигурация Samba  содержится в одном, хорошо комментированном файле: /etc/smb.config  . Минимальные установки содержат только имя сетевой группы. Заметьте, что если  вы не заполнили параметр &#8220;host allow&#8221;, все хосты будут разрешены, это  может быть хорошо для домашней сети. Другие параметры /etc/smb.conf  , поставленного на вашем RedHat CD, могут понадобиться для удовлетворения ваших  особых нужд, но их не обязательно изменять для того, чтобы Windows-машины  присоединялись к Samba-серверу.</p>
<p>Проверьте, что параметры</p>
<p>domain master = yes</p>
<p>domain logons = yes</p>
<p>разрешены в /etc/smb.conf.  Возможно это вам понадобится.</p>
<p>Под RH6.0, вы  можете выполнить основные настройки samba, используя (как &#8220;root&#8221;):</p>
<p>netconf</p>
<p>В третьих,  конфигурируем MS Windows для работы в сети. Это происходит почти так же, как и  при подключении к WinNT server. Убедитесь, что вы разрешили работу в сети  (&#8221;client for Microsoft Network&#8221;) и заполнили имя рабочей группы. При  загрузке MS Windows, используйте имя и пароль пользователя Linux. Если это  сработало, щелкните по ярлыку &#8220;Network Neighborhood&#8221;&#8211; ваш сервер  Linux должен быть указан там, и в нем будут все директории и принтеры, которые  вы выбрали в /etc/smb.conf.</p>
<p>Если вы не видите  или не можете использовать директории, убедитесь, что создали их и разрешили  чтение/запись для пользователей.</p>
<p>MS Windows 95b и  выше (95c, 98, и новые NTs) могут использовать шифрование паролей. Это может  привести к ошибке аутентификации на машине Windows, и вам может потребоваться  разрешить этот параметр в файле /etc/smb.conf:</p>
<p>encrypt passwords = yes</p>
<p>На сервере Linux,  вы можете запускать, останавливать, перезагружать и проверять состояние Samba,  используя команды (как &#8220;root&#8221;):</p>
<p>samba start</p>
<p>samba status</p>
<p>samba restart</p>
<p>samba stop</p>
<p>вам потребуется  перезапустить samba после изменений в файле /etc/smb.conf.</p>
<p>вы можете  работать в Интернет из Windows, если вы присоединились к компьютеру с Linux  через Samba и Linux-машина на данный момент присоединена к Internet. Для этого,  IP-маскарад должен быть установлен на Linux-машине с модемом (рассмотрено <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/45.shtml.htm#masquerading#masquerading">здесь</a>)  и вы должны установить разрешение имен Samba через dns в /etc/smb.conf:</p>
<p>dns proxy = yes</p>
<p>и после этого  сообщить Windows разрешение сервера dns, определив имя сервера Linux и IP  адреса (в Панель управления(ControlPanel)-Сеть(Network)-TCP/IP).</p>
<p>вы так же можете  монтировать удаленную директорию Windows к вашей файловой системе Linux. См. <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/lnag_drives.html#samba_mount">здесь</a>.</p>
<p>Здесь рассмотрены  только самые минимальные установки Samba. Для получения более подробной  информации:</p>
<p>man samba; man smb.conf; man smbclient; man  smbmount</p>
<p>less  /usr/doc/HOWTO/SMB-HOWTO (under RH5.2)</p>
<p>документация в /usr/doc/samba-2.0.3/doc  (under RH6.0)</p>
<p>http://www.sfu.ca/~yzhang/linux/samba/  (samba minihowto)</p>
<p>http://www.germanynet.de/teilnehmer/101,69082/samba.html</p>
<p>а также полезно  изучить файл /etc/smb.conf .</p>
<h3><a id="sendmail" name="sendmail"></a></h3>
<h3>Sendmail</h3>
<p>Sendmail &#8211; это  стандартная в Internet система пересылки почты и стандартная система в RedHat  Linux (Mandrake использует PostFix). Как пользователь, вы не используете  sendmail непосредственно, потому что это &#8211; внутренний сервер, который управляет  почтой на вашей машине в фоновом режиме для всех пользователей. Для  чтения/посылки почты в текстовом режиме, вам, возможно, потребуется  использовать pine или elm. (выберите один и придерживайтесь его &#8212; содержание  двух раздельных почтовых ящиков может оказаться хлопотным). В KDE, вы можете  выбрать для использования &#8220;mail client&#8221; (kmail), доступный из K-menu.  Для связи с внешним миром через ppp, вам, возможно, захочется использовать  почтовую программу, встроенную в Mozilla, которая работает с почтовым ящиком,  расположенным у провайдера (в обход почтового сервера на вашем локальном  компьютере).</p>
<p>Sendmail &#8211; очень  мощная и гибкая программа, но также печально известная сложностью настройки и  управления под конкретные нужды. К счастью, Red Hat (5.2 или 6.x) поставляется  с sendmail, которая выходит за привычные рамки (накладывая ряд ограничений).</p>
<p>В моей домашней  системе (Red Hat с установками по умолчанию), я могу послать почту любому  пользователю на той же машине (например, используя pine). Я могу послать письмо  локально или в любую точку мира, как только соединюсь с провайдером через модем  (если <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/45.shtml.htm#masquerading#masquerading">IP  маскарад разрешен</a>). Но когда я не соединен, почта сидит в очереди и ждет  соединения с Интернет, даже если она предназначена для другого компьютера моей  сети (слегка раздражает). Она будет послана только после соединения. (Это  происходит потому, что sendmail пробует найти DNS, а это невозможно в моей  системе &#8212; RedHat DNS по умолчанию находится только в режиме кеширования). Если  вам необходимо обойти это ограничение в RH6.x, вы можете использовать netconf  (как &#8220;root&#8221;) и установить, чтобы sendmail не использовал DNS совсем  (Linuxconf, который поставляется с RH5.2, не дает такой возможности). Я  вынужден использовать DNS.</p>
<p>Под RedHat 6.x,  вам также может потребоваться netconf для  конфигурирования других параметров sendmail. Я ввел имя моего провайдера и  имена моих сетевых машин в &#8220;систему доставки почты(mail deliver  system)&#8221;-&#8221;рассылать хостам(relay to hosts)&#8221;. Я также добавил  имена моих домашних сетевых машин в &#8220;рассылать по именам(relay for by  name)&#8221;.</p>
<p>вы также должны  быть осведомлены об ограничениях вашей простой установки, которые всплывут при  отправлении почты из вашей домашней сети (например, используя pine), во внешний  мир. Если вы изобрели IP адреса и ваш домен не зарегистрирован, то нет никаких  шансов на получение ответа. Ваша исходящая почта содержит &#8220;ответный  (reply)&#8221; адрес в форме: &#8220;user_login_name@machine.domain&#8221;. Это НЕ  хорошо, поскольку такого домена НЕТ, по данным любой DNS внешнего мира &#8211; следовательно,  никакого ответа ждать не приходится. Чтобы преодолеть это, вы можете  использовать Mozilla mailer для связей с внешним миром. Mozilla использует  установки, введенные вами в пункте  &#8220;редактировать-установки(edit-preferences)&#8221; для непосредственной  связи с почтовым ящиком на компьютере вашего провайдера (который имеет  зарегистрированный адрес) и обходит ваш  незарегистрированный-домашний-сетевой-адрес почтовой системы. Другая  возможность состоит в указании правильного поля &#8220;ответный адрес (reply  to)&#8221;. Если это сделать в Mozilla, вы можете настроить ваш MozillaMail на  использование локального Linux-компьютера как почтового сервера. Этот способ  позволит посылать электронную почту с вашей MozillaMail на компьютеры вашей  домашней сети (а не только во &#8220;внешний мир&#8221;). Параметр &#8220;ответный  адрес(reply-to)&#8221; также может быть установлен в настройках &#8220;почтового  клиента (mail client)&#8221; KDE, если вы используете почтовую программу KDE.  Кроме того, в &#8220;pine&#8221; вы можете указать ответный адрес в разделе  &#8220;setup-configure&#8221;, &#8220;customized-hdrs&#8221; например так:</p>
<p>Reply-to: joe@joe_net.net</p>
<p>где  &#8220;joe@joe_net.net&#8221; ваш настоящий адрес электронной почты.</p>
<p>Если вы  хотите доставать вашу почту из вашего почтового ящика, размещенного на  настоящем сервере Internet, без помощи Mozilla/Kmail, вы можете попробовать программу fetchmail (см. man fetchmail).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/kak-ispolzovat-samba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Основные демоны Linux</title>
		<link>http://www.studcode.ru/archiv/osnovnye-demony-linux/</link>
		<comments>http://www.studcode.ru/archiv/osnovnye-demony-linux/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 17:34:54 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=868</guid>
		<description><![CDATA[Демоны &#8211; это &#8220;резидентные&#8221; программы, которые периодически &#8220;просыпаются&#8221;, проверяют систему и выполняют определенные задачи. Они не требуют от пользователей ввода данных и, как правило, не выдают сообщений. По умолчанию в вашей Linux-системе запускается целый набор демонов. Запуск большинства из них можно назначить/отменить с помощью программы ntsysv (RedHat), запустив её от имени администратора и отметив галочкой [...]]]></description>
			<content:encoded><![CDATA[<p>Демоны &#8211; это &#8220;резидентные&#8221; программы, которые периодически &#8220;просыпаются&#8221;, проверяют систему и выполняют определенные задачи. Они не требуют от пользователей ввода данных и, как правило, не выдают сообщений. По умолчанию в вашей Linux-системе запускается целый набор демонов. Запуск большинства из них можно назначить/отменить с помощью программы ntsysv (RedHat), запустив её от имени администратора и отметив галочкой соответствующий пункт. Нажав  в netsysv, вы получите краткое описание каждого демона. Если нужный вам демон отсутствует в списке ntsysv, то следует установить соответствующий пакет с инсталяционного диска RedHat/Mandrake. Альтернативой программе ntsysv может служить tksysv (запускается от имени администратора с X-терминала). Данная программа немного сложнее, но она позволяет производить более тонкую настройку (выбирать, какие демоны запускаются при различных режимах загрузки). Следующей по сложности в использовании является программа /sbin/chkconfig, которая предоставляет более мощные+гибкие возможности настройки.<br />
Далее приведен небольшой список основных демонов и их краткое описание:<br />
anacron &#8211; проверяет список заданий `cron&#8217;, пропущенных из-за того, что машина была выключена, и выполняет их. Очень удобно, если вы используете cron, но при этом ваша машина не работает круглосуточно &#8211; anacron обнаружит это при загрузке.</p>
<p><span id="more-868"></span></p>
<p>amd &#8211; демон для автоматического монтирования съемных носителей.</p>
<p>apmd &#8211; демон Advanced Power Management BIOS. Используется на машинах, поддерживающих apm (расширенное управление питанием) &#8211; в частности, на портативных компьютерах.</p>
<p>arpwatch &#8211; ведет базу данных соответствий ethernet/IP-адресов.</p>
<p>atd &#8211; запускает задания, назначенные с помощью команды &#8220;at&#8221;.</p>
<p>autofs &#8211; управление работой демонов автоматического монтирования (конкурент amd).</p>
<p>bootparamd &#8211; серверный процесс, предоставляет бездисковым клиентским машинам данные, необходимые при загрузке.</p>
<p>crond &#8211; планировщик заданий. Управляет выполнением задач, которые требуется запускать регулярно, но не часто. Например &#8211; обновление логов, очистка каталогов /tmp, и т.д.</p>
<p>cupsd &#8211; демон Common LINUX Printing System (CUPS). CUPS &#8211; это расширенная система печати, которая обеспечивает доступ к настройкам принтера и автоматическое обнаружение сетевых принтеров. В Mandrake данная система является системой печати по умолчанию.</p>
<p>dhcpd &#8211; поддержка протоколов Dynamic Host Configuration Protocol (DHCP) и Internet Bootstrap Protocol (BOOTP).</p>
<p>gated &#8211; демон маршрутизации, поддерживает несколько протоколов, заменяет routed и egpup.</p>
<p>gpm &#8211; удобный драйвер мыши для программ, работающих в тектовой консоли Linux.</p>
<p>httpd &#8211; демон веб-сервера Apache.</p>
<p>inetd &#8211; отслеживает запросы к сетевым службам, в частности, к службам дозвона, автоматически запускает и останавливает других демонов (ftpd, telnetd, и т.д.), что позволяет оптимизировать использование системных ресурсов. В современных системах вместо него используется xinetd.</p>
<p>isdn4linux &#8211; для ISDN-адаптеров.</p>
<p>kerneld &#8211; автоматически загружает и выгружает ядерные модули.</p>
<p>klogd &#8211; демон, который перехватывает и выводит на экран (или пишет в лог) сообщения ядра в зависимости от уровня приоритета этих сообщений. Существуют следующие приоритеты (взято из /usr/include/linux/kernel.h ):<br />
KERN_EMERG &#8220;&lt;0&gt;&#8221; работа системы невозможна<br />
KERN_ALERT &#8220;&lt;1&gt;&#8221; сообщения, требующие немедленной реакции<br />
KERN_CRIT &#8220;&lt;2&gt;&#8221; критические сообщения<br />
KERN_ERR &#8220;&lt;3&gt;&#8221; ошибка<br />
KERN_WARNING &#8220;&lt;4&gt;&#8221; предупреждение<br />
KERN_NOTICE &#8220;&lt;5&gt;&#8221; важное оповещение<br />
KERN_INFO &#8220;&lt;6&gt;&#8221; оповещение<br />
KERN_DEBUG &#8220;&lt;7&gt;&#8221; сообщения для отладки<br />
Данные сообщения записываются в соответствующие файлы директории /var/log/kernel.<br />
kudzu &#8211; во время загрузки определяет и настраивает новое или измененное оборудование.</p>
<p>keytable &#8211; загружает выбранную раскладку клавиатуры.</p>
<p>linuxconf &#8211; утилита настройки linuxconf. Позволяет автоматически производить некоторые операции для настройки системы с помощью linuxconf во время загрузки.</p>
<p>lpd &#8211; демон печати.</p>
<p>mcserv &#8211; сервер сетевой файловой системы для Midnight Commander. Обеспечивает доступ по сети к файловой системе с помощью файлового менеджера Midnight Commander. Если данная программа запускается с правами root, она пытается занять зарезервированный порт, в противном случае будет использоваться порт 9876. Если в системе запущен демон portmapper, то он зарегистрирует данный порт и клиенты будут автоматически подключаться к нужному порту. В противном случае порт должен быть указан вручную при помощи опции -p (см. далее).</p>
<p>named &#8211; сервер Internet Domain Name Server (DNS).</p>
<p>netfs &#8211; демон монтирования сетевых файловых систем. Используется для монтирования по nfs, smb и ncp при загрузке машины.</p>
<p>network &#8211; настраивает сетевые интерфейсы при загрузке, запуская скрипты из директории /etc/sysconfig/network-scripts.</p>
<p>nfsd &#8211; используется для экспорта ресурсов по nfs по запросам клиентских машин.</p>
<p>nfslock &#8211; запускает и останавливает службу блокировки файлов nfs.</p>
<p>numlock &#8211; включает клавишу numlock при смене уровня выполнения.</p>
<p>pcmcia &#8211; основные службы для устройств pcmcia в портативных компьютерах.</p>
<p>portmap &#8211; используется для удаленного вызова процедур (при работе в сети).</p>
<p>postfix &#8211; агент передачи почты, замена sendmail&#8217;а. В настоящее время агент по умолчанию в дистрибутивах Mandrake (в RedHat используется sendmail).</p>
<p>random &#8211; сохраняет и восстанавливает &#8220;энтропию&#8221; для более качественной генерации псевдослучайных чисел.</p>
<p>routed &#8211; демон, управляющий таблицами маршрутизации.</p>
<p>rstatd &#8211; служба статистики ядра.</p>
<p>rusersd, rwalld &#8211; идентификация удаленных пользователей и служба отправки wall-сообщений.</p>
<p>rwhod &#8211; сервер, обслуживающий базу данных, используемую программами rwho(1) и ruptime(1). Его работа зависит от возможности отправки широковещательных сообщений в данной сети.</p>
<p>sendmail &#8211; почтовый агент, по умолчанию используется в Red Hat.</p>
<p>smbd &#8211; демон SAMBA (smb), обеспечивает доступ по сети к ресурсам под управлением MS Windows (диски, принтеры, и т.д.)</p>
<p>squid &#8211; кеширующий http-прокси. Прокси-сервер отправляет запросы своих клиентов во внешнюю сеть от своего имени и возвращает им ответы. Данный прокси пригодится вам, если вы захотите использовать свою Linux-машину как шлюз в интернет для своей сети. Для домашних сетей лучше и безопаснее настроить masquarading (трансляцию адресов).</p>
<p>syslogd &#8211; управляет ведением системного журнала. Файл настройки этого демона &#8211; /etc/syslog.conf.</p>
<p>smtpd &#8211; простой протокол передачи почты (SMTP &#8211; Simple Mail Transfer Protocol), создан для обмена сообщениями электронной почты. Существует целый набор демонов, поддерживающих SMTP, в том числе sendmail, smtpd, rsmtpd, qmail, zmail, и т.д.</p>
<p>usb &#8211; демон, обслуживающий USB-устройства.</p>
<p>xfs &#8211; сервер шрифтов.</p>
<p>xntpd &#8211; находит сервер домена NIS и сохраняет информацию о нем в соответствующем файле.</p>
<p>ypbind &#8211; NIS binder. Используется, если компьютер является членом домена Network Information Service.<br />
4.5.1 Стоит ли установка домашней сети затраченного времени?<br />
Это &#8211; замечательная идея. Это позволяет использовать имеющиеся машины более производительно, чем по отдельности. Преимущества &#8211; общие жесткие диски, zip-дисководы, CD-дисководы, модем, принтеры, даже звуковые карты, возможность исполнять программы удаленно (в текстовом и графическом режиме), и работать в Интернете на всех компьютерах через одно телефонное соединение. Если вы потеряли контроль над собственной машиной, вы еще можете перезагрузить ее удаленно и избежать возможных проблем &#8212; смотрите ответ на вопрос &#8220;Отключение&#8221; для дополнительной информации.<br />
4.5.2 Как установить домашнюю сеть?<br />
Железо. Ваша аппаратура должна быть сконфигурирована должным образом. Ваша сетевая карта должна распознаться при начальной установке Red Hat. Если вы добавите вашу сетевую карту позже, есть шансы, что она распознается и будет автоматически сконфигурирована при следующей загрузке (с помощью программы kudzu). Если этого не произойдет, вам может потребоваться установить ее вручную. Если у вас больше одной сетевой карты в компьютере, вам может потребоваться устанавливать настройки сетевой карты вручную, поскольку Linux может распознать только одну сетевую карту.<br />
Под Linux большинство драйверов сетевых карт входят в дистрибутив в виде пакетов. Так что установка сетевой карты сводится к установке соответствующего пакета с необходимыми параметрами. Вам не придется ни перекомпилировать ядро, ни перегружать компьютер (за исключением того случая, если у вас совсем необычная карта). Чтобы разобраться, какие модули и параметры вам нужны, желательно обратиться к документации, поставляемой вместе с исходными текстами ядра:<br />
less /usr/src/linux-2.4/Documentation/networking/net-modules.txt<br />
Если потребуется, вы можете получить список всех модулей, доступных вашему ядру:<br />
modprobe -l | more<br />
Если потребуется дополнительная помощь, смотрите Руководство Сетевого Администратора Linux (Linux Network Administrator Guide) (файл /usr/share/doc/LDP/nag в вашей системе или http://metalab.unc.edu/mdw/index.html#guide). Это превосходное руководство известно как nag.<br />
Есть много способов добавить модуль в ядро. Для сетевой карты, проще всего запустить, как &#8220;root&#8221;, netconf и определить имя модуля там. Альтернатива состоит в запуске X-терминала, выполнении &#8220;su&#8221; (чтобы сделать себя &#8220;root&#8221;), и после этого нужно выполнить /usr/bin/kernelcfg.<br />
В большинстве случаев вам не придется устанавливать параметры (IRQ и адрес) для вашего модуля &#8212; модуль будет знать, какими они должны быть. Между тем, параметры были проблемой при установке двух сетевых карт на одном компьютере &#8212; вы должны удостовериться в отсутствии конфликтов. Главным источником проблем бывает желание видеокарты работать с IRQ 5, которое занято звуковой картой, или IRQ 3, что конфликтует с последовательным портом (COM2, cua1, ttyS1). Просмотр файла /proc/interrupts, /proc/ioport и чтение загрузочных записей может помочь.<br />
Например, моя карта WD8013 (то же что и SMC Elite и SMC Elite plus, упомянутые в nag) работают с IRQ 10 (установлено переключателем на карте и я опредилил это IRQ при установке модуля в ядро), под адресом 0&#215;300, модуль &#8220;WD&#8221; . Моя карта &#8220;SMC EtherEZ&#8221; (без переключателя на карте) работает с IRQ 9, адрес 0&#215;240 и модуль &#8220;SMC EtherEZ&#8221;. Пожалуйста, убедитесь, что вы не забыли указать &#8220;0x&#8221; в адресе &#8212; это означает &#8220;(шестнадцатерично-десятичный)hexadecimal&#8221; &#8212; иначе адрес будет воспринят как десятичный.<br />
После того, как модуль добавлен, просмотрите файл /proc/modules, чтобы увидеть, что модуль действительно загружен (или выполните lsmod как &#8220;root&#8221;). Файл конфигурации модулей &#8211; /etc/modules.conf, так что, если вы испытываете трудности (например, я испытываю трудности с удалением модулей, установленных с ошибкой), отредактируйте его вручную (например, используя pico).<br />
Конфигурирование сети. После установки сетевых карт и кабелей, установите сеть, выполнив (как &#8220;root&#8221;):<br />
netconf<br />
Эта программа может помочь! Netconf может работать и в графическом режиме, но сам я не пробовал. Если вам требуется лучше понять работу сети, вы можете почитать ранее упомянутый nag. Кроме того, чтение следующих материалов можеет быть полезным: http://ieee.uow.edu.au/~mjp16/wylug-netlinux/notes.html.<br />
Эти материалы содержат ясные примеры организации малой офисной сети, похожей на домашнюю, имеющую нерегулярную связь с внешним миром.<br />
Что и как заполнять в netconf, зависит от вашей сети. Вы, конечно, захотите заполнить &#8220;Основную информацию о главном узле(Basic Host Information)&#8221; (разрешить первый сетевой интерфейс, eth0, заполнить имя, псевдонимы и IP-номер вашего компьютера) и &#8220;Информацию о других узлах (Information About Other Hosts)&#8221; (имена, псевдонимы и IP-номера других компьютеров вашей домашней сети). Эта информация пойдет в файлы: /etc/hosts и /etc/sysconfig/network, так что вы можете провести там инспекцию и исправить что-нибудь вручную.<br />
Когда установите сеть, не запутайтесь с &#8220;loopback driver&#8221;, который имеет IP 127.0.0.1. Он всегда там &#8212; это IP, через который компьютер разговаривает сам с собой.<br />
Если у вас нет IP-адреса (что весьма типично для небольшой сети без связи с внешним миром), вы можете захотеть сочинить его. Это не так важно, поскольку при соединении с внешним миром через модем вам будет присвоен динамический IP-адрес (у машины может быть много IP-адресов). Ваш изобретенный IP должен быть формально правильным и сетевая маска должна совпадать с классом сети(класс A, B or C). Смотрите главу об IP адресах в уже упоминавшемся Руководстве Сетевого Администратора (nag) (/usr/doc/LPD/nag в вышей системе, если у вас до сих пор его нет, скачайте по адресу http://metalab.unc.edu/mdw/index.html#guide.<br />
Для домашней сети, вам может подойти сеть класса C (до 254 машин, или меньше) IP-номер которой начинается с трех цифр между 192 и 223. Последние три цифры однозначно определяют компьютер в вашей сети класса C и должен быть между 1 и 254 (не используйте 0, это значит &#8220;вся сеть&#8221; и 255, что означает &#8220;широковещательный адрес&#8221;). Между этими двумя значениями(от 0 до 255) вы можете выбрать любое. Так, 223.223.223.1 &#8211; это первая машина в сети класса C 223.223.223.0 (последний 0 означает &#8220;вся сеть&#8221;), с широковещательным адресом 223.223.223.255. Сетевая маска для сети класса C всегда 255.255.255.0 (если ваша сеть не будет разделена на несколько подсетей, но это здесь не обсуждается).<br />
Возможно, что вместо изобретения IP-адреса безопаснее/лучше использовать один из адресов для &#8220;частных сетей&#8221;. Для меня IP-адрес 192.168.1.1 работает совершенно замечательно. Таким образом, ваш IP-адрес гарантирует отсутствие конфликтов с IP-адресами, которые могут существовать в Интернете.<br />
Обычно первая машина в сети предполагается для присоединения к внешнему миру (поскольку она присоединяется первой, но стандарта на этот счет нет). Например, я занял под шлюз (GATEWAY) адрес xxx.xxx.xxx.1 (моя первая машина) на всех машинах, кроме самой xxx.xxx.xxx.1, где я оставил это поле чистым. В действительности, несмотря на то, что я оставил это поле пустым, netconf добавил шлюз(gateway) 0.0.0.0 в мой файл /etc/sysconf . Это было источником досадных сообщений об ошибке в процессе загрузки сетевой карты при старте системы. Чтобы убрать сообщения, я редактировал /etc/sysconfig/network и установил их примерно так:<br />
GATEWAYDEV=<br />
GATEWAY=<br />
[вам не нужен шлюз(gateway) на вашем ethernet-интерфейсе на этой машине, если он не ведет к внешнему миру. PPP-интерфейс на этой первой машине должен быть установлен как шлюз(gateway), раз уж вы используете модемное соединение, например kppp.]<br />
Имя компьютера полностью произвольно &#8212; обычно выбирается любое короткое слово на ваш вкус. Имя домена также произвольно, если у вас нет постоянного соединения, иначе вам придется регистрировать его. Постарайтесь изобрести что-нибудь, отсутствующее в сети &#8212; это облегчит вам жизнь.<br />
Для DNS(domain name server &#8211; сервер имен доменов), называемого так же &#8220;named&#8221; = name daemon(сервис имен), RedHat 5.2 и 6.0 идут с DNS, предустановленным &#8220;Только для кэширования(caching-only)&#8221; для облегчения конфигурирования. Вы также можете выбрать &#8220;не использовать локальный DNS&#8221;, поскольку если ваш локальный DNS ищет &#8220;внешний&#8221; сервер и не находит его, машина может зависнуть в течении нескольких минут. Для использования DNS, сервис &#8220;named&#8221; должен быть разрешен(enabled) &#8212; проверьте это, выполнив setup. Для установки DNS &#8220;только для кэширования(caching-only)&#8221;, заполните соответствуюшие поля netconf. Например, я заполнил &#8220;nameserver 1&#8243; для моей первой машины на всех компьютерах (Я ввел кольцевой (loopback) адрес 127.0.0.1 на машине xxx.xxx.xxx.1, и адрес xxx.xxx.xxx.1 на всех остальных машинах).<br />
Моей сети не требуются пути(routes) к другим сетям, поскольку у меня нет другой локальной сети. Поэтому я оставляю поле пустым.<br />
После правильной уствановки аппаратуры и заполнения информации в netconf на каждом компьютере, как описано выше, мне просто больше нечего делать в стандартном Red Hat для того, чтобы сеть заработала.<br />
Перезагрузите все компьютеры один за одним в любом порядке (это не обязательно, но не повредит) и посмотрите сообщения загрузки (если они прошли по экрану слишком быстро, используйте<br />
чтобы вернуть их, или запустите dmesg из командной строки, чтобы посмотреть их позже). Правильно ли установлены ваши сетевые карты? Используйте команду route (как &#8220;root&#8221;), чтобы увидеть, что интерфейс eth0 работает. Используйте команду ping для проверки соединений между машинами. Попробуйте войти на ваш компьютер, используя telnet, чтобы убедиться, что ваш кольцевой (loopback-only (lo)) интерфейс работает:<br />
telnet name_of_the_machine_you_are_sitting_at<br />
После удачного входа в систему, вы можете покинуть сессию telnet, напечатав<br />
exit<br />
Наконец, попробуйте войти через telnet на другой компьютер вашей сети:<br />
telnet name_of_a_remote_machine<br />
Если это сработало на всех машинах, то ваш сетевой интерфейс eth0 установлен.<br />
После установки ppp и подключения к Интернет-провайдеру, вы получите другой интерфейс (ppp0) и доступ к другим машинам всемирной сети.</p>
<p>4.5.3 &gt;У меня проблемы с конфигурированием удаленного соединения ppp<br />
GUI.<br />
На вашем месте я установил бы kde и использовал kppp. kppp весьма прост в конфигурировании и использовании. Чтобы установить удаленное соединение ppp, запустите kppp (выбрав в &#8220;K&#8221;-меню &#8220;Internet&#8221;, или из xterm напечатав kppp), нажмите клавишу &#8220;setup&#8221;, создайте account и заполните необходимую информацию: номер телефона (telephone number), протокол аутентификации (authentication protocol), имя домена вашего провайдера (Internet Service Provider&#8217;s (ISP)) и номер DNS вашего провайдера. Вся эта информация должна быть предоставлена вам вашим провайдером.<br />
Далее, я проверяю наличие /dev/modem и размещение его на правильном порте. Если необходимо, я создаю его, как символическую ссылку на /dev/ttyS1 (как &#8220;root&#8221;):<br />
ls -l /dev/modem<br />
ln -s /dev/ttyS1 /dev/modem<br />
ttyS1 должен работать, если ваш модем находится на порте, который DOS называет COM2. Используйте ttyS0 для COM1, ttyS2 для COM3 и ttyS3 для COM4. Модем не заработает, если порт выбран неправильно. Для нестандартных установок смотрите команду setserial.<br />
Со старыми версиями kppp, вы можете получить сообщение об ошибке &#8220;занято&#8221; (&#8221;lock&#8221;). Убедитесь что файл /etc/ppp/options пуст, отредактировав его (как &#8220;root&#8221;):<br />
pico /etc/ppp/options<br />
и удалив &#8220;lock&#8221;, сохраняя файл. Этой проблемы нет в более современных версиях kppp.<br />
RedHat 6.0 требует дополнительного шага: установки &#8220;suid&#8221; (&#8221;(Идентификатора замещающего пользователя)substitute user id&#8221;) чтобы &#8220;kppp&#8221; исполнялся всеми пользователями с эффективными правами &#8220;root&#8221; (это требуется для прямого обращения к аппаратуре). Без этого, kppp заявит что он &#8220;неправильно установлен (was not properly set up)&#8221; и &#8220;не может создать файл блокировки(can&#8217;t create lock file)&#8221;. Это делается так (как &#8220;root&#8221;):<br />
cd /usr/bin/<br />
chmod a+s kppp<br />
Решение проблем. Если ваш модем отказывается работать с портом, удостоверьтесь, что он выбран правильно. Может быть, модем настроен неправильно. (А вдруг это &#8220;winmodem&#8221;? Тогда выкиньте его подальше и купите настоящий модем).<br />
Например, в одном случае, мне пришлось менять установки kppp, редактировать &#8220;команды модема(modem commands)&#8221; и ввести ATZ1 как &#8220;строку инициализации(initialization string)&#8221; (вместо обычной для стандартных модемов ATZ). По-другому этот конкретный модем работать не хотел.<br />
Если в вашей телефонной сети принят импульсный набор (а не тоновый), вам может потребоваться заменить команду дозвона &#8220;ATDT&#8221; (=&#8221;ATtantion Dial Touchtone&#8221;) на &#8220;ATDP&#8221; (=&#8221;ATtantion Dial Pulse&#8221;). Эта команда сработает на любом стандартном модеме.<br />
Если дозвон прошел нормально и вы получили соединение(connect), но авторизация(вход в систему) провалилась, то, может быть, ваш провайдер использует другой протокол авторизации(autentification protocol). Позвоните ему и спросите, какой протокол авторизации он использует. Или попробуйте &#8220;pap&#8221;, &#8220;terminal-based&#8221; или &#8220;chap&#8221; (в установках kppp), пока не найдете подходящий.<br />
В одном случае, я заполучил проблему с надежностью установления соединения (выскакивало сообщение об ошибке, что-то вроде: &#8220;Время истекло для запуска pppd(time-out for the pppd startup)&#8221;, и соединение устанавливалось не с первой попытки).Проблема была решена изменением параметра &#8220;flow control&#8221; (в установках kppp под &#8220;device&#8221;) с &#8220;CRTSCTS&#8221; на XON/XOFF. (Несмотря на это, в большинстве случаев, flow control все равно является наиболее рекомендованным методом для CRTSCTS.)<br />
Случайное рассоединение (после нескольких удачных соединений) может иметь много причин. (1) Это может происходить по причине падения сигнала &#8220;терминал данных готов (data terminal ready)&#8221; (DTR) или сигнала &#8220;несущая частота (carrier)&#8221; &#8211; например, из-за посторонних шумов на линии. Большинство модемов реагирует на это зависанием. Чтобы изменить это распространенное поведение, вам может понадобиться добавить к вашей &#8220;строке инициализации модема (modem initialization string)&#8221; что-то вроде S10=50 . Это установит устойчивость к потере DTR (на 0.01 секунды) после чего зависание неизбежно (сверьтесь с вашим руководством к модему, модемы &#8220;US Robotics&#8221; хотят видеть что-то вроде S25=200). (2) Установка на &#8220;ожидание звонка&#8221; в вашей телефонной линии может вызвать рассоединение, если кто-то позвонит вам . (3) Старые телефонные кабели и грязные/ржавые телефонные розетки так же являются постоянным источником проблем. Проверьте соединения и поменяйте кабели, если нужно Уберите кабели подальше от источников электронных шумов. (4) Слишком высокая скорость для ваших деревенских длинных и шумных телефонных кабелей. Сбросьте скорость (или переезжайте в город). (5) Многие провайдеры отключат вас после некоторого периода бездействия (30 минут?).<br />
Если у вас все еще есть проблемы с установкой ppp, вы можете попробовать minicom чтобы увидеть, сможет ли ваш модем работать из-под него. Minicom &#8211; это нечто вроде PROCOMM для Linux. Он должен быть в вашей системе, если вы не отменили его выбор при начальной установке RedHat. Вот выдержка из группы новостей comp.os.linux.help, обьясняющая, как запустить ppp вручную, используя minicom (сокращено):<br />
From: mark  Subject: Re: Проблема с pppd и kppp<br />
BachuZ wrote:<br />
&gt;&gt;Кроме того, для эксперимента, попробуйте добраться до вашего провайдера, запустив ppp вручную &#8230; это докажет ошибочность скрипта. &gt;А как мне это сделать?<br />
Просто!! Но если ваш провайдер не поддерживает ручной авторизации(manual logon), вы будете в затруднении. Правда, все провайдеры, с которыми я имел дело, предоставляют такую возможность. Так что.. 1. Запустите minicom. 2. Соединитесь с провайдером(Dial ISP). 3. Представьтесь (log in). 4. После того, как ваш провайдер запустит PPP, покиньте minicom при помощи ALT-Q (эта последовательность нужна для того, чтобы &#8216;покинуть без сброса (quit without reset)&#8217;). 5. Запустите pppd, например:<br />
pppd -d -detach /dev/modem 115200 &amp;<br />
OK, PPP должен заработать. Попробуйте команду ping с любым известным вам IP-адресом. Это покажет, что все OK. Между прочим, все это есть в PPP-HOWTO. Если вы смогли добиться запуска PPP таким образом, тогда все ваши проблемы &#8211; в скрипте. Если PPP не работает, у вас проблемы с конфигурацией PPP. Будьте здоровы.<br />
Командная строка. Если вы предпочитаете запуск ppp из командной строки, используйте netconf (как &#8220;root&#8221;) для конфигурирования вашего первого интерфейса ppp (ppp0). Информация, которую вам придется ввести, подобна той, что вы вводили при настройке kppp (смотри выше!): Устройство, соответствующее модемному порту, строки инициализации модема и дозвона, номер телефона провайдера, протокол авторизации (вводом имени пользователя и пароля в правое поле). В более старых версиях, netconf не отводит места для IP &#8211; адресов провайдера и сервера DNS, так что я редактировал /etc/ppp/pap-secrets (Я использую PAP-протокол авторизации) и добавлял два DNS IP адреса в конец установочной строки созданной netconf, чтобы это выглядело примерно так:<br />
# added by linuxconf<br />
my_login_name ppp0 my_password 111.111.111.111 222.222.222.222<br />
Когда с установками закончено, я могу запустить интерфейс ppp0, используя команду (как &#8220;root&#8221;, если в netconf не было указано, что нормальный пользователь может запустить интерфейс):<br />
ifup ppp0<br />
и завершить его:<br />
ifdown ppp0<br />
Установка ppp-соединения из командной строки не сложнее запуска kppp и более надежно. Есть много командных файлов для запуска/остановки ppp, но они, несомненно, не столь просты в установке и использовании, и новички могут получить с ними большое количество проблем. Неудачное соединение ppp может быть устранено с помощью (как &#8220;root&#8221;):<br />
killall pppd<br />
Если эта минимальная установка ppp у вас не сработает, вот несколько полезных ссылок:<br />
Roderick A. Anderson &lt; raanders@altoplanos.net &gt; wrote:<br />
У меня есть страница по diald для работы с RedHat Linux 5.x, который работает у меня &#8211; http://home.altoplanos.net/~raanders/diald.html<br />
Bill Unruh &lt; unruh@physics.ubc.ca &gt; wrote:<br />
Я просто хотел обратить ваше внимание на: http://axion.physics.ubc.ca/ppp-linux.html для детальных инструкций по установке ppp. Это &#8211; для случаев, в которых удаленный пользователь (может быть без провайдера как вы оворили.) PAP или CHAP. Пока kppp полезно, но в ряде случаев он может провалиться.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/osnovnye-demony-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Работа с графической системой X Window System</title>
		<link>http://www.studcode.ru/archiv/rabota-s-graficheskoj/</link>
		<comments>http://www.studcode.ru/archiv/rabota-s-graficheskoj/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 16:58:48 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=865</guid>
		<description><![CDATA[Как  переключаться между графическим и текстовым режимом консоли?
Нажатие  комбинации клавиш &#60;Ctrl&#62;&#60;Alt&#62;&#60;F1&#62;  позволит вам переключиться на первую текстовую консоль в любое время. &#60;Ctrl&#62;&#60;Alt&#62;&#60;F2&#62;  переключит вас во вторую текстовую консоль, &#60;Ctrl&#62;&#60;Alt&#62;&#60;F3&#62; &#8211; в третью  текстовую консоль, и так до &#60;Ctrl&#62;&#60;Alt&#62;&#60;F6&#62;  &#8211; для переключения в последнюю 6-ю текстовую консоль. Нажатие комбинации &#60;Ctrl&#62;&#60;Alt&#62;&#60;F7&#62; [...]]]></description>
			<content:encoded><![CDATA[<h3>Как  переключаться между графическим и текстовым режимом консоли?</h3>
<p>Нажатие  комбинации клавиш &lt;Ctrl&gt;&lt;Alt&gt;&lt;F1&gt;  позволит вам переключиться на первую текстовую консоль в любое время. &lt;Ctrl&gt;&lt;Alt&gt;&lt;F2&gt;  переключит вас во вторую текстовую консоль, &lt;Ctrl&gt;&lt;Alt&gt;&lt;F3&gt; &#8211; в третью  текстовую консоль, и так до &lt;Ctrl&gt;&lt;Alt&gt;&lt;F6&gt;  &#8211; для переключения в последнюю 6-ю текстовую консоль. Нажатие комбинации &lt;Ctrl&gt;&lt;Alt&gt;&lt;F7&gt;  переключает в первую графическую консоль (X Window), если она еще не была  запущена до этого. &lt;Ctrl&gt;&lt;Alt&gt;&lt;F8&gt;  &#8211; во вторую графическую консоль; и так до &lt;Ctrl&gt;&lt;Alt&gt;&lt;F11&gt; &#8211;  последней графической консоли. Всего же графических консолей 5 . 12-я  консоль обычно используется либо как 6-я графическая консоль (в RedHat 6.1),  либо как текстовая консоль, на которую последовательно выводятся логи ядра (в  Mandrake). Обычно система используется либо вообще без графического интерфейса,  либо с одной графической консолью.</p>
<p>Комбинация  &lt;Ctrl&gt;&lt;Alt&gt;&lt;F1&gt;  означает: &#8220;Нажать и удерживать левый &lt;Ctrl&gt; и &lt;Alt&gt;. Теперь  нажмите &lt;F1&gt;. Отпустите клавишу &lt;F1&gt;. Отпустите клавиши  &lt;Ctrl&gt; и &lt;Alt&gt;.&#8221;<br />
<span id="more-865"></span><br />
Обычно,  сидя за компьютером с Linux, я открываю множество консолей и переключаюсь между  ними, используя описанные выше комбинации клавиш. Я должен авторизоваться в  каждой консоли для возможности ее использования. Могу зайти как один и тот же  пользователь, а могу и под другим именем. Каждый логин уникален, и никак не  повлияет на предыдущий. Первые шесть консолей &#8211; текcтовые, используют интерфейс  командной строки (CLI) и называются tty1, tty2, &#8230;, tty6 (исторически название  произошло от слова &#8220;teletypewriter&#8221;).  Следующие консоли &#8211;  графические (GUI). Все они называются *локальными* консолями (запущенны  непосредственно на моем компьютере). И все они реально многозадачные и  многопользовательские.</p>
<p>Вы  можете соединиться с Linux-компьютером удаленно, с помощью сети. Во время  соединения вы можете запускать программы на удалённом сервере, а всё содержимое  экрана будет передаваться на вашу &#8220;локальную&#8221; графическую консоль.  Локальная консоль может быть основана как на Linux, так и на другой операционной  системе. Например, с помощью ssh-клиента &#8220;putty&#8221; для Windows вы  можете соединиться с компьютером на базе Linux. Программы с Windows-сервера не  могут быть запущены на удалённом компьютере, но в Linux подобные возможности  часто используются.</p>
<p>Полноэкранные  текстовые консоли так же являются терминалами. В графической среде вы можете  создать &#8220;подчинённые&#8221; (slave) псевдо-терминалы (в окне) по вашему  желанию. Они будут называться pts0, pts1, &#8230;.</p>
<p>Сидя  за текстовым терминалом, вы можете определить название вашего терминала,  используя следующую команду:</p>
<p>tty</p>
<p>Я  определяю машину, за которой работаю в данный момент, используя команду:</p>
<p>uname -a</p>
<p>Название  команды &#8220;uname&#8221; происходит от сокращения &#8220;LINUX name&#8221;. Она  показывает имя операционной системы (установленной на данной  машине), название сервера, версию ядра операционной системы, и дату, когда  оно было скомпилировано.</p>
<p>Вы  можете закрыть текстовый терминал в любой момент, набрав команду  &#8220;exit&#8221; в командной строке.</p>
<p>Графический  интерфейс Linux немного похож на привычный для многих интерфейс MS Windows (или  на любой другой интерфейс, который вы использовали ранее). Но так же он имеет и  множество существенных отличий. Мне нравится большое количество рабочих столов,  которые позволяют вести свою работу более организованно. По умолчанию в KDE 4  рабочих стола (значение может меняться от 1 до 16). Я запускаю множество  программ и никогда их не закрываю. Чтобы при этом контролировать деятельность  каждой программы, я распределяю их на группы: Mozilla со всеми ее окнами, knode  (читалка новостей) и licq &#8211; на рабочем столе 2, abiword, staroffice и  текстовые редакторы &#8211; на рабочем столе 3, игры и konqueror с файлами справки &#8211;  на рабочем столе 4, а первый рабочий стол я оставляю для других временно  запускаемых программ. Переключать &#8220;рабочие столы&#8221; я могу с  помощью одного клика мыши на &#8220;пейджере&#8221; (менеджер рабочих столов),  который находится на главной панели KDE, или с помощью комбинации клавиш  &lt;Ctrl&gt;&lt;TAB&gt;.  Для переключения между приложениями на одном  &#8220;рабочем столе&#8221; я могу кликнуть на окне приложения, либо на имени  приложения в панели задач, либо использовать &lt;Alt&gt;&lt;TAB&gt;.  &lt;Ctrl&gt;&lt;Esc&gt; даст мне список процессов, запущенных в данный момент  на моей машине (&#8221;localhost&#8221;).</p>
<h3><a id="x_setup" name="x_setup"></a> Как мне установить видеокарту, монитор и мышь для  X-server?</h3>
<p>Эта  стадия должна была быть пройдена при установке системы. Если вы её пропустили,  самое дело сделать это сейчас. Зайдите под пользователем root в одну из  текстовых консолей и запустите одну из следующих команд :</p>
<p>Xconfigurator</p>
<p>XF86Setup</p>
<p>xconf</p>
<p>В  системе RedHat, вы так же можете использовать команду setup (под  пользователем root) и получить доступ к программе Xconfigurator оттуда.</p>
<p>Для  корректной настройки X-Window в Linux вы должны знать свое &#8220;железо&#8221;.  Вы, возможно, должны причитать документацию по вашему монитору, чтобы узнать  максимальную частоту вертикальной и горизонтальной разверток, которые  поддерживает ваш монитор. Сообщения, которые появляются при загрузке  компьютера, могут помочь вам определить тип и название вашей видеокарты, и  количество ее памяти. Используйте следующие команды для получения  дополнительной информации:</p>
<p>lspci</p>
<p>SuperProbe</p>
<p>Прочтите  метку со стороны скользящей поверхности мыши для того, что бы определить тип  вашей мыши. В следующий раз при покупке мыши выбирайте либо 3-х кнопочную  &#8220;Linux-ready&#8221; Logitech или другую подобную трехкнопочную мышь (В  Linux вы можете хорошо использовать все три кнопки). Стандартная мышь (клон или  нет) всегда работает нормально. Никогда не покупайте нестандартные модели &#8211; для  их установки и функционирования вам может понадобиться какой-нибудь необычный  драйвер или еще что-нибудь подобное.</p>
<p>Если  в процессе тестирования X-сервера экран будет продолжительно мерцать, будут  появляться необычные линии, либо еще что-то не будет правильно работать &#8211; тут  же &#8220;убейте&#8221; процесс, используя комбинацию клавиш &lt;Ctrl&gt;&lt;Alt&gt;&lt;BkSpace&gt;,  и еще раз проверьте правильность установленных частот своего монитора. Запуск  грайической среды со слишком высокими частотами может пагубно сказаться на  вашем мониторе.</p>
<p>Если  проблемы не исчезают, то сначала попробуйте установить простой vga X server (с  разрешением 640&#215;480 пикселей, 16 или 256 цветов). Впоследствии вы сможете  произвести более тонкую настройку, после того, как вникнете в особенности  работы вашей системы, или с помощью каких-нибудь графических программ для  настройки.</p>
<p>После  установки параметров X вы можете запустить графическую оболочку, используя  следующую команду:</p>
<p>startx &amp;</p>
<p>Знак  амперсанта &#8220;&amp;&#8221; означает, что вы выполняете команду в фоновом  режиме и ваш текстовый терминал (консоль) не блокируется.  Или можете  использовать команду:</p>
<p>init 5</p>
<p>которая  переключит систему на 5-й уровень (runlevel 5), что означает &#8220;режим работы  с графическим интерфейсом&#8221;. Для автоматического запуска графического (или  текстового) входа в систему после перезагрузки прочтите следующие несколько  параграфов.</p>
<h3><a id="GUI_login" name="GUI_login"></a>Как мне сделать графический вход в систему?</h3>
<p>Для  автоматического запуска графической оболочки и графического приглашения входа в  систему вы должны изменить (под пользователем root) единственное значение в  файле /etc/inittab  .  Это в файле выглядит примерно так:</p>
<p>id:3:initdefault:</p>
<p>Измените  цифру 3 на 5:</p>
<p>id:5:initdefault:</p>
<p>Это  устанавливает runlevel системы на 5, что означает автоматический запуск  X-Window. Значения остальных уровней запуска, приведенные в файле /etc/inittab:</p>
<p>0 &#8211; halt (Остановка системы. НЕ ИСПОЛЬЗУЙТЕ ДЛЯ  ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ)</p>
<p>1 &#8211; Однопользовательский режим.</p>
<p>2 &#8211; Многопользовательский режим, без  поддержки NFS (то же самое что и 3, только без сети)</p>
<p>3 &#8211; Текстовый многопользовательский  режим с поддержкой сети</p>
<p>4 &#8211; Не используется</p>
<p>5 &#8211; Графический режим X11</p>
<p>6 &#8211; Перезагрузка (НЕ ИСПОЛЬЗУЙТЕ ДЛЯ  ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ)</p>
<p>Вы  можете изменить текущий системный уровень runlevel и из командной строки. Для  этого используйте команду (должна испоняться под пользователем root):</p>
<p>init 6</p>
<p>и  произойдет перезагрузка вашего компьютера. Для перевода работы системы в  однопользовательский режим используйте команду</p>
<p>init 1</p>
<p>Для  того, чтобы узнать текущий уровень runlevel, используйте команду runlevel.</p>
<p>Для  более тонкой настройки графического экрана входа в систему можно использовать  программу:</p>
<p>kcontrol &amp; (запускать в  графическом режиме)</p>
<p>где  надо выбрать пункт &#8220;System&#8221;-&#8221;Login Manager&#8221;.  Мне  нравится такой экран: аналоговые часы, большой шрифт, в строке логина &#8211; последнее  имя входящего в систему, и мне остаётся только набрать пароль в строке ввода  пароля.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/rabota-s-graficheskoj/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Работа с устройствами</title>
		<link>http://www.studcode.ru/archiv/rabota-s-ustrojstvami/</link>
		<comments>http://www.studcode.ru/archiv/rabota-s-ustrojstvami/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 16:44:59 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/archiv/rabota-s-ustrojstvami/</guid>
		<description><![CDATA[Где  мои диски?
Linux  показывает все директории в одном дереве директорий, независимо от того, какие  диски (или другие устройства) он определил в системе. В целом, это &#8211; гораздо  более удачное решение, чем традиционная DOS / Windows модель, потому что это  совершенно абстрагирует файловую систему от соответствующей аппаратуры. Вы еще  оцените [...]]]></description>
			<content:encoded><![CDATA[<h3>Где  мои диски?</h3>
<p>Linux  показывает все директории в одном дереве директорий, независимо от того, какие  диски (или другие устройства) он определил в системе. В целом, это &#8211; гораздо  более удачное решение, чем традиционная DOS / Windows модель, потому что это  совершенно абстрагирует файловую систему от соответствующей аппаратуры. Вы еще  оцените это, если вам придется изменять или расширять свое &#8220;железо&#8221;  или добавлять сетевые ресурсы. Но для пользователей, приученных к DOS-методу  обращения с дисками, это вызывает некоторые сложности.  Короче  говоря, не ищите буквы дисков. В Linux их просто нет, потому что содержимое  ваших дисков расположено в поддиректориях единой файловой системы Linux (в  дереве поддиректорий). По умолчанию содержимое сменных носителей не  появляется в дереве поддиректорий автоматически &#8212; вы должны &#8220;монтировать&#8221;  ваши диски. Подробности смотрите далее. Кроме того, вы должны  &#8220;демонтировать&#8221; диск перед его физическим устранением (eject). <span id="more-864"></span> вы можете  обращаться (для чтения или записи) к разнообразным устройствам и файловым  системам из Linux. Это могут быть и &#8220;родные&#8221; Linux-разделы, DOS и MS  Windows разделы (на жестких дисках или дискетах), ZIP- и Jazz- устройства,  CDROM диски. Многие другие сколь-либо распространенные файловые системы так же  поддерживаются Linux. Это означает, что вы можете скачать программу для Linux,  используя Mozilla для Windows, сохранить скачанные файлы на жестком диске в  разделе MS Windows, и, загрузив Linux, установить программу для Linux из  Windows-раздела.</p>
<h3><a id="access_CDROM" name="access_CDROM"></a>Как мне обратиться к моему  CDROM?</h3>
<p>Смонтируйте  его. Монтирование добавит все директории и файлы с вашего CD к вашему дереву  директорий Linux, так что вы сможете использовать их без использования буквы  диска.  Как  суперпользователь(root), вы можете монтировать CDROM с помощью команды, похожей  на эту:  mount -t auto  /dev/cdrom /mnt/cdrom  Если  это сработает, содержимое вашего CD возникнет в директории /mnt/cdrom.  Если  это не сработает &#8212; команду придется слегка подстроить. Вот как она работает.  Эта  команда говорит операционной системе смонтировать файловую систему, предлагая  определить ее тип самостоятельно (&#8221;-t auto&#8221;). Устройство называется: /dev/cdrom. Точка  монтирования (Директория, куда оно монтируется): /mnt/cdrom. Эта директория  должна существовать и быть пустой. Если ее нет, создайте ее командой:  mkdir /mnt/cdrom  Если  команда монтирования не сработала, то, может быть, устройства /dev/cdrom нет в вашей  системе. Попробуйте  ls -l /dev/cdrom  /dev/cdrom  &#8211; это просто общепринятая символьная ссылка на реальное устройство.  На  IDE-системах, ваш CD-ROM может оказаться, например, на /dev/hdb.  В таком  случае, попробуйте /dev/hdb  вместо /dev/cdrom  в команде mount:  mount -t auto  /dev/hdb /mnt/cdrom  Так  же следует попробовать /dev/hdc  или /dev/hdd,  если ваш CD это IDE CDROM на втором IDE- шлейфе. Если и это не поможет,  вспомните &#8211; может быть у вас не IDE, а SCSI CDROM? Тогда попробуйте /dev/sda, /dev/sr0, etc.  Короткий  список возможных имен устройств:  hda &#8212;  Основной(master) диск на IDE-шлейфе (Это всегда ваш первый диск)  hdb &#8212;  Второй(slave) диск на первом IDE-шлейфе (вы должны иметь как минимум два  жестких диска для этого)  hdc &#8212;  Основной(master) диск на втором IDE-шлейфе (если у вас два IDE-шлейфа в вашем  компьютере, у многих современных компьютеров он есть)  hdd &#8212;  Второй(slave) диск на втором IDE-шлейфе (опять же, если есть)  sda    &#8212; Первый SCSI-диск  sdb &#8212;  Второй scsi диск (&#8221;sdc&#8221; третий scsi диск, и т.д.(по латинскому  алфавиту). В системе может быть много scsi-дисков).  sr0   &#8212; Первый scsi-CDROM (иногда называется scd0)  sr1 &#8211;Второй  scsi-CDROM (иногда называется scd1),  (sr2 -третий scsi CDROM, и т.д. В  системе может быть много scsi CD).  По-моему,  неплохо придумано использовать /dev/cdrom  в любом случае, поскольку некоторые программы считают, что он есть. Если же в  вашей системе его нет, вы можете создать символьную ссылку, используя,  например:  ln -s /dev/hdb  /dev/cdrom  если  ваш CDROM &#8211; это диск /dev/hdb.  Если  вы не можете смонтировать из-за ошибки &#8220;Устройство уже смонтировано или  директория занята (the device is already mounted or directory busy)&#8221;, то,  может быть, точка монтирования /mnt/cdrom  &#8211; это текущая директория. Вы должны сменить текущую директорию на любую другую,  чтобы иметь возможность монтировать в ней. Например, смените текущую директорию  на корневую(root) командой:  cd /  <strong>Для демонтирования</strong> смонтированного CD, покиньте директорию /mnt/cdrom и напечатайте как  суперпользователь(root):  umount /mnt/cdrom  ваш  CDROM может отказаться выдвинуть диск, если он не был демонтирован. Кроме того,  у вас могут быть проблемы с монтированием следующего CD, если предыдущий не был  демонтирован. Если демонтирование не удалось по ошибке: &#8220;Устройство занято  (the device is busy)&#8221;, то, может быть, /mnt/cdrom (или какая-нибудь его  поддиректория) является текущей? вам необходимо сменить текущую директорию на  какую-нибудь другую в случае демонтирования устройства.</p>
<h3><a id="mount_floppy_zipdrive" name="mount_floppy_zipdrive"></a>Как смонтировать дискету,  zip-диск, DOS/Windows-раздел, или сетевой диск?</h3>
<p>Почти  так же, как CDROM &#8212; посмотрите прошлый ответ, если вы этого еще не сделали.  <strong>Дискета.</strong> Я могу монтировать дискету, как суперпользователь(root), с помощью команды:  mount -t auto  /dev/fd0 /mnt/floppy  Еще  раз убедитесь, что директория /mnt/floppy существует и пуста. И еще &#8211; /mnt/floppy/ не должна быть  текущей.  После  успешного монтирования файлы с дискеты появятся в директории /mnt/floppy/ . Все пользователи  получат возможность читать файлы с дискеты, но только суперпользователь(root)  получит возможность изменять и удалять файлы. О том, как сделать файлы на  дискете доступными для записи всем пользователям, смотрите далее.  Для  демонтирования дискеты (вы *должны* сделать это перед тем, как извлечете диск  из дисковода!) используйте:  umount /mnt/floppy  Если  вы не смогли демонтировать, потому что &#8220;Устройство занято(the device is  busy)&#8221;, может /mnt/floppy/  &#8211; текущая директория? Покиньте ее, напечатав (например):  cd  это  изменит текущую директорию на домашнюю.  <strong>Zip-диск.</strong> Я монтирую внешний zip-дисковод к параллельному порту (эмуляция scsi) командой:  mount -t vfat  /dev/sda4 /mnt/zipdrive  Флаг  &#8220;-t vfat&#8221; используется здесь, поскольку zip диск был форматирован в  файловой системе vfat, которая является файловой системой MS Windows с  поддержкой длинных имен. Вы не должны извлекать диск из дисковода без его  демонтирования.  Снова, директория должна существовать, быть пустой, и не  должна быть вашей текущей директорией (см. предыдущий вопрос).  Я  могу монтировать внутренний IDE-ZIP дисковод:  mount -t vfat  /dev/hdd4 /mnt/zipdrive  В  моей системе, это второй диск на втором IDE интерфейсе, следовательно &#8211; это  &#8220;hdd&#8221; &#8212; замените его на &#8220;hdb&#8221; или &#8220;hdc&#8221;, если  это необходимо для вашей системы.  Совет  от Альваро Регули &lt;alvaro@reguly.net&gt;.  &#8220;У меня ATAPI Zip  дисковод, распознаваемый как ATAPI Floppy. Для того, чтобы он заработал под  Debian с ядром 2.4.3, мне пришлось переключить установки BIOS с  &#8220;Autodetect&#8221; на &#8220;None&#8221; (только для Zip-канала, разумеется),  и монтировать, используя  mount -t vfat  /dev/hdb  (без хвостовой 4!)&#8221;  Все  zip-дисководы (Внутренние SCSI и IDE, внешние SCSI и параллельного порта),  кроме USB, поддерживаются Linux (на апрель 1999). <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/42.shtml.htm#Get_Zip_Drive_Recongized#Get_Zip_Drive_Recongized">Смотрите далее</a> в этой главе информацию о  том, как загрузить модуль (драйвер) для zip-дисковода, если он не загрузился  автоматически в вашей системе.  <strong>DOS/Windows раздел.</strong> Я использую систему с двойной загрузкой Linux и MS Windows на своем компьютере.  Я могу работать с файлами DOS/Windows раздела после его монтирования следующей  командой:  mount -t vfat  /dev/hda1 /mnt/dosdrive  Снова,  вы можете настроить эту команду в зависимости от того, на каком разделе  находится файловая система DOS. Параметр &#8220;hda1&#8243; значит жесткий диск  IDE (hda), первый раздел (1); &#8220;hda2&#8243; &#8211; это первый жесткий диск IDE,  второй раздел; &#8220;hda3&#8243; &#8212; первый жесткий диск IDE, третий раздел;  &#8220;hdb1&#8243; &#8212; второй жесткий диск IDE, первый раздел (или просто  &#8220;hdb&#8221;. Если это CDROM, установленный как второй(slave) на вашем  втором IDE шлейфе). &#8220;hdc&#8221; это третий IDE-диск, hdd &#8211; это четвертый  IDE-диск. SCSI диски имеют аналогичные имена, но начинающиеся с &#8220;sd&#8221;,  следующая за ними буква оперделяет SCSI-интерфейс, следующий за ней номер &#8211;  идентификатор SCSI устройства. Например, sda4 означает &#8220;первый  SCSI-интерфейс, идентификационный номер 4&#8243;.  Для  монтирования диска, как общедоступного для всех пользователей, попробуйте:  mount -t vfat -o  user,rw,exec,umask=000 /dev/hda1 /mnt/dosdrive  Здесь  используются параметры (-o user,rw,exec,umask=000), дающие абсолютно всем  полный доступ к разделу DOS /dev/hda1 (можете спросить себя, действительно ли  это безопасно для вашей системы). Если пользователи не должны иметь возможность  записи в раздел DOS, возможно, что должны быть установлены права доступа к  вашей точке монтирования. Эта команда (исполненная суперпользователем(root))  устанавливает права доступа к точке монтирования /mnt/dosdrive так что все  пользователи получают права чтения, записи и выполнения:  chmod a=rwx /mnt/dosdrive  <strong>Сетевая файловая система (NFS).</strong> Она хорошо подходит для прямого обращения к файлам, расположенным на другом  компьютере с Linux. Для монтирования удаленной файловой системы как NFS,  во-первых, проверьте, разрешена ли служба NFS (используйте программу setup). NFS, кроме  этого, требует наличия разрешения от другого компьютера. Для конфигурирования  доступа со стороны машины-сервера, попробуйте как суперпользователь(root):  netconf  и  настройте установки в пункте меню &#8220;Экспортируемые файловые  системы(Exported File Systems)&#8221;.  Если  вы предпочитаете делать это вручную, то установки доступа хранятся в файле /etc/exports . Мой /etc/exports выглядит  примерно так:  /usr hacker(ro) mars(ro)  /home hacker(rw) mars(rw)  /mnt hacker(rw) mars(rw)  Это  дает право машинам с именами hacker и mars монтировать директории /usr/ (только для  чтения), /home  и /mnt  (чтение-запись).  Если  вы установили NFS правильно, то сможете монтировать сетевые диски вот такой  командной строкой:  mount -t nfs  mars:/home /mnt/mars_home  Это  монтирует содержимое директории /home/  на машине &#8220;mars&#8221; в директорию /mnt/mars_home/  (которая должна существовать и быть пустой).  С  NFS могут работать многие операционные системы, но только не MS Windows.  Поэтому удаленные директории MS Windows надо монтировать по-другому. Смотрите  далее.</p>
<h3><a id="samba_mount" name="samba_mount"></a>Как смонтировать удаленную  файловую систему MS Windows через Samba?</h3>
<p>Удаленная  файловая система MS Windows может быть монтирована к файловой системе Linux  через протокол Samba (Samba должна быть установлена, смотрите <a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/42.shtml.htm#samba_setup#samba_setup">здесь</a>, если это не так). Напечатайте  команду (как суперпользователь(root)):  smbmount //mars/windows /mnt/mars_windows -c marie  Это  монтирует MS Windows ресурс windows, расположенный на машине mars с  операционной системой MS Windows. Точка монтирования на компьютере-клиенте: /mnt/mars_windows/ . Параметр  &#8220;-c&#8221; заявляет, что samba-сервер &#8211; это машина marie (это может быть не  обязательно, но так сделано в моей системе).  Для  того чтобы это сработало, соответствующие права на расделение доступа к  директории или диску должны быть предоставлены машиной с MS Windows. Для этого,  на машине с MS Windows, разрешите разделение файлов в разделе &#8220;Панель  управления(control panel)-сеть(network)&#8221;, запустив &#8220;Windows  Explorer&#8221;, щелкнув правой кнопкой мыши на директории или диске, щелкните  &#8220;свойства&#8221;, потом &#8211; закладка &#8220;доступ(sharing)&#8221;, дайте себе  необходимые права, а ресурсу &#8211; имя.  Чтобы  демонтировать ресурс MS Windows, используйте:  smbumount /mnt/mars_windows  Если  не получится, смотрите:  man smbmount</p>
<h3><a id="mtools" name="mtools"></a>Как бы попроще прочитать файл с дискеты  DOS/Windows?</h3>
<p>Использование  &#8220;mtools&#8221; не требует монтирования. Например, я могу использовать  команду mdir  для быстрого просмотра корневой директории моей DOS-дискеты:  mdir a:\  Еще  я могу использовать mcopy  для копирования &#8220;autoexec.bat&#8221; из корневого каталога моей дискеты в  текущую директорию Linux:  mcopy a:\autoexec.bat  вы  должны быть суперпользователем, чтобы иметь право записи на дискету.  Напечатайте  &#8220;mtools&#8221;, чтобы увидеть список команд mtools, которые дублируют  популярные команды DOS (например: mformat,  mtype,  mren,  mmove,  mdel,  mrd,  mattrib,  &#8230;), и если будут проблемы &#8211; обращайтесь к man-страницам. например:  man mtype  покажет  мне, как просмотреть содержимое текстового файла в разделе DOS.  Для  обращения к устройствам DOS, отличным от a: или b:, вы должны конфигурировать  mtools, чтобы показать, какие устройства ассоциированы с другими &#8220;буквами  дисков&#8221; DOS . Это совсем просто &#8212; вы должны настроить файл /etc/mtools.conf . Я обычно  использую pico, чтобы делать это (как суперпользователь(root)):  pico /etc/mtools.conf  Например,  мой /etc/mtools  содержит такие строки:  drive c:  file=&#8221;/dev/hda1&#8243;  здесь  устанавливается что раздел &#8220;/dev/hda1&#8243; будет называться  &#8220;c:&#8221;. Установки /etc/mtools.conf  нужно только раскомментировать (удалив &#8220;#&#8221; в начале строки) и  поправить необходимые параметры.</p>
<h3><a id="mounting_as_user" name="mounting_as_user"></a>Монтрование возможно, если я  суперпользователь(root). Может ли обычный пользователь совершать операцию  монтирования?</h3>
<p>вам  следует отредактировать файл /etc/fstab  как root, чтобы дать нормальному пользователю права на монтирование конкретного  устройства. Например, я могу использовать для этого текстовый редактор pico:  pico -w /etc/fstab  Параметр  &#8220;-w&#8221; отключает перенос длинных строк.  Вот  содержимое моего /etc/fstab:  /dev/hda2   /                            ext2  defaults                1  1  /dev/hdc3   /home                        ext2   defaults                1  2  /dev/hdc2   /usr                         ext2   defaults                1  2  /dev/hdc4   swap                         swap   defaults                0  0  /dev/fd0    /mnt/floppy                  auto   noauto,users,rw         0 0  /dev/cdrom  /mnt/cdrom                   auto   noauto,user,ro          0 0  /dev/sda4   /mnt/zipdrive                vfat   noauto,user,rw,exec     0 0  /dev/hda1   /mnt/dosdrive                vfat   noauto,user,rw          0 0  none        /proc                         proc  defaults                0  0  hacker:/mnt/cdrom /mnt/hacker_cdrom      nfs   noauto,user,ro                0 0  hacker:/mnt/floppy /mnt/hacker_floppy     nfs   noauto,user,rw           0 0  hacker:/home /mnt/hacker_home            nfs   noauto,user,rw                0 0  hacker:/usr /mnt/hacker_usr              nfs   noauto,user,rw          0 0  Каждая  строка содержит шесть полей, разделенных пробелами. Первое поле &#8211; это имя  устройства. Второе поле &#8211; точка монтирования (существующая и пустая директория  в вашей системе Linux, к которой ресурс должен быть монтирован). Третье &#8211; тип  файловой системы.  Для сменных устройств, тип которых заранее неизвестен,  я использую параметр &#8220;auto&#8221;, позволяя Linux самостоятельно  разбираться, с какой файловой системой она имеет дело. (Порядок, в котором  будет производиться автоопределение, определяется содержимым файла /etc/filesystems . Вы  можете захотеть удостовериться, что &#8220;vfat&#8221; определяется перед  &#8220;msdos&#8221; или длинные имена файлов DOS могут оказаться обрезанными.)  Четвертое поле содержит: &#8220;auto&#8221; = монтировать при запуске системы;  &#8220;rw&#8221; = разрешены чтение и запись; &#8220;ro&#8221; = только чтение,  &#8220;user&#8221; = пользователь может монтировать эту файловую систему (может  быть также &#8220;users&#8221;, что позволяет демонтировать систему не тому  пользователю, который ее монтировал), &#8220;exec&#8221; позволяет выполнять программы  из этой файловой системы. Число в поле 5 определяет, будет ли файловая система  подвергнута резервному копированию во время резервного копирования системы,  число в поле 6 определяет, будет ли производиться проверка целостности файловой  системы во время загрузки. Часть моего файла /etc/fstab &#8211; это файловые системы на другом  компьютере (называемом &#8220;hacker&#8221;) в моей домашней сети, здесь он  служит примером монтирования сетевого ресурса. Смотрите man fstab для более полной  информации.  Например,  если обычные (regular, non-root) пользователи имеют право монтировать  cdrom (параметр &#8220;user&#8221; указан), они могут монтировать его примерно  такой командой:  mount /mnt/cdrom  Команда,  которой монтирует суперпользователь (<a href="../../../../../../docs/Кафедра%20информатики%20и%20математики/Ляпин/V%20курс/Linux/new1/LinuxBegin/linuxbegin/linuxshop.ru/linuxbegin/lnag-ru/42.shtml.htm#mount_floppy_zipdrive#mount_floppy_zipdrive">смотрите здесь</a>), не будет работать для  обычного пользователя поскольку обычный пользователь ограничен параметрами,  указанными в /etc/fstab  и, следовательно, не может устанавливать совместно и устройство и точку  монтирования.  Для  обычного пользователя право на запись и исполнение для монтируемого диска также  ограничивается его правами доступа к директории &#8211; точке монтирования. Например,  это дает всем пользователям все права (чтение, запись, выполнение) на  директорию /mnt/floppy  :  chmod a+rwx /mnt/floppy  Сейчас  (если еще и параметр &#8220;rw&#8221; указан для дискеты(floppy) в /etc/fstab) пользователь  получает возможность записи на дискету. Если параметр &#8220;exec&#8221; указан в  /etc/fstab,  пользователь может так же выполнять программы с дискеты.  Заметьте,  пожалуйста, что файловая система DOS vfat не знает ничего о правах доступа к  файлам, в том смысле, в котором рассматривает их Linux. Linux управляет ими в  процессе монтирования, придавая значение прав доступа, установленное в fstab  всей монтируемой файловой системе: пользователь, монтировавший файловую  систему, становится владельцем(owner) всех файлов и получает права записи во  все файлы файловой системы (Если &#8220;rw&#8221; указана в fstab), но другие  пользователи могут только читать.  Если вам не нравится такое поведение,  вам следует указать параметр &#8220;umask=&#8221; так, чтобы соответствующая  строка вашего /etc/fstab  была примерно такой:  /dev/sda4  /mnt/zipdrive vfat noauto,users,rw,exec,umask=000 0 0  Это  дает абсолютно всем абсолютно все права на использование zip-диска  (монтирование, демонтирование, чтение, запись, выполнение).  Файл  /etc/fstab  &#8211; это то место, где хранятся значения по умолчанию для всех параметров монтирования  файловых систем. Вы можете настроить их для упрощения процедуры  монтирования  Схема монтирования в Linux, используемая по умолчанию, несет  много ограничений для повышения безопасности, и вы можете захотеть снять  некоторые запреты при установке Linux на домашнем компьютере.</p>
<h3><a id="alias_for_mounting" name="alias_for_mounting"></a>Команда монтирования такая  длинная, как мне упростить ее с использованием псевдонимов?</h3>
<p>Псевдонимы(alias)  &#8211; это аббревиатуры наиболее длинных и часто встречающихся команд.  Для  создания псевдонимов я, как &#8220;root&#8221;, редактирую /etc/bashrc . Этот способ  создания псевдонимов доступен для всех пользователей системы. (Для создания  псевдонимов, специфичных для конкретных пользователей редактируется .bashrc в домашней  директории пользователя.) Значимая часть моего /etc/bashrc выглядит  примерно так:  alias cdrom       =&#8221;mount  -v /mnt/cdrom&#8221;  alias ucdrom      =&#8221;umount -v /mnt/cdrom&#8221;  alias dosdrive    =&#8221;mount -v /mnt/dosdrive&#8221;  alias udosdrive   =&#8221;umount -v /mnt/dosdrive&#8221;  alias zipdrive    =&#8221;mount -v /mnt/zipdrive&#8221;  alias uzipdrive   =&#8221;umount -v /mnt/zipdrive&#8221;  alias floppy      =&#8221;mount -v /mnt/floppy&#8221;  alias ufloppy     =&#8221;umount -v /mnt/floppy&#8221;  Параметр  &#8220;-v&#8221; стоит для &#8220;(болтливости) verbose&#8221;, т.е., я прошу Linux  рассказать мне побольше о процессе монтирования. Для того, чтобы псевдонимы  заработали, пользователю необходимо выйти из системы и снова войти. После этого  он сможет монтировать дискету вот так:  floppy  и  демонтировать при помощи:  ufloppy</p>
<h3><a id="automount" name="automount"></a><a id="Get_Zip_Drive_Recongized" name="Get_Zip_Drive_Recongized"></a>Как мне добиться распознания моего zip-диска??</h3>
<p><strong>RedHat 6.0 и 6.1.</strong> При апгрейде на RedHat 6.0 программа установки заявила, что zip-диск не  обнаружен. Плсде завершения установки я использовал следующие команды для  установки модулей для моего внешнего (на параллельном порте) zip-диска в ядро  (как &#8220;root&#8221;):  /sbin/insmod  parport  /sbin/insmod  ppa  Чтобы  эти две строки выполнялись автоматически при каждой загрузке системы, я добавил  их в конец моего файла /etc/rc.d/rc.local  (этот файл &#8211; аналог autoexec.bat в DOS).  Если  у вас это не сработает, вам может потребоваться редактирование файла /etc/conf.modules.  Мой  содержит следующие строки:  alias parport_lowlevel parport_pc  и  там нет строки с упоминанием &#8220;ppa&#8221; модуль.  Для  более новых Zip250-дисков &#8211; вот две строки из моего файла /etc/rc.d/rc.local  /sbin/insmod  parport  /sbin/insmod  imm</p>
<h3><a id="32_bit_hd" name="32_bit_hd"></a><a id="file-max" name="file-max"></a>Я достиг предельного  числа одновременно открытых файлов(сообщение об ошибке)</h3>
<p>вы  можете увеличить предельное число одновременно открытых файлов в файловой  системе /proc. Эта файловая система совершенно виртуальна &#8212; это просто  &#8220;окно&#8221;, через которое можно увидеть или установить кое-что в ядре  Linux.   Чтобы прочитать количество одновременно открытых файлов в  моей файловой системе,  я использую следующую команду:  echo  /proc/sys/fs/file-max  В  моей системе (Mandrake 7.2), предел составляет 8192. Чтобы увеличить его, я  использую (как &#8220;root&#8221;):  echo 16000   &gt; /proc/sys/fs/file-max  вы  можете так же захотеть увеличить предел в связаной с предыдущей системной  переменной:  echo 30000 &gt;  /proc/sys/fs/inode-max  Чтобы  сделать эти изменения постоянными, добавьте эти строки в /etc/rc.d/rc.local.  Чтобы  узнать больше о /proc &#8211; интерфейсе ядра Linux, назначении переменных и  констант, и их рекомендованных значениях, вам может быть интересно почитать  (если вы установили исходные тексты ядра, что мы рекомендуем для всех  новичков):  less  /usr/src/linux/Documentation/proc.txt</p>
<h3><a id="new_hd" name="new_hd"></a>Я присоединил новый жесткий диск. Как мне  начать его использовать?</h3>
<p>0.  Спланируйте файловую систему с учетом нового диска  1. Разбейте диск на разделы  2. Отформатируйте разделы  3. Проверьте новое пространство  4. Скопируйте данные из старых разделов в новые(по желанию)  5. Отредактируйте /etc/fstab  6. Перезагрузитесь  7. Удалите старые данные (по желанию)  Теперь  подробнее.  <strong>0. Спланируйте новую файловую  систему. </strong>Где бы вы хотели использовать новое  дисковое пространство? Используйте  df  чтобы  узнать общее количество свободного/занятого пространства на каждом из  существующих смонтированных разделов. Используйте  du  на  выбранных директориях, чтобы узнать их размер.  Например,  я могу обдумать использование нового дискового пространства в одной из  следующих точек монтирования:  /usr/local  /home  /home/share/downloads  /usr/local/mp3s  /usr/local/dos_data  Вот  почему.  /usr/local поддерживается  для любых апгрейдов Linux. Хорошо иметь ее в отдельном разделе, потому что я  могу переформатировать разделы без повреждения моего локального  содержимого(contents) сохраненного в /usr/local. Я хочу, чтобы ее файловая  система была &#8220;ext2&#8243; или &#8220;reiserfs&#8221;.  /home содержит  пользовательские данные. Действительно, эти данные заслуживают особого  внимания. Они должны уцелеть при любом апгрейде Linux. По всей видимости, я  хочу поместить их в отдельный раздел. Тип обычный &#8211; &#8220;ext2&#8243; или  &#8220;raiserfs&#8221;.  /usr/local/mp3s &#8211; это не  стандартная директория Linux. Я могу хранить в ней мои MP3-файлы (музыку). Она  должна быть большой.  /usr/local/dos_data &#8211; другая  не стандартная директория. Если у меня двойная загрузка, мне может понадобиться  дополнительный раздел &#8220;DOS FAT32&#8243;. Я сконфигурирую все мои программы,  основанные на Windows, для использования этого &#8220;диска&#8221;, как места  хранения пользовательских файлов. Я могу создать директории &#8220;mp3s&#8221;,  &#8220;cds&#8221; и подобные в этом разделе. Серьезный недостаток такого подхода  &#8212; MS Windows может настаивать на приведении в порядок этого раздела при  переустановке.  <strong>1. Разбиение нового диска на разделы.</strong> Например, если мой новый диск &#8211; второй на втором шлейфе IDE (возможно  &#8220;четвертый&#8221; диск IDE), я использую:  cfdisk /dev/hdd  или  более старомодную (и стандартную программу):  fdisk /dev/hdd  Если  ваш диск это не &#8220;hdd&#8221; настройте команду с учетом того, что:  hda &#8212; Первый (master) на первом шлейфе ide.(весь диск)  hdb &#8212; Второй (slave) на первом шлейфе ide.(весь диск)  hdc &#8212; Первый (master) на втором шлейфе ide.(весь диск)  hdd &#8212; Второй (slave) на втором шлейфе ide.(весь диск)  sda &#8212; Первый scsi (весь диск)  sdb &#8212; Второй scsi (весь диск)  &#8230;  sdp &#8212; Шестнадцатый scsi (весь диск)  Для  других дисков читайте /usr/src/Linux/Documentation/devices.txt.  В  основном, я хочу присвоить своим разделам Linux тип ext2 (&#8221;Linux&#8221;).  Разбиение  на разделы может оказаться сложным &#8212; если вы не делали этого раньше,  прочитайте man fdisk и man cfdisk. Очень просто смахнуть раздел вместе со всеми  данными. Убедитесь что знаете, с каким диском вы работаете!  fdisk  или cfdisk не сделают никаких изменений пока вы не сохраните новый план диска.  Так что если не уверены, выходите без сохранения изменений. Я записываю новый  план диска только тогда, когда полностью готов.  <strong>2. Форматируем разделы. </strong>Например,  для форматирования первого раздела, с поиском плохих секторов (-c), я  использую:  mkfs -c -t ext2  /dev/hdd1  <strong>3. Тестируем новый раздел.</strong>Монтируем  новый раздел вручную (директория монтирования должна существовать и быть  пустой). Скопируйте ряд файлов в этот раздел. Просмотрите/отредактируйте часть  случайно выбранных файлов. Удалите их все.  <strong>4. Копируем данные.</strong> По желанию &#8212; если хотите можете переместить часть файлов из старых разделов в  новые. Перейдите в однопользовательский режим (init 1). Смонтируйте вручную  новый раздел. Скопируйте данные в новый раздел. Осторожнее со старыми данными,  вы же не хотите потерять их из-за одной дурацкой ошибки, так что пока не  удаляйте их &#8212; я обычно переименовываю директорию верхнего уровня. Например,  cp -R /usr/local/  /mnt/hdd1/  mv  /usr/local/ /usr/local.old.backup_of_2001-04-21  <strong>5. Редактируем файл /etc/fstab.</strong> Измените его для отражения сделанных вами изменений. Возможно, добавьте точки  монтирования или измените старые как вам надо.  Например, если перенести /usr/local в свой  собственный раздел, потребуется добавить примерно такую строку:  /dev/hdd1 /usr/local  ext2 defaults 1 2  <strong>6. Перезагружаемся и тестируем.</strong> Альтернативой перезагрузке может служить демонтирование старых и монтирование  новых разделов:  umount /usr/local  mount -a  но  холодная перезагрузка &#8211; зто более строгий тест сделанных изменений.  <strong>7. Удалите старые данные.</strong> Через  несколько дней работы, когда я убеждаюсь, что все в порядке, я удаляю старые  данные (например, директорию /usr/local.oldbackup_of_2001-04-21).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/rabota-s-ustrojstvami/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка программ</title>
		<link>http://www.studcode.ru/archiv/ustanovka-programm/</link>
		<comments>http://www.studcode.ru/archiv/ustanovka-programm/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 16:28:56 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=858</guid>
		<description><![CDATA[rpm -ivh  package_name-version.platform.rpm
(как &#8220;root&#8221;) Устанавливает пакет (параметр &#8220;i&#8221;, должен быть  первой буквой после тире), сообщая подробности (параметр &#8220;v&#8217;=verbose) и  печатая &#8220;зарубки&#8221; демонстрируя &#8220;прогресс&#8221; установки  (параметр &#8220;h&#8221;). rpm означает &#8220;Redhat Package Manager (Менеджер  пакетов)&#8221;.
rpm -Uvh package_name-version.platform.rpm
(как &#8220;root&#8221;) Обновить(Upgrade) (параметр &#8220;U&#8221;, должен быть  первой буквой после тире) пакет, сообщая подробности (параметр [...]]]></description>
			<content:encoded><![CDATA[<p>rpm -ivh  package_name-version.platform.rpm</p>
<p>(как &#8220;root&#8221;) Устанавливает пакет (параметр &#8220;i&#8221;, должен быть  первой буквой после тире), сообщая подробности (параметр &#8220;v&#8217;=verbose) и  печатая &#8220;зарубки&#8221; демонстрируя &#8220;прогресс&#8221; установки  (параметр &#8220;h&#8221;). rpm означает &#8220;Redhat Package Manager (Менеджер  пакетов)&#8221;.</p>
<p>rpm -Uvh package_name-version.platform.rpm</p>
<p>(как &#8220;root&#8221;) Обновить(Upgrade) (параметр &#8220;U&#8221;, должен быть  первой буквой после тире) пакет, сообщая подробности (параметр &#8220;v&#8221;) и  показывая зарубки (&#8221;h&#8221;).</p>
<p>rpm -ivh &#8211;force &#8211;nodep  package_name-version.platform.rpm</p>
<p>(как &#8220;root&#8221;) Установить пакет, игнорируя предупреждения и ошибки  взаимозависимости пакетов.</p>
<p>rpm -e package_name</p>
<p>(как &#8220;root&#8221;) Удаление (параметр &#8220;e&#8221;=erase) пакета  package_name. Прошу отметить отсутствие &#8220;-version.platform.rpm&#8221; в  конце имени пакета (Имя пакета &#8211; то же самое, что и имя файла *.rpm без черты,  имени, версии, платформы и &#8220;rpm&#8221;).<br />
<span id="more-858"></span><br />
rpm -qpi package_name-version.platform.rpm</p>
<p>Запрос (параметр &#8220;q&#8221;, должен быть первым после черты) уже  деинсталлированного пакета (параметр &#8220;p&#8221;) для показа информации  (параметр &#8220;i&#8221;) о его содержимом.</p>
<p>rpm -qpl package_name-version.platform.rpm</p>
<p>Запрос (параметр &#8220;q&#8221;, должен быть первым после черты) уже  деинсталлированного пакета (параметр &#8220;p&#8221;) для показа списка (параметр  &#8220;l&#8221;) всех файлов входящих в пакет.</p>
<p>rpm -qf a_file</p>
<p>Поиск пакета к которому приндлежит файл &#8220;a_file&#8221;. Полезно, если я  случайно удалил файл и хочу узнать, из какого пакета я могу его переустановить.</p>
<p>rpm -qi package_name</p>
<p>Запрос к установленному пакету, для получения информации о нем. Прошу отметить  отсутствие &#8220;-version.platform.rpm&#8221; в конце имени пакета.</p>
<p>rpm -qai | more</p>
<p>Запрос ко всем пакетам <span style="text-decoration: underline;">установленным</span> в моей системе для получения  информации о них. В моей простой системе ~600 пакетов, так что мне необходимо  достаточное время для того, чтобы прочитать информацию о них. Для подчета  количества пакетов, используйте:</p>
<p>rpm -qa | grep -c &#8221;</p>
<p>Чтобы выбрать некоторые пакеты, используйте:</p>
<p>rpm -qa | grep -i <em>Строка поиска</em></p>
<p>(Параметр -i дает grep указание игнорировать регистр символов, чтобы буквы  верхнего и нижнего регистров совпадали.)</p>
<p>rpm -Va</p>
<p>Проверить (параметр &#8220;V&#8221;) все пакеты (параметр &#8220;a&#8221;),  установленные в моей системе. Перечислит файлы, измененные со времени установки  пакета. Примерно это вы получите на выходе:</p>
<p>. Test passed</p>
<p>c  This is a configuration file</p>
<p>5  MD5 checksum failed</p>
<p>S  File size is different</p>
<p>L  Symbolic link has changed</p>
<p>T  File modification time changed</p>
<p>D  Device file is modified</p>
<p>U  User that owns the file has changed</p>
<p>G  Group that owns the file has changed</p>
<p>M  File mode (permissions and/or file type) has been modified</p>
<h3>Как проинсталлировать программу, которую я скачал из ИНТЕРНЕТА?</h3>
<p>Ответ зависит от  того, пакет какого типа вы скачали. Вы можете избежать головной боли от  инсталляции, если вы скачали программу в виде бинарного пакета Red Hat *.rpm  (это тот формат, которым я пользуюсь, если есть возможность).</p>
<p><strong>ИНСТАЛЛЯЦИЯ БИНАРНЫХ ПАКЕТОВ REDHAT</strong></p>
<p>Если программа, которую я хочу установить является бинарным пакетом RedHat  (*.rpm),  я могу использовать либо командную строку, либо приложение,  предоставляющее мне графический интерфейс. Я предпочитаю использовать командную  строку, поскольку это быстро и беспроблемно.  Приложение для инсталляции  пакетов RedHat называается rpm.  Во-первых, я прочитываю информацию о пакете (необязательно):</p>
<p>rpm -qpi my_new_file.rpm</p>
<p>Эта команда  запрашивает (ключ &#8220;q&#8221; должен быть первым после тире) информацию об  ещё не установленном пакете (флаг &#8220;p&#8221;) и выводит информацию (флаг  &#8220;i&#8221;), которая содержится в пакете.  Если я хочу установить  программу, я запускаю (с правами суперпользователя) команду:</p>
<p>rpm -ihv my_new_file.rpm</p>
<p>Эта команда  выполняет работу по инсталляции. Она запускает программу rpm,  указывая ей установить пакет (флаг &#8220;i&#8221; должен быть первым после тире)  и выводить на дисплей больше информации чем обычно (флаг &#8220;h&#8221;=  отобразить маркеры хода распаковки, флаг &#8220;v&#8221;  = быть более  информативным).  Содержание пакета распределяется по соответствующим  каталогам (rpm знает по каким).  После установки программа готова к  запуску, мне всего лишь нужно знать имя запускаемой программы и её  местоположение.  Если мне трудно найти запускаемую программу, следующая  команда выводит список всех файлов, содержащихся в пакете, вместе с целевыми  каталогами:</p>
<p>rpm -qpl my_new_file.rpm</p>
<p>Эта команда  запрашивает (флаг &#8220;q&#8221;) ещё не установленный пакет (флаг  &#8220;p&#8221;) и выводит на дисплей список всех файлов (флаг &#8220;l&#8221;).</p>
<p>Графическими  фронтэндами к rpm являются: gnopro  (старая версия, поставляемая с RH6.0 была глючной, но более новые версии  гораздо лучше), kpackage (доступен только  с более свежими дистрибутивами) и старый glint  (очень медленный, поставлялся с RH5.2).</p>
<p><span style="text-decoration: underline;">Работа  с ошибками.</span> Предполагается, что rpm &#8211; довольно  интеллектуальная программа. В случае, если установка не завершилась успешно, я  читаю сообщения об ошибках и могу попытаться придумать, что сделать:</p>
<p>(1) Установка провалилась, поскольку я уже имею установленной более раннюю  версию пакета и эти две версии конфликтуют. Решение: не устанавливать, а  модернизировать пакет.</p>
<p>rpm -Uvh my_new_file.rpm</p>
<p>(2) Установка провалилась поскольку необходимо сначала установить другой пакет.  Я должен найти недостающий пакет и установить его, а затем повторить инсталляцию.  В крайнем случае, я могу проигнорировать недостающие зависимоти (Я  действительно должен знать, что я собираюсь делать, иначе программа может  неправильно функционировать):</p>
<p>rpm -ivh &#8211;nodeps my_new_file.rpm</p>
<p>или, возможно, даже:</p>
<p>rmp -ivh &#8211;nodeps &#8211;force  my_new_file.rpm</p>
<p><strong>УСТАНОВКА ИЗ &#8220;ТАРБОЛОВ&#8221; С  ИСХОДНЫМИ КОДАМИ</strong></p>
<p><strong>o</strong> В случае, если я скачал из сети  исходные коды программы для Linux в виде сжатого &#8220;тарбола&#8221; (*.tar.gz  или *.tgz), установка является более продолжительной и хлопотливой процедурой  по сравнению с установкой из бинарного rpm. Обычно я устанавливаю программу как  суперпользователь.</p>
<p><strong>Во-первых</strong>, я меняю текущую  рабочуюI директорию на /usr/local :</p>
<p>cd /usr/local</p>
<p><strong>Во-вторых</strong>, я распаковываю  скачанный из сети &#8220;тарбол&#8221;:</p>
<p>tar -xvzf /home/the_dir_where_the_tarball_is/my_tarball.tar.gz</p>
<p>Эта команда  извлекает (флаг &#8220;x&#8221;) содержимое &#8220;тарбола&#8221; (*.tar.gz или  *.tgz), &#8220;разиповывает&#8221; его (флаг &#8220;z&#8221;), во время выполнения  предоставляет мне больше информации, чем обычно (флаг &#8220;v&#8221; =  verbose).  Пожалуйста, имейте в виду, что флаг &#8220;f&#8221; означает  &#8220;file&#8221; (файл), так что имя файла должно сразу же следовать за буквой  &#8220;f&#8221;.  Содержимое &#8220;тарбола&#8221; извлекается в  поддиректорию, которую программа tar создаёт в  текущей рабочей директории. Обычно это /usr/local/  .  &#8220;Тарбол&#8221; знает, как должна называться новая поддиректория.</p>
<p>Если  &#8220;тарбол&#8221; не запакован (например, *.tar), я могу использовать команду:</p>
<p>tar -xvf  /home/the_dir_where_the_tarball_is/my_tarball.tar</p>
<p><strong>В-третьих</strong>, я должен иметь  представление, как называется новая поддиректория и затем перейти в неё:</p>
<p>dir</p>
<p>cd  the_new_program_subdir</p>
<p>Поскольку  некоторые директории имеют длинные имена, я использую великолепную возможность  автозаполнения для того, чтобы сэкономить на наборе текста &#8212; я просто набираю  несколько первых букв и нажимаю клавишу &lt;TAB&gt; .</p>
<p><strong>В-четвёртых</strong>, большинство  компилируются запуском слкдующих трёх команд:</p>
<p>./configure</p>
<p>make</p>
<p>make install</p>
<p>Вышеприведённые  команды требуют некоторого времени для авершения (1 минута? полчаса?). Если  какая-либо из них не заершается успешно, возможно, имеет смысл почитать файлы  README или INSTALL, или любую другую информацию, поставляемую вместе с  программой. Некоторые программы требуют настройки окружения (например,  определения путей) или установки какой-нибудь дополнительной библиотеки, или же  чего-то ешё. Иногда это может быть хлопотноn. Очень простые программы могут не  требовать шагов &#8220;./configure&#8221; и/или &#8220;make install&#8221;, тогда  подойдёт одна лишь команда &#8220;make&#8221;.</p>
<p><strong>В-пятых</strong>, Если всё идёт  хорошо, я нахожу новую исполняемую программу, которую я только что скомпиллировал.  Имя программы высвечивается зелёным при выполнении следующей команды:</p>
<p>ls &#8211;color</p>
<p>Теперь я могу  запустить программу, напримерe:</p>
<p>./the_executable</p>
<p>Некоторые  программы автоматически устанавливают исполняемые модули в /usr/local/bin,  поэтому я могу попытаться выполнить команду:</p>
<p>/usr/local/bin/the_executable</p>
<p><strong>В-шестых</strong>,  если я планирую запускать программу достаточно часто, я создаю символическую  ссылку к программе из директории /usr/local/bin  :</p>
<p>cd /usr/local/bin</p>
<p>ln -s  /usr/local/the_new_program_subdir/the_executable .</p>
<p>Таким образом,  исполняемая программа (а в действительности, символическая ссылка на неё)  находится в каталоге, перечисленном в переменной PATH и её можно запустить  просто указав её имя (нет необходимости указывать полный путь к исполняемой  программе). Некоторые программы установят исполняемые модули (или ссылки на  них) в директорию &#8220;bin&#8221;, в этом случае последний шаг можно опустить.</p>
<p><strong>УСТАНОВКА ИЗ ПАКЕТОВ RPM С ИСХОДНЫМИ КОДАМИ</strong></p>
<p><strong>o</strong> Есть также программы  распространяемые в виде пакетов rpm с исходными кодами (source code rpm). Они  требуют установки пакета *.rpm с помощью программы &#8220;rpm&#8221;, как было  описано в первой части этой главы. Но, поскольку &#8220;rpm&#8221; устанавливает  исходный код (обычно, написанный на языке С), затем я должен скомпиллировать  исходный код выполняя последовательность &#8220;./configure ;  make ; make  install&#8221; &#8211; ту же самую, что и для исходных кодов, распространяемых в виде  &#8220;тарболов&#8221; (см. предыдущий ответ).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/ustanovka-programm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Командный интерпретатор (оболочка, shell)</title>
		<link>http://www.studcode.ru/archiv/komandnyj-interpretator-obolochka-shell/</link>
		<comments>http://www.studcode.ru/archiv/komandnyj-interpretator-obolochka-shell/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 15:55:45 +0000</pubDate>
		<dc:creator>sleepes</dc:creator>
				<category><![CDATA[ОС Linux]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[лекции]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=846</guid>
		<description><![CDATA[Что такое командный интерпретатор и хочу ли я использовать  какой-либо другой?
Командный  интерпретатор (оболочка) &#8211; это программа, которая интерпретирует всё, что вы  печетаете в командной строке и решает, что с этим делать. Командный  интерпретатор также может быть запущен в неинтерактивном режиме, например, для  выполнения предварительно напечатанного списка команд из текстового файла [...]]]></description>
			<content:encoded><![CDATA[<h3>Что такое командный интерпретатор и хочу ли я использовать  какой-либо другой?</h3>
<p>Командный  интерпретатор (оболочка) &#8211; это программа, которая интерпретирует всё, что вы  печетаете в командной строке и решает, что с этим делать. Командный  интерпретатор также может быть запущен в неинтерактивном режиме, например, для  выполнения предварительно напечатанного списка команд из текстового файла  (сценария, скрипта). Командный интерпретатор можно считать эквивалентом  ДОС&#8217;овского файла &#8220;command.com&#8221;, а сценарий командного интерпретатора  эквивалентом файлов пакетной обработки (*.bat) ДОС. По сравнению с ДОС&#8217;овскими  родственниками командный интерпретатор операционной системы LINUX и язык  сценариев (скриптов) гораздо мощнее.<span id="more-846"></span></p>
<h3><a id="prompt_setting" name="prompt_setting"></a> Как настроить  приглашение в моей оболочке?</h3>
<p>На  моей машине приглашение может выглядеть следующим образом:</p>
<p>[stan@marie  stan]$ _</p>
<p>где &#8220;stan&#8221; &#8211;  имя, под которым я вхожу в систему, &#8220;marie&#8221; &#8211; имя компьютера, второе  слово &#8220;stan&#8221; &#8211; название текущего рабочего каталога, и &#8220;_&#8221;  представляет курсор.</p>
<p>Приглашение  устанавливается переменной окружения PS1.  Для того, чтобы отобразить  текущую настройку, я могу использовать команду:</p>
<p>echo  $PS1</p>
<p>Общесистемные настройки  приглашения (настройки для всех пользователей в системе) находятся в файле /etc/bashrc, который в моей системе содержит следующую строку:</p>
<p>PS1=&#8221;[\u@\h  \W]\$ &#8221;</p>
<p>Для настройки  приглашения я могу отредактировать файл /etc/bashrc (как суперпользователь)  и вставить практически любой текст внутри кавычек. Вот значение некоторых  специальных кодов, которые я могу захотеть использовать:</p>
<p>\u    -    имя текущего пользователя(= $LOGNAME),</p>
<p>\h    -    имя компьютера, на котором запущена оболочка (hostname),</p>
<p>\H    -    полное имя компьютера,</p>
<p>\W    -    название текущего каталога,</p>
<p>\w    -    полное имя текущего каталога,</p>
<p>\$    -    выдавать &#8220;$&#8221; для нормальных пользователей и  &#8220;#&#8221; -для суперпользователя,</p>
<p>\!    -    номер текущей команды в истории команд,</p>
<p>\#    -    номер текущей команды (по отношению к выполненным в текущей  оболочке),</p>
<p>\d    -    текущая дата,</p>
<p>\t    -    текущее время (24-х часовой формат),</p>
<p>\T    -    текущее время (12-ти часовой формат) &#8211; справедливо только  для bash версии 2.0,</p>
<p>\@    -    текущее время (AM/PM формат) &#8211; только для bash 2.0,</p>
<p>\s    -    название оболочки,</p>
<p>\a    -    звуковой сигнал (beep),</p>
<p>\j    -    число запущенных заданий пользователя,</p>
<p>\n    -    новая строка,</p>
<p>\\    -    забой (backslash),</p>
<p>\[    -    начало последовательности непечатаемых символов,</p>
<p>\]    -    конец последовательности непечатаемых символов,</p>
<p>\nnn -     символ ASCII, соответствующий восьмеричному числу nnn.</p>
<p>$(date) &#8211; вывод команды  date (или любой другой, если она указана таким же образом),</p>
<p>Вот &#8211; пример как  добавить цвет. Для более детальной информации смотри следующую главу:</p>
<p>PS1=&#8221;\[\033[1;32m\][\u@\h  \W]\$\[\033[0m\] &#8221;</p>
<p>Есть также приглашение  второго уровня, устанавливаемое переменной PS2. Командный интерпретатор  использует его в случае, когда ожидается дополнительный ввод данных. В моей  системе вторичное приглашение &#8211; &#8220;&gt; &#8220;. Я не слишком волнуюсь о PS2,  но если бы я волновался, то мог бы установить её тем же способом, что и PS1.  Есть даже PS3 и PS4, но они редко встречаются.</p>
<h3><a id="color_term" name="color_term"></a><a id="symbols_on_console" name="symbols_on_console"></a><a id="shell_scripts" name="shell_scripts"></a> Как написать  простой сценарий (скрипт)?</h3>
<p>Создайте  текстовый (ASCII) файл, в котором будет содержаться ваш скрипт. Например, я  обычно использую текстовый редактор pico для написания сценария, который  запускает программу tar со всеми параметрами, обычно необходимыми для распаковки  &#8220;тарболов&#8221;, загруженных из Internet (Я ,кажется, никогда не запомню  все опции tar). Я решил назвать мой скрипт &#8220;untar&#8221;:</p>
<p>pico  untar</p>
<p>Поскольку  файл с именем &#8220;untar&#8221; не существовал в моём текущем каталоге, он был  создан с помощью текстового редактора pico.  Теперь я печатаю содержание моего скрипта:</p>
<p>#!/bin/bash</p>
<p>echo this is the script file $0</p>
<p>echo untarring the file $1</p>
<p># теперь вызываем tar с флагами -xvzf  (extract,</p>
<p>#    verbose, filter  through gzip, input filename)</p>
<p>tar -xvzf $1</p>
<p>Сохраняю  файл с помощью комбинации клавиш &lt;Ctrl&gt;o и выхожу с помощью &lt;Ctrl&gt;x</p>
<p>Первая  строка сценария, начинающаяся с &#8220;#!&#8221; (называемая  решётка-восклицательный знак) является особой &#8212; она указывает командному  интерпретатору, какую программу следует использовать для интепретации моего  скрипта. В данном примере скрипт нужно интерпретировать оболочкой bash /bin/bash  .  Первая строка должна начинаться с #! , иначе скрипт никогда не  будет запущен (файл будет интерпретироваться как текстовый).  Другие  строки, начинающиеся с # являются комментариями для автора (читателей,  пользователей) и полностью игнорируются интерпретатором.</p>
<p>$0,  $1, $2 &#8230; в моём сценарии являются параметрами, передаваемыми скрипту.   Например, если бы я запустил скрипт с названием &#8220;myscript&#8221; с семью  параметрами следующим образом:</p>
<p>myscript a b c d e f g</p>
<p>тогда  переменная $0 была бы видна внутри сценария &#8220;myscript&#8221; как имеющая  значение &#8220;myscript&#8221;, $1 имела бы значение &#8220;a&#8221;,  $2  была бы &#8220;b&#8221;,  $3 была бы &#8220;c&#8221;, и так далее.</p>
<p>Во  второй и третьей строках моего скрипта команда echo распечатывает на экране  всё, что следует за ней на той же строке, &#8220;разворачивая&#8221; $0 и $1 в  значения параметров, переданных скрипту.  Четвёртая и пятая строки  содержат комментарии, которые я написал для того, чтобы напомнить себе, чего я  пытаюсь достичь на всякий случай &#8211; если я буду должен модифицировать  сценарий.Последняя строка выполняет нужную работу.</p>
<p>Как  только скрипт написан, я делаю файл исполняемым для его владельца  (&#8221;u&#8221;=user):</p>
<p>chmod  u+x untar</p>
<p>и мой  сценарий готов для запуска следующим образом:</p>
<p>./untar  my_tar.tar.gz</p>
<p>Язык  скриптов в Linux действительно богат, гибок, мощен и может быть сложным.  Однако, не требуется специальных знаний при написании сценариев для  автомацизации простых задач. Вы просто соединяете группу часто используемых  команд, одну за другой, внутри файла.  Я использую язык скриптов,  поскольку я слишком ленив, чтобы набирать одни и те же группы команд снова и  снова.</p>
<p>Действительно простая  последовательность команд также может быть напечатана в текстовом файле и  передана оболочке на выполнение с помощью команды:</p>
<p>source <em>my_file</em></p>
<p>[Нет  необходимости в начальном сочетании "#!" или права на выполнение.]</p>
<p><strong> </strong><a id="quotes" name="quotes"></a><a id="io_redirection" name="io_redirection"></a><strong><em>Стандартные  потоки  ввода, вывода   и  ошибок</em></strong></p>
<p>Имеют   дискрипторы (номера)</p>
<p>Стандартный   ввод    -  0</p>
<p>Стандартный   вывод  &#8211; 1</p>
<h1>Стандартный  поток   ошибок и сообщений  &#8211; 2</h1>
<h2>Переназначение  стандартных  потоков</h2>
<table border="1" cellspacing="0" cellpadding="0" width="690">
<tbody>
<tr>
<td width="359" valign="top">команда  &gt;  файл</td>
<td width="331" valign="top">Вывод  в     файл</td>
</tr>
<tr>
<td width="359" valign="top">команда  &gt;&gt; файл</td>
<td width="331" valign="top">Вывод  в     конец  файла</td>
</tr>
<tr>
<td width="359" valign="top">команда  &gt; файл     2&gt;&amp;1</td>
<td width="331" valign="top">Вывод    команды  и  ошибки     в    файл</td>
</tr>
<tr>
<td width="359" valign="top">команда  &lt; файл</td>
<td width="331" valign="top">Ввод  данных     из  файла</td>
</tr>
<tr>
<td width="359" valign="top">команда  &lt; файл     &gt;  файл</td>
<td width="331" valign="top">Ввод  данных     из  файла1  вывод     в  файл2</td>
</tr>
<tr>
<td width="359" valign="top">команда  &lt;&lt;РАЗДЕЛИТЕЛЬ</td>
<td width="331" valign="top">Получает    данные  из  входного     потока,  пока  не     встретится  РАЗДЕЛИТЕЛЬь</td>
</tr>
</tbody>
</table>
<p><strong> $cat   /etc/passwd/  |  sort &gt; pas.txt </strong>отсортированный   список  пользователей  записывается   в  файл <strong>pas.txt</strong></p>
<p><strong> $cat   &gt;</strong> <strong>myfile</strong> создает   пустой  файл <strong>myfile </strong></p>
<p><strong> mail </strong><em>user</em> <strong>&lt;  content.txt </strong>отправляет  пользователю <em>user </em>сообщения  записанное   в  файле <strong>content.txt</strong></p>
<p><strong>$cat   &gt;myfile &lt;&lt;ПОКА</strong></p>
<p>&gt;   Привет! Я  пишу  тебе   письмо</p>
<p>&gt;   Пока!</p>
<p>&gt; <strong>ПОКА</strong></p>
<p><strong>$  cat  myfile</strong></p>
<p>Привет! Я  пишу   тебе  письмо</p>
<p>Пока!</p>
<p><strong> </strong></p>
<p><strong>$cat   myfile   2&gt;err.err </strong> сообщения   и  ошибки  пишутся   в файл <strong>myfile</strong></p>
<p><em> Стандартный  вход и стандартный выход</em></p>
<p>Большинство команд LINUX получают свои входные  данные от клавиа­туры терминала и посылают результаты обратно на экран  терминала. Ко­манда обыкновенно читает входные данные со стандартного входа,  кото­рым по умолчанию является ваш терминал. Результаты своего выполне­ния  команда также направляет по умолчанию на стандартный выход, ко­торым опять-таки  является терминал, с которого вы зарегистрировались в системе.</p>
<p>Давайте в качестве примера возьмем одну  действительную команду. Пусть такой командой будет who, которая выводит на  терминал список всех пользователей, работающих в настоящий момент с системой.  Резуль­тат работы этой команды показан на рис. 3.6</p>
<p><img class="aligncenter size-full wp-image-848" title="clip_image002" src="http://www.studcode.ru/wp-content/uploads/2009/12/clip_image0021.gif" alt="clip_image002" width="443" height="127" /></p>
<p>Если выполнить команду sort без аргумента (имя файла),  то команда будет принимать входные данные с клавиатуры терминала, предполагая  его в качестве стандартного входа.</p>
<p>Когда вводится информация для данной команды с  терминала, клави­ши Ctrl и D необходимо нажать  одновременно, после того как введен по­следний символ данных. Это указывает  команде, что ввод закончен и ей пора начинать работу. В качестве примера  возьмем несколько имен в про­извольном порядке, так, как они будут вводиться с  клавиатуры, и подадим их на вход sort:</p>
<p>$  sort</p>
<p>mama</p>
<p>wasko</p>
<p>papa</p>
<p>kinder</p>
<p>urka</p>
<p>Ctrl-d</p>
<p>kinder</p>
<p>mama</p>
<p>papa</p>
<p>urka</p>
<p>wasko</p>
<p>$</p>
<p>Так как мы не указали имя файла в команде, входные  данные были взяты со стандартного входа &#8211; терминала. После одновременного  нажатия клавиш Ctrl-d, символизирующих окончание ввода, команда sort  выпол­нила сортировку по алфавиту и вывела результат своей работы на стан­дартный  выход, в нашем случае опять-таки терминал. Это показано на рис.3.7.</p>
<p><img class="aligncenter size-full wp-image-851" title="clip_image004" src="http://www.studcode.ru/wp-content/uploads/2009/12/clip_image004.gif" alt="clip_image004" width="422" height="113" /></p>
<p><em>Переназначение выхода</em></p>
<p>В системе LINUX результаты работы любой  команды, в принципе предназначенные для стандартного выхода, легко могут быть  перенаправлены в другое устройство или записаны в файл (а файл, как вы помните,  в UJNIX логически ничем не отличается от устройства).</p>
<p>Например, предположим, что вы хотите запомнить  список пользователей как результат действия команды who в некоем файле. Для этого  нужно прибавить к команде выражение &gt;filename, и результат будет запи­си  в файл с желаемым именем, а на экране вы уже ничего не увидите:</p>
<p>$ who &gt; userlist</p>
<p>$</p>
<p>Чтобы посмотреть, какие же все-таки были у нас  пользователи, можно применить команду cat:</p>
<p>$  cat userlist</p>
<p>inter      pts000       Oct 6 16841</p>
<p>root    console       Oct 6 16:42</p>
<p>•ttymon3   tp/12         Oct 6 17:12</p>
<p>informix   pts002       Oct 6 17:10</p>
<p>$</p>
<p>Команда echo, бессмысленная на первый  взгляд, но которая, как мы потом увидим, широко используется в  Shell-программировании, также по­ймает результат к стандартному выходу, что  означает возможность его переназначения:</p>
<p>$  echo line  1 &gt; file1</p>
<p>$  cat file1</p>
<p>line  1</p>
<p>$</p>
<p>Если нужно добавить к сохраненному файлу filel еще  пару строк, то нужно выполнить следующее:</p>
<p>$ echo line 2  &gt;&gt; filel</p>
<p>$ cat filel</p>
<p>line 1</p>
<p>line 2</p>
<p>$</p>
<p>$ echo line 3  &gt;&gt;filel</p>
<p>$ cat filel</p>
<p>line 1</p>
<p>line 2</p>
<p>line 3</p>
<p>$</p>
<p>В этом примере используется комбинация символов  &gt;&gt;, которая ис­пользуется для добавления информации в конец файла.  Предыдущее его содержание не теряется, а новая информация просто добавляется к  первоначальной. ,</p>
<p><strong><em>Переназначение входа</em></strong></p>
<p>Так же, как выходные данные могут быть  перенаправлены в файл, входные данные могут быть взяты из файла. И поскольку  знак (&gt;) ис­пользуется для переназначения выхода, точно таким же образом,  знак (&lt;) используется для переназначения входа. Разумеется, вход из файла  может быть назначен для тех команд, которые в принципе получают данные со  стандартного входа.</p>
<p>Чтобы переназначить вход данной команды, вводится  знак (&lt;) перед именем файла, из которого необходимо получить данные.</p>
<p>Так, например, чтобы подсчитать число строк в файле userlist,  можно, как известно, использовать команду we -l userlist:</p>
<p>$ we -1 userlist</p>
<p>4   userlist</p>
<p>Или, чтобы подсчитать число строк в том же самом  файле, можно ис­пользовать форму записи команды с переназначенным входом:</p>
<p>$ we -l &lt; userlist</p>
<p>4</p>
<p>Заметим, что существует разница в результате этих  двух форм записи команды для исполнения. В первом случае заодно с числом строк  запи­сывается и имя файла, а во втором &#8211; нет. Это показывает очень тонкую  разницу между исполнением двух различных вариантов одной и той же команды. В  первом случае we знает, что получает входные данные из файла usrerlist.  Во втором случае команда знает только то, что получает данные со стандартного  входа. Командная оболочка (Shell) перенаправляет входные  данные от терминала к файлу userlist. Что до самой команды we, то  та не знает откуда идут входные данные &#8211; со стандартного входа или из файла.</p>
<p align="center"><strong><em>Переназначение входа и  выхода</em></strong></p>
<p>Как вы, вероятно, уже догадались, и вход и выход  одной команды мо­гут быть переназначены одновременно, если, разумеется, в  режиме по умолчанию команда принимает данные со стандартного входа и отправля­ет  результаты своего выполнения на стандартный выход:</p>
<p>$ cat userlist</p>
<p>inter      pts000       Oct б 16:41</p>
<p>root       console      Oct 6 16:42</p>
<p>•ttyinon3   tp/12         Oct 6 17:12</p>
<p>Informix   pts002        Oct 6 17:10</p>
<p>$ sort &lt; userlist  &gt;sort_userlist</p>
<p>$ cat sort_userlist</p>
<p>Informix   pts002        Oct 6&#8242;17:10</p>
<p>inter      pts000       Oct 6 16:41</p>
<p>root       console      Oct 6 16:42</p>
<p>ttymon3    tp/12         Oct 6 17:12</p>
<p>$</p>
<p>В этом примере входные данные команды sort  бьши переназначены на файл userlist, а результат &#8211; на файл sort_userlist.</p>
<p>Для перенаправления  стандартного потока ошибок следует использовать конструкцию &#8220;2&gt;&#8221;.  Например:</p>
<p>dir  my_dir 2&gt; errorlisting.txt</p>
<p>Вышеприведённая команда  пошлёт стандартный вывод на дисплей и ничего непошлёт в файл, если команда dir  не сгенерирует ошибку. При ошибке ничего не будет послано на дисплей, а файл errorlisting.txt будет содержать сообщение от ошибке, которое будет выглядеть  примерно так:</p>
<p>dir:  my_dir: Permission denied</p>
<p>Кроме перенаправления в  обычные файлы и фильтры (как показано в вышеприведённых примерах) можно  совершать перенаправление в/из устройств и специальных файлов. Далее приводятся  некоторые примеры.</p>
<p>Пример перенаправления в  файл устройства. Следующая команда отображает список файлов на четвёртом  текстовом терминале:</p>
<p>dir  &gt; /dev/tty4</p>
<p><strong><em>Конвейеры</em></strong></p>
<p>Несомненно, что для тех, кто уже успел поработать с MS DOS, знако­мы понятия &#8220;конвейер&#8221; и  &#8220;фильтр&#8221;. Само собой разумеется, что эти слав­ные понятия ни в коей  мере нельзя поставить в заслугу MS DOS, потому что она без  зазрения совести позаимствовала их у LINUX. Тем не менее, сравнительно  редко встречаются пользователи, которые активно применяют эти средства в MS DOS, может быть по причине ее примитивного командного  языка. В то же время это одно из наиболее изящных средств в LINUX.</p>
<p>Конвейер служит для назначения стандартного выхода  одной про­граммы в качестве стандартного входа для другой. Конвейер и перена­значение  ввода/вывода &#8211; явления разные. Если при переназначении ввода или вывода  информация соответственно читается или пишется в файл, то конвейер  непосредственно соединяет &#8220;трубопроводом&#8221; выход одной про­граммы со  входом другой. Конвейер обозначается с помощью символа (|).</p>
<p>Конструкция</p>
<p>Command1 arg&#8230; | command2  arg&#8230;</p>
<p>означает, что стандартный выход команды command1  направлен на стан­дартный вход команды command2.</p>
<p>В конвейер можно соединять несколько команд. При  этом стандарт­ный файл вывода любой команды, кроме последней, служит  стандартным файлом ввода следующей команды в конвейере. Каждая команда в систе­ме  выполняется как отдельный процесс, соединенный с соседним про­цессом  программным каналом pipe.</p>
<p>Чем хороша в принципе идея конвейера? Она хороша  тем, что позво­ляет с помощью очень простых базовых средств операционной  системы реализовать идею модульного программирования, когда вместо больших и  сложных программ можно создавать небольшие программные модули и связывать их  посредством конвейеров любым желаемым способом, ис­пользуя при этом богатые  возможности процедурного языка Shell, кото­рые мы опишем  позднее.</p>
<p>Графически этот процесс изображен на рис. 3.8.</p>
<p><img class="aligncenter size-full wp-image-852" title="clip_image006" src="http://www.studcode.ru/wp-content/uploads/2009/12/clip_image006.gif" alt="clip_image006" width="404" height="102" /></p>
<p>Заметим, что когда между двумя командами установлен  конвейер, то стандартный выход первой команды непосредственно присоединен к  стандартному входу второй команды, и поэтому вы уже не увидите на эк­ране  результат действия команды cat, так как он перенаправлен в  команду 1рг, что можно видеть на рис. 3.9.</p>
<p><img class="aligncenter size-full wp-image-853" title="clip_image008" src="http://www.studcode.ru/wp-content/uploads/2009/12/clip_image008.gif" alt="clip_image008" width="343" height="69" /></p>
<p>Приведем еще примеры конвейеров с несколькими  командами,. ис­пользуемыми одновременно.</p>
<p>Представим, что вы хотите получить список  подкаталогов в вашем те­кущем каталоге и вдобавок отсортировать их по алфавиту.</p>
<p>Во-первых, как получить подкаталоги?</p>
<p>Если выполнить обычную команду</p>
<p>$ ls   -l</p>
<p>то в желаемый список будут включены и обычные файлы,  которые со­держатся в текущем каталоге. С помощью команды grep можно  отфильт­ровать нежелательную информацию. В конвейере grep может быть ис­пользована  следующим образом:</p>
<p>$ ls -l | grep &#8216;^d&#8217;</p>
<p>В этой строке по конвейеру вывод команды ls   передается в команду grep. Шаблон для  фильтровки здесь заключен в кавычки, потому что в не­го входит ^d &#8211;  специальный символ Shell. Выражение &#8216;^d&#8217; соответствует всем  строкам, начинающимся с буквы &#8220;d&#8221;, и следовательно, в  список вой­дут только каталоги, так как строки каталогов при выводе на печать  по команде ls с ключом -1 всегда начинаются с буквы &#8220;d&#8221;  (directory). Что касается команды sort, то ее просто надо добавить  в конвейер, чтобы отсортировать найденные строки (рис.3.10).</p>
<p><img class="aligncenter size-full wp-image-854" title="clip_image010" src="http://www.studcode.ru/wp-content/uploads/2009/12/clip_image010.gif" alt="clip_image010" width="443" height="79" /></p>
<p>Мы подчеркивали факт, что все результаты команд,  которые перена­правляются к входам других команд, не появляются на экране  терминала. Иногда, однако, может потребоваться записать результат работы некоей  промежуточной команды в конвейере. Для этих целей существует команда tee.  Формат этой команды очень прост:</p>
<p>tee   file</p>
<p>Команда tee просто записывает данные,  которые идут со стандартного входа и направляются к стандартному выходу, в  файл. Рис. 3.12 поможет вам легче понять функцию команды и происхождение ее  имени (Т-образная форма).</p>
<p><img class="aligncenter size-full wp-image-855" title="clip_image012" src="http://www.studcode.ru/wp-content/uploads/2009/12/clip_image012.gif" alt="clip_image012" width="407" height="102" /></p>
<p>Так, например, чтобы сохранить распечатку  полноформатных имен ка­талогов в файле listdir, нужно использовать  конструкцию вида</p>
<p>$ ls  -1 | grep &#8216;^d&#8221; | tee listdir | wc -1</p>
<p><img class="aligncenter size-full wp-image-856" title="clip_image014" src="http://www.studcode.ru/wp-content/uploads/2009/12/clip_image014.gif" alt="clip_image014" width="471" height="174" /></p>
<p>Команду tee можно, разумеется, добавить  и в конец конвейера и таким образом записать результаты, одновременно  просматривая их на экране.</p>
<p align="center"><em>Ввод нескольких команд в одной строке</em></p>
<p>Можно спокойно вводить несколько команд в одной  командной стро­ке, отделяя их друг от друга точкой с запятой. Например:</p>
<p>$  date; pwd</p>
<p>Wed  Oct 21 12!45:15 EST 1994</p>
<p>/home/inter</p>
<p>$</p>
<p align="center"><em>Продолжение длинной команды на следующей строке</em></p>
<p>Иногда требуется ввести команду, которая занимает  больше одной строки. Для этой цели используется обратная наклонная черта в  конце строки и продолжение команды на следующей строке. Клавиша Return,  как и обычно, используется для завершения ввода. Нельзя нажимать кла­вишу Return  сразу после обратной наклонной черты. Приведем пример использования:</p>
<p>$  echo one\</p>
<p>&gt; two\</p>
<p>&gt;three</p>
<p>one  two three</p>
<p>$</p>
<p>Отметим, что символ подсказки изменяется при этом со  знака (S) на знак (&gt;) в двух строках, где команда продолжается. Таким  способом систе­ма LINUX показывает, что ожидает завершения ввода команды. В  момент, когда по Return завершается некоторая строка без обратной наклонной  черты, LINUX понимает это как конец ввода и начинает выполнять введен­ную команду.</p>
<h3><em>Порядок  выполнения   команд</em></h3>
<ol>
<li>Оператор  &amp;&amp;</li>
</ol>
<p><strong>команда1  &amp;&amp;   команда2</strong></p>
<p>Правая (вторая)  команда   выполняется  только  тогда,   когда   результат  левой ( первой ) команды  ИСТИНА</p>
<ol>
<li>Оператор ||</li>
</ol>
<p><strong>команда1  ||   команда2</strong></p>
<p>Правая (вторая)  команда   выполняется  только  тогда,   когда   результат  левой ( первой ) команды  ЛОЖЬ</p>
<p>Примечание:   Всегда    результат   ИСТИНА  это  0</p>
<p>ЛОЖЬ       это   1</p>
<p align="center"><em>Символы-шаблоны и символы &#8211; замещения</em></p>
<p>Символы-шаблоны и символы замещения, иначе еще  называемые к метасимволами, используются в LINUX обычно при генерации имен  файлов</p>
<p>Обычно управление процессом генерации имен в LINUX  обеспечивается с помощью следующих метасимволов:</p>
<p>*          соответствует  любой последовательности символов;</p>
<p>?          соответствует  любому символу;</p>
<p>-           означает  некий диапазон символов.</p>
<p>[             открывает группу символов;</p>
<p>]             закрывает группу символов;</p>
<p>[…]  &#8212;  любой  символ  из   числа  тех, что  находятся   в  скобках . Можно  задавать   интервалом</p>
<p>Например : [279]      – или 2 или  7 или 9</p>
<p>[a-zA-Z]  -   только  буквы  английского   алфавита</p>
<p>[!…]  &#8211;  любой  символ  из   числа  тех, что  не находятся   в  скобках . Можно  задавать   интервалом</p>
<p>Например : [!279] –  не  2 не 7 и  не 9</p>
<p>[a-zA-Z]  -   не  буквы  английского   алфавита</p>
<p>Примеры:</p>
<p>$  ls *.c       Распечатает все файлы с расширением  &#8220;.с&#8221;.</p>
<p>$ ls   b*        Распечатает все файлы, начинающиеся с  буквы &#8220;b&#8221;.</p>
<p>$ ls   ??.c      Распечатает все файлы с двухбуквенным  именем до расширения (например, ab.c, или 12.с, или Iz.c и т.  д.).</p>
<p>$ ls   pic[0-9]   Распечатает все файлы, у которых имя состоит  из nepвых  трех букв &#8220;pie&#8221;  и любой цифры.</p>
<p>$ ls pic[3-8]   Распечатает все файлы, у которых имя состоит  из первых  трех букв &#8220;pie&#8221;  и цифры, в диапазоне 3-8.</p>
<p>$ ls  pic[0-15] Распечатает все  файлы, у которых имя состоит из первых   трех букв &#8220;pie&#8221; и цифры 0, 1 или 5.</p>
<p>Иногда требуется отменить назначение метасимвола,  если он, к примеру, встречается в имени файла. Для этого нужно взять его в  кавычки Если в текущем каталоге существуют два файла с именами &#8220;whos?&#8221;  &#8220;whosi&#8221;, то по команде</p>
<p>$ ls whos?</p>
<p>будет напечатан список из имен обоих файлов, тогда  как команда</p>
<p>$ ls &#8220;whos?&#8221;</p>
<p>вызовет печать информации только о файле  &#8220;whos?&#8221;. Аналогично по кoманде</p>
<p>$ Is whos\?</p>
<p>напечатается та же информация.</p>
<h3>Фильтрация  текста</h3>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="243" valign="top">Метасимволы</td>
<td width="321" valign="top">Описание</td>
</tr>
<tr>
<td width="243" valign="top">^</p>
<p>$</p>
<p>[..]</p>
<p>[^..]</p>
<p>точка)</p>
<p>*</td>
<td width="321" valign="top">
<h5>Начало     строки</h5>
<p>Конец  строки</p>
<p>Любой  символ     указанный  в  скобках. Можно  интервал, например  [1-9]     или  [a-z]</p>
<p>Любой  символ     не  указанный  в     скобках. Можно  интервал,    например  [^1-9]  или     [^a-z]</p>
<p>Любой  отдельный     символ</p>
<p>Ноль  или     более  символов</td>
</tr>
</tbody>
</table>
<p>Например “log.n”  -&gt; login, logon,  logan …</p>
<p>^comp -&gt;  computer, compiler …</p>
<h6><em>Команда  фильтрации</em></h6>
<p>grep  &#8211; выполняет   поиск  в  текстовых   файлах  или  стандартном   входе  выражений  соответствующих  шаблону   и  выводит  результат   в  стандартный  поток   вывода</p>
<p>Синтаксис : <strong> grep   [</strong>параметры<strong>] </strong><em>регулярное  _выражение</em><strong> [</strong><em>файл</em><strong>]</strong></p>
<p>Параметры :   -с  &#8212; число  строк   удовлетворяющих  условию</p>
<p>-n  &#8211;   нумерует строки</p>
<p>$grep  -c  “48”  data.f     &#8212; количество  строк  где   встречается  “48”</p>
<p>$grep   ‘48[34]’  data.f    &#8211;выбрать   строки  где  встречаются   483  или  484</p>
<p>$grep   ‘^[^48]’  data.f  &#8211;   строки  не  начинающиеся   с  4  или  8</p>
<p>Извлечь   из  каталога  имена  подкаталогов</p>
<p>ls –l |  greep  ’^d’</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/komandnyj-interpretator-obolochka-shell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

