Команды
Теперь перечислим некоторые полезные команды Unix. Все будет выглядеть так, как если бы мы реально вводили команды через командную строку.
Is
Просмотр раздела. Без аргументов эта команда просто выводит имена файлов в одну или несколько колонок. Пример:
$ Is hithere runme note. text src
Через ключ -1 выводится расширенная информация о файлах: $ Is -1
Rwx—х--х sirhack sirh 10990 runme и так дал ее...
Пояснения:
«rwx—Х--Х» — это файловый доступ (объясняется ниже).
«sirhack sirh» — это владелец файла и группа, в которой файл находится. sirhack = владелец, sirh = пользовательская группа, в которой файл находится.
10990 — размер файла в байтах.
«runme» — имя файла.
Выводит файл на экран. Следует применять к текстовым файлам. Применительно к бинарным файлам используется только чтобы издеваться над пользователями. Пример: $ cat note. txt
Это образец текстового файла! $
Cd
Сменить раздел (директорию). Записывается примерно так: cd /dir/dir1/dir2/dirn
Dirl/... — это имена разделов. Допустим, мы хотим перейти в корневой раздел: $ cd /
•порядок, мы уже там* $ Is
Bin
Sys
Etc
Temp
Work
Usr
Кстати, все, что выше — это разделы.
$ cd /usr
$ Is
Sirhack
Datawiz
Prophet
Src
Violence
Par
Phiber
Scythian ■
$ cd /usr/sirhack
$ Is
Hithere
Runme
Note. text
Src.$
Так вот, полное имя раздела вводить не надо. Если вы находитесь в разделе, и хотите попасть в (под)раздел, который находится здесь же (скажем, «src»), то можете ввести «cd src» (без «/»). Вместо ввода «cd /usr/sirhack/src» из sirhack dir вы можете ввести «cd src».
Ср
Копирует файл. Синтаксис: «ср из_файла в_файл».
$ ср runme runme2
$ Is
Hithere
Runme
Note. text
Src
Runme2
Чтобы скопировать в другой раздел, можно указать полный путь. $ ср runme /usr/datwiz/runme
Mv
Переименование файла. Синтаксис: «mv старое_имяновоеі_имя».
$ mv nmme2 runit
$ Is
Hithere
Runme
Note. text
Src
Runit
Можно переименовывать файлы в других разделах:
$ mv runit /usr/datwiz/run
$ Is
Hithere
Runme
Note. text
Src
$ Is /usr/datwiz
Runme run
Pwd
Переход в текущий раздел. $ pwd
/usr/sirhack $ cd src $ pwd
/usr/sirhack/src
$ cd.. $ pwd
/usr/sirhack
(«..» означает «использовать имя раздела на один уровень выше»). $ cd.,/datwiz (обозначает cd /usr/datwiz)
$ pwd
/usr/datwiz $ cd $home
(перейти в раздел home) $ pwd
/usr/sirhack
Rm
Удалить файл. Синтаксис: «rm имя_файла» или «rm - гимя_раздела». $ rm note, text $ Is hithere
Runme
Src *
Write
Поболтать с другим пользователем. Ну, «написать» другому пользователю. Синтаксис: «write имя_пользователя». $ write scythian
Scythian has been notified (scythiart был уведомлен)
Привет Scy! Как дела??
Message from scythian on tty001 at 17:32
Привет!
Я: Как жизнь?
Scy: Да вроде нормально.
Я: Мне пора дописывать этот текст.
Scy: ok
Я: control-D [для выхода из программы] $
Who [w, who, whodo]
Выводит список тех, кто в он-лайне. $ who
Login term logontime
Scythian + tty001 17:20 phiberO + tty002 15:50 sirhack + tty003 17:21 datawiz - tty004 11:20
Glitch - tty666 66:60 $
Команда «who» может выдавать разную информацию.
«+» означает, что вы можете «write» на этот терминал, а «-» — что не можете.
Man
Показывает подсказку о команде. Синтаксис: «man имя_команды». Это программа помощи. Если хотите узнать, как пользоваться «who», то введите:
$ man who WH0(1) XXX
И получите подсказку, stty
Задает характеристики терминала. Вам придется ввести «man stty», поскольку каждый stty, похоже, отличен от другого. Пример: $ stty - parenb
Чтобы установить параметры данных N,8,1. Многие Unix по умолчанию работают при е,7,1.
Sz, rz
Послать/получить через zmodem.
Rx, sx
Послать/получить через
Rb, sb
Послать/получить через batch (пакетный) ymodem. Эти шесть программ могут в Unix быть, а могут и не быть. umodem
Послать/получить через send/recieve umodem. $ sz filename
Ready to send... (готов послать...) $ rz filename
Please send your file.,. (пожалуйста, пошлите ваш файл...) .. .etc.. (и т. д. )
Ed
Текстовый редактор. Синтаксис: «ed имя_файла». Для создания нового файла просто введите «ed имя_файла». $ ed newtext
О
а
Это строка 1 Это строка 2 [control-z]
1 [чтобы увидеть строку 1] Это строка 1
а [продолжаем добавлять] Это строка 3 [control-z]
*0а [добавить после строки 0] Это ПЕРВАЯ строка [control-z] 1,41
Это ПЕРВАЯ строка Это строка 1 Это строка 2 Это строка 3
w 71
q $
Пояснения:
Ф 71 — это число записанных байтов.
а — добавить. 1 — просмотр.
Ф # — напечатать номер строки.
Щ W — записать.
1 fname — загрузить файл fname.
s fname — сохранить с именем fname.
w — записать в текущий файл.
q — выход.
Включает/выключает разрешение «писать» (write) на ваш терминал (разрешает чат). Формат: «mesg у» (да) или «mesg П» (нет).
Сс
Компилятор С. chmod
Смена «режима» файла. Другими словами, смена доступа. Синтаксис: «chmod mode filename» («chmod режим имя__файла») $ chmod a+r newtext Теперь все могу читать newtext.
a— all (все).
г — read (читать).
Сменить владельца файла. Синтаксис: «chown владелец filename»
$ chown scythian newtext $
Сменить группу файла. Синтаксис: «chgrp group file»
$ chgrp root runme $
Вывести основную информацию об экаунте. Формат: «finger имя_пользователя».
Искать в файле цепочку символов. ■ Синтаксис: «grep цепочка file»
$ дгер 1 newtext Это строка 1
$ дгер ПЕРВАЯ newtext
Это ПЕРВАЯ строка
$ grep - "ПЕРВАЯ line 1" newtext $
Очень полезная утилита. Вы уже наверняка догадались по имени, для чего она. Их существует несколько, например, ELM, MUSH and MSH, но базовая почтовая программа называется «mail». Как ей пользоваться:
Mail username@address
Или
Mail username
Или
Или
Mail addrl! addr2! addr3! user
«mail username@address» — такая запись используется для посылки почты кому-то в другой системе. Обычно это другой UNIX, но некоторые DOS и VAX машины могут принимать Unix Mail. Когда вы используете «mail user ©address», то ваша система должна иметь «умный мейлер» и то, что мы называем «планами системы». «Умный мейлер» распознает «адресную» часть команды и обычно расширяет ее до полного пути. Это может выглядеть так:
Mail phiber@optik
А в компьютере выглядеть так:
Но если умного мейлера нет, то вы должны знать полный путь к тому, кому вы хотите послать почту. Например, я хочу послать сообщение к phiber. И если умного мейлера нет, то я должен писать так:
$ mail sysl unisys! pacbell! sbell! sc1! att. com! sirhacksys! optik! phiber Привет. Как дела? Ну, мне пора. Длинное вышло письмецо, верно?
(control-D)
$
Когда он это сообщение получит, в нем будет строк 20 информации, это нечто вроде почтовых штемпелей всех систем, через которые мое сообщение прошло, а строка «от кого» будет выглядеть так:
From optik! sirhacksys! att. com! sc1! sbell! pacbell! Unisys! sys! sirhack <Sir Hack>
Для посылки локального сообщения достаточно набрать «mail user - name», где username — логин получателя. Затем наберите сообщение и завершите его control-D.
Для чтения поступившей вам почты просто введите mail. To есть:
От: scythian...................
Кому: sirhack..............................
Тема: Well....
Ну, блин!
?
Точки обозначают всякую пропущенную бредятину. Каждая версия программы mail оформляет свои заголовки.
Знак вопроса — это подсказка. После него можно ввести:
d — удалить.
f username — переслать копию к username.
w fname — записать сообщение в файл с именем fname.
s fname — сохранить сообщение с заголовком в файл с именем fname.
q — выйти/обновить mail.
х — выйти, но ничего не менять.
m username — написать сообщение к username.
г — ответить отправителю.
Enter — прочесть следующее сообщение.
+ — перейти на одно сообщение дальше. # — вернуться на одно сообщение назад.
h — распечатать заголовки сообщений из почтового ящика.
Есть и другие команды. Чтобы увидеть их перечень, обычно вводят
Если вы посылаете почту кому-то не из своей системы, то ответа придется ждать дольше, потому что тут все будет как с обычным письмом — его должен забрать Для передачи почты система может
Вызвать и использовать UUCP. Обычно UUCP экаунты никому не нужны — если только у вас не используется UUCP, способный перехватывать почту.
Процесс. Эта команда позволяет увидеть, что именно вы делаете в оперативной памяти. При каждом запуске программы ей для учетных целей назначается Идентификатор Процесса (PID), и поэтому ее можно отследить в памяти, а также закрыть — вами или корневым пользователем. Обычно команда «ps» в перечне процессов первой указывает имя запущенной вами оболочки. Допустим, я вошел под логином sirhack, используя оболочку «csh», и у меня работает «watch scythian». Программа watch перейдет в фоновый режим, то есть я смогу делать что-то другое, пока она работает:
$ ps |
||
PID |
TTY |
NAME |
122 |
001 |
Ksh |
123 |
001 |
Watch |
$ |
Это сокращенный листинг PS, выводящийся по умолчанию. В колонке TTY перечислены «tty» (устройства ввода/вывода) через которые был запущен process. Это действительно полезно знать только в том случае, если вы используете слои или более одного пользователя вошли в систему с тем же экаунтом. Команда «ps - f» выдаст полный листинг процессов, поэтому вместо краткого «watch» вы скорее всего увидите «watch scythian».
Kill
Прервать процесс. Очевидно, что команда используется для прекращения работы программы в памяти. Вы можете прервать только те процессы, которыми владеете (те, которые вы запустили), если только вы не корневой пользователь или если ваш EUID такой же, как и у процесса, который вы хотите прервать. (Про EUID потом). Если вы прервете процесс оболочки, то вылетите из системы. По тому же принципу, если вы вырубите процесс чьей-то оболочки, то этот кто-то тоже вылетит. Поэтому если я введу «kill 122», то система меня выплюнет. Однако kill лишь посылает UNIX сигнал с указанием «прервать процесс». И если вы примените синтаксис «kill pid», то UNIX вырубит процесс тогда, когда ему захочется, а такое может не случиться никогда. Значит, вы можете сами определять срочность! Попробуйте «kill - num pid» (num — число).
Kill -9 pid — это безусловное и почти мгновенное прерывание. $ kill 122 $ kill 123
$ ps
PID TTY NAME
001 ksh
001 watch $ kill -9 123 [123]: killed
$ kill -9 122 garbage NO CARRIER
Вы также можете ввести «kill -1 0», чтобы прервать свою оболочку и выйти из системы. Это полезно в скриптах.