Основные команды системы UNIX

 Новосибирский  государственный технический университет

 

 

 

 


 

 

Контрольная работа

по дисциплине

“ Сетевые информационные технологии ”

 

 

Тема: “Основные команды системы UNIX”

 

 

 

 

 

 

 

 

 

 

 

 

Группа: ЗАМ - 934

Семестр: 10

Студент: Балева Н.А.

Преподаватель: Бычков М.И.

Дата проверки работы:

 

 

 

 

Новосибирск 2014

 

Оглавление

 

 

1. История Unix систем. (Введение)

3

2. Начало работы с командами, процессами

4

   2.1 Работа с командами

4

   2.2 Работа с процессами

6

3. Важнейшие пользовательские команды

9

   3.1 Важнейшие команды (файлы, каталоги, контроль места на жестком диске)

9

   3.2 Файлы: резервное копирование, архивация, компрессия 

14

   3.3 R-команды

17

4. Основные службы

19

   4.1 TELNET

19

   4.2 FTP

21

5.  “Джентльменский набор”

23

6. Литература

25


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. История Unix систем.(Введение)

 

Операционная система UNIX ведет свое происхождение от разработанной Ф. Корбато из Массачусетского технологического института (MIT) в начале 60-х годов системы CTSS (Comprehensive Time-Sharing System – Система с комплексным распределением времени). Оценив преимущества многопользовательской многозадачной системы, компании General Electric, AT&T, Bell Labs и MIT начали проект, названный Multiplexed Information and Computing Service (Мультиплексированный информационный и вычислительный сервис, MULTICS) для создания подобной системы, способной работать на системах GE635. В феврале 1969 года проект сильно запаздывал по сравнению с графиком, поэтому компания AT&T решила отказаться от участия в проекте, а коллектив сотрудников, вовлеченных в проект, начал работу над другим проектом.

В начале лета 1969 года Руд Кенедей, Дуг МакИлрой, Денис Ричи и Кен Томпсон подробно обсудили, что можно сделать для спасения некоторых идей, связанных с проектом, и начали собственное исследование. В августе того же года, обнаружив в шкафу неиспользованный компьютер DEC PDP-7, Томсон пишет операционную систему, оболочку, редактор и ассемблер, потратив неделю на каждую из составляющих. После обработки набросков замысла в офисе Кенедея, Томпсон воплотил его в PDP-7. Питер Нейман назвал новую систему Uniplexed Information and Computing Service (UNICS). Неизвестно, кто изменил написание названия системы на UNIX, а затем и на более привычное Unix.

Летом 1970 года Д. Ричи , К. Томпсон и Ли МакМахона приобретают PDP-11/20, обещая создать “систему обработки текстов”. Томпсон пишет строчный редактор (названный ed). Ричи пишет roff. Отдел патентов Bell Labs был удовлетворен. Через несколько месяцев он вступил во владение PDP-11/20 и купил модель 11/45 для вычислительных исследований.

Между 1970 и 1972 годами систему улучшали, в неё добавили много новых функций. Но использование системы Unix было ограничено узлами компании AT&T в Нью-Джерси до тех пор, пока Нейл Граундвотер, только что прибывший из Пенсильвании, не установил систему Unix в компании New York Telephone в Манхеттене, использовав при этом систему PDP-11/20, 56Кбайт оперативной памяти и два жестких диска RK11/05 объемом 2,4 Мбайт. В течение следующего года все больше и больше членов вычислительного сообщества узнавали об операционной системе Unix, и многие запрашивали эту систему. Но компания AT&T оказалась в затруднительном положении. Она не могла заниматься бизнесом, не связанным с телефонной или с телеграфной индустрией, поэтому компания решила отдать систему Unix за номинальную стоимость университетским исследовательским центрам на следующих условиях:

    • Без рекламы
    • Без поддержки
    • Оплата авансом

После того как Unix оказалась в руках университетских исследовательских центров, сообщество пользователей ОС Unix образовало единое целое и стало расти.

На данный момент существует два основных типа системы Unix. Один тип происходит от версий 4.2, 4,3 или 4,4BSD, другой тип основан на системах SVR3 или SVR4. Хотя и существует различие между основными типами Unix, практически все пользовательские команды идентичны во всех версиях (AIX, BSD, HP/UX, Linux, Solaris, SunOS и т.д).

 

 

 

  1. Начало работы с командами, процессами

 

Названия команд будет проще запомнить, если принять во внимание, что представляют собой  сокращение английских слов. Например, если требуется изменить что-то уже существующее, команда, выполняющая подобное действие, начинается с ch (change). Когда что-то нужно сделать впервые, используется команда, которая начинается с mk (make), а когда необходимо что-то полностью отменить или удалить, следует команда, которая начинается с rm (remove).

При работе с Unix системами в первую очередь нужно научиться получать помощь, когда не совсем понятно как использовать ту или иную команду. Для этого есть несколько возможностей. Можно, например, ввести после имени команды опцию -?, -h или –help. Большинство команд в системах Unix в ответ на это выводят краткую подсказку о синтаксисе команды и используемых ею опциях.

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

В выводе man будет дан синтаксис команды и подробное описание ее работы. Если в описании синтаксиса аргумент заключен в квадратные скобки, то он не обязателен. Если два синтаксических элемента разделены вертикальной чертой (|), то допустим только один из них. Когда описание команды занимает более одного экрана, перемещаться по тексту можно, нажимая клавишу пробела, Чтобы вернуться в командную строку, нажимается клавиша Q.

 

    1. Работа с командами

 

Процесс входа пользователя в систему называется login. После появления маски входа пользователя в систему с сообщением login: нужно ввести пользователя и нажать клавишу Enter. На вопрос о пароле нужно ответить введением пароля. Если введенные данные верны то стартует Shell и на экране появляется символ $ - приглашение к вводу данных. Таким образом открывается пользовательская сессия.

Ввод команды должен быть закончен нажатием клавиши Enter. Синтаксис команды:

 

name[ -options…][arguments…]

 

  • name – имя команды и одновременно имя файла, в котором находится программа, выполняющая эту команду;
  • options – описание необходимых атрибутов; характеризует диапазон возможностей при работе команды;
  • arguments – остальные данные (например: переменные, данные файла ввода и вывода, которые при вызове должны быть переданы команде);
  • [] – все что стоит внутри прямоугольных скобок, может не использоваться;
  • … - данные стоящие перед точками, могут быть введены несколько раз.

 

Команда script позволяет протоколировать все данные введенные или выведенные пользователем во время сессии.

 

script[ -a][ file] – протоколировать сессию пользователя

 

-а – вывод команды  присоединить к концу файла;

-file – имя файла протокола.

Команда who выводит информацию о пользователе;

 

Пример:

 

$ who

 

diamin

tty2

feb

05

12:15

 

Имя

пользователя

 

Имя

терминала

 

Дата и время

Входа в систему


 

who[ options][ am i] – вывести имена, терминалы и время входа пользователей в систему

-i – вывести  длительность текущей сессии;

-m – вывести собственное имя с email-адресом;

-g – вывести только имена и общее число пользователей;

-s – сделать вывод в стандартном формате;

-w – маркировать идентификаторы всех пользователей, которые могут получать сообщения знаком + и знаком -, в том случае, если прием сообщений отключен;

-Н – вывести заголовок с  обозначением отдельных колонок;

-am i – вывести идентификатор пользователя.

 

Команда hostname позволяет либо отобразить текущее имя хоста или домена, либо установить имя хоста системы.

 

hostname – вывести на печать имя локального компьютера

 

Команда domainname выводит на печать имя домена.

Каждый домен имеет компьютер администрирования сетью, на этом компьютере находятся данные для администрирования компьютеров домена;

 

domain[ domain_name] – вывести на печать, изменить, установить имя домена

 

без аргумента – вывести на печать имя актуального домена;

domain_name – имя домена, которое дает администратор сети при подключении локального компьютера к сети.

 

Команда rhost служит для перечисления компьютеров локального домена:

 

rhost – перечислить компьютеры сети

 

Пример:

$ rhost

 

89.16.23.5

diamin

wed  may 3  09:20  2006

 

адрес компьютера

 

имя компьютера

 

Дата, время последнего rwho-приема пакета с данными пользователя


 

Команда finger является информационной. Она используется для вывода имен пользователей, работающих в данный момент, а также их некоторые данные:

 

finger[ -mlpsR][ user][@hostname] – перечислить пользователей, вывести информацию о пользователях

-m – использовать аргументы, относящиеся только к именам пользователей;

-l – вывести подробные данные;

-р – подавить выдачу  файла .plan;

-s – вывести краткие данные;

-R – вывести имена компьютеров;

user, @hostname – без этих данных будут перечислены пользователи работающие на собственном компьютере.

 

Unix-системы содержат память, в которой находятся имена введенных команд –history. Используя клавиши ВВЕРХ, ВНИЗ можно поместить в командную строку ранее введенные команды

 

history – вывести содержимое памяти командной строки

 

Другие возможности команды history:

  • !m – повторение последнего начинающегося с m ввода команды;
  • !! – повторение последней команды (!-1 – повторение предпоследней, !-n – повторение n-последней)

 

Время от времени каждый пользователь должен менять свой пароль:

 

Passwd[ username] – изменить пароль

username – идентификатор пользователя

 

пример:

$ passwd

old passwd (нужно ввести старый пароль)

new passwd (нужно ввести новый пароль, при этом он не появляется на экране)

retype new passwd (нужно ввести новый пароль еще раз)

$

 

 

    1. Работа с процессами

 

 

Команда ps дает список процессов, выполняемых в данный момент.

 

Пример:

 

$ ps –a

 

PID

TTY

STAT

TIME

COMMAND

22488

pa

I

0:00

telnet gsusgi2.gsu.edu

21858

pa

S

0:00

-bash


 

Параметры означают:

PID – номер процесса;

TTY – контролирующий терминал;

STAT – состояние процесса;

Первая буква:

R – процесс выполняется;

Т – процесс остановлен;

D – процесс ожидает во время ввода/вывода;

S – процесс «спит» <20c;

I – процесс «спит» >20c;

Вторая буква:

W – процесс перемещен;

Пробел – процесс в памяти;

TIME – общее время выполнения процесса;

COMMAND – имя команды в командной строке.

 

Для получения дальнейших параметров введите команду ps –al:

 

Пример:

$ ps –al

 

F

UID

PID

PPID

CP

PRI

NI

ADDR

SZ

RSS

WCHAN

S

11008001

2569

22464

21858

68

42

0

2afa

584

484

 

R


 

Здесь параметры означают:

F – флаг процесса, некоторые из них:

000000 – процесс рожден;

000001 – процесс в памяти;

000002 – системный процесс  для перемещения;

000010 – процесс трассируется;

000020 – другой флаг  трассировки;

008000 – процесс будет  перемещен;

UID – пользовательский номер владельца процесса;

PPID – номер процесса предка;

СР – время процесса;

PRI – приоритет, большие значения соответствуют низкому приоритету;

ADDR – адрес памяти (куда перемещен процесс);

WCHAN – номер события, которого ждет процесс. Если колонка пуста, это означает, что процесс выполняется;

NI – значение, характеризующее приоритет;

SZ – виртуальная величина процесса (Кбайт).

 

Команда nice устанавливает, что некоторая команда будет выполняться с определенным приоритетом.

 

nice[ -number] command[arg…] – изменить приоритет команды

 

-number – имеет значение от 1 до 19, при этом большим числам соответствуют низкие значения приоритета. 0 – это стартовый приоритет каждого процесса, если он первый раз ждет процессорное время;

arg – аргумент команды command.

 

Команда kill по умолчанию передает процессу сигнал о его прекращении:

 

kill[ -signal][ processnumber]

 

signal – число 1,2,…9,…

-1 – вывести все возможные  имена сигналов.

 

Приведем пример, сначала запустим некоторую команду, потом посмотрим какие процессы выполняются а потом прекратим выполнение этой команды:

 

$ vi  (vi – это редактор)

.

.

.

$ ps

PID

TTY

STAT

TIME

COMMAND

11745

p5

S

0:01

-bash

11822

p5

T

0:00

Vi

11823

p5

R

0:00

Ps


 

$ kill –9 11822

[1]+killed

 

$ ps

PID

TTY

STAT

TIME

COMMAND

11745

p5

S

0:01

-bash

11824

p5

R

0:00

Ps

         

 

С помощью команды sleep можно временно приостановить процесс:

 

sleep time – процессы временно приостановить

 

пример:

 

$ sleep 20  (терминал блокируется на 20 секунд)

 

Пользователи могут осуществлять коммуникацию:

 

write user_name[ terminal] – послать сообщение на экран пользователя

 

пример:

Послать сообщение пользователю ККК, работающему на той же самой системе:

$ write KKK

Какая прекрасная погода!

EOF (end of file: комбинация клавиш CTRL+D)

 

На экране пользователя ККК появляется:

Message from Diamin tty10

Какая прекрасная погода!

 

 

 

 

 

 

 

  1. Важнейшие пользовательские команды

 

    1. Важнейшие команды (файлы, каталоги, контроль места на жестком диске)

 

Команды для работы с каталогами. Каталог в котором находится пользователь в данный момент времени, называется текущим; используя команду pwd можно вывести имя этого каталога.

 

pwd – вывести путь к текущему коталогу

 

В текущий каталог можно попасть, используя команду cd:

 

cd[ directory] – перейти в другой каталог

 

directory – имя каталога, в который пользователь хочет перейти;

без аргумента – переход в домашний каталог;

/ - переход в корневой  каталог;

… - переход на один уровень вверх.

 

Содержимое каталога можно вывести, используя команду:

 

ls[ -Rfabdgilrstu][file…] – вывести информацию о файлах

 

-file – имя объекта, о котором хотят получить информацию;

-R (rekursiv) – вывести список всего дерева файлов;

-F – добавить символ к имени файла;

* - исполняемые файлы;

/ - каталоги;

@ - маркировка symbolic link;

| - маркировка Named-Pipe;

= - маркировка Socket;

-a – вывести файлы каталога, которые начинаются точкой (например, .profile);

-b – вывести непечатаемые символы в восьмеричном представлении;

-с – сортировать файлы  в соответствии с временем  последнего изменения статуса;

-d – вывести только запись о каталоге, но не его содержание;

-g – вывести групповую принадлежность файла, а не идентификатор владельца;

-i – вывести I-Node-номер для каждого файла;

-l – вывести данные в длинном формате;

-r – сортировать в обратном порядке;

-s – вывести размер файла (кар число блоков);

-t – сортировать в соответствии с датой последнего изменения;

-u – применить дату последнего доступа вместо даты последнего изменения в качестве критерия сортировки.

 

Команда mkdir позволяет создать новый каталог

 

mkdir directory –создать коталог

 

directory – имя каталога;

 

Команда rmdir уничтожает каталог

 

rmdir [ -r] directory – уничтожить пустой каталог

-r – уничтожить каталоги рекурсивно

directory – имя каталога

Файлы в уничтожаемом каталоге должны быть предварительно уничтожены командой rm(смотрите далее), а подкаталоги командой rmdir. Последние должны быть также пусты. Не пустые каталоги должны быть уничтожены командой rm –r:

Пример: уничтожить каталоги dir1 и dir2

$ rmdir dir1 dir2

rmdir: dir1 not empty

Каталог dir1 не был уничтожен, так как содержал файлы. Его можно, однако, уничтожить вместе со всеми находящимися там файлами командой

$ rm –r dir1

 

Команды для работы с файлами. Для вывода на экран содержимого текстового файла используется cat-команда; она выполняет также и другие функции:

 

cat[ -u][ -s][ -v][ -t][ -e][file…] – присоединить файлы друг к другу и вывести на экран

 

-u – при чтении со стандартного ввода проводится вывод без промежуточного запоминания;

-s – подавить сообщение о файлах, не имеющихся в наличии;

-v – вывести непечатаемые символы, кроме знаков TAB и NEWLINE;

-t – будет выведен знак TAB (не применять вместе с –v);

-e – вывести символ $ (применять вместе с –v);

file – имя выводимого файла.

Если пользователь вводит символ -/пробел, то cat читает со стандартного ввода. Используя >file/>>file можно перенаправить вывод в файл, при этом при использовании символа > , содержимое старого файла будет переписано, а при применении символа >>, вывод будет присоединен к старому файлу.

 

Файл file можно вывести следующим образом:

$ cat file (пишет содержимое файла на стандартный вывод).

 

Файл fil1 можно присоединить к файлу fil2 и результат записать в файл fil3 следующим образом:

$ cat fil1 file2 > fil3

 

Команда mv позволяет переименовывать файлы и перемещать файлы в пределах дерева файлов:

mv[ -f] file1[file2…] newfile – файл переименовать/переместить

 

-f – подавить вопрос, хочет ли пользователь использовать команду;

file[file2] – имя, которое должно быть переименовано или имя файла, который должен быть перемещен;

newfile – если file является файлом, то он будет переименован; если newfile является каталогом то все переименованные файлы будут перемещены в этот каталог.

 

Пример:

Переименуем text3 в text5 и переместим в каталог /usr/kurs/vvvv

 

$ mv text3 /usr/kurs/vvvv/text5

 

Команда ср предназначена для копирования файлов:

 

cp[ r] file copy – файл копировать

cp[ file…] directory – файл копировать

 

copy – имя копии. Копия имеет права доступа оригинала и пользовательский и групповой номер пользователя, который вводил команду;

r (recursive) – копировать, включая содержимое подкаталогов;

file – оригинал;

directory – каталог в который будет внесена копия. Оригинал и копия имеют одно и тоже имя.

 

Пример:

Скопируем text2 под именем text4, оба файла должны находится в каталоге my:

 

$ cd my

$ cp text2 text4

 

теперь скопируем все файлы текущего каталога, начинающиеся с “text”, в каталог /usr/kurs/vvvv

 

$ cp text* /usr/kurs/vvvv

 

Для уничтожения одного или нескольких файлов используется команда rm

 

rm[ options] file… - уничтожить файл

 

file – имя уничтожаемого файла или каталога;

-r – уничтожить рекурсивно (содержимое каталога и каталог сам);

-i – ставится соответствующий вопрос пользователю.

Команда rm уничтожает в каталоге одну или несколько записей о файлах. Однако на самом запоминающем устройстве данные остаются не уничтоженными вплоть до новой записи на то же место физического диска.

Записи о файлах можно уничтожить только в том случае, если имеется право записи для каталога, в котором файл находится. Для самого файла не требуется ни права чтения ни права записи.

 

Команда tee читает со стандартного ввода, пишет на стандартный вывод и копию в файл

 

tee[ -i][ -a][ file…] – вывести результат выполнения команды на экран и записать в файл

 

-i – игнорировать сигналы  прерывания;

-а – не переписывать  файл данными команды teе, а присоединить к концу файла;

file –имя файла копии.

Если файл уже существует то он будет переписан, в противном случае он будет создан. Схема работы команды показана на рисунке

 



 



 

 

Пример:

Запишем все имена текущего каталога в файл filetee и просмотрим их на экране:

 

$ ls –l | tee filetee

 

Следующая команда echo она позволяет:

  • писать сообщения в Shell-процедурах;
  • опрашивать значения переменных;
  • писать тексты в файлы;
  • дополнять константами результаты выполнения команд
Основные команды системы UNIX