Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Навчально-методичний посібник'
Рекомендовано до видання методичною радою Державного вищого навчального закладу “Українська академія банківської справи Національного банку України”,...полностью>>
'Документ'
Политика в области здравоохранения является частью общей социальной политики и проводится государством на различных уровнях: федеральном, регионально...полностью>>
'Решение'
В соответствии с Градостроительным кодексом Российской Федерации, Федеральным законом от 06.10.2003 N 131-ФЗ "Об общих принципах организации мес...полностью>>
'Реферат'
В формировании и развитии экономической структуры любого современного общества ведущую, определяющую роль играет государственное регулирование, осущес...полностью>>

Книга построена в стиле "вопрос ответ". Ответы бывают двух видов

Главная > Книга
Сохрани ссылку в одной из сетей:

Разное

A:Что такое telnet и как с ним работать?

Пару десятков лет назад о персональных компьютерах никто и мечтать не смел. В то время электронно-вычислительные машины занимали целые помещения (ну если не помещения, то шкафы – точно) и стоили жутко дорого. Как правило, один компьютер покупался целиком на всю фирму (или университет) и обслуживал десятки терминалов.

Терминалом тогда называли маломощный компьютер, обслуживающий монитор и клавиатуру, а все вычисления выполняла высокопроизводительная ЭВМ. Подобная схема жива и сегодня – именно так функционируют современные суперкомпьютеры, да и не только они.

Программа, выполняющаяся на центральной ЭВМ, получает с терминала исходные данные, выполняет все необходимые вычисления и отправляет результат своей работы обратно на терминал. Ну, чем не классический пример, иллюстрирующий идеальную концепцию ввода-вывода?

Потребность в стандартизации общения терминала с удаленным компьютером возникла еще на заре развития ARPANET, и в результате этого в 1969 году на свет появился протокол telnet (сокращение от telecommunication network protocol – сетевой коммуникационный протокол). С его помощью удавалось осуществить заход на сервер с удаленного терминала, и необходимость иметь аппаратный доступ к узлу (попробуй-ка ее обеспечить!) отпадала. Помимо telnet был разработан и проколол rlogin, впервые появившийся в 4.2 BSD UNIX и предназначавшийся для удаленного управления терминалами между UNIX-узлами. В отличие от универсального telnet, протокол rlogin мог использоваться только в среде UNIX. Это упрощало его программирование, но и ограничивало области применения. Поэтому, в настоящее время протокол telnet по популярности заметно превосходит rlogin.

Технически удаленный доступ в систему можно реализовать перенаправлением ввода-вывода. В самом деле, какая разница соединен терминал с компьютером проводами или межконтинентальной сетью Интернет? С точки зрения прикладных программ терминал всегда остается терминалом, даже если физически не существует в природе. В UNIX любое устройство (в том числе виртуальное) может представляться в виде файла. А файл в свою очередь – это объект, поддерживающий, по крайней мере, две основных операции – чтения и записи данных. Поэтому, Интернет-соединение можно представить как некоторый воображаемый файл.

Грубо говоря, все премудрости telnet-сервера сводятся к умению запихать терминальный ввод-вывод в TCP-соединение (хотя теоретически можно создать telnet и на базе UDP протокола). Схематично взаимодействие между telnet-сервером и telnet-клиентом показано на рисунке 52

Рисунок 53 Рисунок t26_1.jpg Модель взаимодействия telnet-клиента с telnet-сервером

На заре развития Интернет, когда еще никто не успел додуматься до web, а центром сетевой жизни были почта и Usenet, протокол telnet оказался основным средством межсетевого общения. Сегодня же подобный сервис – большая экзотика. И вряд ли сложно догадаться почему – слишком много развелось за последнее время вредителей и вандалов всех мастей, а удаленное выполнение программ – мощное оружие в руках злоумышленника, вот и стали администраторы закрывать ворота на свои сервера.

К счастью, в Internet существует несколько хороших бесплатных telnet-серверов, предоставляющих бесплатный доступ. (см. "Web-programming Какие сервера бесплатно предоставляют право исполнения cgi?")

Достаточный признак наличия telnet-сервера на узле – открытый двадцать третий порт. Впрочем, далеко не каждый сервер пускает к себе всех желающих. Сразу же после установки соединения запрашивается имя пользователя и пароль, но только в редких случаях удается ввести нечто вроде "guest" (в переводе на русский "гость") или "newuser" (в переводе на русский "новый пользователь").

Для общения с telnet-сервером потребуется telnet-клиент. Какой именно выбрать – зависит от вкуса читателя, в книге же будет использоваться исключительно telnet.exe, входящий в штатную поставку Windows 9x/Windows NT. Это не лучший выбор и его возможности сильно ограничены, но он всегда доступен любому пользователю, в то время как остальные утилиты еще попробуй-ка, разыщи!

Внимание: приложение telnet.exe, поставляемое с Windows 95 и Windows 98, содержит ошибку, связанную с переполнением буфера слишком длинным аргументом командной строки. Это позволяет выполнить любой код на компьютере жертвы, стоит ей кликнуть по ссылке в окне браузера, наподобие telnet:/xxxxxxxx, где “xxxx….” специальным образом подобранная последовательность.

До начала работы любого клиента необходимо настроить. Ниже будет показано как это сделать на примере штатного клиента Windows. Остальные же клиенты конфигурируются в той или иной степени аналогично.

Windows 9x

Запустив telnet.exe, необходимо вызывать диалог "Параметры терминала", активируя пункт меню “ТерминалПараметры”. Появляется следующее окно (смотри рисунок 53):

Рисунок 54 Рисунок 059 Параметры терминала telnet.exe

При работе с telnet-сервером флажок "Отображение ввода" (другой распространенный вариант названия этой опции "Локальное эхо") должен быть сброшен, иначе все вводимые с клавиатуры символы будут дублироваться. Это происходит потому, что telnet-сервер возвращает клиенту все символы, набранные им с клавиатуры. Не может же пользователь работать вслепую?

Это кажется настолько очевидным, что существование альтернативных вариантов просто не укладывается в голове, но, несмотря на это они существуют! Напротив, в большинстве экспериментов, описываемых в книге, флажок "Отображение ввода" придется взводить, поскольку такие сервера как, например, SMTP, POP3, HTTP "молча" проглатывают отдаваемые пользователем команды и возвращают результат своей работы, но не отображают принятые символы на терминале. Однако клиент telnet может самостоятельно выводить на экран все нажатые клавиши, если флажок "Отображение ввода" установлен.

Две следующие опции управляют формой курсора. Значение их определяется вкусами и пристрастиями пользователя. Установка флажка "мерцающий курсор" приводит к миганию, позволяя его легче отыскать на экране. Если же мерцание раздражает – этот флажок можно сбросить.

Форму курсора предлагается выбрать между "простым" и "прямоугольным". "Простая" приводит к появлению на экране символа прочерка, изображенного на рисунке 54.2. Напротив, прямоугольный курсор занимает всю строку целиком и выглядит так, как показано на рисунке 54.1.

Рисунок 55 Рисунок 062 "прямоугольный курсор" Рисунок 063 "Простой курсор"

"Клавиатура VT100" указывает на необходимость эмуляции клавиатуры терминала VT-100, отличающегося от обычных терминалов наличием клавиш-стрелок, управляющими положением курсора. Если этот флажок сбросить, в редакторе vi придется пользоваться клавишами "<h>,<j>,<k>,<l>", что может оказаться несколько непривычно современному пользователю, поэтому "VT100" лучше всегда держать установленным.

"Размер буфера" – это число строк, которые будет запоминать telnet-клиент, допуская возможность прокрутки окна. Рекомендуется установить достаточно большое значение, иначе вывод результатов работы программы станет уходить "вверх" за окно, и не будет никакой возможности вернуть его назад. Впрочем, в качестве альтернативы telnet.exe допускает протоколирование сеанса работы, – сохранение всех нажатых клавиш и полученной от сервера информации в файле протокола.

"Протоколирование" – часто необходимая в работе вещь и лучше ее всегда держать включенной. Для этого достаточно открыть меню "Терминал Начать протоколирование" и указать имя файла в который будет вестись запись. Закончить сеанс протоколирования можно либо выходом из telnet, либо прекращением протоколирования командой меню "Терминал"  "Закончить протоколирование".

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

Таким образом, до начала сеанса с telnet-сервером необходимо сбросить флажок "Отображение ввода" и установить "Эмуляция VT100", значения всех остальных могут варьироваться в зависимости от вкусов пользователя.

Windows 2000

В поставку Windows 2000 входит значительно измененный telnet клиент, – это консольное приложение, вызывающее трудности с настройкой у новичков. Оно может работать в двух режимах - в рабочем и командном.

Командный режим предназначается для управления клиентом. Все символы, введенные с клавиатуры, обрабатываются самим клиентом и не передаются на сервер. Сразу после запуска, клиент находится в командном режиме. Для того чтобы получить список существующих команд достаточно набрать "?" или "help". Установить соединение с сервером можно либо воспользовавшись командой "open имя сервера порт", либо указав адрес сервера (и порт) в командной строке. По умолчанию используется двадцать третий порт.

После успешной установки соединения, клиент переходит в рабочий режим. Возвратится обратно в командный (если возникает такая необходимость) помогает нажатие сочетания клавиш <Ctrl-]>. Находясь в командном режиме, можно в любой момент закрыть активное соединение командой "close" или выйти из клиента (с закрытием соединения) командой "quit". Для переключения из командного в рабочий режим нажмите клавишу <Enter>.

Две команды "set" и "unset" позволяют управлять параметрами клиента. Доступны следующие опции (для получения их списка укажите знак вопроса после команды set или unset):

NTLM - посылать серверу при аутентификации только NT хеш LOCAL_ECHO эхо-отображение символов, набираемых на клавиатуре

TERM тип терминала (ANSI, VT100, VT52 или VTNM)

CRLF завершать каждую строку символами CR (0xD) и LF (0xA)

Команда set устанавливает требуемую опцию (например, "set LOCAL_ECHO" включает эхо-отображение), а команда unset соответственно сбрасывает ("unset LOCAL_ECHO" выключает эхо-отображение).

Замечание: установка опции "NTLM" приведет к тому, что аутентификация на сервере, не поддерживающего этот режим, окажется невозможна. Наоборот, если на сервере все остальные методы аутентификации запрещены, сброс этой опции приведет к невозможности входа на сервер.

Замечание: в Windows 2000 вполне допустимо исползать прежний, графический telnet-клиент. Для этого достаточно скопировать один исполняемый файл telnet.exe из поставки Windows 95 (Windows 98) или Windows NT 4.

Пример сеанса работы с telnet

Следующий эксперимент демонстрирует подключение к telnet серверу "" с регистрацией нового пользователя.

Выберите пункт "Удаленная система" меню "Подключить" в графическом клиенте или непосредственно укажите имя сервера в его консольной ипостаси.

Когда на экране появится диалоговое окно, изображенное на рисунке 55 в поле "Имя узла" укажите "hobbiton.org" (или адрес другого узла, с которым вы хотите установить соединение). Содержимое поля "порт" на данном этапе оставьте по умолчанию, – "telnet" или введите численное значение порта – "23", в поле "Типе терминала" выберите терминал "vt100".

Рисунок 56 Рисунок 060 Диалог "подключение"

Когда все будет сделано, нажмите кнопочку "подключить", и через пару секунд появится заставка “Open BSD”, с требованием ввода имени пользователя и пароля (смотри рисунок 56).

Рисунок 57 Рисунок 061 Начало telnet-сессии с сервером

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

Как с ней работать? см. "Как работать с UNIX?"

Родственные вопросы:

Как работать с UNIX?

Web-programming  Какие сервера бесплатно предоставляют право исполнения cgi?

A:Как работать с UNIX?

В работе с UNIX нет ничего мистического и освоить простейшие операции можно и в течение одного вечера, особенно если под рукой окажется книжка, написанная простым, толковым языком. К счастью, недостатка в литературе испытывать не приходится, но слишком много – так же плохо, как и совсем ничего. Попробуй, выбери одну книжку из десятка, разбросанных по витрине! Поэтому, в >>>>"Имя это книги" включена короткая глава, помогающая незнакомым с UNIX сделать свои первые шаги. На звание учебника она не претендует, но, по крайней мере, поясняет основные команды UNIX, используемые в этой книге.

Для UNIX существует множество интерактивных оболочек с развитым пользовательским интерфейсом – от Mortal Commander (аналог Norton Commander) до графических сред a la Windows. Они упрощают освоения мира UNIX, но оказываются крайне неудобными для удаленного управления компьютером. Даже консольный Mortal Commander ощутимо тормозит на модемных каналах. А о графических оболочках вспоминать и вовсе не приходится, – комфортная работа возможна лишь при наличии шустрой локальной сети! Поэтому, придется поступиться некоторыми удобствами, и, расставшись с мышью, разговаривать с компьютером языком текстовых команд. Такое общение с UNIX в чем-то напоминает работу с интерпретатором MS-DOS "". Разумеется, названия команд окажутся другими, но в целом принцип тот же.

В UNIX (в отличие от MS-DOS) нет стандартной командной оболочки, и первая задача пользователя – выяснить, что именно установлено в системе, и какие альтернативные оболочки доступны.

Путь к используемой в данный момент оболочке содержится в переменной $SHELL, и вывести ее содержимое на экран поможет команда "echo" – "echo $SHELL" (внимание, – соблюдайте регистр – UNIX к нему чувствительна). Результат работы на компьютере автора выглядит так:

Эмулятор UWIN

>echo $SHELL

/usr/bin/ksh

Эмулятор CYGWIN

>echo $SHELL

/bin/sh

Теперь по таблице 6 легко определить, какая именно оболочка запущена (конечно, при условии, что никакие злые духи не изменили имя исполняемого файла).

Имя файла

Название оболочки

bash

Усовершенствованная оболочка Борна

csh

Оболочка С

ksh

Оболочка Корна

sh

Оболочка Борна

tcsh

Оболочка TC

Таблица 6 Имена исполняемых файлов некоторых популярных оболочек

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

Первая интерактивная оболочка, получившая название "С", возникла в университете Беркли. Она быстро завоевала популярность, но имела множество недостатков и содержала кучу ошибок, поэтому полностью вытеснить оболочку Борна так и не смогла. Проблема же совместного сосуществования заключалась в полной несовместимости командных языков обоих оболочек. Это приводило к невозможности выполнения скриптов, написанных для одной оболочки, другой оболочкой.

К тому же открытость исходных текстов "С" вызвала появление массы несовместимых между собой клонов. Некоторые из них дожили и до наших дней (как, например, "TC",– своеобразный гибрид "С" и "TENEX" – операционной системы PDP-10).

Существовали и коммерческие оболочки. Из них наибольшей популярностью пользовалось творение, созданное Дэвидом Корном, объединившее в себе лучшие черты своих предшественников. Компания AT&T распространяла ее вместе с операционной системой System V, объявив стандартном де-юре.

Стандарт – хорошо, но платить компании никто не хотел, и вскоре оболочка Борна была полностью переписана в рамках проекта GNU, получив название bash – Borne Again Shell. Многочисленные усовершенствования и перенос в среду LINUX сделали bash самой популярной оболочкой всех времен и народов, хотя многие до сих пор предпочитают пользоваться C-Shell или оригинальной оболочкой Борна. К тому же, по-прежнему не иссякает поток энтузиастов, пишущих свои собственные оболочки.

Во многих случаях различия между оболочками не столь существенны и не отражаются на простейших операциях, но все примеры, приводимые в книге, предназначены для оболочки Корна и их успешное выполнение в других оболочках не гарантируется (хотя и предполагается). Поэтому, полезно знать, какие оболочки установлены администратором на машине. В этом поможет команда "cat /etc/shells", результат работы которой на свежеустановленном эмуляторе UWIN выглядит следующим образом:

cat /etc/shells

/usr/bin/ksh

/usr/bin/sh

/usr/bin/tcsh

/usr/bin/csh

/bin/sh

/bin/ksh

/bin/csh

/bin/tcsh

Запустить любую оболочку можно, набрав ее имя (возможно, вместе с полным путем), в командной строке. А вернуться назад обычно помогает команда "exit". В качестве тренировочного упражнения полезно запустить все доступные оболочки по очереди. (Чаще всего пути "/usr/bin" и "/bin" указывают на один и тот же каталог, поэтому эквивалентны друг другу).

$ echo $SHELL

/usr/bin/ksh

$ /usr/bin/sh

# echo $SHELL

/usr/bin/ksh

# exit

$ /usr/bin/tcsh

# echo $SHELL

/usr/bin/ksh

# exit

$ /usr/bin/csh

%echo $SHELL

/usr/bin/ksh

%exit

Для просмотра содержимого директорий в командном интерпретаторе "" (MS-DOS) предусмотрена встроенная команда "dir", но UNIX-оболочки не поддерживают такой команды. Вместо этого пользователю предоставляется возможность вызвать внешнюю утилиту, выполняющую всю необходимую работу.

Обычно в UNIX для отображения содержимого каталога используется программа "ls", находящаяся в каталоге "/bin". Кстати, пользователи CYGWIN, прежде чем смогут ей воспользоваться, должны скачать с сервера архив fileutils.tar.gz – в минимальный комплект поставки она не входит.

Вызов без параметров выводит на экран содержимое текущего каталога, а заглянуть в корень поможет наклонная черта – "ls /"

ls /

A E proc

base.bat etc reg

baseserviceslink.sh F sys

bin H tmp

C home usr

D lib var

dev linka win

Узнать, что находится в каталоге "/etc" можно передав его имя в качестве параметра команде "ls":

$ ls /etc

crontab inetdconfig.sh passwd.add traceit

in.ftpd init.exe priv.exe tracer.exe

in.rlogind login.allow profile ucs.exe

in.rshd login.deny rc ums.exe

in.telnetd mailx.rc services

inetd.conf mkpasswd.exe shells

inetd.exe passwd stop_uwin

Конечно же, поддерживаются символы-джокеры, – знаки "звездочка" и "вопрос". В UNIX, в отличие от MS-DOS, существует конструкция [char set], которую имеет смысл рассмотреть подробнее. Но для начала нелишне вспомнить назначение "*" и "?". Знак "*" обозначает любое множество любых символов (включая пустое), а "?" всего один непустой символ. Поэтому, "ls x*" выведет на экран все файлы (и каталоги), начинающиеся с буквы "x", а "ls ?tmp"- покажет "_tmp","$tmp" и так далее.

Конечно же, временами гибкости таких шаблонов оказывается недостаточно, например, как быть, когда требуется получить список файлов, начинающихся и на букву "i", и на букву "p"? В MS-DOS с этим приходится управляться в два захода, последовательно отдавая команды "dir i*" и "dir p*". UNIX же с этой проблемой управляется за один присест! Например, так:

$ ls /etc/[ip]*

/etc/in.ftpd /etc/inetd.conf /etc/passwd

/etc/in.rlogind /etc/inetd.exe /etc/passwd.add

/etc/in.rshd /etc/inetdconfig.sh /etc/priv.exe

/etc/in.telnetd /etc/init.exe /etc/profile

А как быть, если необходимо отобразить все файлы, в имени которых присутствует хотя бы одна цифра? Неужели придется писать утомительно длительную последовательность "ls *[0123456789]*"? К счастью нет! - необходимый интервал можно задать следующим образом: "[0-9]", например, вот так:

$ls /etc/*[0-9]*

/etc/k1y /etc/mkss2old /etc/track7

Если такой информации окажется недостаточно и потребуется узнать, скажем, права доступа к файлу, имя владельца и время последнего изменения, то воспользуйтесь ключом "-l" (маленькая латинская буква L, не спутайте с единицей). Например, так:

ls –l /etc

-rwxr–-r–- 1 root Everyone 46 Feb 16 1999 crontab

-rwxr–-r–- 1 root Everyone 19968 Feb 17 1999 mkpasswd.exe

drwxr–-r–- 2 root Everyone 512 Jul 2 16:52 mydir

-rwxr––r–- 1 root Everyone 119 Jul 1 12:45 passwd

lrwxr–-r–- 1 root Everyone 20 Jun 4 03:10 services -> /C/WINDOWS//services

-rwxr––r–- 1 root Everyone 88 Feb 17 1999 shells

-rwxr–-r–- 1 root Everyone 73216 Feb 2 07:25 ums.exe

Первая слева колонка сообщает права доступа. Она состоит из тех трехсимвольных групп, определяющих права доступа создателя (то бишь владельца файла), его группы и всех остальных пользователей. Каждая группа в свою очередь состоит из трех атрибутов, разрешающих чтение (r), запись (w) и исполнение (x).

Рисунок 58 Рисунок 008.txt Расшифровка файловых атрибутов

Тут надобно заметить, что в UNIX выполняемые файлы распознаются по атрибуту "x", и могут иметь любое расширение или вовсе не иметь его. Обычно большинство файлов и каталогов имеют следующие права доступа "rwxr––r––r", т.е. создатель файла может делать с ним что угодно, а всем остальным разрешается читать, но не модифицировать или запускать.

Для изменения прав доступа предусмотрена утилита chmod (сокращение от Change Mode). Она принимает следующие аргументы командной строки: первой указывается группа пользователей ("u" – для владельца, "g" – для членов его группы, "o" – для всех прочих и "a" для всех-всех, т.е. "u"+"g"+"o" одновременно), затем наличие (знак "+") или отсутствие (знак "-") требуемого атрибута. Например, защитить собственные файлы от "чужого глаза" можно так: "chmod g-r,o-r *".

Директории отличаются от простых файлов по стоящему впереди символу "d" (смотри рисунок 58)

Рисунок 59 Рисунок 009.txt Директории в UNIX отличаются от файлов наличием атрибута "d"

Следующая колонка сообщает количество псевдонимов, под которыми файл (директория) известен системе. Например, для каталога "/bin" это число равно двум, поскольку обычно "/bin" и "/usr/bin" ссылаются на одну и ту же директорию.

drwxrwxrwx 2 root Everyone 512 Jun 4 00:50 bin

drwxrwxrwx 3 root Everyone 512 Jun 4 00:51 dev

drwxrwxrwx 16 root Everyone 512 Jun 4 00:51 lib

Третья колонка содержит имя владельца файла (в данном примере "root") и группу, к которой он принадлежит ("Everyone"). И замыкают строку размер, время создания и имя файла (директории). Вся остальная информация по работе с "ls" содержится в руководстве "man" и может быть получена с помощью команды "man ls".

Перейти в другой каталог, как и в MS-DOS, можно с помощью команды "cd". Стоит заметить: в UNIX нет понятия диска, поэтому нет и команды для его изменения – для навигации достаточно одного "cd". Например:

$ cd /

$ ls

A E proc

base.bat etc reg

baseserviceslink.sh F sys

bin H tmp

C home usr

D lib var

dev linka win

$ cd /A

$ ls

tpna.arj

$ cd /var

$ ls

adm tmp uninstall

Для создания новых каталогов предназначена команда "mkdir" (Make Directory). Вызов "mkdir myname" создаст в текущем каталоге новую директорию "myname". А вот попытка создать несколько вложенных друг в друга каталогов провалится, если не указать ключ "-p". Например:

$ mkdir temp

$ cd temp

$ ls

$ mkdir 1/2/3

mkdir: 1/2/3: [No such file or directory]

$ mkdir -p 1/2/3

$ ls

1

$ ls 1

2

$ ls 1/2

3

Кстати, обратите внимание, – в UNIX ключи задаются до имен файлов, иначе вместо ключа "-p" создастся директория с таким именем. Да, "mkdir" позволяет создать более одного каталога за вызов. Например:

$ mkdir 1 2 3

$ ls

1 2 3

Удалить ненужные каталоги поможет команда ‘rm’. По умолчанию удаляются одни файлы, а для уничтожения директорий необходимо задать дополнительный ключ ‘-d’. Если удаляемый каталог содержит вложенные директории, то начать удаление необходимо с самого «нижнего» из них или воспользоваться ключом ‘-r’, рекурсивно стирающим все без разбора. Так, для уничтожения созданных в предыдущем примере каталогов ‘/1/2/3’ можно воспользоваться следующими командами:

rm –d /1/2/3

rm –d /1/2

rm –d /1

Или обойтись всего одной:

rm –d –r /1

А для копирования файлов в UNIX предусмотрена утилита "cp" – аналог "copy" из MS-DOS. Например, скопировать "/etc/passwd" в свой собственный каталог можно командой: “cp /etc/passwd /home”, а просмотреть его содержимое поможет утилита "cat". Например:

$ cp /etc/passwd /home

$ cat /home/passwd

root:x:0:13:Built-in account for administering the computer/domain:/tmp:/usr/bin/ksh

telnetd:x:1:1:telnetd:/:/dev/null

Тут необходимо сделать небольшое пояснение. Изначально "cat" разрабатывалась для объединения нескольких файлов в один, но в качестве целевого файла использовался стандартный вывод, поэтому пользоваться утилитой приходилось приблизительно так “cat filefilefile3 > file123”. Знак “>” обрабатывался оболочкой, подменяющей стандартный вывод указанным файлом. Если же целевой файл не указывался, утилита последовательно выводила содержимое перечисленных файлов на экран.

Конечно, существуют и более элегантные способы просмотра содержимого файла и его редактирования. Например, редактор "vi" (от Visual Interface). Это классическая утилита UNIX может вызвать насмешку у пользователей MS-DOS/Windows, привыкших к визуальному редактированию, поскольку редактор "vi" управляется своим собственным командным языком, без знаний которого невозможно даже сохранить файл или выйти из vi!

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

Да, это так! Но при ближайшем рассмотрении недостатки оборачиваются преимуществами. Командный язык несравненно гибче системы меню и значительно ускоряет редактирование текста, стоит лишь освоить его в совершенстве. Конечно, можно возразить "лучше за час добежать, чем за день долететь", – машинное время сегодня не так критично, как стремление максимально облегчить умственную деятельность пользователей.

Действительно, в UNIX существуют вполне привычные пользователям Windows редакторы, и выбор того или иного – личное дело каждого. Разумеется, при условии, что выбранный редактор установлен в системе. К сожалению, администраторы многих серверов не балуют своих пользователей разнообразием, тем более, когда предоставляют хостинг бесплатно. Теоретически возможно связаться с администратором и попросить установить ваш любимый редактор, но практически это оказывается сложнее изучения vi, который поставляется со всеми UNIX-совместимыми системами, и всегда доступен.

Поэтому минимальные навыки работы с редактором vi никогда не помешают, и как знать – может быть, через некоторое время он окажется вашим любимым редактором!

Для того чтобы пользоваться vi, вовсе не обязательно устанавливать на своем компьютере операционную систему UNIX или один из ее эмуляторов, – vi дал рождение многочисленным клонам, некоторые из которых успешно перенесены в среду Windows 9x/Windows NT и даже MS-DOS. Большую популярность завоевал vim, портированный на платформы Amiga, Atari, Mac System 7, UNIX, MS-DOS, Windows, словом практически для любого компьютера существует реализация vim. Остается добавить, что vim свободно распространяется вместе с исходными текстами и находится, например, на быстром германском ftp сервере – ftp://ftp.fu-berlin.de/misc/editors/vim.

Сразу же после запуска, vi будет выглядеть приблизительно так, как показано на рисунке 59 (в данном случае vi был запушен с параметром hello для создания нового файла).

Рисунок 60 Рисунок 054.bmp Внешний вид редактора vim – клона vi, запущенный в операционной системе Windows

Знаки "~" (тильда) указывают на конец файла и в действительности отсутствуют в его теле.

Если попытаться набрать текст "Hello, World!" на экране ничего не появится, а vi ответит разраженным покрикиванием. Дело в том, что у vi есть два режима – командный режим и режим вставки.

В командном режиме можно перемещать курсор по экрану, искать и заменять фрагменты текста, сохранять и загружать файлы с диска – словом командовать редактором, а режим вставки предназначен для ввода самого текста.

Сразу же после запуска vi оказывается в командном режиме и переключиться в режим вставки можно, например, нажатием клавиши <i>. Дождавшись появления курсора вверху экрана, наберите восклицание "Hello, Word!" или что-нибудь в этом духе, а затем попробуйте сохранить файл на диск. Для этого нажмите клавишу <Esc>, чтобы переключиться в командный режим, и наберите следующую последовательность <:>,<q>,<w>,<ENTER>.

Да… сложная вещь vi, но на самом деле настоящие сложности еще впереди! Загрузите только что созданный файла в редактор, указав его имя в командной строке, и попробуйте отредактировать строку, например, измените "Hello, World!" на "Hello, my world!". Что, пытаетесь подвести курсор к месту правки, а стрелки не действуют? Хорошенькое начало, – чем же тогда управлять курсором?!

Не стоит волноваться понапрасну – раскладка клавиатуры обычно подбирается так, чтобы пользователи могли работать ни о чем не задумываясь, но все же иногда встречаются нерадивые администраторы, криво инсталлирующие vi на свою машину. Поэтому, на всякий случай полезно знать, что клавиша <h> в командном режиме перемещает курсор на одну позицию влево, <l> - вправо, а <j> и <k> вниз и вверх соответственно.

Нажмите шесть раз клавишу <l> или воспользуйтесь комбинацией <6><l> (обычно цифра стоящая перед любой командой предписывает повторить эту команду надлежащие количество раз). Теперь наберите "my", автоматически раздвигая остальные символы, а для замены большую буквы "W" на строчечную войдите в командный режим по <Esc> и включите режим вставки символа, нажатием <r>. Или же используйте команду "~" (тильда) для инвертирования регистра символов.

Конечно, никто не и не утверждает, что пользоваться vi легко, но тягостные дни и месяцы обучения окупятся богатыми предоставляемыми возможностями, – vi поддерживает именованные буферы, макросы, обладает развитым механизмом шаблонного поиска, позволяет запускать команды оболочки, не выходя из редактора, словом, в умелых руках способен творить чудеса. Но эта книга не учебник по vi, поэтому, не задерживаясь на нем дальше, вернемся к освоению UNIX.

Продемонстрировать многозадачность UNIX поможет тот же vi – как быть, если, не выходя из редактора, потребуется выполнить какое-нибудь действие? В Windows достаточно щелкнуть мышкой по заголовку окна другой программы или нажать <Alt>-<Tab>, но разработчики UNIX пошли по другому пути.

Если нажать <Ctrl-Z>, выполнение текущего процесса приостановится, и произойдет выход в оболочку. Убедиться в том, что "vi" еще жив поможет команда "ps", отображающая список всех процессов в системе (процесс vi.exe выделен жирным шрифтом):

$ ps

PID TT TIME COMMAND

148799 tty10 0 vi.exe

150872 tty10 0 ps.exe

320924 tty10 0 ksh.exe

Слева показаны идентификаторы процессов. Зная идентификатор процесса, его можно "прибить" командной "kill" или запустить передним планом утилитой "fg". Например, так: "fg 148799" или так – "fg %1", где "%1" –порядковый номер процесса в списке. Независимо от способа запуска "fg", редактор vi вновь появится на экране. Нажмите еще раз <Ctrl-Z> и убийте процесс командной kill – "kill 148799" или "kill %1" – оба варианта хороши одинаково, но второй писать существенно короче.

А как поступить, если в vi требуется провести поиск сложного шаблона по всему тексту, выполняющийся неприлично длительный промежуток времени, в течение которого ничего не остается, как сидеть и тупо пялится на экран?

На помощь приходит фоновое выполнение задач, – понижение приоритета процесса, с предоставлением экрана другому приложению. Перевести приложение в фоновой режим поможет команда "bg", запускаемая точно так же как и "fg" (которая, кстати, пригодится для возращения процесса из фонового в нормальный режим). Большинство оболочек распознают символ "&", расположенный в конце командной строки, и автоматически запускают приложение в фоновом режиме. Например:

$ vi &

[1] 141008

$ ps

PID TT TIME COMMAND

87458 tty10 0 ps.exe

141008 tty10 0 vi.exe

320924 tty10 0 ksh.exe

[1] + Stopped (SIGTTIN) vi &

$

На этом краткое введение в UNIX можно считать законченным. Умения прогуляться по каталогам и запустить нужную программу для начала окажется вполне достаточно. Конечно, это не избавляет от необходимости приобретения справочных руководств и учебников по UNIX, но множество полезной информации можно найти и во встроенной справочной системе, доступной для просмотра с помощью утилиты "man".

Получить помощь по любой команде можно, указав ее название в командной строке, например, так "man ls"

Родственные вопросы:

Как из Windows сделать UNIX?

Что такое telnet и как с ним работать?

Q: Как из Windows сделать UNIX

"Настоящий мужчина должен поставить UNIX!" – правда, не совсем понятно зачем, но должен. А покажите мне человека, у которого не установлен UNIX? Windows NT поддерживает стандарт UNIX – POSIX и формально могла бы быть отнесена в разряд многочисленных клонов UNIX, если бы дядя-Билл стремился получить этот гордый титул. Ежу понятно, сколько Windows 9x не корми, а у Windows NT все равно толще, но и в девяносто пятых от UNIX определенно что-то есть.

Понятное дело, в любом из нас больше крови сэра Баскервиля, чем в Windows – оригинального кода UNIX, и любой фанатик этой самой UNIX презрительно спросит, а можно ли на Windows запускать UNIX-приложения? Нет? Нет, вот и славненько! Кто UNIX не поставил, тот не мужчина, а, с позволения сказать, ламер позорный.

Легко сказать "поставь UNIX"! То есть, поставить-то его, конечно, дело не хитрое, много по этому делу бумаги исписано, – с помощью пива и чьей-то мамы, погрузить UNIX на свой компьютер дело одного часа.

Но вот что с этим зверем делать? Антрацитово-черный экран и мерцающий курсор, очевидно ждущий команды. Но какой команды? Тут бы не дурно в Интернет зайти, туторал почитать, ан-нет – треска хвостом вперед, это только в Windows все делается шелком мыши, а в UNIX без гуру и ящика пива с этой проблемой не справиться.

Вот было бы хорошо запустить UNIX в окне Windows! А почему бы и нет? Забавно, но это действительно можно, причем не какой-нибудь эмулятор UNIX типа тренажера для начинающих, а самый что не на есть полноценный UNIX, на котором хоть Apache сервер гоняй!

Вообще-то если честно, Windows очень трудно "приручить" с исполняемыми файлами UNIX – ну анатомия у нее не та. Если кому такой фокус и удастся, все будет жутко тормозить и часто падать. Но не беда – ведь UNIX-программисты никогда не зажимают исходники, остается только перекомпилировать и все. Ха! Тоже мне сказали "и все". Да любой Windows компилятор скорее подавится, чем проглотит такой исходник! А если и проглотит, – работать все равно ничего не будет.

Разработать такой компилятор, который бы работал в Windows и пережевывал бы исходные тексты от UNIX, впервые решился Дэвид Корн – и, представьте себе, разработал! Компания AT&T (в которой он работает) пробовала наложить на это дело лапу, но Дэвид, как настоящий программист, отстоял за собой право распространять продукт бесплатно.

Зайдем на его домашнюю страничку (/sw/tools/uwin), кликнем по ссылке Down Load – и, ответив на множество пикантных вопросов (о поле, возрасте и месте проживания) попадем, наконец, на список предлагаемых файлов, которых так много, что немудрено и растеряться. Если вы не разработчик и не собираетесь программировать под UNIX (а если вы программируете под UNIX, с чего бы это Windows оказалась на вашем компьютере?), вам достаточно скачать лишь один из них – "uwin_base.win32.i386.exe" – восемь с хвостиком мегабайт и заплатку, исправляющую многие ошибки – "uwin_base_update2_1.win32.i386.exe" – чуть больше двух мегабайт. Также нелишне разжиться хотя бы одной интерактивной оболочкой. Недурно зарекомендовал себя Mortal Commander – клон Norton Commander, написанный специально для UNIX. Без него пришлось бы общаться одной командной строкой, и постоянно помнить множество мудреных команд. Скачать его можно со следующего ftp-сервера - ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/uwin/ports/mc-4.1.35-uwin2.0.tar.gz. Несмотря на "закрученное" расширение с архивом вполне успешно справляется обыкновенный WinZip32.

Установка UWIN, а именно так называется творение Дэвида Корна, никаких проблем не вызывает. Не нужно специальным образом конфигурировать соединение с Интернет или возиться с драйверами принтера или монитора – UWIN с умом использует ресурсы Windows и не потребует дополнительной настройки. Можно даже поставить X-Windows и тогда редкий поклонник UNIX разберется в какой операционке вы работаете.

Разве это не круто? Попробуйте-ка, предложите, лучший способ обучению работы с UNIX! А какой простор открывается для всевозможных атак! Ведь большинство экслоитов, то есть, говоря научным языком, программных реализаций атак, а по-простому всяких там нюков, работают исключительно в среде UNIX и наотрез отказываются дружить с Windows. Так вот, UWIN – лучший способ это сделать!

Правда, вот в чем незадача – все новые нюки лежат на rootshell-е в виде файлов с расширением "c", то есть, пока их не откомпилируешь, о запуске нечего и думать!. А компилятор где? Вновь лезем на сайт Дэвида Корна и скачиваем файлик "uwin_development.win32.i386.exe" – чуть меньше четырех мегабайт. Правда, это не весь компилятор, а только набор заготовок, помогающий Windows-компиляторам преодолеть паралогическую невосприимчивость к UNIX. Выходит, надо вставать, надевать сапоги и чесать на Митино (или как там у вас это называется?) и докупать диск с любым Windows-компилятором. Можно, например, Visual Studio от Microsoft или Turbo C от Borland, а можно и то и другое сразу – на всякий случай, как говорят.

Хорошо, а как компилировать-то? Дэвид не очень-то подробно это описывает, да вдобавок на английском языке, попробуй тут, разберись после пятого пива! Тээкс, сперва надо запустить "cc" (для Microsoft Visual Studio) или "bc" (для Borland Turbo C), следом за ним указав имя файла, например, так: "cc land.c", где land.c – имя файла, который надо откомпилировать. Если все пройдет успешно, и не будет никаких ругательств на недостающие include-файлы, образуется "land.o", – объективный файл. Он еще не готов для запуска – прежде его необходимо слинковать. Для этого существует утилита "ncc". Запускаем ее "ncc land.o" и... получаем ругательство, дескать, того тут нет, этого тут нет, и вообще еррор такой-то и ничего линковать не буду. Значит, линкер не может найти библиотеки, – открываем каталог "lib" и попробуем подключить их самостоятельно, указав после имени файла – "ncc land.c ast.lib posix.lib". Сработало? Неужели и на этот раз нет?! Тогда, вместе с нюком должен поставляться make-файл, так и называющийся "make" или "makefile" – обработаем его утилитой "nmake", ("nmake makefle") и уж на этот раз наверняка все получится – но, к сожалению, не все нюки распространяются с make-файлом.

Полученный файл не обязательно запускать из среды UWIN, он ничуть не хуже будет работать, "Проводника" Windows или, скажем, FAR-навигатора. Но если попытаться одолжить его приятелю, то у него ничего не получится, – программа поругается и потребует наличие двух файлов – astxx.dll (где xx – номер версии UWIN) и posix.dll – оба они находятся в каталоге "WINDOWS\SYSTEM".

Разумеется, UWIN не единственное творение в своем роде. В сети можно найти просто прорву аналогичных примочек. Ну, например, большую популярность завоевал известный CYGWIN (/misc/gnu-win32/). Он полностью бесплатен, распространяется вкупе с исходниками, но… требует глубоких знаний UNIX и умения программировать. Одна только установка чего стоит – на ftp-архиве лежит множество всякой всячины, и приходится самому разбираться что нужно, а что нет. В минимальную поставку CYGWIN входит лишь обертка UNIX, и ни чего больше. Ладно, качаем несколько сотен мег софта на свой винчестер, – там разберемся, что для чего предназначено. Таки ведь нет, – не все так просто запускается! Приходится запасаться пивом и садиться изучать исходники, исправляя ошибки, по халатности оставленные авторами,– зачем все эти заморочки, когда можно юзать готовый UWIN?

А потом – вместе в UWIN распространяется и компактный DNS-сервер. Зачем он нам? Конечно, если подключиться к дорогому, шустрому провайдеру – то ни зачем. А вот вся халява связана с большими тормозами. Как повысить скорость соединения, не платя лишнего? Очень просто – обзавестить собственным DNS. Порой это увеличивает скорость лазанья по web-страничкам на 20%-50% - и главное, совершенно бесплатно. Правда, комфортная работа потребует, по крайней мере, тридцати двух метром мозгов на вашей машине, – но если у вас меньше – как вы вообще умудряйтесь существовать в таких условиях?

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

А теперь выбирайте устанавливать UWIN на свой компьютер или нет.



Скачать документ

Похожие документы:

  1. Лондонской Школы Бизнеса, координатор организационного развития компании rcn, мастер-практик нлп. Наконец-то у нас есть книга

    Книга
    НЛП развивает ваш потенциал в достижении успехов,—создавая порядок из хаоса. Порядок, который может изменяться и развиваться в гармонии с потребностями персонала и бизнеса.
  2. Кино, театр, бессознательное

    Документ
    К 41 Кино, театр, бессознательное. Том 1. /Пер. с итальянского ННБФ "Онтопсихология". — М.: ННБФ "Онтопсихология", 2001. — 384 с., 11 илл.
  3. Введени е (1)

    Документ
    Полагаем, что желание открыть эту книгу возникло у Вас в связи с возникшим интересом к людям. Возможно, уделить время вопросам психодиагностики Вас сподвигли особенности профессиональной деятельности предполагающей изучение персонала
  4. Ответ на клевету под названием

    Реферат
    Хвала Аллаху, Которого мы восхваляем и к Которому взываем о помощи и прощении. Мы ищем защиты у Аллаха от зла наших душ и дурных дел. Кого Аллах ведет по прямому пути, того никто не сможет ввести в заблуждение.
  5. Вопрос Философия, ее предмет и функции. Взаимосвязь философии и частных наук

    Документ
    Философия (Пифагор автор слова фило — любовь, софи — мудрость). С точки зрения Аристотеля мудрость означает — знание общего в различных вещах, знание первопричин действительности, всеобщих свойств, всеобщих законов, всеобщих форм и

Другие похожие документы..