Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Первые шаги с UNIX (глава для начинающих)

Rusa


UNIX



UNIX

Как узнать какая оболочка выпол& 959n1317j #1085;яется в данный момент

vi

Фоновое выпол& 959n1317j #1085;ение процессов

Как узнать список выпол& 959n1317j #1085;яемых процессов в системе

Как пол& 959n1317j #1100;зоваться справочным руководством man

UNIX нет ничего мистического и освоить простейшие операции можно в течение одного вечера, особенно если воспол& 959n1317j #1100;зоваться толковой книжкой. К счастью, недостатка в литературе испытывать не приходится, но слишком много - так же плохо, как и совсем ничего. Попробуй, выбери одну книжку из десятка, разбросанных по витрине! Поэтому, в «Технику сетевых атак» включена короткая глава, помогающая незнакомым с UNIX UNIX, испол& 959n1317j #1100;зуемые в этой книге.

UNIX существует множество интерактивных оболочек с развитым пол& 959n1317j #1100;зовательским интерфейсом - от Mortal Commander Norton Commander Windows UNIX Mortal Commander UNIX MS DOS command com

UNIX MS DOS) нет стандартной командной оболочки, поэтому первая задача пол& 959n1317j #1100;зователя - выяснить, что именно установлено в системе, и какие альтернативные оболочки доступны.

Путь к испол& 959n1317j #1100;зуемой в данный момент оболочке содержится в переменной $SHELL echo SHELL

UWIN

echo $SHELL

/usr/bin/ksh

CYGWIN

echo $SHELL

/bin/sh

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

bash

csh

ksh

sh

tcsh

Оболочка TC

Таблица 3 Имена испол& 959n1317j #1085;яемых файлов некоторых популярных оболочек

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

Первая интерактивная оболочка, пол& 959n1317j #1091;чившая название «С», возникла в университете Беркли. Она быстро завоевала популярность, но имела множество недостатков и содержала кучу ошибок, поэтому пол& 959n1317j #1085;остью вытеснить оболочку Борна так и не смогла. Проблема же совместного сосуществования заключалась в пол& 959n1317j #1085;ой несовместимости командных языков обоих оболочек. Это приводило к невозможности выпол& 959n1317j #1085;ения скриптов, написанных для одной оболочки, другой оболочкой.

TC TENEX PDP

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

Стандарт - хорошо, но платить компании никто не хотел, и вскоре оболочка Борна была пол& 959n1317j #1085;остью переписана в рамках проекта GNU, пол& 959n1317j #1091;чив название bash Borne Again Shell LINUX bash самой популярной оболочкой всех времен и народов, хотя многие до сих пор предпочитают пол& 959n1317j #1100;зоваться C Shell

Во многих случаях различия между оболочками не столь существенны и не отражаются на простейших операциях, но все примеры, приводимые в книге, предназначены для оболочки Корна и их успешное выпол& 959n1317j #1085;ение в других оболочках не гарантируется (хотя и предпол& 959n1317j #1072;гается). Поэтому, пол& 959n1317j #1077;зно знать, какие оболочки установлены администратором на машине. В этом поможет команда "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

Запустить любую оболочку можно, набрав ее имя (возможно, вместе с пол& 959n1317j #1085;ым путем), в командной строке. А вернуться назад обычно помогает команда exit. В качестве тренировочного упражнения пол& 959n1317j #1077;зно запустить все доступные оболочки по очереди. (Чаще всего пути "/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

command com MS DOS) предусмотрена встроенная команда "dir", но UNIX-оболочки не поддерживают такой команды. Вместо этого пол& 959n1317j #1100;зователю предоставляется возможность вызвать внешнюю утилиту, выпол& 959n1317j #1085;яющую всю необходимую работу. Обычно в UNIX для отображения содержимого каталога испол& 959n1317j #1100;зуется программа 'ls bin". Кстати, пол& 959n1317j #1100;зователи CYGWIN прежде чем смогут ей воспол& 959n1317j #1100;зоваться, должны скачать с сервера архив 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' и так далее.

Конечно же, временами гибкости таких шаблонов оказывается недостаточно, например, как быть, когда требуется пол& 959n1317j #1091;чить список файлов, начинающихся и на букву '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

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

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

Если такой информации окажется недостаточно и потребуется узнать, скажем, права доступа к файлу, имя владельца и время последнего изменения, то придется воспол& 959n1317j #1100;зоваться ключом '-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

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

txt

UNIX выпол& 959n1317j #1085;яемые файлы распознаются по атрибуту 'x', и могут иметь любое расширение или вовсе не иметь его. Обычно большинство файлов и каталогов имеют следующие права доступа 'rwxr--r--r', т.е. создатель файла может делать с ним что угодно, а всем остальным разрешается читать, но не модифицировать или запускать.

Для изменения прав доступа предусмотрена утилита chmod (сокращение от Change Mode). Для того, чтобы действие возымело эффект, необходимо указать группу пол& 959n1317j #1100;зователей ('u g o a' для всех-всех, т.е. 'u'+'g'+'o' одновременно), затем наличие (знак '+') или отсутствие (знак '-') требуемого атрибута. Например, защитить собственные файлы от «чужого глаза» можно с помощью команды 'chmod g-r,o-r *'.

d txt

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' и может быть пол& 959n1317j #1091;чена с помощью команды '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

$ ls 1

$ ls 1/2

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

$ mkdir 1 2 3

$ ls

1 2 3

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

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' разрабатывалась для объединения нескольких файлов в один, но в качестве целевого файла испол& 959n1317j #1100;зовался стандартный вывод, поэтому пол& 959n1317j #1100;зоваться утилитой приходилось приблизительно так "cat file file file 3 > file123". Знак ">" обрабатывался оболочкой, подменяющей стандартный вывод указанным файлом. Если же целевой файл не указывался, утилита последовательно выводила содержимое перечисленных файлов на экран.

vi UNIX может вызвать насмешку у пол& 959n1317j #1100;зователей MS DOS Windows vi vi

vi edit com vi

vi, может превзойти ожидаемое увеличение производительности оператора, да и машинное время сегодня не так критично, как стремление максимально облегчить умственную деятельность пол& 959n1317j #1100;зователей.

UNIX существуют впол& 959n1317j #1085;е привычные пол& 959n1317j #1100;зователям Windows редакторы, и выбор того или иного - личное дело каждого. Разумеется, при условии, что выбранный редактор установлен в системе. К сожалению, администраторы многих серверов не балуют своих пол& 959n1317j #1100;зователей разнообразием, тем более, когда предоставляют хостинг бесплатно. Теоретически возможно связаться с администратором и попросить установить ваш любимый редактор, но практически это оказывается сложнее изучения vi UNIX доступен (если, конечно, не удален администратором).

vi



Для того чтобы пол& 959n1317j #1100;зоваться vi UNIX vi Windows x Windows NT MS DOS vim Amiga Atari Mac System UNIX MS DOS Windows vim vim ftp ftp://ftp.fu-berlin.de/misc/editors/vim "/FILES/vim"

vi bmp vi hello

bmp vim vi Windows

Hello World vi

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

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

vi Hello World Hello my world!". Сначала попытаемся подвести курсор к месту правки, не пол& 959n1317j #1100;зуясь клавишами-стрелками, ибо не на всех платформах они правильно действуют. Хорошенькое начало, - чем же тогда управлять курсором?

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

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

Конечно, никто не и не утверждает, что пол& 959n1317j #1100;зоваться vi vi vi UNIX

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

Если нажать <Ctrl Z>, то выпол& 959n1317j #1085;ение процесса vi 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 fg fg vi вновь появится на экране. Нажмем еще раз <Ctrl Z> и воспол& 959n1317j #1100;зуемся командной kill kill kill

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

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

$ 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 можно считать законченным. Умения прогуляться по каталогам и запустить нужную программу для начала окажется впол& 959n1317j #1085;е достаточно. Конечно, это не избавляет от необходимости приобретения справочных руководств и учебников по UNIX, но множество пол& 959n1317j #1077;зной информации можно найти и во встроенной справочной системе, доступной для просмотра с помощью утилиты 'man

man ls bmp

bmp man



MS-DOS

MS-DOS dir *1*

visual interface




Document Info


Accesari: 2189
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )